public void Visit(IfStmnt ifStmnt) { Replace(ref ifStmnt.Condition); for (var i = 0; i < ifStmnt.Then.Count; i += 1) { ifStmnt.Then[i].Accept(this); } for (var i = 0; i < ifStmnt.Else.Count; i += 1) { ifStmnt.Else[i].Accept(this); } }
public void Visit(IfStmnt ifStmnt) { ifStmnt.Condition.Accept(this); var type = result.Pop(); if (type != BuiltIns.Bool) { throw new Exception("Not implemented"); } foreach (var stmnt in ifStmnt.Then) { stmnt.Accept(this); } foreach (var stmnt in ifStmnt.Else) { stmnt.Accept(this); } }
public void Visit(IfStmnt ifStmnt) { var clone = new IfStmnt(); ifStmnt.Condition.Accept(this); clone.Condition = result.Pop(); foreach (var stmnt in ifStmnt.Then) { stmnt.Accept(this); clone.Then.Add(result.Pop()); } foreach (var stmnt in ifStmnt.Else) { stmnt.Accept(this); clone.Else.Add(result.Pop()); } result.Push(clone); }