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