CPlusPlus: Fix parsing of <: :> <% %> %: digraphs

See 2.5/2.12. Most useful feature ever.

Change-Id: I3f92256733e15078df56205dba9746ffff8ed145
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
hjk
2013-10-05 20:49:54 +02:00
parent 2187195995
commit 0db5579592

View File

@@ -269,6 +269,9 @@ void Lexer::scan_helper(Token *tok)
if (_yychar == ':') {
yyinp();
tok->f.kind = T_COLON_COLON;
} else if (_yychar == '>') {
yyinp();
tok->f.kind = T_RBRACKET;
} else {
tok->f.kind = T_COLON;
}
@@ -428,6 +431,12 @@ void Lexer::scan_helper(Token *tok)
if (_yychar == '=') {
yyinp();
tok->f.kind = T_PERCENT_EQUAL;
} else if (_yychar == '>') {
yyinp();
tok->f.kind = T_RBRACE;
} else if (_yychar == ':') {
yyinp();
tok->f.kind = T_POUND;
} else {
tok->f.kind = T_PERCENT;
}
@@ -515,6 +524,12 @@ void Lexer::scan_helper(Token *tok)
} else if (_yychar == '=') {
yyinp();
tok->f.kind = T_LESS_EQUAL;
} else if (_yychar == ':') {
yyinp();
tok->f.kind = T_LBRACKET;
} else if (_yychar == '%') {
yyinp();
tok->f.kind = T_LBRACE;
} else {
tok->f.kind = T_LESS;
}