%{ #include #include #include #include "gram.tab.h" void printStderr() { fprintf(stderr, "[%s]", yytext); } void putStringVal() { yylval.stringVal=malloc(yyleng + 1); strcpy(yylval.stringVal, yytext); } %} DIGIT [0-9] %% x printStderr(); return X; y printStderr(); return Y; width printStderr(); return WIDTH; height printStderr(); return HEIGHT; bgcolor printStderr(); return BGCOLOR; href printStderr(); return HREF; name printStderr(); return NAME; title printStderr(); return TITLE; resizable printStderr(); return RESIZABLE; text printStderr(); return TEXT; "=" printStderr(); return '='; \"{DIGIT}+\" fprintf(stderr, "[INT_V]"); putStringVal(); return INT_V; \"{DIGIT}+%\" fprintf(stderr, "[PERCENT_V]"); putStringVal(); return PERCENT_V; \"0x[0-9A-F]{6}\" fprintf(stderr, "[COLOR_V]"); putStringVal(); return COLOR_V; \"[^"]*\" fprintf(stderr, "[STRING_V]"); putStringVal(); return STRING_V; [ \t\n] {ECHO;} . fprintf(stderr, "ATTENTION: [%c]\n", yytext[0]); %%