@@ -832,48 +832,48 @@ enable_or_disable ("enable"|"disable")
832832/* C++ Keywords and Operators */
833833%}
834834
835- alignas { return conditional_keyword (PARSER.cpp11 , TOK_ALIGNAS); } // C++11
836- alignof { return conditional_keyword (PARSER.cpp11 , TOK_ALIGNOF); } // C++11
837- and { return conditional_keyword (PARSER.cpp98 , TOK_ANDAND); }
838- and_eq { return conditional_keyword (PARSER.cpp98 , TOK_ANDASSIGN); }
839- bool { return conditional_keyword (PARSER.cpp98 , TOK_BOOL); }
840- catch { return conditional_keyword (PARSER.cpp98 , TOK_CATCH); }
841- char16_t { // C++11, but Visual Studio uses typedefs
835+ " alignas" { return conditional_keyword (PARSER.cpp11 , TOK_ALIGNAS); } // C++11
836+ " alignof" { return conditional_keyword (PARSER.cpp11 , TOK_ALIGNOF); } // C++11
837+ " and" { return conditional_keyword (PARSER.cpp98 , TOK_ANDAND); }
838+ " and_eq" { return conditional_keyword (PARSER.cpp98 , TOK_ANDASSIGN); }
839+ " bool" { return conditional_keyword (PARSER.cpp98 , TOK_BOOL); }
840+ " catch" { return conditional_keyword (PARSER.cpp98 , TOK_CATCH); }
841+ " char16_t" { // C++11, but Visual Studio uses typedefs
842842 if (PARSER.mode == configt::ansi_ct::flavourt::VISUAL_STUDIO)
843843 return make_identifier ();
844844 else
845845 return conditional_keyword (PARSER.cpp11 , TOK_CHAR16_T);
846846 }
847- char32_t { // C++11, but Visual Studio uses typedefs
847+ " char32_t" { // C++11, but Visual Studio uses typedefs
848848 if (PARSER.mode == configt::ansi_ct::flavourt::VISUAL_STUDIO)
849849 return make_identifier ();
850850 else
851851 return conditional_keyword (PARSER.cpp11 , TOK_CHAR32_T);
852852 }
853- class { return conditional_keyword (PARSER.cpp98 , TOK_CLASS); }
854- compl { return conditional_keyword (PARSER.cpp98 , ' ~' ); }
855- constexpr { return conditional_keyword (PARSER.cpp11 , TOK_CONSTEXPR); } // C++11
856- delete { return conditional_keyword (PARSER.cpp98 , TOK_DELETE); }
857- decltype { return conditional_keyword (PARSER.cpp11 , TOK_DECLTYPE); } // C++11
858- explicit { return conditional_keyword (PARSER.cpp98 , TOK_EXPLICIT); }
859- false { return conditional_keyword (PARSER.cpp98 , TOK_FALSE); }
860- friend { return conditional_keyword (PARSER.cpp98 , TOK_FRIEND); }
861- mutable { return conditional_keyword (PARSER.cpp98 , TOK_MUTABLE); }
862- namespace { return conditional_keyword (PARSER.cpp98 , TOK_NAMESPACE); }
863- new { return conditional_keyword (PARSER.cpp98 , TOK_NEW); }
864- nodiscard { return conditional_keyword (PARSER.cpp11 , TOK_NODISCARD); } // C++11
865- noexcept { return conditional_keyword (PARSER.cpp11 , TOK_NOEXCEPT); } // C++11
866- noreturn { return conditional_keyword (PARSER.cpp11 , TOK_NORETURN); } // C++11
867- not { return conditional_keyword (PARSER.cpp98 , ' !' ); }
868- not_eq { return conditional_keyword (PARSER.cpp98 , TOK_NE); }
869- nullptr { return conditional_keyword (PARSER.cpp11 , TOK_NULLPTR); } // C++11
870- operator { return conditional_keyword (PARSER.cpp98 , TOK_OPERATOR); }
871- or { return conditional_keyword (PARSER.cpp98 , TOK_OROR); }
872- or_eq { return conditional_keyword (PARSER.cpp98 , TOK_ORASSIGN); }
873- private { return conditional_keyword (PARSER.cpp98 , TOK_PRIVATE); }
874- protected { return conditional_keyword (PARSER.cpp98 , TOK_PROTECTED); }
875- public { return conditional_keyword (PARSER.cpp98 , TOK_PUBLIC); }
876- static_assert { // C++11, but Visual Studio supports it in all modes
853+ " class" { return conditional_keyword (PARSER.cpp98 , TOK_CLASS); }
854+ " compl" { return conditional_keyword (PARSER.cpp98 , ' ~' ); }
855+ " constexpr" { return conditional_keyword (PARSER.cpp11 , TOK_CONSTEXPR); } // C++11
856+ " delete" { return conditional_keyword (PARSER.cpp98 , TOK_DELETE); }
857+ " decltype" { return conditional_keyword (PARSER.cpp11 , TOK_DECLTYPE); } // C++11
858+ " explicit" { return conditional_keyword (PARSER.cpp98 , TOK_EXPLICIT); }
859+ " false" { return conditional_keyword (PARSER.cpp98 , TOK_FALSE); }
860+ " friend" { return conditional_keyword (PARSER.cpp98 , TOK_FRIEND); }
861+ " mutable" { return conditional_keyword (PARSER.cpp98 , TOK_MUTABLE); }
862+ " namespace" { return conditional_keyword (PARSER.cpp98 , TOK_NAMESPACE); }
863+ " new" { return conditional_keyword (PARSER.cpp98 , TOK_NEW); }
864+ " nodiscard" { return conditional_keyword (PARSER.cpp11 , TOK_NODISCARD); } // C++11
865+ " noexcept" { return conditional_keyword (PARSER.cpp11 , TOK_NOEXCEPT); } // C++11
866+ " noreturn" { return conditional_keyword (PARSER.cpp11 , TOK_NORETURN); } // C++11
867+ " not" { return conditional_keyword (PARSER.cpp98 , ' !' ); }
868+ " not_eq" { return conditional_keyword (PARSER.cpp98 , TOK_NE); }
869+ " nullptr" { return conditional_keyword (PARSER.cpp11 , TOK_NULLPTR); } // C++11
870+ " operator" { return conditional_keyword (PARSER.cpp98 , TOK_OPERATOR); }
871+ " or " { return conditional_keyword (PARSER.cpp98 , TOK_OROR); }
872+ " or_eq" { return conditional_keyword (PARSER.cpp98 , TOK_ORASSIGN); }
873+ " private" { return conditional_keyword (PARSER.cpp98 , TOK_PRIVATE); }
874+ " protected" { return conditional_keyword (PARSER.cpp98 , TOK_PROTECTED); }
875+ " public" { return conditional_keyword (PARSER.cpp98 , TOK_PUBLIC); }
876+ " static_assert" { // C++11, but Visual Studio supports it in all modes
877877 // as a keyword, even though the documentation claims
878878 // it's a macro.
879879 if (PARSER.mode == configt::ansi_ct::flavourt::VISUAL_STUDIO)
@@ -883,24 +883,24 @@ static_assert { // C++11, but Visual Studio supports it in all modes
883883 else
884884 return conditional_keyword (PARSER.cpp11 , TOK_STATIC_ASSERT);
885885 }
886- template { return conditional_keyword (PARSER.cpp98 , TOK_TEMPLATE); }
887- this { return conditional_keyword (PARSER.cpp98 , TOK_THIS); }
888- thread_local { return conditional_keyword (PARSER.cpp11 , TOK_THREAD_LOCAL); } // C++11
889- throw { return conditional_keyword (PARSER.cpp98 , TOK_THROW); }
890- true { return conditional_keyword (PARSER.cpp98 , TOK_TRUE); }
891- typeid { return conditional_keyword (PARSER.cpp98 , TOK_TYPEID); }
892- typename { return conditional_keyword (PARSER.cpp98 , TOK_TYPENAME); }
893- using { return conditional_keyword (PARSER.cpp98 , TOK_USING); }
894- virtual { return conditional_keyword (PARSER.cpp98 , TOK_VIRTUAL); }
895- wchar_t { // CodeWarrior doesn't have wchar_t built in,
886+ " template" { return conditional_keyword (PARSER.cpp98 , TOK_TEMPLATE); }
887+ " this" { return conditional_keyword (PARSER.cpp98 , TOK_THIS); }
888+ " thread_local" { return conditional_keyword (PARSER.cpp11 , TOK_THREAD_LOCAL); } // C++11
889+ " throw" { return conditional_keyword (PARSER.cpp98 , TOK_THROW); }
890+ " true" { return conditional_keyword (PARSER.cpp98 , TOK_TRUE); }
891+ " typeid" { return conditional_keyword (PARSER.cpp98 , TOK_TYPEID); }
892+ " typename" { return conditional_keyword (PARSER.cpp98 , TOK_TYPENAME); }
893+ " using" { return conditional_keyword (PARSER.cpp98 , TOK_USING); }
894+ " virtual" { return conditional_keyword (PARSER.cpp98 , TOK_VIRTUAL); }
895+ " wchar_t" { // CodeWarrior doesn't have wchar_t built in,
896896 // and MSC has a command-line option to turn it off
897897 if (PARSER.mode ==configt::ansi_ct::flavourt::CODEWARRIOR)
898898 return make_identifier ();
899899 else
900900 return conditional_keyword (PARSER.cpp98 , TOK_WCHAR_T);
901901 }
902- xor { return conditional_keyword (PARSER.cpp98 , ' ^' ); }
903- xor_eq { return conditional_keyword (PARSER.cpp98 , TOK_XORASSIGN); }
902+ " xor" { return conditional_keyword (PARSER.cpp98 , ' ^' ); }
903+ " xor_eq" { return conditional_keyword (PARSER.cpp98 , TOK_XORASSIGN); }
904904" .*" { return cpp_operator (TOK_DOTPM); }
905905" ->*" { return cpp_operator (TOK_ARROWPM); }
906906" ::" { if (PARSER.cpp98 )
@@ -914,7 +914,7 @@ xor_eq { return conditional_keyword(PARSER.cpp98, TOK_XORASSIGN); }
914914 }
915915 }
916916
917- __decltype { if (PARSER.cpp98 &&
917+ " __decltype" { if (PARSER.cpp98 &&
918918 (PARSER.mode ==configt::ansi_ct::flavourt::GCC ||
919919 PARSER.mode ==configt::ansi_ct::flavourt::CLANG))
920920 return conditional_keyword (PARSER.cpp98 , TOK_DECLTYPE);
0 commit comments