1
0
mirror of https://git.tuxpa.in/a/code-server.git synced 2024-12-26 20:25:25 +00:00
code-server-2/lib/vscode/extensions/cpp/syntaxes/cpp.tmLanguage.json
Joe Previte eae5d8c807
chore(vscode): update to 1.53.2
These conflicts will be resolved in the following commits. We do it this way so
that PR review is possible.
2021-02-25 11:27:27 -07:00

19818 lines
602 KiB
JSON

{
"information_for_contributors": [
"This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master/syntaxes/cpp.tmLanguage.json",
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
"version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/f074a48ae0b7ba313af3faf3d8bfda8537864bd1",
"name": "C++",
"scopeName": "source.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#constructor_root"
},
{
"include": "#destructor_root"
},
{
"include": "#function_definition"
},
{
"include": "#operator_overload"
},
{
"include": "#using_namespace"
},
{
"include": "#type_alias"
},
{
"include": "#using_name"
},
{
"include": "#namespace_alias"
},
{
"include": "#namespace_block"
},
{
"include": "#extern_block"
},
{
"include": "#typedef_class"
},
{
"include": "#typedef_struct"
},
{
"include": "#typedef_union"
},
{
"include": "#misc_keywords"
},
{
"include": "#standard_declares"
},
{
"include": "#class_block"
},
{
"include": "#struct_block"
},
{
"include": "#union_block"
},
{
"include": "#enum_block"
},
{
"include": "#template_isolated_definition"
},
{
"include": "#template_definition"
},
{
"include": "#access_control_keywords"
},
{
"include": "#block"
},
{
"include": "#static_assert"
},
{
"include": "#assembly"
},
{
"include": "#function_pointer"
},
{
"include": "#evaluation_context"
}
],
"repository": {
"access_control_keywords": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?:(?:protected)|(?:private)|(?:public)))(?:(?:\\s)+)?(:))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "storage.type.modifier.access.control.$4.cpp"
},
"4": {},
"5": {
"name": "punctuation.separator.colon.access.control.cpp"
}
}
},
"alignas_attribute": {
"begin": "alignas\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {},
"endCaptures": {},
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context"
}
]
},
{
"match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "entity.name.namespace.cpp"
}
}
},
{
"match": ",",
"name": "punctuation.separator.attribute.cpp"
},
{
"match": ":",
"name": "punctuation.accessor.attribute.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
"name": "entity.name.namespace.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.other.attribute.$0.cpp"
},
{
"include": "#number_literal"
}
]
},
"alignas_operator": {
"begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
}
},
"contentName": "meta.arguments.operator.alignas",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"alignof_operator": {
"begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
}
},
"contentName": "meta.arguments.operator.alignof",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"assembly": {
"begin": "(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)",
"end": "(?!\\G)",
"beginCaptures": {
"1": {
"name": "storage.type.asm.cpp"
},
"2": {
"name": "storage.modifier.cpp"
}
},
"endCaptures": {},
"name": "meta.asm.cpp",
"patterns": [
{
"match": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"include": "#comments"
},
{
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parens.begin.bracket.round.assembly.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.assembly.cpp"
}
},
"patterns": [
{
"begin": "(R?)(\")",
"end": "\"",
"beginCaptures": {
"1": {
"name": "meta.encoding.cpp"
},
"2": {
"name": "punctuation.definition.string.begin.assembly.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.assembly.cpp"
}
},
"name": "string.quoted.double.cpp",
"contentName": "meta.embedded.assembly",
"patterns": [
{
"include": "source.asm"
},
{
"include": "source.x86"
},
{
"include": "source.x86_64"
},
{
"include": "source.arm"
},
{
"include": "#backslash_escapes"
},
{
"include": "#string_escaped_char"
}
]
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "\\[((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "variable.other.asm.label.cpp"
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": ":",
"name": "punctuation.separator.delimiter.colon.assembly.cpp"
},
{
"include": "#comments"
}
]
}
]
},
"assignment_operator": {
"match": "\\=",
"name": "keyword.operator.assignment.cpp"
},
"attributes_context": {
"patterns": [
{
"include": "#cpp_attributes"
},
{
"include": "#gcc_attributes"
},
{
"include": "#ms_attributes"
},
{
"include": "#alignas_attribute"
}
]
},
"backslash_escapes": {
"match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
"name": "constant.character.escape"
},
"block": {
"begin": "{",
"end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
"beginCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.cpp"
}
},
"name": "meta.block.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
"block_comment": {
"begin": "\\s*+(\\/\\*)",
"end": "\\*\\/",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.begin.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.comment.end.cpp"
}
},
"name": "comment.block.cpp"
},
"builtin_storage_type_initilizer": {
"begin": "(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)(?:\\s)*+(?<!\\w)(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
"2": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"3": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"4": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"5": {
"name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"case_statement": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)case(?!\\w))",
"end": ":",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "keyword.control.case.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.separator.colon.case.cpp"
}
},
"name": "meta.conditional.case.cpp",
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "#c_conditional_context"
}
]
},
"class_block": {
"begin": "((?<!\\w)class(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.class.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
"captures": {
"1": {
"name": "entity.name.type.class.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.class.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
"name": "meta.head.class.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
"name": "meta.body.class.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.class.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"class_declare": {
"match": "((?<!\\w)class(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.class.declare.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.class.cpp"
},
"5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "variable.other.object.declare.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"comma": {
"match": ",",
"name": "punctuation.separator.delimiter.comma.cpp"
},
"comma_in_template_argument": {
"match": ",",
"name": "punctuation.separator.delimiter.comma.template.argument.cpp"
},
"comments": {
"patterns": [
{
"begin": "^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)",
"end": "(?<=\\n)(?<!\\\\\\n)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.documentation.cpp"
}
},
"endCaptures": {},
"name": "comment.line.double-slash.documentation.cpp",
"patterns": [
{
"include": "#line_continuation_character"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"patterns": [
{
"match": "in|out",
"name": "keyword.other.parameter.direction.$0.cpp"
}
]
},
"3": {
"name": "variable.parameter.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc.cpp"
}
]
},
{
"match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
"captures": {
"1": {
"name": "punctuation.definition.comment.begin.documentation.cpp"
},
"2": {
"patterns": [
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"patterns": [
{
"match": "in|out",
"name": "keyword.other.parameter.direction.$0.cpp"
}
]
},
"3": {
"name": "variable.parameter.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc.cpp"
}
]
},
"3": {
"name": "punctuation.definition.comment.end.documentation.cpp"
}
},
"name": "comment.block.documentation.cpp"
},
{
"begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))",
"end": "[!*]*\\*\\/",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.begin.documentation.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.comment.end.documentation.cpp"
}
},
"name": "comment.block.documentation.cpp",
"patterns": [
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"patterns": [
{
"match": "in|out",
"name": "keyword.other.parameter.direction.$0.cpp"
}
]
},
"3": {
"name": "variable.parameter.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc.cpp"
}
]
},
{
"include": "#emacs_file_banner"
},
{
"include": "#block_comment"
},
{
"include": "#line_comment"
},
{
"include": "#invalid_comment_end"
}
]
},
"constructor_inline": {
"begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())",
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.constructor.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"patterns": [
{
"include": "#functional_specifiers_pre_parameters"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
"name": "comment.block.cpp"
},
"13": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"14": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"17": {
"name": "comment.block.cpp"
},
"18": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"19": {
"name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
}
},
"endCaptures": {},
"name": "meta.function.definition.special.constructor.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
}
},
"name": "meta.head.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "keyword.other.default.constructor.cpp"
},
"7": {
"name": "keyword.other.delete.constructor.cpp"
}
}
},
{
"include": "#functional_specifiers_pre_parameters"
},
{
"begin": ":",
"end": "(?=\\{)",
"beginCaptures": {
"0": {
"name": "punctuation.separator.initializers.cpp"
}
},
"endCaptures": {},
"patterns": [
{
"begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"3": {},
"4": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"contentName": "meta.parameter.initialization",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)",
"end": "\\}",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"contentName": "meta.parameter.initialization",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": ",",
"name": "punctuation.separator.delimiter.comma.cpp"
},
{
"include": "#comments"
}
]
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.constructor",
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"match": "((?:(?:final)|(?:override)))+",
"captures": {
"1": {
"name": "keyword.operator.$1.cpp"
}
}
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
}
},
"name": "meta.body.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"constructor_root": {
"begin": "\\s*+((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.constructor.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.constructor.cpp"
},
{
"include": "#template_call_range"
}
]
},
"11": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"12": {},
"13": {
"patterns": [
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)",
"name": "entity.name.type.constructor.cpp"
},
{
"match": "(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.function.definition.special.constructor.cpp"
},
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
}
]
},
"14": {},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"17": {
"name": "comment.block.cpp"
},
"18": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"23": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"24": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"25": {
"name": "comment.block.cpp"
},
"26": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"endCaptures": {},
"name": "meta.function.definition.special.constructor.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
}
},
"name": "meta.head.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "keyword.other.default.constructor.cpp"
},
"7": {
"name": "keyword.other.delete.constructor.cpp"
}
}
},
{
"include": "#functional_specifiers_pre_parameters"
},
{
"begin": ":",
"end": "(?=\\{)",
"beginCaptures": {
"0": {
"name": "punctuation.separator.initializers.cpp"
}
},
"endCaptures": {},
"patterns": [
{
"begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"3": {},
"4": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"contentName": "meta.parameter.initialization",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)",
"end": "\\}",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"contentName": "meta.parameter.initialization",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": ",",
"name": "punctuation.separator.delimiter.comma.cpp"
},
{
"include": "#comments"
}
]
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.constructor",
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"match": "((?:(?:final)|(?:override)))+",
"captures": {
"1": {
"name": "keyword.operator.$1.cpp"
}
}
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
}
},
"name": "meta.body.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.function.definition.special.constructor.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"control_flow_keywords": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:co_return)|(?:co_yield)|(?:co_await)|(?:continue)|(?:default)|(?:return)|(?:switch)|(?:catch)|(?:while)|(?:throw)|(?:break)|(?:else)|(?:case)|(?:goto)|(?:for)|(?:try)|(?:if)|(?:do))(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "keyword.control.$3.cpp"
}
}
},
"cpp_attributes": {
"begin": "\\[\\[",
"end": "\\]\\]",
"beginCaptures": {
"0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {},
"endCaptures": {},
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context"
}
]
},
{
"match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "entity.name.namespace.cpp"
}
}
},
{
"match": ",",
"name": "punctuation.separator.attribute.cpp"
},
{
"match": ":",
"name": "punctuation.accessor.attribute.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
"name": "entity.name.namespace.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.other.attribute.$0.cpp"
},
{
"include": "#number_literal"
}
]
},
"curly_initializer": {
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)",
"end": "\\}",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {},
"14": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"18": {},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"23": {
"name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp"
}
},
"name": "meta.initialization.cpp",
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "#comma"
}
]
},
"d9bc4796b0b_module_import": {
"match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((import))(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\\")[^\\\"]*((?:\\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))(?:(?:\\s)+)?(;?)",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "keyword.control.directive.import.cpp"
},
"5": {
"name": "string.quoted.other.lt-gt.include.cpp"
},
"6": {
"name": "punctuation.definition.string.begin.cpp"
},
"7": {
"name": "punctuation.definition.string.end.cpp"
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"name": "string.quoted.double.include.cpp"
},
"11": {
"name": "punctuation.definition.string.begin.cpp"
},
"12": {
"name": "punctuation.definition.string.end.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"15": {
"name": "entity.name.other.preprocessor.macro.include.cpp"
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"18": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"19": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"21": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"22": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.preprocessor.import.cpp"
},
"d9bc4796b0b_preprocessor_number_literal": {
"match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*",
"captures": {
"0": {
"patterns": [
{
"begin": "(?=.)",
"end": "$",
"beginCaptures": {},
"endCaptures": {},
"patterns": [
{
"match": "(\\G0[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])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?$",
"captures": {
"1": {
"name": "keyword.other.unit.hexadecimal.cpp"
},
"2": {
"name": "constant.numeric.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"4": {
"name": "constant.numeric.hexadecimal.cpp"
},
"5": {
"name": "constant.numeric.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"6": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"7": {
"name": "keyword.other.unit.exponent.hexadecimal.cpp"
},
"8": {
"name": "keyword.operator.plus.exponent.hexadecimal.cpp"
},
"9": {
"name": "keyword.operator.minus.exponent.hexadecimal.cpp"
},
"10": {
"name": "constant.numeric.exponent.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"11": {
"name": "keyword.other.unit.suffix.floating-point.cpp"
}
}
},
{
"match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?$",
"captures": {
"1": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"2": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"3": {
"name": "constant.numeric.decimal.point.cpp"
},
"4": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"5": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"6": {
"name": "keyword.other.unit.exponent.decimal.cpp"
},
"7": {
"name": "keyword.operator.plus.exponent.decimal.cpp"
},
"8": {
"name": "keyword.operator.minus.exponent.decimal.cpp"
},
"9": {
"name": "constant.numeric.exponent.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"10": {
"name": "keyword.other.unit.suffix.floating-point.cpp"
}
}
},
{
"match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$",
"captures": {
"1": {
"name": "keyword.other.unit.binary.cpp"
},
"2": {
"name": "constant.numeric.binary.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"4": {
"name": "keyword.other.unit.suffix.integer.cpp"
}
}
},
{
"match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$",
"captures": {
"1": {
"name": "keyword.other.unit.octal.cpp"
},
"2": {
"name": "constant.numeric.octal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"4": {
"name": "keyword.other.unit.suffix.integer.cpp"
}
}
},
{
"match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$",
"captures": {
"1": {
"name": "keyword.other.unit.hexadecimal.cpp"
},
"2": {
"name": "constant.numeric.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"4": {
"name": "keyword.other.unit.exponent.hexadecimal.cpp"
},
"5": {
"name": "keyword.operator.plus.exponent.hexadecimal.cpp"
},
"6": {
"name": "keyword.operator.minus.exponent.hexadecimal.cpp"
},
"7": {
"name": "constant.numeric.exponent.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"8": {
"name": "keyword.other.unit.suffix.integer.cpp"
}
}
},
{
"match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$",
"captures": {
"1": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"2": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"3": {
"name": "keyword.other.unit.exponent.decimal.cpp"
},
"4": {
"name": "keyword.operator.plus.exponent.decimal.cpp"
},
"5": {
"name": "keyword.operator.minus.exponent.decimal.cpp"
},
"6": {
"name": "constant.numeric.exponent.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"7": {
"name": "keyword.other.unit.suffix.integer.cpp"
}
}
},
{
"match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",
"name": "invalid.illegal.constant.numeric.cpp"
}
]
}
]
}
}
},
"decltype": {
"begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
}
},
"contentName": "meta.arguments.decltype",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"decltype_specifier": {
"begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
}
},
"contentName": "meta.arguments.decltype",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"default_statement": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)default(?!\\w))",
"end": ":",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "keyword.control.default.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.separator.colon.case.default.cpp"
}
},
"name": "meta.conditional.case.cpp",
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "#c_conditional_context"
}
]
},
"destructor_inline": {
"begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())",
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.member.destructor.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"7": {
"name": "comment.block.cpp"
},
"8": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"9": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
"name": "comment.block.cpp"
},
"13": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"14": {
"patterns": [
{
"include": "#functional_specifiers_pre_parameters"
}
]
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"17": {
"name": "comment.block.cpp"
},
"18": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"19": {
"name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
}
},
"endCaptures": {},
"name": "meta.function.definition.special.member.destructor.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"name": "meta.head.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "keyword.other.default.constructor.cpp"
},
"7": {
"name": "keyword.other.delete.constructor.cpp"
}
}
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.member.destructor",
"patterns": []
},
{
"match": "((?:(?:final)|(?:override)))+",
"captures": {
"1": {
"name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp"
}
}
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"name": "meta.body.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"destructor_root": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.member.destructor.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.destructor.cpp"
},
{
"include": "#template_call_range"
}
]
},
"11": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"12": {},
"13": {
"patterns": [
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)",
"name": "entity.name.type.destructor.cpp"
},
{
"match": "(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.function.definition.special.member.destructor.cpp"
},
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
}
]
},
"14": {},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"17": {
"name": "comment.block.cpp"
},
"18": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"23": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"24": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"25": {
"name": "comment.block.cpp"
},
"26": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"endCaptures": {},
"name": "meta.function.definition.special.member.destructor.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"name": "meta.head.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
"captures": {
"1": {
"name": "keyword.operator.assignment.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "keyword.other.default.constructor.cpp"
},
"7": {
"name": "keyword.other.delete.constructor.cpp"
}
}
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.member.destructor",
"patterns": []
},
{
"match": "((?:(?:final)|(?:override)))+",
"captures": {
"1": {
"name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp"
}
}
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"name": "meta.body.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.function.definition.special.member.destructor.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"diagnostic": {
"begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?",
"end": "(?<!\\\\)(?=\\n)",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.diagnostic.$7.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.definition.directive.cpp"
},
"7": {}
},
"endCaptures": {},
"name": "meta.preprocessor.diagnostic.$reference(directive).cpp",
"patterns": [
{
"begin": "\"",
"end": "(?:(\")|(?<!\\\\)(?=\\n))",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.double.cpp",
"patterns": [
{
"include": "#line_continuation_character"
}
]
},
{
"begin": "'",
"end": "(?:(')|(?<!\\\\)(?=\\n))",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.single.cpp",
"patterns": [
{
"include": "#line_continuation_character"
}
]
},
{
"begin": "[^'\"]",
"end": "(?<!\\\\)(?=\\n)",
"beginCaptures": {},
"endCaptures": {},
"name": "string.unquoted.cpp",
"patterns": [
{
"include": "#line_continuation_character"
},
{
"include": "#comments"
}
]
}
]
},
"emacs_file_banner": {
"match": "(?:(^(?:(?:\\s)+)?((\\/\\/)(?:(?:\\s)+)?((?:[#;\\/=*C~]+)++(?![#;\\/=*C~]))(?:(?:\\s)+)?.+(?:(?:\\s)+)?\\4(?:(?:\\s)+)?(?:\\n|$)))|(^(?:(?:\\s)+)?((\\/\\*)(?:(?:\\s)+)?((?:[#;\\/=*C~]+)++(?![#;\\/=*C~]))(?:(?:\\s)+)?.+(?:(?:\\s)+)?\\8(?:(?:\\s)+)?\\*\\/)))",
"captures": {
"1": {
"name": "meta.toc-list.banner.double-slash.cpp"
},
"2": {
"name": "comment.line.double-slash.cpp"
},
"3": {
"name": "punctuation.definition.comment.cpp"
},
"4": {
"name": "meta.banner.character.cpp"
},
"5": {
"name": "meta.toc-list.banner.block.cpp"
},
"6": {
"name": "comment.line.banner.cpp"
},
"7": {
"name": "punctuation.definition.comment.cpp"
},
"8": {
"name": "meta.banner.character.cpp"
}
}
},
"empty_square_brackets": {
"name": "storage.modifier.array.bracket.square",
"match": "(?<!delete)\\[(?:(?:\\s)+)?\\]"
},
"enum_block": {
"begin": "((?<!\\w)enum(?!\\w))(?:(?:\\s)+(class|struct))?(?:(?:(?:\\s)+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:(?:\\s)+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:(?:\\s)+)?(:)(?:(?:\\s)+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?",
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.enum.cpp"
},
"1": {
"name": "storage.type.enum.cpp"
},
"2": {
"name": "storage.type.enum.enum-key.$2.cpp"
},
"3": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"4": {
"name": "entity.name.type.enum.cpp"
},
"5": {
"name": "punctuation.separator.colon.type-specifier.cpp"
},
"6": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"7": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"8": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {},
"10": {
"name": "entity.name.scope-resolution.cpp"
},
"11": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"12": {},
"13": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"14": {
"name": "storage.type.integral.$14.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.enum.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
}
},
"name": "meta.head.enum.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.enum.cpp"
}
},
"name": "meta.body.enum.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#enumerator_list"
},
{
"include": "#comments"
},
{
"include": "#comma"
},
{
"include": "#semicolon"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.enum.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"enum_declare": {
"match": "((?<!\\w)enum(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.enum.declare.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.enum.cpp"
},
"5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "variable.other.object.declare.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"enumerator_list": {
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?(?:(?:\\s)+)?(?:(\\=)(?:(?:\\s)+)?(.+?)(?:(?:\\s)+)?)?(?:(?:((?:[,;](?!')|\\n))|(?=\\}[^']))|(?=(?:\\/\\/|\\/\\*)))",
"captures": {
"1": {
"name": "variable.other.enummember.cpp"
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"3": {
"name": "keyword.operator.assignment.cpp"
},
"4": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"5": {
"patterns": [
{
"include": "#comma"
},
{
"include": "#semicolon"
}
]
}
},
"name": "meta.enum.definition.cpp"
},
"evaluation_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#string_context"
},
{
"include": "#number_literal"
},
{
"include": "#method_access"
},
{
"include": "#member_access"
},
{
"include": "#predefined_macros"
},
{
"include": "#operators"
},
{
"include": "#memory_operators"
},
{
"include": "#wordlike_operators"
},
{
"include": "#type_casting_operators"
},
{
"include": "#control_flow_keywords"
},
{
"include": "#exception_keywords"
},
{
"include": "#the_this_keyword"
},
{
"include": "#language_constants"
},
{
"include": "#builtin_storage_type_initilizer"
},
{
"include": "#qualifiers_and_specifiers_post_parameters"
},
{
"include": "#functional_specifiers_pre_parameters"
},
{
"include": "#storage_types"
},
{
"include": "#lambdas"
},
{
"include": "#attributes_context"
},
{
"include": "#parentheses"
},
{
"include": "#function_call"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#square_brackets"
},
{
"include": "#semicolon"
},
{
"include": "#comma"
}
]
},
"ever_present_context": {
"patterns": [
{
"include": "#pragma_mark"
},
{
"include": "#pragma"
},
{
"include": "#include"
},
{
"include": "#line"
},
{
"include": "#diagnostic"
},
{
"include": "#undef"
},
{
"include": "#preprocessor_conditional_range"
},
{
"include": "#single_line_macro"
},
{
"include": "#macro"
},
{
"include": "#preprocessor_conditional_standalone"
},
{
"include": "#macro_argument"
},
{
"include": "#comments"
},
{
"include": "#line_continuation_character"
}
]
},
"exception_keywords": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:throw)|(?:catch)|(?:try))(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "keyword.control.exception.$3.cpp"
}
}
},
"extern_block": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")",
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.extern.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "storage.type.extern.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.extern.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
}
},
"name": "meta.head.extern.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.extern.cpp"
}
},
"name": "meta.body.extern.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.extern.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"include": "$self"
}
]
},
"function_body_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#using_namespace"
},
{
"include": "#type_alias"
},
{
"include": "#using_name"
},
{
"include": "#namespace_alias"
},
{
"include": "#typedef_class"
},
{
"include": "#typedef_struct"
},
{
"include": "#typedef_union"
},
{
"include": "#misc_keywords"
},
{
"include": "#standard_declares"
},
{
"include": "#class_block"
},
{
"include": "#struct_block"
},
{
"include": "#union_block"
},
{
"include": "#enum_block"
},
{
"include": "#access_control_keywords"
},
{
"include": "#block"
},
{
"include": "#static_assert"
},
{
"include": "#assembly"
},
{
"include": "#function_pointer"
},
{
"include": "#switch_statement"
},
{
"include": "#goto_statement"
},
{
"include": "#evaluation_context"
},
{
"include": "#label"
}
]
},
"function_call": {
"begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wint_least16_t|^int_least16_t|\\Watomic_commit|^atomic_commit|\\Watomic_cancel|^atomic_cancel|\\Wuint_fast64_t|^uint_fast64_t|\\Wuint_least8_t|^uint_least8_t|\\Wint_least64_t|^int_least64_t|\\Wint_least32_t|^int_least32_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wdynamic_cast|^dynamic_cast|\\Wthread_local|^thread_local|\\Wuint_fast8_t|^uint_fast8_t|\\Wint_fast64_t|^int_fast64_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast16_t|^int_fast16_t|\\Wsynchronized|^synchronized|\\Wint_least8_t|^int_least8_t|\\Wsuseconds_t|^suseconds_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wnamespace|^namespace|\\Wco_return|^co_return|\\Wblksize_t|^blksize_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wco_return|^co_return|\\Wco_await|^co_await|\\Wnoexcept|^noexcept|\\Wrestrict|^restrict|\\Wnoexcept|^noexcept|\\Wdecltype|^decltype|\\Wintmax_t|^intmax_t|\\Wuint64_t|^uint64_t|\\Wintmax_t|^intmax_t|\\Wcontinue|^continue|\\Wreflexpr|^reflexpr|\\Wintptr_t|^intptr_t|\\Wuint32_t|^uint32_t|\\Wuint16_t|^uint16_t|\\Wexplicit|^explicit|\\Wtypename|^typename|\\Wu_quad_t|^u_quad_t|\\Wvolatile|^volatile|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wco_yield|^co_yield|\\Wco_await|^co_await|\\Wvolatile|^volatile|\\Woperator|^operator|\\Wunsigned|^unsigned|\\Wregister|^register|\\Wblkcnt_t|^blkcnt_t|\\Wrequires|^requires|\\Wco_yield|^co_yield|\\Wnullptr|^nullptr|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wmutable|^mutable|\\Wvirtual|^virtual|\\Wmutable|^mutable|\\Wdaddr_t|^daddr_t|\\Wfixpt_t|^fixpt_t|\\Wconcept|^concept|\\Wnlink_t|^nlink_t|\\Wdefault|^default|\\Wwchar_t|^wchar_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wclock_t|^clock_t|\\Wssize_t|^ssize_t|\\W__asm__|^__asm__|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wu_short|^u_short|\\Walignas|^alignas|\\Walignof|^alignof|\\Wtypedef|^typedef|\\Wprivate|^private|\\Wu_char|^u_char|\\Wmode_t|^mode_t|\\Wstatic|^static|\\Wdouble|^double|\\Wnot_eq|^not_eq|\\Wtypeid|^typeid|\\Wmodule|^module|\\Wstruct|^struct|\\Wexport|^export|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wu_long|^u_long|\\Wquad_t|^quad_t|\\Wsigned|^signed|\\Wushort|^ushort|\\Wimport|^import|\\Wbitand|^bitand|\\Wfriend|^friend|\\Wtime_t|^time_t|\\Wdelete|^delete|\\Wsize_t|^size_t|\\Wint8_t|^int8_t|\\Winline|^inline|\\Wextern|^extern|\\Wpublic|^public|\\Wsizeof|^sizeof|\\Wswitch|^switch|\\Wreturn|^return|\\Wconst|^const|\\Wshort|^short|\\Wfloat|^float|\\Wu_int|^u_int|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wwhile|^while|\\Wor_eq|^or_eq|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wcompl|^compl|\\Wusing|^using|\\Wcatch|^catch|\\Wbreak|^break|\\Wtrue|^true|\\Wid_t|^id_t|\\Wchar|^char|\\Wid_t|^id_t|\\Wauto|^auto|\\Wcase|^case|\\Wuint|^uint|\\Wbool|^bool|\\Wlong|^long|\\Wvoid|^void|\\Wenum|^enum|\\WNULL|^NULL|\\Wthis|^this|\\Welse|^else|\\Wgoto|^goto|\\Wnew|^new|\\Wtry|^try|\\Wxor|^xor|\\Wnot|^not|\\Wint|^int|\\Wand|^and|\\Wfor|^for|\\Wasm|^asm|\\Wdo|^do|\\Wor|^or|\\Wif|^if)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_function_call_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.function.call.cpp"
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"11": {},
"12": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"function_definition": {
"begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)template(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wint_least16_t|^int_least16_t|\\Watomic_commit|^atomic_commit|\\Watomic_cancel|^atomic_cancel|\\Wuint_fast64_t|^uint_fast64_t|\\Wuint_least8_t|^uint_least8_t|\\Wint_least64_t|^int_least64_t|\\Wint_least32_t|^int_least32_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wdynamic_cast|^dynamic_cast|\\Wthread_local|^thread_local|\\Wuint_fast8_t|^uint_fast8_t|\\Wint_fast64_t|^int_fast64_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast16_t|^int_fast16_t|\\Wsynchronized|^synchronized|\\Wint_least8_t|^int_least8_t|\\Wsuseconds_t|^suseconds_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wnamespace|^namespace|\\Wco_return|^co_return|\\Wblksize_t|^blksize_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wco_return|^co_return|\\Wco_await|^co_await|\\Wnoexcept|^noexcept|\\Wrestrict|^restrict|\\Wnoexcept|^noexcept|\\Wdecltype|^decltype|\\Wintmax_t|^intmax_t|\\Wuint64_t|^uint64_t|\\Wintmax_t|^intmax_t|\\Wcontinue|^continue|\\Wreflexpr|^reflexpr|\\Wintptr_t|^intptr_t|\\Wuint32_t|^uint32_t|\\Wuint16_t|^uint16_t|\\Wexplicit|^explicit|\\Wtypename|^typename|\\Wu_quad_t|^u_quad_t|\\Wvolatile|^volatile|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wco_yield|^co_yield|\\Wco_await|^co_await|\\Wvolatile|^volatile|\\Woperator|^operator|\\Wunsigned|^unsigned|\\Wregister|^register|\\Wblkcnt_t|^blkcnt_t|\\Wrequires|^requires|\\Wco_yield|^co_yield|\\Wnullptr|^nullptr|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wmutable|^mutable|\\Wvirtual|^virtual|\\Wmutable|^mutable|\\Wdaddr_t|^daddr_t|\\Wfixpt_t|^fixpt_t|\\Wconcept|^concept|\\Wnlink_t|^nlink_t|\\Wdefault|^default|\\Wwchar_t|^wchar_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wclock_t|^clock_t|\\Wssize_t|^ssize_t|\\W__asm__|^__asm__|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wu_short|^u_short|\\Walignas|^alignas|\\Walignof|^alignof|\\Wtypedef|^typedef|\\Wprivate|^private|\\Wu_char|^u_char|\\Wmode_t|^mode_t|\\Wstatic|^static|\\Wdouble|^double|\\Wnot_eq|^not_eq|\\Wtypeid|^typeid|\\Wmodule|^module|\\Wstruct|^struct|\\Wexport|^export|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wu_long|^u_long|\\Wquad_t|^quad_t|\\Wsigned|^signed|\\Wushort|^ushort|\\Wimport|^import|\\Wbitand|^bitand|\\Wfriend|^friend|\\Wtime_t|^time_t|\\Wdelete|^delete|\\Wsize_t|^size_t|\\Wint8_t|^int8_t|\\Winline|^inline|\\Wextern|^extern|\\Wpublic|^public|\\Wsizeof|^sizeof|\\Wswitch|^switch|\\Wreturn|^return|\\Wconst|^const|\\Wshort|^short|\\Wfloat|^float|\\Wu_int|^u_int|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wwhile|^while|\\Wor_eq|^or_eq|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wcompl|^compl|\\Wusing|^using|\\Wcatch|^catch|\\Wbreak|^break|\\Wtrue|^true|\\Wid_t|^id_t|\\Wchar|^char|\\Wid_t|^id_t|\\Wauto|^auto|\\Wcase|^case|\\Wuint|^uint|\\Wbool|^bool|\\Wlong|^long|\\Wvoid|^void|\\Wenum|^enum|\\WNULL|^NULL|\\Wthis|^this|\\Welse|^else|\\Wgoto|^goto|\\Wnew|^new|\\Wtry|^try|\\Wxor|^xor|\\Wnot|^not|\\Wint|^int|\\Wand|^and|\\Wfor|^for|\\Wasm|^asm|\\Wdo|^do|\\Wor|^or|\\Wif|^if)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()",
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "storage.type.template.cpp"
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"11": {
"patterns": [
{
"match": "((?<!\\w)(?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.modifier.$1.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "storage.modifier.$12.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"15": {
"name": "comment.block.cpp"
},
"16": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"17": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"18": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"23": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"24": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"25": {
"name": "comment.block.cpp"
},
"26": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"27": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"28": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"29": {},
"30": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"31": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"32": {
"name": "comment.block.cpp"
},
"33": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"34": {},
"35": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"36": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"37": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"38": {
"name": "comment.block.cpp"
},
"39": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"40": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"41": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"42": {
"name": "comment.block.cpp"
},
"43": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"44": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"45": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"46": {
"name": "comment.block.cpp"
},
"47": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"48": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"49": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"50": {
"name": "comment.block.cpp"
},
"51": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"52": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"53": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"54": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"55": {
"name": "comment.block.cpp"
},
"56": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"57": {
"patterns": [
{
"include": "#scope_resolution_function_definition_inner_generated"
}
]
},
"58": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
"59": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"60": {},
"61": {
"name": "entity.name.function.definition.cpp"
},
"62": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"63": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"64": {
"name": "comment.block.cpp"
},
"65": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"endCaptures": {},
"name": "meta.function.definition.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
}
},
"name": "meta.head.function.definition.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.cpp"
}
},
"contentName": "meta.function.definition.parameters",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#parameter_or_maybe_value"
},
{
"include": "#comma"
},
{
"include": "#evaluation_context"
}
]
},
{
"match": "(?<=^|\\))(?:(?:\\s)+)?(->)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)?(?![\\w<:.]))",
"captures": {
"1": {
"name": "punctuation.definition.function.return-type.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"10": {
"name": "comment.block.cpp"
},
"11": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"16": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"17": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"18": {},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
"name": "comment.block.cpp"
},
"22": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"23": {}
}
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
}
},
"name": "meta.body.function.definition.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.function.definition.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"function_parameter_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#parameter"
},
{
"include": "#comma"
}
]
},
"function_pointer": {
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",
"end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {},
"14": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"18": {},
"19": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"22": {
"name": "comment.block.cpp"
},
"23": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"24": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"26": {
"name": "comment.block.cpp"
},
"27": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"28": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"30": {
"name": "comment.block.cpp"
},
"31": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"32": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"34": {
"name": "variable.other.definition.pointer.function.cpp"
},
"35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"patterns": [
{
"include": "#function_parameter_context"
}
]
},
"function_pointer_parameter": {
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",
"end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {},
"14": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"18": {},
"19": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"22": {
"name": "comment.block.cpp"
},
"23": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"24": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"26": {
"name": "comment.block.cpp"
},
"27": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"28": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"30": {
"name": "comment.block.cpp"
},
"31": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"32": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"34": {
"name": "variable.parameter.pointer.function.cpp"
},
"35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"patterns": [
{
"include": "#function_parameter_context"
}
]
},
"functional_specifiers_pre_parameters": {
"match": "(?<!\\w)(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))(?!\\w)",
"name": "storage.modifier.specifier.functional.pre-parameters.$0.cpp"
},
"gcc_attributes": {
"begin": "__attribute(?:__)?\\s*\\(\\s*\\(",
"end": "\\)\\s*\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {},
"endCaptures": {},
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context"
}
]
},
{
"match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "entity.name.namespace.cpp"
}
}
},
{
"match": ",",
"name": "punctuation.separator.attribute.cpp"
},
{
"match": ":",
"name": "punctuation.accessor.attribute.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
"name": "entity.name.namespace.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.other.attribute.$0.cpp"
},
{
"include": "#number_literal"
}
]
},
"goto_statement": {
"match": "((?<!\\w)goto(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)",
"captures": {
"1": {
"name": "keyword.control.goto.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.label.call.cpp"
}
}
},
"identifier": {
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*"
},
"include": {
"match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((#)(?:(?:\\s)+)?((?:include|include_next))\\b)(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\\")[^\\\"]*((?:\\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "keyword.control.directive.$5.cpp"
},
"4": {
"name": "punctuation.definition.directive.cpp"
},
"6": {
"name": "string.quoted.other.lt-gt.include.cpp"
},
"7": {
"name": "punctuation.definition.string.begin.cpp"
},
"8": {
"name": "punctuation.definition.string.end.cpp"
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"11": {
"name": "string.quoted.double.include.cpp"
},
"12": {
"name": "punctuation.definition.string.begin.cpp"
},
"13": {
"name": "punctuation.definition.string.end.cpp"
},
"14": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"15": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"16": {
"name": "entity.name.other.preprocessor.macro.include.cpp"
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
},
"name": "meta.preprocessor.include.cpp"
},
"inheritance_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"match": ",",
"name": "punctuation.separator.delimiter.comma.inheritance.cpp"
},
{
"match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)",
"name": "storage.type.modifier.access.$0.cpp"
},
{
"match": "(?<!\\w)virtual(?!\\w)",
"name": "storage.type.modifier.virtual.cpp"
},
{
"match": "(?<=protected|virtual|private|public|,|:)(?:(?:\\s)+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))",
"captures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"8": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {}
}
}
]
},
"inline_builtin_storage_type": {
"match": "(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)",
"captures": {
"1": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
"2": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"3": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"4": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
}
}
},
"inline_comment": {
"match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
"invalid_comment_end": {
"match": "\\*\\/",
"name": "invalid.illegal.unexpected.punctuation.definition.comment.end.cpp"
},
"label": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\b(?<!case|default)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:)",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "entity.name.label.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"6": {
"name": "punctuation.separator.label.cpp"
}
}
},
"lambdas": {
"begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))",
"end": "(?<=[;}])",
"beginCaptures": {
"1": {
"name": "punctuation.definition.capture.begin.lambda.cpp"
},
"2": {
"name": "meta.lambda.capture.cpp",
"patterns": [
{
"include": "#the_this_keyword"
},
{
"match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
"captures": {
"1": {
"name": "variable.parameter.capture.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.separator.delimiter.comma.cpp"
},
"7": {
"name": "keyword.operator.assignment.cpp"
}
}
},
{
"include": "#evaluation_context"
}
]
},
"3": {},
"4": {
"name": "punctuation.definition.capture.end.lambda.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"7": {
"name": "comment.block.cpp"
},
"8": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"endCaptures": {},
"patterns": [
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.definition.parameters.begin.lambda.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.parameters.end.lambda.cpp"
}
},
"name": "meta.function.definition.parameters.lambda.cpp",
"patterns": [
{
"include": "#function_parameter_context"
}
]
},
{
"match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)",
"name": "storage.modifier.lambda.$0.cpp"
},
{
"match": "(->)((?:.+?(?=\\{|$))?)",
"captures": {
"1": {
"name": "punctuation.definition.lambda.return-type.cpp"
},
"2": {
"name": "storage.type.return-type.lambda.cpp"
}
}
},
{
"begin": "\\{",
"end": "\\}",
"beginCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.lambda.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.lambda.cpp"
}
},
"name": "meta.function.definition.body.lambda.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"language_constants": {
"match": "(?<!\\w)(?:(?:nullptr)|(?:false)|(?:NULL)|(?:true))(?!\\w)",
"name": "constant.language.$0.cpp"
},
"line": {
"begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b",
"end": "(?<!\\\\)(?=\\n)",
"beginCaptures": {
"0": {
"name": "keyword.control.directive.line.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "punctuation.definition.directive.cpp"
}
},
"endCaptures": {},
"name": "meta.preprocessor.line.cpp",
"patterns": [
{
"include": "#string_context"
},
{
"include": "#preprocessor_number_literal"
},
{
"include": "#line_continuation_character"
}
]
},
"line_comment": {
"begin": "\\s*+(\\/\\/)",
"end": "(?<=\\n)(?<!\\\\\\n)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.cpp"
}
},
"endCaptures": {},
"name": "comment.line.double-slash.cpp",
"patterns": [
{
"include": "#line_continuation_character"
}
]
},
"line_continuation_character": {
"match": "\\\\\\n",
"name": "constant.character.escape.line-continuation.cpp"
},
"macro": {
"begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"end": "(?<!\\\\)(?=\\n)",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.define.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.definition.directive.cpp"
},
"7": {
"name": "entity.name.function.preprocessor.cpp"
}
},
"endCaptures": {},
"name": "meta.preprocessor.macro.cpp",
"patterns": [
{
"match": "\\G(?:(?:\\s)+)?(\\()([^\\(]*)(\\))",
"captures": {
"1": {
"name": "punctuation.definition.parameters.begin.preprocessor.cpp"
},
"2": {
"patterns": [
{
"match": "(?<=[(,])(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?",
"captures": {
"1": {
"name": "variable.parameter.preprocessor.cpp"
}
}
},
{
"match": ",",
"name": "punctuation.separator.parameters.cpp"
},
{
"match": "\\.\\.\\.",
"name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp"
}
]
},
"3": {
"name": "punctuation.definition.parameters.end.preprocessor.cpp"
}
}
},
{
"include": "#macro_context"
},
{
"include": "#macro_argument"
}
]
},
"macro_argument": {
"match": "##?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "variable.other.macro.argument.cpp"
},
"macro_context": {
"patterns": [
{
"include": "source.cpp.embedded.macro"
}
]
},
"macro_name": {
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.function.preprocessor.cpp"
},
"member_access": {
"match": "(?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(\\b(?!uint_least32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|suseconds_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|useconds_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|in_addr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|in_port_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintptr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|blksize_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_quad_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|unsigned[^Pattern.new(\n match: \\/\\w\\/,\n)]|blkcnt_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intptr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|swblk_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|wchar_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_short[^Pattern.new(\n match: \\/\\w\\/,\n)]|qaddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|caddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|daddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|fixpt_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|nlink_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|segsz_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|clock_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ssize_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|mode_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|quad_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ushort[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_long[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_char[^Pattern.new(\n match: \\/\\w\\/,\n)]|double[^Pattern.new(\n match: \\/\\w\\/,\n)]|signed[^Pattern.new(\n match: \\/\\w\\/,\n)]|time_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|size_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|key_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|div_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ino_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|gid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|off_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|pid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|float[^Pattern.new(\n match: \\/\\w\\/,\n)]|dev_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_int[^Pattern.new(\n match: \\/\\w\\/,\n)]|short[^Pattern.new(\n match: \\/\\w\\/,\n)]|bool[^Pattern.new(\n match: \\/\\w\\/,\n)]|id_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint[^Pattern.new(\n match: \\/\\w\\/,\n)]|long[^Pattern.new(\n match: \\/\\w\\/,\n)]|char[^Pattern.new(\n match: \\/\\w\\/,\n)]|void[^Pattern.new(\n match: \\/\\w\\/,\n)]|auto[^Pattern.new(\n match: \\/\\w\\/,\n)]|id_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int[^Pattern.new(\n match: \\/\\w\\/,\n)])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "variable.language.this.cpp"
},
"4": {
"name": "variable.other.object.access.cpp"
},
"5": {
"name": "punctuation.separator.dot-access.cpp"
},
"6": {
"name": "punctuation.separator.pointer-access.cpp"
},
"7": {
"patterns": [
{
"match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "variable.language.this.cpp"
},
"6": {
"name": "variable.other.object.property.cpp"
},
"7": {
"name": "punctuation.separator.dot-access.cpp"
},
"8": {
"name": "punctuation.separator.pointer-access.cpp"
}
}
},
{
"match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "variable.language.this.cpp"
},
"6": {
"name": "variable.other.object.access.cpp"
},
"7": {
"name": "punctuation.separator.dot-access.cpp"
},
"8": {
"name": "punctuation.separator.pointer-access.cpp"
}
}
},
{
"include": "#member_access"
},
{
"include": "#method_access"
}
]
},
"8": {
"name": "variable.other.property.cpp"
}
}
},
"memory_operators": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(delete)(?:(?:\\s)+)?(\\[\\])|(delete))|(new))(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "keyword.operator.wordlike.cpp"
},
"4": {
"name": "keyword.operator.delete.array.cpp"
},
"5": {
"name": "keyword.operator.delete.array.bracket.cpp"
},
"6": {
"name": "keyword.operator.delete.cpp"
},
"7": {
"name": "keyword.operator.new.cpp"
}
}
},
"method_access": {
"begin": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "variable.language.this.cpp"
},
"6": {
"name": "variable.other.object.access.cpp"
},
"7": {
"name": "punctuation.separator.dot-access.cpp"
},
"8": {
"name": "punctuation.separator.pointer-access.cpp"
},
"9": {
"patterns": [
{
"match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "variable.language.this.cpp"
},
"6": {
"name": "variable.other.object.property.cpp"
},
"7": {
"name": "punctuation.separator.dot-access.cpp"
},
"8": {
"name": "punctuation.separator.pointer-access.cpp"
}
}
},
{
"match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "variable.language.this.cpp"
},
"6": {
"name": "variable.other.object.access.cpp"
},
"7": {
"name": "punctuation.separator.dot-access.cpp"
},
"8": {
"name": "punctuation.separator.pointer-access.cpp"
}
}
},
{
"include": "#member_access"
},
{
"include": "#method_access"
}
]
},
"10": {
"name": "entity.name.function.member.cpp"
},
"11": {
"name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"misc_keywords": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:requires)|(?:typedef)|(?:concept)|(?:export)|(?:module))(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "keyword.other.$3.cpp"
}
}
},
"ms_attributes": {
"begin": "__declspec\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {},
"endCaptures": {},
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context"
}
]
},
{
"match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "entity.name.namespace.cpp"
}
}
},
{
"match": ",",
"name": "punctuation.separator.attribute.cpp"
},
{
"match": ":",
"name": "punctuation.accessor.attribute.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
"name": "entity.name.namespace.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.other.attribute.$0.cpp"
},
{
"include": "#number_literal"
}
]
},
"namespace_alias": {
"match": "(?<!\\w)(namespace)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?(\\=)(?:(?:\\s)+)?(((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<8>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?(?:(;)|\\n))",
"captures": {
"1": {
"name": "keyword.other.namespace.alias.cpp storage.type.namespace.alias.cpp"
},
"2": {
"name": "entity.name.namespace.alias.cpp"
},
"3": {
"name": "keyword.operator.assignment.cpp"
},
"4": {
"name": "meta.declaration.namespace.alias.value.cpp"
},
"5": {
"patterns": [
{
"include": "#scope_resolution_namespace_alias_inner_generated"
}
]
},
"6": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
},
"7": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "entity.name.namespace.cpp"
},
"10": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.declaration.namespace.alias.cpp"
},
"namespace_block": {
"begin": "((?<!\\w)namespace(?!\\w))",
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.namespace.cpp"
},
"1": {
"name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
}
},
"endCaptures": {},
"name": "meta.block.namespace.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
}
},
"name": "meta.head.namespace.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#attributes_context"
},
{
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?(?:(::)(?:(?:\\s)+)?(inline))?",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_namespace_block_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.namespace.cpp"
},
"6": {
"name": "punctuation.separator.scope-resolution.namespace.block.cpp"
},
"7": {
"name": "storage.modifier.inline.cpp"
}
}
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
}
},
"name": "meta.body.namespace.cpp",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.namespace.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"noexcept_operator": {
"begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
}
},
"contentName": "meta.arguments.operator.noexcept",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"number_literal": {
"match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*",
"captures": {
"0": {
"patterns": [
{
"begin": "(?=.)",
"end": "$",
"beginCaptures": {},
"endCaptures": {},
"patterns": [
{
"match": "(\\G0[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])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)",
"captures": {
"1": {
"name": "keyword.other.unit.hexadecimal.cpp"
},
"2": {
"name": "constant.numeric.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"4": {
"name": "constant.numeric.hexadecimal.cpp"
},
"5": {
"name": "constant.numeric.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"6": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"7": {
"name": "keyword.other.unit.exponent.hexadecimal.cpp"
},
"8": {
"name": "keyword.operator.plus.exponent.hexadecimal.cpp"
},
"9": {
"name": "keyword.operator.minus.exponent.hexadecimal.cpp"
},
"10": {
"name": "constant.numeric.exponent.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"11": {
"name": "keyword.other.unit.suffix.floating-point.cpp"
},
"12": {
"name": "keyword.other.unit.user-defined.cpp"
}
}
},
{
"match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)",
"captures": {
"1": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"2": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"3": {
"name": "constant.numeric.decimal.point.cpp"
},
"4": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"5": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"6": {
"name": "keyword.other.unit.exponent.decimal.cpp"
},
"7": {
"name": "keyword.operator.plus.exponent.decimal.cpp"
},
"8": {
"name": "keyword.operator.minus.exponent.decimal.cpp"
},
"9": {
"name": "constant.numeric.exponent.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"10": {
"name": "keyword.other.unit.suffix.floating-point.cpp"
},
"11": {
"name": "keyword.other.unit.user-defined.cpp"
}
}
},
{
"match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)",
"captures": {
"1": {
"name": "keyword.other.unit.binary.cpp"
},
"2": {
"name": "constant.numeric.binary.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"4": {
"name": "keyword.other.unit.suffix.integer.cpp"
},
"5": {
"name": "keyword.other.unit.user-defined.cpp"
}
}
},
{
"match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)",
"captures": {
"1": {
"name": "keyword.other.unit.octal.cpp"
},
"2": {
"name": "constant.numeric.octal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"4": {
"name": "keyword.other.unit.suffix.integer.cpp"
},
"5": {
"name": "keyword.other.unit.user-defined.cpp"
}
}
},
{
"match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)",
"captures": {
"1": {
"name": "keyword.other.unit.hexadecimal.cpp"
},
"2": {
"name": "constant.numeric.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"4": {
"name": "keyword.other.unit.exponent.hexadecimal.cpp"
},
"5": {
"name": "keyword.operator.plus.exponent.hexadecimal.cpp"
},
"6": {
"name": "keyword.operator.minus.exponent.hexadecimal.cpp"
},
"7": {
"name": "constant.numeric.exponent.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"8": {
"name": "keyword.other.unit.suffix.integer.cpp"
},
"9": {
"name": "keyword.other.unit.user-defined.cpp"
}
}
},
{
"match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\\+)?)((?:\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)",
"captures": {
"1": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"2": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"3": {
"name": "keyword.other.unit.exponent.decimal.cpp"
},
"4": {
"name": "keyword.operator.plus.exponent.decimal.cpp"
},
"5": {
"name": "keyword.operator.minus.exponent.decimal.cpp"
},
"6": {
"name": "constant.numeric.exponent.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"7": {
"name": "keyword.other.unit.suffix.integer.cpp"
},
"8": {
"name": "keyword.other.unit.user-defined.cpp"
}
}
},
{
"match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",
"name": "invalid.illegal.constant.numeric.cpp"
}
]
}
]
}
}
},
"operator_overload": {
"begin": "(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()",
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.function.definition.special.operator-overload.cpp"
},
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {},
"14": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"18": {},
"19": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"22": {
"name": "comment.block.cpp"
},
"23": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"24": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"26": {
"name": "comment.block.cpp"
},
"27": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"28": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"30": {
"name": "comment.block.cpp"
},
"31": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"32": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"33": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"34": {
"name": "comment.block.cpp"
},
"35": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"36": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"37": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"38": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"39": {
"name": "comment.block.cpp"
},
"40": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"41": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"42": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"43": {
"name": "comment.block.cpp"
},
"44": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"45": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.operator.cpp"
},
{
"include": "#template_call_range"
}
]
},
"46": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"47": {},
"48": {
"name": "keyword.other.operator.overload.cpp"
},
"49": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"50": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"51": {
"name": "comment.block.cpp"
},
"52": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"53": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.operator-overload.cpp"
},
{
"include": "#template_call_range"
}
]
},
"54": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"55": {},
"56": {
"name": "entity.name.operator.cpp"
},
"57": {
"name": "entity.name.operator.type.cpp"
},
"58": {
"patterns": [
{
"match": "\\*",
"name": "entity.name.operator.type.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "entity.name.operator.type.reference.cpp"
}
]
},
"59": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"60": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"61": {
"name": "comment.block.cpp"
},
"62": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"63": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"64": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"65": {
"name": "comment.block.cpp"
},
"66": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"67": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"68": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"69": {
"name": "comment.block.cpp"
},
"70": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"71": {
"name": "entity.name.operator.type.array.cpp"
},
"72": {
"name": "entity.name.operator.custom-literal.cpp"
},
"73": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"74": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"75": {
"name": "comment.block.cpp"
},
"76": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"77": {
"name": "entity.name.operator.custom-literal.cpp"
},
"78": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"79": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"80": {
"name": "comment.block.cpp"
},
"81": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"endCaptures": {},
"name": "meta.function.definition.special.operator-overload.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"
}
},
"name": "meta.head.function.definition.special.operator-overload.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#template_call_range"
},
{
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"
}
},
"contentName": "meta.function.definition.parameters.special.operator-overload",
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "#qualifiers_and_specifiers_post_parameters"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
}
},
"name": "meta.body.function.definition.special.operator-overload.cpp",
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.function.definition.special.operator-overload.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"operators": {
"patterns": [
{
"begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
}
},
"contentName": "meta.arguments.operator.sizeof",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
}
},
"contentName": "meta.arguments.operator.alignof",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
}
},
"contentName": "meta.arguments.operator.alignas",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
}
},
"contentName": "meta.arguments.operator.typeid",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
}
},
"contentName": "meta.arguments.operator.noexcept",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
}
},
"contentName": "meta.arguments.operator.sizeof.variadic",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "--",
"name": "keyword.operator.decrement.cpp"
},
{
"match": "\\+\\+",
"name": "keyword.operator.increment.cpp"
},
{
"match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=",
"name": "keyword.operator.assignment.compound.cpp"
},
{
"match": "&=|\\^=|<<=|>>=|\\|=",
"name": "keyword.operator.assignment.compound.bitwise.cpp"
},
{
"match": "<<|>>",
"name": "keyword.operator.bitwise.shift.cpp"
},
{
"match": "!=|<=|>=|==|<|>",
"name": "keyword.operator.comparison.cpp"
},
{
"match": "&&|!|\\|\\|",
"name": "keyword.operator.logical.cpp"
},
{
"match": "&|\\||\\^|~",
"name": "keyword.operator.cpp"
},
{
"include": "#assignment_operator"
},
{
"match": "%|\\*|\\/|-|\\+",
"name": "keyword.operator.cpp"
},
{
"include": "#ternary_operator"
}
]
},
"over_qualified_types": {
"patterns": [
{
"match": "(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.struct.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.struct.parameter.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
{
"match": "(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.enum.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.enum.parameter.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
{
"match": "(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.union.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.union.parameter.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
{
"match": "(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.class.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.class.parameter.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
}
]
},
"parameter": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
"end": "(?:(?=\\))|(,))",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"name": "meta.parameter.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#function_pointer_parameter"
},
{
"include": "#decltype"
},
{
"include": "#vararg_ellipses"
},
{
"match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
"captures": {
"1": {
"patterns": [
{
"include": "#storage_types"
}
]
},
"2": {
"name": "storage.modifier.specifier.parameter.cpp"
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
"12": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"13": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"14": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"15": {
"name": "entity.name.type.parameter.cpp"
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"include": "#storage_types"
},
{
"include": "#scope_resolution_parameter_inner_generated"
},
{
"match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"end": "(?:(?=\\))|(,))",
"beginCaptures": {},
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "\\=",
"name": "keyword.operator.assignment.cpp"
},
{
"match": "(?<!\\s|\\(|,|:)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "variable.parameter.cpp"
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"include": "#attributes_context"
},
{
"begin": "\\[",
"end": "\\]",
"beginCaptures": {
"0": {
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.end.bracket.square.array.type.cpp"
}
},
"name": "meta.bracket.square.array.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)",
"name": "entity.name.type.parameter.cpp"
},
{
"include": "#template_call_range"
},
{
"match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
"captures": {
"0": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"7": {
"name": "comment.block.cpp"
},
"8": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"parameter_class": {
"match": "(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.class.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.class.parameter.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"parameter_enum": {
"match": "(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.enum.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.enum.parameter.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"parameter_or_maybe_value": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
"end": "(?:(?=\\))|(,))",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"name": "meta.parameter.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#function_pointer_parameter"
},
{
"include": "#memory_operators"
},
{
"include": "#builtin_storage_type_initilizer"
},
{
"include": "#curly_initializer"
},
{
"include": "#decltype"
},
{
"include": "#vararg_ellipses"
},
{
"match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
"captures": {
"1": {
"patterns": [
{
"include": "#storage_types"
}
]
},
"2": {
"name": "storage.modifier.specifier.parameter.cpp"
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
"12": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"13": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"14": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"15": {
"name": "entity.name.type.parameter.cpp"
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"include": "#storage_types"
},
{
"include": "#function_call"
},
{
"include": "#scope_resolution_parameter_inner_generated"
},
{
"match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"end": "(?:(?=\\))|(,))",
"beginCaptures": {},
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "(?<!\\s|\\(|,|:)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "variable.parameter.cpp"
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"include": "#attributes_context"
},
{
"begin": "\\[",
"end": "\\]",
"beginCaptures": {
"0": {
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.end.bracket.square.array.type.cpp"
}
},
"name": "meta.bracket.square.array.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)",
"name": "entity.name.type.parameter.cpp"
},
{
"include": "#template_call_range"
},
{
"match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
"captures": {
"0": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"7": {
"name": "comment.block.cpp"
},
"8": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"include": "#evaluation_context"
}
]
},
"parameter_struct": {
"match": "(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.struct.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.struct.parameter.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"parameter_union": {
"match": "(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.union.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.union.parameter.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"19": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"parentheses": {
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parens.begin.bracket.round.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.cpp"
}
},
"name": "meta.parens.cpp",
"patterns": [
{
"include": "#over_qualified_types"
},
{
"match": "(?<!:):(?!:)",
"name": "punctuation.separator.colon.range-based.cpp"
},
{
"include": "#evaluation_context"
}
]
},
"pragma": {
"begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",
"end": "(?<!\\\\)(?=\\n)",
"beginCaptures": {
"0": {
"name": "keyword.control.directive.pragma.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "punctuation.definition.directive.cpp"
}
},
"endCaptures": {},
"name": "meta.preprocessor.pragma.cpp",
"patterns": [
{
"include": "#comments"
},
{
"include": "#string_context"
},
{
"match": "[a-zA-Z_$][\\w\\-$]*",
"name": "entity.other.attribute-name.pragma.preprocessor.cpp"
},
{
"include": "#preprocessor_number_literal"
},
{
"include": "#line_continuation_character"
}
]
},
"pragma_mark": {
"match": "(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma(?:\\s)+mark)(?:\\s)+(.*)",
"captures": {
"1": {
"name": "keyword.control.directive.pragma.pragma-mark.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "punctuation.definition.directive.cpp"
},
"5": {
"name": "entity.name.tag.pragma-mark.cpp"
}
},
"name": "meta.preprocessor.pragma.cpp"
},
"predefined_macros": {
"patterns": [
{
"match": "\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b",
"captures": {
"1": {
"name": "entity.name.other.preprocessor.macro.predefined.$1.cpp"
}
}
},
{
"match": "\\b__([A-Z_]+)__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$1.cpp"
}
]
},
"preprocessor_conditional_context": {
"patterns": [
{
"include": "#preprocessor_conditional_defined"
},
{
"include": "#comments"
},
{
"include": "#language_constants"
},
{
"include": "#string_context"
},
{
"include": "#d9bc4796b0b_preprocessor_number_literal"
},
{
"include": "#operators"
},
{
"include": "#predefined_macros"
},
{
"include": "#macro_name"
},
{
"include": "#line_continuation_character"
}
]
},
"preprocessor_conditional_defined": {
"begin": "((?<!\\w)defined(?!\\w))(\\()",
"end": "(?:\\)|(?<!\\\\)(?=\\n))",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.conditional.defined.cpp"
},
"2": {
"name": "punctuation.section.parens.control.defined.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parens.control.defined.cpp"
}
},
"patterns": [
{
"include": "#macro_name"
}
]
},
"preprocessor_conditional_parentheses": {
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.section.parens.begin.bracket.round.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.cpp"
}
},
"name": "meta.parens.preprocessor.conditional.cpp"
},
"preprocessor_conditional_range": {
"begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",
"end": "^(?!\\s*+#\\s*(?:else|endif))",
"beginCaptures": {
"0": {
"name": "keyword.control.directive.conditional.$6.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "punctuation.definition.directive.cpp"
},
"6": {}
},
"endCaptures": {},
"patterns": [
{
"begin": "\\G(?<=ifndef|ifdef|if)",
"end": "(?<!\\\\)(?=\\n)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.preprocessor.conditional.cpp",
"patterns": [
{
"include": "#preprocessor_conditional_context"
}
]
},
{
"include": "$self"
}
]
},
"preprocessor_conditional_standalone": {
"match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?<!\\w)(?:endif|else|elif)(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "punctuation.definition.directive.cpp"
}
},
"name": "keyword.control.directive.$4.cpp"
},
"preprocessor_context": {
"patterns": [
{
"include": "#pragma_mark"
},
{
"include": "#pragma"
},
{
"include": "#include"
},
{
"include": "#line"
},
{
"include": "#diagnostic"
},
{
"include": "#undef"
},
{
"include": "#preprocessor_conditional_range"
},
{
"include": "#single_line_macro"
},
{
"include": "#macro"
},
{
"include": "#preprocessor_conditional_standalone"
},
{
"include": "#macro_argument"
}
]
},
"qualified_type": {
"match": "\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)?(?![\\w<:.])",
"captures": {
"0": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"1": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"6": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"7": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
},
"name": "meta.qualified_type.cpp"
},
"qualifiers_and_specifiers_post_parameters": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?<!\\w)(?:(?:override)|(?:volatile)|(?:noexcept)|(?:final)|(?:const))(?!\\w))+(?=\\s*(?:(?:\\{|;)|[\\n\\r])))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "storage.modifier.specifier.functional.post-parameters.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"scope_resolution": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_function_call": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_function_call_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_function_call_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_function_call_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.function.call.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
}
}
},
"scope_resolution_function_definition": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_function_definition_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_function_definition_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_function_definition_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.function.definition.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
}
}
},
"scope_resolution_function_definition_operator_overload": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_function_definition_operator_overload_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_function_definition_operator_overload_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_function_definition_operator_overload_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.function.definition.operator-overload.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
}
}
},
"scope_resolution_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
}
}
},
"scope_resolution_namespace_alias": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_namespace_alias_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_namespace_alias_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_namespace_alias_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.namespace.alias.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
}
}
},
"scope_resolution_namespace_block": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_namespace_block_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_namespace_block_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_namespace_block_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.namespace.block.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
}
}
},
"scope_resolution_namespace_using": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_namespace_using_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_namespace_using_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_namespace_using_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.namespace.using.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
}
}
},
"scope_resolution_parameter": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_parameter_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_parameter_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_parameter_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.parameter.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
}
}
},
"scope_resolution_template_call": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_template_call_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_template_call_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_template_call_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.template.call.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
}
}
},
"scope_resolution_template_definition": {
"match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_template_definition_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
},
"2": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_template_definition_inner_generated": {
"match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_template_definition_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
},
"3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {},
"5": {
"name": "entity.name.scope-resolution.template.definition.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"7": {},
"8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
}
}
},
"semicolon": {
"match": ";",
"name": "punctuation.terminator.statement.cpp"
},
"simple_type": {
"match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?",
"captures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"8": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {},
"13": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"14": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"15": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"single_line_macro": {
"match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))#define.*(?<![\\\\])(?:(?:\\n)|$)",
"captures": {
"0": {
"patterns": [
{
"include": "#macro"
},
{
"include": "#comments"
}
]
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"sizeof_operator": {
"begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
}
},
"contentName": "meta.arguments.operator.sizeof",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"sizeof_variadic_operator": {
"begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
}
},
"contentName": "meta.arguments.operator.sizeof.variadic",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"square_brackets": {
"name": "meta.bracket.square.access",
"begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
"beginCaptures": {
"1": {
"name": "variable.other.object"
},
"2": {
"name": "punctuation.definition.begin.bracket.square"
}
},
"end": "\\]",
"endCaptures": {
"0": {
"name": "punctuation.definition.end.bracket.square"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"standard_declares": {
"patterns": [
{
"match": "((?<!\\w)struct(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.struct.declare.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.struct.cpp"
},
"5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "variable.other.object.declare.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
{
"match": "((?<!\\w)union(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.union.declare.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.union.cpp"
},
"5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "variable.other.object.declare.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
{
"match": "((?<!\\w)enum(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.enum.declare.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.enum.cpp"
},
"5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "variable.other.object.declare.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
{
"match": "((?<!\\w)class(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.class.declare.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.class.cpp"
},
"5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "variable.other.object.declare.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
}
]
},
"static_assert": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "keyword.other.static_assert.cpp"
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp"
}
},
"patterns": [
{
"begin": "(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\\")?)",
"end": "(?=\\))",
"beginCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"endCaptures": {},
"name": "meta.static_assert.message.cpp",
"patterns": [
{
"include": "#string_context"
}
]
},
{
"include": "#evaluation_context"
}
]
},
"std_space": {
"match": "(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))",
"captures": {
"0": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"1": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"storage_specifiers": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "storage.modifier.specifier.$3.cpp"
}
}
},
"storage_types": {
"patterns": [
{
"include": "#storage_specifiers"
},
{
"include": "#inline_builtin_storage_type"
},
{
"include": "#decltype"
},
{
"include": "#typename"
}
]
},
"string_context": {
"patterns": [
{
"begin": "((?:u|u8|U|L)?)\"",
"end": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.double.cpp",
"patterns": [
{
"match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",
"name": "constant.character.escape.cpp"
},
{
"match": "\\\\['\"?\\\\abfnrtv]",
"name": "constant.character.escape.cpp"
},
{
"match": "\\\\[0-7]{1,3}",
"name": "constant.character.escape.cpp"
},
{
"match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
"captures": {
"1": {
"name": "constant.character.escape.cpp"
},
"2": {
"name": "invalid.illegal.unknown-escape.cpp"
}
}
},
{
"include": "#string_escapes_context_c"
}
]
},
{
"begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'",
"end": "'",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.single.cpp",
"patterns": [
{
"match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
"captures": {
"1": {
"name": "constant.character.escape.cpp"
},
"2": {
"name": "invalid.illegal.unknown-escape.cpp"
}
}
},
{
"include": "#string_escapes_context_c"
},
{
"include": "#line_continuation_character"
}
]
},
{
"begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(",
"end": "\\)(?:(?:_r|re)|regex)\\\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.double.raw.regex.cpp",
"patterns": [
{
"include": "source.regexp.python"
}
]
},
{
"begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(",
"end": "\\)(?:glsl|GLSL)\\\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "meta.string.quoted.double.raw.glsl.cpp",
"patterns": [
{
"include": "source.glsl"
}
]
},
{
"begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(",
"end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "meta.string.quoted.double.raw.sql.cpp",
"patterns": [
{
"include": "source.sql"
}
]
},
{
"begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin"
},
"1": {
"name": "meta.encoding"
},
"3": {
"name": "invalid.illegal.delimiter-too-long"
}
},
"end": "\\)\\2(\\3)\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end"
},
"1": {
"name": "invalid.illegal.delimiter-too-long"
}
},
"name": "string.quoted.double.raw"
}
]
},
"string_escapes_context_c": {
"patterns": [
{
"match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
"name": "constant.character.escape"
},
{
"match": "\\\\.",
"name": "invalid.illegal.unknown-escape"
},
{
"match": "(?x) (?!%')(?!%\")%\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
"name": "constant.other.placeholder"
}
]
},
"struct_block": {
"begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.struct.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
"captures": {
"1": {
"name": "entity.name.type.struct.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.struct.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
"name": "meta.head.struct.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
"name": "meta.body.struct.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.struct.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"struct_declare": {
"match": "((?<!\\w)struct(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.struct.declare.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.struct.cpp"
},
"5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "variable.other.object.declare.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"switch_conditional_parentheses": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp"
}
},
"name": "meta.conditional.switch.cpp",
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "#c_conditional_context"
}
]
},
"switch_statement": {
"begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)switch(?!\\w))",
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.switch.cpp"
},
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"5": {
"name": "keyword.control.switch.cpp"
}
},
"endCaptures": {},
"name": "meta.block.switch.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
}
},
"name": "meta.head.switch.cpp",
"patterns": [
{
"include": "#switch_conditional_parentheses"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.switch.cpp"
}
},
"name": "meta.body.switch.cpp",
"patterns": [
{
"include": "#default_statement"
},
{
"include": "#case_statement"
},
{
"include": "$self"
},
{
"include": "#block_innards"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.switch.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"template_argument_defaulted": {
"match": "(?<=<|,)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?([=])",
"captures": {
"1": {
"name": "storage.type.template.cpp"
},
"2": {
"name": "entity.name.type.template.cpp"
},
"3": {
"name": "keyword.operator.assignment.cpp"
}
}
},
"template_call_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#template_call_range"
},
{
"include": "#storage_types"
},
{
"include": "#language_constants"
},
{
"include": "#scope_resolution_template_call_inner_generated"
},
{
"include": "#operators"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma_in_template_argument"
},
{
"include": "#qualified_type"
}
]
},
"template_call_innards": {
"match": "((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<1>?)+>)(?:\\s)*+",
"captures": {
"0": {
"patterns": [
{
"include": "#template_call_range"
}
]
}
},
"name": "meta.template.call.cpp"
},
"template_call_range": {
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
"template_definition": {
"begin": "(?<!\\w)(template)(?:(?:\\s)+)?(<)",
"end": ">",
"beginCaptures": {
"1": {
"name": "storage.type.template.cpp"
},
"2": {
"name": "punctuation.section.angle-brackets.start.template.definition.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.definition.cpp"
}
},
"name": "meta.template.definition.cpp",
"patterns": [
{
"begin": "(?<=\\w)(?:(?:\\s)+)?<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"include": "#template_definition_context"
}
]
},
"template_definition_argument": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\.\\.\\.)(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))(?:(?:\\s)+)?(?:(,)|(?=>|$))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "storage.type.template.argument.$3.cpp"
},
"4": {
"patterns": [
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "storage.type.template.argument.$0.cpp"
}
]
},
"5": {
"name": "entity.name.type.template.cpp"
},
"6": {
"name": "storage.type.template.cpp"
},
"7": {
"name": "punctuation.vararg-ellipses.template.definition.cpp"
},
"8": {
"name": "entity.name.type.template.cpp"
},
"9": {
"name": "punctuation.separator.delimiter.comma.template.argument.cpp"
}
}
},
"template_definition_context": {
"patterns": [
{
"include": "#scope_resolution_template_definition_inner_generated"
},
{
"include": "#template_definition_argument"
},
{
"include": "#template_argument_defaulted"
},
{
"include": "#template_call_innards"
},
{
"include": "#evaluation_context"
}
]
},
"template_isolated_definition": {
"match": "(?<!\\w)(template)(?:(?:\\s)+)?(<)(.*)(>(?:(?:\\s)+)?$)",
"captures": {
"1": {
"name": "storage.type.template.cpp"
},
"2": {
"name": "punctuation.section.angle-brackets.start.template.definition.cpp"
},
"3": {
"name": "meta.template.definition.cpp",
"patterns": [
{
"include": "#template_definition_context"
}
]
},
"4": {
"name": "punctuation.section.angle-brackets.end.template.definition.cpp"
}
}
},
"ternary_operator": {
"begin": "\\?",
"end": ":",
"beginCaptures": {
"0": {
"name": "keyword.operator.ternary.cpp"
}
},
"endCaptures": {
"0": {
"name": "keyword.operator.ternary.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#string_context"
},
{
"include": "#number_literal"
},
{
"include": "#method_access"
},
{
"include": "#member_access"
},
{
"include": "#predefined_macros"
},
{
"include": "#operators"
},
{
"include": "#memory_operators"
},
{
"include": "#wordlike_operators"
},
{
"include": "#type_casting_operators"
},
{
"include": "#control_flow_keywords"
},
{
"include": "#exception_keywords"
},
{
"include": "#the_this_keyword"
},
{
"include": "#language_constants"
},
{
"include": "#builtin_storage_type_initilizer"
},
{
"include": "#qualifiers_and_specifiers_post_parameters"
},
{
"include": "#functional_specifiers_pre_parameters"
},
{
"include": "#storage_types"
},
{
"include": "#lambdas"
},
{
"include": "#attributes_context"
},
{
"include": "#parentheses"
},
{
"include": "#function_call"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#square_brackets"
},
{
"include": "#semicolon"
},
{
"include": "#comma"
}
],
"applyEndPatternLast": 1
},
"the_this_keyword": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "variable.language.this.cpp"
}
}
},
"type_alias": {
"match": "(using)(?:(?:\\s)+)?(?!namespace)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))(?:(?:\\s)+)?(\\=)(?:(?:\\s)+)?((?:typename)?)(?:(?:\\s)+)?((?:(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))(?<!\\w)(?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\w)(?:\\s)+)+)?(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))|(.*(?<!;)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)?(?:(?:\\s)+)?(?:(;)|\\n)",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"3": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"9": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"11": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"12": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"14": {
"name": "keyword.operator.assignment.cpp"
},
"15": {
"name": "keyword.other.typename.cpp"
},
"16": {
"patterns": [
{
"include": "#storage_specifiers"
}
]
},
"17": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"18": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"19": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"21": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"22": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"23": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"24": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"25": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"27": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"28": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"30": {
"name": "meta.declaration.type.alias.value.unknown.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"31": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"32": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"33": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"34": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"35": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"36": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"37": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"38": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"39": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"40": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"41": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.declaration.type.alias.cpp"
},
"type_casting_operators": {
"match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:reinterpret_cast)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast))(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"3": {
"name": "keyword.operator.wordlike.cpp keyword.operator.cast.$3.cpp"
}
}
},
"typedef_class": {
"begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)class(?!\\w))",
"end": "(?<=;)",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"endCaptures": {},
"patterns": [
{
"begin": "((?<!\\w)class(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.class.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
"captures": {
"1": {
"name": "entity.name.type.class.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.class.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
"name": "meta.head.class.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
"name": "meta.body.class.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.class.cpp",
"patterns": [
{
"match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
"name": "comment.block.cpp"
},
"13": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"14": {
"name": "entity.name.type.alias.cpp"
}
}
},
{
"match": ","
}
]
}
]
}
]
},
"typedef_function_pointer": {
"begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))",
"end": "(?<=;)",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"endCaptures": {},
"patterns": [
{
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",
"end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"5": {
"name": "comment.block.cpp"
},
"6": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"12": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {},
"14": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"16": {
"name": "comment.block.cpp"
},
"17": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"18": {},
"19": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"22": {
"name": "comment.block.cpp"
},
"23": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"24": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"26": {
"name": "comment.block.cpp"
},
"27": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"28": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"29": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"30": {
"name": "comment.block.cpp"
},
"31": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"32": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"34": {
"name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"
},
"35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"patterns": [
{
"include": "#function_parameter_context"
}
]
}
]
},
"typedef_struct": {
"begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)struct(?!\\w))",
"end": "(?<=;)",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"endCaptures": {},
"patterns": [
{
"begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.struct.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
"captures": {
"1": {
"name": "entity.name.type.struct.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.struct.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
"name": "meta.head.struct.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
"name": "meta.body.struct.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.struct.cpp",
"patterns": [
{
"match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
"name": "comment.block.cpp"
},
"13": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"14": {
"name": "entity.name.type.alias.cpp"
}
}
},
{
"match": ","
}
]
}
]
}
]
},
"typedef_union": {
"begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)union(?!\\w))",
"end": "(?<=;)",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"endCaptures": {},
"patterns": [
{
"begin": "((?<!\\w)union(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.union.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
"captures": {
"1": {
"name": "entity.name.type.union.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.union.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
"name": "meta.head.union.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
"name": "meta.body.union.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.union.cpp",
"patterns": [
{
"match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"captures": {
"1": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"8": {
"name": "comment.block.cpp"
},
"9": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
"name": "comment.block.cpp"
},
"13": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"14": {
"name": "entity.name.type.alias.cpp"
}
}
},
{
"match": ","
}
]
}
]
}
]
},
"typeid_operator": {
"begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
"end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
}
},
"contentName": "meta.arguments.operator.typeid",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"typename": {
"match": "(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?<!\\w)typename(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)?(?![\\w<:.]))",
"captures": {
"1": {
"name": "storage.modifier.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"6": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
{
"match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"begin": "<",
"end": ">",
"beginCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.type.cpp"
}
]
},
"7": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"patterns": [
{
"match": "::",
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
"match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
"name": "entity.name.scope-resolution.type.cpp"
},
{
"include": "#template_call_range"
}
]
},
"13": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"14": {},
"15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"17": {}
}
},
"undef": {
"match": "(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?undef\\b)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
"captures": {
"1": {
"name": "keyword.control.directive.undef.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "punctuation.definition.directive.cpp"
},
"5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"6": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"7": {
"name": "entity.name.function.preprocessor.cpp"
}
},
"name": "meta.preprocessor.undef.cpp"
},
"union_block": {
"begin": "((?<!\\w)union(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
"0": {
"name": "meta.head.union.cpp"
},
"1": {
"name": "storage.type.$1.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"11": {
"patterns": [
{
"match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.type.modifier.final.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
"captures": {
"1": {
"name": "entity.name.type.union.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"4": {
"name": "comment.block.cpp"
},
"5": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"6": {
"name": "storage.type.modifier.final.cpp"
},
"7": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"9": {
"name": "comment.block.cpp"
},
"10": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
{
"match": "DLLEXPORT",
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
{
"match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
"name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"13": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"14": {
"name": "comment.block.cpp"
},
"15": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"18": {
"name": "comment.block.cpp"
},
"19": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"20": {
"name": "punctuation.separator.colon.inheritance.cpp"
}
},
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.block.union.cpp",
"patterns": [
{
"begin": "\\G ?",
"end": "(?:\\{|<%|\\?\\?<|(?=;))",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
"name": "meta.head.union.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "\\}|%>|\\?\\?>",
"beginCaptures": {},
"endCaptures": {
"0": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
"name": "meta.body.union.cpp",
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
"end": "[\\s]*(?=;)",
"beginCaptures": {},
"endCaptures": {},
"name": "meta.tail.union.cpp",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"union_declare": {
"match": "((?<!\\w)union(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.union.declare.cpp"
},
"2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"3": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"4": {
"name": "entity.name.type.union.cpp"
},
"5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
"match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"3": {
"name": "comment.block.cpp"
},
"4": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "invalid.illegal.reference-type.cpp"
},
{
"match": "\\&",
"name": "storage.modifier.reference.cpp"
}
]
},
"6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"7": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"9": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"11": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
},
"12": {
"name": "variable.other.object.declare.cpp"
},
"13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"14": {
"patterns": [
{
"match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"2": {
"name": "comment.block.cpp"
},
"3": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
}
]
}
}
},
"using_name": {
"match": "(using)(?:\\s)+(?!namespace\\b)",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
}
}
},
"using_namespace": {
"begin": "(?<!\\w)(using)(?:\\s)+(namespace)(?:\\s)+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)",
"end": ";",
"beginCaptures": {
"1": {
"name": "keyword.other.using.directive.cpp"
},
"2": {
"name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp"
},
"3": {
"patterns": [
{
"include": "#scope_resolution_namespace_using_inner_generated"
}
]
},
"4": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
},
"5": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {},
"7": {
"name": "entity.name.namespace.cpp"
}
},
"endCaptures": {
"0": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.using-namespace.cpp"
},
"vararg_ellipses": {
"match": "(?<!\\.)\\.\\.\\.(?!\\.)",
"name": "punctuation.vararg-ellipses.cpp"
},
"wordlike_operators": {
"patterns": [
{
"match": "(?<!\\w)(?:(?:noexcept)|(?:xor_eq)|(?:and_eq)|(?:delete)|(?:not_eq)|(?:bitand)|(?:bitor)|(?:compl)|(?:or_eq)|(?:not)|(?:xor)|(?:new)|(?:and)|(?:or))(?!\\w)",
"name": "keyword.operator.wordlike.cpp keyword.operator.$0.cpp"
}
]
}
}
}