1 %{ 2 #include "scenar.y.h" 3 #include <stdlib.h> 4 #include <string.h> 5 void yyerror(char *); 6 int linenum; 7 %} 8 9 %S STRINGg 10 11 %% 12 \n { linenum++; } 13 14 "<--".*"-->" {} 15 16 [-]*[0-9]+ { yylval.i = atoi(yytext); return INTEGER; } 17 <INITIAL>["] { yylval.str[0]=0; BEGIN STRINGg; } 18 <STRINGg>["] { BEGIN INITIAL; return STRING; } 19 <STRINGg>"\\n" { strcat(yylval.str,"\n"); } 20 <STRINGg>[a-zA-Z0-9\ \.\:\!\,\'\?]+ { strcat(yylval.str,yytext); } 21 "," { return COMMA; } 22 23 "background" { return BACKGROUND; } 24 "foreground" { return FOREGROUND; } 25 "vector" { return VECTOR; } 26 "textarea" { return TEXTAREA; } 27 "say" { return SAY; } 28 "wait" { return WAIT; } 29 "sec" { return SEC; } 30 "notextarea" { return NOTEXTAREA; } 31 "loop" { return LOOP; } 32 33 34 [ \t] ; /* skip whitespace */ 35 36 . { return yytext[0]; } 37 38 %% 39 40 int yywrap(void) { 41 return 1; 42 } 43