#define F(value) do { \
int token(value); \
- yyextra->nobrace_ = false; \
+ yyextra->no_.AtImplementation = false; \
+ yyextra->no_.Function = false; \
+ yyextra->no_.OpenBrace = false; \
return token; \
} while (false)
"(" L C F(tk::OpenParen);
")" L C F(tk::CloseParen);
-"{" L C F(yyextra->nobrace_ ? tk::OpenBrace__ : yylval->newline_ ? tk::OpenBrace_ : tk::OpenBrace);
+"{" L C F(yyextra->no_.OpenBrace ? tk::OpenBrace__ : yylval->newline_ ? tk::OpenBrace_ : tk::OpenBrace);
"}" L C F(tk::CloseBrace);
"[" L C F(tk::OpenBracket);
@begin ObjectiveC
"@end" L C F(tk::AtEnd);
-"@implementation" L C F(tk::AtImplementation);
+"@implementation" L C F(yyextra->no_.AtImplementation ? tk::AtImplementation_ : tk::AtImplementation);
"@import" L C F(tk::AtImport);
"@selector" L C F(tk::AtSelector);
@end
"null" L C I(null, Null(), tk::Null);
"true" L C I(true, True(), tk::True);
+"auto" L C I(word, Word("auto"), tk::Auto);
"break" L R I(word, Word("break"), tk::Break);
"case" L C I(word, Word("case"), tk::Case);
"catch" L C I(word, Word("catch"), tk::Catch);
"else" L C I(word, Word("else"), tk::Else);
"finally" L C I(word, Word("finally"), tk::Finally);
"for" L C I(word, Word("for"), tk::For);
-"function" L C I(word, Word("function"), tk::Function);
+"function" L C I(word, Word("function"), yyextra->no_.Function ? tk::Function_ : tk::Function);
"if" L C I(word, Word("if"), tk::If);
"in" L C I(word, Word("in"), yyextra->in_.top() ? tk::In_ : tk::In);
"instanceof" L C I(word, Word("instanceof"), tk::InstanceOf);