Skip to content

Commit 85e2bf2

Browse files
committed
fixed nonstop return
1 parent 52395ac commit 85e2bf2

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

Diff for: Classes/node.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,10 @@ def __init__(self):
176176

177177
def Evaluate(self, table):
178178
for i in range(len(self.children)):
179-
self.children[i].Evaluate(table)
179+
if (table.returnGetter()[1] == None):
180+
self.children[i].Evaluate(table)
181+
else:
182+
break
180183

181184

182185
class Print(Node): # Single children
@@ -261,7 +264,7 @@ def Evaluate(self, table):
261264
localTable = SymbolTable()
262265
for i in range(len(res[1].children)-1):
263266
arg = self.children[i].Evaluate(table)
264-
267+
265268
if (res[1].children[i][1] == arg[0]):
266269
localTable.setter(res[1].children[i][0], res[1].children[i][1], None)
267270
localTable.setter(res[1].children[i][0], res[1].children[i][1], arg[1])

Diff for: Classes/parser.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ def parseBlockF():
5555
while (Parser.tokens.actual.type == "COMMA"):
5656
Parser.tokens.selectNext()
5757
if (Parser.tokens.actual.type == "IDENTIFIER"):
58-
arguments = [Parser.tokens.actual.value]
58+
arguments = [Parser.tokens.actual.value]
5959
Parser.tokens.selectNext()
6060
if (Parser.tokens.actual.type == "COLON_I"):
6161
Parser.tokens.selectNext()
6262
if (Parser.tokens.actual.type == 'INT' or Parser.tokens.actual.type == 'BOOL' or Parser.tokens.actual.type == 'STRING'):
63-
arguments.append(Parser.tokens.actual.value)
63+
arguments.append(Parser.tokens.actual.type)
6464
func.children.append(arguments)
6565
Parser.tokens.selectNext()
6666
else:

Diff for: Classes/symbolTable.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ def funcSetter(self, key, funcType, function):
3636
def returnGetter(self):
3737
return self.table["RETURN"]
3838

39-
def returnSetter(self, value, retType):
40-
self.table["RETURN"] = [value, retType]
39+
def returnSetter(self, retType, value):
40+
self.table["RETURN"] = [retType, value]
4141

0 commit comments

Comments
 (0)