Fixed issue about 4+5 being made a single token, problem appeared in recent commits.
This commit is contained in:
parent
c345fa6186
commit
cb5974e94e
|
@ -322,9 +322,18 @@ void Tokenizer::tokenize(std::istream &code, const char FileName[])
|
||||||
|
|
||||||
if (strchr("#+-*/%&|^?!=<>[](){};:,.~", ch))
|
if (strchr("#+-*/%&|^?!=<>[](){};:,.~", ch))
|
||||||
{
|
{
|
||||||
if (strchr(".+-", ch) && std::isdigit(CurrentToken[0]))
|
if (ch == '.' &&
|
||||||
|
CurrentToken.length() > 0 &&
|
||||||
|
std::isdigit(CurrentToken[0]))
|
||||||
{
|
{
|
||||||
// Don't separate doubles
|
// Don't separate doubles "5.4"
|
||||||
|
}
|
||||||
|
else if (strchr("+-", ch) &&
|
||||||
|
CurrentToken.length() > 0 &&
|
||||||
|
std::isdigit(CurrentToken[0]) &&
|
||||||
|
CurrentToken[CurrentToken.length()-1] == 'e')
|
||||||
|
{
|
||||||
|
// Don't separate doubles "4.2e+10"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -999,6 +999,7 @@ private:
|
||||||
" float b = 4.2f;\n"
|
" float b = 4.2f;\n"
|
||||||
" double c = 4.2e+10;\n"
|
" double c = 4.2e+10;\n"
|
||||||
" double d = 4.2e-10;\n"
|
" double d = 4.2e-10;\n"
|
||||||
|
" int e = 4+2;\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
|
|
||||||
// tokenize..
|
// tokenize..
|
||||||
|
@ -1009,7 +1010,7 @@ private:
|
||||||
std::ostringstream ostr;
|
std::ostringstream ostr;
|
||||||
for (const Token *tok = tokenizer.tokens(); tok; tok = tok->next())
|
for (const Token *tok = tokenizer.tokens(); tok; tok = tok->next())
|
||||||
ostr << " " << tok->str();
|
ostr << " " << tok->str();
|
||||||
ASSERT_EQUALS(std::string(" void f ( ) { double a = 4.2 ; float b = 4.2f ; double c = 4.2e+10 ; double d = 4.2e-10 ; }"), ostr.str());
|
ASSERT_EQUALS(std::string(" void f ( ) { double a = 4.2 ; float b = 4.2f ; double c = 4.2e+10 ; double d = 4.2e-10 ; int e = 4 + 2 ; }"), ostr.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void tokenize_strings()
|
void tokenize_strings()
|
||||||
|
|
Loading…
Reference in New Issue