public virtual void Visit(Call node) { }
void CallProc(out Statement callStmt) { Expression exp; List<Expression> expressions = new List<Expression>(); Expect(25); Token callToken = t; Token exprToken = null; Expect(1); string proc = t.val; Expect(6); if (StartOf(2)) { exprToken = la; Expr(out exp); expressions.Add(exp); ExpectIntArg(exp, exprToken); while (la.kind == 12) { Get(); exprToken = la; Expr(out exp); expressions.Add(exp); ExpectIntArg(exp, exprToken); } } Expect(9); callStmt = new Call(proc, expressions, callToken, exprToken); }