CPlusPlus: Fix parsing of ??< ??> ??( ??) trigraphs

Almost most useful feature ever.

Task-number: QTCREATORBUG-2474
Change-Id: If1ad661fab58ffb4a0b9ddb8ba771f2fde3b54ec
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
hjk
2013-11-26 15:23:28 +01:00
committed by Nikolai Kosjar
parent d179a59650
commit 5c5240815a
2 changed files with 25 additions and 1 deletions

View File

@@ -297,7 +297,24 @@ void Lexer::scan_helper(Token *tok)
break;
case '?':
tok->f.kind = T_QUESTION;
if (_yychar == '?') {
yyinp();
if (_yychar == '(') {
yyinp();
tok->f.kind = T_LBRACKET;
} else if (_yychar == ')') {
yyinp();
tok->f.kind = T_RBRACKET;
} else if (_yychar == '<') {
yyinp();
tok->f.kind = T_LBRACE;
} else if (_yychar == '>') {
yyinp();
tok->f.kind = T_RBRACE;
}
} else {
tok->f.kind = T_QUESTION;
}
break;
case '+':