mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-25 17:00:36 -09:00
Merge remote-tracking branch
'origin/GP-6553_emteere_PR-9021_CUB3D_microsoft_i64_suffix' (Closes #9021, Closes #8291, Closes #5564))
This commit is contained in:
@@ -1079,11 +1079,11 @@ SKIP :
|
||||
TOKEN :
|
||||
{
|
||||
<INTEGER_LITERAL :
|
||||
<DECIMAL_LITERAL> ( "ull" | "ULL" | "ul" | "UL" | "ll" | "LL" | "l" | "L" | "U" | "u")? ("i")? ( ["0"-"9"] )*
|
||||
<DECIMAL_LITERAL> ("u"|"U")? ("ll"|"LL"|"l"|"L")? (("i"|"I") ("8"|"16"|"32"|"64"|"128"))?
|
||||
|
|
||||
<HEX_LITERAL> ( "ull" | "ULL" | "ul" | "UL" | "ll" | "LL" | "l" | "L" | "U" | "u")? ("i")? ( ["0"-"9"] )*
|
||||
<HEX_LITERAL> ("u"|"U")? ("ll"|"LL"|"l"|"L")? (("i"|"I") ("8"|"16"|"32"|"64"|"128"))?
|
||||
|
|
||||
<OCTAL_LITERAL> ( "ull" | "ULL" | "ul" | "UL" | "ll" | "LL" | "l" | "L" | "U" | "u")? ("i")? ( ["0"-"9"] )*
|
||||
<OCTAL_LITERAL> ("u"|"U")? ("ll"|"LL"|"l"|"L")? (("i"|"I") ("8"|"16"|"32"|"64"|"128"))?
|
||||
>
|
||||
|
|
||||
<#DECIMAL_LITERAL : [ "1"-"9" ] ( [ "0"-"9" ] )*>
|
||||
@@ -3079,39 +3079,46 @@ Object Constant() : {
|
||||
(
|
||||
t = <INTEGER_LITERAL>
|
||||
{
|
||||
String sval = t.image;
|
||||
if (sval.endsWith("i8") || sval.endsWith("I8")) {
|
||||
String sval = t.image.toLowerCase();
|
||||
if (sval.endsWith("i8")) {
|
||||
sval = sval.substring(0,sval.length()-2);
|
||||
}
|
||||
else if (sval.endsWith("i16") || sval.endsWith("I16")) {
|
||||
else if (sval.endsWith("i16")) {
|
||||
sval = sval.substring(0,sval.length()-3);
|
||||
}
|
||||
else if (sval.endsWith("i32") || sval.endsWith("I32")) {
|
||||
else if (sval.endsWith("i32")) {
|
||||
sval = sval.substring(0,sval.length()-3);
|
||||
}
|
||||
else if (sval.endsWith("i64") || sval.endsWith("I64")) {
|
||||
else if (sval.endsWith("i64")) {
|
||||
sval = sval.substring(0,sval.length()-3);
|
||||
}
|
||||
else if (sval.endsWith("i128")) {
|
||||
sval = sval.substring(0,sval.length()-4);
|
||||
}
|
||||
|
||||
if (sval.endsWith("ull") || sval.endsWith("ULL")) {
|
||||
if (sval.endsWith("ull")) {
|
||||
sval = sval.substring(0,sval.length()-3);
|
||||
}
|
||||
else if (sval.endsWith("ll") || sval.endsWith("LL")) {
|
||||
else if (sval.endsWith("ll")) {
|
||||
sval = sval.substring(0,sval.length()-2);
|
||||
}
|
||||
else if (sval.endsWith("ul") || sval.endsWith("UL")) {
|
||||
else if (sval.endsWith("ul")) {
|
||||
sval = sval.substring(0,sval.length()-2);
|
||||
}
|
||||
else if (sval.endsWith("l") || sval.endsWith("L")) {
|
||||
else if (sval.endsWith("l")) {
|
||||
sval = sval.substring(0,sval.length()-1);
|
||||
}
|
||||
else if (sval.endsWith("u") || sval.endsWith("U")) {
|
||||
else if (sval.endsWith("u")) {
|
||||
sval = sval.substring(0,sval.length()-1);
|
||||
}
|
||||
if (sval.startsWith("0x") || sval.startsWith("0X")) {
|
||||
if (sval.startsWith("0x")) {
|
||||
BigInteger bigConst = new BigInteger(sval.substring(2), 16);
|
||||
obj = Long.valueOf(bigConst.longValue());
|
||||
}
|
||||
else if (sval.startsWith("0")) {
|
||||
BigInteger bigConst = new BigInteger(sval, 8);
|
||||
obj = Long.valueOf(bigConst.longValue());
|
||||
}
|
||||
else {
|
||||
BigInteger bigConst = new BigInteger(sval);
|
||||
obj = Long.valueOf(bigConst.longValue());
|
||||
|
||||
@@ -1189,8 +1189,37 @@ void multilineStrings(void)
|
||||
char b[] = "This is a "
|
||||
"multiline string.";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
** Constants
|
||||
**/
|
||||
/* Decimal */
|
||||
int d_int = 123;
|
||||
unsigned d_uint = 4000000123u;
|
||||
long d_long = 1000000123l;
|
||||
unsigned long d_ulong = 7000000001ul;
|
||||
long long d_llong = 6000000002LL;
|
||||
unsigned long long d_ullong = 50000000003ull;
|
||||
__int64 d_i64 = 500000000004I64;
|
||||
unsigned __int64 d_ui64 = 5000000000005ui64;
|
||||
/* Octal */
|
||||
int o_int = 01234;
|
||||
unsigned o_uint = 04000000012u;
|
||||
long o_long = 02000000024l;
|
||||
unsigned long o_ulong = 01000000001UL;
|
||||
long long o_llong = 01100000000002ll;
|
||||
unsigned long long o_ullong = 01110000000000003Ull;
|
||||
__int64 o_i64 = 0111100000000000004i64;
|
||||
unsigned __int64 o_ui64 = 0222200000000000005uI64;
|
||||
/* Hexadecimal */
|
||||
int h_int = 0x123b;
|
||||
unsigned h_uint = 0XB0000012u;
|
||||
long h_long = 0x20000034l;
|
||||
unsigned long h_ulong = 0XA0000056uL;
|
||||
long long h_llong = 0x8b00000000000ll;
|
||||
unsigned long long h_ullong = 0xAC4000000000012uLL;
|
||||
__int64 h_i64 = 0x6d2200000000023I64;
|
||||
unsigned __int64 h_ui64 = 0x7e4400000000034Ui64;
|
||||
|
||||
/**
|
||||
** #line in structure/function body
|
||||
|
||||
Reference in New Issue
Block a user