LNode DoStmt(int startIndex)
{
Token lit_lpar = default(Token);
var kw = MatchAny();
var block = Stmt();
Match((int) TT.While);
lit_lpar = Match((int) TT.LParen);
Match((int) TT.RParen);
var end = Match((int) TT.Semicolon);
// line 1937
var parts = new VList<LNode>(block);
SingleExprInside(lit_lpar, "while (...)", false, ref parts);
return F.Call(S.DoWhile, parts, startIndex, end.EndIndex, kw.StartIndex, kw.EndIndex);
}