@@ -91,7 +91,7 @@ void initParser()
9191 CppKeywords.insert (" reinterpret_cast" ,KeywordType::SkipItself);
9292 CppKeywords.insert (" static_cast" ,KeywordType::SkipItself);
9393 CppKeywords.insert (" template" ,KeywordType::SkipItself);
94- // CppKeywords.insert("this",SkipType::skItself);
94+ CppKeywords.insert (" this" ,KeywordType::SkipItself); // Uncommented
9595 CppKeywords.insert (" thread_local" ,KeywordType::SkipItself);
9696 CppKeywords.insert (" true" ,KeywordType::SkipItself);
9797 CppKeywords.insert (" typename" ,KeywordType::SkipItself);
@@ -179,6 +179,13 @@ void initParser()
179179 CppKeywords.insert (" [[unlikely]]" ,KeywordType::None);
180180 CppKeywords.insert (" [[no_unique_address]]" ,KeywordType::None);
181181
182+ // C++20 modules
183+ CppKeywords.insert (" import" , KeywordType::None); // Added
184+ CppKeywords.insert (" module" , KeywordType::None); // Added
185+
186+ // C++11 context keywords
187+ CppKeywords.insert (" override" , KeywordType::None); // Added
188+ CppKeywords.insert (" final" , KeywordType::None); // Added
182189
183190#ifdef ENABLE_SDCC
184191 SDCCKeywords.insert (" __sfr" ,KeywordType::None);
@@ -222,8 +229,8 @@ void initParser()
222229 CppTypeKeywords.insert (" int" );
223230 CppTypeKeywords.insert (" long" );
224231 CppTypeKeywords.insert (" short" );
225- // CppTypeKeywords.insert("signed");
226- // CppTypeKeywords.insert("unsigned");
232+ CppTypeKeywords.insert (" signed" ); // Uncommented
233+ CppTypeKeywords.insert (" unsigned" ); // Uncommented
227234 CppTypeKeywords.insert (" void" );
228235 CppTypeKeywords.insert (" wchar_t" );
229236 CppTypeKeywords.insert (" signed" );
@@ -307,6 +314,9 @@ void initParser()
307314 STLContainers.insert (" std::deque" );
308315 STLContainers.insert (" std::forward_list" );
309316 STLContainers.insert (" std::list" );
317+ STLContainers.insert (" std::flat_map" ); // C++23
318+ STLContainers.insert (" std::flat_set" ); // C++23
319+ STLContainers.insert (" std::mdspan" ); // C++23
310320
311321 STLContainers.insert (" std::set" );
312322// STLContainers.insert("std::map");
@@ -323,6 +333,9 @@ void initParser()
323333 STLContainers.insert (" std::priority_queue" );
324334
325335 STLContainers.insert (" std::span" );
336+ STLContainers.insert (" std::expected" ); // C++23
337+ STLContainers.insert (" std::optional" ); // C++23
338+ STLContainers.insert (" std::generator" ); // C++23 coroutines
326339
327340 STLMaps.insert (" std::map" );
328341 STLMaps.insert (" std::multilist" );
@@ -335,6 +348,7 @@ void initParser()
335348 STLElementMethods.insert (" back" );
336349 STLElementMethods.insert (" front" );
337350 STLElementMethods.insert (" top" );
351+ STLElementMethods.insert (" operator[]" ); // Added
338352
339353 // STL iterator
340354 STLIterators.insert (" iterator" );
@@ -343,6 +357,7 @@ void initParser()
343357 STLIterators.insert (" local_iterator" );
344358 STLIterators.insert (" reverse_iterator" );
345359 STLIterators.insert (" const_reverse_iterator" );
360+ STLIterators.insert (" sentinel" ); // C++20
346361
347362 // STL pointers
348363 STLPointers.insert (" std::unique_ptr" );
@@ -360,6 +375,7 @@ void initParser()
360375 AutoTypes.insert (" auto &&" );
361376 AutoTypes.insert (" const auto" );
362377 AutoTypes.insert (" const auto &" );
378+ AutoTypes.insert (" decltype(auto)" ); // C++14
363379
364380 // C/CPP preprocessor directives
365381 CppDirectives.append (" #include" );
@@ -374,6 +390,8 @@ void initParser()
374390 CppDirectives.append (" #pragma" );
375391 CppDirectives.append (" #line" );
376392 CppDirectives.append (" #undef" );
393+ CppDirectives.append (" #__has_include" ); // C++17
394+ CppDirectives.append (" #warning" ); // C++23
377395
378396 // javadoc tags
379397 JavadocTags.append (" @author" );
@@ -401,6 +419,7 @@ void initParser()
401419 MemberOperators.insert (" ->" );
402420 MemberOperators.insert (" ->*" );
403421 MemberOperators.insert (" .*" );
422+ MemberOperators.insert (" <=>" ); // C++20 three-way comparison
404423
405424 IOManipulators.insert (" std::boolalpha" );
406425 IOManipulators.insert (" std::noboolalpha" );
0 commit comments