LNode IfStmt(int startIndex)
{
TokenType la0;
// line 1991
LNode @else = null;
var kw = MatchAny();
var p = Match((int) TT.LParen);
Match((int) TT.RParen);
var then = Stmt();
// Line 1993: greedy(TT.Else Stmt)?
la0 = LA0;
if (la0 == TT.Else) {
Skip();
@else = Stmt();
}
// line 1995
var cond = SingleExprInside(p, "if (...)");
var parts = (@else == null ? LNode.List(cond, then) : LNode.List(cond, then, @else));
return F.Call(kw, parts, startIndex, then.Range.EndIndex);
}