public WhileStatement while_stmt()
{
var posStart = Expect(TokenType.While).Start;
var t = test();
Expect(TokenType.COLON);
var s = suite();
var posEnd = s.End;
SuiteStatement es = null;
if (PeekAndDiscard(TokenType.Else))
{
Expect(TokenType.COLON);
es = suite();
posEnd = es.End;
}
return new WhileStatement(filename, posStart, posEnd)
{
Test = t,
Body = s,
Else = es,
};
}
//for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]