Fixing loop variables
This commit is contained in:
parent
e2e058c8ac
commit
69d2bbaaf3
15
examples/boucles_var.spf
Normal file
15
examples/boucles_var.spf
Normal file
@ -0,0 +1,15 @@
|
||||
entier x = 0;
|
||||
tant que x < 10 faire {
|
||||
entier y = x;
|
||||
x = x + 1;
|
||||
afficher x, y;
|
||||
}
|
||||
|
||||
afficher "yess";
|
||||
|
||||
pour chaque entier i dans [1:5] faire {
|
||||
entier y = i;
|
||||
y = y + i;
|
||||
x = x + i;
|
||||
afficher x, y;
|
||||
}
|
2
spf.py
2
spf.py
@ -30,6 +30,7 @@ class SPFInterpreter(lark.visitors.Interpreter):
|
||||
except SPFException as e:
|
||||
e.errorline = el.meta.line
|
||||
raise e
|
||||
old_inloop = self.variables.variables.copy()
|
||||
|
||||
target = self.visit_children(el.children[2])[0]
|
||||
for i in target:
|
||||
@ -39,6 +40,7 @@ class SPFInterpreter(lark.visitors.Interpreter):
|
||||
e.errorline = el.meta.line
|
||||
raise e
|
||||
self.visit_children(el.children[3])
|
||||
self.variables.variables = old_inloop.copy()
|
||||
self.variables.variables = old.copy()
|
||||
|
||||
def afficher(self, el):
|
||||
|
Loading…
x
Reference in New Issue
Block a user