public ForInStatement ParseForInStatement()
{
var forInStatement = new ForInStatement { Token = Next() };
Match(TokenType.For);
Match(TokenType.LeftParen);
if (Next().Is(TokenType.Var))
{
Match(TokenType.Var);
forInStatement.VariableDeclaration = ParseVariableDeclaration();
}
else
{
forInStatement.LeftHandSideExpression = ParseLeftHandSideExpression();
}
Match(TokenType.In);
forInStatement.Collection = ParseAssignmentExpression();
Match(TokenType.RightParen);
forInStatement.Body = ParseStatement();
return forInStatement;
}