diff options
author | Ben Gruver <bgruv@google.com> | 2012-09-23 18:10:10 -0700 |
---|---|---|
committer | Ben Gruver <bgruv@google.com> | 2012-09-23 18:14:59 -0700 |
commit | 8d299c022282757e0966e235dcbe6140a7bcad41 (patch) | |
tree | d531453530c155a8d1a9485bab3214b6f9129aa0 /smali/src | |
parent | 48d5b730272ada20e5b8c0245d297b03dbbf6d02 (diff) | |
download | smali-8d299c022282757e0966e235dcbe6140a7bcad41.tar.gz |
Generate separate POSITIVE/NEGATIVE_INTEGER_LITERAL tokens
Diffstat (limited to 'smali/src')
10 files changed, 191 insertions, 192 deletions
diff --git a/smali/src/main/antlr3/smaliParser.g b/smali/src/main/antlr3/smaliParser.g index 6fb71325..26ecd966 100644 --- a/smali/src/main/antlr3/smaliParser.g +++ b/smali/src/main/antlr3/smaliParser.g @@ -568,7 +568,6 @@ simple_name | VERIFICATION_ERROR_TYPE -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE] | POSITIVE_INTEGER_LITERAL -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] - | INTEGER_LITERAL -> SIMPLE_NAME[$INTEGER_LITERAL] | FLOAT_LITERAL_OR_ID -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] | DOUBLE_LITERAL_OR_ID -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] | BOOL_LITERAL -> SIMPLE_NAME[$BOOL_LITERAL] @@ -634,8 +633,7 @@ reference_type_descriptor integer_literal : POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] - | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] - | INTEGER_LITERAL; + | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL]; float_literal : FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] diff --git a/smali/src/main/jflex/smaliLexer.flex b/smali/src/main/jflex/smaliLexer.flex index 231abefd..23303685 100644 --- a/smali/src/main/jflex/smaliLexer.flex +++ b/smali/src/main/jflex/smaliLexer.flex @@ -267,7 +267,8 @@ Type = {PrimitiveType} | {ClassDescriptor} | {ArrayDescriptor} /*Literals*/ <YYINITIAL> { - -? {Integer} { return newToken(INTEGER_LITERAL); } + {Integer} { return newToken(POSITIVE_INTEGER_LITERAL); } + - {Integer} { return newToken(NEGATIVE_INTEGER_LITERAL); } -? {Integer} [lL] { return newToken(LONG_LITERAL); } -? {Integer} [sS] { return newToken(SHORT_LITERAL); } -? {Integer} [tT] { return newToken(BYTE_LITERAL); } diff --git a/smali/src/test/resources/LexerTest/ByteLiteralTest.tokens b/smali/src/test/resources/LexerTest/ByteLiteralTest.tokens index 921247f7..83677af1 100644 --- a/smali/src/test/resources/LexerTest/ByteLiteralTest.tokens +++ b/smali/src/test/resources/LexerTest/ByteLiteralTest.tokens @@ -1,47 +1,47 @@ BYTE_LITERAL("0x0T") -INTEGER_LITERAL("0x00") +POSITIVE_INTEGER_LITERAL("0x00") BYTE_LITERAL("0x1T") -INTEGER_LITERAL("0x12") +POSITIVE_INTEGER_LITERAL("0x12") BYTE_LITERAL("0x7fT") BYTE_LITERAL("0x80t") BYTE_LITERAL("0xFFt") -INTEGER_LITERAL("-0x00") -INTEGER_LITERAL("-0x01") -INTEGER_LITERAL("-0x12") -INTEGER_LITERAL("-0x80") -INTEGER_LITERAL("-0x1f") +NEGATIVE_INTEGER_LITERAL("-0x00") +NEGATIVE_INTEGER_LITERAL("-0x01") +NEGATIVE_INTEGER_LITERAL("-0x12") +NEGATIVE_INTEGER_LITERAL("-0x80") +NEGATIVE_INTEGER_LITERAL("-0x1f") BYTE_LITERAL("-0x1fT") -INTEGER_LITERAL("-0x81") -INTEGER_LITERAL("-0xFF") -INTEGER_LITERAL("-0x100") -INTEGER_LITERAL("0") +NEGATIVE_INTEGER_LITERAL("-0x81") +NEGATIVE_INTEGER_LITERAL("-0xFF") +NEGATIVE_INTEGER_LITERAL("-0x100") +POSITIVE_INTEGER_LITERAL("0") BYTE_LITERAL("1t") -INTEGER_LITERAL("123") +POSITIVE_INTEGER_LITERAL("123") BYTE_LITERAL("127T") -INTEGER_LITERAL("128") -INTEGER_LITERAL("255") -INTEGER_LITERAL("-0") -INTEGER_LITERAL("-1") -INTEGER_LITERAL("-123") +POSITIVE_INTEGER_LITERAL("128") +POSITIVE_INTEGER_LITERAL("255") +NEGATIVE_INTEGER_LITERAL("-0") +NEGATIVE_INTEGER_LITERAL("-1") +NEGATIVE_INTEGER_LITERAL("-123") BYTE_LITERAL("-123T") -INTEGER_LITERAL("-127") -INTEGER_LITERAL("-128") -INTEGER_LITERAL("-129") -INTEGER_LITERAL("-255") -INTEGER_LITERAL("256") -INTEGER_LITERAL("260") -INTEGER_LITERAL("00") -INTEGER_LITERAL("01") +NEGATIVE_INTEGER_LITERAL("-127") +NEGATIVE_INTEGER_LITERAL("-128") +NEGATIVE_INTEGER_LITERAL("-129") +NEGATIVE_INTEGER_LITERAL("-255") +POSITIVE_INTEGER_LITERAL("256") +POSITIVE_INTEGER_LITERAL("260") +POSITIVE_INTEGER_LITERAL("00") +POSITIVE_INTEGER_LITERAL("01") BYTE_LITERAL("0123t") -INTEGER_LITERAL("0177") +POSITIVE_INTEGER_LITERAL("0177") BYTE_LITERAL("0200T") -INTEGER_LITERAL("0377") -INTEGER_LITERAL("-00") -INTEGER_LITERAL("-01") -INTEGER_LITERAL("-0123") +POSITIVE_INTEGER_LITERAL("0377") +NEGATIVE_INTEGER_LITERAL("-00") +NEGATIVE_INTEGER_LITERAL("-01") +NEGATIVE_INTEGER_LITERAL("-0123") BYTE_LITERAL("-0123t") -INTEGER_LITERAL("-177") -INTEGER_LITERAL("-0200") -INTEGER_LITERAL("-0201") -INTEGER_LITERAL("-0377") -INTEGER_LITERAL("-0400")
\ No newline at end of file +NEGATIVE_INTEGER_LITERAL("-177") +NEGATIVE_INTEGER_LITERAL("-0200") +NEGATIVE_INTEGER_LITERAL("-0201") +NEGATIVE_INTEGER_LITERAL("-0377") +NEGATIVE_INTEGER_LITERAL("-0400")
\ No newline at end of file diff --git a/smali/src/test/resources/LexerTest/CommentTest.tokens b/smali/src/test/resources/LexerTest/CommentTest.tokens index 5f781ade..b3e084ac 100644 --- a/smali/src/test/resources/LexerTest/CommentTest.tokens +++ b/smali/src/test/resources/LexerTest/CommentTest.tokens @@ -2,5 +2,5 @@ LINE_COMMENT("#") WHITE_SPACE("\n") LINE_COMMENT("#abcd") WHITE_SPACE("\n") LINE_COMMENT("# abcd") WHITE_SPACE("\n") LINE_COMMENT("#0x1234") WHITE_SPACE("\n") -INTEGER_LITERAL("0x1234") WHITE_SPACE(" ") LINE_COMMENT("#0x1234") WHITE_SPACE("\n") +POSITIVE_INTEGER_LITERAL("0x1234") WHITE_SPACE(" ") LINE_COMMENT("#0x1234") WHITE_SPACE("\n") INSTRUCTION_FORMAT35c_METHOD("invoke-virtual") WHITE_SPACE(" ") LINE_COMMENT("#invoke-virtual")
\ No newline at end of file diff --git a/smali/src/test/resources/LexerTest/FloatLiteralTest.tokens b/smali/src/test/resources/LexerTest/FloatLiteralTest.tokens index 0945971c..82c99184 100644 --- a/smali/src/test/resources/LexerTest/FloatLiteralTest.tokens +++ b/smali/src/test/resources/LexerTest/FloatLiteralTest.tokens @@ -209,7 +209,7 @@ SIMPLE_NAME("-0x123ABCpZ") SIMPLE_NAME("-0x123ABCp-") SIMPLE_NAME("-0x123ABCp-A") SIMPLE_NAME("-0x123ABCp-Z") -INTEGER_LITERAL("0x123ABCDE1") +POSITIVE_INTEGER_LITERAL("0x123ABCDE1") SIMPLE_NAME("infinitye") SIMPLE_NAME("-infinitye") diff --git a/smali/src/test/resources/LexerTest/IntegerLiteralTest.tokens b/smali/src/test/resources/LexerTest/IntegerLiteralTest.tokens index b829c396..a3610ab0 100644 --- a/smali/src/test/resources/LexerTest/IntegerLiteralTest.tokens +++ b/smali/src/test/resources/LexerTest/IntegerLiteralTest.tokens @@ -1,45 +1,45 @@ -INTEGER_LITERAL("0x0") -INTEGER_LITERAL("0x00") -INTEGER_LITERAL("0x1") -INTEGER_LITERAL("0x12345678") -INTEGER_LITERAL("0x7fffffff") -INTEGER_LITERAL("0x80000000") -INTEGER_LITERAL("0xFFFFFFFF") -INTEGER_LITERAL("-0x00") -INTEGER_LITERAL("-0x01") -INTEGER_LITERAL("-0x12345678") -INTEGER_LITERAL("-0x80000000") -INTEGER_LITERAL("-0x1FFFFFFF") -INTEGER_LITERAL("-0x80000001") -INTEGER_LITERAL("-0xFFFFFFFF") -INTEGER_LITERAL("-0x100000000") -INTEGER_LITERAL("0") -INTEGER_LITERAL("1") -INTEGER_LITERAL("1234567890") -INTEGER_LITERAL("2147483647") -INTEGER_LITERAL("2147483648") -INTEGER_LITERAL("4294967295") -INTEGER_LITERAL("-0") -INTEGER_LITERAL("-1") -INTEGER_LITERAL("-1234567890") -INTEGER_LITERAL("-2147483647") -INTEGER_LITERAL("-2147483648") -INTEGER_LITERAL("-2147483649") -INTEGER_LITERAL("-4294967295") -INTEGER_LITERAL("4294967295") -INTEGER_LITERAL("4294967300") -INTEGER_LITERAL("8589934592") -INTEGER_LITERAL("00") -INTEGER_LITERAL("01") -INTEGER_LITERAL("012345670123") -INTEGER_LITERAL("017777777777") -INTEGER_LITERAL("020000000000") -INTEGER_LITERAL("037777777777") -INTEGER_LITERAL("-00") -INTEGER_LITERAL("-01") -INTEGER_LITERAL("-012345670123") -INTEGER_LITERAL("-017777777777") -INTEGER_LITERAL("-020000000000") -INTEGER_LITERAL("-020000000001") -INTEGER_LITERAL("-037777777777") -INTEGER_LITERAL("0400000000000")
\ No newline at end of file +POSITIVE_INTEGER_LITERAL("0x0") +POSITIVE_INTEGER_LITERAL("0x00") +POSITIVE_INTEGER_LITERAL("0x1") +POSITIVE_INTEGER_LITERAL("0x12345678") +POSITIVE_INTEGER_LITERAL("0x7fffffff") +POSITIVE_INTEGER_LITERAL("0x80000000") +POSITIVE_INTEGER_LITERAL("0xFFFFFFFF") +NEGATIVE_INTEGER_LITERAL("-0x00") +NEGATIVE_INTEGER_LITERAL("-0x01") +NEGATIVE_INTEGER_LITERAL("-0x12345678") +NEGATIVE_INTEGER_LITERAL("-0x80000000") +NEGATIVE_INTEGER_LITERAL("-0x1FFFFFFF") +NEGATIVE_INTEGER_LITERAL("-0x80000001") +NEGATIVE_INTEGER_LITERAL("-0xFFFFFFFF") +NEGATIVE_INTEGER_LITERAL("-0x100000000") +POSITIVE_INTEGER_LITERAL("0") +POSITIVE_INTEGER_LITERAL("1") +POSITIVE_INTEGER_LITERAL("1234567890") +POSITIVE_INTEGER_LITERAL("2147483647") +POSITIVE_INTEGER_LITERAL("2147483648") +POSITIVE_INTEGER_LITERAL("4294967295") +NEGATIVE_INTEGER_LITERAL("-0") +NEGATIVE_INTEGER_LITERAL("-1") +NEGATIVE_INTEGER_LITERAL("-1234567890") +NEGATIVE_INTEGER_LITERAL("-2147483647") +NEGATIVE_INTEGER_LITERAL("-2147483648") +NEGATIVE_INTEGER_LITERAL("-2147483649") +NEGATIVE_INTEGER_LITERAL("-4294967295") +POSITIVE_INTEGER_LITERAL("4294967295") +POSITIVE_INTEGER_LITERAL("4294967300") +POSITIVE_INTEGER_LITERAL("8589934592") +POSITIVE_INTEGER_LITERAL("00") +POSITIVE_INTEGER_LITERAL("01") +POSITIVE_INTEGER_LITERAL("012345670123") +POSITIVE_INTEGER_LITERAL("017777777777") +POSITIVE_INTEGER_LITERAL("020000000000") +POSITIVE_INTEGER_LITERAL("037777777777") +NEGATIVE_INTEGER_LITERAL("-00") +NEGATIVE_INTEGER_LITERAL("-01") +NEGATIVE_INTEGER_LITERAL("-012345670123") +NEGATIVE_INTEGER_LITERAL("-017777777777") +NEGATIVE_INTEGER_LITERAL("-020000000000") +NEGATIVE_INTEGER_LITERAL("-020000000001") +NEGATIVE_INTEGER_LITERAL("-037777777777") +POSITIVE_INTEGER_LITERAL("0400000000000")
\ No newline at end of file diff --git a/smali/src/test/resources/LexerTest/LongLiteralTest.tokens b/smali/src/test/resources/LexerTest/LongLiteralTest.tokens index f8ab03e8..f67deb33 100644 --- a/smali/src/test/resources/LexerTest/LongLiteralTest.tokens +++ b/smali/src/test/resources/LexerTest/LongLiteralTest.tokens @@ -10,39 +10,39 @@ LONG_LITERAL("-0x01L") LONG_LITERAL("-0x1234567890123456L") LONG_LITERAL("-0x8000000000000000L") LONG_LITERAL("-0x1fffffffffffffffL") -INTEGER_LITERAL("-0x8000000000000001") -INTEGER_LITERAL("-0xFFFFFFFFFFFFFFFF") -INTEGER_LITERAL("0x10000000000000000") +NEGATIVE_INTEGER_LITERAL("-0x8000000000000001") +NEGATIVE_INTEGER_LITERAL("-0xFFFFFFFFFFFFFFFF") +POSITIVE_INTEGER_LITERAL("0x10000000000000000") LONG_LITERAL("0L") -INTEGER_LITERAL("1") -INTEGER_LITERAL("1234567890123456789") +POSITIVE_INTEGER_LITERAL("1") +POSITIVE_INTEGER_LITERAL("1234567890123456789") LONG_LITERAL("1234567890123456789L") -INTEGER_LITERAL("9223372036854775807") -INTEGER_LITERAL("9223372036854775808") +POSITIVE_INTEGER_LITERAL("9223372036854775807") +POSITIVE_INTEGER_LITERAL("9223372036854775808") LONG_LITERAL("18446744073709551615L") -INTEGER_LITERAL("-0") -INTEGER_LITERAL("-1") -INTEGER_LITERAL("-1234567890123456789") +NEGATIVE_INTEGER_LITERAL("-0") +NEGATIVE_INTEGER_LITERAL("-1") +NEGATIVE_INTEGER_LITERAL("-1234567890123456789") LONG_LITERAL("-1234567890123456789L") -INTEGER_LITERAL("-9223372036854775807") -INTEGER_LITERAL("-9223372036854775808") -INTEGER_LITERAL("-9223372036854775809") -INTEGER_LITERAL("-18446744073709551616") -INTEGER_LITERAL("18446744073709551617") -INTEGER_LITERAL("18446744073709551700") -INTEGER_LITERAL("00") -INTEGER_LITERAL("01") -INTEGER_LITERAL("0123456701234567012345") +NEGATIVE_INTEGER_LITERAL("-9223372036854775807") +NEGATIVE_INTEGER_LITERAL("-9223372036854775808") +NEGATIVE_INTEGER_LITERAL("-9223372036854775809") +NEGATIVE_INTEGER_LITERAL("-18446744073709551616") +POSITIVE_INTEGER_LITERAL("18446744073709551617") +POSITIVE_INTEGER_LITERAL("18446744073709551700") +POSITIVE_INTEGER_LITERAL("00") +POSITIVE_INTEGER_LITERAL("01") +POSITIVE_INTEGER_LITERAL("0123456701234567012345") LONG_LITERAL("0123456701234567012345L") -INTEGER_LITERAL("0777777777777777777777") -INTEGER_LITERAL("0100000000000000000000") -INTEGER_LITERAL("0177777777777777777777") -INTEGER_LITERAL("-00") -INTEGER_LITERAL("-01") -INTEGER_LITERAL("-0123456701234567012345") +POSITIVE_INTEGER_LITERAL("0777777777777777777777") +POSITIVE_INTEGER_LITERAL("0100000000000000000000") +POSITIVE_INTEGER_LITERAL("0177777777777777777777") +NEGATIVE_INTEGER_LITERAL("-00") +NEGATIVE_INTEGER_LITERAL("-01") +NEGATIVE_INTEGER_LITERAL("-0123456701234567012345") LONG_LITERAL("-0123456701234567012345L") -INTEGER_LITERAL("-0777777777777777777777") -INTEGER_LITERAL("-0100000000000000000000") -INTEGER_LITERAL("-0100000000000000000001") -INTEGER_LITERAL("-0177777777777777777777") -INTEGER_LITERAL("-02000000000000000000000")
\ No newline at end of file +NEGATIVE_INTEGER_LITERAL("-0777777777777777777777") +NEGATIVE_INTEGER_LITERAL("-0100000000000000000000") +NEGATIVE_INTEGER_LITERAL("-0100000000000000000001") +NEGATIVE_INTEGER_LITERAL("-0177777777777777777777") +NEGATIVE_INTEGER_LITERAL("-02000000000000000000000")
\ No newline at end of file diff --git a/smali/src/test/resources/LexerTest/MiscTest.tokens b/smali/src/test/resources/LexerTest/MiscTest.tokens index 841c9935..b42f2514 100644 --- a/smali/src/test/resources/LexerTest/MiscTest.tokens +++ b/smali/src/test/resources/LexerTest/MiscTest.tokens @@ -74,5 +74,5 @@ OFFSET("+0777") OFFSET("+0x1234ABC") OFFSET("+1234") -OFFSET("+0") INTEGER_LITERAL("8") +OFFSET("+0") POSITIVE_INTEGER_LITERAL("8") INVALID_TOKEN("+")
\ No newline at end of file diff --git a/smali/src/test/resources/LexerTest/RealSmaliFileTest.tokens b/smali/src/test/resources/LexerTest/RealSmaliFileTest.tokens index fc63c92c..562530df 100644 --- a/smali/src/test/resources/LexerTest/RealSmaliFileTest.tokens +++ b/smali/src/test/resources/LexerTest/RealSmaliFileTest.tokens @@ -21,7 +21,7 @@ SIMPLE_NAME("CARD_MAX_APPS") COLON(":") PRIMITIVE_TYPE("I") EQUAL("=") -INTEGER_LITERAL("0x8") +POSITIVE_INTEGER_LITERAL("0x8") FIELD_DIRECTIVE(".field") SIMPLE_NAME("mWifiOnUid") COLON(":") @@ -157,14 +157,14 @@ OPEN_PAREN("(") CLOSE_PAREN(")") VOID_TYPE("V") REGISTERS_DIRECTIVE(".registers") -INTEGER_LITERAL("1") +POSITIVE_INTEGER_LITERAL("1") PROLOGUE_DIRECTIVE(".prologue") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("180") +POSITIVE_INTEGER_LITERAL("180") INSTRUCTION_FORMAT11n("const/4") REGISTER("v0") COMMA(",") -INTEGER_LITERAL("0x0") +POSITIVE_INTEGER_LITERAL("0x0") INSTRUCTION_FORMAT21c_FIELD("sput") REGISTER("v0") COMMA(",") @@ -174,11 +174,11 @@ SIMPLE_NAME("sKernelWakelockUpdateVersion") COLON(":") PRIMITIVE_TYPE("I") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("182") +POSITIVE_INTEGER_LITERAL("182") INSTRUCTION_FORMAT11n("const/4") REGISTER("v0") COMMA(",") -INTEGER_LITERAL("0x6") +POSITIVE_INTEGER_LITERAL("0x6") INSTRUCTION_FORMAT22c_TYPE("new-array") REGISTER("v0") COMMA(",") @@ -199,7 +199,7 @@ SIMPLE_NAME("PROC_WAKELOCKS_FORMAT") COLON(":") ARRAY_DESCRIPTOR("[I") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("3495") +POSITIVE_INTEGER_LITERAL("3495") INSTRUCTION_FORMAT21c_TYPE("new-instance") REGISTER("v0") COMMA(",") @@ -225,12 +225,12 @@ COLON(":") CLASS_DESCRIPTOR("Landroid/os/Parcelable$Creator;") INSTRUCTION_FORMAT10x("return-void") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("182") +POSITIVE_INTEGER_LITERAL("182") INSTRUCTION_FORMAT10x("nop") COLON(":") SIMPLE_NAME("array_14") ARRAY_DATA_DIRECTIVE(".array-data") -INTEGER_LITERAL("0x4") +POSITIVE_INTEGER_LITERAL("0x4") BYTE_LITERAL("0x9t") BYTE_LITERAL("0x10t") BYTE_LITERAL("0x0t") @@ -265,12 +265,12 @@ CLASS_DESCRIPTOR("Lcom/android/internal/telephony/cdma/CDMAPhone;") CLOSE_PAREN(")") VOID_TYPE("V") REGISTERS_DIRECTIVE(".registers") -INTEGER_LITERAL("2") +POSITIVE_INTEGER_LITERAL("2") PARAMETER_DIRECTIVE(".parameter") STRING_LITERAL("\"phone\"") PROLOGUE_DIRECTIVE(".prologue") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("42") +POSITIVE_INTEGER_LITERAL("42") INSTRUCTION_FORMAT35c_METHOD("invoke-direct") OPEN_BRACE("{") REGISTER("p0") @@ -286,7 +286,7 @@ CLASS_DESCRIPTOR("Lcom/android/internal/telephony/PhoneBase;") CLOSE_PAREN(")") VOID_TYPE("V") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("43") +POSITIVE_INTEGER_LITERAL("43") INSTRUCTION_FORMAT10x("return-void") END_METHOD_DIRECTIVE(".end method") METHOD_DIRECTIVE(".method") @@ -297,19 +297,19 @@ PRIMITIVE_TYPE("I") CLOSE_PAREN(")") CLASS_DESCRIPTOR("Ljava/lang/String;") REGISTERS_DIRECTIVE(".registers") -INTEGER_LITERAL("3") +POSITIVE_INTEGER_LITERAL("3") PARAMETER_DIRECTIVE(".parameter") STRING_LITERAL("\"efid\"") PROLOGUE_DIRECTIVE(".prologue") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("71") +POSITIVE_INTEGER_LITERAL("71") INSTRUCTION_FORMAT31t("sparse-switch") REGISTER("p1") COMMA(",") COLON(":") SIMPLE_NAME("sswitch_data_c") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("77") +POSITIVE_INTEGER_LITERAL("77") INSTRUCTION_FORMAT35c_METHOD("invoke-virtual") OPEN_BRACE("{") REGISTER("p0") @@ -331,7 +331,7 @@ SIMPLE_NAME("goto_7") INSTRUCTION_FORMAT11x("return-object") REGISTER("v0") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("75") +POSITIVE_INTEGER_LITERAL("75") COLON(":") SIMPLE_NAME("sswitch_8") INSTRUCTION_FORMAT21c_STRING("const-string") @@ -342,20 +342,20 @@ INSTRUCTION_FORMAT10t("goto") COLON(":") SIMPLE_NAME("goto_7") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("71") +POSITIVE_INTEGER_LITERAL("71") INSTRUCTION_FORMAT10x("nop") COLON(":") SIMPLE_NAME("sswitch_data_c") SPARSE_SWITCH_DIRECTIVE(".sparse-switch") -INTEGER_LITERAL("0x6f32") +POSITIVE_INTEGER_LITERAL("0x6f32") ARROW("->") COLON(":") SIMPLE_NAME("sswitch_8") -INTEGER_LITERAL("0x6f3c") +POSITIVE_INTEGER_LITERAL("0x6f3c") ARROW("->") COLON(":") SIMPLE_NAME("sswitch_8") -INTEGER_LITERAL("0x6f41") +POSITIVE_INTEGER_LITERAL("0x6f41") ARROW("->") COLON(":") SIMPLE_NAME("sswitch_8") @@ -368,19 +368,19 @@ PRIMITIVE_TYPE("I") CLOSE_PAREN(")") CLASS_DESCRIPTOR("Lcom/android/internal/telephony/IccCardStatus$CardState;") REGISTERS_DIRECTIVE(".registers") -INTEGER_LITERAL("6") +POSITIVE_INTEGER_LITERAL("6") PARAMETER_DIRECTIVE(".parameter") STRING_LITERAL("\"state\"") PROLOGUE_DIRECTIVE(".prologue") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("59") +POSITIVE_INTEGER_LITERAL("59") INSTRUCTION_FORMAT31t("packed-switch") REGISTER("p1") COMMA(",") COLON(":") SIMPLE_NAME("pswitch_data_26") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("64") +POSITIVE_INTEGER_LITERAL("64") INSTRUCTION_FORMAT21c_TYPE("new-instance") REGISTER("v1") COMMA(",") @@ -466,7 +466,7 @@ VOID_TYPE("V") INSTRUCTION_FORMAT11x("throw") REGISTER("v1") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("60") +POSITIVE_INTEGER_LITERAL("60") COLON(":") SIMPLE_NAME("pswitch_1c") INSTRUCTION_FORMAT21c_FIELD("sget-object") @@ -478,7 +478,7 @@ SIMPLE_NAME("CARDSTATE_ABSENT") COLON(":") CLASS_DESCRIPTOR("Lcom/android/internal/telephony/IccCardStatus$CardState;") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("67") +POSITIVE_INTEGER_LITERAL("67") LOCAL_DIRECTIVE(".local") REGISTER("v0") COMMA(",") @@ -490,7 +490,7 @@ SIMPLE_NAME("goto_1e") INSTRUCTION_FORMAT11x("return-object") REGISTER("v0") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("61") +POSITIVE_INTEGER_LITERAL("61") END_LOCAL_DIRECTIVE(".end local") REGISTER("v0") COLON(":") @@ -509,7 +509,7 @@ INSTRUCTION_FORMAT10t("goto") COLON(":") SIMPLE_NAME("goto_1e") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("62") +POSITIVE_INTEGER_LITERAL("62") END_LOCAL_DIRECTIVE(".end local") REGISTER("v0") COLON(":") @@ -528,12 +528,12 @@ INSTRUCTION_FORMAT10t("goto") COLON(":") SIMPLE_NAME("goto_1e") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("59") +POSITIVE_INTEGER_LITERAL("59") INSTRUCTION_FORMAT10x("nop") COLON(":") SIMPLE_NAME("pswitch_data_26") PACKED_SWITCH_DIRECTIVE(".packed-switch") -INTEGER_LITERAL("0x0") +POSITIVE_INTEGER_LITERAL("0x0") COLON(":") SIMPLE_NAME("pswitch_1c") COLON(":") @@ -550,7 +550,7 @@ PARAM_LIST("IILjava/lang/String;ILandroid/os/Message;") CLOSE_PAREN(")") VOID_TYPE("V") REGISTERS_DIRECTIVE(".registers") -INTEGER_LITERAL("13") +POSITIVE_INTEGER_LITERAL("13") PARAMETER_DIRECTIVE(".parameter") STRING_LITERAL("\"commandInterfaceCFAction\"") PARAMETER_DIRECTIVE(".parameter") @@ -565,13 +565,13 @@ PROLOGUE_DIRECTIVE(".prologue") INSTRUCTION_FORMAT11n("const/4") REGISTER("v3") COMMA(",") -INTEGER_LITERAL("0x1") +POSITIVE_INTEGER_LITERAL("0x1") INSTRUCTION_FORMAT11n("const/4") REGISTER("v4") COMMA(",") -INTEGER_LITERAL("0x0") +POSITIVE_INTEGER_LITERAL("0x0") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("981") +POSITIVE_INTEGER_LITERAL("981") INSTRUCTION_FORMAT35c_METHOD("invoke-direct") OPEN_BRACE("{") REGISTER("p0") @@ -615,14 +615,14 @@ COMMA(",") COLON(":") SIMPLE_NAME("cond_28") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("985") +POSITIVE_INTEGER_LITERAL("985") INSTRUCTION_FORMAT21t("if-nez") REGISTER("p2") COMMA(",") COLON(":") SIMPLE_NAME("cond_2b") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("986") +POSITIVE_INTEGER_LITERAL("986") INSTRUCTION_FORMAT22c_FIELD("iget-object") REGISTER("v0") COMMA(",") @@ -636,7 +636,7 @@ CLASS_DESCRIPTOR("Lcom/android/internal/telephony/gsm/GSMPhone$MyHandler;") INSTRUCTION_FORMAT21s("const/16") REGISTER("v1") COMMA(",") -INTEGER_LITERAL("0xc") +POSITIVE_INTEGER_LITERAL("0xc") INSTRUCTION_FORMAT35c_METHOD("invoke-virtual") OPEN_BRACE("{") REGISTER("p0") @@ -687,7 +687,7 @@ CLASS_DESCRIPTOR("Landroid/os/Message;") INSTRUCTION_FORMAT11x("move-result-object") REGISTER("v6") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("991") +POSITIVE_INTEGER_LITERAL("991") LOCAL_DIRECTIVE(".local") REGISTER("v6") COMMA(",") @@ -737,7 +737,7 @@ PARAM_LIST("IIILjava/lang/String;ILandroid/os/Message;") CLOSE_PAREN(")") VOID_TYPE("V") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("998") +POSITIVE_INTEGER_LITERAL("998") END_LOCAL_DIRECTIVE(".end local") REGISTER("v6") COLON(":") @@ -750,12 +750,12 @@ REGISTER("v2") COMMA(",") REGISTER("v4") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("986") +POSITIVE_INTEGER_LITERAL("986") INSTRUCTION_FORMAT10t("goto") COLON(":") SIMPLE_NAME("goto_1b") LINE_DIRECTIVE(".line") -INTEGER_LITERAL("989") +POSITIVE_INTEGER_LITERAL("989") COLON(":") SIMPLE_NAME("cond_2b") INSTRUCTION_FORMAT12x_OR_ID("move-object") diff --git a/smali/src/test/resources/LexerTest/ShortLiteralTest.tokens b/smali/src/test/resources/LexerTest/ShortLiteralTest.tokens index d0a1fabf..d8521c1b 100644 --- a/smali/src/test/resources/LexerTest/ShortLiteralTest.tokens +++ b/smali/src/test/resources/LexerTest/ShortLiteralTest.tokens @@ -1,49 +1,49 @@ SHORT_LITERAL("0x0S") -INTEGER_LITERAL("0x00") +POSITIVE_INTEGER_LITERAL("0x00") SHORT_LITERAL("0x1s") -INTEGER_LITERAL("0x1234") +POSITIVE_INTEGER_LITERAL("0x1234") SHORT_LITERAL("0x7fffS") SHORT_LITERAL("0x8000s") -INTEGER_LITERAL("0xFFFF") -INTEGER_LITERAL("-0x00") -INTEGER_LITERAL("-0x01") -INTEGER_LITERAL("-01234") +POSITIVE_INTEGER_LITERAL("0xFFFF") +NEGATIVE_INTEGER_LITERAL("-0x00") +NEGATIVE_INTEGER_LITERAL("-0x01") +NEGATIVE_INTEGER_LITERAL("-01234") SHORT_LITERAL("-01234s") -INTEGER_LITERAL("-0x8000") -INTEGER_LITERAL("-0x1fff") +NEGATIVE_INTEGER_LITERAL("-0x8000") +NEGATIVE_INTEGER_LITERAL("-0x1fff") SHORT_LITERAL("-0x1fffS") -INTEGER_LITERAL("-0x8001") -INTEGER_LITERAL("-0xFFFF") -INTEGER_LITERAL("-0x100000") -INTEGER_LITERAL("0") -INTEGER_LITERAL("1") -INTEGER_LITERAL("12345") +NEGATIVE_INTEGER_LITERAL("-0x8001") +NEGATIVE_INTEGER_LITERAL("-0xFFFF") +NEGATIVE_INTEGER_LITERAL("-0x100000") +POSITIVE_INTEGER_LITERAL("0") +POSITIVE_INTEGER_LITERAL("1") +POSITIVE_INTEGER_LITERAL("12345") SHORT_LITERAL("12345s") -INTEGER_LITERAL("32767") -INTEGER_LITERAL("32678") +POSITIVE_INTEGER_LITERAL("32767") +POSITIVE_INTEGER_LITERAL("32678") SHORT_LITERAL("65535S") -INTEGER_LITERAL("-0") -INTEGER_LITERAL("-1") +NEGATIVE_INTEGER_LITERAL("-0") +NEGATIVE_INTEGER_LITERAL("-1") SHORT_LITERAL("-12345S") -INTEGER_LITERAL("-32767") +NEGATIVE_INTEGER_LITERAL("-32767") SHORT_LITERAL("-32768s") SHORT_LITERAL("-32679s") SHORT_LITERAL("-65535s") -INTEGER_LITERAL("65536") -INTEGER_LITERAL("65600") -INTEGER_LITERAL("00") -INTEGER_LITERAL("01") -INTEGER_LITERAL("012345") +POSITIVE_INTEGER_LITERAL("65536") +POSITIVE_INTEGER_LITERAL("65600") +POSITIVE_INTEGER_LITERAL("00") +POSITIVE_INTEGER_LITERAL("01") +POSITIVE_INTEGER_LITERAL("012345") SHORT_LITERAL("012345s") -INTEGER_LITERAL("077777") -INTEGER_LITERAL("0100000") -INTEGER_LITERAL("0177777") -INTEGER_LITERAL("-00") -INTEGER_LITERAL("-01") -INTEGER_LITERAL("-012345") +POSITIVE_INTEGER_LITERAL("077777") +POSITIVE_INTEGER_LITERAL("0100000") +POSITIVE_INTEGER_LITERAL("0177777") +NEGATIVE_INTEGER_LITERAL("-00") +NEGATIVE_INTEGER_LITERAL("-01") +NEGATIVE_INTEGER_LITERAL("-012345") SHORT_LITERAL("-012345S") -INTEGER_LITERAL("-077777") -INTEGER_LITERAL("-0100000") -INTEGER_LITERAL("-0100001") -INTEGER_LITERAL("-0177777") -INTEGER_LITERAL("0200000")
\ No newline at end of file +NEGATIVE_INTEGER_LITERAL("-077777") +NEGATIVE_INTEGER_LITERAL("-0100000") +NEGATIVE_INTEGER_LITERAL("-0100001") +NEGATIVE_INTEGER_LITERAL("-0177777") +POSITIVE_INTEGER_LITERAL("0200000")
\ No newline at end of file |