X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=lib%2Fas3%2Ftokenizer.lex;h=8bf8c89f06dba379b34a7f3bd5b3886dfe31e3aa;hb=d864f3f5920065c62ce62499752b71a74aa66b72;hp=7a1762203a2090d0b58e8db642d4bf53bfca801c;hpb=747a523baa89370e4d2b8cbfe8b2ae2fa0b6edbd;p=swftools.git diff --git a/lib/as3/tokenizer.lex b/lib/as3/tokenizer.lex index 7a17622..8bf8c89 100644 --- a/lib/as3/tokenizer.lex +++ b/lib/as3/tokenizer.lex @@ -121,9 +121,10 @@ static inline int handlenumber() char is_float=0; for(t=0;t10) + char*max = l?"1073741824":"2147483647"; + if(yyleng-l>10) syntaxerror("integer overflow"); - if(yyleng==10) { + if(yyleng-l==10) { int t; for(t=0;tmax[t]) - syntaxerror("integer overflow"); + syntaxerror("integer overflow %s > %s", s+l,max); else if(yytext[l+t]-128) + return T_BYTE; + else if(v>=-32768) + return T_SHORT; + else + return T_INT; } else { - unsigned int v = atoi(s); + unsigned int v = 0; + for(t=0;t