@@ -834,73 +834,73 @@ enable_or_disable ("enable"|"disable")
834
834
/* C++ Keywords and Operators */
835
835
%}
836
836
837
- alignas { return conditional_keyword (PARSER.cpp11 , TOK_ALIGNAS); } // C++11
838
- alignof { return conditional_keyword (PARSER.cpp11 , TOK_ALIGNOF); } // C++11
839
- and { return conditional_keyword (PARSER.cpp98 , TOK_ANDAND); }
840
- and_eq { return conditional_keyword (PARSER.cpp98 , TOK_ANDASSIGN); }
841
- bool { return conditional_keyword (PARSER.cpp98 , TOK_BOOL); }
842
- catch { return conditional_keyword (PARSER.cpp98 , TOK_CATCH); }
843
- char16_t { // C++11, but Visual Studio uses typedefs
837
+ " alignas" { return conditional_keyword (PARSER.cpp11 , TOK_ALIGNAS); } // C++11
838
+ " alignof" { return conditional_keyword (PARSER.cpp11 , TOK_ALIGNOF); } // C++11
839
+ " and" { return conditional_keyword (PARSER.cpp98 , TOK_ANDAND); }
840
+ " and_eq" { return conditional_keyword (PARSER.cpp98 , TOK_ANDASSIGN); }
841
+ " bool" { return conditional_keyword (PARSER.cpp98 , TOK_BOOL); }
842
+ " catch" { return conditional_keyword (PARSER.cpp98 , TOK_CATCH); }
843
+ " char16_t" { // C++11, but Visual Studio uses typedefs
844
844
return conditional_keyword (
845
845
PARSER.cpp11 &&
846
846
PARSER.mode != configt::ansi_ct::flavourt::VISUAL_STUDIO,
847
847
TOK_CHAR16_T);
848
848
}
849
- char32_t { // C++11, but Visual Studio uses typedefs
849
+ " char32_t" { // C++11, but Visual Studio uses typedefs
850
850
return conditional_keyword (
851
851
PARSER.cpp11 &&
852
852
PARSER.mode != configt::ansi_ct::flavourt::VISUAL_STUDIO,
853
853
TOK_CHAR32_T);
854
854
}
855
- class { return conditional_keyword (PARSER.cpp98 , TOK_CLASS); }
856
- compl { return conditional_keyword (PARSER.cpp98 , ' ~' ); }
857
- constexpr { return conditional_keyword (PARSER.cpp11 , TOK_CONSTEXPR); } // C++11
858
- delete { return conditional_keyword (PARSER.cpp98 , TOK_DELETE); }
859
- decltype { return conditional_keyword (PARSER.cpp11 , TOK_DECLTYPE); } // C++11
860
- explicit { return conditional_keyword (PARSER.cpp98 , TOK_EXPLICIT); }
861
- false { return conditional_keyword (PARSER.cpp98 , TOK_FALSE); }
862
- friend { return conditional_keyword (PARSER.cpp98 , TOK_FRIEND); }
863
- mutable { return conditional_keyword (PARSER.cpp98 , TOK_MUTABLE); }
864
- namespace { return conditional_keyword (PARSER.cpp98 , TOK_NAMESPACE); }
865
- new { return conditional_keyword (PARSER.cpp98 , TOK_NEW); }
866
- nodiscard { return conditional_keyword (PARSER.cpp11 , TOK_NODISCARD); } // C++11
867
- noexcept { return conditional_keyword (PARSER.cpp11 , TOK_NOEXCEPT); } // C++11
868
- noreturn { return conditional_keyword (PARSER.cpp11 , TOK_NORETURN); } // C++11
869
- not { return conditional_keyword (PARSER.cpp98 , ' !' ); }
870
- not_eq { return conditional_keyword (PARSER.cpp98 , TOK_NE); }
871
- nullptr { return conditional_keyword (PARSER.cpp11 , TOK_NULLPTR); } // C++11
872
- operator { return conditional_keyword (PARSER.cpp98 , TOK_OPERATOR); }
873
- or { return conditional_keyword (PARSER.cpp98 , TOK_OROR); }
874
- or_eq { return conditional_keyword (PARSER.cpp98 , TOK_ORASSIGN); }
875
- private { return conditional_keyword (PARSER.cpp98 , TOK_PRIVATE); }
876
- protected { return conditional_keyword (PARSER.cpp98 , TOK_PROTECTED); }
877
- public { return conditional_keyword (PARSER.cpp98 , TOK_PUBLIC); }
878
- static_assert { // C++11, but Visual Studio supports it in all modes
855
+ " class" { return conditional_keyword (PARSER.cpp98 , TOK_CLASS); }
856
+ " compl" { return conditional_keyword (PARSER.cpp98 , ' ~' ); }
857
+ " constexpr" { return conditional_keyword (PARSER.cpp11 , TOK_CONSTEXPR); } // C++11
858
+ " delete" { return conditional_keyword (PARSER.cpp98 , TOK_DELETE); }
859
+ " decltype" { return conditional_keyword (PARSER.cpp11 , TOK_DECLTYPE); } // C++11
860
+ " explicit" { return conditional_keyword (PARSER.cpp98 , TOK_EXPLICIT); }
861
+ " false" { return conditional_keyword (PARSER.cpp98 , TOK_FALSE); }
862
+ " friend" { return conditional_keyword (PARSER.cpp98 , TOK_FRIEND); }
863
+ " mutable" { return conditional_keyword (PARSER.cpp98 , TOK_MUTABLE); }
864
+ " namespace" { return conditional_keyword (PARSER.cpp98 , TOK_NAMESPACE); }
865
+ " new" { return conditional_keyword (PARSER.cpp98 , TOK_NEW); }
866
+ " nodiscard" { return conditional_keyword (PARSER.cpp11 , TOK_NODISCARD); } // C++11
867
+ " noexcept" { return conditional_keyword (PARSER.cpp11 , TOK_NOEXCEPT); } // C++11
868
+ " noreturn" { return conditional_keyword (PARSER.cpp11 , TOK_NORETURN); } // C++11
869
+ " not" { return conditional_keyword (PARSER.cpp98 , ' !' ); }
870
+ " not_eq" { return conditional_keyword (PARSER.cpp98 , TOK_NE); }
871
+ " nullptr" { return conditional_keyword (PARSER.cpp11 , TOK_NULLPTR); } // C++11
872
+ " operator" { return conditional_keyword (PARSER.cpp98 , TOK_OPERATOR); }
873
+ " or " { return conditional_keyword (PARSER.cpp98 , TOK_OROR); }
874
+ " or_eq" { return conditional_keyword (PARSER.cpp98 , TOK_ORASSIGN); }
875
+ " private" { return conditional_keyword (PARSER.cpp98 , TOK_PRIVATE); }
876
+ " protected" { return conditional_keyword (PARSER.cpp98 , TOK_PROTECTED); }
877
+ " public" { return conditional_keyword (PARSER.cpp98 , TOK_PUBLIC); }
878
+ " static_assert" { // C++11, but Visual Studio supports it in all modes
879
879
// as a keyword, even though the documentation claims
880
880
// it's a macro.
881
881
return conditional_keyword (
882
882
PARSER.cpp11 ||
883
883
PARSER.mode == configt::ansi_ct::flavourt::VISUAL_STUDIO,
884
884
TOK_STATIC_ASSERT);
885
885
}
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,
896
896
// and MSC has a command-line option to turn it off
897
897
return conditional_keyword (
898
898
PARSER.cpp98 &&
899
899
PARSER.mode !=configt::ansi_ct::flavourt::CODEWARRIOR,
900
900
TOK_WCHAR_T);
901
901
}
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); }
904
904
" .*" { return cpp_operator (TOK_DOTPM); }
905
905
" ->*" { return cpp_operator (TOK_ARROWPM); }
906
906
" ::" { if (PARSER.cpp98 )
@@ -914,7 +914,7 @@ xor_eq { return conditional_keyword(PARSER.cpp98, TOK_XORASSIGN); }
914
914
}
915
915
}
916
916
917
- __decltype { return conditional_keyword (
917
+ " __decltype" { return conditional_keyword (
918
918
PARSER.cpp98 &&
919
919
(PARSER.mode ==configt::ansi_ct::flavourt::GCC ||
920
920
PARSER.mode ==configt::ansi_ct::flavourt::CLANG),
0 commit comments