#define F(value) do { \
int token(value); \
+ yyextra->nobrace_ = false; \
return token; \
} while (false)
"(" L C F(tk::OpenParen);
")" L C F(tk::CloseParen);
-"{" L C F(yylval->newline_ ? tk::OpenBrace_ : tk::OpenBrace);
+"{" L C F(yyextra->nobrace_ ? tk::OpenBrace__ : yylval->newline_ ? tk::OpenBrace_ : tk::OpenBrace);
"}" L C F(tk::CloseBrace);
"[" L C F(tk::OpenBracket);
;
LexNoBrace
- : { if (yychar == token::OpenBrace || yychar == token::OpenBrace_) yychar = token::OpenBrace__; }
+ : { if (yychar == yyempty_) driver.nobrace_ = true; else if (yychar == token::OpenBrace || yychar == token::OpenBrace_) yychar = token::OpenBrace__; }
;
LexNoFunction