cpp function

Mode cpp(
  1. Highlight hljs
)

Implementation

Mode cpp(Highlight hljs) {
  final Mode _mode0 = Mode();
  final Mode _mode1 = Mode();
  final Mode _mode2 = Mode();
  final Mode _mode3 = Mode();
  final Mode _mode4 = Mode();
  final Mode _mode5 = Mode();
  final Mode _mode6 = Mode();
  final Mode _mode7 = Mode();
  final Mode _mode8 = Mode();
  final Mode _mode9 = Mode();
  final Mode _mode10 = Mode();
  final Mode _mode11 = Mode();
  final Mode _mode12 = Mode();
  final Mode _mode13 = Mode();
  final Mode _mode14 = Mode();
  final Mode _mode15 = Mode();
  final Mode _mode16 = Mode();
  final Mode _mode17 = Mode();
  final Mode _mode18 = Mode();
  final Mode _mode19 = Mode();
  final Mode _mode20 = Mode();
  _mode0.scope = r'function.dispatch';
  _mode0.relevance = 0;
  _mode0.keywords = {
    r'_hint': [
      r'abort',
      r'abs',
      r'acos',
      r'apply',
      r'as_const',
      r'asin',
      r'atan',
      r'atan2',
      r'calloc',
      r'ceil',
      r'cerr',
      r'cin',
      r'clog',
      r'cos',
      r'cosh',
      r'cout',
      r'declval',
      r'endl',
      r'exchange',
      r'exit',
      r'exp',
      r'fabs',
      r'floor',
      r'fmod',
      r'forward',
      r'fprintf',
      r'fputs',
      r'free',
      r'frexp',
      r'fscanf',
      r'future',
      r'invoke',
      r'isalnum',
      r'isalpha',
      r'iscntrl',
      r'isdigit',
      r'isgraph',
      r'islower',
      r'isprint',
      r'ispunct',
      r'isspace',
      r'isupper',
      r'isxdigit',
      r'labs',
      r'launder',
      r'ldexp',
      r'log',
      r'log10',
      r'make_pair',
      r'make_shared',
      r'make_shared_for_overwrite',
      r'make_tuple',
      r'make_unique',
      r'malloc',
      r'memchr',
      r'memcmp',
      r'memcpy',
      r'memset',
      r'modf',
      r'move',
      r'pow',
      r'printf',
      r'putchar',
      r'puts',
      r'realloc',
      r'scanf',
      r'sin',
      r'sinh',
      r'snprintf',
      r'sprintf',
      r'sqrt',
      r'sscanf',
      r'std',
      r'stderr',
      r'stdin',
      r'stdout',
      r'strcat',
      r'strchr',
      r'strcmp',
      r'strcpy',
      r'strcspn',
      r'strlen',
      r'strncat',
      r'strncmp',
      r'strncpy',
      r'strpbrk',
      r'strrchr',
      r'strspn',
      r'strstr',
      r'swap',
      r'tan',
      r'tanh',
      r'terminate',
      r'to_underlying',
      r'tolower',
      r'toupper',
      r'vfprintf',
      r'visit',
      r'vprintf',
      r'vsprintf',
    ],
  };
  _mode0.begin =
      r'\b(?!decltype)(?!if)(?!for)(?!switch)(?!while)[a-zA-Z]\w*(?=(<[^<>]+>|)\s*\()';
  _mode1.scope = r'meta';
  _mode1.begin = r'#\s*[a-z]+\b';
  _mode1.end = r'$';
  _mode1.keywords = {
    r'keyword':
        r'if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include',
  };
  _mode1.contains = [_mode2, _mode3, _mode8, _mode9, _mode13];
  _mode2.begin = r'\\\n';
  _mode2.relevance = 0;
  _mode3.scope = r'string';
  _mode3.variants = [_mode4, _mode6, _mode7];
  _mode4.begin = r'(u8?|U|L)?"';
  _mode4.end = r'"';
  _mode4.illegal = r'\n';
  _mode4.contains = [_mode5];
  _mode5.begin = r'\\[\s\S]';
  _mode5.relevance = 0;
  _mode6.begin =
      r"(u8?|U|L)?'(\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\S)|.)";
  _mode6.end = r"'";
  _mode6.illegal = r'.';
  _mode7.begin = r'(?:u8?|U|L)?R"([^()\\ ]{0,16})\(';
  _mode7.end = r'\)([^()\\ ]{0,16})"';
  _mode7.onBegin = (RegExpMatch m, CallbackResponse resp) {
    resp.data['_beginMatch'] = m.group(1);
  };
  _mode7.onEnd = (RegExpMatch m, CallbackResponse resp) {
    if (resp.data['_beginMatch'] != m.group(1)) resp.ignoreMatch();
  };
  _mode8.scope = r'string';
  _mode8.begin = r'<.*?>';
  _mode9.scope = r'comment';
  _mode9.begin = r'//';
  _mode9.end = r'$';
  _mode9.contains = [_mode10, _mode11, _mode12];
  _mode10.begin = r'\\\n';
  _mode11.scope = r'doctag';
  _mode11.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  _mode11.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  _mode11.excludeBegin = true;
  _mode11.relevance = 0;
  _mode12.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  _mode13.scope = r'comment';
  _mode13.begin = r'/\*';
  _mode13.end = r'\*/';
  _mode13.contains = [_mode14, _mode15];
  _mode14.scope = r'doctag';
  _mode14.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  _mode14.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  _mode14.excludeBegin = true;
  _mode14.relevance = 0;
  _mode15.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  _mode16.scope = r'type';
  _mode16.begin = r'\b[a-z\d_]*_t\b';
  _mode17.scope = r'number';
  _mode17.variants = [_mode18, _mode19];
  _mode17.relevance = 0;
  _mode18.begin =
      r"[+-]?(?:(?:[0-9](?:'?[0-9])*\.(?:[0-9](?:'?[0-9])*)?|\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)";
  _mode19.begin =
      r"[+-]?\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)";
  _mode20.scope = r'string';
  _mode20.variants = [_mode4, _mode6, _mode7];
  return Mode(
    name: r'C++',
    aliases: [r'cc', r'c++', r'h++', r'hpp', r'hh', r'hxx', r'cxx'],
    keywords: {
      r'type': [
        r'bool',
        r'char',
        r'char16_t',
        r'char32_t',
        r'char8_t',
        r'double',
        r'float',
        r'int',
        r'long',
        r'short',
        r'void',
        r'wchar_t',
        r'unsigned',
        r'signed',
        r'const',
        r'static',
      ],
      r'keyword': [
        r'alignas',
        r'alignof',
        r'and',
        r'and_eq',
        r'asm',
        r'atomic_cancel',
        r'atomic_commit',
        r'atomic_noexcept',
        r'auto',
        r'bitand',
        r'bitor',
        r'break',
        r'case',
        r'catch',
        r'class',
        r'co_await',
        r'co_return',
        r'co_yield',
        r'compl',
        r'concept',
        r'const_cast|10',
        r'consteval',
        r'constexpr',
        r'constinit',
        r'continue',
        r'decltype',
        r'default',
        r'delete',
        r'do',
        r'dynamic_cast|10',
        r'else',
        r'enum',
        r'explicit',
        r'export',
        r'extern',
        r'false',
        r'final',
        r'for',
        r'friend',
        r'goto',
        r'if',
        r'import',
        r'inline',
        r'module',
        r'mutable',
        r'namespace',
        r'new',
        r'noexcept',
        r'not',
        r'not_eq',
        r'nullptr',
        r'operator',
        r'or',
        r'or_eq',
        r'override',
        r'private',
        r'protected',
        r'public',
        r'reflexpr',
        r'register',
        r'reinterpret_cast|10',
        r'requires',
        r'return',
        r'sizeof',
        r'static_assert',
        r'static_cast|10',
        r'struct',
        r'switch',
        r'synchronized',
        r'template',
        r'this',
        r'thread_local',
        r'throw',
        r'transaction_safe',
        r'transaction_safe_dynamic',
        r'true',
        r'try',
        r'typedef',
        r'typeid',
        r'typename',
        r'union',
        r'using',
        r'virtual',
        r'volatile',
        r'while',
        r'xor',
        r'xor_eq',
      ],
      r'literal': [r'NULL', r'false', r'nullopt', r'nullptr', r'true'],
      r'built_in': [r'_Pragma'],
      r'_type_hints': [
        r'any',
        r'auto_ptr',
        r'barrier',
        r'binary_semaphore',
        r'bitset',
        r'complex',
        r'condition_variable',
        r'condition_variable_any',
        r'counting_semaphore',
        r'deque',
        r'false_type',
        r'flat_map',
        r'flat_set',
        r'future',
        r'imaginary',
        r'initializer_list',
        r'istringstream',
        r'jthread',
        r'latch',
        r'lock_guard',
        r'multimap',
        r'multiset',
        r'mutex',
        r'optional',
        r'ostringstream',
        r'packaged_task',
        r'pair',
        r'promise',
        r'priority_queue',
        r'queue',
        r'recursive_mutex',
        r'recursive_timed_mutex',
        r'scoped_lock',
        r'set',
        r'shared_future',
        r'shared_lock',
        r'shared_mutex',
        r'shared_timed_mutex',
        r'shared_ptr',
        r'stack',
        r'string_view',
        r'stringstream',
        r'timed_mutex',
        r'thread',
        r'true_type',
        r'tuple',
        r'unique_lock',
        r'unique_ptr',
        r'unordered_map',
        r'unordered_multimap',
        r'unordered_multiset',
        r'unordered_set',
        r'variant',
        r'vector',
        r'weak_ptr',
        r'wstring',
        r'wstring_view',
      ],
    },
    illegal: r'</',
    classNameAliases: {r'function.dispatch': r'built_in'},
    contains: [
      Mode(
        variants: [
          Mode(begin: r'=', end: r';'),
          Mode(begin: r'\(', end: r'\)'),
          Mode(beginKeywords: r'new throw return else', end: r';'),
        ],
        keywords: {
          r'type': [
            r'bool',
            r'char',
            r'char16_t',
            r'char32_t',
            r'char8_t',
            r'double',
            r'float',
            r'int',
            r'long',
            r'short',
            r'void',
            r'wchar_t',
            r'unsigned',
            r'signed',
            r'const',
            r'static',
          ],
          r'keyword': [
            r'alignas',
            r'alignof',
            r'and',
            r'and_eq',
            r'asm',
            r'atomic_cancel',
            r'atomic_commit',
            r'atomic_noexcept',
            r'auto',
            r'bitand',
            r'bitor',
            r'break',
            r'case',
            r'catch',
            r'class',
            r'co_await',
            r'co_return',
            r'co_yield',
            r'compl',
            r'concept',
            r'const_cast|10',
            r'consteval',
            r'constexpr',
            r'constinit',
            r'continue',
            r'decltype',
            r'default',
            r'delete',
            r'do',
            r'dynamic_cast|10',
            r'else',
            r'enum',
            r'explicit',
            r'export',
            r'extern',
            r'false',
            r'final',
            r'for',
            r'friend',
            r'goto',
            r'if',
            r'import',
            r'inline',
            r'module',
            r'mutable',
            r'namespace',
            r'new',
            r'noexcept',
            r'not',
            r'not_eq',
            r'nullptr',
            r'operator',
            r'or',
            r'or_eq',
            r'override',
            r'private',
            r'protected',
            r'public',
            r'reflexpr',
            r'register',
            r'reinterpret_cast|10',
            r'requires',
            r'return',
            r'sizeof',
            r'static_assert',
            r'static_cast|10',
            r'struct',
            r'switch',
            r'synchronized',
            r'template',
            r'this',
            r'thread_local',
            r'throw',
            r'transaction_safe',
            r'transaction_safe_dynamic',
            r'true',
            r'try',
            r'typedef',
            r'typeid',
            r'typename',
            r'union',
            r'using',
            r'virtual',
            r'volatile',
            r'while',
            r'xor',
            r'xor_eq',
          ],
          r'literal': [r'NULL', r'false', r'nullopt', r'nullptr', r'true'],
          r'built_in': [r'_Pragma'],
          r'_type_hints': [
            r'any',
            r'auto_ptr',
            r'barrier',
            r'binary_semaphore',
            r'bitset',
            r'complex',
            r'condition_variable',
            r'condition_variable_any',
            r'counting_semaphore',
            r'deque',
            r'false_type',
            r'flat_map',
            r'flat_set',
            r'future',
            r'imaginary',
            r'initializer_list',
            r'istringstream',
            r'jthread',
            r'latch',
            r'lock_guard',
            r'multimap',
            r'multiset',
            r'mutex',
            r'optional',
            r'ostringstream',
            r'packaged_task',
            r'pair',
            r'promise',
            r'priority_queue',
            r'queue',
            r'recursive_mutex',
            r'recursive_timed_mutex',
            r'scoped_lock',
            r'set',
            r'shared_future',
            r'shared_lock',
            r'shared_mutex',
            r'shared_timed_mutex',
            r'shared_ptr',
            r'stack',
            r'string_view',
            r'stringstream',
            r'timed_mutex',
            r'thread',
            r'true_type',
            r'tuple',
            r'unique_lock',
            r'unique_ptr',
            r'unordered_map',
            r'unordered_multimap',
            r'unordered_multiset',
            r'unordered_set',
            r'variant',
            r'vector',
            r'weak_ptr',
            r'wstring',
            r'wstring_view',
          ],
        },
        contains: [
          _mode0,
          _mode1,
          _mode16,
          _mode9,
          _mode13,
          _mode17,
          _mode20,
          Mode(
            begin: r'\(',
            end: r'\)',
            keywords: {
              r'type': [
                r'bool',
                r'char',
                r'char16_t',
                r'char32_t',
                r'char8_t',
                r'double',
                r'float',
                r'int',
                r'long',
                r'short',
                r'void',
                r'wchar_t',
                r'unsigned',
                r'signed',
                r'const',
                r'static',
              ],
              r'keyword': [
                r'alignas',
                r'alignof',
                r'and',
                r'and_eq',
                r'asm',
                r'atomic_cancel',
                r'atomic_commit',
                r'atomic_noexcept',
                r'auto',
                r'bitand',
                r'bitor',
                r'break',
                r'case',
                r'catch',
                r'class',
                r'co_await',
                r'co_return',
                r'co_yield',
                r'compl',
                r'concept',
                r'const_cast|10',
                r'consteval',
                r'constexpr',
                r'constinit',
                r'continue',
                r'decltype',
                r'default',
                r'delete',
                r'do',
                r'dynamic_cast|10',
                r'else',
                r'enum',
                r'explicit',
                r'export',
                r'extern',
                r'false',
                r'final',
                r'for',
                r'friend',
                r'goto',
                r'if',
                r'import',
                r'inline',
                r'module',
                r'mutable',
                r'namespace',
                r'new',
                r'noexcept',
                r'not',
                r'not_eq',
                r'nullptr',
                r'operator',
                r'or',
                r'or_eq',
                r'override',
                r'private',
                r'protected',
                r'public',
                r'reflexpr',
                r'register',
                r'reinterpret_cast|10',
                r'requires',
                r'return',
                r'sizeof',
                r'static_assert',
                r'static_cast|10',
                r'struct',
                r'switch',
                r'synchronized',
                r'template',
                r'this',
                r'thread_local',
                r'throw',
                r'transaction_safe',
                r'transaction_safe_dynamic',
                r'true',
                r'try',
                r'typedef',
                r'typeid',
                r'typename',
                r'union',
                r'using',
                r'virtual',
                r'volatile',
                r'while',
                r'xor',
                r'xor_eq',
              ],
              r'literal': [r'NULL', r'false', r'nullopt', r'nullptr', r'true'],
              r'built_in': [r'_Pragma'],
              r'_type_hints': [
                r'any',
                r'auto_ptr',
                r'barrier',
                r'binary_semaphore',
                r'bitset',
                r'complex',
                r'condition_variable',
                r'condition_variable_any',
                r'counting_semaphore',
                r'deque',
                r'false_type',
                r'flat_map',
                r'flat_set',
                r'future',
                r'imaginary',
                r'initializer_list',
                r'istringstream',
                r'jthread',
                r'latch',
                r'lock_guard',
                r'multimap',
                r'multiset',
                r'mutex',
                r'optional',
                r'ostringstream',
                r'packaged_task',
                r'pair',
                r'promise',
                r'priority_queue',
                r'queue',
                r'recursive_mutex',
                r'recursive_timed_mutex',
                r'scoped_lock',
                r'set',
                r'shared_future',
                r'shared_lock',
                r'shared_mutex',
                r'shared_timed_mutex',
                r'shared_ptr',
                r'stack',
                r'string_view',
                r'stringstream',
                r'timed_mutex',
                r'thread',
                r'true_type',
                r'tuple',
                r'unique_lock',
                r'unique_ptr',
                r'unordered_map',
                r'unordered_multimap',
                r'unordered_multiset',
                r'unordered_set',
                r'variant',
                r'vector',
                r'weak_ptr',
                r'wstring',
                r'wstring_view',
              ],
            },
            contains: [
              _mode0,
              _mode1,
              _mode16,
              _mode9,
              _mode13,
              _mode17,
              _mode20,
              r'self',
            ],
            relevance: 0,
          ),
        ],
        relevance: 0,
      ),
      Mode(
        scope: r'function',
        begin:
            r'((?!struct)(decltype\(auto\)|(?:[a-zA-Z_]\w*::)?[a-zA-Z_]\w*(?:<[^<>]+>)?)[\*&\s]+)+(?:[a-zA-Z_]\w*::)?[a-zA-Z]\w*\s*\(',
        returnBegin: true,
        end: r'[{;=]',
        excludeEnd: true,
        keywords: {
          r'type': [
            r'bool',
            r'char',
            r'char16_t',
            r'char32_t',
            r'char8_t',
            r'double',
            r'float',
            r'int',
            r'long',
            r'short',
            r'void',
            r'wchar_t',
            r'unsigned',
            r'signed',
            r'const',
            r'static',
          ],
          r'keyword': [
            r'alignas',
            r'alignof',
            r'and',
            r'and_eq',
            r'asm',
            r'atomic_cancel',
            r'atomic_commit',
            r'atomic_noexcept',
            r'auto',
            r'bitand',
            r'bitor',
            r'break',
            r'case',
            r'catch',
            r'class',
            r'co_await',
            r'co_return',
            r'co_yield',
            r'compl',
            r'concept',
            r'const_cast|10',
            r'consteval',
            r'constexpr',
            r'constinit',
            r'continue',
            r'decltype',
            r'default',
            r'delete',
            r'do',
            r'dynamic_cast|10',
            r'else',
            r'enum',
            r'explicit',
            r'export',
            r'extern',
            r'false',
            r'final',
            r'for',
            r'friend',
            r'goto',
            r'if',
            r'import',
            r'inline',
            r'module',
            r'mutable',
            r'namespace',
            r'new',
            r'noexcept',
            r'not',
            r'not_eq',
            r'nullptr',
            r'operator',
            r'or',
            r'or_eq',
            r'override',
            r'private',
            r'protected',
            r'public',
            r'reflexpr',
            r'register',
            r'reinterpret_cast|10',
            r'requires',
            r'return',
            r'sizeof',
            r'static_assert',
            r'static_cast|10',
            r'struct',
            r'switch',
            r'synchronized',
            r'template',
            r'this',
            r'thread_local',
            r'throw',
            r'transaction_safe',
            r'transaction_safe_dynamic',
            r'true',
            r'try',
            r'typedef',
            r'typeid',
            r'typename',
            r'union',
            r'using',
            r'virtual',
            r'volatile',
            r'while',
            r'xor',
            r'xor_eq',
          ],
          r'literal': [r'NULL', r'false', r'nullopt', r'nullptr', r'true'],
          r'built_in': [r'_Pragma'],
          r'_type_hints': [
            r'any',
            r'auto_ptr',
            r'barrier',
            r'binary_semaphore',
            r'bitset',
            r'complex',
            r'condition_variable',
            r'condition_variable_any',
            r'counting_semaphore',
            r'deque',
            r'false_type',
            r'flat_map',
            r'flat_set',
            r'future',
            r'imaginary',
            r'initializer_list',
            r'istringstream',
            r'jthread',
            r'latch',
            r'lock_guard',
            r'multimap',
            r'multiset',
            r'mutex',
            r'optional',
            r'ostringstream',
            r'packaged_task',
            r'pair',
            r'promise',
            r'priority_queue',
            r'queue',
            r'recursive_mutex',
            r'recursive_timed_mutex',
            r'scoped_lock',
            r'set',
            r'shared_future',
            r'shared_lock',
            r'shared_mutex',
            r'shared_timed_mutex',
            r'shared_ptr',
            r'stack',
            r'string_view',
            r'stringstream',
            r'timed_mutex',
            r'thread',
            r'true_type',
            r'tuple',
            r'unique_lock',
            r'unique_ptr',
            r'unordered_map',
            r'unordered_multimap',
            r'unordered_multiset',
            r'unordered_set',
            r'variant',
            r'vector',
            r'weak_ptr',
            r'wstring',
            r'wstring_view',
          ],
        },
        illegal: r'[^\w\s\*&:<>.]',
        contains: [
          Mode(
            begin: r'decltype\(auto\)',
            keywords: {
              r'type': [
                r'bool',
                r'char',
                r'char16_t',
                r'char32_t',
                r'char8_t',
                r'double',
                r'float',
                r'int',
                r'long',
                r'short',
                r'void',
                r'wchar_t',
                r'unsigned',
                r'signed',
                r'const',
                r'static',
              ],
              r'keyword': [
                r'alignas',
                r'alignof',
                r'and',
                r'and_eq',
                r'asm',
                r'atomic_cancel',
                r'atomic_commit',
                r'atomic_noexcept',
                r'auto',
                r'bitand',
                r'bitor',
                r'break',
                r'case',
                r'catch',
                r'class',
                r'co_await',
                r'co_return',
                r'co_yield',
                r'compl',
                r'concept',
                r'const_cast|10',
                r'consteval',
                r'constexpr',
                r'constinit',
                r'continue',
                r'decltype',
                r'default',
                r'delete',
                r'do',
                r'dynamic_cast|10',
                r'else',
                r'enum',
                r'explicit',
                r'export',
                r'extern',
                r'false',
                r'final',
                r'for',
                r'friend',
                r'goto',
                r'if',
                r'import',
                r'inline',
                r'module',
                r'mutable',
                r'namespace',
                r'new',
                r'noexcept',
                r'not',
                r'not_eq',
                r'nullptr',
                r'operator',
                r'or',
                r'or_eq',
                r'override',
                r'private',
                r'protected',
                r'public',
                r'reflexpr',
                r'register',
                r'reinterpret_cast|10',
                r'requires',
                r'return',
                r'sizeof',
                r'static_assert',
                r'static_cast|10',
                r'struct',
                r'switch',
                r'synchronized',
                r'template',
                r'this',
                r'thread_local',
                r'throw',
                r'transaction_safe',
                r'transaction_safe_dynamic',
                r'true',
                r'try',
                r'typedef',
                r'typeid',
                r'typename',
                r'union',
                r'using',
                r'virtual',
                r'volatile',
                r'while',
                r'xor',
                r'xor_eq',
              ],
              r'literal': [r'NULL', r'false', r'nullopt', r'nullptr', r'true'],
              r'built_in': [r'_Pragma'],
              r'_type_hints': [
                r'any',
                r'auto_ptr',
                r'barrier',
                r'binary_semaphore',
                r'bitset',
                r'complex',
                r'condition_variable',
                r'condition_variable_any',
                r'counting_semaphore',
                r'deque',
                r'false_type',
                r'flat_map',
                r'flat_set',
                r'future',
                r'imaginary',
                r'initializer_list',
                r'istringstream',
                r'jthread',
                r'latch',
                r'lock_guard',
                r'multimap',
                r'multiset',
                r'mutex',
                r'optional',
                r'ostringstream',
                r'packaged_task',
                r'pair',
                r'promise',
                r'priority_queue',
                r'queue',
                r'recursive_mutex',
                r'recursive_timed_mutex',
                r'scoped_lock',
                r'set',
                r'shared_future',
                r'shared_lock',
                r'shared_mutex',
                r'shared_timed_mutex',
                r'shared_ptr',
                r'stack',
                r'string_view',
                r'stringstream',
                r'timed_mutex',
                r'thread',
                r'true_type',
                r'tuple',
                r'unique_lock',
                r'unique_ptr',
                r'unordered_map',
                r'unordered_multimap',
                r'unordered_multiset',
                r'unordered_set',
                r'variant',
                r'vector',
                r'weak_ptr',
                r'wstring',
                r'wstring_view',
              ],
            },
            relevance: 0,
          ),
          Mode(
            begin: r'(?:[a-zA-Z_]\w*::)?[a-zA-Z]\w*\s*\(',
            returnBegin: true,
            contains: [
              Mode(
                scope: r'title',
                begin: r'(?:[a-zA-Z_]\w*::)?[a-zA-Z]\w*',
                relevance: 0,
              ),
            ],
            relevance: 0,
          ),
          Mode(begin: r'::', relevance: 0),
          Mode(begin: r':', endsWithParent: true, contains: [_mode20, _mode17]),
          Mode(relevance: 0, match: r','),
          Mode(
            scope: r'params',
            begin: r'\(',
            end: r'\)',
            keywords: {
              r'type': [
                r'bool',
                r'char',
                r'char16_t',
                r'char32_t',
                r'char8_t',
                r'double',
                r'float',
                r'int',
                r'long',
                r'short',
                r'void',
                r'wchar_t',
                r'unsigned',
                r'signed',
                r'const',
                r'static',
              ],
              r'keyword': [
                r'alignas',
                r'alignof',
                r'and',
                r'and_eq',
                r'asm',
                r'atomic_cancel',
                r'atomic_commit',
                r'atomic_noexcept',
                r'auto',
                r'bitand',
                r'bitor',
                r'break',
                r'case',
                r'catch',
                r'class',
                r'co_await',
                r'co_return',
                r'co_yield',
                r'compl',
                r'concept',
                r'const_cast|10',
                r'consteval',
                r'constexpr',
                r'constinit',
                r'continue',
                r'decltype',
                r'default',
                r'delete',
                r'do',
                r'dynamic_cast|10',
                r'else',
                r'enum',
                r'explicit',
                r'export',
                r'extern',
                r'false',
                r'final',
                r'for',
                r'friend',
                r'goto',
                r'if',
                r'import',
                r'inline',
                r'module',
                r'mutable',
                r'namespace',
                r'new',
                r'noexcept',
                r'not',
                r'not_eq',
                r'nullptr',
                r'operator',
                r'or',
                r'or_eq',
                r'override',
                r'private',
                r'protected',
                r'public',
                r'reflexpr',
                r'register',
                r'reinterpret_cast|10',
                r'requires',
                r'return',
                r'sizeof',
                r'static_assert',
                r'static_cast|10',
                r'struct',
                r'switch',
                r'synchronized',
                r'template',
                r'this',
                r'thread_local',
                r'throw',
                r'transaction_safe',
                r'transaction_safe_dynamic',
                r'true',
                r'try',
                r'typedef',
                r'typeid',
                r'typename',
                r'union',
                r'using',
                r'virtual',
                r'volatile',
                r'while',
                r'xor',
                r'xor_eq',
              ],
              r'literal': [r'NULL', r'false', r'nullopt', r'nullptr', r'true'],
              r'built_in': [r'_Pragma'],
              r'_type_hints': [
                r'any',
                r'auto_ptr',
                r'barrier',
                r'binary_semaphore',
                r'bitset',
                r'complex',
                r'condition_variable',
                r'condition_variable_any',
                r'counting_semaphore',
                r'deque',
                r'false_type',
                r'flat_map',
                r'flat_set',
                r'future',
                r'imaginary',
                r'initializer_list',
                r'istringstream',
                r'jthread',
                r'latch',
                r'lock_guard',
                r'multimap',
                r'multiset',
                r'mutex',
                r'optional',
                r'ostringstream',
                r'packaged_task',
                r'pair',
                r'promise',
                r'priority_queue',
                r'queue',
                r'recursive_mutex',
                r'recursive_timed_mutex',
                r'scoped_lock',
                r'set',
                r'shared_future',
                r'shared_lock',
                r'shared_mutex',
                r'shared_timed_mutex',
                r'shared_ptr',
                r'stack',
                r'string_view',
                r'stringstream',
                r'timed_mutex',
                r'thread',
                r'true_type',
                r'tuple',
                r'unique_lock',
                r'unique_ptr',
                r'unordered_map',
                r'unordered_multimap',
                r'unordered_multiset',
                r'unordered_set',
                r'variant',
                r'vector',
                r'weak_ptr',
                r'wstring',
                r'wstring_view',
              ],
            },
            relevance: 0,
            contains: [
              _mode9,
              _mode13,
              _mode20,
              _mode17,
              _mode16,
              Mode(
                begin: r'\(',
                end: r'\)',
                keywords: {
                  r'type': [
                    r'bool',
                    r'char',
                    r'char16_t',
                    r'char32_t',
                    r'char8_t',
                    r'double',
                    r'float',
                    r'int',
                    r'long',
                    r'short',
                    r'void',
                    r'wchar_t',
                    r'unsigned',
                    r'signed',
                    r'const',
                    r'static',
                  ],
                  r'keyword': [
                    r'alignas',
                    r'alignof',
                    r'and',
                    r'and_eq',
                    r'asm',
                    r'atomic_cancel',
                    r'atomic_commit',
                    r'atomic_noexcept',
                    r'auto',
                    r'bitand',
                    r'bitor',
                    r'break',
                    r'case',
                    r'catch',
                    r'class',
                    r'co_await',
                    r'co_return',
                    r'co_yield',
                    r'compl',
                    r'concept',
                    r'const_cast|10',
                    r'consteval',
                    r'constexpr',
                    r'constinit',
                    r'continue',
                    r'decltype',
                    r'default',
                    r'delete',
                    r'do',
                    r'dynamic_cast|10',
                    r'else',
                    r'enum',
                    r'explicit',
                    r'export',
                    r'extern',
                    r'false',
                    r'final',
                    r'for',
                    r'friend',
                    r'goto',
                    r'if',
                    r'import',
                    r'inline',
                    r'module',
                    r'mutable',
                    r'namespace',
                    r'new',
                    r'noexcept',
                    r'not',
                    r'not_eq',
                    r'nullptr',
                    r'operator',
                    r'or',
                    r'or_eq',
                    r'override',
                    r'private',
                    r'protected',
                    r'public',
                    r'reflexpr',
                    r'register',
                    r'reinterpret_cast|10',
                    r'requires',
                    r'return',
                    r'sizeof',
                    r'static_assert',
                    r'static_cast|10',
                    r'struct',
                    r'switch',
                    r'synchronized',
                    r'template',
                    r'this',
                    r'thread_local',
                    r'throw',
                    r'transaction_safe',
                    r'transaction_safe_dynamic',
                    r'true',
                    r'try',
                    r'typedef',
                    r'typeid',
                    r'typename',
                    r'union',
                    r'using',
                    r'virtual',
                    r'volatile',
                    r'while',
                    r'xor',
                    r'xor_eq',
                  ],
                  r'literal': [
                    r'NULL',
                    r'false',
                    r'nullopt',
                    r'nullptr',
                    r'true',
                  ],
                  r'built_in': [r'_Pragma'],
                  r'_type_hints': [
                    r'any',
                    r'auto_ptr',
                    r'barrier',
                    r'binary_semaphore',
                    r'bitset',
                    r'complex',
                    r'condition_variable',
                    r'condition_variable_any',
                    r'counting_semaphore',
                    r'deque',
                    r'false_type',
                    r'flat_map',
                    r'flat_set',
                    r'future',
                    r'imaginary',
                    r'initializer_list',
                    r'istringstream',
                    r'jthread',
                    r'latch',
                    r'lock_guard',
                    r'multimap',
                    r'multiset',
                    r'mutex',
                    r'optional',
                    r'ostringstream',
                    r'packaged_task',
                    r'pair',
                    r'promise',
                    r'priority_queue',
                    r'queue',
                    r'recursive_mutex',
                    r'recursive_timed_mutex',
                    r'scoped_lock',
                    r'set',
                    r'shared_future',
                    r'shared_lock',
                    r'shared_mutex',
                    r'shared_timed_mutex',
                    r'shared_ptr',
                    r'stack',
                    r'string_view',
                    r'stringstream',
                    r'timed_mutex',
                    r'thread',
                    r'true_type',
                    r'tuple',
                    r'unique_lock',
                    r'unique_ptr',
                    r'unordered_map',
                    r'unordered_multimap',
                    r'unordered_multiset',
                    r'unordered_set',
                    r'variant',
                    r'vector',
                    r'weak_ptr',
                    r'wstring',
                    r'wstring_view',
                  ],
                },
                relevance: 0,
                contains: [r'self', _mode9, _mode13, _mode20, _mode17, _mode16],
              ),
            ],
          ),
          _mode16,
          _mode9,
          _mode13,
          _mode1,
        ],
      ),
      _mode0,
      _mode0,
      _mode1,
      _mode16,
      _mode9,
      _mode13,
      _mode17,
      _mode20,
      _mode1,
      Mode(
        begin:
            r'\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\s*<(?!<)',
        end: r'>',
        keywords: {
          r'type': [
            r'bool',
            r'char',
            r'char16_t',
            r'char32_t',
            r'char8_t',
            r'double',
            r'float',
            r'int',
            r'long',
            r'short',
            r'void',
            r'wchar_t',
            r'unsigned',
            r'signed',
            r'const',
            r'static',
          ],
          r'keyword': [
            r'alignas',
            r'alignof',
            r'and',
            r'and_eq',
            r'asm',
            r'atomic_cancel',
            r'atomic_commit',
            r'atomic_noexcept',
            r'auto',
            r'bitand',
            r'bitor',
            r'break',
            r'case',
            r'catch',
            r'class',
            r'co_await',
            r'co_return',
            r'co_yield',
            r'compl',
            r'concept',
            r'const_cast|10',
            r'consteval',
            r'constexpr',
            r'constinit',
            r'continue',
            r'decltype',
            r'default',
            r'delete',
            r'do',
            r'dynamic_cast|10',
            r'else',
            r'enum',
            r'explicit',
            r'export',
            r'extern',
            r'false',
            r'final',
            r'for',
            r'friend',
            r'goto',
            r'if',
            r'import',
            r'inline',
            r'module',
            r'mutable',
            r'namespace',
            r'new',
            r'noexcept',
            r'not',
            r'not_eq',
            r'nullptr',
            r'operator',
            r'or',
            r'or_eq',
            r'override',
            r'private',
            r'protected',
            r'public',
            r'reflexpr',
            r'register',
            r'reinterpret_cast|10',
            r'requires',
            r'return',
            r'sizeof',
            r'static_assert',
            r'static_cast|10',
            r'struct',
            r'switch',
            r'synchronized',
            r'template',
            r'this',
            r'thread_local',
            r'throw',
            r'transaction_safe',
            r'transaction_safe_dynamic',
            r'true',
            r'try',
            r'typedef',
            r'typeid',
            r'typename',
            r'union',
            r'using',
            r'virtual',
            r'volatile',
            r'while',
            r'xor',
            r'xor_eq',
          ],
          r'literal': [r'NULL', r'false', r'nullopt', r'nullptr', r'true'],
          r'built_in': [r'_Pragma'],
          r'_type_hints': [
            r'any',
            r'auto_ptr',
            r'barrier',
            r'binary_semaphore',
            r'bitset',
            r'complex',
            r'condition_variable',
            r'condition_variable_any',
            r'counting_semaphore',
            r'deque',
            r'false_type',
            r'flat_map',
            r'flat_set',
            r'future',
            r'imaginary',
            r'initializer_list',
            r'istringstream',
            r'jthread',
            r'latch',
            r'lock_guard',
            r'multimap',
            r'multiset',
            r'mutex',
            r'optional',
            r'ostringstream',
            r'packaged_task',
            r'pair',
            r'promise',
            r'priority_queue',
            r'queue',
            r'recursive_mutex',
            r'recursive_timed_mutex',
            r'scoped_lock',
            r'set',
            r'shared_future',
            r'shared_lock',
            r'shared_mutex',
            r'shared_timed_mutex',
            r'shared_ptr',
            r'stack',
            r'string_view',
            r'stringstream',
            r'timed_mutex',
            r'thread',
            r'true_type',
            r'tuple',
            r'unique_lock',
            r'unique_ptr',
            r'unordered_map',
            r'unordered_multimap',
            r'unordered_multiset',
            r'unordered_set',
            r'variant',
            r'vector',
            r'weak_ptr',
            r'wstring',
            r'wstring_view',
          ],
        },
        contains: [r'self', _mode16],
      ),
      Mode(
        begin: r'[a-zA-Z]\w*::',
        keywords: {
          r'type': [
            r'bool',
            r'char',
            r'char16_t',
            r'char32_t',
            r'char8_t',
            r'double',
            r'float',
            r'int',
            r'long',
            r'short',
            r'void',
            r'wchar_t',
            r'unsigned',
            r'signed',
            r'const',
            r'static',
          ],
          r'keyword': [
            r'alignas',
            r'alignof',
            r'and',
            r'and_eq',
            r'asm',
            r'atomic_cancel',
            r'atomic_commit',
            r'atomic_noexcept',
            r'auto',
            r'bitand',
            r'bitor',
            r'break',
            r'case',
            r'catch',
            r'class',
            r'co_await',
            r'co_return',
            r'co_yield',
            r'compl',
            r'concept',
            r'const_cast|10',
            r'consteval',
            r'constexpr',
            r'constinit',
            r'continue',
            r'decltype',
            r'default',
            r'delete',
            r'do',
            r'dynamic_cast|10',
            r'else',
            r'enum',
            r'explicit',
            r'export',
            r'extern',
            r'false',
            r'final',
            r'for',
            r'friend',
            r'goto',
            r'if',
            r'import',
            r'inline',
            r'module',
            r'mutable',
            r'namespace',
            r'new',
            r'noexcept',
            r'not',
            r'not_eq',
            r'nullptr',
            r'operator',
            r'or',
            r'or_eq',
            r'override',
            r'private',
            r'protected',
            r'public',
            r'reflexpr',
            r'register',
            r'reinterpret_cast|10',
            r'requires',
            r'return',
            r'sizeof',
            r'static_assert',
            r'static_cast|10',
            r'struct',
            r'switch',
            r'synchronized',
            r'template',
            r'this',
            r'thread_local',
            r'throw',
            r'transaction_safe',
            r'transaction_safe_dynamic',
            r'true',
            r'try',
            r'typedef',
            r'typeid',
            r'typename',
            r'union',
            r'using',
            r'virtual',
            r'volatile',
            r'while',
            r'xor',
            r'xor_eq',
          ],
          r'literal': [r'NULL', r'false', r'nullopt', r'nullptr', r'true'],
          r'built_in': [r'_Pragma'],
          r'_type_hints': [
            r'any',
            r'auto_ptr',
            r'barrier',
            r'binary_semaphore',
            r'bitset',
            r'complex',
            r'condition_variable',
            r'condition_variable_any',
            r'counting_semaphore',
            r'deque',
            r'false_type',
            r'flat_map',
            r'flat_set',
            r'future',
            r'imaginary',
            r'initializer_list',
            r'istringstream',
            r'jthread',
            r'latch',
            r'lock_guard',
            r'multimap',
            r'multiset',
            r'mutex',
            r'optional',
            r'ostringstream',
            r'packaged_task',
            r'pair',
            r'promise',
            r'priority_queue',
            r'queue',
            r'recursive_mutex',
            r'recursive_timed_mutex',
            r'scoped_lock',
            r'set',
            r'shared_future',
            r'shared_lock',
            r'shared_mutex',
            r'shared_timed_mutex',
            r'shared_ptr',
            r'stack',
            r'string_view',
            r'stringstream',
            r'timed_mutex',
            r'thread',
            r'true_type',
            r'tuple',
            r'unique_lock',
            r'unique_ptr',
            r'unordered_map',
            r'unordered_multimap',
            r'unordered_multiset',
            r'unordered_set',
            r'variant',
            r'vector',
            r'weak_ptr',
            r'wstring',
            r'wstring_view',
          ],
        },
      ),
      Mode(
        match: [
          r'\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)',
          r'\s+',
          r'\w+',
        ],
        scope: {1: r'keyword', 3: r'title.class'},
      ),
    ],
  );
}