Jacek Caban (@jacek) commented about tools/widl/parser.l:
}- winrt[^\n]* {
yy_pop_state();winrt_enable( FALSE );}- [^\n]* {
yy_pop_state();return token_str( aPRAGMA, yytext, yylval );}+} +<PP_LINE>[0-9]+{ws}* {
line_number = strtoul( yytext, NULL, 10 ) - 1; /* We didn't read the newline */yy_pop_state();yy_push_state(PP_FILE);}+<PP_FILE>"(\[^n]|[^"\])*"{ws}* {
That too, but I meant something like `<PP_FILE>"(\[^n]|[^"\\n])*"{ws}*`, so that it doesn't match unterminated string with a quote from another line.