void ParseArg()
{
int level = 0;
for (;;) {
if (See(CiToken.EndOfFile))
throw new ParseException("Macro argument not terminated");
if (See(CiToken.LeftParenthesis))
level++;
else if (See(CiToken.RightParenthesis)) {
if (--level < 0)
break;
}
else if (level == 0 && See(CiToken.Comma))
break;
NextToken();
}
}