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>
This commit is contained in:
Leandro Melo
2012-06-05 17:24:53 +02:00
committed by hjk
parent 88dcefe0e1
commit b88a5f5d38

View File

@@ -37,12 +37,16 @@ enum Kind {
T_FIRST_LITERAL, T_FIRST_LITERAL,
T_NUMERIC_LITERAL = 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_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_WIDE_STRING_LITERAL,
T_AT_STRING_LITERAL, T_AT_STRING_LITERAL,
T_ANGLE_STRING_LITERAL, T_ANGLE_STRING_LITERAL,
T_LAST_STRING_LITERAL = T_ANGLE_STRING_LITERAL,
T_LAST_LITERAL = T_ANGLE_STRING_LITERAL, T_LAST_LITERAL = T_ANGLE_STRING_LITERAL,
T_FIRST_OPERATOR, T_FIRST_OPERATOR,
@@ -287,6 +291,12 @@ public:
inline bool isLiteral() const inline bool isLiteral() const
{ return f.kind >= T_FIRST_LITERAL && f.kind <= T_LAST_LITERAL; } { 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 inline bool isOperator() const
{ return f.kind >= T_FIRST_OPERATOR && f.kind <= T_LAST_OPERATOR; } { return f.kind >= T_FIRST_OPERATOR && f.kind <= T_LAST_OPERATOR; }