6 KEYWORD func|end|struct|var|if|then|else|while|do|return|or|not
7 SPECIAL_CHAR \;|\.|\(|\)|\,|\:=|\-|\+|\*|>=|=
8 IDENTIFIER [[:alpha:]_][[:alnum:]_]*
9 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);
46 {NUMBER_DEC} return(NUM);
47 {NUMBER_HEX} return(NUM);
51 {SPECIAL_CHAR} return(yytext[0]);
53 {WHITESPACE} /* ignore */
55 . { fprintf(stderr, "Lexical error on line %i\n", yylineno); exit(1); }