WHITE_SPACE [\ \t\b] ALNUM [A-Za-z0-9_] QUOTED_STRING \"([^\"]+|\\.)*\" UNQUOTED_STRING {ALNUM}+ HEX_NUMBER 0[xX][0-9a-fA-F]+ OCT_NUMBER 0[0-7]+ DEC_NUMBER [\+\-]?[0-9]+ FLOAT_NUMBER [\+\-]?[0-9]*\.[0-9]+([eE][\+\-][0-9]+)? NUMBER ({FLOAT_NUMBER}|{HEX_NUMBER}|{OCT_NUMBER}|{DEC_NUMBER}) BOOL_TRUE (true|yes|on) BOOL_FALSE (false|no|off) COMMENT #.* %% {WHITE_SPACE} | {COMMENT} {/* nothing */} \n {return (EOL);} "/" {return (SLASH);} "<" {return (OPENBRAC);} ">" {return (CLOSEBRAC);} {NUMBER} {yylval.number = strtod (yytext, NULL); return (NUMBER);} {BOOL_TRUE} {yylval.boolean = 1; return (TRUE);} {BOOL_FALSE} {yylval.boolean = 0; return (FALSE);} {QUOTED_STRING} {yylval.string = yytext; return (QUOTED_STRING);} {UNQUOTED_STRING} {yylval.string = yytext; return (UNQUOTED_STRING);} %%