diff --git a/src/shared/cplusplus/Lexer.cpp b/src/shared/cplusplus/Lexer.cpp index a0cc9495d831e247e9f3c7d65d2e7d442bebeaa1..f8f1b6f1339ba993f20e7c31bc4385fe1d1bf3bc 100644 --- a/src/shared/cplusplus/Lexer.cpp +++ b/src/shared/cplusplus/Lexer.cpp @@ -603,7 +603,7 @@ void Lexer::scan_helper(Token *tok) do { yyinp(); - if (! (isalnum(_yychar) || _yychar == '_')) + if (! (isalnum(_yychar) || _yychar == '_' || _yychar == '$')) break; } while (_yychar); @@ -674,9 +674,9 @@ void Lexer::scan_helper(Token *tok) if (control()) tok->string = control()->findOrInsertStringLiteral(yytext, yylen); - } else if (std::isalpha(ch) || ch == '_') { + } else if (std::isalpha(ch) || ch == '_' || ch == '$') { const char *yytext = _currentChar - 1; - while (std::isalnum(_yychar) || _yychar == '_') + while (std::isalnum(_yychar) || _yychar == '_' || _yychar == '$') yyinp(); int yylen = _currentChar - yytext; if (f._scanKeywords)