C++: fix lexing POUND_POUND token with digraphs.

Change-Id: I9204b827c60b283cc4e6b88c810b31eb7587c7db
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
This commit is contained in:
Francois Ferrand
2015-03-12 23:15:38 +01:00
parent 41b232962a
commit dc7b6ca6c3
2 changed files with 40 additions and 2 deletions

View File

@@ -263,8 +263,8 @@ void Lexer::scan_helper(Token *tok)
case '#':
if (_yychar == '#') {
tok->f.kind = T_POUND_POUND;
yyinp();
tok->f.kind = T_POUND_POUND;
} else {
tok->f.kind = T_POUND;
}
@@ -515,7 +515,13 @@ void Lexer::scan_helper(Token *tok)
tok->f.kind = T_RBRACE;
} else if (_yychar == ':') {
yyinp();
tok->f.kind = T_POUND;
if (_yychar == '%' && *(_currentChar + 1) == ':') {
yyinp();
yyinp();
tok->f.kind = T_POUND_POUND;
} else {
tok->f.kind = T_POUND;
}
} else {
tok->f.kind = T_PERCENT;
}