vscode/extensions/cpp/syntaxes/cpp.tmLanguage.json
2019-08-13 10:42:35 +02:00

21804 lines
628 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/031ef619bef4c5a1ca46e6fa69d7c913e0c32068",
"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": "#typedef_keyword"
},
{
"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": {
"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"
}
]
}
}
},
"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"
},
"preprocessor_number_literal": {
"begin": "(?<!\\w)(?=\\d|\\.\\d)",
"end": "(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-]))",
"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))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-]))",
"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"
},
"8": {
"name": "keyword.other.unit.exponent.hexadecimal.cpp"
},
"9": {
"name": "keyword.operator.plus.exponent.hexadecimal.cpp"
},
"10": {
"name": "keyword.operator.minus.exponent.hexadecimal.cpp"
},
"11": {
"name": "constant.numeric.exponent.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"12": {
"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))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-]))",
"captures": {
"2": {
"name": "constant.numeric.decimal.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.decimal.point.cpp"
},
"5": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"6": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"8": {
"name": "keyword.other.unit.exponent.decimal.cpp"
},
"9": {
"name": "keyword.operator.plus.exponent.decimal.cpp"
},
"10": {
"name": "keyword.operator.minus.exponent.decimal.cpp"
},
"11": {
"name": "constant.numeric.exponent.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"12": {
"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))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-]))",
"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))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-]))",
"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))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-]))",
"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"
},
"5": {
"name": "keyword.other.unit.exponent.hexadecimal.cpp"
},
"6": {
"name": "keyword.operator.plus.exponent.hexadecimal.cpp"
},
"7": {
"name": "keyword.operator.minus.exponent.hexadecimal.cpp"
},
"8": {
"name": "constant.numeric.exponent.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"9": {
"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))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-]))",
"captures": {
"2": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"5": {
"name": "keyword.other.unit.exponent.decimal.cpp"
},
"6": {
"name": "keyword.operator.plus.exponent.decimal.cpp"
},
"7": {
"name": "keyword.operator.minus.exponent.decimal.cpp"
},
"8": {
"name": "constant.numeric.exponent.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"9": {
"name": "keyword.other.unit.suffix.integer.cpp"
}
}
},
{
"match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",
"name": "invalid.illegal.constant.numeric.cpp"
}
]
},
"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": {
"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.tag.pragma-mark.cpp"
}
},
"name": "meta.preprocessor.pragma.cpp"
},
"pragma": {
"name": "meta.preprocessor.pragma.cpp",
"begin": "((?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*pragma\\b)",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.pragma.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"
}
},
"end": "(?<!\\\\)(?=\\n)",
"patterns": [
{
"include": "#comments"
},
{
"include": "#string_context_c"
},
{
"match": "[a-zA-Z_$][\\w\\-$]*",
"name": "entity.other.attribute-name.pragma.preprocessor.cpp"
},
{
"include": "#preprocessor_number_literal"
},
{
"include": "#line_continuation_character"
}
]
},
"include": {
"match": "(?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*((?:(?:include|include_next)|import))\\b)\\s*(?:(?:(?:((<)[^>]*(>?)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:\\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}))*((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:\\n|$)|(?=\\/\\/))))|((?:(?:(?>\\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": "keyword.control.directive.$7.cpp"
},
"6": {
"name": "punctuation.definition.directive.cpp"
},
"8": {
"name": "string.quoted.other.lt-gt.include.cpp"
},
"9": {
"name": "punctuation.definition.string.begin.cpp"
},
"10": {
"name": "punctuation.definition.string.end.cpp"
},
"11": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"15": {
"name": "string.quoted.double.include.cpp"
},
"16": {
"name": "punctuation.definition.string.begin.cpp"
},
"17": {
"name": "punctuation.definition.string.end.cpp"
},
"18": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"20": {
"name": "comment.block.cpp"
},
"21": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"22": {
"name": "entity.name.other.preprocessor.macro.include.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": [
{
"include": "#inline_comment"
}
]
},
"28": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"29": {
"name": "comment.block.cpp"
},
"30": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"name": "meta.preprocessor.include.cpp"
},
"line": {
"name": "meta.preprocessor.line.cpp",
"begin": "((?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*line\\b)",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.line.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"
}
},
"end": "(?<!\\\\)(?=\\n)",
"patterns": [
{
"include": "#string_context_c"
},
{
"include": "#preprocessor_number_literal"
},
{
"include": "#line_continuation_character"
}
]
},
"diagnostic": {
"name": "meta.preprocessor.diagnostic.$reference(directive).cpp",
"begin": "((?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?:error|warning)))\\b\\s*",
"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"
}
},
"end": "(?<!\\\\)(?=\\n)",
"patterns": [
{
"name": "string.quoted.double.cpp",
"begin": "(\")",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.cpp"
}
},
"end": "(?:(\")|(?<!\\\\)(?=\\n))",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"patterns": [
{
"include": "#line_continuation_character"
}
]
},
{
"name": "string.quoted.single.cpp",
"begin": "(')",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.cpp"
}
},
"end": "(?:(')|(?<!\\\\)(?=\\n))",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"patterns": [
{
"include": "#line_continuation_character"
}
]
},
{
"name": "string.unquoted.cpp",
"begin": "[^'\"]",
"end": "(?<!\\\\)(?=\\n)",
"patterns": [
{
"include": "#line_continuation_character"
},
{
"include": "#comments"
}
]
}
]
},
"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": {
"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": {
"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": "entity.name.function.preprocessor.cpp"
}
},
"name": "meta.preprocessor.undef.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": {
"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"
}
]
}
}
},
"macro": {
"name": "meta.preprocessor.macro.cpp",
"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))",
"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"
}
},
"end": "(?<!\\\\)(?=\\n)",
"patterns": [
{
"begin": "\\G\\s*(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.definition.parameters.begin.preprocessor.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.preprocessor.cpp"
}
},
"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"
}
]
},
{
"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"
},
"preprocessor_conditional_range": {
"while": "(?-mix:(?:^)(?!\\s*+#\\s*(?:else|endif)))",
"begin": "((?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?:(?:ifndef|ifdef)|if)))",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.conditional.$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"
}
},
"patterns": [
{
"name": "meta.preprocessor.conditional.cpp",
"begin": "\\G(?<=ifndef|ifdef|if)",
"end": "(?<!\\\\)(?=\\n)",
"patterns": [
{
"include": "#preprocessor_conditional_context"
}
]
},
{
"include": "$self"
}
]
},
"preprocessor_conditional_context": {
"patterns": [
{
"include": "#preprocessor_conditional_defined"
},
{
"include": "#comments"
},
{
"include": "#language_constants"
},
{
"include": "#string_context_c"
},
{
"include": "#preprocessor_number_literal"
},
{
"include": "#operators"
},
{
"include": "#predefined_macros"
},
{
"include": "#macro_name"
},
{
"include": "#line_continuation_character"
}
]
},
"preprocessor_conditional_defined": {
"begin": "((?<!\\w)defined(?!\\w))(\\()",
"beginCaptures": {
"1": {
"name": "keyword.control.directive.conditional.defined.cpp"
},
"2": {
"name": "punctuation.section.parens.control.defined.cpp"
}
},
"end": "((?:\\)|(?<!\\\\)(?=\\n)))",
"endCaptures": {
"1": {
"name": "punctuation.section.parens.control.defined.cpp"
}
},
"patterns": [
{
"include": "#macro_name"
}
]
},
"preprocessor_conditional_parentheses": {
"name": "meta.parens.preprocessor.conditional.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parens.begin.bracket.round.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parens.end.bracket.round.cpp"
}
}
},
"preprocessor_conditional_standalone": {
"match": "(?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?<!\\w)(?:endif|else|elif)(?!\\w))",
"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": "punctuation.definition.directive.cpp"
}
},
"name": "keyword.control.directive.$6.cpp"
},
"semicolon": {
"match": ";",
"name": "punctuation.terminator.statement.cpp"
},
"comma": {
"match": ",",
"name": "punctuation.separator.delimiter.comma.cpp"
},
"assignment_operator": {
"match": "\\=",
"name": "keyword.operator.assignment.cpp"
},
"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"
}
]
},
"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": "#typedef_keyword"
},
{
"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"
}
]
},
"evaluation_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#string_context"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"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": "#misc_storage_modifiers"
},
{
"include": "#lambdas"
},
{
"include": "#attributes_context"
},
{
"include": "#parentheses"
},
{
"include": "#function_call"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#square_brackets"
},
{
"include": "#empty_square_brackets"
},
{
"include": "#semicolon"
},
{
"include": "#comma"
}
]
},
"function_parameter_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#parameter"
},
{
"include": "#comma"
}
]
},
"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_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"
}
]
},
"attributes_context": {
"patterns": [
{
"include": "#cpp_attributes"
},
{
"include": "#gcc_attributes"
},
{
"include": "#ms_attributes"
},
{
"include": "#alignas_attribute"
}
]
},
"storage_types": {
"patterns": [
{
"include": "#storage_specifiers"
},
{
"include": "#primitive_types"
},
{
"include": "#non_primitive_types"
},
{
"include": "#pthread_types"
},
{
"include": "#posix_reserved_types"
},
{
"include": "#decltype"
},
{
"include": "#typename"
}
]
},
"block_comment": {
"name": "comment.block.cpp",
"begin": "\\s*+(\\/\\*)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.begin.cpp"
}
},
"end": "(\\*\\/)",
"endCaptures": {
"1": {
"name": "punctuation.definition.comment.end.cpp"
}
}
},
"line_comment": {
"name": "comment.line.double-slash.cpp",
"begin": "\\s*+(\\/\\/)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.cpp"
}
},
"end": "(?<=\\n)(?<!\\\\\\n)",
"patterns": [
{
"include": "#line_continuation_character"
}
]
},
"emacs_file_banner": {
"match": "(?:(^\\s*((\\/\\/)\\s*((?>[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\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"
}
}
},
"invalid_comment_end": {
"match": "\\*\\/",
"name": "invalid.illegal.unexpected.punctuation.definition.comment.end.cpp"
},
"comments": {
"patterns": [
{
"include": "#emacs_file_banner"
},
{
"include": "#block_comment"
},
{
"include": "#line_comment"
},
{
"include": "#invalid_comment_end"
}
]
},
"number_literal": {
"begin": "(?<!\\w)(?=\\d|\\.\\d)",
"end": "(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-]))",
"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*)?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])))",
"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"
},
"8": {
"name": "keyword.other.unit.exponent.hexadecimal.cpp"
},
"9": {
"name": "keyword.operator.plus.exponent.hexadecimal.cpp"
},
"10": {
"name": "keyword.operator.minus.exponent.hexadecimal.cpp"
},
"11": {
"name": "constant.numeric.exponent.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"12": {
"name": "keyword.other.unit.suffix.floating-point.cpp"
},
"13": {
"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*)?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])))",
"captures": {
"2": {
"name": "constant.numeric.decimal.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.decimal.point.cpp"
},
"5": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"6": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"8": {
"name": "keyword.other.unit.exponent.decimal.cpp"
},
"9": {
"name": "keyword.operator.plus.exponent.decimal.cpp"
},
"10": {
"name": "keyword.operator.minus.exponent.decimal.cpp"
},
"11": {
"name": "constant.numeric.exponent.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"12": {
"name": "keyword.other.unit.suffix.floating-point.cpp"
},
"13": {
"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*)?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])))",
"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*)?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])))",
"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*)?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])))",
"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"
},
"5": {
"name": "keyword.other.unit.exponent.hexadecimal.cpp"
},
"6": {
"name": "keyword.operator.plus.exponent.hexadecimal.cpp"
},
"7": {
"name": "keyword.operator.minus.exponent.hexadecimal.cpp"
},
"8": {
"name": "constant.numeric.exponent.hexadecimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"9": {
"name": "keyword.other.unit.suffix.integer.cpp"
},
"10": {
"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*)?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])))",
"captures": {
"2": {
"name": "constant.numeric.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"3": {
"name": "punctuation.separator.constant.numeric.cpp"
},
"5": {
"name": "keyword.other.unit.exponent.decimal.cpp"
},
"6": {
"name": "keyword.operator.plus.exponent.decimal.cpp"
},
"7": {
"name": "keyword.operator.minus.exponent.decimal.cpp"
},
"8": {
"name": "constant.numeric.exponent.decimal.cpp",
"patterns": [
{
"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
"name": "punctuation.separator.constant.numeric.cpp"
}
]
},
"9": {
"name": "keyword.other.unit.suffix.integer.cpp"
},
"10": {
"name": "keyword.other.unit.user-defined.cpp"
}
}
},
{
"match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",
"name": "invalid.illegal.constant.numeric.cpp"
}
]
},
"language_constants": {
"match": "(?<!\\w)(?:NULL|true|false|nullptr)(?!\\w)",
"name": "constant.language.$0.cpp"
},
"primitive_types": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w))",
"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": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
}
}
},
"non_primitive_types": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w))",
"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": "storage.type.cpp storage.type.built-in.cpp"
}
}
},
"decltype_specifier": {
"contentName": "meta.arguments.decltype.cpp",
"begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"decltype": {
"contentName": "meta.arguments.decltype.cpp",
"begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"pthread_types": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t(?!\\w))",
"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": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
}
}
},
"posix_reserved_types": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)[a-zA-Z_]\\w*_t(?!\\w))",
"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": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
}
}
},
"using_name": {
"match": "(using)\\s+(?!namespace\\b)",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
}
}
},
"functional_specifiers_pre_parameters": {
"match": "(?<!\\w)(?:inline|constexpr|mutable|friend|explicit|virtual)(?!\\w)",
"name": "storage.modifier.specifier.functional.pre-parameters.$0.cpp"
},
"qualifiers_and_specifiers_post_parameters": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:final|override|volatile|const|noexcept)(?!\\w)(?=\\s*(?:(?:\\{|;)|[\\n\\r])))",
"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": "storage.modifier.specifier.functional.post-parameters.$5.cpp"
}
}
},
"storage_specifiers": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:const|static|volatile|register|restrict|extern)(?!\\w))",
"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": "storage.modifier.specifier.$5.cpp"
}
}
},
"access_control_keywords": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(((?:private|protected|public))\\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": "storage.type.modifier.access.control.$6.cpp"
},
"7": {
"name": "punctuation.separator.colon.access.control.cpp"
}
}
},
"exception_keywords": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:throw|try|catch)(?!\\w))",
"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": "keyword.control.exception.$5.cpp"
}
}
},
"typedef_keyword": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)typedef(?!\\w))",
"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": "keyword.other.$5.cpp"
}
}
},
"the_this_keyword": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)this(?!\\w))",
"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"
}
}
},
"type_casting_operators": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:static_cast|dynamic_cast|const_cast|reinterpret_cast)(?!\\w))",
"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": "keyword.operator.wordlike.cpp keyword.operator.cast.$5.cpp"
}
}
},
"memory_operators": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w))",
"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": "keyword.operator.wordlike.cpp"
},
"6": {
"name": "keyword.operator.delete.array.cpp"
},
"7": {
"name": "keyword.operator.delete.array.bracket.cpp"
},
"8": {
"name": "keyword.operator.delete.cpp"
},
"9": {
"name": "keyword.operator.new.cpp"
}
}
},
"control_flow_keywords": {
"match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:throw|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default)(?!\\w))",
"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": "keyword.control.$5.cpp"
}
}
},
"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": {
"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": "entity.name.label.call.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": {
"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": "entity.name.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"
}
]
},
"10": {
"name": "punctuation.separator.label.cpp"
}
}
},
"default_statement": {
"name": "meta.conditional.case.cpp",
"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)default(?!\\w))",
"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"
}
},
"end": "(:)",
"endCaptures": {
"1": {
"name": "punctuation.separator.colon.case.default.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "#c_conditional_context"
}
]
},
"case_statement": {
"name": "meta.conditional.case.cpp",
"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)case(?!\\w))",
"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"
}
},
"end": "(:)",
"endCaptures": {
"1": {
"name": "punctuation.separator.colon.case.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "#c_conditional_context"
}
]
},
"switch_conditional_parentheses": {
"name": "meta.conditional.switch.cpp",
"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "#c_conditional_context"
}
]
},
"switch_statement": {
"name": "meta.block.switch.cpp",
"begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)switch(?!\\w)))",
"beginCaptures": {
"1": {
"name": "meta.head.switch.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.control.switch.cpp"
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.switch.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
}
},
"patterns": [
{
"include": "#switch_conditional_parentheses"
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.switch.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.switch.cpp"
}
},
"patterns": [
{
"include": "#default_statement"
},
{
"include": "#case_statement"
},
{
"include": "$self"
},
{
"include": "#block_innards"
}
]
},
{
"name": "meta.tail.switch.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"cpp_attributes": {
"name": "support.other.attribute.cpp",
"begin": "(\\[\\[)",
"beginCaptures": {
"1": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"end": "(\\]\\])",
"endCaptures": {
"1": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"end": "\\)",
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context_c"
}
]
},
{
"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"
}
]
},
"gcc_attributes": {
"name": "support.other.attribute.cpp",
"begin": "(__attribute(?:__)?\\(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"end": "(\\)\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"end": "\\)",
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context_c"
}
]
},
{
"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"
}
]
},
"ms_attributes": {
"name": "support.other.attribute.cpp",
"begin": "(__declspec\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"end": "\\)",
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context_c"
}
]
},
{
"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_attribute": {
"name": "support.other.attribute.cpp",
"begin": "(alignas\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.attribute.end.cpp"
}
},
"patterns": [
{
"include": "#attributes_context"
},
{
"begin": "\\(",
"end": "\\)",
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#string_context_c"
}
]
},
{
"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"
}
]
},
"comma_in_template_argument": {
"match": ",",
"name": "punctuation.separator.delimiter.comma.template.argument.cpp"
},
"template_call_innards": {
"match": "((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<1>?)+)>)\\s*",
"captures": {
"0": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"template_call_range": {
"name": "meta.template.call.cpp",
"begin": "(<)",
"beginCaptures": {
"1": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": "(>)",
"endCaptures": {
"1": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
"patterns": [
{
"include": "#template_call_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"
}
}
},
"template_definition": {
"name": "meta.template.definition.cpp",
"begin": "(?<!\\w)(template)\\s*(<)",
"beginCaptures": {
"1": {
"name": "storage.type.template.cpp"
},
"2": {
"name": "punctuation.section.angle-brackets.start.template.definition.cpp"
}
},
"end": "(>)",
"endCaptures": {
"1": {
"name": "punctuation.section.angle-brackets.end.template.definition.cpp"
}
},
"patterns": [
{
"begin": "((?<=\\w)\\s*<)",
"beginCaptures": {
"1": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": "(>)",
"endCaptures": {
"1": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"include": "#template_definition_context"
}
]
},
"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_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": {
"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.argument.$5.cpp"
},
"6": {
"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"
}
]
},
"7": {
"name": "entity.name.type.template.cpp"
},
"8": {
"name": "storage.type.template.cpp"
},
"9": {
"name": "punctuation.vararg-ellipses.template.definition.cpp"
},
"10": {
"name": "entity.name.type.template.cpp"
},
"11": {
"name": "punctuation.separator.delimiter.comma.template.argument.cpp"
}
}
},
"scope_resolution": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
}
}
},
"scope_resolution_template_call": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_template_call_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.template.call.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
}
}
},
"scope_resolution_template_definition": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_template_definition_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.template.definition.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
}
}
},
"scope_resolution_function_call": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_function_call_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.function.call.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
}
}
},
"scope_resolution_function_definition": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_function_definition_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.function.definition.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
}
}
},
"scope_resolution_namespace_alias": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_namespace_alias_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.namespace.alias.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
}
}
},
"scope_resolution_namespace_using": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_namespace_using_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.namespace.using.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
}
}
},
"scope_resolution_namespace_block": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_namespace_block_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.namespace.block.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
}
}
},
"scope_resolution_parameter": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
{
"include": "#scope_resolution_parameter_inner_generated"
}
]
},
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_parameter_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
"captures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_parameter_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.parameter.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
}
}
},
"scope_resolution_function_definition_operator_overload": {
"match": "(::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"scope_resolution_function_definition_operator_overload_inner_generated": {
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.scope-resolution.function.definition.operator-overload.cpp"
},
"7": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
}
}
},
"qualified_type": {
"match": "\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<26>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<26>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<26>?)+)>)\\s*)?(?![\\w<:.])",
"captures": {
"0": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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": {
"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"
}
]
},
"11": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"12": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"14": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"16": {
"name": "entity.name.scope-resolution.cpp"
},
"17": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"19": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.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": {
"name": "entity.name.type.cpp"
},
"25": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"simple_type": {
"match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?",
"captures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"12": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"13": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"15": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"17": {
"name": "entity.name.scope-resolution.cpp"
},
"18": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"20": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"name": "entity.name.type.cpp"
},
"26": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"28": {
"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"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
"type_alias": {
"match": "(using)\\s*(?!namespace)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<58>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<58>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<58>?)+)>)\\s*)?(?![\\w<:.]))\\s*(\\=)\\s*((?:typename)?)\\s*((?:(?:(?:(?:(?>\\s+)|(?:\\/\\*)(?:(?>(?:[^\\*]|(?>\\*+)[^\\/])*)(?:(?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?<!\\w)(?:const|static|volatile|register|restrict|extern)(?!\\w))\\s+)+)?(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<58>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<58>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<58>?)+)>)\\s*)?(?![\\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": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"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"
}
]
},
"13": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"14": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"16": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"18": {
"name": "entity.name.scope-resolution.cpp"
},
"19": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"21": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"22": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"23": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"24": {
"name": "comment.block.cpp"
},
"25": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"26": {
"name": "entity.name.type.cpp"
},
"27": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"29": {
"name": "keyword.operator.assignment.cpp"
},
"30": {
"name": "keyword.other.typename.cpp"
},
"31": {
"patterns": [
{
"include": "#storage_specifiers"
}
]
},
"32": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"33": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"34": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"35": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"36": {
"name": "comment.block.cpp"
},
"37": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"38": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"39": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"40": {
"name": "comment.block.cpp"
},
"41": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"43": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"44": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"46": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"48": {
"name": "entity.name.scope-resolution.cpp"
},
"49": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"51": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"52": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"53": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"54": {
"name": "comment.block.cpp"
},
"55": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"56": {
"name": "entity.name.type.cpp"
},
"57": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"59": {
"name": "meta.declaration.type.alias.value.unknown.cpp",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"60": {
"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"
}
]
},
"61": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"62": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"63": {
"name": "comment.block.cpp"
},
"64": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"65": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"66": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"67": {
"name": "comment.block.cpp"
},
"68": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"69": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"70": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"71": {
"name": "comment.block.cpp"
},
"72": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"73": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"74": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"75": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"76": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.declaration.type.alias.cpp"
},
"typename": {
"match": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?<!\\w)typename(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<36>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<36>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<36>?)+)>)\\s*)?(?![\\w<:.]))",
"captures": {
"1": {
"name": "storage.modifier.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": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"11": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"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"
}
]
},
"21": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"22": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"24": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"26": {
"name": "entity.name.scope-resolution.cpp"
},
"27": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"29": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"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": {
"name": "entity.name.type.cpp"
},
"35": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
},
"predefined_macros": {
"patterns": [
{
"match": "\\b__cplusplus\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__cplusplus.cpp"
},
{
"match": "\\b__DATE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__DATE__.cpp"
},
{
"match": "\\b__FILE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FILE__.cpp"
},
{
"match": "\\b__LINE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__LINE__.cpp"
},
{
"match": "\\b__STDC__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__STDC__.cpp"
},
{
"match": "\\b__STDC_HOSTED__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__STDC_HOSTED__.cpp"
},
{
"match": "\\b__STDC_NO_COMPLEX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__STDC_NO_COMPLEX__.cpp"
},
{
"match": "\\b__STDC_VERSION__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__STDC_VERSION__.cpp"
},
{
"match": "\\b__STDCPP_THREADS__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__STDCPP_THREADS__.cpp"
},
{
"match": "\\b__TIME__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__TIME__.cpp"
},
{
"match": "\\bNDEBUG\\b",
"name": "entity.name.other.preprocessor.macro.predefined.NDEBUG.cpp"
},
{
"match": "\\b__OBJC__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__OBJC__.cpp"
},
{
"match": "\\b__ASSEMBLER__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__ASSEMBLER__.cpp"
},
{
"match": "\\b__ATOM__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__ATOM__.cpp"
},
{
"match": "\\b__AVX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__AVX__.cpp"
},
{
"match": "\\b__AVX2__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__AVX2__.cpp"
},
{
"match": "\\b_CHAR_UNSIGNED\\b",
"name": "entity.name.other.preprocessor.macro.predefined._CHAR_UNSIGNED.cpp"
},
{
"match": "\\b__CLR_VER\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__CLR_VER.cpp"
},
{
"match": "\\b_CONTROL_FLOW_GUARD\\b",
"name": "entity.name.other.preprocessor.macro.predefined._CONTROL_FLOW_GUARD.cpp"
},
{
"match": "\\b__COUNTER__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__COUNTER__.cpp"
},
{
"match": "\\b__cplusplus_cli\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__cplusplus_cli.cpp"
},
{
"match": "\\b__cplusplus_winrt\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__cplusplus_winrt.cpp"
},
{
"match": "\\b_CPPRTTI\\b",
"name": "entity.name.other.preprocessor.macro.predefined._CPPRTTI.cpp"
},
{
"match": "\\b_CPPUNWIND\\b",
"name": "entity.name.other.preprocessor.macro.predefined._CPPUNWIND.cpp"
},
{
"match": "\\b_DEBUG\\b",
"name": "entity.name.other.preprocessor.macro.predefined._DEBUG.cpp"
},
{
"match": "\\b_DLL\\b",
"name": "entity.name.other.preprocessor.macro.predefined._DLL.cpp"
},
{
"match": "\\b__FUNCDNAME__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FUNCDNAME__.cpp"
},
{
"match": "\\b__FUNCSIG__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FUNCSIG__.cpp"
},
{
"match": "\\b__FUNCTION__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FUNCTION__.cpp"
},
{
"match": "\\b_INTEGRAL_MAX_BITS\\b",
"name": "entity.name.other.preprocessor.macro.predefined._INTEGRAL_MAX_BITS.cpp"
},
{
"match": "\\b__INTELLISENSE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INTELLISENSE__.cpp"
},
{
"match": "\\b_ISO_VOLATILE\\b",
"name": "entity.name.other.preprocessor.macro.predefined._ISO_VOLATILE.cpp"
},
{
"match": "\\b_KERNEL_MODE\\b",
"name": "entity.name.other.preprocessor.macro.predefined._KERNEL_MODE.cpp"
},
{
"match": "\\b_M_AMD64\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_AMD64.cpp"
},
{
"match": "\\b_M_ARM\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_ARM.cpp"
},
{
"match": "\\b_M_ARM_ARMV7VE\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_ARM_ARMV7VE.cpp"
},
{
"match": "\\b_M_ARM_FP\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_ARM_FP.cpp"
},
{
"match": "\\b_M_ARM64\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_ARM64.cpp"
},
{
"match": "\\b_M_CEE\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_CEE.cpp"
},
{
"match": "\\b_M_CEE_PURE\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_CEE_PURE.cpp"
},
{
"match": "\\b_M_CEE_SAFE\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_CEE_SAFE.cpp"
},
{
"match": "\\b_M_FP_EXCEPT\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_FP_EXCEPT.cpp"
},
{
"match": "\\b_M_FP_FAST\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_FP_FAST.cpp"
},
{
"match": "\\b_M_FP_PRECISE\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_FP_PRECISE.cpp"
},
{
"match": "\\b_M_FP_STRICT\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_FP_STRICT.cpp"
},
{
"match": "\\b_M_IX86\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_IX86.cpp"
},
{
"match": "\\b_M_IX86_FP\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_IX86_FP.cpp"
},
{
"match": "\\b_M_X64\\b",
"name": "entity.name.other.preprocessor.macro.predefined._M_X64.cpp"
},
{
"match": "\\b_MANAGED\\b",
"name": "entity.name.other.preprocessor.macro.predefined._MANAGED.cpp"
},
{
"match": "\\b_MSC_BUILD\\b",
"name": "entity.name.other.preprocessor.macro.predefined._MSC_BUILD.cpp"
},
{
"match": "\\b_MSC_EXTENSIONS\\b",
"name": "entity.name.other.preprocessor.macro.predefined._MSC_EXTENSIONS.cpp"
},
{
"match": "\\b_MSC_FULL_VER\\b",
"name": "entity.name.other.preprocessor.macro.predefined._MSC_FULL_VER.cpp"
},
{
"match": "\\b_MSC_VER\\b",
"name": "entity.name.other.preprocessor.macro.predefined._MSC_VER.cpp"
},
{
"match": "\\b_MSVC_LANG\\b",
"name": "entity.name.other.preprocessor.macro.predefined._MSVC_LANG.cpp"
},
{
"match": "\\b__MSVC_RUNTIME_CHECKS\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__MSVC_RUNTIME_CHECKS.cpp"
},
{
"match": "\\b_MT\\b",
"name": "entity.name.other.preprocessor.macro.predefined._MT.cpp"
},
{
"match": "\\b_NATIVE_WCHAR_T_DEFINED\\b",
"name": "entity.name.other.preprocessor.macro.predefined._NATIVE_WCHAR_T_DEFINED.cpp"
},
{
"match": "\\b_OPENMP\\b",
"name": "entity.name.other.preprocessor.macro.predefined._OPENMP.cpp"
},
{
"match": "\\b_PREFAST\\b",
"name": "entity.name.other.preprocessor.macro.predefined._PREFAST.cpp"
},
{
"match": "\\b__TIMESTAMP__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__TIMESTAMP__.cpp"
},
{
"match": "\\b_VC_NO_DEFAULTLIB\\b",
"name": "entity.name.other.preprocessor.macro.predefined._VC_NO_DEFAULTLIB.cpp"
},
{
"match": "\\b_WCHAR_T_DEFINED\\b",
"name": "entity.name.other.preprocessor.macro.predefined._WCHAR_T_DEFINED.cpp"
},
{
"match": "\\b_WIN32\\b",
"name": "entity.name.other.preprocessor.macro.predefined._WIN32.cpp"
},
{
"match": "\\b_WIN64\\b",
"name": "entity.name.other.preprocessor.macro.predefined._WIN64.cpp"
},
{
"match": "\\b_WINRT_DLL\\b",
"name": "entity.name.other.preprocessor.macro.predefined._WINRT_DLL.cpp"
},
{
"match": "\\b_ATL_VER\\b",
"name": "entity.name.other.preprocessor.macro.predefined._ATL_VER.cpp"
},
{
"match": "\\b_MFC_VER\\b",
"name": "entity.name.other.preprocessor.macro.predefined._MFC_VER.cpp"
},
{
"match": "\\b__GFORTRAN__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GFORTRAN__.cpp"
},
{
"match": "\\b__GNUC__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GNUC__.cpp"
},
{
"match": "\\b__GNUC_MINOR__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GNUC_MINOR__.cpp"
},
{
"match": "\\b__GNUC_PATCHLEVEL__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GNUC_PATCHLEVEL__.cpp"
},
{
"match": "\\b__GNUG__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GNUG__.cpp"
},
{
"match": "\\b__STRICT_ANSI__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__STRICT_ANSI__.cpp"
},
{
"match": "\\b__BASE_FILE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__BASE_FILE__.cpp"
},
{
"match": "\\b__INCLUDE_LEVEL__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INCLUDE_LEVEL__.cpp"
},
{
"match": "\\b__ELF__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__ELF__.cpp"
},
{
"match": "\\b__VERSION__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__VERSION__.cpp"
},
{
"match": "\\b__OPTIMIZE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__OPTIMIZE__.cpp"
},
{
"match": "\\b__OPTIMIZE_SIZE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__OPTIMIZE_SIZE__.cpp"
},
{
"match": "\\b__NO_INLINE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__NO_INLINE__.cpp"
},
{
"match": "\\b__GNUC_STDC_INLINE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GNUC_STDC_INLINE__.cpp"
},
{
"match": "\\b__CHAR_UNSIGNED__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__CHAR_UNSIGNED__.cpp"
},
{
"match": "\\b__WCHAR_UNSIGNED__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_UNSIGNED__.cpp"
},
{
"match": "\\b__REGISTER_PREFIX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__REGISTER_PREFIX__.cpp"
},
{
"match": "\\b__REGISTER_PREFIX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__REGISTER_PREFIX__.cpp"
},
{
"match": "\\b__SIZE_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZE_TYPE__.cpp"
},
{
"match": "\\b__PTRDIFF_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__PTRDIFF_TYPE__.cpp"
},
{
"match": "\\b__WCHAR_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_TYPE__.cpp"
},
{
"match": "\\b__WINT_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WINT_TYPE__.cpp"
},
{
"match": "\\b__INTMAX_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INTMAX_TYPE__.cpp"
},
{
"match": "\\b__UINTMAX_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINTMAX_TYPE__.cpp"
},
{
"match": "\\b__SIG_ATOMIC_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_TYPE__.cpp"
},
{
"match": "\\b__INT8_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT8_TYPE__.cpp"
},
{
"match": "\\b__INT16_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT16_TYPE__.cpp"
},
{
"match": "\\b__INT32_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT32_TYPE__.cpp"
},
{
"match": "\\b__INT64_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT64_TYPE__.cpp"
},
{
"match": "\\b__UINT8_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT8_TYPE__.cpp"
},
{
"match": "\\b__UINT16_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT16_TYPE__.cpp"
},
{
"match": "\\b__UINT32_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT32_TYPE__.cpp"
},
{
"match": "\\b__UINT64_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT64_TYPE__.cpp"
},
{
"match": "\\b__INT_LEAST8_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_TYPE__.cpp"
},
{
"match": "\\b__INT_LEAST16_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_TYPE__.cpp"
},
{
"match": "\\b__INT_LEAST32_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST32_TYPE__.cpp"
},
{
"match": "\\b__INT_LEAST64_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST64_TYPE__.cpp"
},
{
"match": "\\b__UINT_LEAST8_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST8_TYPE__.cpp"
},
{
"match": "\\b__UINT_LEAST16_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST16_TYPE__.cpp"
},
{
"match": "\\b__UINT_LEAST32_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST32_TYPE__.cpp"
},
{
"match": "\\b__UINT_LEAST64_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST64_TYPE__.cpp"
},
{
"match": "\\b__INT_FAST8_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST8_TYPE__.cpp"
},
{
"match": "\\b__INT_FAST16_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST16_TYPE__.cpp"
},
{
"match": "\\b__INT_FAST32_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST32_TYPE__.cpp"
},
{
"match": "\\b__INT_FAST64_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST64_TYPE__.cpp"
},
{
"match": "\\b__UINT_FAST8_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST8_TYPE__.cpp"
},
{
"match": "\\b__UINT_FAST16_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST16_TYPE__.cpp"
},
{
"match": "\\b__UINT_FAST32_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST32_TYPE__.cpp"
},
{
"match": "\\b__UINT_FAST64_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST64_TYPE__.cpp"
},
{
"match": "\\b__INTPTR_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INTPTR_TYPE__.cpp"
},
{
"match": "\\b__UINTPTR_TYPE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINTPTR_TYPE__.cpp"
},
{
"match": "\\b__CHAR_BIT__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__CHAR_BIT__.cpp"
},
{
"match": "\\b__SCHAR_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SCHAR_MAX__.cpp"
},
{
"match": "\\b__WCHAR_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_MAX__.cpp"
},
{
"match": "\\b__SHRT_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SHRT_MAX__.cpp"
},
{
"match": "\\b__INT_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_MAX__.cpp"
},
{
"match": "\\b__LONG_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__LONG_MAX__.cpp"
},
{
"match": "\\b__LONG_LONG_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__LONG_LONG_MAX__.cpp"
},
{
"match": "\\b__WINT_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WINT_MAX__.cpp"
},
{
"match": "\\b__SIZE_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZE_MAX__.cpp"
},
{
"match": "\\b__PTRDIFF_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__PTRDIFF_MAX__.cpp"
},
{
"match": "\\b__INTMAX_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INTMAX_MAX__.cpp"
},
{
"match": "\\b__UINTMAX_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINTMAX_MAX__.cpp"
},
{
"match": "\\b__SIG_ATOMIC_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_MAX__.cpp"
},
{
"match": "\\b__INT8_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT8_MAX__.cpp"
},
{
"match": "\\b__INT16_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT16_MAX__.cpp"
},
{
"match": "\\b__INT32_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT32_MAX__.cpp"
},
{
"match": "\\b__INT64_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT64_MAX__.cpp"
},
{
"match": "\\b__UINT8_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT8_MAX__.cpp"
},
{
"match": "\\b__UINT16_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT16_MAX__.cpp"
},
{
"match": "\\b__UINT32_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT32_MAX__.cpp"
},
{
"match": "\\b__UINT64_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT64_MAX__.cpp"
},
{
"match": "\\b__INT_LEAST8_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_MAX__.cpp"
},
{
"match": "\\b__INT_LEAST16_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_MAX__.cpp"
},
{
"match": "\\b__INT_LEAST32_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST32_MAX__.cpp"
},
{
"match": "\\b__INT_LEAST64_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST64_MAX__.cpp"
},
{
"match": "\\b__UINT_LEAST8_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST8_MAX__.cpp"
},
{
"match": "\\b__UINT_LEAST16_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST16_MAX__.cpp"
},
{
"match": "\\b__UINT_LEAST32_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST32_MAX__.cpp"
},
{
"match": "\\b__UINT_LEAST64_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST64_MAX__.cpp"
},
{
"match": "\\b__INT_FAST8_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST8_MAX__.cpp"
},
{
"match": "\\b__INT_FAST16_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST16_MAX__.cpp"
},
{
"match": "\\b__INT_FAST32_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST32_MAX__.cpp"
},
{
"match": "\\b__INT_FAST64_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST64_MAX__.cpp"
},
{
"match": "\\b__UINT_FAST8_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST8_MAX__.cpp"
},
{
"match": "\\b__UINT_FAST16_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST16_MAX__.cpp"
},
{
"match": "\\b__UINT_FAST32_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST32_MAX__.cpp"
},
{
"match": "\\b__UINT_FAST64_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST64_MAX__.cpp"
},
{
"match": "\\b__INTPTR_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INTPTR_MAX__.cpp"
},
{
"match": "\\b__UINTPTR_MAX__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__UINTPTR_MAX__.cpp"
},
{
"match": "\\b__WCHAR_MIN__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_MIN__.cpp"
},
{
"match": "\\b__WINT_MIN__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WINT_MIN__.cpp"
},
{
"match": "\\b__SIG_ATOMIC_MIN__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_MIN__.cpp"
},
{
"match": "\\b__SCHAR_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SCHAR_WIDTH__.cpp"
},
{
"match": "\\b__SHRT_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SHRT_WIDTH__.cpp"
},
{
"match": "\\b__INT_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_WIDTH__.cpp"
},
{
"match": "\\b__LONG_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__LONG_WIDTH__.cpp"
},
{
"match": "\\b__LONG_LONG_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__LONG_LONG_WIDTH__.cpp"
},
{
"match": "\\b__PTRDIFF_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__PTRDIFF_WIDTH__.cpp"
},
{
"match": "\\b__SIG_ATOMIC_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_WIDTH__.cpp"
},
{
"match": "\\b__SIZE_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZE_WIDTH__.cpp"
},
{
"match": "\\b__WCHAR_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_WIDTH__.cpp"
},
{
"match": "\\b__WINT_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__WINT_WIDTH__.cpp"
},
{
"match": "\\b__INT_LEAST8_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_WIDTH__.cpp"
},
{
"match": "\\b__INT_LEAST16_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_WIDTH__.cpp"
},
{
"match": "\\b__INT_LEAST32_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST32_WIDTH__.cpp"
},
{
"match": "\\b__INT_LEAST64_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST64_WIDTH__.cpp"
},
{
"match": "\\b__INT_FAST8_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST8_WIDTH__.cpp"
},
{
"match": "\\b__INT_FAST16_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST16_WIDTH__.cpp"
},
{
"match": "\\b__INT_FAST32_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST32_WIDTH__.cpp"
},
{
"match": "\\b__INT_FAST64_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST64_WIDTH__.cpp"
},
{
"match": "\\b__INTPTR_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INTPTR_WIDTH__.cpp"
},
{
"match": "\\b__INTMAX_WIDTH__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__INTMAX_WIDTH__.cpp"
},
{
"match": "\\b__SIZEOF_INT__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_INT__.cpp"
},
{
"match": "\\b__SIZEOF_LONG__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG__.cpp"
},
{
"match": "\\b__SIZEOF_LONG_LONG__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG_LONG__.cpp"
},
{
"match": "\\b__SIZEOF_SHORT__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_SHORT__.cpp"
},
{
"match": "\\b__SIZEOF_POINTER__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_POINTER__.cpp"
},
{
"match": "\\b__SIZEOF_FLOAT__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_FLOAT__.cpp"
},
{
"match": "\\b__SIZEOF_DOUBLE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_DOUBLE__.cpp"
},
{
"match": "\\b__SIZEOF_LONG_DOUBLE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG_DOUBLE__.cpp"
},
{
"match": "\\b__SIZEOF_SIZE_T__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_SIZE_T__.cpp"
},
{
"match": "\\b__SIZEOF_WCHAR_T__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_WCHAR_T__.cpp"
},
{
"match": "\\b__SIZEOF_WINT_T__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_WINT_T__.cpp"
},
{
"match": "\\b__SIZEOF_PTRDIFF_T__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_PTRDIFF_T__.cpp"
},
{
"match": "\\b__BYTE_ORDER__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__BYTE_ORDER__.cpp"
},
{
"match": "\\b__ORDER_LITTLE_ENDIAN__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__ORDER_LITTLE_ENDIAN__.cpp"
},
{
"match": "\\b__ORDER_BIG_ENDIAN__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__ORDER_BIG_ENDIAN__.cpp"
},
{
"match": "\\b__ORDER_PDP_ENDIAN__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__ORDER_PDP_ENDIAN__.cpp"
},
{
"match": "\\b__FLOAT_WORD_ORDER__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FLOAT_WORD_ORDER__.cpp"
},
{
"match": "\\b__DEPRECATED\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__DEPRECATED.cpp"
},
{
"match": "\\b__EXCEPTIONS\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__EXCEPTIONS.cpp"
},
{
"match": "\\b__GXX_RTTI\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GXX_RTTI.cpp"
},
{
"match": "\\b__USING_SJLJ_EXCEPTIONS__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__USING_SJLJ_EXCEPTIONS__.cpp"
},
{
"match": "\\b__GXX_EXPERIMENTAL_CXX0X__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GXX_EXPERIMENTAL_CXX0X__.cpp"
},
{
"match": "\\b__GXX_WEAK__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GXX_WEAK__.cpp"
},
{
"match": "\\b__NEXT_RUNTIME__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__NEXT_RUNTIME__.cpp"
},
{
"match": "\\b__LP64__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__LP64__.cpp"
},
{
"match": "\\b_LP64\\b",
"name": "entity.name.other.preprocessor.macro.predefined._LP64.cpp"
},
{
"match": "\\b__SSP__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SSP__.cpp"
},
{
"match": "\\b__SSP_ALL__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SSP_ALL__.cpp"
},
{
"match": "\\b__SSP_STRONG__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SSP_STRONG__.cpp"
},
{
"match": "\\b__SSP_EXPLICIT__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SSP_EXPLICIT__.cpp"
},
{
"match": "\\b__SANITIZE_ADDRESS__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SANITIZE_ADDRESS__.cpp"
},
{
"match": "\\b__SANITIZE_THREAD__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__SANITIZE_THREAD__.cpp"
},
{
"match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1.cpp"
},
{
"match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2.cpp"
},
{
"match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.cpp"
},
{
"match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8.cpp"
},
{
"match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16.cpp"
},
{
"match": "\\b__HAVE_SPECULATION_SAFE_VALUE\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__HAVE_SPECULATION_SAFE_VALUE.cpp"
},
{
"match": "\\b__GCC_HAVE_DWARF2_CFI_ASM\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_DWARF2_CFI_ASM.cpp"
},
{
"match": "\\b__FP_FAST_FMA\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMA.cpp"
},
{
"match": "\\b__FP_FAST_FMAF\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF.cpp"
},
{
"match": "\\b__FP_FAST_FMAL\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAL.cpp"
},
{
"match": "\\b__FP_FAST_FMAF16\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF16.cpp"
},
{
"match": "\\b__FP_FAST_FMAF32\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF32.cpp"
},
{
"match": "\\b__FP_FAST_FMAF64\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF64.cpp"
},
{
"match": "\\b__FP_FAST_FMAF128\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF128.cpp"
},
{
"match": "\\b__FP_FAST_FMAF32X\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF32X.cpp"
},
{
"match": "\\b__FP_FAST_FMAF64X\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF64X.cpp"
},
{
"match": "\\b__FP_FAST_FMAF128X\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF128X.cpp"
},
{
"match": "\\b__GCC_IEC_559\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GCC_IEC_559.cpp"
},
{
"match": "\\b__GCC_IEC_559_COMPLEX\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__GCC_IEC_559_COMPLEX.cpp"
},
{
"match": "\\b__NO_MATH_ERRNO__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__NO_MATH_ERRNO__.cpp"
},
{
"match": "\\b__has_builtin\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_builtin.cpp"
},
{
"match": "\\b__has_feature\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_feature.cpp"
},
{
"match": "\\b__has_extension\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_extension.cpp"
},
{
"match": "\\b__has_cpp_attribute\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_cpp_attribute.cpp"
},
{
"match": "\\b__has_c_attribute\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_c_attribute.cpp"
},
{
"match": "\\b__has_attribute\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_attribute.cpp"
},
{
"match": "\\b__has_declspec_attribute\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_declspec_attribute.cpp"
},
{
"match": "\\b__is_identifier\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__is_identifier.cpp"
},
{
"match": "\\b__has_include\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_include.cpp"
},
{
"match": "\\b__has_include_next\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_include_next.cpp"
},
{
"match": "\\b__has_warning\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__has_warning.cpp"
},
{
"match": "\\b__BASE_FILE__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__BASE_FILE__.cpp"
},
{
"match": "\\b__FILE_NAME__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__FILE_NAME__.cpp"
},
{
"match": "\\b__clang__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__clang__.cpp"
},
{
"match": "\\b__clang_major__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__clang_major__.cpp"
},
{
"match": "\\b__clang_minor__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__clang_minor__.cpp"
},
{
"match": "\\b__clang_patchlevel__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__clang_patchlevel__.cpp"
},
{
"match": "\\b__clang_version__\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__clang_version__.cpp"
},
{
"match": "\\b__fp16\\b",
"name": "entity.name.other.preprocessor.macro.predefined.__fp16.cpp"
},
{
"match": "\\b_Float16\\b",
"name": "entity.name.other.preprocessor.macro.predefined._Float16.cpp"
},
{
"match": "(\\b__([A-Z_]+)__\\b)",
"captures": {
"1": {
"name": "entity.name.other.preprocessor.macro.predefined.probably.$2.cpp"
}
}
}
]
},
"function_definition": {
"name": "meta.function.definition.cpp",
"begin": "((?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?<!\\w)template(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?<!\\w)(?:(?:inline|constexpr|mutable|friend|explicit|virtual)|(?:const|static|volatile|register|restrict|extern))(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<69>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<69>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<69>?)+)>)\\s*)?(?![\\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)))((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<69>?)+)>)\\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(?<!\\Wnot|^not|\\Wcompl|^compl|\\Wsizeof|^sizeof|\\Wnew|^new|\\Wdelete|^delete|\\Wnot_eq|^not_eq|\\Wbitand|^bitand|\\Wxor|^xor|\\Wbitor|^bitor|\\Wand|^and|\\Wor|^or|\\Wthrow|^throw|\\Wand_eq|^and_eq|\\Wxor_eq|^xor_eq|\\Wor_eq|^or_eq|\\Walignof|^alignof|\\Walignas|^alignas|\\Wtypeid|^typeid|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wstatic_cast|^static_cast|\\Wdynamic_cast|^dynamic_cast|\\Wconst_cast|^const_cast|\\Wreinterpret_cast|^reinterpret_cast|\\Wwhile|^while|\\Wfor|^for|\\Wdo|^do|\\Wif|^if|\\Welse|^else|\\Wgoto|^goto|\\Wswitch|^switch|\\Wtry|^try|\\Wcatch|^catch|\\Wreturn|^return|\\Wbreak|^break|\\Wcase|^case|\\Wcontinue|^continue|\\Wdefault|^default|\\Wauto|^auto|\\Wvoid|^void|\\Wchar|^char|\\Wshort|^short|\\Wint|^int|\\Wsigned|^signed|\\Wunsigned|^unsigned|\\Wlong|^long|\\Wfloat|^float|\\Wdouble|^double|\\Wbool|^bool|\\Wwchar_t|^wchar_t|\\Wu_char|^u_char|\\Wu_short|^u_short|\\Wu_int|^u_int|\\Wu_long|^u_long|\\Wushort|^ushort|\\Wuint|^uint|\\Wu_quad_t|^u_quad_t|\\Wquad_t|^quad_t|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wdaddr_t|^daddr_t|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wfixpt_t|^fixpt_t|\\Wblkcnt_t|^blkcnt_t|\\Wblksize_t|^blksize_t|\\Wgid_t|^gid_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wmode_t|^mode_t|\\Wnlink_t|^nlink_t|\\Wid_t|^id_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wuid_t|^uid_t|\\Wid_t|^id_t|\\Wclock_t|^clock_t|\\Wsize_t|^size_t|\\Wssize_t|^ssize_t|\\Wtime_t|^time_t|\\Wuseconds_t|^useconds_t|\\Wsuseconds_t|^suseconds_t|\\Wint8_t|^int8_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wint_least8_t|^int_least8_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_least8_t|^uint_least8_t|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wint_fast8_t|^int_fast8_t|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wuint_fast8_t|^uint_fast8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wintptr_t|^intptr_t|\\Wuintptr_t|^uintptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\WNULL|^NULL|\\Wtrue|^true|\\Wfalse|^false|\\Wnullptr|^nullptr|\\Wclass|^class|\\Wstruct|^struct|\\Wunion|^union|\\Wenum|^enum|\\Wconst|^const|\\Wstatic|^static|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wextern|^extern|\\Winline|^inline|\\Wconstexpr|^constexpr|\\Wmutable|^mutable|\\Wfriend|^friend|\\Wexplicit|^explicit|\\Wvirtual|^virtual|\\Wvolatile|^volatile|\\Wconst|^const|\\Wnoexcept|^noexcept|\\Wconstexpr|^constexpr|\\Wmutable|^mutable|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprivate|^private|\\Wprotected|^protected|\\Wpublic|^public|\\Wthis|^this|\\Wtemplate|^template|\\Wnamespace|^namespace|\\Wusing|^using|\\Woperator|^operator|\\Wtypedef|^typedef|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wasm|^asm|\\W__asm__|^__asm__|\\Wconcept|^concept|\\Wrequires|^requires|\\Wexport|^export|\\Wthread_local|^thread_local|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Watomic_noexcept|^atomic_noexcept|\\Wco_await|^co_await|\\Wco_return|^co_return|\\Wco_yield|^co_yield|\\Wimport|^import|\\Wmodule|^module|\\Wreflexpr|^reflexpr|\\Wsynchronized|^synchronized)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\())",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.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.template.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.modifier.$11.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": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"17": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"18": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"20": {
"name": "comment.block.cpp"
},
"21": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"22": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"23": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"24": {
"name": "comment.block.cpp"
},
"25": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"27": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"28": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"30": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"32": {
"name": "entity.name.scope-resolution.cpp"
},
"33": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"35": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.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": {
"name": "entity.name.type.cpp"
},
"41": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"43": {
"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"
}
]
},
"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": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"53": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"54": {
"name": "comment.block.cpp"
},
"55": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"56": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"57": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"58": {
"name": "comment.block.cpp"
},
"59": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"60": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"61": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"62": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"63": {
"name": "comment.block.cpp"
},
"64": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"65": {
"patterns": [
{
"include": "#scope_resolution_function_definition_inner_generated"
}
]
},
"66": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
"68": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"70": {
"name": "entity.name.function.definition.cpp"
},
"71": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"72": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"73": {
"name": "comment.block.cpp"
},
"74": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.function.definition.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"contentName": "meta.function.definition.parameters.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#parameter_or_maybe_value"
},
{
"include": "#comma"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"operator_overload": {
"name": "meta.function.definition.special.operator-overload.cpp",
"begin": "((?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<67>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<67>?)+)>)\\s*)?(?![\\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)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(operator)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(?:(?:((?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|new|new\\[\\]|delete|delete\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?<!\\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)))(?=\\<|\\())",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.special.operator-overload.cpp"
},
"2": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"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"
}
]
},
"13": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"14": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"16": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"18": {
"name": "entity.name.scope-resolution.cpp"
},
"19": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"21": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"22": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"23": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"24": {
"name": "comment.block.cpp"
},
"25": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"26": {
"name": "entity.name.type.cpp"
},
"27": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"29": {
"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"
}
]
},
"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": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"35": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"36": {
"name": "comment.block.cpp"
},
"37": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"38": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"39": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"40": {
"name": "comment.block.cpp"
},
"41": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"42": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"43": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"44": {
"name": "comment.block.cpp"
},
"45": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"46": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"47": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"48": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"49": {
"name": "comment.block.cpp"
},
"50": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"51": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"52": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"53": {
"name": "comment.block.cpp"
},
"54": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"55": {
"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"
}
]
},
"57": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"59": {
"name": "keyword.other.operator.overload.cpp"
},
"60": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"61": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"62": {
"name": "comment.block.cpp"
},
"63": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"64": {
"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"
}
]
},
"66": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"68": {
"name": "entity.name.operator.cpp"
},
"69": {
"name": "entity.name.operator.type.cpp"
},
"70": {
"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"
}
]
},
"71": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"72": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"73": {
"name": "comment.block.cpp"
},
"74": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"75": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"76": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"77": {
"name": "comment.block.cpp"
},
"78": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"79": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"80": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"81": {
"name": "comment.block.cpp"
},
"82": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"83": {
"name": "entity.name.operator.type.array.cpp"
},
"84": {
"name": "entity.name.operator.custom-literal.cpp"
},
"85": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"86": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"87": {
"name": "comment.block.cpp"
},
"88": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"89": {
"name": "entity.name.operator.custom-literal.cpp"
},
"90": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"91": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"92": {
"name": "comment.block.cpp"
},
"93": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.function.definition.special.operator-overload.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#template_call_range"
},
{
"contentName": "meta.function.definition.parameters.special.operator-overload.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "#qualifiers_and_specifiers_post_parameters"
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.special.operator-overload.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.special.operator-overload.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"static_assert": {
"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp"
}
},
"patterns": [
{
"name": "meta.static_assert.message.cpp",
"begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
"beginCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"end": "(?=\\))",
"patterns": [
{
"include": "#string_context"
},
{
"include": "#string_context_c"
}
]
},
{
"include": "#evaluation_context"
}
]
},
"function_call": {
"begin": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<12>?)+)>)\\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(?<!\\Wnot|^not|\\Wcompl|^compl|\\Wsizeof|^sizeof|\\Wnew|^new|\\Wdelete|^delete|\\Wnot_eq|^not_eq|\\Wbitand|^bitand|\\Wxor|^xor|\\Wbitor|^bitor|\\Wand|^and|\\Wor|^or|\\Wthrow|^throw|\\Wand_eq|^and_eq|\\Wxor_eq|^xor_eq|\\Wor_eq|^or_eq|\\Walignof|^alignof|\\Walignas|^alignas|\\Wtypeid|^typeid|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wstatic_cast|^static_cast|\\Wdynamic_cast|^dynamic_cast|\\Wconst_cast|^const_cast|\\Wreinterpret_cast|^reinterpret_cast|\\Wwhile|^while|\\Wfor|^for|\\Wdo|^do|\\Wif|^if|\\Welse|^else|\\Wgoto|^goto|\\Wswitch|^switch|\\Wtry|^try|\\Wcatch|^catch|\\Wreturn|^return|\\Wbreak|^break|\\Wcase|^case|\\Wcontinue|^continue|\\Wdefault|^default|\\Wauto|^auto|\\Wvoid|^void|\\Wchar|^char|\\Wshort|^short|\\Wint|^int|\\Wsigned|^signed|\\Wunsigned|^unsigned|\\Wlong|^long|\\Wfloat|^float|\\Wdouble|^double|\\Wbool|^bool|\\Wwchar_t|^wchar_t|\\Wu_char|^u_char|\\Wu_short|^u_short|\\Wu_int|^u_int|\\Wu_long|^u_long|\\Wushort|^ushort|\\Wuint|^uint|\\Wu_quad_t|^u_quad_t|\\Wquad_t|^quad_t|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wdaddr_t|^daddr_t|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wfixpt_t|^fixpt_t|\\Wblkcnt_t|^blkcnt_t|\\Wblksize_t|^blksize_t|\\Wgid_t|^gid_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wmode_t|^mode_t|\\Wnlink_t|^nlink_t|\\Wid_t|^id_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wuid_t|^uid_t|\\Wid_t|^id_t|\\Wclock_t|^clock_t|\\Wsize_t|^size_t|\\Wssize_t|^ssize_t|\\Wtime_t|^time_t|\\Wuseconds_t|^useconds_t|\\Wsuseconds_t|^suseconds_t|\\Wint8_t|^int8_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wint_least8_t|^int_least8_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_least8_t|^uint_least8_t|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wint_fast8_t|^int_fast8_t|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wuint_fast8_t|^uint_fast8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wintptr_t|^intptr_t|\\Wuintptr_t|^uintptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\WNULL|^NULL|\\Wtrue|^true|\\Wfalse|^false|\\Wnullptr|^nullptr|\\Wclass|^class|\\Wstruct|^struct|\\Wunion|^union|\\Wenum|^enum|\\Wconst|^const|\\Wstatic|^static|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wextern|^extern|\\Winline|^inline|\\Wconstexpr|^constexpr|\\Wmutable|^mutable|\\Wfriend|^friend|\\Wexplicit|^explicit|\\Wvirtual|^virtual|\\Wvolatile|^volatile|\\Wconst|^const|\\Wnoexcept|^noexcept|\\Wconstexpr|^constexpr|\\Wmutable|^mutable|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprivate|^private|\\Wprotected|^protected|\\Wpublic|^public|\\Wthis|^this|\\Wtemplate|^template|\\Wnamespace|^namespace|\\Wusing|^using|\\Woperator|^operator|\\Wtypedef|^typedef|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wasm|^asm|\\W__asm__|^__asm__|\\Wconcept|^concept|\\Wrequires|^requires|\\Wexport|^export|\\Wthread_local|^thread_local|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Watomic_noexcept|^atomic_noexcept|\\Wco_await|^co_await|\\Wco_return|^co_return|\\Wco_yield|^co_yield|\\Wimport|^import|\\Wmodule|^module|\\Wreflexpr|^reflexpr|\\Wsynchronized|^synchronized)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<12>?)+)>)\\s*)?(\\()",
"beginCaptures": {
"1": {
"patterns": [
{
"include": "#scope_resolution_function_call_inner_generated"
}
]
},
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.function.call.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": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"curly_initializer": {
"name": "meta.initialization.cpp",
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<27>?)+)>)\\s*)?(?![\\w<:.]))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\{)",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"12": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"13": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"15": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"17": {
"name": "entity.name.scope-resolution.cpp"
},
"18": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"20": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"name": "entity.name.type.cpp"
},
"26": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"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.arguments.begin.bracket.curly.initializer.cpp"
}
},
"end": "(\\})",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
},
{
"include": "#comma"
}
]
},
"builtin_storage_type_initilizer": {
"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t(?!\\w)))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)[a-zA-Z_]\\w*_t(?!\\w)))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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": {
"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.primitive.cpp storage.type.built-in.primitive.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.cpp storage.type.built-in.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": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.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": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"29": {
"name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"constructor_inline": {
"name": "meta.function.definition.special.constructor.cpp",
"begin": "(^((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:(?:inline|constexpr|mutable|friend|explicit|virtual)((?:(?:(?>\\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)(?=\\()))",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.special.constructor.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": "#functional_specifiers_pre_parameters"
}
]
},
"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": [
{
"include": "#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"15": {
"name": "storage.type.modifier.calling-convention.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": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.function.definition.special.constructor.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"patterns": [
{
"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": "(:)",
"beginCaptures": {
"1": {
"name": "punctuation.separator.initializers.cpp"
}
},
"end": "(?=\\{)",
"patterns": [
{
"contentName": "meta.parameter.initialization.cpp",
"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*)?(\\()",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"contentName": "meta.parameter.initialization.cpp",
"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))(\\{)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"end": "(\\})",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"include": "#comma"
}
]
},
{
"contentName": "meta.function.definition.parameters.special.constructor.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.special.constructor.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.special.constructor.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"constructor_root": {
"name": "meta.function.definition.special.constructor.cpp",
"begin": "(\\s*+((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<14>?)+)>)\\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)))\\16((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\()))",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.special.constructor.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.calling-convention.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.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"
}
]
},
"13": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"15": {
"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"
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"19": {
"name": "comment.block.cpp"
},
"20": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.function.definition.special.constructor.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"patterns": [
{
"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": "(:)",
"beginCaptures": {
"1": {
"name": "punctuation.separator.initializers.cpp"
}
},
"end": "(?=\\{)",
"patterns": [
{
"contentName": "meta.parameter.initialization.cpp",
"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*)?(\\()",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"contentName": "meta.parameter.initialization.cpp",
"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))(\\{)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"end": "(\\})",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"include": "#comma"
}
]
},
{
"contentName": "meta.function.definition.parameters.special.constructor.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.special.constructor.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.special.constructor.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"destructor_inline": {
"name": "meta.function.definition.special.member.destructor.cpp",
"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)))((?:(?:inline|constexpr|mutable|friend|explicit|virtual)((?:(?:(?>\\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)(?=\\()))",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.special.member.destructor.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": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"11": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"15": {
"patterns": [
{
"include": "#functional_specifiers_pre_parameters"
}
]
},
"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": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.function.definition.special.member.destructor.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"patterns": [
{
"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"
}
}
}
]
},
{
"contentName": "meta.function.definition.parameters.special.member.destructor.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
}
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.special.member.destructor.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.special.member.destructor.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"destructor_root": {
"name": "meta.function.definition.special.member.destructor.cpp",
"begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<14>?)+)>)\\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)))~\\16((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\()))",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.special.member.destructor.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.calling-convention.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.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"
}
]
},
"13": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"15": {
"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"
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"19": {
"name": "comment.block.cpp"
},
"20": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.function.definition.special.member.destructor.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"patterns": [
{
"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"
}
}
}
]
},
{
"contentName": "meta.function.definition.parameters.special.member.destructor.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
}
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.special.member.destructor.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.special.member.destructor.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"operators": {
"patterns": [
{
"include": "#sizeof_operator"
},
{
"include": "#alignof_operator"
},
{
"include": "#alignas_operator"
},
{
"include": "#typeid_operator"
},
{
"include": "#noexcept_operator"
},
{
"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"
}
]
},
"wordlike_operators": {
"match": "(?<!\\w)(?:not|compl|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|noexcept)(?!\\w)",
"name": "keyword.operator.wordlike.cpp keyword.operator.$0.cpp"
},
"sizeof_operator": {
"contentName": "meta.arguments.operator.sizeof.cpp",
"begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"alignof_operator": {
"contentName": "meta.arguments.operator.alignof.cpp",
"begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"alignas_operator": {
"contentName": "meta.arguments.operator.alignas.cpp",
"begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"typeid_operator": {
"contentName": "meta.arguments.operator.typeid.cpp",
"begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"noexcept_operator": {
"contentName": "meta.arguments.operator.noexcept.cpp",
"begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"ternary_operator": {
"applyEndPatternLast": true,
"begin": "(\\?)",
"beginCaptures": {
"1": {
"name": "keyword.operator.ternary.cpp"
}
},
"end": "(:)",
"endCaptures": {
"1": {
"name": "keyword.operator.ternary.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#string_context"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"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": "#misc_storage_modifiers"
},
{
"include": "#lambdas"
},
{
"include": "#attributes_context"
},
{
"include": "#parentheses"
},
{
"include": "#function_call"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#square_brackets"
},
{
"include": "#empty_square_brackets"
},
{
"include": "#semicolon"
},
{
"include": "#comma"
}
]
},
"function_pointer": {
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<27>?)+)>)\\s*)?(?![\\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*(\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"12": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"13": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"15": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"17": {
"name": "entity.name.scope-resolution.cpp"
},
"18": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"20": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"name": "entity.name.type.cpp"
},
"26": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"28": {
"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"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.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": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"42": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"43": {
"name": "variable.other.definition.pointer.function.cpp"
},
"44": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"45": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"46": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"47": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"48": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
"end": "(\\))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()",
"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(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<27>?)+)>)\\s*)?(?![\\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*(\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"12": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"13": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"15": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"17": {
"name": "entity.name.scope-resolution.cpp"
},
"18": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"20": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"name": "entity.name.type.cpp"
},
"26": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"28": {
"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"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.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": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"42": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"43": {
"name": "variable.parameter.pointer.function.cpp"
},
"44": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"45": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"46": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"47": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"48": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
"end": "(\\))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()",
"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_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*\\))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)",
"patterns": [
{
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<27>?)+)>)\\s*)?(?![\\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*(\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"12": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"13": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"15": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"17": {
"name": "entity.name.scope-resolution.cpp"
},
"18": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"20": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"name": "entity.name.type.cpp"
},
"26": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"28": {
"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"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.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": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"42": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"43": {
"name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"
},
"44": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"45": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"46": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"47": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"48": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
"end": "(\\))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()",
"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"
}
]
}
]
},
"parameter_or_maybe_value": {
"name": "meta.parameter.cpp",
"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\w)",
"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"
}
]
}
},
"end": "(?:(?=\\))|(,))",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.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": "((?:((?:const|static|volatile|register|restrict|extern))((?:(?:(?>\\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)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t(?!\\w)))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)[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(?<!\\Wconst|^const|\\Wstatic|^static|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wextern|^extern)))((?:(?:(?>\\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": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.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": "storage.type.primitive.cpp storage.type.built-in.primitive.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": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"29": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"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": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"35": {
"name": "entity.name.type.parameter.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"
}
]
}
}
},
{
"include": "#storage_types"
},
{
"include": "#function_call"
},
{
"include": "#scope_resolution_parameter_inner_generated"
},
{
"match": "(?:class|struct|union|enum)",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"end": "(?:(?=\\))|(,))",
"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"
},
{
"name": "meta.bracket.square.array.cpp",
"begin": "(\\[)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
}
},
"end": "(\\])",
"endCaptures": {
"1": {
"name": "punctuation.definition.end.bracket.square.array.type.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(?<!\\Wclass|^class|\\Wstruct|^struct|\\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": {
"name": "meta.parameter.cpp",
"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\w)",
"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"
}
]
}
},
"end": "(?:(?=\\))|(,))",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#function_pointer_parameter"
},
{
"include": "#decltype"
},
{
"include": "#vararg_ellipses"
},
{
"match": "((?:((?:const|static|volatile|register|restrict|extern))((?:(?:(?>\\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)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t(?!\\w)))|((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)[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(?<!\\Wconst|^const|\\Wstatic|^static|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wextern|^extern)))((?:(?:(?>\\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": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"12": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"13": {
"name": "comment.block.cpp"
},
"14": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.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": "storage.type.primitive.cpp storage.type.built-in.primitive.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": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"29": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
"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": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
"35": {
"name": "entity.name.type.parameter.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"
}
]
}
}
},
{
"include": "#storage_types"
},
{
"include": "#scope_resolution_parameter_inner_generated"
},
{
"match": "(?:class|struct|union|enum)",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"end": "(?:(?=\\))|(,))",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"include": "#assignment_operator"
},
{
"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"
},
{
"name": "meta.bracket.square.array.cpp",
"begin": "(\\[)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
}
},
"end": "(\\])",
"endCaptures": {
"1": {
"name": "punctuation.definition.end.bracket.square.array.type.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(?<!\\Wclass|^class|\\Wstruct|^struct|\\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"
}
]
}
}
}
]
},
"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(?!auto[^(?-mix:\\w)]|void[^(?-mix:\\w)]|char[^(?-mix:\\w)]|short[^(?-mix:\\w)]|int[^(?-mix:\\w)]|signed[^(?-mix:\\w)]|unsigned[^(?-mix:\\w)]|long[^(?-mix:\\w)]|float[^(?-mix:\\w)]|double[^(?-mix:\\w)]|bool[^(?-mix:\\w)]|wchar_t[^(?-mix:\\w)]|u_char[^(?-mix:\\w)]|u_short[^(?-mix:\\w)]|u_int[^(?-mix:\\w)]|u_long[^(?-mix:\\w)]|ushort[^(?-mix:\\w)]|uint[^(?-mix:\\w)]|u_quad_t[^(?-mix:\\w)]|quad_t[^(?-mix:\\w)]|qaddr_t[^(?-mix:\\w)]|caddr_t[^(?-mix:\\w)]|daddr_t[^(?-mix:\\w)]|div_t[^(?-mix:\\w)]|dev_t[^(?-mix:\\w)]|fixpt_t[^(?-mix:\\w)]|blkcnt_t[^(?-mix:\\w)]|blksize_t[^(?-mix:\\w)]|gid_t[^(?-mix:\\w)]|in_addr_t[^(?-mix:\\w)]|in_port_t[^(?-mix:\\w)]|ino_t[^(?-mix:\\w)]|key_t[^(?-mix:\\w)]|mode_t[^(?-mix:\\w)]|nlink_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|pid_t[^(?-mix:\\w)]|off_t[^(?-mix:\\w)]|segsz_t[^(?-mix:\\w)]|swblk_t[^(?-mix:\\w)]|uid_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|clock_t[^(?-mix:\\w)]|size_t[^(?-mix:\\w)]|ssize_t[^(?-mix:\\w)]|time_t[^(?-mix:\\w)]|useconds_t[^(?-mix:\\w)]|suseconds_t[^(?-mix:\\w)]|int8_t[^(?-mix:\\w)]|int16_t[^(?-mix:\\w)]|int32_t[^(?-mix:\\w)]|int64_t[^(?-mix:\\w)]|uint8_t[^(?-mix:\\w)]|uint16_t[^(?-mix:\\w)]|uint32_t[^(?-mix:\\w)]|uint64_t[^(?-mix:\\w)]|int_least8_t[^(?-mix:\\w)]|int_least16_t[^(?-mix:\\w)]|int_least32_t[^(?-mix:\\w)]|int_least64_t[^(?-mix:\\w)]|uint_least8_t[^(?-mix:\\w)]|uint_least16_t[^(?-mix:\\w)]|uint_least32_t[^(?-mix:\\w)]|uint_least64_t[^(?-mix:\\w)]|int_fast8_t[^(?-mix:\\w)]|int_fast16_t[^(?-mix:\\w)]|int_fast32_t[^(?-mix:\\w)]|int_fast64_t[^(?-mix:\\w)]|uint_fast8_t[^(?-mix:\\w)]|uint_fast16_t[^(?-mix:\\w)]|uint_fast32_t[^(?-mix:\\w)]|uint_fast64_t[^(?-mix:\\w)]|intptr_t[^(?-mix:\\w)]|uintptr_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\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}))*\\b(?!\\())",
"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"
},
"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": "variable.other.property.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*(\\()",
"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"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"using_namespace": {
"name": "meta.using-namespace.cpp",
"begin": "(?<!\\w)(using)\\s+(namespace)\\s+((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<7>?)+)>)\\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)",
"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"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"8": {
"name": "entity.name.namespace.cpp"
}
},
"end": "(;)",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
}
}
},
"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*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<9>?)+)>)\\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"
},
"8": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"10": {
"name": "entity.name.namespace.cpp"
},
"11": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.declaration.namespace.alias.cpp"
},
"namespace_block": {
"name": "meta.block.namespace.cpp",
"begin": "(((?<!\\w)namespace(?!\\w)))",
"beginCaptures": {
"1": {
"name": "meta.head.namespace.cpp"
},
"2": {
"name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.namespace.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#attributes_context"
},
{
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<5>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.namespace.cpp"
},
"7": {
"name": "punctuation.separator.scope-resolution.namespace.block.cpp"
},
"8": {
"name": "storage.modifier.inline.cpp"
}
}
}
]
},
{
"name": "meta.body.namespace.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"name": "meta.tail.namespace.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"lambdas": {
"begin": "((?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[))((?:[^\\]\\[]*\\[.*?\\](?!\\s*\\[)[^\\]\\[]*?)*[^\\]\\[]*?)(\\](?!\\[)))",
"beginCaptures": {
"2": {
"name": "punctuation.definition.capture.begin.lambda.cpp"
},
"3": {
"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"
}
]
},
"4": {
"name": "punctuation.definition.capture.end.lambda.cpp"
}
},
"end": "(?<=})",
"patterns": [
{
"name": "meta.function.definition.parameters.lambda.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.definition.parameters.begin.lambda.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.definition.parameters.end.lambda.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
}
]
},
{
"match": "(?<!\\w)(?:mutable|constexpr|consteval)(?!\\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"
}
}
},
{
"name": "meta.function.definition.body.lambda.cpp",
"begin": "(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.lambda.cpp"
}
},
"end": "(\\})",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.lambda.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
}
]
},
"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(?:__)?\\(\\(.*?\\)\\))|__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"
},
"enum_block": {
"name": "meta.block.enum.cpp",
"begin": "(((?<!\\w)enum(?!\\w))(?:\\s+(class|struct))?(?:(?:\\s+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<15>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<15>?)+)>)\\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)))?)",
"beginCaptures": {
"1": {
"name": "meta.head.enum.cpp"
},
"2": {
"name": "storage.type.enum.cpp"
},
"3": {
"name": "storage.type.enum.enum-key.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"5": {
"name": "entity.name.type.enum.cpp"
},
"6": {
"name": "punctuation.separator.colon.type-specifier.cpp"
},
"8": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"11": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {
"name": "entity.name.scope-resolution.cpp"
},
"14": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"16": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"17": {
"name": "storage.type.integral.$17.cpp"
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.enum.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"name": "meta.body.enum.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.enum.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#enumerator_list"
},
{
"include": "#comments"
},
{
"include": "#comma"
},
{
"include": "#semicolon"
}
]
},
{
"name": "meta.tail.enum.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"inheritance_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"match": ",",
"name": "punctuation.separator.delimiter.comma.inheritance.cpp"
},
{
"match": "(?<!\\w)(?:private|protected|public)(?!\\w)",
"name": "storage.type.modifier.access.$0.cpp"
},
{
"match": "(?<!\\w)virtual(?!\\w)",
"name": "storage.type.modifier.virtual.cpp"
},
{
"match": "(?<=virtual|private|protected|public|,|:)\\s*(?!(?:(?:private|protected|public)|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<27>?)+)>)\\s*)?(?![\\w<:.]))",
"captures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"12": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"13": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"15": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"17": {
"name": "entity.name.scope-resolution.cpp"
},
"18": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"20": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"name": "entity.name.type.cpp"
},
"26": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
}
}
]
},
"class_block": {
"name": "meta.block.class.cpp",
"begin": "((((?<!\\w)class(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.class.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.class.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.class.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.class.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"struct_block": {
"name": "meta.block.struct.cpp",
"begin": "((((?<!\\w)struct(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.struct.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.struct.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.struct.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.struct.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"union_block": {
"name": "meta.block.union.cpp",
"begin": "((((?<!\\w)union(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.union.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.union.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.union.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.union.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"extern_block": {
"name": "meta.block.extern.cpp",
"begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(extern)(?=\\s*\\\"))",
"beginCaptures": {
"1": {
"name": "meta.head.extern.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.extern.cpp"
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.extern.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"name": "meta.body.extern.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.extern.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"name": "meta.tail.extern.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
},
{
"include": "$self"
}
]
},
"typedef_class": {
"begin": "((?<!\\w)typedef(?!\\w))\\s*(?=(?<!\\w)class(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)",
"patterns": [
{
"name": "meta.block.class.cpp",
"begin": "((((?<!\\w)class(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.class.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.class.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.class.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.class.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"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_struct": {
"begin": "((?<!\\w)typedef(?!\\w))\\s*(?=(?<!\\w)struct(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)",
"patterns": [
{
"name": "meta.block.struct.cpp",
"begin": "((((?<!\\w)struct(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.struct.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.struct.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.struct.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.struct.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"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))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)",
"patterns": [
{
"name": "meta.block.union.cpp",
"begin": "((((?<!\\w)union(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.union.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.union.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.union.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.union.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"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": ","
}
]
}
]
}
]
},
"struct_declare": {
"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)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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)(?!:)",
"captures": {
"1": {
"name": "storage.type.struct.declare.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": "entity.name.type.struct.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": {
"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": [
{
"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": "variable.other.object.declare.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
"union_declare": {
"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)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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)(?!:)",
"captures": {
"1": {
"name": "storage.type.union.declare.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": "entity.name.type.union.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": {
"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": [
{
"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": "variable.other.object.declare.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
"enum_declare": {
"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)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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)(?!:)",
"captures": {
"1": {
"name": "storage.type.enum.declare.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": "entity.name.type.enum.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": {
"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": [
{
"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": "variable.other.object.declare.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
"class_declare": {
"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)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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)(?!:)",
"captures": {
"1": {
"name": "storage.type.class.declare.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": "entity.name.type.class.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": {
"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": [
{
"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": "variable.other.object.declare.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
"standard_declares": {
"patterns": [
{
"include": "#struct_declare"
},
{
"include": "#union_declare"
},
{
"include": "#enum_declare"
},
{
"include": "#class_declare"
}
]
},
"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": {
"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": "entity.name.type.struct.parameter.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": "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"
}
]
},
"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": {
"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": {
"name": "variable.other.object.declare.cpp"
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"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": {
"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": "entity.name.type.enum.parameter.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": "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"
}
]
},
"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": {
"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": {
"name": "variable.other.object.declare.cpp"
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"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": {
"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": "entity.name.type.union.parameter.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": "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"
}
]
},
"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": {
"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": {
"name": "variable.other.object.declare.cpp"
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"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": {
"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": "entity.name.type.class.parameter.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": "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"
}
]
},
"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": {
"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": {
"name": "variable.other.object.declare.cpp"
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
}
},
"over_qualified_types": {
"patterns": [
{
"include": "#parameter_struct"
},
{
"include": "#parameter_enum"
},
{
"include": "#parameter_union"
},
{
"include": "#parameter_class"
}
]
},
"assembly": {
"name": "meta.asm.cpp",
"begin": "(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)\\s*(\\()",
"beginCaptures": {
"1": {
"name": "storage.type.asm.cpp"
},
"2": {
"name": "storage.modifier.cpp"
},
"3": {
"name": "punctuation.section.parens.begin.bracket.round.assembly.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parens.end.bracket.round.assembly.cpp"
}
},
"patterns": [
{
"name": "string.quoted.double.cpp",
"contentName": "meta.embedded.assembly.cpp",
"begin": "(R?)(\")",
"beginCaptures": {
"1": {
"name": "meta.encoding.cpp"
},
"2": {
"name": "punctuation.definition.string.begin.assembly.cpp"
}
},
"end": "(\")",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.assembly.cpp"
}
},
"patterns": [
{
"include": "source.asm"
},
{
"include": "source.x86"
},
{
"include": "source.x86_64"
},
{
"include": "source.arm"
},
{
"include": "#backslash_escapes"
},
{
"include": "#string_escaped_char"
},
{
"match": "(?=not)possible"
}
]
},
{
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": ":",
"name": "punctuation.separator.delimiter.colon.assembly.cpp"
},
{
"include": "#comments_context"
},
{
"include": "#comments"
}
]
},
"backslash_escapes": {
"match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,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.cpp"
},
"square_brackets": {
"name": "meta.bracket.square.access.cpp",
"begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
"beginCaptures": {
"1": {
"name": "variable.other.object.cpp"
},
"2": {
"name": "punctuation.definition.begin.bracket.square.cpp"
}
},
"end": "\\]",
"endCaptures": {
"0": {
"name": "punctuation.definition.end.bracket.square.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"empty_square_brackets": {
"name": "storage.modifier.array.bracket.square.cpp",
"match": "(?-mix:(?-mix:(?<!delete))\\\\[\\\\s*\\\\])"
},
"misc_storage_modifiers": {
"match": "\\b(?:export|mutable|typename|thread_local|register|restrict|static|volatile|inline)\\b",
"name": "storage.modifier.$0.cpp"
},
"string_context": {
"patterns": [
{
"name": "string.quoted.double.cpp",
"begin": "(((?:u|u8|U|L)?)\")",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.cpp"
},
"2": {
"name": "meta.encoding.cpp"
}
},
"end": "(\")",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.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": "\\\\x[0-9a-fA-F]{2,2}",
"name": "constant.character.escape.cpp"
},
{
"include": "#string_escapes_context_c"
}
]
},
{
"name": "string.quoted.single.cpp",
"begin": "((?<![0-9A-Fa-f])((?:u|u8|U|L)?)')",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.cpp"
},
"2": {
"name": "meta.encoding.cpp"
}
},
"end": "(')",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"patterns": [
{
"include": "#string_escapes_context_c"
},
{
"include": "#line_continuation_character"
}
]
},
{
"patterns": [
{
"name": "string.quoted.double.raw.regex.cpp",
"begin": "(((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\()",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.cpp"
},
"2": {
"name": "meta.encoding.cpp"
}
},
"end": "(\\)(?:(?:_r|re)|regex)\\\")",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"patterns": [
{
"include": "source.regexp.python"
}
]
},
{
"name": "string.quoted.double.raw.sql.cpp",
"begin": "(((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL|)|d[dm]l)\\()",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.cpp"
},
"2": {
"name": "meta.encoding.cpp"
}
},
"end": "(\\)(?:[pP]?(?:sql|SQL|)|d[dm]l)\\\")",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.cpp"
}
},
"patterns": [
{
"include": "source.sql"
}
]
},
{
"begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
},
"1": {
"name": "meta.encoding.cpp"
},
"3": {
"name": "invalid.illegal.delimiter-too-long.cpp"
}
},
"end": "\\)\\2(\\3)\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
},
"1": {
"name": "invalid.illegal.delimiter-too-long.cpp"
}
},
"name": "string.quoted.double.raw.cpp"
}
]
}
]
},
"block": {
"name": "meta.block.cpp",
"begin": "({)",
"beginCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.cpp"
}
},
"end": "(}|(?=\\s*#\\s*(?:elif|else|endif)\\b))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
"line_continuation_character": {
"match": "\\\\\\n",
"name": "constant.character.escape.line-continuation.cpp"
},
"parentheses": {
"name": "meta.parens.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parens.begin.bracket.round.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parens.end.bracket.round.cpp"
}
},
"patterns": [
{
"include": "#over_qualified_types"
},
{
"match": "(?<!:):(?!:)",
"name": "punctuation.separator.colon.range-based.cpp"
},
{
"include": "#evaluation_context"
}
]
},
"string_context_c": {
"patterns": [
{
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.double.cpp",
"patterns": [
{
"include": "#string_escapes_context_c"
},
{
"include": "#line_continuation_character"
}
]
},
{
"begin": "(?-mix:(?<![\\da-fA-F])')",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.cpp"
}
},
"end": "'",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.cpp"
}
},
"name": "string.quoted.single.cpp",
"patterns": [
{
"include": "#string_escapes_context_c"
},
{
"include": "#line_continuation_character"
}
]
}
]
},
"string_escapes_context_c": {
"patterns": [
{
"include": "#backslash_escapes"
},
{
"match": "\\\\.",
"name": "invalid.illegal.unknown-escape.cpp"
},
{
"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.cpp"
}
]
},
"vararg_ellipses": {
"match": "(?<!\\.)\\.\\.\\.(?!\\.)",
"name": "punctuation.vararg-ellipses.cpp"
},
"macro_safe_constructor_root": {
"name": "meta.function.definition.special.constructor.cpp",
"begin": "(\\s*+((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<14>?)+)>)\\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)))\\16((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\()))",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.special.constructor.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.calling-convention.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.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"
}
]
},
"13": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"15": {
"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"
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"19": {
"name": "comment.block.cpp"
},
"20": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"patterns": [
{
"name": "meta.head.function.definition.special.constructor.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"patterns": [
{
"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": "(:)",
"beginCaptures": {
"1": {
"name": "punctuation.separator.initializers.cpp"
}
},
"end": "(?=\\{)",
"patterns": [
{
"contentName": "meta.parameter.initialization.cpp",
"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*)?(\\()",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"4": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"contentName": "meta.parameter.initialization.cpp",
"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))(\\{)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
},
"2": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
"end": "(\\})",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"include": "#comma"
}
]
},
{
"contentName": "meta.function.definition.parameters.special.constructor.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.special.constructor.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.special.constructor.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_destructor_root": {
"name": "meta.function.definition.special.member.destructor.cpp",
"begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<14>?)+)>)\\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)))~\\16((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\()))",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.special.member.destructor.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.calling-convention.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.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"
}
]
},
"13": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"15": {
"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"
}
]
},
"17": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"18": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"19": {
"name": "comment.block.cpp"
},
"20": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"26": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"27": {
"name": "comment.block.cpp"
},
"28": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"patterns": [
{
"name": "meta.head.function.definition.special.member.destructor.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"patterns": [
{
"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"
}
}
}
]
},
{
"contentName": "meta.function.definition.parameters.special.member.destructor.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
}
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.special.member.destructor.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.special.member.destructor.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_function_definition": {
"name": "meta.function.definition.cpp",
"begin": "((?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?<!\\w)template(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?<!\\w)(?:(?:inline|constexpr|mutable|friend|explicit|virtual)|(?:const|static|volatile|register|restrict|extern))(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<69>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<69>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<69>?)+)>)\\s*)?(?![\\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)))((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<69>?)+)>)\\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(?<!\\Wnot|^not|\\Wcompl|^compl|\\Wsizeof|^sizeof|\\Wnew|^new|\\Wdelete|^delete|\\Wnot_eq|^not_eq|\\Wbitand|^bitand|\\Wxor|^xor|\\Wbitor|^bitor|\\Wand|^and|\\Wor|^or|\\Wthrow|^throw|\\Wand_eq|^and_eq|\\Wxor_eq|^xor_eq|\\Wor_eq|^or_eq|\\Walignof|^alignof|\\Walignas|^alignas|\\Wtypeid|^typeid|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wstatic_cast|^static_cast|\\Wdynamic_cast|^dynamic_cast|\\Wconst_cast|^const_cast|\\Wreinterpret_cast|^reinterpret_cast|\\Wwhile|^while|\\Wfor|^for|\\Wdo|^do|\\Wif|^if|\\Welse|^else|\\Wgoto|^goto|\\Wswitch|^switch|\\Wtry|^try|\\Wcatch|^catch|\\Wreturn|^return|\\Wbreak|^break|\\Wcase|^case|\\Wcontinue|^continue|\\Wdefault|^default|\\Wauto|^auto|\\Wvoid|^void|\\Wchar|^char|\\Wshort|^short|\\Wint|^int|\\Wsigned|^signed|\\Wunsigned|^unsigned|\\Wlong|^long|\\Wfloat|^float|\\Wdouble|^double|\\Wbool|^bool|\\Wwchar_t|^wchar_t|\\Wu_char|^u_char|\\Wu_short|^u_short|\\Wu_int|^u_int|\\Wu_long|^u_long|\\Wushort|^ushort|\\Wuint|^uint|\\Wu_quad_t|^u_quad_t|\\Wquad_t|^quad_t|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wdaddr_t|^daddr_t|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wfixpt_t|^fixpt_t|\\Wblkcnt_t|^blkcnt_t|\\Wblksize_t|^blksize_t|\\Wgid_t|^gid_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wmode_t|^mode_t|\\Wnlink_t|^nlink_t|\\Wid_t|^id_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wuid_t|^uid_t|\\Wid_t|^id_t|\\Wclock_t|^clock_t|\\Wsize_t|^size_t|\\Wssize_t|^ssize_t|\\Wtime_t|^time_t|\\Wuseconds_t|^useconds_t|\\Wsuseconds_t|^suseconds_t|\\Wint8_t|^int8_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wint_least8_t|^int_least8_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_least8_t|^uint_least8_t|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wint_fast8_t|^int_fast8_t|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wuint_fast8_t|^uint_fast8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wintptr_t|^intptr_t|\\Wuintptr_t|^uintptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\WNULL|^NULL|\\Wtrue|^true|\\Wfalse|^false|\\Wnullptr|^nullptr|\\Wclass|^class|\\Wstruct|^struct|\\Wunion|^union|\\Wenum|^enum|\\Wconst|^const|\\Wstatic|^static|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wextern|^extern|\\Winline|^inline|\\Wconstexpr|^constexpr|\\Wmutable|^mutable|\\Wfriend|^friend|\\Wexplicit|^explicit|\\Wvirtual|^virtual|\\Wvolatile|^volatile|\\Wconst|^const|\\Wnoexcept|^noexcept|\\Wconstexpr|^constexpr|\\Wmutable|^mutable|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprivate|^private|\\Wprotected|^protected|\\Wpublic|^public|\\Wthis|^this|\\Wtemplate|^template|\\Wnamespace|^namespace|\\Wusing|^using|\\Woperator|^operator|\\Wtypedef|^typedef|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wasm|^asm|\\W__asm__|^__asm__|\\Wconcept|^concept|\\Wrequires|^requires|\\Wexport|^export|\\Wthread_local|^thread_local|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Watomic_noexcept|^atomic_noexcept|\\Wco_await|^co_await|\\Wco_return|^co_return|\\Wco_yield|^co_yield|\\Wimport|^import|\\Wmodule|^module|\\Wreflexpr|^reflexpr|\\Wsynchronized|^synchronized)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\())",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.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.template.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.modifier.$11.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": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"17": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"18": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"19": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"20": {
"name": "comment.block.cpp"
},
"21": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"22": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"23": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"24": {
"name": "comment.block.cpp"
},
"25": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"27": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"28": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"30": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"32": {
"name": "entity.name.scope-resolution.cpp"
},
"33": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"35": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.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": {
"name": "entity.name.type.cpp"
},
"41": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"43": {
"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"
}
]
},
"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": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"53": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"54": {
"name": "comment.block.cpp"
},
"55": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"56": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"57": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"58": {
"name": "comment.block.cpp"
},
"59": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"60": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"61": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"62": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"63": {
"name": "comment.block.cpp"
},
"64": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"65": {
"patterns": [
{
"include": "#scope_resolution_function_definition_inner_generated"
}
]
},
"66": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
"68": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"70": {
"name": "entity.name.function.definition.cpp"
},
"71": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"72": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"73": {
"name": "comment.block.cpp"
},
"74": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"patterns": [
{
"name": "meta.head.function.definition.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"contentName": "meta.function.definition.parameters.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#parameter_or_maybe_value"
},
{
"include": "#comma"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_operator_overload": {
"name": "meta.function.definition.special.operator-overload.cpp",
"begin": "((?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<67>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<67>?)+)>)\\s*)?(?![\\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)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(operator)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(?:(?:((?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|new|new\\[\\]|delete|delete\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?<!\\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)))(?=\\<|\\())",
"beginCaptures": {
"1": {
"name": "meta.head.function.definition.special.operator-overload.cpp"
},
"2": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"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"
}
]
},
"13": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"14": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"16": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"18": {
"name": "entity.name.scope-resolution.cpp"
},
"19": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"21": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"22": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"23": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"24": {
"name": "comment.block.cpp"
},
"25": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"26": {
"name": "entity.name.type.cpp"
},
"27": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"29": {
"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"
}
]
},
"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": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"35": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"36": {
"name": "comment.block.cpp"
},
"37": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"38": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"39": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"40": {
"name": "comment.block.cpp"
},
"41": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"42": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"43": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"44": {
"name": "comment.block.cpp"
},
"45": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"46": {
"name": "storage.type.modifier.calling-convention.cpp"
},
"47": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"48": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"49": {
"name": "comment.block.cpp"
},
"50": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"51": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"52": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"53": {
"name": "comment.block.cpp"
},
"54": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"55": {
"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"
}
]
},
"57": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"59": {
"name": "keyword.other.operator.overload.cpp"
},
"60": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"61": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"62": {
"name": "comment.block.cpp"
},
"63": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"64": {
"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"
}
]
},
"66": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"68": {
"name": "entity.name.operator.cpp"
},
"69": {
"name": "entity.name.operator.type.cpp"
},
"70": {
"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"
}
]
},
"71": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"72": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"73": {
"name": "comment.block.cpp"
},
"74": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"75": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"76": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"77": {
"name": "comment.block.cpp"
},
"78": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"79": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"80": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"81": {
"name": "comment.block.cpp"
},
"82": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"83": {
"name": "entity.name.operator.type.array.cpp"
},
"84": {
"name": "entity.name.operator.custom-literal.cpp"
},
"85": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"86": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"87": {
"name": "comment.block.cpp"
},
"88": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"89": {
"name": "entity.name.operator.custom-literal.cpp"
},
"90": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"91": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"92": {
"name": "comment.block.cpp"
},
"93": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"patterns": [
{
"name": "meta.head.function.definition.special.operator-overload.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#template_call_range"
},
{
"contentName": "meta.function.definition.parameters.special.operator-overload.cpp",
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"
}
},
"patterns": [
{
"include": "#function_parameter_context"
},
{
"include": "#evaluation_context"
}
]
},
{
"include": "#qualifiers_and_specifiers_post_parameters"
},
{
"include": "$self"
}
]
},
{
"name": "meta.body.function.definition.special.operator-overload.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
{
"name": "meta.tail.function.definition.special.operator-overload.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_using_namespace": {
"name": "meta.using-namespace.cpp",
"begin": "(?<!\\w)(using)\\s+(namespace)\\s+((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<7>?)+)>)\\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)",
"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"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"8": {
"name": "entity.name.namespace.cpp"
}
},
"end": "(;)|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
}
}
},
"macro_safe_namespace_block": {
"name": "meta.block.namespace.cpp",
"begin": "(((?<!\\w)namespace(?!\\w)))",
"beginCaptures": {
"1": {
"name": "meta.head.namespace.cpp"
},
"2": {
"name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
}
},
"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"patterns": [
{
"name": "meta.head.namespace.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#attributes_context"
},
{
"match": "((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<5>?)+)>)\\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"
},
"4": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"6": {
"name": "entity.name.namespace.cpp"
},
"7": {
"name": "punctuation.separator.scope-resolution.namespace.block.cpp"
},
"8": {
"name": "storage.modifier.inline.cpp"
}
}
}
]
},
{
"name": "meta.body.namespace.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"name": "meta.tail.namespace.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_extern_block": {
"name": "meta.block.extern.cpp",
"begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(extern)(?=\\s*\\\"))",
"beginCaptures": {
"1": {
"name": "meta.head.extern.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.extern.cpp"
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.extern.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"name": "meta.body.extern.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.extern.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"name": "meta.tail.extern.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
},
{
"include": "$self"
}
]
},
"macro_safe_typedef_class": {
"begin": "((?<!\\w)typedef(?!\\w))\\s*(?=(?<!\\w)class(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)|(?<!\\\\)$",
"patterns": [
{
"name": "meta.block.class.cpp",
"begin": "((((?<!\\w)class(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.class.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.class.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.class.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.class.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"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": ","
}
]
}
]
}
]
},
"macro_safe_typedef_struct": {
"begin": "((?<!\\w)typedef(?!\\w))\\s*(?=(?<!\\w)struct(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)|(?<!\\\\)$",
"patterns": [
{
"name": "meta.block.struct.cpp",
"begin": "((((?<!\\w)struct(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.struct.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.struct.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.struct.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.struct.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"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": ","
}
]
}
]
}
]
},
"macro_safe_typedef_union": {
"begin": "((?<!\\w)typedef(?!\\w))\\s*(?=(?<!\\w)union(?!\\w))",
"beginCaptures": {
"1": {
"name": "keyword.other.typedef.cpp"
}
},
"end": "(?<=;)|(?<!\\\\)$",
"patterns": [
{
"name": "meta.block.union.cpp",
"begin": "((((?<!\\w)union(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.union.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.union.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.union.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.union.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"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": ","
}
]
}
]
}
]
},
"macro_safe_class_block": {
"name": "meta.block.class.cpp",
"begin": "((((?<!\\w)class(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.class.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.class.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.class.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.class.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_struct_block": {
"name": "meta.block.struct.cpp",
"begin": "((((?<!\\w)struct(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.struct.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.struct.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.struct.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.struct.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_union_block": {
"name": "meta.block.union.cpp",
"begin": "((((?<!\\w)union(?!\\w))(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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)))(final)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)((?>[^{]*)))?))",
"beginCaptures": {
"1": {
"name": "meta.head.union.cpp"
},
"3": {
"name": "storage.type.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"5": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"6": {
"name": "comment.block.cpp"
},
"7": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"8": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"11": {
"name": "comment.block.cpp"
},
"12": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"13": {
"name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
},
"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": {
"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": {
"name": "entity.name.type.$3.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": {
"name": "storage.type.modifier.final.cpp"
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"37": {
"name": "punctuation.separator.colon.inheritance.cpp"
},
"38": {
"patterns": [
{
"include": "#inheritance_context"
}
]
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.union.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#inheritance_context"
},
{
"include": "#template_call_range"
}
]
},
{
"name": "meta.body.union.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
"patterns": [
{
"include": "#function_pointer"
},
{
"include": "#static_assert"
},
{
"include": "#constructor_inline"
},
{
"include": "#destructor_inline"
},
{
"include": "$self"
}
]
},
{
"name": "meta.tail.union.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_enum_block": {
"name": "meta.block.enum.cpp",
"begin": "(((?<!\\w)enum(?!\\w))(?:\\s+(class|struct))?(?:(?:\\s+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__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*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<15>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<15>?)+)>)\\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)))?)",
"beginCaptures": {
"1": {
"name": "meta.head.enum.cpp"
},
"2": {
"name": "storage.type.enum.cpp"
},
"3": {
"name": "storage.type.enum.enum-key.$3.cpp"
},
"4": {
"patterns": [
{
"include": "#attributes_context"
},
{
"include": "#number_literal"
}
]
},
"5": {
"name": "entity.name.type.enum.cpp"
},
"6": {
"name": "punctuation.separator.colon.type-specifier.cpp"
},
"8": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"9": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"11": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"13": {
"name": "entity.name.scope-resolution.cpp"
},
"14": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"16": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"17": {
"name": "storage.type.integral.$17.cpp"
}
},
"end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
},
"2": {
"name": "punctuation.terminator.statement.cpp"
}
},
"patterns": [
{
"name": "meta.head.enum.cpp",
"begin": "\\G ?",
"end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"name": "meta.body.enum.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
"end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.enum.cpp"
}
},
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#enumerator_list"
},
{
"include": "#comments"
},
{
"include": "#comma"
},
{
"include": "#semicolon"
}
]
},
{
"name": "meta.tail.enum.cpp",
"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
}
]
}
]
},
"macro_safe_template_definition": {
"name": "meta.template.definition.cpp",
"begin": "(?<!\\w)(template)\\s*(<)",
"beginCaptures": {
"1": {
"name": "storage.type.template.cpp"
},
"2": {
"name": "punctuation.section.angle-brackets.start.template.definition.cpp"
}
},
"end": "(>)|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.section.angle-brackets.end.template.definition.cpp"
}
},
"patterns": [
{
"begin": "((?<=\\w)\\s*<)",
"beginCaptures": {
"1": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"end": "(>)",
"endCaptures": {
"1": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
"patterns": [
{
"include": "#template_call_context"
}
]
},
{
"include": "#template_definition_context"
}
]
},
"macro_safe_block": {
"name": "meta.block.cpp",
"begin": "({)",
"beginCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.cpp"
}
},
"end": "(}|(?=\\s*#\\s*(?:elif|else|endif)\\b))|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.cpp"
}
},
"patterns": [
{
"include": "#function_body_context"
}
]
},
"macro_safe_static_assert": {
"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()",
"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"
}
},
"end": "(\\))|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp"
}
},
"patterns": [
{
"name": "meta.static_assert.message.cpp",
"begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
"beginCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
"end": "(?=\\))",
"patterns": [
{
"include": "#string_context"
},
{
"include": "#string_context_c"
}
]
},
{
"include": "#evaluation_context"
}
]
},
"macro_safe_assembly": {
"name": "meta.asm.cpp",
"begin": "(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)\\s*(\\()",
"beginCaptures": {
"1": {
"name": "storage.type.asm.cpp"
},
"2": {
"name": "storage.modifier.cpp"
},
"3": {
"name": "punctuation.section.parens.begin.bracket.round.assembly.cpp"
}
},
"end": "(\\))|(?<!\\\\)$",
"endCaptures": {
"1": {
"name": "punctuation.section.parens.end.bracket.round.assembly.cpp"
}
},
"patterns": [
{
"name": "string.quoted.double.cpp",
"contentName": "meta.embedded.assembly.cpp",
"begin": "(R?)(\")",
"beginCaptures": {
"1": {
"name": "meta.encoding.cpp"
},
"2": {
"name": "punctuation.definition.string.begin.assembly.cpp"
}
},
"end": "(\")",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.assembly.cpp"
}
},
"patterns": [
{
"include": "source.asm"
},
{
"include": "source.x86"
},
{
"include": "source.x86_64"
},
{
"include": "source.arm"
},
{
"include": "#backslash_escapes"
},
{
"include": "#string_escaped_char"
},
{
"match": "(?=not)possible"
}
]
},
{
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp"
}
},
"patterns": [
{
"include": "#evaluation_context"
}
]
},
{
"match": ":",
"name": "punctuation.separator.delimiter.colon.assembly.cpp"
},
{
"include": "#comments_context"
},
{
"include": "#comments"
}
]
},
"macro_safe_function_pointer": {
"begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\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}))*))\\s*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?<!<)<(?!<)(?>(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\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<27>?)+)>)\\s*)?(?![\\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*(\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?<!\\w)(?:class|struct|union|enum)(?!\\w)",
"name": "storage.type.$0.cpp"
},
{
"include": "#attributes_context"
},
{
"include": "#function_type"
},
{
"include": "#storage_types"
},
{
"include": "#number_literal"
},
{
"include": "#string_context_c"
},
{
"include": "#comma"
},
{
"include": "#scope_resolution_inner_generated"
},
{
"include": "#template_call_range"
},
{
"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"
}
]
},
"12": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
"13": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"15": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"17": {
"name": "entity.name.scope-resolution.cpp"
},
"18": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"20": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
"21": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"22": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"23": {
"name": "comment.block.cpp"
},
"24": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"25": {
"name": "entity.name.type.cpp"
},
"26": {
"name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
},
"28": {
"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"
}
]
},
"29": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"30": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"31": {
"name": "comment.block.cpp"
},
"32": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.cpp"
}
]
},
"33": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
"34": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"35": {
"name": "comment.block.cpp"
},
"36": {
"patterns": [
{
"match": "\\*\\/",
"name": "comment.block.cpp punctuation.definition.comment.end.cpp"
},
{
"match": "\\*",
"name": "comment.block.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": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"42": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
"43": {
"name": "variable.other.definition.pointer.function.cpp"
},
"44": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
"45": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
"46": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
"47": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
"48": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
"end": "(\\))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()|(?<!\\\\)$",
"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"
}
]
},
"macro_context": {
"patterns": [
{
"include": "#ever_present_context"
},
{
"include": "#macro_safe_constructor_root"
},
{
"include": "#macro_safe_destructor_root"
},
{
"include": "#macro_safe_function_definition"
},
{
"include": "#macro_safe_operator_overload"
},
{
"include": "#macro_safe_using_namespace"
},
{
"include": "#type_alias"
},
{
"include": "#using_name"
},
{
"include": "#namespace_alias"
},
{
"include": "#macro_safe_namespace_block"
},
{
"include": "#macro_safe_extern_block"
},
{
"include": "#macro_safe_typedef_class"
},
{
"include": "#macro_safe_typedef_struct"
},
{
"include": "#macro_safe_typedef_union"
},
{
"include": "#typedef_keyword"
},
{
"include": "#standard_declares"
},
{
"include": "#macro_safe_class_block"
},
{
"include": "#macro_safe_struct_block"
},
{
"include": "#macro_safe_union_block"
},
{
"include": "#macro_safe_enum_block"
},
{
"include": "#template_isolated_definition"
},
{
"include": "#macro_safe_template_definition"
},
{
"include": "#access_control_keywords"
},
{
"include": "#macro_safe_block"
},
{
"include": "#macro_safe_static_assert"
},
{
"include": "#macro_safe_assembly"
},
{
"include": "#macro_safe_function_pointer"
},
{
"include": "#evaluation_context"
},
{
"include": "#macro_argument"
}
]
}
}
}