From 3e54a65a699ca34cec47c7b580dcbdb7e4af5001 Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Fri, 10 Jul 2009 15:44:47 +0200
Subject: [PATCH] Replaced T_INT_LITERAL and T_FLOAT_LITERAL with
 T_NUMERIC_LITERAL.

---
 src/libs/cplusplus/pp-engine.cpp         |  2 +-
 src/plugins/cppeditor/cpphighlighter.cpp |  2 +-
 src/shared/cplusplus/Lexer.cpp           |  4 ++--
 src/shared/cplusplus/Parser.cpp          | 10 +++++-----
 src/shared/cplusplus/Token.cpp           |  3 +--
 src/shared/cplusplus/Token.h             |  3 +--
 src/shared/cplusplus/TranslationUnit.cpp |  2 +-
 7 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp
index 5be562dcfa2..35ddf3ace82 100644
--- a/src/libs/cplusplus/pp-engine.cpp
+++ b/src/libs/cplusplus/pp-engine.cpp
@@ -240,7 +240,7 @@ protected:
 
     bool process_primary()
     {
-        if ((*_lex)->is(T_INT_LITERAL)) {
+        if ((*_lex)->is(T_NUMERIC_LITERAL)) {
             int base = 10;
             const QByteArray spell = tokenSpell();
             if (spell.at(0) == '0') {
diff --git a/src/plugins/cppeditor/cpphighlighter.cpp b/src/plugins/cppeditor/cpphighlighter.cpp
index 4a60414ba11..2f016c4d37d 100644
--- a/src/plugins/cppeditor/cpphighlighter.cpp
+++ b/src/plugins/cppeditor/cpphighlighter.cpp
@@ -125,7 +125,7 @@ void CppHighlighter::highlightBlock(const QString &text)
                    (tk.isKeyword() || tk.is(T_IDENTIFIER)) && isPPKeyword(tk.text()))
             setFormat(tk.position(), tk.length(), m_formats[CppPreprocessorFormat]);
 
-        else if (tk.is(T_INT_LITERAL) || tk.is(T_FLOAT_LITERAL))
+        else if (tk.is(T_NUMERIC_LITERAL))
             setFormat(tk.position(), tk.length(), m_formats[CppNumberFormat]);
 
         else if (tk.is(T_STRING_LITERAL) || tk.is(T_CHAR_LITERAL) || tk.is(T_ANGLE_STRING_LITERAL) ||
diff --git a/src/shared/cplusplus/Lexer.cpp b/src/shared/cplusplus/Lexer.cpp
index f463201f716..2229b470bd2 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 96e7f86cc20..a005f7250bb 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 37a95d6cd77..bda5ecc5839 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 6774dba3361..99b986c7abb 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 db5fbe1c054..64145342b86 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)) {
-- 
GitLab