Generate separate POSITIVE/NEGATIVE_INTEGER_LITERAL tokens
diff --git a/smali/src/main/antlr3/smaliParser.g b/smali/src/main/antlr3/smaliParser.g
index 6fb7132..26ecd96 100644
--- a/smali/src/main/antlr3/smaliParser.g
+++ b/smali/src/main/antlr3/smaliParser.g
@@ -568,7 +568,6 @@
 	|	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 @@
 
 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 231abef..2330368 100644
--- a/smali/src/main/jflex/smaliLexer.flex
+++ b/smali/src/main/jflex/smaliLexer.flex
@@ -267,7 +267,8 @@
 
 /*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 921247f..83677af 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 5f781ad..b3e084a 100644
--- a/smali/src/test/resources/LexerTest/CommentTest.tokens
+++ b/smali/src/test/resources/LexerTest/CommentTest.tokens
@@ -2,5 +2,5 @@
 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 0945971..82c9918 100644
--- a/smali/src/test/resources/LexerTest/FloatLiteralTest.tokens
+++ b/smali/src/test/resources/LexerTest/FloatLiteralTest.tokens
@@ -209,7 +209,7 @@
 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 b829c39..a3610ab 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 f8ab03e..f67deb3 100644
--- a/smali/src/test/resources/LexerTest/LongLiteralTest.tokens
+++ b/smali/src/test/resources/LexerTest/LongLiteralTest.tokens
@@ -10,39 +10,39 @@
 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 841c993..b42f251 100644
--- a/smali/src/test/resources/LexerTest/MiscTest.tokens
+++ b/smali/src/test/resources/LexerTest/MiscTest.tokens
@@ -74,5 +74,5 @@
 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 fc63c92..562530d 100644
--- a/smali/src/test/resources/LexerTest/RealSmaliFileTest.tokens
+++ b/smali/src/test/resources/LexerTest/RealSmaliFileTest.tokens
@@ -21,7 +21,7 @@
 COLON(":")
 PRIMITIVE_TYPE("I")
 EQUAL("=")
-INTEGER_LITERAL("0x8")
+POSITIVE_INTEGER_LITERAL("0x8")
 FIELD_DIRECTIVE(".field")
 SIMPLE_NAME("mWifiOnUid")
 COLON(":")
@@ -157,14 +157,14 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 @@
 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 d0a1fab..d8521c1 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