From b88a5f5d381b4279f6aa93e1400d78d910f1ed15 Mon Sep 17 00:00:00 2001
From: Leandro Melo <leandro.melo@nokia.com>
Date: Tue, 5 Jun 2012 17:24:53 +0200
Subject: [PATCH] C++: Add Token::isStringLiteral and Token::isCharLiteral

It will be particularly handy when introducing the new C++11
string/char literals: U"abc", u"abc", u8"abc", U'a', u'a'.

Change-Id: Ic250f5a7b999da322debb24fc0171aaef333f356
Reviewed-by: hjk <qthjk@ovi.com>
---
 src/libs/3rdparty/cplusplus/Token.h | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/libs/3rdparty/cplusplus/Token.h b/src/libs/3rdparty/cplusplus/Token.h
index 201c4733d2f..72dd948678b 100644
--- a/src/libs/3rdparty/cplusplus/Token.h
+++ b/src/libs/3rdparty/cplusplus/Token.h
@@ -37,12 +37,16 @@ enum Kind {
 
     T_FIRST_LITERAL,
     T_NUMERIC_LITERAL = T_FIRST_LITERAL,
-    T_CHAR_LITERAL,
+    T_FIRST_CHAR_LITERAL,
+    T_CHAR_LITERAL = T_FIRST_CHAR_LITERAL,
     T_WIDE_CHAR_LITERAL,
-    T_STRING_LITERAL,
+    T_LAST_CHAR_LITERAL = T_WIDE_CHAR_LITERAL,
+    T_FIRST_STRING_LITERAL,
+    T_STRING_LITERAL = T_FIRST_STRING_LITERAL,
     T_WIDE_STRING_LITERAL,
     T_AT_STRING_LITERAL,
     T_ANGLE_STRING_LITERAL,
+    T_LAST_STRING_LITERAL = T_ANGLE_STRING_LITERAL,
     T_LAST_LITERAL = T_ANGLE_STRING_LITERAL,
 
     T_FIRST_OPERATOR,
@@ -287,6 +291,12 @@ public:
     inline bool isLiteral() const
     { return f.kind >= T_FIRST_LITERAL && f.kind <= T_LAST_LITERAL; }
 
+    inline bool isCharLiteral() const
+    { return f.kind >= T_FIRST_CHAR_LITERAL && f.kind <= T_LAST_CHAR_LITERAL; }
+
+    inline bool isStringLiteral() const
+    { return f.kind >= T_FIRST_STRING_LITERAL && f.kind <= T_LAST_STRING_LITERAL; }
+
     inline bool isOperator() const
     { return f.kind >= T_FIRST_OPERATOR && f.kind <= T_LAST_OPERATOR; }
 
-- 
GitLab