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);
}