summaryrefslogtreecommitdiff
path: root/src/parser.y
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-06-13 14:29:39 (GMT)
committerMarius Kintel <marius@kintel.net>2013-06-13 14:29:39 (GMT)
commitb45a93aad28a6764aa9aa56d27ffb716353dc27c (patch)
tree747cffce89dab5a4038d2467dfe2fae339bdb5fe /src/parser.y
parent2a8f188fca3476dd07222585237d3afbc2e7b6be (diff)
Related to #399, reverted assignment evaluation order to be the same as in 2013.01 as the new implementation broke existing scripts. Added some experimental commented out code, which can be used as reference in the future
Diffstat (limited to 'src/parser.y')
-rw-r--r--src/parser.y6
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:
contact: Jan Huwald // Impressum