The unified diff between revisions [c2301346..] and [6726c07e..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'src/lsc/lexer.l'
# # old_revision [c2301346be8a3f197425575f91b4910582a22a62] # new_revision [6726c07e4874e76763555e1476ce427743e8f73c] # # patch "src/lsc/lexer.l" # from [d53fa70f337e95617b535a04f1a6bfa60b4326a2] # to [88be4de3325822fc6a95e81cc8c615a6c70078bf] # ============================================================ --- src/lsc/lexer.l d53fa70f337e95617b535a04f1a6bfa60b4326a2 +++ src/lsc/lexer.l 88be4de3325822fc6a95e81cc8c615a6c70078bf @@ -105,6 +105,10 @@ return return TOKRETURN; [0-9]+ yylval.Tinteger = atoi(yytext); return NUMBER; -[0-9]+ yylval.Tinteger = atoi(yytext); return NUMBER; + /* Cater for the possibility that things might be signed or + unsigned. This is horrible and ugly, but might just work. */ +0x[0-9a-fA-F]+ yylval.Tinteger = strtoul(yytext+2, (char **)NULL, 16); return NUMBER; +-0x[0-9a-fA-F]+ yylval.Tinteger = strtol(yytext+2, (char **)NULL, 16); return NUMBER; [0-9]+\.[0-9]+ yylval.Treal = atof(yytext); return REAL; -[0-9]+\.[0-9]+ yylval.Treal = atof(yytext); return REAL; [_a-zA-Z0-9]+ yylval.Tstring = strdup(yytext); return IDENTIFIER;