- fix: "0x3.12p+1" is treadted as a plus expression when reformatting code ( by 绣球135@qq )
This commit is contained in:
parent
6526e8caec
commit
0cc4f09c53
|
@ -3590,18 +3590,77 @@ bool ASFormatter::isInSwitchStatement() const
|
||||||
*
|
*
|
||||||
* @return whether the current '+' or '-' is in an exponent.
|
* @return whether the current '+' or '-' is in an exponent.
|
||||||
*/
|
*/
|
||||||
bool ASFormatter::isInExponent() const
|
bool ASFormatter::isInExponent() const {
|
||||||
{
|
assert (currentChar == '+' || currentChar == '-');
|
||||||
assert(currentChar == '+' || currentChar == '-');
|
|
||||||
|
|
||||||
if (charNum >= 2)
|
if (charNum >= 2) {
|
||||||
{
|
char prevPrevFormattedChar = currentLine[charNum - 2];
|
||||||
char prevPrevFormattedChar = currentLine[charNum - 2];
|
char prevFormattedChar = currentLine[charNum - 1];
|
||||||
char prevFormattedChar = currentLine[charNum - 1];
|
//XQ135 modify// return ((prevFormattedChar == 'e' || prevFormattedChar == 'E')
|
||||||
return ((prevFormattedChar == 'e' || prevFormattedChar == 'E')
|
//XQ135 modify// && (prevPrevFormattedChar == '.' || isDigit(prevPrevFormattedChar)));
|
||||||
&& (prevPrevFormattedChar == '.' || isDigit(prevPrevFormattedChar)));
|
char qian1 = prevFormattedChar; //XQ135 modify// Start
|
||||||
}
|
char qian2 = prevPrevFormattedChar; //XQ135 modify//
|
||||||
return false;
|
|
||||||
|
bool isexp = false;
|
||||||
|
int i = 2;
|
||||||
|
if (qian1 == 'e' || qian1 == 'E') {
|
||||||
|
while ((charNum - i) >= 0) {
|
||||||
|
qian2 = currentLine[charNum - i];
|
||||||
|
if (qian2 == '.' || isDigit (qian2)) {
|
||||||
|
isexp = true;
|
||||||
|
} else {
|
||||||
|
if (! (qian2 == ' ' || qian2 == '&' || qian2 == '|' || qian2 == '='
|
||||||
|
|| qian2 == 7 || qian2 == 10 || qian2 == 13 || qian2 == '~'
|
||||||
|
|| qian2 == '+' || qian2 == '-' || qian2 == '*' || qian2 == '/'
|
||||||
|
|| qian2 == '(' || qian2 == ')' || qian2 == '[' || qian2 == ']'
|
||||||
|
|| qian2 == '{' || qian2 == '}' || qian2 == ',' || qian2 == ':'
|
||||||
|
|| qian2 == ';' || qian2 == '.' || qian2 == '#' || qian2 == '<'
|
||||||
|
|| qian2 == '>' || qian2 == '^' || qian2 == '%' || qian2 == '!' )) {
|
||||||
|
isexp = false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isexp) {return true;}
|
||||||
|
|
||||||
|
if (! (qian1 == 'p' || qian1 == 'P')) {return false;}
|
||||||
|
i = 2;
|
||||||
|
while ((charNum - i) >= 0) {
|
||||||
|
qian2 = currentLine[charNum - i];
|
||||||
|
if (qian2 == '.' || isDigit (qian2) || qian2 == 'x' || qian2 == 'X'
|
||||||
|
|| (qian2 >= 'a' && qian2 <= 'f') || (qian2 >= 'A' && qian2 <= 'F')) {
|
||||||
|
if (qian2 == 'x' || qian2 == 'X') {
|
||||||
|
if ((charNum - i - 1) >= 0) {
|
||||||
|
if (currentLine[charNum - i - 1] == '0') {
|
||||||
|
if ((charNum - i - 2) >= 0) {
|
||||||
|
qian2 = currentLine[charNum - i - 2];
|
||||||
|
if (qian2 == ' ' || qian2 == '&' || qian2 == '|' || qian2 == '='
|
||||||
|
|| qian2 == 7 || qian2 == 10 || qian2 == 13 || qian2 == '~'
|
||||||
|
|| qian2 == '+' || qian2 == '-' || qian2 == '*' || qian2 == '/'
|
||||||
|
|| qian2 == '(' || qian2 == ')' || qian2 == '[' || qian2 == ']'
|
||||||
|
|| qian2 == '{' || qian2 == '}' || qian2 == ',' || qian2 == ':'
|
||||||
|
|| qian2 == ';' || qian2 == '.' || qian2 == '#' || qian2 == '<'
|
||||||
|
|| qian2 == '>' || qian2 == '^' || qian2 == '%' || qian2 == '!') {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++; //XQ135 modify// Floating-point number supporting hexadecimal representation
|
||||||
|
} //XQ135 modify// End 2024.3.24
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue