//exec_stmt: 'exec' expr ['in' expression [',' expression]] private ExecStatement ParseExecStmt() { Eat(TokenKind.KeywordExec); string execWhiteSpace = _tokenWhiteSpace; var start = GetStart(); Expression code, locals = null, globals = null; code = ParseExpr(); string inWhiteSpace = null, commaWhiteSpace = null; if (MaybeEat(TokenKind.KeywordIn)) { inWhiteSpace = _tokenWhiteSpace; globals = ParseExpression(); if (MaybeEat(TokenKind.Comma)) { commaWhiteSpace = _tokenWhiteSpace; locals = ParseExpression(); } } ExecStatement ret = new ExecStatement(code, locals, globals); if (_verbatim) { AddPreceedingWhiteSpace(ret, execWhiteSpace); AddSecondPreceedingWhiteSpace(ret, inWhiteSpace); AddThirdPreceedingWhiteSpace(ret, commaWhiteSpace); } ret.SetLoc(start, GetEnd()); return ret; }