summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r--src/shared/cplusplus/Lexer.cpp4
-rw-r--r--src/shared/cplusplus/Parser.cpp10
-rw-r--r--src/shared/cplusplus/Token.cpp3
-rw-r--r--src/shared/cplusplus/Token.h3
-rw-r--r--src/shared/cplusplus/TranslationUnit.cpp2
5 files changed, 10 insertions, 12 deletions
diff --git a/src/shared/cplusplus/Lexer.cpp b/src/shared/cplusplus/Lexer.cpp
index f463201f71..2229b470bd 100644
--- a/src/shared/cplusplus/Lexer.cpp
+++ b/src/shared/cplusplus/Lexer.cpp
@@ -348,7 +348,7 @@ void Lexer::scan_helper(Token *tok)
}
} while (_yychar);
int yylen = _currentChar - yytext;
- tok->kind = T_INT_LITERAL;
+ tok->kind = T_NUMERIC_LITERAL;
if (control())
tok->number = control()->findOrInsertNumericLiteral(yytext, yylen);
} else {
@@ -702,7 +702,7 @@ void Lexer::scan_helper(Token *tok)
}
}
int yylen = _currentChar - yytext;
- tok->kind = T_INT_LITERAL;
+ tok->kind = T_NUMERIC_LITERAL;
if (control())
tok->number = control()->findOrInsertNumericLiteral(yytext, yylen);
break;
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 96e7f86cc2..a005f7250b 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -2715,8 +2715,9 @@ bool Parser::parseBoolLiteral(ExpressionAST *&node)
bool Parser::parseNumericLiteral(ExpressionAST *&node)
{
- if (LA() == T_INT_LITERAL || LA() == T_FLOAT_LITERAL ||
- LA() == T_CHAR_LITERAL || LA() == T_WIDE_CHAR_LITERAL) {
+ if (LA() == T_NUMERIC_LITERAL ||
+ LA() == T_CHAR_LITERAL ||
+ LA() == T_WIDE_CHAR_LITERAL) {
NumericLiteralAST *ast = new (_pool) NumericLiteralAST;
ast->literal_token = consumeToken();
node = ast;
@@ -2743,10 +2744,9 @@ bool Parser::parsePrimaryExpression(ExpressionAST *&node)
case T_WIDE_STRING_LITERAL:
return parseStringLiteral(node);
- case T_INT_LITERAL:
- case T_FLOAT_LITERAL:
- case T_CHAR_LITERAL:
+ case T_CHAR_LITERAL: // ### FIXME don't use NumericLiteral for chars
case T_WIDE_CHAR_LITERAL:
+ case T_NUMERIC_LITERAL:
return parseNumericLiteral(node);
case T_TRUE:
diff --git a/src/shared/cplusplus/Token.cpp b/src/shared/cplusplus/Token.cpp
index 37a95d6cd7..bda5ecc583 100644
--- a/src/shared/cplusplus/Token.cpp
+++ b/src/shared/cplusplus/Token.cpp
@@ -118,8 +118,7 @@ const char *Token::spell() const
case T_IDENTIFIER:
return identifier->chars();
- case T_INT_LITERAL:
- case T_FLOAT_LITERAL:
+ case T_NUMERIC_LITERAL:
case T_CHAR_LITERAL:
case T_STRING_LITERAL:
case T_AT_STRING_LITERAL:
diff --git a/src/shared/cplusplus/Token.h b/src/shared/cplusplus/Token.h
index 6774dba336..99b986c7ab 100644
--- a/src/shared/cplusplus/Token.h
+++ b/src/shared/cplusplus/Token.h
@@ -64,8 +64,7 @@ enum Kind {
T_IDENTIFIER,
T_FIRST_LITERAL,
- T_INT_LITERAL = T_FIRST_LITERAL,
- T_FLOAT_LITERAL,
+ T_NUMERIC_LITERAL = T_FIRST_LITERAL,
T_CHAR_LITERAL,
T_WIDE_CHAR_LITERAL,
T_STRING_LITERAL,
diff --git a/src/shared/cplusplus/TranslationUnit.cpp b/src/shared/cplusplus/TranslationUnit.cpp
index db5fbe1c05..64145342b8 100644
--- a/src/shared/cplusplus/TranslationUnit.cpp
+++ b/src/shared/cplusplus/TranslationUnit.cpp
@@ -208,7 +208,7 @@ void TranslationUnit::tokenize()
} else {
if (! tk.newline && tk.is(T_IDENTIFIER) && tk.identifier == lineId)
lex(&tk);
- if (! tk.newline && tk.is(T_INT_LITERAL)) {
+ if (! tk.newline && tk.is(T_NUMERIC_LITERAL)) {
unsigned line = (unsigned) strtoul(tk.spell(), 0, 0);
lex(&tk);
if (! tk.newline && tk.is(T_STRING_LITERAL)) {