public Statement small_stmt()
{
switch (lexer.Peek().Type)
{
case TokenType.Del: return del_stmt();
case TokenType.Pass: return pass_stmt();
case TokenType.Break: return break_stmt();
case TokenType.Continue: return continue_stmt();
case TokenType.Return: return return_stmt();
case TokenType.Raise: return raise_stmt();
case TokenType.Yield: return yield_stmt();
case TokenType.Import: return import_stmt();
case TokenType.From: return import_stmt();
case TokenType.Global: return global_stmt();
case TokenType.Nonlocal: return nonlocal_stmt();
case TokenType.Assert: return assert_stmt();
case TokenType.Exec: return exec_stmt();
case TokenType.COMMENT: return comment_stmt();
case TokenType.INDENT:
Expect(TokenType.INDENT);
var c = Expect(TokenType.COMMENT);
return new CommentStatement(filename, c.Start, c.End) { comment = (string) c.Value };
case TokenType.DEDENT:
Expect(TokenType.DEDENT);
var cc = Expect(TokenType.COMMENT);
return new CommentStatement(filename, cc.Start, cc.End) { comment = (string)cc.Value };
default: return expr_stmt();
}
}