diff options
Diffstat (limited to 'src/parser.y')
-rw-r--r-- | src/parser.y | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/parser.y b/src/parser.y index 0977efa..5b3d019 100644 --- a/src/parser.y +++ b/src/parser.y @@ -136,15 +136,17 @@ statement inner_input ; assignment: TOK_ID '=' expr ';' { + bool found = false; for (AssignmentList::iterator iter = scope_stack.top()->assignments.begin(); iter != scope_stack.top()->assignments.end(); iter++) { if (iter->first == $1) { - scope_stack.top()->assignments.erase(iter); + iter->second = $3; + found = true; break; } } - scope_stack.top()->assignments.push_back(Assignment($1, $3)); + if (!found) scope_stack.top()->assignments.push_back(Assignment($1, $3)); } ; statement: |