%{ extern int yylineno; int yylineno = 1; %} PC [^\"\n] AN [A-Z_a-z0-9] %% error_table return ERROR_TABLE; et return ERROR_TABLE; error_code return ERROR_CODE_ENTRY; ec return ERROR_CODE_ENTRY; end return END; [\t ]+ ; \n ++yylineno; \"{PC}*\" { register char *p; yylval.dynstr = ds(yytext+1); if (p=rindex(yylval.dynstr, '"')) *p='\0'; return QUOTED_STRING; } {AN}* { yylval.dynstr = ds(yytext); return STRING; } #.*\n ++yylineno; . { return (*yytext); } %%