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:
Ryan Kurtz
2026-03-12 04:55:45 -04:00
2 changed files with 51 additions and 15 deletions

View File

@@ -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());

View File

@@ -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