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