Skip to content

Commit cbdab7f

Browse files
authored
Merge pull request #8622 from diffblue/scanner-token-names
ansi-c: add `""` around C++ keywords
2 parents cbe0fb0 + 9fbdf4b commit cbdab7f

File tree

1 file changed

+45
-45
lines changed

1 file changed

+45
-45
lines changed

src/ansi-c/scanner.l

+45-45
Original file line numberDiff line numberDiff line change
@@ -856,73 +856,73 @@ enable_or_disable ("enable"|"disable")
856856
/* C++ Keywords and Operators */
857857
%}
858858

859-
alignas { return conditional_keyword(PARSER.cpp11, TOK_ALIGNAS); } // C++11
860-
alignof { return conditional_keyword(PARSER.cpp11, TOK_ALIGNOF); } // C++11
861-
and { return conditional_keyword(PARSER.cpp98, TOK_ANDAND); }
862-
and_eq { return conditional_keyword(PARSER.cpp98, TOK_ANDASSIGN); }
863-
bool { return conditional_keyword(PARSER.cpp98, TOK_BOOL); }
864-
catch { return conditional_keyword(PARSER.cpp98, TOK_CATCH); }
865-
char16_t { // C++11, but Visual Studio uses typedefs
859+
"alignas" { return conditional_keyword(PARSER.cpp11, TOK_ALIGNAS); } // C++11
860+
"alignof" { return conditional_keyword(PARSER.cpp11, TOK_ALIGNOF); } // C++11
861+
"and" { return conditional_keyword(PARSER.cpp98, TOK_ANDAND); }
862+
"and_eq" { return conditional_keyword(PARSER.cpp98, TOK_ANDASSIGN); }
863+
"bool" { return conditional_keyword(PARSER.cpp98, TOK_BOOL); }
864+
"catch" { return conditional_keyword(PARSER.cpp98, TOK_CATCH); }
865+
"char16_t" { // C++11, but Visual Studio uses typedefs
866866
return conditional_keyword(
867867
PARSER.cpp11 &&
868868
PARSER.mode != configt::ansi_ct::flavourt::VISUAL_STUDIO,
869869
TOK_CHAR16_T);
870870
}
871-
char32_t { // C++11, but Visual Studio uses typedefs
871+
"char32_t" { // C++11, but Visual Studio uses typedefs
872872
return conditional_keyword(
873873
PARSER.cpp11 &&
874874
PARSER.mode != configt::ansi_ct::flavourt::VISUAL_STUDIO,
875875
TOK_CHAR32_T);
876876
}
877-
class { return conditional_keyword(PARSER.cpp98, TOK_CLASS); }
878-
compl { return conditional_keyword(PARSER.cpp98, '~'); }
879-
constexpr { return conditional_keyword(PARSER.cpp11, TOK_CONSTEXPR); } // C++11
880-
delete { return conditional_keyword(PARSER.cpp98, TOK_DELETE); }
881-
decltype { return conditional_keyword(PARSER.cpp11, TOK_DECLTYPE); } // C++11
882-
explicit { return conditional_keyword(PARSER.cpp98, TOK_EXPLICIT); }
883-
false { return conditional_keyword(PARSER.cpp98, TOK_FALSE); }
884-
friend { return conditional_keyword(PARSER.cpp98, TOK_FRIEND); }
885-
mutable { return conditional_keyword(PARSER.cpp98, TOK_MUTABLE); }
886-
namespace { return conditional_keyword(PARSER.cpp98, TOK_NAMESPACE); }
887-
new { return conditional_keyword(PARSER.cpp98, TOK_NEW); }
888-
nodiscard { return conditional_keyword(PARSER.cpp11, TOK_NODISCARD); } // C++11
889-
noexcept { return conditional_keyword(PARSER.cpp11, TOK_NOEXCEPT); } // C++11
890-
noreturn { return conditional_keyword(PARSER.cpp11, TOK_NORETURN); } // C++11
891-
not { return conditional_keyword(PARSER.cpp98, '!'); }
892-
not_eq { return conditional_keyword(PARSER.cpp98, TOK_NE); }
893-
nullptr { return conditional_keyword(PARSER.cpp11, TOK_NULLPTR); } // C++11
894-
operator { return conditional_keyword(PARSER.cpp98, TOK_OPERATOR); }
895-
or { return conditional_keyword(PARSER.cpp98, TOK_OROR); }
896-
or_eq { return conditional_keyword(PARSER.cpp98, TOK_ORASSIGN); }
897-
private { return conditional_keyword(PARSER.cpp98, TOK_PRIVATE); }
898-
protected { return conditional_keyword(PARSER.cpp98, TOK_PROTECTED); }
899-
public { return conditional_keyword(PARSER.cpp98, TOK_PUBLIC); }
900-
static_assert { // C++11, but Visual Studio supports it in all modes
877+
"class" { return conditional_keyword(PARSER.cpp98, TOK_CLASS); }
878+
"compl" { return conditional_keyword(PARSER.cpp98, '~'); }
879+
"constexpr" { return conditional_keyword(PARSER.cpp11, TOK_CONSTEXPR); } // C++11
880+
"delete" { return conditional_keyword(PARSER.cpp98, TOK_DELETE); }
881+
"decltype" { return conditional_keyword(PARSER.cpp11, TOK_DECLTYPE); } // C++11
882+
"explicit" { return conditional_keyword(PARSER.cpp98, TOK_EXPLICIT); }
883+
"false" { return conditional_keyword(PARSER.cpp98, TOK_FALSE); }
884+
"friend" { return conditional_keyword(PARSER.cpp98, TOK_FRIEND); }
885+
"mutable" { return conditional_keyword(PARSER.cpp98, TOK_MUTABLE); }
886+
"namespace" { return conditional_keyword(PARSER.cpp98, TOK_NAMESPACE); }
887+
"new" { return conditional_keyword(PARSER.cpp98, TOK_NEW); }
888+
"nodiscard" { return conditional_keyword(PARSER.cpp11, TOK_NODISCARD); } // C++11
889+
"noexcept" { return conditional_keyword(PARSER.cpp11, TOK_NOEXCEPT); } // C++11
890+
"noreturn" { return conditional_keyword(PARSER.cpp11, TOK_NORETURN); } // C++11
891+
"not" { return conditional_keyword(PARSER.cpp98, '!'); }
892+
"not_eq" { return conditional_keyword(PARSER.cpp98, TOK_NE); }
893+
"nullptr" { return conditional_keyword(PARSER.cpp11, TOK_NULLPTR); } // C++11
894+
"operator" { return conditional_keyword(PARSER.cpp98, TOK_OPERATOR); }
895+
"or" { return conditional_keyword(PARSER.cpp98, TOK_OROR); }
896+
"or_eq" { return conditional_keyword(PARSER.cpp98, TOK_ORASSIGN); }
897+
"private" { return conditional_keyword(PARSER.cpp98, TOK_PRIVATE); }
898+
"protected" { return conditional_keyword(PARSER.cpp98, TOK_PROTECTED); }
899+
"public" { return conditional_keyword(PARSER.cpp98, TOK_PUBLIC); }
900+
"static_assert" { // C++11, but Visual Studio supports it in all modes
901901
// as a keyword, even though the documentation claims
902902
// it's a macro.
903903
return conditional_keyword(
904904
PARSER.cpp11 ||
905905
PARSER.mode == configt::ansi_ct::flavourt::VISUAL_STUDIO,
906906
TOK_STATIC_ASSERT);
907907
}
908-
template { return conditional_keyword(PARSER.cpp98, TOK_TEMPLATE); }
909-
this { return conditional_keyword(PARSER.cpp98, TOK_THIS); }
910-
thread_local { return conditional_keyword(PARSER.cpp11, TOK_THREAD_LOCAL); } // C++11
911-
throw { return conditional_keyword(PARSER.cpp98, TOK_THROW); }
912-
true { return conditional_keyword(PARSER.cpp98, TOK_TRUE); }
913-
typeid { return conditional_keyword(PARSER.cpp98, TOK_TYPEID); }
914-
typename { return conditional_keyword(PARSER.cpp98, TOK_TYPENAME); }
915-
using { return conditional_keyword(PARSER.cpp98, TOK_USING); }
916-
virtual { return conditional_keyword(PARSER.cpp98, TOK_VIRTUAL); }
917-
wchar_t { // CodeWarrior doesn't have wchar_t built in,
908+
"template" { return conditional_keyword(PARSER.cpp98, TOK_TEMPLATE); }
909+
"this" { return conditional_keyword(PARSER.cpp98, TOK_THIS); }
910+
"thread_local" { return conditional_keyword(PARSER.cpp11, TOK_THREAD_LOCAL); } // C++11
911+
"throw" { return conditional_keyword(PARSER.cpp98, TOK_THROW); }
912+
"true" { return conditional_keyword(PARSER.cpp98, TOK_TRUE); }
913+
"typeid" { return conditional_keyword(PARSER.cpp98, TOK_TYPEID); }
914+
"typename" { return conditional_keyword(PARSER.cpp98, TOK_TYPENAME); }
915+
"using" { return conditional_keyword(PARSER.cpp98, TOK_USING); }
916+
"virtual" { return conditional_keyword(PARSER.cpp98, TOK_VIRTUAL); }
917+
"wchar_t" { // CodeWarrior doesn't have wchar_t built in,
918918
// and MSC has a command-line option to turn it off
919919
return conditional_keyword(
920920
PARSER.cpp98 &&
921921
PARSER.mode!=configt::ansi_ct::flavourt::CODEWARRIOR,
922922
TOK_WCHAR_T);
923923
}
924-
xor { return conditional_keyword(PARSER.cpp98, '^'); }
925-
xor_eq { return conditional_keyword(PARSER.cpp98, TOK_XORASSIGN); }
924+
"xor" { return conditional_keyword(PARSER.cpp98, '^'); }
925+
"xor_eq" { return conditional_keyword(PARSER.cpp98, TOK_XORASSIGN); }
926926
".*" { return cpp_operator(TOK_DOTPM); }
927927
"->*" { return cpp_operator(TOK_ARROWPM); }
928928
"::" { if(PARSER.cpp98)
@@ -936,7 +936,7 @@ xor_eq { return conditional_keyword(PARSER.cpp98, TOK_XORASSIGN); }
936936
}
937937
}
938938

939-
__decltype { return conditional_keyword(
939+
"__decltype" { return conditional_keyword(
940940
PARSER.cpp98 &&
941941
(PARSER.mode==configt::ansi_ct::flavourt::GCC ||
942942
PARSER.mode==configt::ansi_ct::flavourt::CLANG),

0 commit comments

Comments
 (0)