6 KEYWORD func|end|struct|var|if|then|else|while|do|return|or|not
7 IDENTIFIER [[:alpha:]_][[:alnum:]_]*
8 NUMBER_HEX [0-9][0-9A-Fa-f]*H
19 {COMMENT_START} BEGIN(COMMENT);
21 <COMMENT>{COMMENT_END} BEGIN(INITIAL);
23 <COMMENT>{COMMENT_START} fprintf(stderr, "Possibly nested comment on line %i\n", yylineno);
25 <COMMENT><<EOF>> { fprintf(stderr, "Unterminated comment.\n"); exit(1); }
27 <COMMENT>{WHITESPACE} /* ignore */
29 <COMMENT>. /* ignore everything inside comment */
33 struct return(STRUCT);
40 return return(RETURN);
44 {IDENTIFIER} return(ID); @{ @ID.name@=strdup(yytext); @}
46 {NUMBER_DEC} return(NUM);
47 {NUMBER_HEX} return(NUM);
61 {WHITESPACE} /* ignore */
63 . { fprintf(stderr, "Lexical error on line %i\n", yylineno); exit(1); }