%{ #include "fst.h" %} C ([^\n\t :]+) %% state return (STATE); include return (INCLUDE); machine return (MACHINE); others return (OTHERS); reject return (KREJECT); subset return (SUBSET); rejecting return (REJECTING); accepting ; "%".* ; \"[^"]*\" { yytext[strlen(yytext) - 1] = 0; strconst = yytext+1; return STRCONST; } {C}:{C} { lexical = yytext; surface=(char *)index(yytext,':'); *surface++ = 0; return PAIR; } {C} { statename = yytext; return STATENAME; } [ \t\n] ; . { printf ("Ignoring: %d (%c)\n", yytext[0], yytext[0]); }