/// <summary> /// Visit LetStatement /// </summary> /// <param name="statement">LetStatement to check</param> public override void Visit(LetStatement statement) { foreach (Assignment assignment in statement.GetAssignments()) { //Go level deeper in SymbolTable, to check using variables in other assignments CreateChildSymbolTable(); //Visit Assignment assignment.AcceptVisitor(this); } //Visit statements foreach(Statement stmt in statement.GetStatements()) { stmt.AcceptVisitor(this); } //Go back to level of statement in SymbolTable foreach (Assignment assignment in statement.GetAssignments()) { MoveToParentSymbolTable(); } }