LNode ForEachStmt(int startIndex)
{
TokenType la1;
LNode @var = default(LNode);
var kw = MatchAny();
var p = Match((int) TT.LParen);
Match((int) TT.RParen);
var block = Stmt();
// line 1970
Down(p);
// Line 1971: (&(VarIn) VarIn)?
switch (LA0) {
case TT.ContextualKeyword: case TT.Id: case TT.Operator: case TT.Substitute:
case TT.TypeKeyword:
{
if (Try_Scan_VarIn(0)) {
la1 = LA(1);
if (ForEachStmt_set0.Contains((int) la1))
@var = VarIn();
}
}
break;
}
var expr = ExprStart(false);
// line 1975
var parts = LNode.List(@var ?? F.Missing, expr, block);
return Up(F.Call(kw, parts, startIndex, block.Range.EndIndex));
}