Fixed: #1838 AS3 - Properly handling of long unsigned values, hex values, default uint values etc.

Changed: AS3 integer values are internally (e.g. in the lib) handled as java int type instead of long.
This commit is contained in:
Jindra Petřík
2022-10-22 15:27:44 +02:00
parent ef673667e2
commit d3477d910c
28 changed files with 1402 additions and 1424 deletions

View File

@@ -271,7 +271,13 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":"
/* numeric literals */
{NumberLiteral} { return new ParsedSymbol(ParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext()))); }
{NumberLiteral} {
try {
return new ParsedSymbol(ParsedSymbol.TYPE_INTEGER, Integer.parseInt((yytext())));
} catch(NumberFormatException nfe) {
return new ParsedSymbol(ParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext())));
}
}
{FloatLiteral} { return new ParsedSymbol(ParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext()))); }
{Identifier} { return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER, yytext()); }
{LineTerminator} {yybegin(YYINITIAL);}