public SuiteStatement suite()
{
List<Statement> stmts = new List<Statement>();
if (Peek(TokenType.COMMENT))
{
stmts.Add(comment_stmt());
}
if (PeekAndDiscard(TokenType.NEWLINE))
{
while (!Peek(TokenType.INDENT))
{
var token = Expect(TokenType.COMMENT);
stmts.Add(new CommentStatement(filename, token.Start, token.End) { comment = (string) token.Value });
Expect(TokenType.NEWLINE);
}
Expect(TokenType.INDENT);
while (!Peek(TokenType.EOF) && !PeekAndDiscard(TokenType.DEDENT))
{
stmts.Add(stmt());
}
}
else
{
var stmt = simple_stmt();
stmts.Add(stmt);
}
return new SuiteStatement(stmts, filename, stmts[0].Start, stmts.Last().End);
}