@@ -856,73 +856,73 @@ enable_or_disable ("enable"|"disable")
856
856
/* C++ Keywords and Operators */
857
857
%}
858
858
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
866
866
return conditional_keyword (
867
867
PARSER.cpp11 &&
868
868
PARSER.mode != configt::ansi_ct::flavourt::VISUAL_STUDIO,
869
869
TOK_CHAR16_T);
870
870
}
871
- char32_t { // C++11, but Visual Studio uses typedefs
871
+ " char32_t" { // C++11, but Visual Studio uses typedefs
872
872
return conditional_keyword (
873
873
PARSER.cpp11 &&
874
874
PARSER.mode != configt::ansi_ct::flavourt::VISUAL_STUDIO,
875
875
TOK_CHAR32_T);
876
876
}
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
901
901
// as a keyword, even though the documentation claims
902
902
// it's a macro.
903
903
return conditional_keyword (
904
904
PARSER.cpp11 ||
905
905
PARSER.mode == configt::ansi_ct::flavourt::VISUAL_STUDIO,
906
906
TOK_STATIC_ASSERT);
907
907
}
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,
918
918
// and MSC has a command-line option to turn it off
919
919
return conditional_keyword (
920
920
PARSER.cpp98 &&
921
921
PARSER.mode !=configt::ansi_ct::flavourt::CODEWARRIOR,
922
922
TOK_WCHAR_T);
923
923
}
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); }
926
926
" .*" { return cpp_operator (TOK_DOTPM); }
927
927
" ->*" { return cpp_operator (TOK_ARROWPM); }
928
928
" ::" { if (PARSER.cpp98 )
@@ -936,7 +936,7 @@ xor_eq { return conditional_keyword(PARSER.cpp98, TOK_XORASSIGN); }
936
936
}
937
937
}
938
938
939
- __decltype { return conditional_keyword (
939
+ " __decltype" { return conditional_keyword (
940
940
PARSER.cpp98 &&
941
941
(PARSER.mode ==configt::ansi_ct::flavourt::GCC ||
942
942
PARSER.mode ==configt::ansi_ct::flavourt::CLANG),
0 commit comments