diff --git a/language_tags/cpp.txt b/language_tags/cpp.txt index 64fb4404..a9bef526 100644 --- a/language_tags/cpp.txt +++ b/language_tags/cpp.txt @@ -1,10 +1,4 @@ comment.block.cpp -comment.block.preprocessor.elif-branch.cpp -comment.block.preprocessor.elif-branch.in-block.cpp -comment.block.preprocessor.else-branch.cpp -comment.block.preprocessor.else-branch.in-block.cpp -comment.block.preprocessor.if-branch.cpp -comment.block.preprocessor.if-branch.in-block.cpp comment.line.block.cpp comment.line.double-slash.cpp constant.character.escape.cpp @@ -17,12 +11,10 @@ constant.numeric.exponent.decimal.cpp constant.numeric.exponent.hexadecimal.cpp constant.numeric.hexadecimal.cpp constant.numeric.octal.cpp -constant.numeric.preprocessor.cpp constant.other.placeholder.cpp entity.name.function.call.cpp entity.name.function.call.initializer.cpp entity.name.function.constructor.cpp -entity.name.function.cpp entity.name.function.definition.cpp entity.name.function.definition.special.constructor.cpp entity.name.function.definition.special.member.destructor.cpp @@ -317,6 +309,7 @@ entity.name.type.destructor.cpp entity.name.type.enum.cpp entity.name.type.enum.parameter.cpp entity.name.type.parameter.cpp +entity.name.type.pointer.function.cpp entity.name.type.struct.cpp entity.name.type.struct.parameter.cpp entity.name.type.template.cpp @@ -326,18 +319,18 @@ entity.other.attribute-name.pragma.preprocessor.cpp entity.other.attribute.$0.cpp invalid.illegal.constant.numeric.cpp invalid.illegal.delimiter-too-long.cpp -invalid.illegal.macro-name.cpp invalid.illegal.reference-type.cpp invalid.illegal.unexpected.punctuation.definition.comment.end.cpp invalid.illegal.unknown-escape.cpp keyword.control.$5.cpp keyword.control.case.cpp keyword.control.default.cpp -keyword.control.directive.$0.cpp +keyword.control.directive.$6.cpp keyword.control.directive.$7.cpp -keyword.control.directive.conditional.cpp +keyword.control.directive.conditional.$7.cpp +keyword.control.directive.conditional.defined.cpp keyword.control.directive.define.cpp -keyword.control.directive.diagnostic.$3.cpp +keyword.control.directive.diagnostic.$7.cpp keyword.control.directive.line.cpp keyword.control.directive.pragma.cpp keyword.control.directive.pragma.pragma-mark.cpp @@ -422,6 +415,7 @@ meta.body.union.cpp meta.bracket.square.access.cpp meta.bracket.square.array.cpp meta.conditional.case.cpp +meta.conditional.preprocessor.cpp meta.conditional.switch.cpp meta.declaration.namespace.alias.cpp meta.declaration.namespace.alias.value.cpp @@ -430,7 +424,6 @@ meta.declaration.type.alias.value.unknown.cpp meta.embedded.assembly.cpp meta.encoding.cpp meta.enum.definition.cpp -meta.function.cpp meta.function.definition.body.lambda.cpp meta.function.definition.cpp meta.function.definition.parameters.cpp @@ -457,13 +450,14 @@ meta.lambda.capture.cpp meta.parameter.cpp meta.parameter.initialization.cpp meta.parens.cpp -meta.preprocessor.cpp +meta.parens.preprocessor.conditional.cpp meta.preprocessor.diagnostic.cpp meta.preprocessor.include.cpp +meta.preprocessor.line.cpp meta.preprocessor.macro.cpp meta.preprocessor.pragma.cpp +meta.preprocessor.undef.cpp meta.qualified_type.cpp -meta.section.cpp meta.static_assert.message.cpp meta.tail.class.cpp meta.tail.enum.cpp @@ -507,7 +501,6 @@ punctuation.section.angle-brackets.end.template.call.cpp punctuation.section.angle-brackets.end.template.definition.cpp punctuation.section.angle-brackets.start.template.definition.cpp punctuation.section.arguments.begin.bracket.curly.initializer.cpp -punctuation.section.arguments.begin.bracket.round.cpp punctuation.section.arguments.begin.bracket.round.decltype.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp @@ -520,7 +513,6 @@ punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp punctuation.section.arguments.begin.bracket.round.static_assert.cpp punctuation.section.arguments.end.bracket.curly.initializer.cpp -punctuation.section.arguments.end.bracket.round.cpp punctuation.section.arguments.end.bracket.round.decltype.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp @@ -575,6 +567,7 @@ punctuation.section.parens.begin.bracket.round.assembly.inner.cpp punctuation.section.parens.begin.bracket.round.conditional.switch.cpp punctuation.section.parens.begin.bracket.round.cpp punctuation.section.parens.begin.bracket.round.function.pointer.cpp +punctuation.section.parens.control.defined.cpp punctuation.section.parens.end.bracket.round.assembly.cpp punctuation.section.parens.end.bracket.round.assembly.inner.cpp punctuation.section.parens.end.bracket.round.conditional.switch.cpp @@ -667,7 +660,7 @@ string.quoted.double.raw.regex.cpp string.quoted.double.raw.sql.cpp string.quoted.other.lt-gt.include.cpp string.quoted.single.cpp -string.unquoted.single.cpp +string.unquoted.cpp support.other.attribute.cpp support.type.built-in.posix-reserved.cpp support.type.built-in.posix-reserved.pthread.cpp diff --git a/package-lock.json b/package-lock.json index 3f52dd30..18c3e9b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1552,16 +1552,6 @@ "oniguruma": "^7.0.0" } }, - "vscode-textmate-experimental": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/vscode-textmate-experimental/-/vscode-textmate-experimental-4.1.1.tgz", - "integrity": "sha512-h4EMY4t9ulhzocDpjuIz0iWse31D1NSUpswpDZ9awQm18dis1B9uwAdBJv8eS5SIhPKtHHcJdSjFk8qByNQgSQ==", - "dev": true, - "requires": { - "node-gyp": "^4.0.0", - "oniguruma": "^7.2.0" - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index 0470e6b7..f92f9fbe 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,6 @@ "oniguruma": "^7.2.0", "prettyjson": "^1.2.1", "vscode-textmate": "^4.1.1", - "vscode-textmate-experimental": "^4.1.1", "yargs": "^13.2.2" }, "dependencies": {} diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 4b62c4d7..e6e0e58a 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -19,7 +19,7 @@ # consider adding storage.type to user defined types # switch to punctuation.accessor from punctuation.seperator.dot-access -cpp_grammar = Grammar.new( +grammar = Grammar.new( name: "C++", scope_name: "source.cpp", file_types: [ @@ -45,24 +45,28 @@ # # Utils # - $grammar = cpp_grammar - cpp_grammar[:inline_comment] = inline_comment - def std_space() generateStdSpace($grammar[:inline_comment]) end + grammar[:inline_comment] = grammar.import("./lib/inline_comment") + std_space = grammar.import("./lib/std_space")[inline_comment, :inline_comment] + universal_character = /\\u[0-9a-fA-F]{4}/.or(/\\U[0-9a-fA-F]{8}/) + first_character = /[a-zA-Z_]/.or(universal_character) + subsequent_character = /[a-zA-Z0-9_]/.or(universal_character) + identifier = first_character.then(zeroOrMoreOf(subsequent_character)) + preprocessor = grammar.import("./lib/preprocessor")[std_space, identifier] leading_space = /\s*+/ - cpp_grammar[:semicolon] = @semicolon = newPattern( + grammar[:semicolon] = @semicolon = Pattern.new( match: /;/, tag_as: "punctuation.terminator.statement", ) - cpp_grammar[:comma] = newPattern( + grammar[:comma] = Pattern.new( match: /,/, tag_as: "punctuation.separator.delimiter.comma" ) possible_begining_of_statement = /^|\G/.or(lookBehindFor(/;|\}/)) - cpp_grammar[:assignment_operator] = assignment_operator = newPattern( + grammar[:assignment_operator] = assignment_operator = Pattern.new( match: /\=/, tag_as: "keyword.operator.assignment", ) - array_brackets = newPattern( + array_brackets = Pattern.new( match: /\[/, tag_as: "punctuation.definition.begin.bracket.square" ).then( @@ -75,14 +79,14 @@ def std_space() generateStdSpace($grammar[:inline_comment]) end functionCallGenerator = ->(repository_name:nil, match_name: nil, tag_name_as: nil, tag_content_as: nil, tag_parenthese_as: nil) do new_range = PatternRange.new( tag_content_as: "meta.#{tag_content_as}", - start_pattern: newPattern( + start_pattern: Pattern.new( match: match_name, tag_as: tag_name_as, ).then(std_space).then( match: /\(/, tag_as: "punctuation.section.arguments.begin.bracket.round.#{tag_parenthese_as}" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.arguments.end.bracket.round.#{tag_parenthese_as}" ), @@ -91,7 +95,7 @@ def std_space() generateStdSpace($grammar[:inline_comment]) end ] ) if repository_name - cpp_grammar[repository_name] = new_range + grammar[repository_name] = new_range end return new_range end @@ -99,8 +103,8 @@ def std_space() generateStdSpace($grammar[:inline_comment]) end def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: true, primary_includes: [], head_includes:[], body_includes: [ :$initial_context ], tail_includes: [ :$initial_context ], secondary_includes:[]) lookahead_endings = /[;>\[\]=]/ if needs_semicolon - end_pattern = newPattern( - match: newPattern( + end_pattern = Pattern.new( + match: Pattern.new( lookBehindFor(@close_curly_brace).maybe(@spaces).then(@semicolon) ).or( @semicolon @@ -113,7 +117,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: end return PatternRange.new( tag_as: tag_as, - start_pattern: newPattern( + start_pattern: Pattern.new( match: start_pattern, tag_as: "meta.head."+name, ), @@ -125,7 +129,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "meta.head."+name, start_pattern: /\G ?/, zeroLengthStart?: true, - end_pattern: newPattern( + end_pattern: Pattern.new( match: @open_curly_brace.or(lookAheadFor(/;/)), tag_as: "punctuation.section.block.begin.bracket.curly."+name ), @@ -135,7 +139,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: PatternRange.new( tag_as: "meta.body."+name, # body is everything in the {}'s start_pattern: lookBehindFor(@open_curly_brace), - end_pattern: newPattern( + end_pattern: Pattern.new( match: @close_curly_brace, tag_as: "punctuation.section.block.end.bracket.curly."+name ), @@ -145,7 +149,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: PatternRange.new( tag_as: "meta.tail."+name, start_pattern: lookBehindFor(@close_curly_brace).then(/[\s\n]*/), - end_pattern: newPattern(/[\s\n]*/).lookAheadFor(/;/), + end_pattern: Pattern.new(/[\s\n]*/).lookAheadFor(/;/), includes: tail_includes ), *secondary_includes @@ -157,25 +161,12 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # Contexts # # - cpp_grammar[:ever_present_context] = [ - # preprocessor directives, which should be a part of every scope - :single_line_macro, - :preprocessor_rule_enabled, - :preprocessor_rule_disabled, - :preprocessor_rule_conditional, - :meta_preprocessor_macro, - :meta_preprocessor_diagnostic, - :meta_preprocessor_include, - :pragma_mark, - :meta_preprocessor_line, - :meta_preprocessor_undef, - :meta_preprocessor_pragma, - :hacky_fix_for_stray_directive, - # comments + grammar[:ever_present_context] = [ + *preprocessor, :comments, :line_continuation_character, ] - cpp_grammar[:$initial_context] = [ + grammar[:$initial_context] = [ :ever_present_context, # declarations (contains only the head of somthing) # TODO: class pre-definition @@ -212,7 +203,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # eventually this needs to be removed :evaluation_context ] - cpp_grammar[:function_body_context] = cpp_grammar[:$initial_context].without( + grammar[:function_body_context] = grammar[:$initial_context].without( # function bodies cant contain any of theses: :constructor_root, :destructor_root, @@ -235,7 +226,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :evaluation_context, :label ] - cpp_grammar[:evaluation_context] = [ + grammar[:evaluation_context] = [ :ever_present_context, # literals :string_context, @@ -272,19 +263,19 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :semicolon, :comma, ] - cpp_grammar[:function_parameter_context] = [ + grammar[:function_parameter_context] = [ :ever_present_context, # comments and macros :parameter, :comma, ] - cpp_grammar[:template_definition_context] = [ + grammar[:template_definition_context] = [ :scope_resolution_template_definition_inner_generated, :template_definition_argument, :template_argument_defaulted, :template_call_innards, :evaluation_context ] - cpp_grammar[:template_call_context] = [ + grammar[:template_call_context] = [ :ever_present_context, :template_call_range, :storage_types, @@ -296,13 +287,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :comma_in_template_argument, :qualified_type, ] - cpp_grammar[:attributes_context] = [ + grammar[:attributes_context] = [ :cpp_attributes, :gcc_attributes, :ms_attributes, :alignas_attribute, ] - cpp_grammar[:storage_types] = [ + grammar[:storage_types] = [ :storage_specifiers, :primitive_types, :non_primitive_types, @@ -314,20 +305,20 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Comments # - cpp_grammar[:block_comment] = PatternRange.new( + grammar[:block_comment] = PatternRange.new( tag_as: "comment.block", - start_pattern: newPattern( + start_pattern: Pattern.new( /\s*+/.then( match: /\/\*/, tag_as: "punctuation.definition.comment.begin" ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\*\//, tag_as: "punctuation.definition.comment.end" ) ) - cpp_grammar[:line_comment] = PatternRange.new( + grammar[:line_comment] = PatternRange.new( tag_as: "comment.line.double-slash", start_pattern: /\s*+/.then( match: /\/\//, @@ -337,18 +328,18 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: end_pattern: lookBehindFor(/\n/).lookBehindToAvoid(/\\\n/), includes: [ :line_continuation_character ] ) - cpp_grammar[:emacs_file_banner] = newPattern( + grammar[:emacs_file_banner] = Pattern.new( # # file banner # this matches emacs style file banners ex: /* = foo.c = */ # a file banner is a # # single line - newPattern( + Pattern.new( should_fully_match: ["// ### test.c ###", "//=test.c - test util ="], should_not_partial_match: ["// ### test.c #=#", "//=test.c - test util ~~~"], match: /^/.maybe(@spaces).then( - match: newPattern( + match: Pattern.new( match: /\/\//, tag_as: "punctuation.definition.comment" ).maybe( @@ -367,7 +358,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: should_fully_match: ["/* ### test.c ###*/", "/*=test.c - test util =*/"], should_not_partial_match: ["/* ### test.c #=# */", "/*=test.c - test util ~~~*/"], match: /^/.maybe(@spaces).then( - match: newPattern( + match: Pattern.new( match: /\/\*/, tag_as: "punctuation.definition.comment" ).maybe( @@ -385,11 +376,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "meta.toc-list.banner.block", ) ) - cpp_grammar[:invalid_comment_end] = newPattern( + grammar[:invalid_comment_end] = Pattern.new( match: /\*\//, tag_as: "invalid.illegal.unexpected.punctuation.definition.comment.end" ) - cpp_grammar[:comments] = [ + grammar[:comments] = [ :emacs_file_banner, :block_comment, :line_comment, @@ -399,18 +390,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Numbers # -# - # - # Number Literal - # - cpp_grammar[:number_literal] = numeric_constant(allow_user_defined_literals: true) + grammar[:number_literal] = numeric_constant(allow_user_defined_literals: true) # # Variable # - universal_character = /\\u[0-9a-fA-F]{4}/.or(/\\U[0-9a-fA-F]{8}/) - first_character = /[a-zA-Z_]/.or(universal_character) - subsequent_character = /[a-zA-Z0-9_]/.or(universal_character) - identifier = first_character.then(zeroOrMoreOf(subsequent_character)) # todo: make a better name for this function variableBounds = ->(regex_pattern) do lookBehindToAvoid(@standard_character).then(regex_pattern).lookAheadToAvoid(@standard_character) @@ -422,7 +405,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Constants # - cpp_grammar[:language_constants] = newPattern( + grammar[:language_constants] = Pattern.new( match: variableBounds[@cpp_tokens.that(:isLiteral)], tag_as: "constant.language.$match" ) @@ -431,61 +414,61 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # Built-In Types # look_behind_for_type = lookBehindFor(/\w |\*\/|[&*>\]\)]|\.\.\./).maybe(@spaces) - cpp_grammar[:primitive_types] = newPattern( + grammar[:primitive_types] = Pattern.new( std_space.then( match: variableBounds[ @cpp_tokens.that(:isPrimitive) ], tag_as: "storage.type.primitive storage.type.built-in.primitive" ) ) - cpp_grammar[:non_primitive_types] = newPattern( + grammar[:non_primitive_types] = Pattern.new( std_space.then( match: variableBounds[@cpp_tokens.that(not(:isPrimitive), :isType)], tag_as: "storage.type storage.type.built-in" ) ) - cpp_grammar[:decltype] = functionCallGenerator[ + grammar[:decltype] = functionCallGenerator[ repository_name: "decltype_specifier", match_name: variableBounds[/decltype/], tag_name_as: "keyword.operator.functionlike keyword.other.decltype storage.type.decltype", tag_content_as: "arguments.decltype", tag_parenthese_as: "decltype" ] - cpp_grammar[:pthread_types] = pthread_types = newPattern( + grammar[:pthread_types] = pthread_types = Pattern.new( std_space.then( tag_as: "support.type.posix-reserved.pthread support.type.built-in.posix-reserved.pthread", match: variableBounds[ /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/ ], ) ) - cpp_grammar[:posix_reserved_types] = posix_reserved_types = newPattern( + grammar[:posix_reserved_types] = posix_reserved_types = Pattern.new( std_space.then( match: variableBounds[ /[a-zA-Z_]/.zeroOrMoreOf(@standard_character).then(/_t/) ], tag_as: "support.type.posix-reserved support.type.built-in.posix-reserved" ) ) inline_builtin_storage_type = std_space.then( - newPattern( - cpp_grammar[:primitive_types] + Pattern.new( + grammar[:primitive_types] ).or( - cpp_grammar[:non_primitive_types] + grammar[:non_primitive_types] ).or( - cpp_grammar[:pthread_types] + grammar[:pthread_types] ).or( - cpp_grammar[:posix_reserved_types] + grammar[:posix_reserved_types] ) ) # # Keywords and Keyword-ish things # - cpp_grammar[:using_name] = newPattern(match: /using/, tag_as: "keyword.other.using.directive").then(@spaces).lookAheadToAvoid(/namespace\b/) - cpp_grammar[:functional_specifiers_pre_parameters] = newPattern( + grammar[:using_name] = Pattern.new(match: /using/, tag_as: "keyword.other.using.directive").then(@spaces).lookAheadToAvoid(/namespace\b/) + grammar[:functional_specifiers_pre_parameters] = Pattern.new( match: variableBounds[ @cpp_tokens.that(:isFunctionSpecifier) ], tag_as: "storage.modifier.specifier.functional.pre-parameters.$match" ) - cpp_grammar[:qualifiers_and_specifiers_post_parameters] = newPattern( + grammar[:qualifiers_and_specifiers_post_parameters] = Pattern.new( std_space.then( tag_as: "storage.modifier.specifier.functional.post-parameters.$match", - match: newPattern( + match: Pattern.new( variableBounds[ @cpp_tokens.that(:canAppearAfterParametersBeforeBody) ].lookAheadFor( /\s*/.then( /\{/.or(/;/).or(/[\n\r]/) @@ -494,17 +477,17 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ), ) - cpp_grammar[:storage_specifiers] = storage_specifier = newPattern( + grammar[:storage_specifiers] = storage_specifier = Pattern.new( std_space.then( match: variableBounds[ @cpp_tokens.that(:isStorageSpecifier) ], tag_as: "storage.modifier.specifier.$match" ) ) - cpp_grammar[:access_control_keywords] = newPattern( + grammar[:access_control_keywords] = Pattern.new( std_space.then( tag_as: "storage.type.modifier.access.control.$reference(access_specifier)", - match: newPattern( - newPattern( + match: Pattern.new( + Pattern.new( match: @cpp_tokens.that(:isAccessSpecifier), reference: "access_specifier" ).maybe(@spaces).then( @@ -514,38 +497,38 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ) ) - cpp_grammar[:exception_keywords] = newPattern( + grammar[:exception_keywords] = Pattern.new( std_space.then( match: variableBounds[ @cpp_tokens.that(:isExceptionRelated) ], tag_as: "keyword.control.exception.$match" ) ) - cpp_grammar[:typedef_keyword] = newPattern( + grammar[:typedef_keyword] = Pattern.new( std_space.then( match: variableBounds[ /typedef/ ], tag_as: "keyword.other.$match" ) ) - cpp_grammar[:the_this_keyword] = the_this_keyword = newPattern( + grammar[:the_this_keyword] = the_this_keyword = Pattern.new( std_space.then( match: variableBounds[ /this/ ], tag_as: "variable.language.this" ) ) # TODO: enhance casting operators to include <>'s - cpp_grammar[:type_casting_operators] = newPattern( + grammar[:type_casting_operators] = Pattern.new( std_space.then( match: variableBounds[ @cpp_tokens.that(:isTypeCastingOperator) ], tag_as: "keyword.operator.wordlike keyword.operator.cast.$match" ) ) - cpp_grammar[:memory_operators] = newPattern( + grammar[:memory_operators] = Pattern.new( std_space.then( tag_as: "keyword.operator.wordlike", - match: newPattern( - newPattern( - newPattern( - newPattern( + match: Pattern.new( + Pattern.new( + Pattern.new( + Pattern.new( match: /delete/, tag_as: "keyword.operator.delete.array" ).maybe(@spaces).then( @@ -563,13 +546,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ) ) - cpp_grammar[:control_flow_keywords] = control_flow_keywords = newPattern( + grammar[:control_flow_keywords] = control_flow_keywords = Pattern.new( std_space.then( match: variableBounds[ @cpp_tokens.that(:isControlFlow) ], tag_as: "keyword.control.$match" ) ) - declaration_storage_specifiers = newPattern( + declaration_storage_specifiers = Pattern.new( match: oneOrMoreOf(storage_specifier.without_numbered_capture_groups.then(@spaces)), includes: [ :storage_specifiers @@ -578,8 +561,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Control flow # - cpp_grammar[:goto_statement] = newPattern( - newPattern( + grammar[:goto_statement] = Pattern.new( + Pattern.new( match: variableBounds[/goto/], tag_as: "keyword.control.goto", ).then(std_space).then( @@ -587,7 +570,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "entity.name.label.call" ) ) - cpp_grammar[:label] = newPattern( + grammar[:label] = Pattern.new( std_space.then( tag_as: "entity.name.label", match: variableBounds[identifier], @@ -598,55 +581,55 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "punctuation.separator.label", ) ) - cpp_grammar[:default_statement] = PatternRange.new( + grammar[:default_statement] = PatternRange.new( tag_as: "meta.conditional.case", - start_pattern: newPattern( + start_pattern: Pattern.new( std_space.then( match: variableBounds[ /default/ ], tag_as: "keyword.control.default" ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /:/, tag_as: "punctuation.separator.colon.case.default" ), # TODO: eventually remove the c_conditional_context includes: [:evaluation_context, :c_conditional_context] ) - cpp_grammar[:case_statement] = PatternRange.new( + grammar[:case_statement] = PatternRange.new( tag_as: "meta.conditional.case", - start_pattern: newPattern( + start_pattern: Pattern.new( std_space.then( match: variableBounds[ /case/ ], tag_as: "keyword.control.case" ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /:/, tag_as: "punctuation.separator.colon.case" ), # TODO: eventually remove the c_conditional_context includes: [:evaluation_context, :c_conditional_context] ) - cpp_grammar[:switch_conditional_parentheses] = PatternRange.new( + grammar[:switch_conditional_parentheses] = PatternRange.new( tag_as: "meta.conditional.switch", - start_pattern: newPattern( + start_pattern: Pattern.new( std_space.then( match: /\(/, tag_as: 'punctuation.section.parens.begin.bracket.round.conditional.switch' ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: 'punctuation.section.parens.end.bracket.round.conditional.switch' ), # TODO: eventually remove the c_conditional_context includes: [ :evaluation_context, :c_conditional_context ] ) - cpp_grammar[:switch_statement] = generateBlockFinder( + grammar[:switch_statement] = generateBlockFinder( name: "switch", tag_as: "meta.block.switch", - start_pattern: newPattern( + start_pattern: Pattern.new( std_space.then( match: variableBounds[/switch/], tag_as: "keyword.control.switch" @@ -670,11 +653,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: generateAttributeRangeFinder = ->(start_pattern, end_pattern) do return PatternRange.new( tag_as: "support.other.attribute", - start_pattern: newPattern( + start_pattern: Pattern.new( match: start_pattern, tag_as: "punctuation.section.attribute.begin", ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: end_pattern, tag_as: "punctuation.section.attribute.end", ), @@ -689,17 +672,17 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :string_context_c, ], ), - newPattern(match: /using/, tag_as: "keyword.other.using.directive").then(@spaces).then( + Pattern.new(match: /using/, tag_as: "keyword.other.using.directive").then(@spaces).then( match: variable_name, tag_as: "entity.name.namespace", ), - newPattern(match: /,/, tag_as: "punctuation.separator.attribute"), - newPattern(match: /:/, tag_as: "punctuation.accessor.attribute"), - newPattern( + Pattern.new(match: /,/, tag_as: "punctuation.separator.attribute"), + Pattern.new(match: /:/, tag_as: "punctuation.accessor.attribute"), + Pattern.new( match: variable_name.lookAheadFor(/::/), tag_as: "entity.name.namespace" ), - newPattern(match: variable_name, tag_as: "entity.other.attribute.$match"), + Pattern.new(match: variable_name, tag_as: "entity.other.attribute.$match"), :number_literal, ] ) @@ -714,16 +697,16 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: alignas_start = /alignas\(/ alignas_end = /\)/ - cpp_grammar[:cpp_attributes ] = generateAttributeRangeFinder[ cpp_attribute_start, cpp_attribute_end ] - cpp_grammar[:gcc_attributes ] = generateAttributeRangeFinder[ gcc_attribute_start, gcc_attribute_end ] - cpp_grammar[:ms_attributes ] = generateAttributeRangeFinder[ ms_attribute_start , ms_attribute_end ] - cpp_grammar[:alignas_attribute] = generateAttributeRangeFinder[ alignas_start , alignas_end ] + grammar[:cpp_attributes ] = generateAttributeRangeFinder[ cpp_attribute_start, cpp_attribute_end ] + grammar[:gcc_attributes ] = generateAttributeRangeFinder[ gcc_attribute_start, gcc_attribute_end ] + grammar[:ms_attributes ] = generateAttributeRangeFinder[ ms_attribute_start , ms_attribute_end ] + grammar[:alignas_attribute] = generateAttributeRangeFinder[ alignas_start , alignas_end ] - inline_attribute = newPattern( + inline_attribute = Pattern.new( should_fully_match:["[[nodiscard]]","__attribute((packed))","__declspec(fastcall)","__attribute__((constructor(101)))"], should_partial_match: ["struct [[deprecated]] st"], # match one of the three attribute styles - match: newPattern( + match: Pattern.new( cpp_attribute_start.then(/.*?/).then(cpp_attribute_end) ).or( gcc_attribute_start.then(/.*?/).then(gcc_attribute_end) @@ -743,16 +726,16 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # this is effectively what is happening: # some_number_of_angle_brackets = oneOrMoreOf(no_anglebrackets_at_all.or(balanced_brackets)) # this is actually what is happening: (recursion) - some_number_of_angle_brackets = newPattern( + some_number_of_angle_brackets = Pattern.new( should_fully_match: [ "<>", "", ", testing>" ], should_not_fully_match: [ "testing<>" ], reference: "angle_brackets", - match: newPattern( + match: Pattern.new( lookBehindToAvoid(/]/, dont_back_track?: true, @@ -765,25 +748,25 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) - cpp_grammar[:comma_in_template_argument] = newPattern( + grammar[:comma_in_template_argument] = Pattern.new( match: /,/, tag_as: "punctuation.separator.delimiter.comma.template.argument" ) # note: template_call should ideally be a Range(), the reason its not is # because it's embedded inside of other patterns - cpp_grammar[:template_call_innards] = template_call = newPattern( + grammar[:template_call_innards] = template_call = Pattern.new( tag_as: 'meta.template.call', # to match the characters in the middle of a template call match: some_number_of_angle_brackets.maybe(@spaces), includes: [ :template_call_range ] ) - cpp_grammar[:template_call_range] = PatternRange.new( + grammar[:template_call_range] = PatternRange.new( tag_as: 'meta.template.call', - start_pattern: newPattern( + start_pattern: Pattern.new( match: //, tag_as: "punctuation.section.angle-brackets.end.template.call" ), @@ -797,7 +780,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "punctuation.section.angle-brackets.start.template.definition" ) # a template definition that is by itself on a line (this is ideal) - cpp_grammar[:template_isolated_definition] = newPattern( + grammar[:template_isolated_definition] = Pattern.new( match: template_start.then( match: zeroOrMoreOf(/./), tag_as: "meta.template.definition", @@ -807,10 +790,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "punctuation.section.angle-brackets.end.template.definition" ), ) - cpp_grammar[:template_definition] = PatternRange.new( + grammar[:template_definition] = PatternRange.new( tag_as: 'meta.template.definition', start_pattern: template_start, - end_pattern: newPattern( + end_pattern: Pattern.new( match: />/, tag_as: "punctuation.section.angle-brackets.end.template.definition" ), @@ -819,11 +802,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # however this is rolling the dice: because if there is a less-than operator in a defaulted argument, then this pattern will screw everything up # a better solution would be nice, but its going to be difficult/impossible PatternRange.new( - start_pattern: newPattern( + start_pattern: Pattern.new( match: lookBehindFor(/\w/).maybe(@spaces).then(//, tag_as: "punctuation.section.angle-brackets.begin.template.call" ), @@ -832,7 +815,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :template_definition_context, ] ) - cpp_grammar[:template_argument_defaulted] = newPattern( + grammar[:template_argument_defaulted] = Pattern.new( match: lookBehindFor(/<|,/).maybe(@spaces).then( match: zeroOrMoreOf(variable_name_without_bounds.then(@spaces)), tag_as: "storage.type.template", @@ -844,18 +827,18 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "keyword.operator.assignment" ) ) - cpp_grammar[:template_definition_argument] = newPattern( + grammar[:template_definition_argument] = Pattern.new( # case 1: only one word std_space.then( - newPattern( + Pattern.new( match: variable_name_without_bounds, tag_as: "storage.type.template.argument.$match", # case 2: normal situation (ex: "typename T") ).or( - newPattern( + Pattern.new( match: oneOrMoreOf(variable_name_without_bounds.then(@spaces)), includes: [ - newPattern( + Pattern.new( match: variable_name_without_bounds, tag_as: "storage.type.template.argument.$match", ) @@ -866,7 +849,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) # case 3: ellipses (ex: "typename... Args") ).or( - newPattern( + Pattern.new( match: variable_name_without_bounds, tag_as: "storage.type.template", ).maybe(@spaces).then( @@ -877,7 +860,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "entity.name.type.template" ) ).maybe(@spaces).then( - newPattern( + Pattern.new( match: /,/, tag_as: "punctuation.separator.delimiter.comma.template.argument", ).or( @@ -889,7 +872,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Scope resolution # - one_scope_resolution = newPattern( + one_scope_resolution = Pattern.new( match: variable_name_without_bounds, word_cannot_be_any_of: @cpp_tokens.representationsThat( :isWord, @@ -900,14 +883,14 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ).then(/\s*+/).maybe(template_call).then(/::/) inline_scope_resolution = ->(tag_extension) do - newPattern( + Pattern.new( match: zeroOrMoreOf(one_scope_resolution), includes: [ - newPattern( + Pattern.new( match: /::/, tag_as: "punctuation.separator.namespace.access punctuation.separator.scope-resolution"+tag_extension ), - newPattern( + Pattern.new( match: variableBounds[identifier], tag_as: "entity.name.scope-resolution"+tag_extension ), @@ -915,11 +898,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] ) end - scope_operator = newPattern( + scope_operator = Pattern.new( match: /::/, tag_as: "punctuation.separator.namespace.access punctuation.separator.scope-resolution" ) - preceding_scopes = newPattern( + preceding_scopes = Pattern.new( match: maybe(scope_operator).zeroOrMoreOf(one_scope_resolution).maybe(@spaces), includes: [ :scope_resolution_inner_generated ] ) @@ -928,7 +911,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tagged_scope_operator = scope_operator.reTag( append: tag_extension[1..-1] ) - cpp_grammar[grammar_name] = newPattern( + grammar[grammar_name] = Pattern.new( # find the whole scope resolution should_fully_match: [ "name::name2::name3::" ], match: maybe(tagged_scope_operator).zeroOrMoreOf(one_scope_resolution).then(/\s*+/), @@ -937,9 +920,9 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: hidden_grammar_name, ] ) - cpp_grammar[hidden_grammar_name] = newPattern( + grammar[hidden_grammar_name] = Pattern.new( should_fully_match: ["name::", "name::name2::name3::"], - match: cpp_grammar[grammar_name].then( + match: grammar[grammar_name].then( match: variable_name_without_bounds, tag_as: "entity.name.scope-resolution"+tag_extension ).then(/\s*+/).maybe( @@ -962,14 +945,14 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # Types # ref_deref = ->(pointer_tag:"storage.modifier.pointer", reference_tag: "storage.modifier.reference") do - newPattern( + Pattern.new( # even though some of these "should_fully_match" cases are invalid in C++, there examples here for demoing how the pattern DOES work but not the ideal. It currently works this way for performance/convenience should_fully_match: [ "*", "**", "**&", "* *", "* * *", "**&&**", "&&&", "&& &", "& & &", "& &&" ], should_not_fully_match: [ " * ", " ** " , "&&& ", "&& & " ], - match: newPattern( + match: Pattern.new( # match as many as possible, but (see next comment) maybe(std_space).zeroOrMoreOf( - newPattern( + Pattern.new( /\&/.or(/\*/) ).then(std_space) # only match the space between them (not the space after the last one) @@ -977,23 +960,23 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), includes: [ # tag all the *'s - newPattern( + Pattern.new( match: /\*/, tag_as: pointer_tag, ), # if there's an invalid number of &'s (3 or more) - newPattern( + Pattern.new( should_fully_match: [ "&&&", "&& &", "& & &", "& &&" ], should_not_fully_match: [" && ", "&&& ", "&& & " ], should_not_partial_match: [ "&&", "&", "& & " ], tag_as: "invalid.illegal.reference-type", - match: newPattern( + match: Pattern.new( match: /\&/.then(std_space), at_least: 2.times ).then(/\&/) ), # tag all the &'s - newPattern( + Pattern.new( match: /\&/, tag_as: reference_tag, ), @@ -1002,7 +985,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: end non_type_keywords = @cpp_tokens.that(:isWord, not(:isType), not(:isTypeCreator)) builtin_type_creators_and_specifiers = @cpp_tokens.that(:isTypeSpecifier).or(@cpp_tokens.that(:isTypeCreator)) - cpp_grammar[:qualified_type] = qualified_type = newPattern( + grammar[:qualified_type] = qualified_type = Pattern.new( should_fully_match: [ "void", "A","A::B","A::B::D", "unsigned char","long long int", "unsigned short int","struct a", "void", "iterator", "original", "bore"], should_not_partial_match: ["return", "static const"], tag_as: "meta.qualified_type", @@ -1021,7 +1004,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: template_call ).lookAheadToAvoid(/[\w<:.]/), includes: [ - newPattern( + Pattern.new( match: variableBounds[ @cpp_tokens.that(:isTypeCreator)], tag_as: "storage.type.$match" ), @@ -1032,20 +1015,20 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :string_context_c, :comma, :scope_resolution_inner_generated, - cpp_grammar[:template_call_range], - newPattern( + grammar[:template_call_range], + Pattern.new( match: identifier, tag_as: "entity.name.type", ), ], ) # TODO: create a :type that includes inline function-pointer types and array types - cpp_grammar[:simple_type] = qualified_type.maybe(ref_deref[]) - cpp_grammar[:type_alias] = newPattern( + grammar[:simple_type] = qualified_type.maybe(ref_deref[]) + grammar[:type_alias] = Pattern.new( tag_as: "meta.declaration.type.alias", should_fully_match: ["using A = B;", "using _Sat = std::allocator_traits;","using const_pointer_t = const uint8_t *\n","using T = typename std::iterator_traits::value_type;", "using pcb = details::pointer_control_block>;"], should_not_partial_match: ["using namespace std;","using std::swap;", "using B::B;"], - match: newPattern( + match: Pattern.new( match:/using/, tag_as: "keyword.other.using.directive", ).maybe(@spaces).lookAheadToAvoid(/namespace/).then( @@ -1071,10 +1054,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: array_brackets ).maybe(@spaces).then(@semicolon.or(/\n/)), ) - cpp_grammar[:typename] = newPattern( + grammar[:typename] = Pattern.new( should_fully_match: ["typename Alloc::select_on_container_copy_construction"], should_not_partial_match: ["this_typename_is_valid"], - match: newPattern( + match: Pattern.new( match: std_space.then(variableBounds[/typename/]), tag_as: "storage.modifier" ).then(std_space).then(qualified_type) @@ -1084,7 +1067,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # generally this section is for things that need a #include, (the support category) # it will be for things such as cout, cin, vector, string, map, etc - cpp_grammar[:predefined_macros] = predefinedMacros() + grammar[:predefined_macros] = predefinedMacros() # # Functions, Operator Overload @@ -1096,27 +1079,27 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: avoid_invalid_function_names = @cpp_tokens.lookBehindToAvoidWordsThat(:isWord, not(:isPreprocessorDirective), not(:isValidFunctionName)) look_ahead_for_function_name = lookAheadFor(variable_name_without_bounds.maybe(@spaces).maybe(inline_attribute).maybe(@spaces).then(/\(/)) - cpp_grammar[:function_definition] = generateBlockFinder( + grammar[:function_definition] = generateBlockFinder( name:"function.definition", tag_as:"meta.function.definition", - start_pattern: newPattern( + start_pattern: Pattern.new( possible_begining_of_statement.or(lookBehindFor(/>/)).then( std_space ).maybe( - newPattern( + Pattern.new( match: variableBounds[/template/], tag_as: "storage.type.template", ).then(std_space) ).zeroOrMoreOf( - newPattern( + Pattern.new( match: variableBounds[@cpp_tokens.that(:isFunctionSpecifier).or(@cpp_tokens.that(:isStorageSpecifier))], tag_as: "storage.modifier.$match" ).then(std_space) ).then( - cpp_grammar[:simple_type].then(std_space).then( + grammar[:simple_type].then(std_space).then( optional_calling_convention ).then( - cpp_grammar[:scope_resolution_function_definition] + grammar[:scope_resolution_function_definition] ).then( match: variable_name_without_bounds, tag_as: "entity.name.function.definition" @@ -1129,11 +1112,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :ever_present_context, # comments and macros PatternRange.new( tag_content_as: "meta.function.definition.parameters", - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\(/, tag_as: "punctuation.section.parameters.begin.bracket.round" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.parameters.end.bracket.round" ), @@ -1155,12 +1138,12 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: needs_semicolon: false, body_includes: [ :function_body_context ], ) - cpp_grammar[:operator_overload] = generateBlockFinder( + grammar[:operator_overload] = generateBlockFinder( name:"function.definition.special.operator-overload", tag_as:"meta.function.definition.special.operator-overload", - start_pattern: newPattern( + start_pattern: Pattern.new( # find the return type (if there is one) - maybe(cpp_grammar[:simple_type].then(std_space)).then(optional_calling_convention).then( + maybe(grammar[:simple_type].then(std_space)).then(optional_calling_convention).then( std_space ).then( inline_scope_resolution[".operator"] @@ -1173,7 +1156,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # find the actual operator/type ).then( # operator - newPattern( + Pattern.new( match: @cpp_tokens.that(:canAppearAfterOperatorKeyword), tag_as: "entity.name.operator", # type @@ -1190,7 +1173,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # custom literal ).or( # see https://en.cppreference.com/w/cpp/language/user_literal - newPattern( + Pattern.new( match: /""/, tag_as: "entity.name.operator.custom-literal", ).then(std_space).then( @@ -1206,11 +1189,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :template_call_range, PatternRange.new( tag_content_as: "meta.function.definition.parameters.special.operator-overload", - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\(/, tag_as: "punctuation.section.parameters.begin.bracket.round.special.operator-overload" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.parameters.end.bracket.round.special.operator-overload" ), @@ -1230,8 +1213,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: body_includes: [ :function_body_context ], ) # static assert is special as it can be outside of normal places function calls can be - cpp_grammar[:static_assert] = PatternRange.new( - start_pattern: newPattern( + grammar[:static_assert] = PatternRange.new( + start_pattern: Pattern.new( std_space.then( match: variableBounds[/static_assert|_Static_assert/], tag_as: "keyword.other.static_assert", @@ -1240,14 +1223,14 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "punctuation.section.arguments.begin.bracket.round.static_assert", ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.arguments.end.bracket.round.static_assert", ), includes: [ # special handling for the assert message PatternRange.new( - start_pattern: newPattern( + start_pattern: Pattern.new( match: /,/, tag_as: "punctuation.separator.delimiter.comma", ).maybe(@spaces).lookAheadFor(maybe(/L|u8|u|U/.maybe(@spaces).then(/\"/))), @@ -1262,9 +1245,9 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] ) # a full match example of function call would be: aNameSpace::subClassFunctionName<5>( - cpp_grammar[:function_call] = PatternRange.new( - start_pattern: newPattern( - cpp_grammar[:scope_resolution_function_call] + grammar[:function_call] = PatternRange.new( + start_pattern: Pattern.new( + grammar[:scope_resolution_function_call] ).then( match: variable_name_without_bounds, tag_as: "entity.name.function.call" @@ -1276,7 +1259,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: match: /\(/, tag_as: "punctuation.section.arguments.begin.bracket.round.function.call" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.arguments.end.bracket.round.function.call" ), @@ -1286,15 +1269,15 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Initializers # - cpp_grammar[:curly_initializer] = PatternRange.new( + grammar[:curly_initializer] = PatternRange.new( tag_as: "meta.initialization", - start_pattern: newPattern( + start_pattern: Pattern.new( qualified_type.then(std_space).then( match: /\{/, tag_as: "punctuation.section.arguments.begin.bracket.curly.initializer", ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\}/, tag_as: "punctuation.section.arguments.end.bracket.curly.initializer", ), @@ -1303,14 +1286,14 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :comma ] ) - cpp_grammar[:builtin_storage_type_initilizer] = PatternRange.new( - start_pattern: newPattern( + grammar[:builtin_storage_type_initilizer] = PatternRange.new( + start_pattern: Pattern.new( inline_builtin_storage_type.then(std_space).then( match: /\(/, tag_as: "punctuation.section.arguments.begin.bracket.round.initializer" ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.arguments.end.bracket.round.initializer" ), @@ -1322,7 +1305,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: deleted_and_default_constructor = [ # for class_name() = delete ; and class_name() = default ; assignment_operator.then(std_space).then( - newPattern( + Pattern.new( match: /default/, tag_as: "keyword.other.default.constructor", ).or( @@ -1343,7 +1326,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :functional_specifiers_pre_parameters, # ini context PatternRange.new( - start_pattern: newPattern( + start_pattern: Pattern.new( match: /:/, tag_as: "punctuation.separator.initializers" ), @@ -1351,8 +1334,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: includes: [ PatternRange.new( tag_content_as: "meta.parameter.initialization", - start_pattern: newPattern( - newPattern( + start_pattern: Pattern.new( + Pattern.new( match: variableBounds[identifier], tag_as: "entity.name.function.call.initializer", ).maybe( @@ -1362,7 +1345,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "punctuation.section.arguments.begin.bracket.round.function.call.initializer", ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.arguments.end.bracket.round.function.call.initializer", ), @@ -1370,8 +1353,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), PatternRange.new( tag_content_as: "meta.parameter.initialization", - start_pattern: newPattern( - newPattern( + start_pattern: Pattern.new( + Pattern.new( match: variableBounds[identifier], tag_as: "entity.name.function.call.initializer", ).then( @@ -1379,23 +1362,23 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "punctuation.section.arguments.begin.bracket.round.function.call.initializer", ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\}/, tag_as: "punctuation.section.arguments.end.bracket.round.function.call.initializer", ), includes: [:evaluation_context] ), - cpp_grammar[:comma], + grammar[:comma], ] ), # parameters PatternRange.new( tag_content_as: "meta.function.definition.parameters.special.constructor", - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\(/, tag_as: "punctuation.section.parameters.begin.bracket.round.special.constructor" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.parameters.end.bracket.round.special.constructor" ), @@ -1414,7 +1397,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: body_includes: [ :function_body_context ], ) end - cpp_grammar[:constructor_inline] = constructor[ + grammar[:constructor_inline] = constructor[ # find the begining of the line /^/.then(std_space).zeroOrMoreOf( should_fully_match: ["constexpr", "explicit", "explicit constexpr"], @@ -1427,15 +1410,15 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: match: variableBounds[identifier].lookAheadFor(/\(/) ) ] - cpp_grammar[:constructor_root] = constructor[ + grammar[:constructor_root] = constructor[ leading_space.then(optional_calling_convention).then( inline_scope_resolution[".constructor"] ).then( - match: newPattern( - newPattern( - match: variableBounds[identifier], - reference: "class_name", - dont_back_track?: true + match: Pattern.new( + Pattern.new( + match: variableBounds[identifier], + reference: "class_name", + dont_back_track?: true ).then(std_space).then( /::/ ).then(std_space).matchResultOf( @@ -1444,17 +1427,17 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), includes: [ # the first part - newPattern( + Pattern.new( match: identifier.lookAheadFor(/:/), tag_as: "entity.name.type.constructor", ), # the second part - newPattern( + Pattern.new( match: lookBehindFor(/:/).then(identifier), tag_as: "entity.name.function.definition.special.constructor" ), # the scope operator - newPattern( + Pattern.new( match: /::/, tag_as: "punctuation.separator.namespace.access punctuation.separator.scope-resolution.constructor" ) @@ -1472,11 +1455,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: deleted_and_default_constructor, PatternRange.new( tag_content_as: "meta.function.definition.parameters.special.member.destructor", - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\(/, tag_as: "punctuation.section.parameters.begin.bracket.round.special.member.destructor" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.parameters.end.bracket.round.special.member.destructor" ), @@ -1491,8 +1474,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: body_includes: [ :function_body_context ], ) end - cpp_grammar[:destructor_inline] = destructor[ - newPattern( + grammar[:destructor_inline] = destructor[ + Pattern.new( # find the begining of the line /^/.then(std_space).then(optional_calling_convention).zeroOrMoreOf( match: @cpp_tokens.that(:isFunctionSpecifier).then(std_space), @@ -1505,12 +1488,12 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ) ] - cpp_grammar[:destructor_root] = destructor[ + grammar[:destructor_root] = destructor[ optional_calling_convention.then( inline_scope_resolution[".destructor"] ).then( - match: newPattern( - newPattern( + match: Pattern.new( + Pattern.new( match: variableBounds[identifier], reference: "class_name", dont_back_track?: true @@ -1522,17 +1505,17 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), includes: [ # the first part - newPattern( + Pattern.new( match: identifier.lookAheadFor(/:/), tag_as: "entity.name.type.destructor", ), # the second part - newPattern( + Pattern.new( match: lookBehindFor(/:/).then(/~/).then(identifier), tag_as: "entity.name.function.definition.special.member.destructor" ), # the scope operator - newPattern( + Pattern.new( match: /::/, tag_as: "punctuation.separator.namespace.access punctuation.separator.scope-resolution.destructor" ) @@ -1542,15 +1525,15 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Operators # - cpp_grammar[:operators] = [] - cpp_grammar[:wordlike_operators] = newPattern( + grammar[:operators] = [] + grammar[:wordlike_operators] = Pattern.new( match: variableBounds[ @cpp_tokens.that(:isOperator, :isWord, not(:isTypeCastingOperator), not(:isControlFlow), not(:isFunctionLike)) ], tag_as: "keyword.operator.wordlike keyword.operator.$match", ) array_of_function_like_operators = @cpp_tokens.tokens.select { |each| each[:isFunctionLike] && !each[:isSpecifier] } for each in array_of_function_like_operators name = each[:name] - cpp_grammar[:operators].push(functionCallGenerator[ + grammar[:operators].push(functionCallGenerator[ repository_name: "#{name}_operator", match_name: variableBounds[/#{name}/], tag_name_as: "keyword.operator.functionlike keyword.operator.#{name}", @@ -1559,54 +1542,54 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ]) end - cpp_grammar[:ternary_operator] = PatternRange.new( + grammar[:ternary_operator] = PatternRange.new( apply_end_pattern_last: true, - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\?/, tag_as: "keyword.operator.ternary", ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /:/, tag_as: "keyword.operator.ternary" ), - includes: cpp_grammar[:evaluation_context] + includes: grammar[:evaluation_context] ) - cpp_grammar[:operators] += [ - newPattern( + grammar[:operators, overwrite: true] += [ + Pattern.new( match: /--/, tag_as: "keyword.operator.decrement" ), - newPattern( + Pattern.new( match: /\+\+/, tag_as: "keyword.operator.increment" ), - newPattern( + Pattern.new( match: /%=|\+=|-=|\*=|(?>=|\|=/, tag_as: "keyword.operator.assignment.compound.bitwise" ), - newPattern( + Pattern.new( match: /<<|>>/, tag_as: "keyword.operator.bitwise.shift" ), - newPattern( + Pattern.new( match: /!=|<=|>=|==|<|>/, tag_as: "keyword.operator.comparison" ), - newPattern( + Pattern.new( match: /&&|!|\|\|/, tag_as: "keyword.operator.logical" ), - newPattern( + Pattern.new( match: /&|\||\^|~/, tag_as: "keyword.operator" ), :assignment_operator, - newPattern( + Pattern.new( match: /%|\*|\/|-|\+/, tag_as: "keyword.operator" ), @@ -1618,7 +1601,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: after_declaration = std_space.lookAheadFor(/[{=,);]|\n/).lookAheadToAvoid(/\(/) functionPointerGenerator = ->(identifier_tag) do return PatternRange.new( - start_pattern: cpp_grammar[:simple_type].then(std_space).then( + start_pattern: grammar[:simple_type].then(std_space).then( match: /\(/, tag_as: "punctuation.section.parens.begin.bracket.round.function.pointer" ).then( @@ -1639,7 +1622,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: match: /\(/, tag_as: "punctuation.section.parameters.begin.bracket.round.function.pointer" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.parameters.end.bracket.round.function.pointer" ).then(after_declaration), @@ -1648,13 +1631,23 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] ) end - cpp_grammar[:function_pointer] = functionPointerGenerator["variable.other.definition.pointer.function"] - cpp_grammar[:function_pointer_parameter] = functionPointerGenerator["variable.parameter.pointer.function"] + grammar[:function_pointer] = functionPointerGenerator["variable.other.definition.pointer.function"] + grammar[:function_pointer_parameter] = functionPointerGenerator["variable.parameter.pointer.function"] + grammar[:typedef_function_pointer] = PatternRange.new( + start_pattern: Pattern.new( + match: variableBounds[/typedef/], + tag_as: "keyword.other.typedef" + ).maybe(@spaces).lookAheadFor(/.*\(\*\s*/.then(identifier).then(/\s*\)/)), + end_pattern: lookBehindFor(/;/), + includes: [ + functionPointerGenerator["entity.name.type.alias entity.name.type.pointer.function"] + ] + ) # # Parameters # - parameter_ending = lookAheadFor(/\)/).or(cpp_grammar[:comma]) - cpp_grammar[:parameter_or_maybe_value] = PatternRange.new( + parameter_ending = lookAheadFor(/\)/).or(grammar[:comma]) + grammar[:parameter_or_maybe_value] = PatternRange.new( tag_as: "meta.parameter", start_pattern: std_space.lookAheadFor(/\w/), end_pattern: parameter_ending, @@ -1668,11 +1661,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :decltype, :vararg_ellipses, # this next pattern is for finding preceding modifiers like "const" or "short const" and then forcing the word after them to be tagged as a type "const aType" "short const int" - newPattern( - newPattern( + Pattern.new( + Pattern.new( match: oneOrMoreOf( # a specifier - newPattern( + Pattern.new( match: @cpp_tokens.that(:isStorageSpecifier), tag_as: "storage.modifier.specifier.parameter", ).then(std_space) @@ -1681,7 +1674,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :storage_types ] ).then(std_space).then( - newPattern( + Pattern.new( inline_builtin_storage_type ).or( match: variableBounds[identifier].then( @@ -1697,7 +1690,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :function_call, # function call is here because of #282, it should be below decltype() and function pointer, storage types, and modifiers but above scope resolution :scope_resolution_parameter_inner_generated, # match the class/struct/enum/union keywords - newPattern( + Pattern.new( match: @cpp_tokens.that(:isTypeCreator), tag_as: "storage.type.$match" ), @@ -1710,7 +1703,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), # assignment_operator, # # standard parameter - newPattern( + Pattern.new( # avoid # 1. \s (otherwise the checks below wont work) # 2. \( the start of the function @@ -1737,18 +1730,18 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: PatternRange.new( tag_as: "meta.bracket.square.array", # \G only match at the begining - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\[/, tag_as: "punctuation.definition.begin.bracket.square.array.type" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\]/, tag_as: "punctuation.definition.end.bracket.square.array.type" ), includes: [ :evaluation_context ] ), # # any words that are not storage types/modifiers, scope resolutions, or parameters are assumed to be user-defined types - newPattern( + Pattern.new( match: identifier.then(@cpp_tokens.lookBehindToAvoidWordsThat(:isTypeCreator)), tag_as: "entity.name.type.parameter" ), @@ -1758,7 +1751,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :evaluation_context # this is part of the #282 workaround ] ) - cpp_grammar[:parameter] = PatternRange.new( + grammar[:parameter] = PatternRange.new( tag_as: "meta.parameter", start_pattern: std_space.lookAheadFor(/\w/), end_pattern: parameter_ending, @@ -1768,11 +1761,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :decltype, :vararg_ellipses, # this next pattern is for finding preceding modifiers like "const" or "short const" and then forcing the word after them to be tagged as a type "const aType" "short const int" - newPattern( - newPattern( + Pattern.new( + Pattern.new( match: oneOrMoreOf( # a specifier - newPattern( + Pattern.new( match: @cpp_tokens.that(:isStorageSpecifier), tag_as: "storage.modifier.specifier.parameter", ).then(std_space) @@ -1781,7 +1774,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :storage_types ] ).then(std_space).then( - newPattern( + Pattern.new( inline_builtin_storage_type ).or( match: variableBounds[identifier].then( @@ -1796,7 +1789,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :storage_types, :scope_resolution_parameter_inner_generated, # match the class/struct/enum/union keywords - newPattern( + Pattern.new( match: @cpp_tokens.that(:isTypeCreator), tag_as: "storage.type.$match" ), @@ -1809,7 +1802,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), assignment_operator, # standard parameter - newPattern( + Pattern.new( # avoid # 1. \s (otherwise the checks below wont work) # 2. \( the start of the function @@ -1836,18 +1829,18 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: PatternRange.new( tag_as: "meta.bracket.square.array", # \G only match at the begining - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\[/, tag_as: "punctuation.definition.begin.bracket.square.array.type" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\]/, tag_as: "punctuation.definition.end.bracket.square.array.type" ), includes: [ :evaluation_context ] ), # any words that are not storage types/modifiers, scope resolutions, or parameters are assumed to be user-defined types - newPattern( + Pattern.new( match: identifier.then(@cpp_tokens.lookBehindToAvoidWordsThat(:isTypeCreator)), tag_as: "entity.name.type.parameter" ), @@ -1862,7 +1855,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: dot_operator = /\.\*/.or(/\./) arrow_operator = /->\*/.or(/->/) dot_or_arrow_operator = /(?:\.\*|\.|->|->\*)/ - member_operator = newPattern( + member_operator = Pattern.new( match: dot_operator, tag_as: "punctuation.separator.dot-access" ).or( @@ -1874,7 +1867,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # TODO: member_access and method_access might also need additional matching to handle scope resolutions generatePartialMemberFinder = ->(tag_name) do the_this_keyword.or( - newPattern( + Pattern.new( match: variable_name_without_bounds.or(lookBehindFor(/\]|\)/)).maybe(@spaces), tag_as: tag_name, ) @@ -1884,7 +1877,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: end partial_member = generatePartialMemberFinder["variable.other.object.access"] member_context = [ - mid_member = newPattern( + mid_member = Pattern.new( match: lookBehindFor(dot_or_arrow_operator).maybe( @spaces ).then( @@ -1902,14 +1895,14 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # access to attribute type_represenetations = @cpp_tokens.representationsThat(:isType) lookahead_friedly_types_pattern = /#{type_represenetations.map { |each| each+"[^#{@standard_character}]" } .join('|')}/ - cpp_grammar[:member_access] = member_access = newPattern( + grammar[:member_access] = member_access = Pattern.new( match: member_start.then( match: @word_boundary.lookAheadToAvoid(lookahead_friedly_types_pattern).then(variable_name_without_bounds).then(@word_boundary).lookAheadToAvoid(/\(/), tag_as: "variable.other.property" ) ) # access to method - cpp_grammar[:method_access] = method_access = PatternRange.new( + grammar[:method_access] = method_access = PatternRange.new( start_pattern: member_start.then( # the ~ is for destructors match: maybe(/~/).then(variable_name_without_bounds), @@ -1918,7 +1911,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: match: /\(/, tag_as: "punctuation.section.arguments.begin.bracket.round.function.member" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.arguments.end.bracket.round.function.member" ), @@ -1928,7 +1921,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # Namespace # # see https://en.cppreference.com/w/cpp/language/namespace - cpp_grammar[:using_namespace] = PatternRange.new( + grammar[:using_namespace] = PatternRange.new( tag_as: "meta.using-namespace", start_pattern: lookBehindToAvoid(@standard_character).then( match: /using/, @@ -1937,7 +1930,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: match: /namespace/, tag_as: "keyword.other.namespace.directive storage.type.namespace.directive" ).then(@spaces).maybe( - cpp_grammar[:scope_resolution_namespace_using] + grammar[:scope_resolution_namespace_using] ).then( match: variable_name, tag_as: "entity.name.namespace" @@ -1946,7 +1939,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), end_pattern: @semicolon, ) - cpp_grammar[:namespace_alias] = newPattern( + grammar[:namespace_alias] = Pattern.new( tag_as: "meta.declaration.namespace.alias", should_fully_match: ["namespace foo = bar;", "namespace fs=boost::filesystem;", "namespace std = ::std;"], should_not_partial_match: ["namespace foo {", "using namespace std;"], @@ -1958,7 +1951,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "entity.name.namespace.alias", ).maybe(@spaces).then(assignment_operator).maybe(@spaces).then( tag_as: "meta.declaration.namespace.alias.value", - match: cpp_grammar[:scope_resolution_namespace_alias].maybe(@spaces).then( + match: grammar[:scope_resolution_namespace_alias].maybe(@spaces).then( match: variable_name, tag_as: "entity.name.namespace", ).maybe(@spaces).then( @@ -1966,22 +1959,22 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), ), ) - cpp_grammar[:namespace_block] = generateBlockFinder( + grammar[:namespace_block] = generateBlockFinder( name: "namespace", tag_as: "meta.block.namespace", needs_semicolon: false, - start_pattern: newPattern( + start_pattern: Pattern.new( match: variableBounds[/namespace/], tag_as: "keyword.other.namespace.definition storage.type.namespace.definition" ), head_includes: [ :ever_present_context, :attributes_context, - cpp_grammar[:scope_resolution_namespace_block].maybe(@spaces).then( + grammar[:scope_resolution_namespace_block].maybe(@spaces).then( match: variable_name, tag_as: "entity.name.namespace", ).maybe(@spaces).maybe( - newPattern( + Pattern.new( match: /::/, tag_as: "punctuation.separator.scope-resolution.namespace.block" ).maybe(@spaces).then( @@ -1992,24 +1985,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ], ) -# -# Preprocessor -# - # not sure if this pattern is actually accurate (it was the one provided by atom/c.tmLanguage) - preprocessor_name_no_bounds = /[a-zA-Z_$][\w$]*/ - preprocessor_function_name = preprocessor_name_no_bounds.lookAheadFor(maybe(@spaces).then(/\(/)) - cpp_grammar[:macro_argument] = newPattern( - match: /##/.then(variable_name_without_bounds).lookAheadToAvoid(@standard_character), - tag_as: "variable.other.macro.argument" - ) - # # Lambdas # array_of_invalid_function_names = @cpp_tokens.representationsThat(:canAppearBeforeLambdaCapture) non_variable_name = /#{array_of_invalid_function_names.map { |each| '\W'+each+'|^'+each } .join('|')}/ - cpp_grammar[:lambdas] = lambdas = PatternRange.new( - start_pattern: newPattern( + grammar[:lambdas] = lambdas = PatternRange.new( + start_pattern: Pattern.new( should_fully_match: [ "[]", "[=]", "[&]", "[x,y,x]", "[x, y, &z, w = 1 + 1]", "[ a = blah[1324], b, c ]" ], should_partial_match: [ "[]", "[=](", "[&]{", "[x,y,x]", "[x, y, &z, w = 1 + 1] (", "[ a = blah[1324], b, c ] {" ], should_not_partial_match: [ "delete[]", "thing[]", "thing []", "thing []", "thing[0][0] = 0" ], @@ -2023,14 +2005,14 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # this pattern is still imperfect: if someone had a string literal with ['s in it, it could fail includes: [ :the_this_keyword, - newPattern( + Pattern.new( match: identifier, tag_as: "variable.parameter.capture", ).then(std_space).then( lookAheadFor(/\]|\z|$/).or( - cpp_grammar[:comma] + grammar[:comma] ).or( - cpp_grammar[:assignment_operator] + grammar[:assignment_operator] ) ), :evaluation_context @@ -2040,30 +2022,30 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "punctuation.definition.capture.end.lambda", ) ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: lookBehindFor(/}/), ), includes: [ # check for parameters first PatternRange.new( tag_as: 'meta.function.definition.parameters.lambda', - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\(/, tag_as: "punctuation.definition.parameters.begin.lambda", ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.definition.parameters.end.lambda", ), includes: [ :function_parameter_context ] ), # specifiers - newPattern( + Pattern.new( match: variableBounds[ @cpp_tokens.that(:isLambdaSpecifier) ], tag_as: "storage.modifier.lambda.$match" ), # check for the -> syntax - newPattern( + Pattern.new( match: /->/, tag_as: "punctuation.definition.lambda.return-type" ).maybe( @@ -2073,11 +2055,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # then find the body PatternRange.new( tag_as: "meta.function.definition.body.lambda", - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\{/, tag_as: "punctuation.section.block.begin.bracket.curly.lambda", ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\}/, tag_as: "punctuation.section.block.end.bracket.curly.lambda", ), @@ -2088,34 +2070,43 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Classes, structs, unions, enums # - cpp_grammar[:enumerator_list] = newPattern( - match: newPattern( - match: variable_name, - tag_as: "variable.other.enummember", - ).maybe(@spaces).maybe(inline_attribute).maybe(@spaces) - .maybe( - newPattern( - match: /\=/, - tag_as: "keyword.operator.assignment", - ).maybe(@spaces).then( - match: /.+?/, - includes: [ :evaluation_context ] - ).maybe(@spaces) - ).then(newPattern( - match: newPattern(/[,;]/.lookAheadToAvoid(/'/)).or(/\n/), - includes: [ - :comma, - :semicolon, - ], - ).or(lookAheadFor(/\}[^']/)).or(lookAheadFor(/\/\//.or(/\/\*/)))), + grammar[:enumerator_list] = Pattern.new( tag_as: "meta.enum.definition", + match: Pattern.new( + Pattern.new( + match: variable_name, + tag_as: "variable.other.enummember", + ).maybe(@spaces).maybe( + inline_attribute + ).maybe(@spaces).maybe( + Pattern.new( + match: /\=/, + tag_as: "keyword.operator.assignment", + ).maybe(@spaces).then( + match: /.+?/, + includes: [ :evaluation_context ] + ).maybe(@spaces) + ).then( + Pattern.new( + match: Pattern.new(/[,;]/.lookAheadToAvoid(/'/)).or(/\n/), + includes: [ + :comma, + :semicolon, + ], + ).or( + lookAheadFor(/\}[^']/)).or( + lookAheadFor(/\/\//.or(/\/\*/) + ) + ) + ) + ), ) # see https://en.cppreference.com/w/cpp/language/enum # this range matches both the case with brackets and the case without brackets - cpp_grammar[:enum_block] = generateBlockFinder( + grammar[:enum_block] = generateBlockFinder( name: "enum", tag_as: "meta.block.enum", - start_pattern: newPattern( + start_pattern: Pattern.new( match: variableBounds[ /enum/ ], tag_as: "storage.type.enum" ).maybe( @@ -2139,31 +2130,32 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ), head_includes: [ :$initial_context ], - body_includes: [ :enumerator_list, :comments, :comma, :semicolon ], + body_includes: [ :ever_present_context, :enumerator_list, :comments, :comma, :semicolon ], ) # the following are basically the equivlent of: # @cpp_tokens.that(:isAccessSpecifier).or(/,/).or(/:/) # that ^ causes an error in the lookBehindFor() so it has to be manually spread can_come_before_a_inherited_class = @cpp_tokens.representationsThat(:isInheritanceSpecifier) + [ ',', ':', ] can_come_before_a_inherited_class_regex = /#{can_come_before_a_inherited_class.join('|')}/ - cpp_grammar[:inheritance_context] = [ - newPattern( + grammar[:inheritance_context] = [ + :ever_present_context, + Pattern.new( match: /,/, tag_as: "punctuation.separator.delimiter.comma.inheritance" ), - newPattern( + Pattern.new( match: variableBounds[ @cpp_tokens.that(:isAccessSpecifier) ], tag_as: "storage.type.modifier.access.$match", ), - newPattern( + Pattern.new( match: variableBounds[ /virtual/ ], tag_as: "storage.type.modifier.virtual", ), lookBehindFor(can_come_before_a_inherited_class_regex).maybe(@spaces).lookAheadToAvoid(@cpp_tokens.that(:isAccessSpecifier).or(/virtual/)).then( qualified_type - ) + ), ] - final_modifier = newPattern( + final_modifier = Pattern.new( match: /final/, tag_as: "storage.type.modifier.final", ) @@ -2171,16 +2163,16 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: return generateBlockFinder( tag_as: "meta.block.#{name}", name: name, - start_pattern: newPattern( + start_pattern: Pattern.new( should_fully_match: ["#{name} foo: bar", "#{name} foo: public baz"], should_not_fully_match: ["#{name} foo {","#{name} foo{"], should_partial_match: ["#{name} foo f;", "#{name} st s;"], - match: newPattern( + match: Pattern.new( reference: "storage_type", match: variableBounds[ /#{name}/ ], tag_as: "storage.type.$match", ).then( - @spaces.or( + std_space.or( inline_attribute ).or( lookAheadFor(/{/) @@ -2188,16 +2180,16 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ).maybe( # normally macros like this wouldn't be supported, but I imagine this one is fairly common std_space.then(match: /DLLEXPORT/, tag_as: "entity.name.other.preprocessor.macro.predefined.DLLEXPORT").then(std_space) - ).maybe(inline_attribute).maybe(@spaces).maybe( + ).maybe(inline_attribute).then(std_space).maybe( match: variable_name, tag_as: "entity.name.type.$reference(storage_type)", ).maybe( - @spaces.then(final_modifier).maybe(@spaces) + std_space.then(final_modifier).then(std_space) ).maybe( # # inheritance # - maybe(@spaces).then( + std_space.then( match: /:/, tag_as: "punctuation.separator.colon.inheritance" # the following may seem redundant (removing it shouldn't change anything) @@ -2205,17 +2197,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # However its preferable to match things here, in the Start (using a pattern), over matching it inside of the range # this is because the start pattern typically fails safely (is limited to 1 line), while typically Ranges fail dangerously (can match the whole document) ).zeroOrMoreOf( - match: maybe(@spaces).maybe(/,/).maybe( - @spaces - ).maybe( - @cpp_tokens.that(:isAccessSpecifier) - ).maybe(@spaces).oneOrMoreOf( - maybe(@spaces).maybe(/,/).maybe( - @spaces - ).lookAheadToAvoid( - @cpp_tokens.that(:isAccessSpecifier) - ).then(qualified_type.without_numbered_capture_groups) - ), + match: /[^{]/, + dont_back_track?: true, includes: [ :inheritance_context ] ) ), @@ -2229,15 +2212,15 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tail_includes: tail_includes ) end - cpp_grammar[:class_block] = generateClassOrStructBlockFinder["class"] - cpp_grammar[:struct_block] = generateClassOrStructBlockFinder["struct"] - cpp_grammar[:union_block] = generateClassOrStructBlockFinder["union"] + grammar[:class_block] = generateClassOrStructBlockFinder["class"] + grammar[:struct_block] = generateClassOrStructBlockFinder["struct"] + grammar[:union_block] = generateClassOrStructBlockFinder["union"] # the following is a legacy pattern, I'm not sure if it is still accurate # I have no idea why it matches a double quote - cpp_grammar[:extern_block] = generateBlockFinder( + grammar[:extern_block] = generateBlockFinder( name: 'extern', tag_as: "meta.block.extern", - start_pattern: newPattern( + start_pattern: Pattern.new( std_space.then( match: /extern/, tag_as: "storage.type.extern" @@ -2248,7 +2231,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) generateTypedefClassOrStructBlockFinder = ->(name) do return PatternRange.new( - start_pattern: newPattern( + start_pattern: Pattern.new( match: variableBounds[/typedef/], tag_as: "keyword.other.typedef" ).maybe(@spaces).lookAheadFor(variableBounds[/#{name}/]), @@ -2264,14 +2247,14 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] ) end - cpp_grammar[:typedef_class] = generateTypedefClassOrStructBlockFinder["class"] - cpp_grammar[:typedef_struct] = generateTypedefClassOrStructBlockFinder["struct"] - cpp_grammar[:typedef_union] = generateTypedefClassOrStructBlockFinder["union"] + grammar[:typedef_class] = generateTypedefClassOrStructBlockFinder["class"] + grammar[:typedef_struct] = generateTypedefClassOrStructBlockFinder["struct"] + grammar[:typedef_union] = generateTypedefClassOrStructBlockFinder["union"] generateDeclareFor = ->(name) do - newPattern( + Pattern.new( should_partial_match: [ "#{name} crypto_aead *tfm = crypto_aead_reqtfm(req);", "#{name} aegis_block blocks[AEGIS128L_STATE_BLOCKS];" ], - match: newPattern( + match: Pattern.new( match: /#{name}/, tag_as: "storage.type.#{name}.declare", ).then(std_space).then( @@ -2287,16 +2270,16 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ).then(std_space).lookAheadFor(/\S/).lookAheadToAvoid(/:/) ) end - cpp_grammar[:standard_declares] = [ - cpp_grammar[:struct_declare] = generateDeclareFor["struct"], - cpp_grammar[:union_declare ] = generateDeclareFor["union"], - cpp_grammar[:enum_declare ] = generateDeclareFor["enum"], - cpp_grammar[:class_declare ] = generateDeclareFor["class"], + grammar[:standard_declares] = [ + grammar[:struct_declare] = generateDeclareFor["struct"], + grammar[:union_declare ] = generateDeclareFor["union"], + grammar[:enum_declare ] = generateDeclareFor["enum"], + grammar[:class_declare ] = generateDeclareFor["class"], ] generateOverqualifiedTypeFor = ->(name) do - newPattern( + Pattern.new( should_partial_match: [ "#{name} skcipher_walk *walk," ], - match: newPattern( + match: Pattern.new( match: /#{name}/, tag_as: "storage.type.#{name}.parameter", ).then(std_space).then( @@ -2313,49 +2296,22 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ).lookAheadFor(/,|\)|\n/) ) end - cpp_grammar[:over_qualified_types] = [ - cpp_grammar[:parameter_struct] = generateOverqualifiedTypeFor["struct"], - cpp_grammar[:parameter_enum ] = generateOverqualifiedTypeFor["enum"], - cpp_grammar[:parameter_union ] = generateOverqualifiedTypeFor["union"], - cpp_grammar[:parameter_class ] = generateOverqualifiedTypeFor["class"], + grammar[:over_qualified_types] = [ + grammar[:parameter_struct] = generateOverqualifiedTypeFor["struct"], + grammar[:parameter_enum ] = generateOverqualifiedTypeFor["enum"], + grammar[:parameter_union ] = generateOverqualifiedTypeFor["union"], + grammar[:parameter_class ] = generateOverqualifiedTypeFor["class"], ] - - -# -# preprocessor directives -# - # TODO, change all blocks/parentheses so that they end and the end of a macro - # TODO, find a good solution to dealing with if statments that cross in to/out of blocks - cpp_grammar[:hacky_fix_for_stray_directive] = hacky_fix_for_stray_directive = newPattern( - match: variableBounds[/#(?:endif|else|elif)/], - tag_as: "keyword.control.directive.$match" - ) - cpp_grammar[:single_line_macro] = newPattern( - should_fully_match: ['#define EXTERN_C extern "C"'], - match: /^/.then(std_space).then(/#define/).then(/.*/).lookBehindToAvoid(/[\\]/).then(@end_of_line), - includes: [ - :meta_preprocessor_macro, - :comments, - :string_context, - :number_literal, - :operators, - :semicolon, - ] - ) # # Misc # - cpp_grammar[:assembly] = assembly_pattern() - cpp_grammar[:backslash_escapes] = backslash_escapes() - cpp_grammar[:macro_argument] = newPattern( - match: /##?/.then(variable_name_without_bounds).lookAheadToAvoid(@standard_character), - tag_as: "variable.other.macro.argument" - ) + grammar[:assembly] = assembly_pattern() + grammar[:backslash_escapes] = backslash_escapes() # # Misc Legacy # - cpp_grammar[:square_brackets] = { + grammar[:square_brackets] = { name: "meta.bracket.square.access", begin: "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", beginCaptures: { @@ -2378,257 +2334,38 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:empty_square_brackets] = { + grammar[:empty_square_brackets] = { name: "storage.modifier.array.bracket.square", match: /#{lookBehindToAvoid(/delete/)}\\[\\s*\\]/ } - cpp_grammar[:misc_storage_modifiers] = newPattern( + grammar[:misc_storage_modifiers] = Pattern.new( match: /\b(?:export|mutable|typename|thread_local|register|restrict|static|volatile|inline)\b/, tag_as: "storage.modifier.$match" ) - cpp_grammar[:meta_preprocessor_macro] = PatternRange.new( - tag_as: "meta.preprocessor.macro", - start_pattern: @start_of_line.then(std_space).then( - match: newPattern(match: /#/, tag_as:"punctuation.definition.directive") - .maybe(@spaces).then(/define\b/), - tag_as: "keyword.control.directive.define" - ).then(@spaces).then( - match: identifier, - tag_as: "entity.name.function.preprocessor" - ).maybe(newPattern( - match: /\(/, - tag_as: "punctuation.definition.parameters.begin", - ).then( - match: /[^()\\]+/, - includes: [ - lookBehindFor(/[(,]/).maybe(@spaces).then( - match: identifier, - tag_as: "variable.parameter.preprocessor" - ).maybe(@spaces), - newPattern( - match: /,/, - tag_as: "punctuation.separator.parameters" - ), - newPattern( - match: /\.\.\./, - tag_as: "punctuation.vararg-ellipses.variable.parameter.preprocessor" - ) - ] - ).then( - match: /\)/, - tag_as: "punctuation.definition.parameters.end" - )), - end_pattern: /(? { - name: "keyword.control.directive.diagnostic.$3" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(? { - name: "punctuation.definition.string.begin" - } - }, - end: "\"|(? { - name: "punctuation.definition.string.end" - } - }, - name: "string.quoted.double", - patterns: [ - { - include: "#line_continuation_character" - } - ] - }, - { - begin: "'", - beginCaptures: { - "0" => { - name: "punctuation.definition.string.begin" - } - }, - end: "'|(? { - name: "punctuation.definition.string.end" - } - }, - name: "string.quoted.single", - patterns: [ - { - include: "#line_continuation_character" - } - ] - }, - { - begin: "[^'\"]", - end: "(?", "#include \"my_header\"", "#include INC_HEADER","#include", "#include //comment"], - match: @start_of_line.then(std_space).then( - match: newPattern(match: /#/, tag_as: "punctuation.definition.directive") - .maybe(@spaces).then( - match: /include/.or(/include_next/).or(/import/), - reference: "include_type" - ).then(@word_boundary), - tag_as: "keyword.control.directive.$reference(include_type)" - ).maybe(@spaces).then(newPattern( - # system header [cpp.include]/2 - match: newPattern( - match: /]/).maybe( - match: />/, - tag_as: "punctuation.definition.string.end" - ).then(std_space).then(@end_of_line.or(lookAheadFor(/\/\//))), - tag_as: "string.quoted.other.lt-gt.include" - ).or( - # other headers [cpp.include]/3 - match: newPattern( - match: /\"/, - tag_as: "punctuation.definition.string.begin" - ).zeroOrMoreOf(/[^\"]/).maybe( - match: /\"/, - tag_as: "punctuation.definition.string.end" - ).then(std_space).then(@end_of_line.or(lookAheadFor(/\/\//))), - tag_as: "string.quoted.double.include" - ).or( - # macro includes [cpp.include]/4 - match: identifier.then(std_space).then(@end_of_line.or(lookAheadFor(/\/\//))), - tag_as: "entity.name.other.preprocessor.macro.include" - ).or( - # correctly color a lone `#include` - match: std_space.then(@end_of_line.or(lookAheadFor(/\/\//))), - )), - tag_as: "meta.preprocessor.include" - ) - cpp_grammar[:meta_preprocessor_line] = { - name: "meta.preprocessor", - begin: "^\\s*((#)\\s*line)\\b", - beginCaptures: { - "1" => { - name: "keyword.control.directive.line" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=(?://|/\\*))|(? { - name: "keyword.control.directive.undef" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=(?://|/\\*))|(? { - name: "keyword.control.directive.pragma" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=(?://|/\\*))|(? { - name: "constant.character.escape.line-continuation" - } - } - } - cpp_grammar[:parentheses] = PatternRange.new( + grammar[:line_continuation_character] = Pattern.new( + match: /\\\n/, + tag_as: "constant.character.escape.line-continuation", + ) + grammar[:parentheses] = PatternRange.new( tag_as: "meta.parens", - start_pattern: newPattern( + start_pattern: Pattern.new( match: /\(/, tag_as: "punctuation.section.parens.begin.bracket.round" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /\)/, tag_as: "punctuation.section.parens.end.bracket.round" ), @@ -2711,32 +2432,14 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # TODO: for typecasting (eventually this should be replaced) :over_qualified_types, # TODO: for range-based for loops (eventually this should be replaced) - newPattern( + Pattern.new( match: lookBehindToAvoid(/:/).then(/:/).lookAheadToAvoid(/:/), tag_as: "punctuation.separator.colon.range-based" ), :evaluation_context ] ) - cpp_grammar[:pragma_mark] = { - captures: { - "1" => { - name: "meta.preprocessor.pragma" - }, - "2" => { - name: "keyword.control.directive.pragma.pragma-mark" - }, - "3" => { - name: "punctuation.definition.directive" - }, - "4" => { - name: "entity.name.tag.pragma-mark" - } - }, - match: "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - name: "meta.section" - } - cpp_grammar[:string_context_c] = [ + grammar[:string_context_c] = [ { begin: "\"", beginCaptures: { @@ -2784,7 +2487,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] } ] - cpp_grammar[:string_escapes_context_c] = [ + grammar[:string_escapes_context_c] = [ :backslash_escapes, { match: "\\\\.", @@ -2805,1014 +2508,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # } # } ] - cpp_grammar[:vararg_ellipses] = { - match: "(? { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "^\\s*((#)\\s*endif\\b)", - endCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "^\\s*((#)\\s*endif\\b)", - endCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? { - name: "keyword.operator.ternary" - } - }, - end: ":", - endCaptures: { - "0" => { - name: "keyword.operator.ternary" - } - }, - patterns: [ - { - include: "#preprocessor_rule_conditional_line_context" - } - ] - }, - :operators, - :language_constants, - { - match: preprocessor_name_no_bounds, - name: "entity.name.function.preprocessor" - }, - :line_continuation_character, - { - begin: "\\(", - beginCaptures: { - "0" => { - name: "punctuation.section.parens.begin.bracket.round" - } - }, - end: "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? { - name: "punctuation.section.parens.end.bracket.round" - } - }, - patterns: [ - { - include: "#preprocessor_rule_conditional_line_context" - } - ] - } - ] - cpp_grammar[:preprocessor_rule_disabled] = { - begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "^\\s*((#)\\s*endif\\b)", - endCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - name: "meta.preprocessor", - patterns: [ - { - include: "#preprocessor_rule_conditional_line_context" - } - ] - }, - { - include: "#comments" - }, - { - include: "#preprocessor_rule_enabled_elif" - }, - { - include: "#preprocessor_rule_enabled_else" - }, - { - include: "#preprocessor_rule_disabled_elif" - }, - { - begin: "^\\s*((#)\\s*elif\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? "comment.block.preprocessor.if-branch", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - } - ] - } - cpp_grammar[:preprocessor_rule_disabled_block] = { - begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "^\\s*((#)\\s*endif\\b)", - endCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - name: "meta.preprocessor", - patterns: [ - { - include: "#preprocessor_rule_conditional_line_context" - } - ] - }, - { - include: "#comments" - }, - { - include: "#preprocessor_rule_enabled_elif_block" - }, - { - include: "#preprocessor_rule_enabled_else_block" - }, - { - include: "#preprocessor_rule_disabled_elif" - }, - { - begin: "^\\s*((#)\\s*elif\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? "comment.block.preprocessor.if-branch.in-block", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - } - ] - } - cpp_grammar[:preprocessor_rule_disabled_elif] = { - begin: "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? "comment.block.preprocessor.elif-branch", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - } - ] - } - cpp_grammar[:preprocessor_rule_enabled] = { - begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - }, - "3" => { - name: "constant.numeric.preprocessor" - } - }, - end: "^\\s*((#)\\s*endif\\b)", - endCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - name: "meta.preprocessor", - patterns: [ - { - include: "#preprocessor_rule_conditional_line_context" - } - ] - }, - { - include: "#comments" - }, - { - begin: "^\\s*((#)\\s*else\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*endif\\b))", - "contentName" => "comment.block.preprocessor.else-branch", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - }, - { - begin: "^\\s*((#)\\s*elif\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName" => "comment.block.preprocessor.if-branch", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - }, - { - begin: "\\n", - end: "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - patterns: [ - { - include: "$initial_context" - } - ] - } - ] - } - cpp_grammar[:preprocessor_rule_enabled_block] = { - begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "^\\s*((#)\\s*endif\\b)", - endCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - name: "meta.preprocessor", - patterns: [ - { - include: "#preprocessor_rule_conditional_line_context" - } - ] - }, - { - include: "#comments" - }, - { - begin: "^\\s*((#)\\s*else\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*endif\\b))", - "contentName" => "comment.block.preprocessor.else-branch.in-block", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - }, - { - begin: "^\\s*((#)\\s*elif\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName" => "comment.block.preprocessor.if-branch.in-block", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - }, - { - begin: "\\n", - end: "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - patterns: [ - { - include: "$initial_context" - } - ] - } - ] - - } - cpp_grammar[:preprocessor_rule_enabled_elif] = { - begin: "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*endif\\b))", - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*endif\\b))", - "contentName" => "comment.block.preprocessor.elif-branch", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - }, - { - begin: "^\\s*((#)\\s*(elif)\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName" => "comment.block.preprocessor.elif-branch", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - }, - { - include: "$initial_context" - } - ] - } - ] - } - cpp_grammar[:preprocessor_rule_enabled_elif_block] = { - begin: "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*endif\\b))", - patterns: [ - { - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(? { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*endif\\b))", - "contentName" => "comment.block.preprocessor.elif-branch.in-block", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - }, - { - begin: "^\\s*((#)\\s*(elif)\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName" => "comment.block.preprocessor.elif-branch", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - }, - { - include: "$initial_context" - } - ] - } - ] - } - cpp_grammar[:preprocessor_rule_enabled_else] = { - begin: "^\\s*((#)\\s*else\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*endif\\b))", - patterns: [ - { - include: "$initial_context" - } - ] - } - cpp_grammar[:preprocessor_rule_enabled_else_block] = { - begin: "^\\s*((#)\\s*else\\b)", - beginCaptures: { - "0" => { - name: "meta.preprocessor" - }, - "1" => { - name: "keyword.control.directive.conditional" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=^\\s*((#)\\s*endif\\b))", - patterns: [ - { - include: "$initial_context" - } - ] - } - cpp_grammar[:preprocessor_rule_define_line_context] = [ - :vararg_ellipses, - :macro_argument, - { - begin: "{", - beginCaptures: { - "0" => { - name: "punctuation.section.block.begin.bracket.curly" - } - }, - end: "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(? { - name: "punctuation.section.block.end.bracket.curly" - } - }, - name: "meta.block", - patterns: [ - { - include: "#preprocessor_rule_define_line_blocks_context" - } - ] - }, - { - match: "\\(", - name: "punctuation.section.parens.begin.bracket.round" - }, - { - match: "\\)", - name: "punctuation.section.parens.end.bracket.round" - }, - { - begin: "(?x)\n(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - end: "(?<=\\))(?!\\w)|(? { - name: "punctuation.definition.string.begin" - } - }, - end: "\"|(? { - name: "punctuation.definition.string.end" - } - }, - name: "string.quoted.double", - patterns: [ - { - include: "#string_escapes_context_c" - }, - { - include: "#line_continuation_character" - } - ] - }, - { - begin: "'", - beginCaptures: { - "0" => { - name: "punctuation.definition.string.begin" - } - }, - end: "'|(? { - name: "punctuation.definition.string.end" - } - }, - name: "string.quoted.single", - patterns: [ - { - include: "#string_escapes_context_c" - }, - { - include: "#line_continuation_character" - } - ] - }, - :$initial_context - ] - cpp_grammar[:preprocessor_rule_define_line_blocks_context] = [ - { - begin: "{", - beginCaptures: { - "0" => { - name: "punctuation.section.block.begin.bracket.curly" - } - }, - end: "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(? { - name: "punctuation.section.block.end.bracket.curly" - } - }, - patterns: [ - { - include: "#preprocessor_rule_define_line_blocks_context" - }, - { - include: "#preprocessor_rule_define_line_context" - } - ] - }, - { - include: "#preprocessor_rule_define_line_context" - } - ] - cpp_grammar[:preprocessor_rule_define_line_functions_context] = [ - :comments, - :storage_types, - :vararg_ellipses, - :method_access, - :member_access, - :operators, - { - begin: "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - beginCaptures: { - "1" => { - name: "entity.name.function" - }, - "2" => { - name: "punctuation.section.arguments.begin.bracket.round" - } - }, - end: "(\\))|(? { - name: "punctuation.section.arguments.end.bracket.round" - } - }, - patterns: [ - { - include: "#preprocessor_rule_define_line_functions_context" - } - ] - }, - { - begin: "\\(", - beginCaptures: { - "0" => { - name: "punctuation.section.parens.begin.bracket.round" - } - }, - end: "(\\))|(? { - name: "punctuation.section.parens.end.bracket.round" - } - }, - patterns: [ - { - include: "#preprocessor_rule_define_line_functions_context" - } - ] - }, - :preprocessor_rule_define_line_context - ] - + grammar[:vararg_ellipses] = Pattern.new( + match: /(?(std_space, identifier) do + # specification source https://gcc.gnu.org/onlinedocs/cpp/ + + # + # helpers + # + directive_start = Pattern.new( + @start_of_line.then(std_space).then( + match: /#/, + tag_as: "punctuation.definition.directive", + ).maybe(@spaces) + ) + non_escaped_newline = lookBehindToAvoid(/\\/).lookAheadFor(/\n/) + grammar[:macro_name] = macro_name = Pattern.new( + match: wordBounds(identifier), + tag_as: "entity.name.function.preprocessor", + ) + # + # #pragma + # + grammar[:pragma_mark] = Pattern.new( + tag_as: "meta.preprocessor.pragma", + match: Pattern.new( + Pattern.new( + tag_as: "keyword.control.directive.pragma.pragma-mark", + match: directive_start.then( + match: /pragma/.then(@spaces).then(/mark/) + ), + ).then(@spaces).then( + match: /.*/, + tag_as: "entity.name.tag.pragma-mark", + ), + ) + ) + grammar[:pragma] = PatternRange.new( + tag_as: "meta.preprocessor.pragma", + start_pattern: Pattern.new( + tag_as: "keyword.control.directive.pragma", + match: directive_start.then(/pragma\b/) + ), + end_pattern: non_escaped_newline, + includes: [ + :comments, + :string_context_c, + Pattern.new( + match: /[a-zA-Z_$][\w\-$]*/, + tag_as: "entity.other.attribute-name.pragma.preprocessor", + ), + :number_literal, + :line_continuation_character, + ] + ) + # + # #include + # + grammar[:include] = Pattern.new( + should_fully_match: ["#include ", "#include \"my_header\"", "#include INC_HEADER","#include", "#include //comment"], + match: @start_of_line.then(std_space).then( + tag_as: "keyword.control.directive.$reference(include_type)", + match: Pattern.new( + Pattern.new( + match: /#/, + tag_as: "punctuation.definition.directive" + ).maybe(@spaces).then( + match: /include/.or(/include_next/).or(/import/), + reference: "include_type" + ).then(@word_boundary) + ), + ).maybe(@spaces).then( + Pattern.new( + # system header [cpp.include]/2 + match: Pattern.new( + match: /]/).maybe( + match: />/, + tag_as: "punctuation.definition.string.end" + ).then(std_space).then(@end_of_line.or(lookAheadFor(/\/\//))), + tag_as: "string.quoted.other.lt-gt.include" + ).or( + # other headers [cpp.include]/3 + match: Pattern.new( + match: /\"/, + tag_as: "punctuation.definition.string.begin" + ).zeroOrMoreOf(/[^\"]/).maybe( + match: /\"/, + tag_as: "punctuation.definition.string.end" + ).then(std_space).then(@end_of_line.or(lookAheadFor(/\/\//))), + tag_as: "string.quoted.double.include" + ).or( + # macro includes [cpp.include]/4 + match: identifier.then(std_space).then(@end_of_line.or(lookAheadFor(/\/\//))), + tag_as: "entity.name.other.preprocessor.macro.include" + ).or( + # correctly color a lone `#include` + match: std_space.then(@end_of_line.or(lookAheadFor(/\/\//))), + ) + ), + tag_as: "meta.preprocessor.include" + ) + # + # #line + # + grammar[:line] = PatternRange.new( + tag_as: "meta.preprocessor.line", + start_pattern: Pattern.new( + tag_as: "keyword.control.directive.line", + match: directive_start.then(/line\b/) + ), + end_pattern: non_escaped_newline, + includes: [ + :string_context_c, + :number_literal, + :line_continuation_character, + ] + ) + # + # diagnostic (#error, #warning) + # + grammar[:diagnostic] = PatternRange.new( + tag_as: "meta.preprocessor.diagnostic", + start_pattern: Pattern.new( + Pattern.new( + tag_as: "keyword.control.directive.diagnostic.$reference(directive)", + match: directive_start.then( + match: /error/.or(/warning/), + reference: "directive" + ) + ).then(@word_boundary).maybe(@spaces) + ), + end_pattern: non_escaped_newline, + includes: [ + # double quotes + PatternRange.new( + tag_as: "string.quoted.double", + start_pattern: Pattern.new( + match: /"/, + tag_as: "punctuation.definition.string.begin", + ), + end_pattern: Pattern.new( + Pattern.new( + match: /"/, + tag_as: "punctuation.definition.string.end", + ).or( + non_escaped_newline + ) + ), + includes: [ :line_continuation_character ] + ), + # single quotes + PatternRange.new( + tag_as: "string.quoted.single", + start_pattern: Pattern.new( + match: /'/, + tag_as: "punctuation.definition.string.begin", + ), + end_pattern: Pattern.new( + Pattern.new( + match: /'/, + tag_as: "punctuation.definition.string.end", + ).or( + non_escaped_newline + ) + ), + includes: [ :line_continuation_character ] + ), + # unquoted + PatternRange.new( + tag_as: "string.unquoted", + start_pattern: /[^'"]/, + end_pattern: non_escaped_newline, + includes: [ + :line_continuation_character, + :comments, + ] + ) + ] + ) + # + # #undef + # + grammar[:undef] = Pattern.new( + tag_as: "meta.preprocessor.undef", + match: Pattern.new( + Pattern.new( + tag_as: "keyword.control.directive.undef", + match: directive_start.then(/undef\b/) + ).then(std_space).then(macro_name) + ), + ) + # + # #define + # + grammar[:single_line_macro] = newPattern( + should_fully_match: ['#define EXTERN_C extern "C"'], + match: /^/.then(std_space).then(/#define/).then(/.*/).lookBehindToAvoid(/[\\]/).then(@end_of_line), + includes: [ + :macro, + :comments, + ] + ) + grammar[:macro] = PatternRange.new( + tag_as: "meta.preprocessor.macro", + start_pattern: Pattern.new( + # the directive + Pattern.new( + tag_as: "keyword.control.directive.define", + match: directive_start.then( + /define\b/ + ), + # the name of the directive + ).maybe(@spaces).then(macro_name) + ), + end_pattern: non_escaped_newline, + includes: [ + # the parameters + PatternRange.new( + start_pattern: Pattern.new( + # find the name of the function + /\G/.maybe(@spaces).then( + match: /\(/, + tag_as: "punctuation.definition.parameters.begin", + ) + ), + end_pattern: Pattern.new( + match: /\)/, + tag_as: "punctuation.definition.parameters.end" + ), + includes: [ + # a parameter + Pattern.new( + lookBehindFor(/[(,]/).maybe(@spaces).then( + match: identifier, + tag_as: "variable.parameter.preprocessor" + ).maybe(@spaces) + ), + # commas + Pattern.new( + match: /,/, + tag_as: "punctuation.separator.parameters" + ), + # ellipses + Pattern.new( + match: /\.\.\./, + tag_as: "punctuation.vararg-ellipses.variable.parameter.preprocessor" + ) + ] + ), + # everything after the parameters + :macro_context, + :macro_argument, + ] + + ) + # + # arguments + # + grammar[:macro_argument] = Pattern.new( + match: /##?/.then(identifier).lookAheadToAvoid(@standard_character), + tag_as: "variable.other.macro.argument" + ) + # + # *conditionals* + # + # this range only ends with #else and #endif and that decision is very intentional + # by doing this the syntax safely closes double-starts or double-closes + # (the if-true being case 1, and the if-false being case 2) + # by only leaving one of the cases open (one of them has to be syntaxtically valid) this allows the grammar to parse the rest of it normally + # there's more complexity behind this, but thats the general idea. See the github preprocessor conditional issues for full details + grammar[:preprocessor_conditional_range] = PatternRange.new( + start_pattern: Pattern.new( + tag_as: "keyword.control.directive.conditional.$reference(conditional_name)", + match: directive_start.then( + match: /ifndef/.or(/ifdef/).or(/if/), + reference: "conditional_name", + ) + ), + while: @start_of_line.lookAheadToAvoid(/\s*+#\s*(?:else|endif)/), + includes: [ + # the first line (the conditional line) + PatternRange.new( + # start at the begining + tag_as: "meta.conditional.preprocessor", + start_pattern: /\G/.lookBehindFor(/ifndef|ifdef|if/), + zeroLengthStart?: true, + end_pattern: non_escaped_newline, + includes: [ :preprocessor_conditional_context ], + ), + :$initial_context, + ] + ) + grammar[:preprocessor_conditional_context] = [ + :preprocessor_conditional_defined, + :comments, + :language_constants, + :string_context_c, + :number_literal, + :operators, + :predefined_macros, + :macro_name, + :line_continuation_character, + ] + grammar[:preprocessor_conditional_defined] = PatternRange.new( + start_pattern: Pattern.new( + Pattern.new( + match: wordBounds(/defined/), + tag_as: "keyword.control.directive.conditional.defined" + ).then( + match: /\(/, + tag_as: "punctuation.section.parens.control.defined" + ) + ), + end_pattern: Pattern.new( + match: /\)/.or(non_escaped_newline), + tag_as: "punctuation.section.parens.control.defined" + ), + includes: [ + :macro_name, + ] + ) + grammar[:preprocessor_conditional_parentheses] = PatternRange.new( + tag_as: "meta.parens.preprocessor.conditional", + start_pattern: newPattern( + match: /\(/, + tag_as: "punctuation.section.parens.begin.bracket.round" + ), + end_pattern: newPattern( + match: /\)/, + tag_as: "punctuation.section.parens.end.bracket.round" + ), + include: [ + :preprocessor_conditional_context + ] + ) + grammar[:preprocessor_conditional_standalone] = Pattern.new( + tag_as: "keyword.control.directive.$reference(conditional_name)", + match: directive_start.then( + match: wordBounds(/(?:endif|else|elif)/), + reference: "conditional_name" + ) + ) + # return the preprocessor context + [ + :pragma_mark, + :pragma, + :include, + :line, + :diagnostic, + :undef, + :preprocessor_conditional_range, + :single_line_macro, + :macro, + :preprocessor_conditional_standalone, + :macro_argument, + ].map {|each| (namespace + each.to_s).to_sym } + end +end \ No newline at end of file diff --git a/source/languages/cpp/lib/std_space.rb b/source/languages/cpp/lib/std_space.rb new file mode 100644 index 00000000..5b9dd312 --- /dev/null +++ b/source/languages/cpp/lib/std_space.rb @@ -0,0 +1,35 @@ +require_relative '../../../../directory' +require_relative PathFor[:textmate_tools] + +Grammar.export(insert_namespace_infront_of_new_grammar_repos: true, insert_namespace_infront_of_all_included_repos: false) do |grammar, namespace| + ->(inline_comment, inline_comment_name) do + Pattern.new( + # NOTE: this pattern can match 0-spaces so long as its still a word boundary + # this is the intention since things like `int/*comment*/a = 10` are valid in c++ + # this space pattern will match inline /**/ comments that do not contain newlines + # >0 length match + match: Pattern.new( + at_least: 1, + quantity_preference: :as_few_as_possible, + match: Pattern.new( + match: @spaces, + dont_back_track?: true + ).or( + inline_comment + ) + # zero length match + ).or( + /\b/.or( + lookBehindFor(/\W/) + ).or( + lookAheadFor(/\W/) + ).or( + @start_of_document + ).or( + @end_of_document + ) + ), + includes: [ inline_comment_name ], + ) + end +end \ No newline at end of file diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index 3e68d7c2..8d3a2d46 100644 --- a/source/textmate_tools.rb +++ b/source/textmate_tools.rb @@ -2,6 +2,7 @@ require 'yaml' require 'set' require 'deep_clone' # gem install deep_clone +require 'pathname' # TODO # use the turnOffNumberedCaptureGroups to disable manual regex groups (which otherwise would completely break the group attributes) @@ -136,16 +137,67 @@ def recursively_set_each_value!(a_lambda) - class Grammar - attr_accessor :data, :all_tags, :language_ending + attr_accessor :data, :all_tags, :language_ending, :namespace, :export_options - # - # Globally accessible current grammar object - # - @@current_grammar = nil - def self.current_grammar - return @@current_grammar + # + # import and export methods + # + @@export_data + def self.export(*args, &block) + # this method's goal is to safely namespace external patterns + # usage: + # Grammar.export(insert_namespace_infront_of_new_grammar_repos: true, insert_namespace_infront_of_all_included_repos: true) do |grammar, namespace| + # # create patterns here with the grammar object + # end + # + # however there is no perfect way to get this done because of dynamic pattern generation and things like includes + # because the solution is imperfect, namespacing is opt-in with explicit names of the behavior + # namely, + # - whether or not the grammar[:repo_name] will get namespaced + # - and whether or not Pattern(includes:[]) will get namespaced + # patterns are dynamically namespaced because it is caused by the grammar object they are being given access to + # this can cause unintuitive results if you are accepting a repo name as an argument for a helper function because that repo name will + # get dynamically namespaced. This is designed to be prevented by turning off the insert_namespace_infront_of_all_included_repos: option + options = {} + if args.size == 1 + options = args[0] + end + # this variable is used to pass data to the instance import() method + @@export_data = { + export_options: options, + lambda: block, + } + end + + def import(filepath, namespace:"") + if not Pathname.new(filepath).absolute? + # try to detect the relative path + source_directory = File.dirname(caller[0].sub(/:\d+:.+?$/,"")) + # make the filepath absolute + filepath = File.join(source_directory, filepath) + end + # make sure it has the .rb extension, for some reason its required for the load function + if filepath[-3..-1] != ".rb" + filepath += ".rb" + end + # import the file using load rather than require so that the @@export_data gets reset on each import + load(filepath) + # create a shallow copy of the grammar + namespaced_grammar = Grammar.new(self, namespace, @@export_data[:export_options]) + # add the dot if needed + if namespace.is_a?(String) && namespace.size > 0 + send_namespace = namespace + '.' + else + send_namespace = '' + end + if @@export_data != nil + # run the import function with the namespaced grammar + output = @@export_data[:lambda][namespaced_grammar, send_namespace] + # clean up the consumed lambda + @@export_data = nil + end + return output end # @@ -352,7 +404,25 @@ def self.convertSpecificIncludes(json_grammar:nil, convert:[], into:"") # # Constructor # - def initialize(wrap_source: false, name:nil, scope_name:nil, global_patterns:[], repository:{}, file_types:[], **other) + def initialize(*args, **kwargs) + # find out if making a grammar copy or not (for importing) + if args[0].is_a?(Grammar) + # make a shallow copy + @data = args[0].data + @language_ending = args[0].language_ending + if args[1].is_a?(String) && args[1].size > 0 + @namespace = args[1] + else+ + @namespace = "" + end + @export_options = kwargs + # if not making a copy then run the normal init + else + self.init(*args, **kwargs) + end + end + + def init(wrap_source: false, name:nil, scope_name:nil, global_patterns:[], repository:{}, file_types:[], **other) @data = { name: name, scopeName: scope_name, @@ -361,24 +431,64 @@ def initialize(wrap_source: false, name:nil, scope_name:nil, global_patterns:[], patterns: global_patterns, repository: repository, } - @wrap_source = wrap_source + @wrap_source = wrap_source @language_ending = scope_name.gsub /.+\.(.+)\z/, "\\1" - @@current_grammar = self + @namespace = "" + end + + # + # internal helpers + # + def insertNamespaceIfNeeded(key) + if @export_options != nil && @namespace.size > 0 && @export_options[:insert_namespace_infront_of_new_grammar_repos] == true + return (@namespace + "." + key.to_s).to_sym + end + return key + end + + def insertNamespaceToIncludesIfNeeded(pattern) + if @export_options != nil && @namespace.size > 0 && @export_options[:insert_namespace_infront_of_new_grammar_repos] == true + if pattern.respond_to?(:includes) && pattern.includes.is_a?(Array) + # change all the repo names + index = -1 + for each in pattern.includes.clone + index += 1 + if each.is_a?(Symbol) + # change the old value with a new one + pattern[index] = (@namespace + "." + each.to_s).to_sym + end + end + end + end end # # External Helpers # - def [](key) + def [](*args) + key = args[0] + key = self.insertNamespaceIfNeeded(key) return @data[:repository][key] end - def []=(key, value) + def []=(*args) + # parse out the arguments: grammar[key, (optional_overwrite)] = value + *keys, value = args + key, overwrite_option = keys + key = self.insertNamespaceIfNeeded(key) + # check for accidental overwrite + overwrite_allowed = overwrite_option.is_a?(Hash) && overwrite_option[:overwrite] + if @data[:repository][key] != nil && (not overwrite_option) + puts "\n\nWarning: the #{key} repository is being overwritten.\n\nIf this is intentional, change:\ngrammar[:#{key}] = *value*\ninto:\ngrammar[:#{key}, overwrite: true] = *value*" + end # add it to the repository @data[:repository][key] = value + # TODO: if the value is an Array, run the insertNamespaceToIncludesIfNeeded # tell the object it was added to a repository if (value.instance_of? Regexp) || (value.instance_of? PatternRange) value.repository_name = key + # namespace all of the symbolic includes + self.insertNamespaceToIncludesIfNeeded(value) end end @@ -1140,6 +1250,13 @@ def group_attributes end end +class Pattern < Regexp + # overwrite the new pattern instead of initialize + def self.new(*args) + return //.then(*args) + end +end + # # Make safe failure for regex methods on strings # @@ -1185,6 +1302,9 @@ def lookBehindFor(*arguments) def lookBehindToAvoid(*arguments) //.lookBehindToAvoid(*arguments) end + def wordBounds(regex_pattern) + return lookBehindToAvoid(@standard_character).then(regex_pattern).lookAheadToAvoid(@standard_character) + end def maybe(*arguments) //.maybe(*arguments) end diff --git a/syntaxes/cpp.embedded.latex.tmLanguage.json b/syntaxes/cpp.embedded.latex.tmLanguage.json index 66140fcd..f589d3dc 100644 --- a/syntaxes/cpp.embedded.latex.tmLanguage.json +++ b/syntaxes/cpp.embedded.latex.tmLanguage.json @@ -1 +1 @@ -{"scopeName":"source.cpp.embedded.latex","fileTypes":["cc","cpp","cp","cxx","c++","C","h","hh","hpp","h++"],"version":"","information_for_contributors":["This code was auto generated by a much-more-readble ruby file","This file essentially an updated/improved fork of the atom syntax","see https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master"],"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"}]}}},"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":"#single_line_macro"},{"include":"#preprocessor_rule_enabled"},{"include":"#preprocessor_rule_disabled"},{"include":"#preprocessor_rule_conditional"},{"include":"#meta_preprocessor_macro"},{"include":"#meta_preprocessor_diagnostic"},{"include":"#meta_preprocessor_include"},{"include":"#pragma_mark"},{"include":"#meta_preprocessor_line"},{"include":"#meta_preprocessor_undef"},{"include":"#meta_preprocessor_pragma"},{"include":"#hacky_fix_for_stray_directive"},{"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":"(\\*\\/)|(?=\\\\end\\{minted\\})","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)(?[#;\\/=*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.block.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":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.decltype.cpp"}},"patterns":[{"include":"#evaluation_context"}]},"decltype":{"contentName":"meta.arguments.decltype.cpp","begin":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.decltype.cpp"}},"patterns":[{"include":"#evaluation_context"}]},"pthread_types":{"match":"((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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)))((?\\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)))((?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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)))((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.switch.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"cpp_attributes":{"name":"support.other.attribute.cpp","begin":"(\\[\\[)","beginCaptures":{"1":{"name":"punctuation.section.attribute.begin.cpp"}},"end":"(\\]\\])|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.attribute.end.cpp"}},"patterns":[{"include":"#attributes_context"},{"begin":"\\(","end":"\\)|(?=\\\\end\\{minted\\})","patterns":[{"include":"#attributes_context"},{"include":"#string_context_c"}]},{"match":"(using)\\s+((?(?:(?>[^<>]*)\\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":"(>)|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"patterns":[{"include":"#template_call_context"}]},"template_isolated_definition":{"match":"(?\\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":"(?)|(?=\\\\end\\{minted\\})","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":"(>)|(?=\\\\end\\{minted\\})","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":"(?\\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":"(?\\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)))(?:(?\\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":"(?\\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)))(?\\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":"(?))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?\\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(?\\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":"(?\\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":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(?\\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":"(?\\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":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.operator-overload.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"static_assert":{"begin":"((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(?=\\))|(?=\\\\end\\{minted\\})","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(?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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)))((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.constructor.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(?=\\{)|(?=\\\\end\\{minted\\})","patterns":[{"contentName":"meta.parameter.initialization.cpp","begin":"((?(?:(?>[^<>]*)\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"contentName":"meta.parameter.initialization.cpp","begin":"((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*)?::)*)(((?>(?\\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":"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.constructor.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(?=\\{)|(?=\\\\end\\{minted\\})","patterns":[{"contentName":"meta.parameter.initialization.cpp","begin":"((?(?:(?>[^<>]*)\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"contentName":"meta.parameter.initialization.cpp","begin":"((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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))))*)(~(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.member.destructor.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*)?::)*)(((?>(?\\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":"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.member.destructor.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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.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":"(?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(:)|(?=\\\\end\\{minted\\})","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":"(?\\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)(?!\\()|(?=\\\\end\\{minted\\})","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":"(?\\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)(?!\\()|(?=\\\\end\\{minted\\})","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":"(?:(?=\\))|(,))|(?=\\\\end\\{minted\\})","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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(?:(?=\\))|(,))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.separator.delimiter.comma.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"match":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\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":"(\\])|(?=\\\\end\\{minted\\})","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(?\\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":"(?:(?=\\))|(,))|(?=\\\\end\\{minted\\})","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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(?:(?=\\))|(,))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.separator.delimiter.comma.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"include":"#assignment_operator"},{"match":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\)|,|\\[|=|\\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":"(\\])|(?=\\\\end\\{minted\\})","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(?\\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)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-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)))((?\\*|->)))","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)))((?\\*|->)))","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)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-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)))((?\\*|->)))","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)))((?\\*|->)))","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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.member.cpp"}},"patterns":[{"include":"#evaluation_context"}]},"using_namespace":{"name":"meta.using-namespace.cpp","begin":"(?(?:(?>[^<>]*)\\g<7>?)+)>)\\s*)?::)*\\s*+)?((?(?:(?>[^<>]*)\\g<9>?)+)>)\\s*)?::)*\\s*+)\\s*((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.namespace.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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*((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"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"},"lambdas":{"begin":"((?:(?<=[^\\s]|^)(?])|(?<=\\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":"(?<=})|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.function.definition.parameters.lambda.cpp","begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.lambda.cpp"}},"end":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.lambda.cpp"}},"patterns":[{"include":"#function_parameter_context"}]},{"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":"(\\})|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.lambda.cpp"}},"patterns":[{"include":"$self"}]}]},"enumerator_list":{"match":"((?(?:(?>[^<>]*)\\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*((?|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.enum.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.enum.cpp"}},"patterns":[{"include":"$self"}]},{"name":"meta.body.enum.cpp","begin":"(?<=\\{|<%|\\?\\?<)","end":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.enum.cpp"}},"patterns":[{"include":"#enumerator_list"},{"include":"#comments"},{"include":"#comma"},{"include":"#semicolon"}]},{"name":"meta.tail.enum.cpp","begin":"(?<=\\}|%>|\\?\\?>)[\\s\\n]*","end":"[\\s\\n]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"inheritance_context":{"patterns":[{"match":",","name":"punctuation.separator.delimiter.comma.inheritance.cpp"},{"match":"(?\\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":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.class.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.class.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"struct_block":{"name":"meta.block.struct.cpp","begin":"((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.struct.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.struct.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"union_block":{"name":"meta.block.union.cpp","begin":"((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.union.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.union.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.extern.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.extern.cpp"}},"patterns":[{"include":"$self"}]},{"name":"meta.body.extern.cpp","begin":"(?<=\\{|<%|\\?\\?<)","end":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]},{"include":"$self"}]},"typedef_class":{"begin":"((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.class.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.class.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.struct.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.struct.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.union.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.union.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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)))((?\\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\\$)((?\\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)))((?\\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\\$)((?\\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)))((?\\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\\$)((?\\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)))((?\\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\\$)((?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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"}]},"hacky_fix_for_stray_directive":{"match":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\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}))*)(?:(\\()([^()\\\\]+)(\\)))?","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.directive.define.cpp"},"6":{"name":"punctuation.definition.directive.cpp"},"7":{"name":"entity.name.function.preprocessor.cpp"},"8":{"name":"punctuation.definition.parameters.begin.cpp"},"9":{"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"}]},"10":{"name":"punctuation.definition.parameters.end.cpp"}},"end":"(?\\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"},"meta_preprocessor_line":{"name":"meta.preprocessor.cpp","begin":"^\\s*((#)\\s*line)\\b","beginCaptures":{"1":{"name":"keyword.control.directive.line.cpp"},"2":{"name":"punctuation.definition.directive.cpp"}},"end":"(?=(?://|/\\*))|(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","beginCaptures":{"1":{"name":"entity.name.function.cpp"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.cpp"}},"end":"(\\))|(?\\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*)?::)*)(((?>(?\\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":"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?\\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":"(?=\\{)|(?=\\\\end\\{minted\\})","patterns":[{"contentName":"meta.parameter.initialization.cpp","begin":"((?(?:(?>[^<>]*)\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"contentName":"meta.parameter.initialization.cpp","begin":"((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*)?::)*)(((?>(?\\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":"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_function_definition":{"name":"meta.function.definition.cpp","begin":"((?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?\\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(?\\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":"(?\\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":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(?\\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":"(?\\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":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_using_namespace":{"name":"meta.using-namespace.cpp","begin":"(?(?:(?>[^<>]*)\\g<7>?)+)>)\\s*)?::)*\\s*+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?(?:(?>[^<>]*)\\g<5>?)+)>)\\s*)?::)*\\s*+)\\s*((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]},{"include":"$self"}]},"macro_safe_typedef_class":{"begin":"((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.class.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.class.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.struct.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.struct.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.union.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.union.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.class.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_struct_block":{"name":"meta.block.struct.cpp","begin":"((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.struct.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_union_block":{"name":"meta.block.union.cpp","begin":"((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))","beginCaptures":{"1":{"name":"meta.head.union.cpp"},"3":{"name":"storage.type.$3.cpp"},"4":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"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":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cpp punctuation.definition.comment.end.cpp"},{"match":"\\*","name":"comment.block.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"name":"entity.name.type.$3.cpp"},"16":{"name":"storage.type.modifier.final.cpp"},"17":{"name":"punctuation.separator.colon.inheritance.cpp"},"18":{"patterns":[{"include":"#inheritance_context"}]}},"end":"(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_enum_block":{"name":"meta.block.enum.cpp","begin":"(((?(?:(?>[^<>]*)\\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*((?|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.enum.cpp"}},"patterns":[{"include":"#enumerator_list"},{"include":"#comments"},{"include":"#comma"},{"include":"#semicolon"}]},{"name":"meta.tail.enum.cpp","begin":"(?<=\\}|%>|\\?\\?>)[\\s\\n]*","end":"[\\s\\n]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_template_definition":{"name":"meta.template.definition.cpp","begin":"(?)|(?)|(?=\\\\end\\{minted\\})","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))|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?\\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":"(?\\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)(?!\\()|(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))","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":"(?\\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":"(?\\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":"(?\\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":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*undef\\b)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*define\\b)\\s*((?\\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.conditional.preprocessor.cpp","begin":"\\G(?<=ifndef|ifdef|if)","end":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\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.block.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":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.decltype.cpp"}},"patterns":[{"include":"#evaluation_context"}]},"decltype":{"contentName":"meta.arguments.decltype.cpp","begin":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.decltype.cpp"}},"patterns":[{"include":"#evaluation_context"}]},"pthread_types":{"match":"((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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)))((?\\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)))((?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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)))((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.switch.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"cpp_attributes":{"name":"support.other.attribute.cpp","begin":"(\\[\\[)","beginCaptures":{"1":{"name":"punctuation.section.attribute.begin.cpp"}},"end":"(\\]\\])|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.attribute.end.cpp"}},"patterns":[{"include":"#attributes_context"},{"begin":"\\(","end":"\\)|(?=\\\\end\\{minted\\})","patterns":[{"include":"#attributes_context"},{"include":"#string_context_c"}]},{"match":"(using)\\s+((?(?:(?>[^<>]*)\\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":"(>)|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"patterns":[{"include":"#template_call_context"}]},"template_isolated_definition":{"match":"(?\\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":"(?)|(?=\\\\end\\{minted\\})","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":"(>)|(?=\\\\end\\{minted\\})","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":"(?\\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":"(?\\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)))(?:(?\\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":"(?\\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)))(?\\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":"(?))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?\\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(?\\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":"(?\\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":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(?\\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":"(?\\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":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.operator-overload.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"static_assert":{"begin":"((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(?=\\))|(?=\\\\end\\{minted\\})","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(?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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)))((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.constructor.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(?=\\{)|(?=\\\\end\\{minted\\})","patterns":[{"contentName":"meta.parameter.initialization.cpp","begin":"((?(?:(?>[^<>]*)\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"contentName":"meta.parameter.initialization.cpp","begin":"((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*)?::)*)(((?>(?\\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":"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.constructor.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(?=\\{)|(?=\\\\end\\{minted\\})","patterns":[{"contentName":"meta.parameter.initialization.cpp","begin":"((?(?:(?>[^<>]*)\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"contentName":"meta.parameter.initialization.cpp","begin":"((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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))))*)(~(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.member.destructor.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*)?::)*)(((?>(?\\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":"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.function.definition.special.member.destructor.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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.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":"(?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"((?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(:)|(?=\\\\end\\{minted\\})","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":"(?\\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)(?!\\()|(?=\\\\end\\{minted\\})","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":"(?\\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)(?!\\()|(?=\\\\end\\{minted\\})","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":"((?\\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":"(?\\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)(?!\\()|(?=\\\\end\\{minted\\})","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":"(?:(?=\\))|(,))|(?=\\\\end\\{minted\\})","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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(?:(?=\\))|(,))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.separator.delimiter.comma.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"match":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\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":"(\\])|(?=\\\\end\\{minted\\})","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(?\\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":"(?:(?=\\))|(,))|(?=\\\\end\\{minted\\})","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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(?:(?=\\))|(,))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.separator.delimiter.comma.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"include":"#assignment_operator"},{"match":"(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\)|,|\\[|=|\\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":"(\\])|(?=\\\\end\\{minted\\})","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(?\\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)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-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)))((?\\*|->)))","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)))((?\\*|->)))","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)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-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)))((?\\*|->)))","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)))((?\\*|->)))","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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.member.cpp"}},"patterns":[{"include":"#evaluation_context"}]},"using_namespace":{"name":"meta.using-namespace.cpp","begin":"(?(?:(?>[^<>]*)\\g<7>?)+)>)\\s*)?::)*\\s*+)?((?(?:(?>[^<>]*)\\g<9>?)+)>)\\s*)?::)*\\s*+)\\s*((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.head.namespace.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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*((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"lambdas":{"begin":"((?:(?<=[^\\s]|^)(?])|(?<=\\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":"(?<=})|(?=\\\\end\\{minted\\})","patterns":[{"name":"meta.function.definition.parameters.lambda.cpp","begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.lambda.cpp"}},"end":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.lambda.cpp"}},"patterns":[{"include":"#function_parameter_context"}]},{"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":"(\\})|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.lambda.cpp"}},"patterns":[{"include":"$self"}]}]},"enumerator_list":{"match":"((?(?:(?>[^<>]*)\\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*((?|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.enum.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.enum.cpp"}},"patterns":[{"include":"$self"}]},{"name":"meta.body.enum.cpp","begin":"(?<=\\{|<%|\\?\\?<)","end":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.enum.cpp"}},"patterns":[{"include":"#enumerator_list"},{"include":"#comments"},{"include":"#comma"},{"include":"#semicolon"}]},{"name":"meta.tail.enum.cpp","begin":"(?<=\\}|%>|\\?\\?>)[\\s\\n]*","end":"[\\s\\n]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"inheritance_context":{"patterns":[{"include":"#ever_present_context"},{"match":",","name":"punctuation.separator.delimiter.comma.inheritance.cpp"},{"match":"(?\\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":"(?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.class.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"struct_block":{"name":"meta.block.struct.cpp","begin":"((((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.struct.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"union_block":{"name":"meta.block.union.cpp","begin":"((((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.union.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.extern.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.extern.cpp"}},"patterns":[{"include":"$self"}]},{"name":"meta.body.extern.cpp","begin":"(?<=\\{|<%|\\?\\?<)","end":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]},{"include":"$self"}]},"typedef_class":{"begin":"((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.class.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.struct.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.union.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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)))((?\\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\\$)((?\\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)))((?\\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\\$)((?\\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)))((?\\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\\$)((?\\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)))((?\\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\\$)((?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\")|(?=\\\\end\\{minted\\})","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":"(\\))|(?=\\\\end\\{minted\\})","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":"\\]|(?=\\\\end\\{minted\\})","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:(?\\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*)?::)*)(((?>(?\\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":"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?\\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":"(?=\\{)|(?=\\\\end\\{minted\\})","patterns":[{"contentName":"meta.parameter.initialization.cpp","begin":"((?(?:(?>[^<>]*)\\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":"(\\))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"contentName":"meta.parameter.initialization.cpp","begin":"((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*)?::)*)(((?>(?\\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":"(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?\\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":"(\\))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_function_definition":{"name":"meta.function.definition.cpp","begin":"((?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?\\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(?\\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":"(?\\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":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(?\\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":"(?\\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":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_using_namespace":{"name":"meta.using-namespace.cpp","begin":"(?(?:(?>[^<>]*)\\g<7>?)+)>)\\s*)?::)*\\s*+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?(?:(?>[^<>]*)\\g<5>?)+)>)\\s*)?::)*\\s*+)\\s*((?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","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*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]},{"include":"$self"}]},"macro_safe_typedef_class":{"begin":"((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.class.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.struct.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"patterns":[{"name":"meta.head.union.cpp","begin":"\\G ?","end":"((?:\\{|<%|\\?\\?<|(?=;)))|(?=\\\\end\\{minted\\})","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":"(\\}|%>|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"match":"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"((((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_struct_block":{"name":"meta.block.struct.cpp","begin":"((((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_union_block":{"name":"meta.block.union.cpp","begin":"((((?\\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)))((?:(?\\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*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","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]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_enum_block":{"name":"meta.block.enum.cpp","begin":"(((?(?:(?>[^<>]*)\\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*((?|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)|(?=\\\\end\\{minted\\})","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.enum.cpp"}},"patterns":[{"include":"#enumerator_list"},{"include":"#comments"},{"include":"#comma"},{"include":"#semicolon"}]},{"name":"meta.tail.enum.cpp","begin":"(?<=\\}|%>|\\?\\?>)[\\s\\n]*","end":"[\\s\\n]*(?=;)|(?=\\\\end\\{minted\\})","patterns":[{"include":"$self"}]}]},"macro_safe_template_definition":{"name":"meta.template.definition.cpp","begin":"(?)|(?)|(?=\\\\end\\{minted\\})","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))|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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":"(\\))|(?\\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":"(?\\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)(?!\\()|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*pragma\\s+mark)\\s+(.*)", + "captures": { + "1": { + "name": "keyword.control.directive.pragma.pragma-mark.cpp" }, - { - "include": "#preprocessor_rule_enabled" + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#preprocessor_rule_disabled" + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#preprocessor_rule_conditional" + "4": { + "name": "comment.block.cpp" }, - { - "include": "#meta_preprocessor_macro" + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "#meta_preprocessor_diagnostic" + "6": { + "name": "punctuation.definition.directive.cpp" }, - { - "include": "#meta_preprocessor_include" + "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" }, - { - "include": "#pragma_mark" + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#meta_preprocessor_line" + "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": "(?\\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" + } + ] }, - { - "include": "#namespace_alias" + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#typedef_class" + "3": { + "name": "comment.block.cpp" }, - { - "include": "#typedef_struct" + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "#typedef_union" + "5": { + "name": "keyword.control.directive.$7.cpp" }, - { - "include": "#typedef_keyword" + "6": { + "name": "punctuation.definition.directive.cpp" }, - { - "include": "#standard_declares" + "8": { + "name": "string.quoted.other.lt-gt.include.cpp" }, - { - "include": "#class_block" + "9": { + "name": "punctuation.definition.string.begin.cpp" }, - { - "include": "#struct_block" + "10": { + "name": "punctuation.definition.string.end.cpp" }, - { - "include": "#union_block" + "11": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#enum_block" + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#access_control_keywords" + "13": { + "name": "comment.block.cpp" }, - { - "include": "#block" + "14": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "#static_assert" + "15": { + "name": "string.quoted.double.include.cpp" }, - { - "include": "#assembly" + "16": { + "name": "punctuation.definition.string.begin.cpp" }, - { - "include": "#function_pointer" + "17": { + "name": "punctuation.definition.string.end.cpp" }, - { - "include": "#switch_statement" + "18": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#goto_statement" + "19": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#evaluation_context" + "20": { + "name": "comment.block.cpp" }, - { - "include": "#label" - } - ] - }, - "evaluation_context": { - "patterns": [ - { - "include": "#ever_present_context" + "21": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "#string_context" + "22": { + "name": "entity.name.other.preprocessor.macro.include.cpp" }, - { - "include": "#number_literal" + "23": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#string_context_c" + "24": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#method_access" + "25": { + "name": "comment.block.cpp" }, - { - "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" + "26": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "#the_this_keyword" + "27": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#language_constants" + "28": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#builtin_storage_type_initilizer" + "29": { + "name": "comment.block.cpp" }, - { - "include": "#qualifiers_and_specifiers_post_parameters" + "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" }, - { - "include": "#functional_specifiers_pre_parameters" + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#storage_types" + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#misc_storage_modifiers" + "4": { + "name": "comment.block.cpp" }, - { - "include": "#lambdas" + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, + "6": { + "name": "punctuation.definition.directive.cpp" + } + }, + "end": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?:error|warning)))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.diagnostic.$7.cpp" }, - { - "include": "#scope_resolution_inner_generated" + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#square_brackets" + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#empty_square_brackets" + "4": { + "name": "comment.block.cpp" }, - { - "include": "#semicolon" + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "#comma" + "6": { + "name": "punctuation.definition.directive.cpp" } - ] - }, - "function_parameter_context": { + }, + "end": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*undef\\b)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*define\\b)\\s*((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?:(?:ifndef|ifdef)|if)))", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.$7.cpp" }, - { - "include": "#gcc_attributes" + "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": [ { - "include": "#ms_attributes" + "name": "meta.conditional.preprocessor.cpp", + "begin": "\\G(?<=ifndef|ifdef|if)", + "end": "(?[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\s*(?:\\n|$)))|(^\\s*((\\/\\*)\\s*?((?>[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\s*\\*\\/)))", + "preprocessor_conditional_standalone": { + "match": "(?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" + { + "include": "#access_control_keywords" }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "include": "#block" }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "include": "#static_assert" }, - "4": { - "name": "comment.block.cpp" + { + "include": "#assembly" }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "include": "#function_pointer" + }, + { + "include": "#switch_statement" + }, + { + "include": "#goto_statement" }, - "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" + }, + { + "include": "#label" } ] }, - "decltype": { - "contentName": "meta.arguments.decltype.cpp", - "begin": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" + "evaluation_context": { + "patterns": [ + { + "include": "#ever_present_context" }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "include": "#string_context" }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "include": "#number_literal" }, - "4": { - "name": "comment.block.cpp" + { + "include": "#string_context_c" }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "include": "#method_access" }, - "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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(((?:private|protected|public))\\s*(:))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "include": "#attributes_context" }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "include": "#parentheses" }, - "3": { - "name": "comment.block.cpp" + { + "include": "#function_call" }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "include": "#scope_resolution_inner_generated" }, - "5": { - "name": "storage.type.modifier.access.control.$6.cpp" + { + "include": "#square_brackets" }, - "7": { - "name": "punctuation.separator.colon.access.control.cpp" - } - } - }, - "exception_keywords": { - "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + "attributes_context": { + "patterns": [ + { + "include": "#cpp_attributes" }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "include": "#gcc_attributes" }, - "3": { - "name": "comment.block.cpp" + { + "include": "#ms_attributes" }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "include": "#alignas_attribute" + } + ] + }, + "storage_types": { + "patterns": [ + { + "include": "#storage_specifiers" }, - "5": { - "name": "keyword.operator.wordlike.cpp" + { + "include": "#primitive_types" }, - "6": { - "name": "keyword.operator.delete.array.cpp" + { + "include": "#non_primitive_types" }, - "7": { - "name": "keyword.operator.delete.array.bracket.cpp" + { + "include": "#pthread_types" }, - "8": { - "name": "keyword.operator.delete.cpp" + { + "include": "#posix_reserved_types" }, - "9": { - "name": "keyword.operator.new.cpp" + { + "include": "#decltype" + }, + { + "include": "#typename" } - } + ] }, - "control_flow_keywords": { - "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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}))*)", + "line_comment": { + "name": "comment.line.double-slash.cpp", + "begin": "\\s*+(\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.cpp" + } + }, + "end": "(?<=\\n)(?[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\s*(?:\\n|$)))|(^\\s*((\\/\\*)\\s*?((?>[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\s*\\*\\/)))", "captures": { "1": { - "name": "keyword.control.goto.cpp" + "name": "meta.toc-list.banner.double-slash.cpp" }, "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + "name": "comment.line.double-slash.cpp" }, "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + "name": "punctuation.definition.comment.cpp" }, "4": { - "name": "comment.block.cpp" + "name": "meta.banner.character.cpp" }, "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + "name": "meta.toc-list.banner.block.cpp" }, "6": { - "name": "entity.name.label.call.cpp" + "name": "comment.line.block.cpp" + }, + "7": { + "name": "punctuation.definition.comment.cpp" + }, + "8": { + "name": "meta.banner.character.cpp" } } }, - "label": { - "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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" - } - ] + "include": "#block_comment" }, - "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": "#line_comment" }, { - "include": "#c_conditional_context" + "include": "#invalid_comment_end" } ] }, - "switch_statement": { - "name": "meta.block.switch.cpp", - "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))", + "number_literal": { + "begin": "(?|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.switch.cpp" - } - }, - "patterns": [ - { - "include": "#default_statement" + "2": { + "name": "constant.numeric.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] }, - { - "include": "#case_statement" + "3": { + "name": "punctuation.separator.constant.numeric.cpp" }, - { - "include": "$self" + "4": { + "name": "constant.numeric.hexadecimal.cpp" }, - { - "include": "#block_innards" - } - ] - }, - { - "name": "meta.tail.switch.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" + "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" } - ] - } - ] - }, - "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" + "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])))*)?((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", "beginCaptures": { "1": { - "name": "punctuation.section.attribute.begin.cpp" + "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.attribute.end.cpp" + "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" } }, "patterns": [ { - "include": "#attributes_context" + "include": "#evaluation_context" + } + ] + }, + "decltype": { + "contentName": "meta.arguments.decltype.cpp", + "begin": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" }, - { - "begin": "\\(", - "end": "\\)", + "2": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#string_context_c" + "include": "#inline_comment" } ] }, - { - "match": "(using)\\s+((?(?:(?>[^<>]*)\\g<1>?)+)>)\\s*", - "captures": { - "0": { - "name": "meta.template.call.cpp", + "5": { "patterns": [ { - "include": "#template_call_range" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] - } - } - }, - "template_call_range": { - "name": "meta.template.call.cpp", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" } }, - "end": "(>)", + "end": "(\\))", "endCaptures": { "1": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" + "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" } }, "patterns": [ { - "include": "#template_call_context" + "include": "#evaluation_context" } ] }, - "template_isolated_definition": { - "match": "(?\\s*$)", + "pthread_types": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?)", - "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" - } - }, + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { "patterns": [ { - "include": "#template_call_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "include": "#template_definition_context" + "5": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" } - ] + } }, - "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*([=])", + "using_name": { + "match": "(using)\\s+(?!namespace\\b)", "captures": { "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "name": "entity.name.type.template.cpp" - }, - "3": { - "name": "keyword.operator.assignment.cpp" + "name": "keyword.other.using.directive.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*(?:(,)|(?=>|$))", + "functional_specifiers_pre_parameters": { + "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+", + "storage_specifiers": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\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*)?(::)", + "access_control_keywords": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(((?:private|protected|public))\\s*(:))", "captures": { "1": { "patterns": [ { - "include": "#scope_resolution_inner_generated" + "include": "#inline_comment" } ] }, "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" }, "4": { - "name": "meta.template.call.cpp", "patterns": [ { - "include": "#template_call_range" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "6": { - "name": "entity.name.scope-resolution.cpp" + "5": { + "name": "storage.type.modifier.access.control.$6.cpp" }, "7": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + "name": "punctuation.separator.colon.access.control.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*+", + "exception_keywords": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\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*)?(::)", + "typedef_keyword": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+", + "the_this_keyword": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\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*)?(::)", + "type_casting_operators": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+", + "memory_operators": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w))", "captures": { - "0": { + "1": { "patterns": [ { - "include": "#scope_resolution_function_call_inner_generated" + "include": "#inline_comment" } ] }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { - "name": "meta.template.call.cpp", + "name": "comment.block.cpp" + }, + "4": { "patterns": [ { - "include": "#template_call_range" + "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" } } }, - "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*)?(::)", + "control_flow_keywords": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+", + "goto_statement": { + "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}))*)", "captures": { - "0": { + "1": { + "name": "keyword.control.goto.cpp" + }, + "2": { "patterns": [ { - "include": "#scope_resolution_function_definition_inner_generated" + "include": "#inline_comment" } ] }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, "3": { - "name": "meta.template.call.cpp", + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { "patterns": [ { - "include": "#template_call_range" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] + }, + "6": { + "name": "entity.name.label.call.cpp" } } }, - "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*)?(::)", + "label": { + "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)", "captures": { "1": { "patterns": [ { - "include": "#scope_resolution_function_definition_inner_generated" + "include": "#inline_comment" } ] }, "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" }, "4": { - "name": "meta.template.call.cpp", "patterns": [ { - "include": "#template_call_range" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "6": { - "name": "entity.name.scope-resolution.function.definition.cpp" + "5": { + "name": "entity.name.label.cpp" }, - "7": { - "name": "meta.template.call.cpp", + "6": { "patterns": [ { - "include": "#template_call_range" + "include": "#inline_comment" } ] }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, "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" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "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" - } - ] + "10": { + "name": "punctuation.separator.label.cpp" } } }, - "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": { + "default_statement": { + "name": "meta.conditional.case.cpp", + "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_namespace_using_inner_generated" - } - ] - }, + }, + "end": "(:)", + "endCaptures": { "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" + "name": "punctuation.separator.colon.case.default.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" }, - "3": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] + { + "include": "#c_conditional_context" } - } + ] }, - "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": { + "case_statement": { + "name": "meta.conditional.case.cpp", + "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_namespace_block_inner_generated" - } - ] - }, + }, + "end": "(:)", + "endCaptures": { "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + "name": "punctuation.separator.colon.case.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" }, - "3": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] + { + "include": "#c_conditional_context" } - } + ] }, - "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": { + "switch_conditional_parentheses": { + "name": "meta.conditional.switch.cpp", + "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", + "beginCaptures": { "1": { "patterns": [ { - "include": "#scope_resolution_namespace_block_inner_generated" + "include": "#inline_comment" } ] }, "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.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": [ + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, { - "include": "#template_call_range" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "9": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + "5": { + "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.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" - } - ] - }, + }, + "end": "(\\))", + "endCaptures": { "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" + "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" }, - "3": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] + { + "include": "#c_conditional_context" } - } + ] }, - "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": { + "switch_statement": { + "name": "meta.block.switch.cpp", + "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_operator_overload_inner_generated" + }, + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "patterns": [ + { + "name": "meta.head.switch.cpp", + "begin": "\\G ?", + "end": "((?:\\{|<%|\\?\\?<|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.switch.cpp" } - ] - }, - "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": "#switch_conditional_parentheses" + }, { - "include": "#scope_resolution_function_definition_operator_overload_inner_generated" + "include": "$self" } ] }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" - }, - "4": { - "name": "meta.template.call.cpp", + { + "name": "meta.body.switch.cpp", + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "(\\}|%>|\\?\\?>)", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.switch.cpp" + } + }, "patterns": [ { - "include": "#template_call_range" + "include": "#default_statement" + }, + { + "include": "#case_statement" + }, + { + "include": "$self" + }, + { + "include": "#block_innards" } ] }, - "6": { - "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp" - }, - "7": { - "name": "meta.template.call.cpp", + { + "name": "meta.tail.switch.cpp", + "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", "patterns": [ { - "include": "#template_call_range" + "include": "$self" } ] - }, - "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", + "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": [ - { - "match": "(?(?:(?>[^<>]*)\\g<1>?)+)>)\\s*", + "captures": { + "0": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#scope_resolution_inner_generated" + "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": "(?\\s*$)", + "captures": { + "1": { + "name": "storage.type.template.cpp" }, - "12": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + "2": { + "name": "punctuation.section.angle-brackets.start.template.definition.cpp" }, - "14": { - "name": "meta.template.call.cpp", + "3": { + "name": "meta.template.definition.cpp", "patterns": [ { - "include": "#template_call_range" + "include": "#template_definition_context" } ] }, - "16": { - "name": "entity.name.scope-resolution.cpp" + "4": { + "name": "punctuation.section.angle-brackets.end.template.definition.cpp" + } + } + }, + "template_definition": { + "name": "meta.template.definition.cpp", + "begin": "(?)", + "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_range" + "include": "#template_call_context" } ] }, - "19": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + { + "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" }, - "20": { + "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" } ] }, - "21": { + "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "22": { + "3": { "name": "comment.block.cpp" }, - "23": { + "4": { "patterns": [ { "match": "\\*\\/", @@ -2863,141 +2819,131 @@ } ] }, - "24": { - "name": "entity.name.type.cpp" + "5": { + "name": "storage.type.template.argument.$5.cpp" }, - "25": { - "name": "meta.template.call.cpp", + "6": { "patterns": [ { - "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": "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" } } }, - "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))))*(?:\\&|\\*))?", + "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": { - "1": { - "name": "meta.qualified_type.cpp", + "0": { "patterns": [ - { - "match": "(?(?:(?>[^<>]*)\\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": "#inline_comment" + "include": "#scope_resolution_inner_generated" } ] }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, - "6": { + "4": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#template_call_range" } ] }, + "6": { + "name": "entity.name.scope-resolution.cpp" + }, "7": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#inline_comment" + "include": "#template_call_range" } ] }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, "9": { - "name": "comment.block.cpp" - }, - "10": { + "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": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#scope_resolution_template_call_inner_generated" } ] }, - "12": { + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" + }, + "3": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#scope_resolution_inner_generated" + "include": "#template_call_range" } ] - }, - "13": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "15": { - "name": "meta.template.call.cpp", + } + } + }, + "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": "#template_call_range" + "include": "#scope_resolution_template_call_inner_generated" } ] }, - "17": { - "name": "entity.name.scope-resolution.cpp" + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" }, - "18": { + "4": { "name": "meta.template.call.cpp", "patterns": [ { @@ -3005,254 +2951,179 @@ } ] }, - "20": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + "6": { + "name": "entity.name.scope-resolution.template.call.cpp" }, - "21": { + "7": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#inline_comment" + "include": "#template_call_range" } ] }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "23": { - "name": "comment.block.cpp" - }, - "24": { + "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": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#scope_resolution_template_definition_inner_generated" } ] }, - "25": { - "name": "entity.name.type.cpp" + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" }, - "26": { + "3": { "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_range" } ] - }, - "28": { + } + } + }, + "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": [ { - "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" + "include": "#scope_resolution_template_definition_inner_generated" } ] }, - "29": { + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" + }, + "4": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#inline_comment" + "include": "#template_call_range" } ] }, - "30": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "31": { - "name": "comment.block.cpp" + "6": { + "name": "entity.name.scope-resolution.template.definition.cpp" }, - "32": { + "7": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#template_call_range" } ] }, - "33": { + "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": "#inline_comment" + "include": "#scope_resolution_function_call_inner_generated" } ] }, - "34": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "35": { - "name": "comment.block.cpp" + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" }, - "36": { + "3": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#template_call_range" } ] } } }, - "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)))(?:(?\\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)", + "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": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "meta.qualified_type.cpp", "patterns": [ { - "match": "(?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+", + "captures": { + "0": { "patterns": [ { - "include": "#inline_comment" + "include": "#scope_resolution_function_definition_inner_generated" } ] }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "10": { - "name": "comment.block.cpp" + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" }, - "11": { + "3": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#template_call_range" } ] - }, - "13": { + } + } + }, + "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_inner_generated" + "include": "#scope_resolution_function_definition_inner_generated" } ] }, - "14": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" }, - "16": { + "4": { "name": "meta.template.call.cpp", "patterns": [ { @@ -3260,10 +3131,10 @@ } ] }, - "18": { - "name": "entity.name.scope-resolution.cpp" + "6": { + "name": "entity.name.scope-resolution.function.definition.cpp" }, - "19": { + "7": { "name": "meta.template.call.cpp", "patterns": [ { @@ -3271,38 +3142,48 @@ } ] }, - "21": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "22": { + "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": "#inline_comment" + "include": "#scope_resolution_namespace_alias_inner_generated" } ] }, - "23": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "24": { - "name": "comment.block.cpp" + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" }, - "25": { + "3": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, + "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": [ { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#scope_resolution_namespace_alias_inner_generated" } ] }, - "26": { - "name": "entity.name.type.cpp" + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" }, - "27": { + "4": { "name": "meta.template.call.cpp", "patterns": [ { @@ -3310,138 +3191,179 @@ } ] }, - "29": { - "name": "keyword.operator.assignment.cpp" - }, - "30": { - "name": "keyword.other.typename.cpp" + "6": { + "name": "entity.name.scope-resolution.namespace.alias.cpp" }, - "31": { + "7": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#storage_specifiers" + "include": "#template_call_range" } ] }, - "32": { - "name": "meta.qualified_type.cpp", + "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": [ { - "match": "(?(?:(?>[^<>]*)\\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": [ { - "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" + "include": "#scope_resolution_namespace_using_inner_generated" } ] }, - "33": { + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" + }, + "4": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#template_call_range" } ] }, - "34": { + "6": { + "name": "entity.name.scope-resolution.namespace.using.cpp" + }, + "7": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#inline_comment" + "include": "#template_call_range" } ] }, - "35": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + "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" + } + ] }, - "36": { - "name": "comment.block.cpp" + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" }, - "37": { + "3": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, + "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": [ { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#scope_resolution_namespace_block_inner_generated" } ] }, - "38": { + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + }, + "4": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#inline_comment" + "include": "#template_call_range" } ] }, - "39": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "40": { - "name": "comment.block.cpp" + "6": { + "name": "entity.name.scope-resolution.namespace.block.cpp" }, - "41": { + "7": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#template_call_range" } ] }, - "43": { + "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_inner_generated" + "include": "#scope_resolution_parameter_inner_generated" } ] }, - "44": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" }, - "46": { + "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" + } + ] }, - "48": { - "name": "entity.name.scope-resolution.cpp" + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" }, - "49": { + "4": { "name": "meta.template.call.cpp", "patterns": [ { @@ -3449,38 +3371,59 @@ } ] }, - "51": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + "6": { + "name": "entity.name.scope-resolution.parameter.cpp" }, - "52": { + "7": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#inline_comment" + "include": "#template_call_range" } ] }, - "53": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + "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" + } + ] }, - "54": { - "name": "comment.block.cpp" + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" }, - "55": { + "3": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, + "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": [ { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#scope_resolution_function_definition_operator_overload_inner_generated" } ] }, - "56": { - "name": "entity.name.type.cpp" + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" }, - "57": { + "4": { "name": "meta.template.call.cpp", "patterns": [ { @@ -3488,71 +3431,86 @@ } ] }, - "59": { - "name": "meta.declaration.type.alias.value.unknown.cpp", + "6": { + "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp" + }, + "7": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#evaluation_context" + "include": "#template_call_range" } ] }, - "60": { + "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": "\\*", - "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" + "include": "#attributes_context" }, { - "match": "\\&", - "name": "storage.modifier.reference.cpp" + "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" } ] }, - "61": { + "1": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "2": { "patterns": [ { "include": "#inline_comment" } ] }, - "62": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "63": { + "4": { "name": "comment.block.cpp" }, - "64": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -3564,20 +3522,20 @@ } ] }, - "65": { + "6": { "patterns": [ { "include": "#inline_comment" } ] }, - "66": { + "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "67": { + "8": { "name": "comment.block.cpp" }, - "68": { + "9": { "patterns": [ { "match": "\\*\\/", @@ -3589,70 +3547,52 @@ } ] }, - "69": { + "11": { "patterns": [ { - "include": "#inline_comment" + "include": "#scope_resolution_inner_generated" } ] }, - "70": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "71": { - "name": "comment.block.cpp" + "12": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, - "72": { + "14": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#template_call_range" } ] }, - "73": { - "name": "punctuation.definition.begin.bracket.square.cpp" + "16": { + "name": "entity.name.scope-resolution.cpp" }, - "74": { + "17": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#evaluation_context" + "include": "#template_call_range" } ] }, - "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)))(?\\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" + "19": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, - "2": { + "20": { "patterns": [ { "include": "#inline_comment" } ] }, - "3": { + "21": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "22": { "name": "comment.block.cpp" }, - "5": { + "23": { "patterns": [ { "match": "\\*\\/", @@ -3664,32 +3604,23 @@ } ] }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" + "24": { + "name": "entity.name.type.cpp" }, - "9": { + "25": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#template_call_range" } ] - }, - "10": { + } + } + }, + "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": [ { @@ -3726,7 +3657,7 @@ } ] }, - "11": { + "2": { "patterns": [ { "include": "#attributes_context" @@ -3736,20 +3667,20 @@ } ] }, - "12": { + "3": { "patterns": [ { "include": "#inline_comment" } ] }, - "13": { + "4": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "14": { + "5": { "name": "comment.block.cpp" }, - "15": { + "6": { "patterns": [ { "match": "\\*\\/", @@ -3761,20 +3692,20 @@ } ] }, - "16": { + "7": { "patterns": [ { "include": "#inline_comment" } ] }, - "17": { + "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "18": { + "9": { "name": "comment.block.cpp" }, - "19": { + "10": { "patterns": [ { "match": "\\*\\/", @@ -3786,17 +3717,17 @@ } ] }, - "21": { + "12": { "patterns": [ { "include": "#scope_resolution_inner_generated" } ] }, - "22": { + "13": { "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, - "24": { + "15": { "name": "meta.template.call.cpp", "patterns": [ { @@ -3804,10 +3735,10 @@ } ] }, - "26": { + "17": { "name": "entity.name.scope-resolution.cpp" }, - "27": { + "18": { "name": "meta.template.call.cpp", "patterns": [ { @@ -3815,23 +3746,23 @@ } ] }, - "29": { + "20": { "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, - "30": { + "21": { "patterns": [ { "include": "#inline_comment" } ] }, - "31": { + "22": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "32": { + "23": { "name": "comment.block.cpp" }, - "33": { + "24": { "patterns": [ { "match": "\\*\\/", @@ -3843,1736 +3774,1898 @@ } ] }, - "34": { + "25": { "name": "entity.name.type.cpp" }, - "35": { + "26": { "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" + "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" + } + ] }, - { - "match": "\\b__STDC_NO_COMPLEX__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__STDC_NO_COMPLEX__.cpp" + "29": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "\\b__STDC_VERSION__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__STDC_VERSION__.cpp" + "30": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\b__STDCPP_THREADS__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__STDCPP_THREADS__.cpp" + "31": { + "name": "comment.block.cpp" }, - { - "match": "\\b__TIME__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__TIME__.cpp" + "32": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "match": "\\bNDEBUG\\b", - "name": "entity.name.other.preprocessor.macro.predefined.NDEBUG.cpp" + "33": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "\\b__OBJC__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__OBJC__.cpp" + "34": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\b__ASSEMBLER__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__ASSEMBLER__.cpp" + "35": { + "name": "comment.block.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" + "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)))(?:(?\\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" }, - { - "match": "\\b_CHAR_UNSIGNED\\b", - "name": "entity.name.other.preprocessor.macro.predefined._CHAR_UNSIGNED.cpp" + "2": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "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" + } + ] }, - { - "match": "\\b__OPTIMIZE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__OPTIMIZE__.cpp" + "61": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "\\b__OPTIMIZE_SIZE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__OPTIMIZE_SIZE__.cpp" + "62": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\b__NO_INLINE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__NO_INLINE__.cpp" + "63": { + "name": "comment.block.cpp" }, - { - "match": "\\b__GNUC_STDC_INLINE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__GNUC_STDC_INLINE__.cpp" + "64": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "match": "\\b__CHAR_UNSIGNED__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__CHAR_UNSIGNED__.cpp" + "65": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "\\b__WCHAR_UNSIGNED__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_UNSIGNED__.cpp" + "66": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\b__REGISTER_PREFIX__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__REGISTER_PREFIX__.cpp" + "67": { + "name": "comment.block.cpp" }, - { - "match": "\\b__REGISTER_PREFIX__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__REGISTER_PREFIX__.cpp" + "68": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "match": "\\b__SIZE_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__SIZE_TYPE__.cpp" + "69": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "\\b__PTRDIFF_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__PTRDIFF_TYPE__.cpp" + "70": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\b__WCHAR_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_TYPE__.cpp" + "71": { + "name": "comment.block.cpp" }, - { - "match": "\\b__WINT_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__WINT_TYPE__.cpp" + "72": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "match": "\\b__INTMAX_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__INTMAX_TYPE__.cpp" + "73": { + "name": "punctuation.definition.begin.bracket.square.cpp" }, - { - "match": "\\b__UINTMAX_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__UINTMAX_TYPE__.cpp" + "74": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] }, - { - "match": "\\b__SIG_ATOMIC_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_TYPE__.cpp" + "75": { + "name": "punctuation.definition.end.bracket.square.cpp" }, - { - "match": "\\b__INT8_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__INT8_TYPE__.cpp" + "76": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.declaration.type.alias.cpp" + }, + "typename": { + "match": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?\\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" }, - { - "match": "\\b__INT16_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__INT16_TYPE__.cpp" + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "\\b__INT32_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__INT32_TYPE__.cpp" + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\b__INT64_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__INT64_TYPE__.cpp" + "4": { + "name": "comment.block.cpp" }, - { - "match": "\\b__UINT8_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__UINT8_TYPE__.cpp" + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "match": "\\b__UINT16_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__UINT16_TYPE__.cpp" + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "\\b__UINT32_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__UINT32_TYPE__.cpp" + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\b__UINT64_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__UINT64_TYPE__.cpp" + "8": { + "name": "comment.block.cpp" }, - { - "match": "\\b__INT_LEAST8_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_TYPE__.cpp" + "9": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "match": "\\b__INT_LEAST16_TYPE__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_TYPE__.cpp" + "10": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "(?))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?\\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(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\())", - "beginCaptures": { - "1": { - "name": "meta.head.function.definition.cpp" + "match": "\\b__INT8_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT8_MAX__.cpp" }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__INT16_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT16_MAX__.cpp" }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__INT32_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT32_MAX__.cpp" }, - "4": { - "name": "comment.block.cpp" + { + "match": "\\b__INT64_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT64_MAX__.cpp" }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\b__UINT8_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__UINT8_MAX__.cpp" }, - "6": { - "name": "storage.type.template.cpp" + { + "match": "\\b__UINT16_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__UINT16_MAX__.cpp" }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__UINT32_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__UINT32_MAX__.cpp" }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__UINT64_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__UINT64_MAX__.cpp" }, - "9": { - "name": "comment.block.cpp" + { + "match": "\\b__INT_LEAST8_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_MAX__.cpp" }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\b__INT_LEAST16_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_MAX__.cpp" }, - "11": { - "name": "storage.modifier.$11.cpp" + { + "match": "\\b__INT_LEAST32_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST32_MAX__.cpp" }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__INT_LEAST64_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST64_MAX__.cpp" }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__UINT_LEAST8_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST8_MAX__.cpp" }, - "14": { - "name": "comment.block.cpp" + { + "match": "\\b__UINT_LEAST16_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST16_MAX__.cpp" }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\b__UINT_LEAST32_MAX__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST32_MAX__.cpp" }, - "16": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "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" - } - ] + { + "match": "\\b__SIZE_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZE_WIDTH__.cpp" }, - "44": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__WCHAR_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_WIDTH__.cpp" }, - "45": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__WINT_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__WINT_WIDTH__.cpp" }, - "46": { - "name": "comment.block.cpp" + { + "match": "\\b__INT_LEAST8_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_WIDTH__.cpp" }, - "47": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\b__INT_LEAST16_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_WIDTH__.cpp" }, - "48": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__INT_LEAST32_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST32_WIDTH__.cpp" }, - "49": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__INT_LEAST64_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST64_WIDTH__.cpp" }, - "50": { - "name": "comment.block.cpp" + { + "match": "\\b__INT_FAST8_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST8_WIDTH__.cpp" }, - "51": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\b__INT_FAST16_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST16_WIDTH__.cpp" }, - "52": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__INT_FAST32_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST32_WIDTH__.cpp" }, - "53": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__INT_FAST64_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST64_WIDTH__.cpp" }, - "54": { - "name": "comment.block.cpp" + { + "match": "\\b__INTPTR_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INTPTR_WIDTH__.cpp" }, - "55": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\b__INTMAX_WIDTH__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__INTMAX_WIDTH__.cpp" }, - "56": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__SIZEOF_INT__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_INT__.cpp" }, - "57": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__SIZEOF_LONG__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG__.cpp" }, - "58": { - "name": "comment.block.cpp" + { + "match": "\\b__SIZEOF_LONG_LONG__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG_LONG__.cpp" }, - "59": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\b__SIZEOF_SHORT__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_SHORT__.cpp" }, - "60": { - "name": "storage.type.modifier.calling-convention.cpp" + { + "match": "\\b__SIZEOF_POINTER__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_POINTER__.cpp" }, - "61": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__SIZEOF_FLOAT__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_FLOAT__.cpp" }, - "62": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__SIZEOF_DOUBLE__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_DOUBLE__.cpp" }, - "63": { - "name": "comment.block.cpp" + { + "match": "\\b__SIZEOF_LONG_DOUBLE__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG_DOUBLE__.cpp" }, - "64": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\b__SIZEOF_SIZE_T__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_SIZE_T__.cpp" }, - "65": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_inner_generated" - } - ] + { + "match": "\\b__SIZEOF_WCHAR_T__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_WCHAR_T__.cpp" }, - "66": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" + { + "match": "\\b__SIZEOF_WINT_T__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_WINT_T__.cpp" }, - "68": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] + { + "match": "\\b__SIZEOF_PTRDIFF_T__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_PTRDIFF_T__.cpp" }, - "70": { - "name": "entity.name.function.definition.cpp" + { + "match": "\\b__BYTE_ORDER__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__BYTE_ORDER__.cpp" }, - "71": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "match": "\\b__ORDER_LITTLE_ENDIAN__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__ORDER_LITTLE_ENDIAN__.cpp" }, - "72": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\b__ORDER_BIG_ENDIAN__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__ORDER_BIG_ENDIAN__.cpp" }, - "73": { - "name": "comment.block.cpp" + { + "match": "\\b__ORDER_PDP_ENDIAN__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__ORDER_PDP_ENDIAN__.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" - } - ] + "match": "\\b__FLOAT_WORD_ORDER__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__FLOAT_WORD_ORDER__.cpp" }, { - "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" - } - ] + "match": "\\b__DEPRECATED\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__DEPRECATED.cpp" }, { - "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\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\<|\\())", - "beginCaptures": { - "1": { - "name": "meta.head.function.definition.special.operator-overload.cpp" + "match": "\\b__EXCEPTIONS\\b", + "name": "entity.name.other.preprocessor.macro.predefined.__EXCEPTIONS.cpp" }, - "2": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "(?))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:((?\\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(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\())", + "beginCaptures": { + "1": { + "name": "meta.head.function.definition.cpp" + }, + "2": { "patterns": [ { - "include": "#template_call_range" + "include": "#inline_comment" } ] }, - "18": { - "name": "entity.name.scope-resolution.cpp" + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "19": { - "name": "meta.template.call.cpp", + "4": { + "name": "comment.block.cpp" + }, + "5": { "patterns": [ { - "include": "#template_call_range" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "21": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + "6": { + "name": "storage.type.template.cpp" }, - "22": { + "7": { "patterns": [ { "include": "#inline_comment" } ] }, - "23": { + "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "24": { + "9": { "name": "comment.block.cpp" }, - "25": { + "10": { "patterns": [ { "match": "\\*\\/", @@ -5584,149 +5677,95 @@ } ] }, - "26": { - "name": "entity.name.type.cpp" + "11": { + "name": "storage.modifier.$11.cpp" }, - "27": { - "name": "meta.template.call.cpp", + "12": { "patterns": [ { - "include": "#template_call_range" + "include": "#inline_comment" } ] }, - "29": { + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { "patterns": [ { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.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" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "30": { + "16": { + "name": "meta.qualified_type.cpp", "patterns": [ { - "include": "#inline_comment" - } - ] - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "32": { - "name": "comment.block.cpp" - }, - "33": { - "patterns": [ + "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))){2,}\\&", @@ -5910,24 +5909,24 @@ }, { "match": "\\&", - "name": "entity.name.operator.type.reference.cpp" + "name": "storage.modifier.reference.cpp" } ] }, - "71": { + "44": { "patterns": [ { "include": "#inline_comment" } ] }, - "72": { + "45": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "73": { + "46": { "name": "comment.block.cpp" }, - "74": { + "47": { "patterns": [ { "match": "\\*\\/", @@ -5939,20 +5938,20 @@ } ] }, - "75": { + "48": { "patterns": [ { "include": "#inline_comment" } ] }, - "76": { + "49": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "77": { + "50": { "name": "comment.block.cpp" }, - "78": { + "51": { "patterns": [ { "match": "\\*\\/", @@ -5964,20 +5963,20 @@ } ] }, - "79": { + "52": { "patterns": [ { "include": "#inline_comment" } ] }, - "80": { + "53": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "81": { + "54": { "name": "comment.block.cpp" }, - "82": { + "55": { "patterns": [ { "match": "\\*\\/", @@ -5989,26 +5988,20 @@ } ] }, - "83": { - "name": "entity.name.operator.type.array.cpp" - }, - "84": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "85": { + "56": { "patterns": [ { "include": "#inline_comment" } ] }, - "86": { + "57": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "87": { + "58": { "name": "comment.block.cpp" }, - "88": { + "59": { "patterns": [ { "match": "\\*\\/", @@ -6020,23 +6013,69 @@ } ] }, - "89": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "90": { + "60": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "61": { "patterns": [ { "include": "#inline_comment" } ] }, - "91": { + "62": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "92": { + "63": { "name": "comment.block.cpp" }, - "93": { + "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": "\\*\\/", @@ -6052,12 +6091,12 @@ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", "patterns": [ { - "name": "meta.head.function.definition.special.operator-overload.cpp", + "name": "meta.head.function.definition.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", "endCaptures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp" + "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp" } }, "patterns": [ @@ -6065,46 +6104,46 @@ "include": "#ever_present_context" }, { - "include": "#template_call_range" - }, - { - "contentName": "meta.function.definition.parameters.special.operator-overload.cpp", + "contentName": "meta.function.definition.parameters.cpp", "begin": "(\\()", "beginCaptures": { "1": { - "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp" + "name": "punctuation.section.parameters.begin.bracket.round.cpp" } }, "end": "(\\))", "endCaptures": { "1": { - "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp" + "name": "punctuation.section.parameters.end.bracket.round.cpp" } }, "patterns": [ { - "include": "#function_parameter_context" + "include": "#ever_present_context" + }, + { + "include": "#parameter_or_maybe_value" + }, + { + "include": "#comma" }, { "include": "#evaluation_context" } ] }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, { "include": "$self" } ] }, { - "name": "meta.body.function.definition.special.operator-overload.cpp", + "name": "meta.body.function.definition.cpp", "begin": "(?<=\\{|<%|\\?\\?<)", "end": "(\\}|%>|\\?\\?>)", "endCaptures": { "1": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp" + "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp" } }, "patterns": [ @@ -6114,7 +6153,7 @@ ] }, { - "name": "meta.tail.function.definition.special.operator-overload.cpp", + "name": "meta.tail.function.definition.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -6125,23 +6164,74 @@ } ] }, - "static_assert": { - "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", + "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\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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": "(?(?:(?>[^<>]*)\\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(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(((?(?:(?>[^<>]*)\\g<12>?)+)>)\\s*)?(\\()", - "beginCaptures": { - "1": { + "14": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "16": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#scope_resolution_function_call_inner_generated" + "include": "#template_call_range" } ] }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" + "18": { + "name": "entity.name.scope-resolution.cpp" }, - "4": { + "19": { "name": "meta.template.call.cpp", "patterns": [ { @@ -6236,23 +6297,23 @@ } ] }, - "6": { - "name": "entity.name.function.call.cpp" + "21": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, - "7": { + "22": { "patterns": [ { "include": "#inline_comment" } ] }, - "8": { + "23": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "9": { + "24": { "name": "comment.block.cpp" }, - "10": { + "25": { "patterns": [ { "match": "\\*\\/", @@ -6264,7 +6325,10 @@ } ] }, - "11": { + "26": { + "name": "entity.name.type.cpp" + }, + "27": { "name": "meta.template.call.cpp", "patterns": [ { @@ -6272,87 +6336,63 @@ } ] }, - "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", + "29": { "patterns": [ { - "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" }, { - "include": "#number_literal" + "match": "\\&", + "name": "storage.modifier.reference.cpp" } ] }, - "3": { + "30": { "patterns": [ { "include": "#inline_comment" } ] }, - "4": { + "31": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "5": { + "32": { "name": "comment.block.cpp" }, - "6": { + "33": { "patterns": [ { "match": "\\*\\/", @@ -6364,20 +6404,20 @@ } ] }, - "7": { + "34": { "patterns": [ { "include": "#inline_comment" } ] }, - "8": { + "35": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "9": { + "36": { "name": "comment.block.cpp" }, - "10": { + "37": { "patterns": [ { "match": "\\*\\/", @@ -6389,52 +6429,20 @@ } ] }, - "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": { + "38": { "patterns": [ { "include": "#inline_comment" } ] }, - "22": { + "39": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "23": { + "40": { "name": "comment.block.cpp" }, - "24": { + "41": { "patterns": [ { "match": "\\*\\/", @@ -6446,31 +6454,20 @@ } ] }, - "25": { - "name": "entity.name.type.cpp" - }, - "26": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "28": { + "42": { "patterns": [ { "include": "#inline_comment" } ] }, - "29": { + "43": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "30": { + "44": { "name": "comment.block.cpp" }, - "31": { + "45": { "patterns": [ { "match": "\\*\\/", @@ -6482,42 +6479,23 @@ } ] }, - "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" + "46": { + "name": "storage.type.modifier.calling-convention.cpp" }, - { - "include": "#comma" - } - ] - }, - "builtin_storage_type_initilizer": { - "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", - "beginCaptures": { - "1": { + "47": { "patterns": [ { "include": "#inline_comment" } ] }, - "2": { + "48": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "49": { "name": "comment.block.cpp" }, - "4": { + "50": { "patterns": [ { "match": "\\*\\/", @@ -6529,20 +6507,20 @@ } ] }, - "5": { + "51": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "52": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "53": { "name": "comment.block.cpp" }, - "8": { + "54": { "patterns": [ { "match": "\\*\\/", @@ -6554,51 +6532,46 @@ } ] }, - "9": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "10": { + "55": { "patterns": [ { - "include": "#inline_comment" + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.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" } ] }, - "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)))((?|\\?\\?>)|(?=[;>\\[\\]=]))", "patterns": [ { - "name": "meta.head.function.definition.special.constructor.cpp", + "name": "meta.head.function.definition.special.operator-overload.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", "endCaptures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp" } }, "patterns": [ @@ -6819,141 +6806,33 @@ "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" + "include": "#template_call_range" }, { - "begin": "(:)", + "contentName": "meta.function.definition.parameters.special.operator-overload.cpp", + "begin": "(\\()", "beginCaptures": { "1": { - "name": "punctuation.separator.initializers.cpp" + "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" } }, - "end": "(?=\\{)", "patterns": [ { - "contentName": "meta.parameter.initialization.cpp", - "begin": "((?(?:(?>[^<>]*)\\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": "((?|\\?\\?>)", "endCaptures": { "1": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp" } }, "patterns": [ @@ -6976,7 +6855,7 @@ ] }, { - "name": "meta.tail.function.definition.special.constructor.cpp", + "name": "meta.tail.function.definition.special.operator-overload.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -6987,27 +6866,51 @@ } ] }, - "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*)?::)*)(((?>(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))::((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\16((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\()))", + "static_assert": { + "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", "beginCaptures": { "1": { - "name": "meta.head.function.definition.special.constructor.cpp" + "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" } ] }, - "3": { + "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "8": { "name": "comment.block.cpp" }, - "5": { + "9": { "patterns": [ { "match": "\\*\\/", @@ -7019,8 +6922,63 @@ } ] }, + "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(?\\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": "storage.type.modifier.calling-convention.cpp" + "name": "entity.name.function.call.cpp" }, "7": { "patterns": [ @@ -7048,58 +7006,94 @@ ] }, "11": { + "name": "meta.template.call.cpp", "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" - }, - { - "match": "(?\\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": "(?|\\?\\?>)|(?=[;>\\[\\]=]))", - "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" - } - }, + }, + "25": { + "name": "entity.name.type.cpp" + }, + "26": { + "name": "meta.template.call.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": "((?(?:(?>[^<>]*)\\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": "((?|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" - } - }, + "28": { "patterns": [ { - "include": "#function_body_context" + "include": "#inline_comment" } ] }, - { - "name": "meta.tail.function.definition.special.constructor.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { "patterns": [ { - "include": "$self" + "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" } ] }, - "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))))*)(~(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", "beginCaptures": { "1": { - "name": "meta.head.function.definition.special.member.destructor.cpp" - }, - "2": { "patterns": [ { "include": "#inline_comment" } ] }, - "3": { + "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "3": { "name": "comment.block.cpp" }, - "5": { + "4": { "patterns": [ { "match": "\\*\\/", @@ -7378,20 +7270,20 @@ } ] }, - "6": { + "5": { "patterns": [ { "include": "#inline_comment" } ] }, - "7": { + "6": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "8": { + "7": { "name": "comment.block.cpp" }, - "9": { + "8": { "patterns": [ { "match": "\\*\\/", @@ -7403,23 +7295,23 @@ } ] }, - "10": { - "name": "storage.type.modifier.calling-convention.cpp" + "9": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" }, - "11": { + "10": { "patterns": [ { "include": "#inline_comment" } ] }, - "12": { + "11": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "13": { + "12": { "name": "comment.block.cpp" }, - "14": { + "13": { "patterns": [ { "match": "\\*\\/", @@ -7431,27 +7323,23 @@ } ] }, - "15": { - "patterns": [ - { - "include": "#functional_specifiers_pre_parameters" - } - ] + "14": { + "name": "storage.type.cpp storage.type.built-in.cpp" }, - "16": { + "15": { "patterns": [ { "include": "#inline_comment" } ] }, - "17": { + "16": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "18": { + "17": { "name": "comment.block.cpp" }, - "19": { + "18": { "patterns": [ { "match": "\\*\\/", @@ -7463,136 +7351,51 @@ } ] }, + "19": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.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" + "include": "#inline_comment" } ] }, - { - "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" - } - ] + "21": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "name": "meta.tail.function.definition.special.member.destructor.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "22": { + "name": "comment.block.cpp" + }, + "23": { "patterns": [ { - "include": "$self" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] - } - ] - }, - "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*)?::)*)(((?>(?\\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": { + "24": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + }, + "25": { "patterns": [ { "include": "#inline_comment" } ] }, - "3": { + "26": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "27": { "name": "comment.block.cpp" }, - "5": { + "28": { "patterns": [ { "match": "\\*\\/", @@ -7604,23 +7407,43 @@ } ] }, - "6": { - "name": "storage.type.modifier.calling-convention.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)))((?|\\?\\?>)|(?=[;>\\[\\]=]))", "patterns": [ { - "name": "meta.head.function.definition.special.member.destructor.cpp", + "name": "meta.head.function.definition.special.constructor.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", "endCaptures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" } }, "patterns": [ @@ -7806,42 +7603,121 @@ ] }, { - "contentName": "meta.function.definition.parameters.special.member.destructor.cpp", - "begin": "(\\()", + "include": "#functional_specifiers_pre_parameters" + }, + { + "begin": "(:)", "beginCaptures": { "1": { - "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" + "name": "punctuation.separator.initializers.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": [ - { + "end": "(?=\\{)", + "patterns": [ + { + "contentName": "meta.parameter.initialization.cpp", + "begin": "((?(?:(?>[^<>]*)\\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": "((?|\\?\\?>)", + "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.member.destructor.cpp", + "name": "meta.tail.function.definition.special.constructor.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -7852,77 +7728,12 @@ } ] }, - "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.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": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", + "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*)?::)*)(((?>(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))::((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\16((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\()))", "beginCaptures": { "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" + "name": "meta.head.function.definition.special.constructor.cpp" }, "2": { "patterns": [ @@ -7950,42 +7761,22 @@ ] }, "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": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" + "name": "storage.type.modifier.calling-convention.cpp" }, - "2": { + "7": { "patterns": [ { "include": "#inline_comment" } ] }, - "3": { + "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "9": { "name": "comment.block.cpp" }, - "5": { + "10": { "patterns": [ { "match": "\\*\\/", @@ -7997,91 +7788,59 @@ } ] }, - "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": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" - }, - "2": { + "11": { "patterns": [ { - "include": "#inline_comment" + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" + }, + { + "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" + "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" + } + ] }, - "2": { + "17": { "patterns": [ { "include": "#inline_comment" } ] }, - "3": { + "18": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "19": { "name": "comment.block.cpp" }, - "5": { + "20": { "patterns": [ { "match": "\\*\\/", @@ -8093,43 +7852,20 @@ } ] }, - "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": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" - }, - "2": { + "21": { "patterns": [ { "include": "#inline_comment" } ] }, - "3": { + "22": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "23": { "name": "comment.block.cpp" }, - "5": { + "24": { "patterns": [ { "match": "\\*\\/", @@ -8141,190 +7877,20 @@ } ] }, - "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": "(?|\\?\\?>)|(?=[;>\\[\\]=]))", + "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": "((?(?:(?>[^<>]*)\\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": "((?|\\?\\?>)", + "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))))*)(~(?\\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" + "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" }, - { - "match": "\\*", + "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" } }, - "name": "invalid.illegal.reference-type.cpp" + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" + } + } }, { - "match": "\\&", - "name": "storage.modifier.reference.cpp" + "include": "$self" } ] }, - "29": { + { + "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": "#inline_comment" + "include": "#function_body_context" } ] }, - "30": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "31": { - "name": "comment.block.cpp" - }, - "32": { + { + "name": "meta.tail.function.definition.special.member.destructor.cpp", + "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "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*)?::)*)(((?>(?\\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" }, - "33": { + "2": { "patterns": [ { "include": "#inline_comment" } ] }, - "34": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "35": { + "4": { "name": "comment.block.cpp" }, - "36": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -8522,20 +8345,23 @@ } ] }, - "37": { + "6": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "7": { "patterns": [ { "include": "#inline_comment" } ] }, - "38": { + "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "39": { + "9": { "name": "comment.block.cpp" }, - "40": { + "10": { "patterns": [ { "match": "\\*\\/", @@ -8547,54 +8373,59 @@ } ] }, - "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": { + "11": { "patterns": [ { - "include": "#evaluation_context" + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" + }, + { + "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()", - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + "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" + } + ] }, - "2": { + "17": { "patterns": [ { "include": "#inline_comment" } ] }, - "3": { + "18": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "19": { "name": "comment.block.cpp" }, - "5": { + "20": { "patterns": [ { "match": "\\*\\/", @@ -8605,78 +8436,21 @@ "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": "(?|\\?\\?>)|(?=[;>\\[\\]=]))", + "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": "#scope_resolution_inner_generated" + "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" } ] }, - "13": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "15": { - "name": "meta.template.call.cpp", + { + "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": "#template_call_range" + "include": "#function_body_context" } ] }, - "17": { - "name": "entity.name.scope-resolution.cpp" - }, - "18": { - "name": "meta.template.call.cpp", + { + "name": "meta.tail.function.definition.special.member.destructor.cpp", + "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", "patterns": [ { - "include": "#template_call_range" + "include": "$self" } ] + } + ] + }, + "operators": { + "patterns": [ + { + "include": "#sizeof_operator" }, - "20": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + { + "include": "#alignof_operator" }, - "21": { + { + "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.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": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" + }, + "2": { "patterns": [ { "include": "#inline_comment" } ] }, - "22": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "23": { + "4": { "name": "comment.block.cpp" }, - "24": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -8770,74 +8690,43 @@ } ] }, - "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" - } - ] + "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": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" }, - "29": { + "2": { "patterns": [ { "include": "#inline_comment" } ] }, - "30": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "31": { + "4": { "name": "comment.block.cpp" }, - "32": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -8849,45 +8738,43 @@ } ] }, - "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" - } - ] + "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": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" }, - "37": { + "2": { "patterns": [ { "include": "#inline_comment" } ] }, - "38": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "39": { + "4": { "name": "comment.block.cpp" }, - "40": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -8899,39 +8786,28 @@ } ] }, - "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" + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" } }, - "end": "(\\))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()", + "end": "(\\))", "endCaptures": { "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "typeid_operator": { + "contentName": "meta.arguments.operator.typeid.cpp", + "begin": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" }, "2": { "patterns": [ @@ -8957,32 +8833,44 @@ "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": "#function_parameter_context" + "include": "#evaluation_context" } ] }, - "parameter_or_maybe_value": { - "name": "meta.parameter.cpp", - "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\w)", + "noexcept_operator": { + "contentName": "meta.arguments.operator.noexcept.cpp", + "begin": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()", "beginCaptures": { "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" + }, + "2": { "patterns": [ { "include": "#inline_comment" } ] }, - "2": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "4": { "name": "comment.block.cpp" }, - "4": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -8993,12 +8881,35 @@ "name": "comment.block.cpp" } ] + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" } }, - "end": "(?:(?=\\))|(,))", + "end": "(\\))", "endCaptures": { "1": { - "name": "punctuation.separator.delimiter.comma.cpp" + "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": [ @@ -9006,489 +8917,366 @@ "include": "#ever_present_context" }, { - "include": "#function_pointer_parameter" + "include": "#string_context" }, { - "include": "#memory_operators" + "include": "#number_literal" }, { - "include": "#builtin_storage_type_initilizer" + "include": "#string_context_c" }, { - "include": "#curly_initializer" + "include": "#method_access" }, { - "include": "#decltype" + "include": "#member_access" }, { - "include": "#vararg_ellipses" + "include": "#predefined_macros" }, { - "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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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" - } - ] + "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": "(?\\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" + "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" }, - "8": { + { + "match": "\\*", "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } - } + ] }, - { - "include": "#attributes_context" + "25": { + "name": "entity.name.type.cpp" }, - { - "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" - } - }, + "26": { + "name": "meta.template.call.cpp", "patterns": [ { - "include": "#evaluation_context" + "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}))*\\b(?\\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" - } - ] + "28": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" } - }, - "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" + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\*", + "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" - } - ] + }, + "name": "invalid.illegal.reference-type.cpp" }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.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" }, - "7": { + { + "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" }, - "8": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\*", + "name": "comment.block.cpp" } - } + ] }, - { - "include": "#evaluation_context" - } - ] - }, - "parameter": { - "name": "meta.parameter.cpp", - "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\w)", - "beginCaptures": { - "1": { + "37": { "patterns": [ { "include": "#inline_comment" } ] }, - "2": { + "38": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "39": { "name": "comment.block.cpp" }, - "4": { + "40": { "patterns": [ { "match": "\\*\\/", @@ -9499,489 +9287,162 @@ "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": "(?:(?=\\))|(,))", + "end": "(\\))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()", "endCaptures": { "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "patterns": [ - { - "include": "#ever_present_context" + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" }, - { - "include": "#function_pointer_parameter" + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#decltype" + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#vararg_ellipses" + "4": { + "name": "comment.block.cpp" }, - { - "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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, - "5": { + { + "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": "(?\\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" - } - }, + "3": { "patterns": [ { - "include": "#evaluation_context" + "include": "#inline_comment" } ] }, - { - "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(?\\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" + "6": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, - "7": { + { + "match": "\\*", "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)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-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": { + ] + }, + "7": { "patterns": [ { "include": "#inline_comment" } ] }, - "2": { + "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "9": { "name": "comment.block.cpp" }, - "4": { + "10": { "patterns": [ { "match": "\\*\\/", @@ -9993,134 +9454,52 @@ } ] }, - "5": { - "name": "variable.language.this.cpp" + "12": { + "patterns": [ + { + "include": "#scope_resolution_inner_generated" + } + ] }, - "6": { - "name": "variable.other.object.access.cpp" + "13": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, - "7": { - "name": "punctuation.separator.dot-access.cpp" + "15": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" + "17": { + "name": "entity.name.scope-resolution.cpp" }, - "9": { + "18": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.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)))((?\\*|->)))", - "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" + "include": "#template_call_range" } ] }, - "10": { - "name": "variable.other.property.cpp" - } - } - }, - "method_access": { - "begin": "(?:((?:(?:(?>\\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*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\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": { + "20": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "21": { "patterns": [ { "include": "#inline_comment" } ] }, - "2": { + "22": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "23": { "name": "comment.block.cpp" }, - "4": { + "24": { "patterns": [ { "match": "\\*\\/", @@ -10132,64 +9511,25 @@ } ] }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" + "25": { + "name": "entity.name.type.cpp" }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" + "26": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] }, - "9": { + "28": { "patterns": [ { - "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.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": "\\*", + "name": "storage.modifier.pointer.cpp" }, { - "match": "(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\*|->)))", + "match": "(?:\\&((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ @@ -10215,524 +9555,169 @@ "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" + }, + "name": "invalid.illegal.reference-type.cpp" }, { - "include": "#method_access" + "match": "\\&", + "name": "storage.modifier.reference.cpp" } ] }, - "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": "(?(?:(?>[^<>]*)\\g<7>?)+)>)\\s*)?::)*\\s*+)?((?(?:(?>[^<>]*)\\g<9>?)+)>)\\s*)?::)*\\s*+)\\s*((?|\\?\\?>)|(?=[;>\\[\\]=]))", - "patterns": [ - { - "name": "meta.head.namespace.cpp", - "begin": "\\G ?", - "end": "((?:\\{|<%|\\?\\?<|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" - } - }, + "36": { "patterns": [ { - "include": "#ever_present_context" - }, - { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "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*((?|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" - } - }, + "37": { "patterns": [ { - "include": "$self" + "include": "#inline_comment" } ] }, - { - "name": "meta.tail.namespace.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "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" - }, - "lambdas": { - "begin": "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[))((?:[^\\]\\[]*\\[.*?\\](?!\\s*\\[)[^\\]\\[]*?)*[^\\]\\[]*?)(\\](?!\\[)))", - "beginCaptures": { - "2": { - "name": "punctuation.definition.capture.begin.lambda.cpp" + "38": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { - "name": "meta.lambda.capture.cpp", + "39": { + "name": "comment.block.cpp" + }, + "40": { "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" - } - } + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#evaluation_context" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "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" - } - ] + "41": { + "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" }, - { - "match": "(?)((?:.+?(?=\\{|$))?)", - "captures": { - "1": { - "name": "punctuation.definition.lambda.return-type.cpp" - }, - "2": { - "name": "storage.type.return-type.lambda.cpp" - } - } + "43": { + "name": "variable.parameter.pointer.function.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" - } - }, + "44": { + "name": "punctuation.definition.begin.bracket.square.cpp" + }, + "45": { "patterns": [ { - "include": "$self" + "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" } - ] - }, - "enumerator_list": { - "match": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()", + "endCaptures": { "1": { - "name": "variable.other.enummember.cpp" + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" }, "2": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, "3": { - "name": "keyword.operator.assignment.cpp" + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { + "name": "comment.block.cpp" + }, + "5": { "patterns": [ { - "include": "#evaluation_context" - } - ] - }, - "5": { - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#semicolon" - } - ] - } - }, - "name": "meta.enum.definition.cpp" - }, - "enum_block": { - "name": "meta.block.enum.cpp", - "begin": "(((?(?:(?>[^<>]*)\\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*((?|\\?\\?>)\\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": "#enumerator_list" - }, - { - "include": "#comments" - }, - { - "include": "#comma" - }, - { - "include": "#semicolon" - } - ] - }, - { - "name": "meta.tail.enum.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" - } - ] + "include": "#function_parameter_context" } ] }, - "inheritance_context": { + "typedef_function_pointer": { + "begin": "((?\\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": { + "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": [ @@ -10897,215 +9882,211 @@ "include": "#template_call_range" } ] - } - } - } - ] - }, - "class_block": { - "name": "meta.block.class.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", - "beginCaptures": { - "1": { - "name": "meta.head.class.cpp" - }, - "3": { - "name": "storage.type.$3.cpp" - }, - "4": { - "patterns": [ - { - "include": "#attributes_context" }, - { - "include": "#number_literal" - } - ] - }, - "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" + "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" + } + ] }, - { - "match": "\\*", + "29": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "30": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "31": { "name": "comment.block.cpp" - } - ] - }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.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": "\\*", + "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" - } - ] - }, - "14": { - "patterns": [ - { - "include": "#attributes_context" }, - { - "include": "#number_literal" - } - ] - }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" - }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" - }, - "18": { - "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" + "36": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "#inheritance_context" + "37": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#template_call_range" + "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" } - ] - }, - { - "name": "meta.body.class.cpp", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", + }, + "end": "(\\))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()", "endCaptures": { "1": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" - } - }, - "patterns": [ - { - "include": "#function_pointer" + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" }, - { - "include": "#static_assert" + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#constructor_inline" + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#destructor_inline" + "4": { + "name": "comment.block.cpp" }, - { - "include": "$self" + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] } - ] - }, - { - "name": "meta.tail.class.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + }, "patterns": [ { - "include": "$self" + "include": "#function_parameter_context" } ] } ] }, - "struct_block": { - "name": "meta.block.struct.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", + "parameter_or_maybe_value": { + "name": "meta.parameter.cpp", + "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\w)", "beginCaptures": { "1": { - "name": "meta.head.struct.cpp" - }, - "3": { - "name": "storage.type.$3.cpp" - }, - "4": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "5": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "3": { "name": "comment.block.cpp" }, - "8": { + "4": { "patterns": [ { "match": "\\*\\/", @@ -11116,436 +10097,166 @@ "name": "comment.block.cpp" } ] + } + }, + "end": "(?:(?=\\))|(,))", + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "patterns": [ + { + "include": "#ever_present_context" }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "include": "#function_pointer_parameter" }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "include": "#memory_operators" }, - "12": { - "name": "comment.block.cpp" + { + "include": "#builtin_storage_type_initilizer" }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" + { + "include": "#curly_initializer" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + { + "include": "#decltype" }, - "18": { - "patterns": [ - { - "include": "#inheritance_context" - } - ] - } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" + { + "include": "#vararg_ellipses" }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "patterns": [ { - "name": "meta.head.struct.cpp", - "begin": "\\G ?", - "end": "((?:\\{|<%|\\?\\?<|(?=;)))", - "endCaptures": { + "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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=,|\\)|=)", + "captures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" - } - }, - "patterns": [ - { - "include": "#ever_present_context" + "patterns": [ + { + "include": "#storage_types" + } + ] }, - { - "include": "#inheritance_context" + "2": { + "name": "storage.modifier.specifier.parameter.cpp" }, - { - "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" + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#static_assert" + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#constructor_inline" + "5": { + "name": "comment.block.cpp" }, - { - "include": "#destructor_inline" + "6": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "$self" - } - ] - }, - { - "name": "meta.tail.struct.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "union_block": { - "name": "meta.block.union.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", - "beginCaptures": { - "1": { - "name": "meta.head.union.cpp" - }, - "3": { - "name": "storage.type.$3.cpp" - }, - "4": { - "patterns": [ - { - "include": "#attributes_context" + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#number_literal" - } - ] - }, - "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" + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\*", + "9": { "name": "comment.block.cpp" - } - ] - }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.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": "\\*", + "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": [ - { - "include": "#attributes_context" }, - { - "include": "#number_literal" - } - ] - }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" - }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" - }, - "18": { - "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" + "14": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - { - "include": "#destructor_inline" + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "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" + "16": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "match": "\\*", + "17": { "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": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", - "beginCaptures": { - "1": { - "name": "meta.head.class.cpp" - }, - "3": { - "name": "storage.type.$3.cpp" }, - "4": { + "18": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "19": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "20": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "21": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "22": { "name": "comment.block.cpp" }, - "8": { + "23": { "patterns": [ { "match": "\\*\\/", @@ -11557,23 +10268,23 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + "24": { + "name": "storage.type.cpp storage.type.built-in.cpp" }, - "10": { + "25": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "26": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "27": { "name": "comment.block.cpp" }, - "13": { + "28": { "patterns": [ { "match": "\\*\\/", @@ -11585,156 +10296,208 @@ } ] }, - "14": { + "29": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" + }, + "30": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" + "31": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "32": { + "name": "comment.block.cpp" }, - "18": { + "33": { "patterns": [ { - "include": "#inheritance_context" - } - ] - } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", + "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.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" + "name": "punctuation.separator.delimiter.comma.cpp" } }, "patterns": [ { - "name": "meta.head.class.cpp", - "begin": "\\G ?", - "end": "((?:\\{|<%|\\?\\?<|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" - } - }, + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\n|$)))", + "captures": { + "1": { "patterns": [ { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" + "include": "#inline_comment" } ] }, - { - "name": "meta.body.class.cpp", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" - } - }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { "patterns": [ { - "include": "#function_pointer" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#static_assert" - }, + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "5": { + "name": "variable.parameter.cpp" + }, + "6": { + "patterns": [ { - "include": "#constructor_inline" - }, + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "patterns": [ { - "include": "#destructor_inline" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "$self" + "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": [ { - "name": "meta.tail.class.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "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(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*)", + "captures": { + "0": { "patterns": [ { - "match": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))){2,}\\&", "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": { + "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "3": { "name": "comment.block.cpp" }, - "5": { + "4": { "patterns": [ { "match": "\\*\\/", @@ -11745,97 +10508,38 @@ "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" } - } + }, + "name": "invalid.illegal.reference-type.cpp" }, { - "match": "," + "match": "\\&", + "name": "storage.modifier.reference.cpp" } ] - } - ] - } - ] - }, - "typedef_struct": { - "begin": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", - "beginCaptures": { + }, "1": { - "name": "meta.head.struct.cpp" + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { - "name": "storage.type.$3.cpp" + "name": "comment.block.cpp" }, "4": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, @@ -11863,24 +10567,90 @@ "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" }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=,|\\)|=)", + "captures": { + "1": { + "patterns": [ + { + "include": "#storage_types" + } + ] }, - "10": { + "2": { + "name": "storage.modifier.specifier.parameter.cpp" + }, + "3": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "4": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "5": { "name": "comment.block.cpp" }, - "13": { + "6": { "patterns": [ { "match": "\\*\\/", @@ -11892,274 +10662,126 @@ } ] }, - "14": { + "7": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "9": { + "name": "comment.block.cpp" }, - "18": { + "10": { "patterns": [ { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] - } - }, - "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" - } - }, + "11": { "patterns": [ { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" + "include": "#inline_comment" } ] }, - { - "name": "meta.body.struct.cpp", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { "patterns": [ { - "include": "#function_pointer" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#static_assert" - }, + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "15": { + "patterns": [ { - "include": "#constructor_inline" - }, + "include": "#inline_comment" + } + ] + }, + "16": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "17": { + "name": "comment.block.cpp" + }, + "18": { + "patterns": [ { - "include": "#destructor_inline" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "$self" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "name": "meta.tail.struct.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "19": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "20": { "patterns": [ { - "match": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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": "," + "include": "#inline_comment" } ] - } - ] - } - ] - }, - "typedef_union": { - "begin": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", - "beginCaptures": { - "1": { - "name": "meta.head.union.cpp" }, - "3": { - "name": "storage.type.$3.cpp" + "21": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "22": { + "name": "comment.block.cpp" + }, + "23": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "24": { + "name": "storage.type.cpp storage.type.built-in.cpp" + }, + "25": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "26": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "27": { "name": "comment.block.cpp" }, - "8": { + "28": { "patterns": [ { "match": "\\*\\/", @@ -12171,23 +10793,23 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + "29": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" }, - "10": { + "30": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "31": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "32": { "name": "comment.block.cpp" }, - "13": { + "33": { "patterns": [ { "match": "\\*\\/", @@ -12199,206 +10821,180 @@ } ] }, - "14": { + "34": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + }, + "35": { + "name": "entity.name.type.parameter.cpp" + }, + "36": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" + "37": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "38": { + "name": "comment.block.cpp" }, - "18": { + "39": { "patterns": [ { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", + } + }, + { + "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.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" + "name": "punctuation.separator.delimiter.comma.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": "#evaluation_context" + } + ] + }, + { + "include": "#assignment_operator" + }, + { + "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\)|,|\\[|=|\\n)", + "captures": { + "1": { + "patterns": [ { - "include": "#template_call_range" + "include": "#inline_comment" } ] }, - { - "name": "meta.body.union.cpp", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { "patterns": [ { - "include": "#function_pointer" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#static_assert" - }, + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "5": { + "name": "variable.parameter.cpp" + }, + "6": { + "patterns": [ { - "include": "#constructor_inline" - }, + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "patterns": [ { - "include": "#destructor_inline" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "$self" + "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": [ { - "name": "meta.tail.union.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "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(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*)", + "captures": { + "0": { "patterns": [ { - "match": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))){2,}\\&", "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": { + "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "3": { "name": "comment.block.cpp" }, - "13": { + "4": { "patterns": [ { "match": "\\*\\/", @@ -12409,63 +11005,156 @@ "name": "comment.block.cpp" } ] - }, - "14": { - "name": "entity.name.type.alias.cpp" } - } + }, + "name": "invalid.illegal.reference-type.cpp" }, { - "match": "," + "match": "\\&", + "name": "storage.modifier.reference.cpp" } ] - } - ] - } - ] - }, - "struct_declare": { - "match": "(struct)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\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" + "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)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-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": "entity.name.type.struct.cpp" + "name": "variable.other.object.access.cpp" }, "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + }, + "9": { "patterns": [ { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" + "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "5": { + "name": "variable.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)))){2,}\\&", + "match": "(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\*|->)))", "captures": { "1": { "patterns": [ @@ -12491,55 +11180,51 @@ "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" } - }, - "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" + "include": "#member_access" }, { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#method_access" } ] }, - "12": { + "10": { + "name": "variable.other.property.cpp" + } + } + }, + "method_access": { + "begin": "(?:((?:(?:(?>\\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*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\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" } ] }, - "13": { + "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "14": { + "3": { "name": "comment.block.cpp" }, - "15": { + "4": { "patterns": [ { "match": "\\*\\/", @@ -12551,103 +11236,64 @@ } ] }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + "5": { + "name": "variable.language.this.cpp" }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + "6": { + "name": "variable.other.object.access.cpp" }, - "18": { - "name": "comment.block.cpp" + "7": { + "name": "punctuation.separator.dot-access.cpp" }, - "19": { + "8": { + "name": "punctuation.separator.pointer-access.cpp" + }, + "9": { "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "5": { + "name": "variable.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": "\\*", - "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)))((?\\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\\$)((?\\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,}\\&", + "match": "(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\*|->)))", "captures": { "1": { "patterns": [ @@ -12673,360 +11319,251 @@ "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" } - }, - "name": "invalid.illegal.reference-type.cpp" + } }, { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ + "include": "#member_access" + }, { - "include": "#inline_comment" + "include": "#method_access" } ] }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, "10": { - "name": "comment.block.cpp" + "name": "entity.name.function.member.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" + "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": "(?(?:(?>[^<>]*)\\g<7>?)+)>)\\s*)?::)*\\s*+)?((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)", + "namespace_alias": { + "match": "(?(?:(?>[^<>]*)\\g<9>?)+)>)\\s*)?::)*\\s*+)\\s*((?\\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" + "include": "#template_call_range" } ] }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, "10": { - "name": "comment.block.cpp" + "name": "entity.name.namespace.cpp" }, "11": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.declaration.namespace.alias.cpp" + }, + "namespace_block": { + "name": "meta.block.namespace.cpp", + "begin": "(((?|\\?\\?>)|(?=[;>\\[\\]=]))", + "patterns": [ + { + "name": "meta.head.namespace.cpp", + "begin": "\\G ?", + "end": "((?:\\{|<%|\\?\\?<|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" } - ] - }, - "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" + "include": "#ever_present_context" }, { - "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" + "include": "#attributes_context" }, { - "match": "\\*", - "name": "comment.block.cpp" + "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*((?|\\?\\?>)", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" + } + }, "patterns": [ { - "include": "#inline_comment" + "include": "$self" } ] }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "23": { - "name": "comment.block.cpp" - }, - "24": { + { + "name": "meta.tail.namespace.cpp", + "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "$self" } ] } - } + ] }, - "class_declare": { - "match": "(class)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)", - "captures": { - "1": { - "name": "storage.type.class.declare.cpp" - }, + "lambdas": { + "begin": "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[))((?:[^\\]\\[]*\\[.*?\\](?!\\s*\\[)[^\\]\\[]*?)*[^\\]\\[]*?)(\\](?!\\[)))", + "beginCaptures": { "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + "name": "punctuation.definition.capture.begin.lambda.cpp" }, "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": { + "name": "meta.lambda.capture.cpp", "patterns": [ { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" + "include": "#the_this_keyword" }, { - "match": "(?:\\&((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))){2,}\\&", + "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" } ] }, - "2": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "4": { "name": "comment.block.cpp" }, - "4": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -13037,399 +11574,2717 @@ "name": "comment.block.cpp" } ] + }, + "6": { + "name": "punctuation.separator.delimiter.comma.cpp" + }, + "7": { + "name": "keyword.operator.assignment.cpp" } - }, - "name": "invalid.illegal.reference-type.cpp" + } }, { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" + "include": "#evaluation_context" } ] }, - "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" + "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" } - ] - }, - "12": { + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.lambda.cpp" + } + }, "patterns": [ { - "include": "#inline_comment" + "include": "#function_parameter_context" } ] }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" + { + "match": "(?)((?:.+?(?=\\{|$))?)", + "captures": { + "1": { + "name": "punctuation.definition.lambda.return-type.cpp" }, - { - "match": "\\*", - "name": "comment.block.cpp" + "2": { + "name": "storage.type.return-type.lambda.cpp" } - ] + } }, - "16": { + { + "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": "#inline_comment" + "include": "$self" } ] + } + ] + }, + "enumerator_list": { + "match": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)", - "captures": { + "enum_block": { + "name": "meta.block.enum.cpp", + "begin": "(((?(?:(?>[^<>]*)\\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*((?\\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" + "include": "#template_call_range" } ] }, "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + "name": "entity.name.scope-resolution.cpp" }, "14": { - "name": "comment.block.cpp" - }, - "15": { + "name": "meta.template.call.cpp", "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#template_call_range" } ] }, "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" + "name": "storage.type.integral.$17.cpp" + } + }, + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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" } - ] - }, - "20": { + }, "patterns": [ { - "include": "#inline_comment" + "include": "$self" } ] }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { + { + "name": "meta.body.enum.cpp", + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "(\\}|%>|\\?\\?>)", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.enum.cpp" + } + }, "patterns": [ { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + "include": "#ever_present_context" }, { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "name": "variable.other.object.declare.cpp" - }, - "25": { - "patterns": [ + "include": "#enumerator_list" + }, { - "include": "#inline_comment" - } - ] - }, - "26": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "27": { - "name": "comment.block.cpp" - }, - "28": { - "patterns": [ + "include": "#comments" + }, { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + "include": "#comma" }, { - "match": "\\*", - "name": "comment.block.cpp" + "include": "#semicolon" } ] }, - "29": { + { + "name": "meta.tail.enum.cpp", + "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", "patterns": [ { - "include": "#inline_comment" + "include": "$self" } ] + } + ] + }, + "inheritance_context": { + "patterns": [ + { + "include": "#ever_present_context" }, - "30": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": ",", + "name": "punctuation.separator.delimiter.comma.inheritance.cpp" }, - "31": { - "name": "comment.block.cpp" + { + "match": "(?\\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": "(?\\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)))((?:(?\\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": "((((?\\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)))((?:(?\\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": "((((?\\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)))((?:(?\\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": "((?\\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)))((?:(?\\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)))((?\\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": "((?\\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)))((?:(?\\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)))((?\\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": "((?\\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)))((?:(?\\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)))((?\\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": "," + } + ] } ] } - } + ] }, - "parameter_enum": { - "match": "(enum)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)", + "struct_declare": { + "match": "(struct)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)", "captures": { "1": { - "name": "storage.type.enum.parameter.cpp" + "name": "storage.type.struct.declare.cpp" }, "2": { "patterns": [ @@ -13457,34 +14312,9 @@ ] }, "6": { - "name": "entity.name.type.enum.parameter.cpp" + "name": "entity.name.type.struct.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": "\\*", @@ -13527,20 +14357,20 @@ } ] }, - "12": { + "8": { "patterns": [ { "include": "#inline_comment" } ] }, - "13": { + "9": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "14": { + "10": { "name": "comment.block.cpp" }, - "15": { + "11": { "patterns": [ { "match": "\\*\\/", @@ -13552,20 +14382,20 @@ } ] }, - "16": { + "12": { "patterns": [ { "include": "#inline_comment" } ] }, - "17": { + "13": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "18": { + "14": { "name": "comment.block.cpp" }, - "19": { + "15": { "patterns": [ { "match": "\\*\\/", @@ -13577,20 +14407,20 @@ } ] }, - "20": { + "16": { "patterns": [ { "include": "#inline_comment" } ] }, - "21": { + "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "22": { + "18": { "name": "comment.block.cpp" }, - "23": { + "19": { "patterns": [ { "match": "\\*\\/", @@ -13602,73 +14432,23 @@ } ] }, - "24": { + "20": { "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": { + "21": { "patterns": [ { "include": "#inline_comment" } ] }, - "34": { + "22": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "35": { + "23": { "name": "comment.block.cpp" }, - "36": { + "24": { "patterns": [ { "match": "\\*\\/", @@ -13682,11 +14462,11 @@ } } }, - "parameter_union": { - "match": "(union)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)", + "union_declare": { + "match": "(union)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)", "captures": { "1": { - "name": "storage.type.union.parameter.cpp" + "name": "storage.type.union.declare.cpp" }, "2": { "patterns": [ @@ -13714,140 +14494,65 @@ ] }, "6": { - "name": "entity.name.type.union.parameter.cpp" + "name": "entity.name.type.union.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": [ + "name": "storage.modifier.pointer.cpp" + }, { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.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": "comment.block.cpp" + "match": "\\&", + "name": "storage.modifier.reference.cpp" } ] }, - "20": { + "8": { "patterns": [ { "include": "#inline_comment" } ] }, - "21": { + "9": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "22": { + "10": { "name": "comment.block.cpp" }, - "23": { + "11": { "patterns": [ { "match": "\\*\\/", @@ -13859,23 +14564,20 @@ } ] }, - "24": { - "name": "variable.other.object.declare.cpp" - }, - "25": { + "12": { "patterns": [ { "include": "#inline_comment" } ] }, - "26": { + "13": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "27": { + "14": { "name": "comment.block.cpp" }, - "28": { + "15": { "patterns": [ { "match": "\\*\\/", @@ -13887,20 +14589,20 @@ } ] }, - "29": { + "16": { "patterns": [ { "include": "#inline_comment" } ] }, - "30": { + "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "31": { + "18": { "name": "comment.block.cpp" }, - "32": { + "19": { "patterns": [ { "match": "\\*\\/", @@ -13912,20 +14614,23 @@ } ] }, - "33": { + "20": { + "name": "variable.other.object.declare.cpp" + }, + "21": { "patterns": [ { "include": "#inline_comment" } ] }, - "34": { + "22": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "35": { + "23": { "name": "comment.block.cpp" }, - "36": { + "24": { "patterns": [ { "match": "\\*\\/", @@ -13939,11 +14644,11 @@ } } }, - "parameter_class": { - "match": "(class)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)", + "enum_declare": { + "match": "(enum)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)", "captures": { "1": { - "name": "storage.type.class.parameter.cpp" + "name": "storage.type.enum.declare.cpp" }, "2": { "patterns": [ @@ -13971,34 +14676,9 @@ ] }, "6": { - "name": "entity.name.type.class.parameter.cpp" + "name": "entity.name.type.enum.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": "\\*", @@ -14041,20 +14721,20 @@ } ] }, - "12": { + "8": { "patterns": [ { "include": "#inline_comment" } ] }, - "13": { + "9": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "14": { + "10": { "name": "comment.block.cpp" }, - "15": { + "11": { "patterns": [ { "match": "\\*\\/", @@ -14066,20 +14746,20 @@ } ] }, - "16": { + "12": { "patterns": [ { "include": "#inline_comment" } ] }, - "17": { + "13": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "18": { + "14": { "name": "comment.block.cpp" }, - "19": { + "15": { "patterns": [ { "match": "\\*\\/", @@ -14091,20 +14771,20 @@ } ] }, - "20": { + "16": { "patterns": [ { "include": "#inline_comment" } ] }, - "21": { + "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "22": { + "18": { "name": "comment.block.cpp" }, - "23": { + "19": { "patterns": [ { "match": "\\*\\/", @@ -14116,23 +14796,23 @@ } ] }, - "24": { + "20": { "name": "variable.other.object.declare.cpp" }, - "25": { + "21": { "patterns": [ { "include": "#inline_comment" } ] }, - "26": { + "22": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "27": { + "23": { "name": "comment.block.cpp" }, - "28": { + "24": { "patterns": [ { "match": "\\*\\/", @@ -14143,21 +14823,29 @@ "name": "comment.block.cpp" } ] + } + } + }, + "class_declare": { + "match": "(class)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)", + "captures": { + "1": { + "name": "storage.type.class.declare.cpp" }, - "29": { + "2": { "patterns": [ { "include": "#inline_comment" } ] }, - "30": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "31": { + "4": { "name": "comment.block.cpp" }, - "32": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -14169,20 +14857,66 @@ } ] }, - "33": { + "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" } ] }, - "34": { + "9": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "35": { + "10": { "name": "comment.block.cpp" }, - "36": { + "11": { "patterns": [ { "match": "\\*\\/", @@ -14193,68 +14927,46 @@ "name": "comment.block.cpp" } ] - } - } - }, - "over_qualified_types": { - "patterns": [ - { - "include": "#parameter_struct" - }, - { - "include": "#parameter_enum" - }, - { - "include": "#parameter_union" }, - { - "include": "#parameter_class" - } - ] - }, - "hacky_fix_for_stray_directive": { - "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)", + "captures": { "1": { - "name": "variable.other.object.cpp" + "name": "storage.type.struct.parameter.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:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\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}))*)(?:(\\()([^()\\\\]+)(\\)))?", - "beginCaptures": { - "1": { "patterns": [ { "include": "#inline_comment" } ] }, - "2": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "4": { "name": "comment.block.cpp" }, - "4": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -14426,134 +15055,116 @@ } ] }, - "5": { - "name": "keyword.control.directive.define.cpp" - }, "6": { - "name": "punctuation.definition.directive.cpp" + "name": "entity.name.type.struct.parameter.cpp" }, "7": { - "name": "entity.name.function.preprocessor.cpp" + "patterns": [ + { + "include": "#inline_comment" + } + ] }, "8": { - "name": "punctuation.definition.parameters.begin.cpp" + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { + "name": "comment.block.cpp" + }, + "10": { "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": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "match": "\\.\\.\\.", - "name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "10": { - "name": "punctuation.definition.parameters.end.cpp" - } - }, - "end": "(?\\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" } ] }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - } - }, - "end": "'|(?\\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": { + }, + "16": { "patterns": [ { "include": "#inline_comment" } ] }, - "2": { + "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "18": { "name": "comment.block.cpp" }, - "4": { + "19": { "patterns": [ { "match": "\\*\\/", @@ -14565,35 +15176,20 @@ } ] }, - "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": { + "20": { "patterns": [ { "include": "#inline_comment" } ] }, - "12": { + "21": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "13": { + "22": { "name": "comment.block.cpp" }, - "14": { + "23": { "patterns": [ { "match": "\\*\\/", @@ -14605,29 +15201,23 @@ } ] }, - "15": { - "name": "string.quoted.double.include.cpp" - }, - "16": { - "name": "punctuation.definition.string.begin.cpp" - }, - "17": { - "name": "punctuation.definition.string.end.cpp" + "24": { + "name": "variable.other.object.declare.cpp" }, - "18": { + "25": { "patterns": [ { "include": "#inline_comment" } ] }, - "19": { + "26": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "20": { + "27": { "name": "comment.block.cpp" }, - "21": { + "28": { "patterns": [ { "match": "\\*\\/", @@ -14639,23 +15229,20 @@ } ] }, - "22": { - "name": "entity.name.other.preprocessor.macro.include.cpp" - }, - "23": { + "29": { "patterns": [ { "include": "#inline_comment" } ] }, - "24": { + "30": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "25": { + "31": { "name": "comment.block.cpp" }, - "26": { + "32": { "patterns": [ { "match": "\\*\\/", @@ -14667,20 +15254,20 @@ } ] }, - "27": { + "33": { "patterns": [ { "include": "#inline_comment" } ] }, - "28": { + "34": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "29": { + "35": { "name": "comment.block.cpp" }, - "30": { + "36": { "patterns": [ { "match": "\\*\\/", @@ -14692,1276 +15279,1120 @@ } ] } - }, - "name": "meta.preprocessor.include.cpp" + } }, - "meta_preprocessor_line": { - "name": "meta.preprocessor.cpp", - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { + "parameter_enum": { + "match": "(enum)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)", + "captures": { "1": { - "name": "keyword.control.directive.line.cpp" + "name": "storage.type.enum.parameter.cpp" }, "2": { - "name": "punctuation.definition.directive.cpp" - } - }, - "end": "(?=(?://|/\\*))|(?\\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" }, - "2": { - "name": "meta.encoding.cpp" + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" } - }, + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { "patterns": [ { - "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})", - "name": "constant.character.escape.cpp" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "match": "\\\\['\"?\\\\abfnrtv]", - "name": "constant.character.escape.cpp" - }, + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "16": { + "patterns": [ { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.cpp" - }, + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "patterns": [ { - "match": "\\\\x[0-9a-fA-F]{2,2}", - "name": "constant.character.escape.cpp" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#string_escapes_context_c" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "name": "string.quoted.single.cpp", - "begin": "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)", "captures": { "1": { - "name": "meta.preprocessor.pragma.cpp" + "name": "storage.type.union.parameter.cpp" }, "2": { - "name": "keyword.control.directive.pragma.pragma-mark.cpp" + "patterns": [ + { + "include": "#inline_comment" + } + ] }, "3": { - "name": "punctuation.definition.directive.cpp" + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { - "name": "entity.name.tag.pragma-mark.cpp" - } - }, - "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - "name": "meta.section.cpp" - }, - "string_context_c": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" + "name": "comment.block.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" + ] + }, + "6": { + "name": "entity.name.type.union.parameter.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" } - }, - "name": "string.quoted.double.cpp", + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { "patterns": [ { - "include": "#string_escapes_context_c" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#line_continuation_character" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "begin": "(?-mix:(?\\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" } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" } - }, - "name": "string.quoted.single.cpp", + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { "patterns": [ { - "include": "#string_escapes_context_c" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#line_continuation_character" + "match": "\\*", + "name": "comment.block.cpp" } ] - } - ] - }, - "string_escapes_context_c": { - "patterns": [ - { - "include": "#backslash_escapes" }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.cpp" + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "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": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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" }, - { - "include": "#comments" + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#string_context_c" + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#number_literal" + "4": { + "name": "comment.block.cpp" }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.cpp" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.cpp" - } - }, + "5": { "patterns": [ { - "include": "#preprocessor_rule_conditional_line_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "include": "#operators" + "6": { + "name": "entity.name.type.class.parameter.cpp" }, - { - "include": "#language_constants" + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "(?-mix:[a-zA-Z_$][\\w$]*)", - "name": "entity.name.function.preprocessor.cpp" + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#line_continuation_character" + "9": { + "name": "comment.block.cpp" }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.cpp" + "10": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } - }, - "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\\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": "#preprocessor_rule_conditional_line_context" + "include": "#inline_comment" } ] - } - ] - }, - "preprocessor_rule_disabled": { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.cpp" }, - "1": { - "name": "keyword.control.directive.conditional.cpp" + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "2": { - "name": "punctuation.definition.directive.cpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.cpp" + "14": { + "name": "comment.block.cpp" }, - "1": { - "name": "keyword.control.directive.conditional.cpp" + "15": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] }, - "2": { - "name": "punctuation.definition.directive.cpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.cpp", + "16": { "patterns": [ { - "include": "#preprocessor_rule_conditional_line_context" + "include": "#inline_comment" } ] }, - { - "include": "#comments" - }, - { - "include": "#preprocessor_rule_enabled_elif" - }, - { - "include": "#preprocessor_rule_enabled_else" + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#preprocessor_rule_disabled_elif" + "18": { + "name": "comment.block.cpp" }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.cpp" - }, - "1": { - "name": "keyword.control.directive.conditional.cpp" - }, - "2": { - "name": "punctuation.definition.directive.cpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "19": { "patterns": [ { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.cpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.cpp" - } - }, - "end": "(\\))|(?\\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*)?::)*)(((?>(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))::((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\16((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\()))", @@ -18227,7 +18579,7 @@ "patterns": [ { "name": "meta.block.class.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", + "begin": "((((?\\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)))((?:(?\\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" @@ -18236,6 +18588,31 @@ "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" @@ -18245,20 +18622,20 @@ } ] }, - "5": { + "9": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "10": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "11": { "name": "comment.block.cpp" }, - "8": { + "12": { "patterns": [ { "match": "\\*\\/", @@ -18270,23 +18647,23 @@ } ] }, - "9": { + "13": { "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" }, - "10": { + "14": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "15": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "16": { "name": "comment.block.cpp" }, - "13": { + "17": { "patterns": [ { "match": "\\*\\/", @@ -18298,7 +18675,7 @@ } ] }, - "14": { + "18": { "patterns": [ { "include": "#attributes_context" @@ -18308,16 +18685,116 @@ } ] }, - "15": { + "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" }, - "16": { + "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" }, - "17": { + "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" }, - "18": { + "38": { "patterns": [ { "include": "#inheritance_context" @@ -18534,15 +19011,40 @@ "patterns": [ { "name": "meta.block.struct.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", + "begin": "((((?\\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)))((?:(?\\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" + "3": { + "name": "storage.type.$3.cpp" + }, + "4": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "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" @@ -18552,20 +19054,20 @@ } ] }, - "5": { + "9": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "10": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "11": { "name": "comment.block.cpp" }, - "8": { + "12": { "patterns": [ { "match": "\\*\\/", @@ -18577,23 +19079,23 @@ } ] }, - "9": { + "13": { "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" }, - "10": { + "14": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "15": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "16": { "name": "comment.block.cpp" }, - "13": { + "17": { "patterns": [ { "match": "\\*\\/", @@ -18605,7 +19107,7 @@ } ] }, - "14": { + "18": { "patterns": [ { "include": "#attributes_context" @@ -18615,16 +19117,116 @@ } ] }, - "15": { + "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" }, - "16": { + "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" }, - "17": { + "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" }, - "18": { + "38": { "patterns": [ { "include": "#inheritance_context" @@ -18841,38 +19443,154 @@ "patterns": [ { "name": "meta.block.union.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", + "begin": "((((?\\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)))((?:(?\\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" + "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" }, - "4": { + "21": { + "name": "comment.block.cpp" + }, + "22": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "23": { + "name": "entity.name.type.$3.cpp" + }, + "24": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "25": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "26": { "name": "comment.block.cpp" }, - "8": { + "27": { "patterns": [ { "match": "\\*\\/", @@ -18884,23 +19602,23 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + "28": { + "name": "storage.type.modifier.final.cpp" }, - "10": { + "29": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "30": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "31": { "name": "comment.block.cpp" }, - "13": { + "32": { "patterns": [ { "match": "\\*\\/", @@ -18912,26 +19630,35 @@ } ] }, - "14": { + "33": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" + "34": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "16": { - "name": "storage.type.modifier.final.cpp" + "35": { + "name": "comment.block.cpp" }, - "17": { + "36": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "37": { "name": "punctuation.separator.colon.inheritance.cpp" }, - "18": { + "38": { "patterns": [ { "include": "#inheritance_context" @@ -19137,40 +19864,479 @@ } ] }, - "macro_safe_class_block": { - "name": "meta.block.class.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", + "macro_safe_class_block": { + "name": "meta.block.class.cpp", + "begin": "((((?\\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)))((?:(?\\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.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": "((((?\\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)))((?:(?\\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" + "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" + "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" } ] }, - "5": { + "28": { + "name": "storage.type.modifier.final.cpp" + }, + "29": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "30": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "31": { "name": "comment.block.cpp" }, - "8": { + "32": { "patterns": [ { "match": "\\*\\/", @@ -19182,23 +20348,20 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - "10": { + "33": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "34": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "35": { "name": "comment.block.cpp" }, - "13": { + "36": { "patterns": [ { "match": "\\*\\/", @@ -19210,26 +20373,10 @@ } ] }, - "14": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" - }, - "17": { + "37": { "name": "punctuation.separator.colon.inheritance.cpp" }, - "18": { + "38": { "patterns": [ { "include": "#inheritance_context" @@ -19248,12 +20395,12 @@ }, "patterns": [ { - "name": "meta.head.class.cpp", + "name": "meta.head.struct.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", "endCaptures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" + "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" } }, "patterns": [ @@ -19269,12 +20416,12 @@ ] }, { - "name": "meta.body.class.cpp", + "name": "meta.body.struct.cpp", "begin": "(?<=\\{|<%|\\?\\?<)", "end": "(\\}|%>|\\?\\?>)", "endCaptures": { "1": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" + "name": "punctuation.section.block.end.bracket.curly.struct.cpp" } }, "patterns": [ @@ -19296,7 +20443,7 @@ ] }, { - "name": "meta.tail.class.cpp", + "name": "meta.tail.struct.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -19307,40 +20454,30 @@ } ] }, - "macro_safe_struct_block": { - "name": "meta.block.struct.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", + "macro_safe_union_block": { + "name": "meta.block.union.cpp", + "begin": "((((?\\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)))((?:(?\\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" + "name": "meta.head.union.cpp" }, "3": { "name": "storage.type.$3.cpp" }, "4": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "5": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "5": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "6": { "name": "comment.block.cpp" }, - "8": { + "7": { "patterns": [ { "match": "\\*\\/", @@ -19352,23 +20489,30 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + "8": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] }, - "10": { + "9": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "10": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "11": { "name": "comment.block.cpp" }, - "13": { + "12": { "patterns": [ { "match": "\\*\\/", @@ -19380,137 +20524,86 @@ } ] }, + "13": { + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, "14": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, "15": { - "name": "entity.name.type.$3.cpp" + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "16": { - "name": "storage.type.modifier.final.cpp" + "name": "comment.block.cpp" }, "17": { - "name": "punctuation.separator.colon.inheritance.cpp" - }, - "18": { - "patterns": [ - { - "include": "#inheritance_context" - } - ] - } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, + "18": { "patterns": [ { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" + "include": "#attributes_context" }, { - "include": "$self" + "include": "#number_literal" } ] }, - { - "name": "meta.tail.struct.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "19": { "patterns": [ { - "include": "$self" + "include": "#inline_comment" } ] - } - ] - }, - "macro_safe_union_block": { - "name": "meta.block.union.cpp", - "begin": "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))", - "beginCaptures": { - "1": { - "name": "meta.head.union.cpp" }, - "3": { - "name": "storage.type.$3.cpp" + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "21": { + "name": "comment.block.cpp" + }, + "22": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "23": { + "name": "entity.name.type.$3.cpp" + }, + "24": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "25": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "26": { "name": "comment.block.cpp" }, - "8": { + "27": { "patterns": [ { "match": "\\*\\/", @@ -19522,23 +20615,23 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + "28": { + "name": "storage.type.modifier.final.cpp" }, - "10": { + "29": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "30": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "31": { "name": "comment.block.cpp" }, - "13": { + "32": { "patterns": [ { "match": "\\*\\/", @@ -19550,26 +20643,35 @@ } ] }, - "14": { + "33": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" + "34": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "16": { - "name": "storage.type.modifier.final.cpp" + "35": { + "name": "comment.block.cpp" }, - "17": { + "36": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "37": { "name": "punctuation.separator.colon.inheritance.cpp" }, - "18": { + "38": { "patterns": [ { "include": "#inheritance_context" @@ -19747,6 +20849,9 @@ } }, "patterns": [ + { + "include": "#ever_present_context" + }, { "include": "#enumerator_list" }, diff --git a/syntaxes/cpp.tmLanguage.yaml b/syntaxes/cpp.tmLanguage.yaml index 5a125dc6..ea3914f5 100644 --- a/syntaxes/cpp.tmLanguage.yaml +++ b/syntaxes/cpp.tmLanguage.yaml @@ -59,372 +59,154 @@ repository: name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.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: "#single_line_macro" - - include: "#preprocessor_rule_enabled" - - include: "#preprocessor_rule_disabled" - - include: "#preprocessor_rule_conditional" - - include: "#meta_preprocessor_macro" - - include: "#meta_preprocessor_diagnostic" - - include: "#meta_preprocessor_include" - - include: "#pragma_mark" - - include: "#meta_preprocessor_line" - - include: "#meta_preprocessor_undef" - - include: "#meta_preprocessor_pragma" - - include: "#hacky_fix_for_stray_directive" - - 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: + macro_name: + match: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*pragma\\s+mark)\\s+(.*)" + captures: '1': - name: punctuation.definition.comment.end.cpp - line_comment: - name: comment.line.double-slash.cpp - begin: "\\s*+(\\/\\/)" + 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: punctuation.definition.comment.cpp - end: "(?<=\\n)(?[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\s*(?:\\n|$)))|(^\\s*((\\/\\*)\\s*?((?>[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\s*\\*\\/)))" + 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': - name: meta.toc-list.banner.double-slash.cpp + patterns: + - include: "#inline_comment" '2': - name: comment.line.double-slash.cpp + name: comment.block.cpp punctuation.definition.comment.begin.cpp '3': - name: punctuation.definition.comment.cpp + name: comment.block.cpp '4': - name: meta.banner.character.cpp + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp '5': - name: meta.toc-list.banner.block.cpp + name: keyword.control.directive.$7.cpp '6': - name: comment.line.block.cpp - '7': - name: punctuation.definition.comment.cpp + name: punctuation.definition.directive.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: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()" + '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.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp + name: keyword.control.directive.line.cpp '2': patterns: - include: "#inline_comment" @@ -439,19 +221,18 @@ repository: - 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 + name: punctuation.definition.directive.cpp + end: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()" + - include: "#string_context_c" + - include: "#number_literal" + - include: "#line_continuation_character" + diagnostic: + name: meta.preprocessor.diagnostic.cpp + begin: "((?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?:error|warning)))\\b\\s*" beginCaptures: '1': - name: keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp + name: keyword.control.directive.diagnostic.$7.cpp '2': patterns: - include: "#inline_comment" @@ -466,34 +247,80 @@ repository: - 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 + name: punctuation.definition.directive.cpp + end: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*undef\\b)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*define\\b)\\s*((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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 + name: punctuation.definition.directive.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)))((?\\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: + name: entity.name.function.preprocessor.cpp + end: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?:(?:ifndef|ifdef)|if)))" + beginCaptures: '1': - name: keyword.control.goto.cpp + name: keyword.control.directive.conditional.$7.cpp '2': patterns: - include: "#inline_comment" @@ -708,44 +401,51 @@ repository: - match: "\\*" name: comment.block.cpp '6': - name: entity.name.label.call.cpp - label: - match: "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)" - captures: + name: punctuation.definition.directive.cpp + patterns: + - name: meta.conditional.preprocessor.cpp + begin: "\\G(?<=ifndef|ifdef|if)" + end: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()" + - 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': - 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: "(\\))" + name: punctuation.definition.comment.begin.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)))((?[#;\\/=*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': - patterns: - - include: "#inline_comment" + name: comment.line.double-slash.cpp '3': - name: comment.block.cpp punctuation.definition.comment.begin.cpp + name: punctuation.definition.comment.cpp '4': - name: comment.block.cpp + name: meta.banner.character.cpp '5': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp + name: meta.toc-list.banner.block.cpp '6': - name: keyword.control.switch.cpp - end: "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))" + name: comment.line.block.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: - - 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 + - include: "#emacs_file_banner" + - include: "#block_comment" + - include: "#line_comment" + - include: "#invalid_comment_end" + number_literal: + begin: "(?(?:(?>[^<>]*)\\g<1>?)+)>)\\s*" + 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])))*)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?)" - endCaptures: - '1': - name: punctuation.section.angle-brackets.end.template.call.cpp - patterns: - - include: "#template_call_context" - template_isolated_definition: - match: "(?\\s*$)" + 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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()" beginCaptures: '1': - name: storage.type.template.cpp + name: keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp '2': - name: punctuation.section.angle-brackets.start.template.definition.cpp - end: "(>)" + 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.angle-brackets.end.template.definition.cpp + name: punctuation.section.arguments.end.bracket.round.decltype.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: + - include: "#evaluation_context" + decltype: + contentName: meta.arguments.decltype.cpp + begin: "((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()" + beginCaptures: '1': - name: storage.type.template.cpp + name: keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp '2': - name: entity.name.type.template.cpp + patterns: + - include: "#inline_comment" '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*(?:(,)|(?=>|$))" + 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)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+" + 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)))((?(?:(?>[^<>]*)\\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*)?(::)" + - 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: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+" + - 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)))((?(?:(?>[^<>]*)\\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*)?(::)" + - 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: "#scope_resolution_template_call_inner_generated" + - include: "#inline_comment" '2': - name: punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '3': + name: comment.block.cpp '4': - name: meta.template.call.cpp patterns: - - include: "#template_call_range" - '6': - name: entity.name.scope-resolution.template.call.cpp + - 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: 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*+" + name: punctuation.separator.colon.access.control.cpp + exception_keywords: + match: "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\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*)?(::)" + - 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)))((?(?:(?>[^<>]*)\\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 + name: comment.block.cpp punctuation.definition.comment.begin.cpp '3': - name: meta.template.call.cpp + name: comment.block.cpp + '4': 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*)?(::)" + - 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)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+" + - 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)))((?(?:(?>[^<>]*)\\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*)?(::)" + - 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: "#scope_resolution_function_definition_inner_generated" + - include: "#inline_comment" '2': - name: punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '3': + name: comment.block.cpp '4': - name: meta.template.call.cpp patterns: - - include: "#template_call_range" + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '5': + name: keyword.operator.wordlike.cpp '6': - name: entity.name.scope-resolution.function.definition.cpp + name: keyword.operator.delete.array.cpp '7': - name: meta.template.call.cpp - patterns: - - include: "#template_call_range" + name: keyword.operator.delete.array.bracket.cpp + '8': + name: keyword.operator.delete.cpp '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*)?(::)" + name: keyword.operator.new.cpp + control_flow_keywords: + match: "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+" + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '5': + name: keyword.control.$5.cpp + goto_statement: + 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}))*)" captures: - '0': - patterns: - - include: "#scope_resolution_namespace_using_inner_generated" '1': - name: punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp + name: keyword.control.goto.cpp + '2': + patterns: + - include: "#inline_comment" '3': - name: meta.template.call.cpp + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '4': + name: comment.block.cpp + '5': 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*)?(::)" + - 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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(:)" captures: '1': patterns: - - include: "#scope_resolution_namespace_using_inner_generated" + - include: "#inline_comment" '2': - name: punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '3': + name: comment.block.cpp '4': - name: meta.template.call.cpp patterns: - - include: "#template_call_range" + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '5': + name: entity.name.label.cpp '6': - name: entity.name.scope-resolution.namespace.using.cpp - '7': - name: meta.template.call.cpp patterns: - - include: "#template_call_range" + - include: "#inline_comment" + '7': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '8': + name: comment.block.cpp '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" + - 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)))((?(?:(?>[^<>]*)\\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: + - 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)))((?(?:(?>[^<>]*)\\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: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(\\()" + beginCaptures: + '1': patterns: - include: "#inline_comment" - '21': + '2': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '22': + '3': name: comment.block.cpp - '23': + '4': 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: + '5': + name: punctuation.section.parens.begin.bracket.round.conditional.switch.cpp + end: "(\\))" + endCaptures: '1': - name: meta.qualified_type.cpp - patterns: - - match: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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': + '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+((?(?:(?>[^<>]*)\\g<1>?)+)>)\\s*" + captures: + '0': + name: meta.template.call.cpp patterns: - - include: "#inline_comment" - '30': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '31': - name: comment.block.cpp - '32': + - 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: "(?\\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: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '33': + - include: "#template_definition_context" + '4': + name: punctuation.section.angle-brackets.end.template.definition.cpp + template_definition: + name: meta.template.definition.cpp + begin: "(?)" + 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" - '34': + '2': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '35': + '3': name: comment.block.cpp - '36': + '4': 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)))(?:(?\\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: "(?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+" + captures: + '0': patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '13': + - 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" - '14': + '2': name: punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp - '16': + '4': name: meta.template.call.cpp patterns: - include: "#template_call_range" - '18': + '6': name: entity.name.scope-resolution.cpp - '19': + '7': name: meta.template.call.cpp patterns: - include: "#template_call_range" - '21': + '9': 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': + 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: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '26': - name: entity.name.type.cpp - '27': + - 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" - '29': - name: keyword.operator.assignment.cpp - '30': - name: keyword.other.typename.cpp - '31': + 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: "#storage_specifiers" - '32': - name: meta.qualified_type.cpp + - 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: - - match: "(?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+" + captures: + '0': patterns: - - include: "#inline_comment" - '35': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '36': - name: comment.block.cpp - '37': + - 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: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '38': + - 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: "#inline_comment" - '39': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '40': - name: comment.block.cpp - '41': + - 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: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': + - include: "#template_call_range" + '6': + name: entity.name.scope-resolution.template.definition.cpp + '7': + name: meta.template.call.cpp patterns: - - include: "#scope_resolution_inner_generated" - '44': - name: punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp - '46': + - 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" - '48': - name: entity.name.scope-resolution.cpp - '49': + 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" - '51': - name: punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp - '52': + '6': + name: entity.name.scope-resolution.function.call.cpp + '7': + name: meta.template.call.cpp patterns: - - include: "#inline_comment" - '53': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '54': - name: comment.block.cpp - '55': + - 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: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '56': - name: entity.name.type.cpp - '57': + - 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" - '59': - name: meta.declaration.type.alias.value.unknown.cpp + 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: "#evaluation_context" - '60': + - 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: - - 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': + - include: "#template_call_range" + '6': + name: entity.name.scope-resolution.function.definition.cpp + '7': + name: meta.template.call.cpp patterns: - - include: "#inline_comment" - '62': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '63': - name: comment.block.cpp - '64': + - 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: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '65': + - 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: "#inline_comment" - '66': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '67': - name: comment.block.cpp - '68': + - 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: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '69': + - 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: "#inline_comment" - '70': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '71': - name: comment.block.cpp - '72': + - include: "#template_call_range" + '6': + name: entity.name.scope-resolution.namespace.alias.cpp + '7': + name: meta.template.call.cpp 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': + - 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: "#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)))(?\\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<:.]))" + - 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': - name: storage.modifier.cpp + 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: "#inline_comment" + - 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: comment.block.cpp punctuation.definition.comment.begin.cpp + 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: comment.block.cpp - '5': + name: meta.template.call.cpp patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp + - include: "#template_call_range" '6': + name: entity.name.scope-resolution.namespace.block.cpp + '7': + name: meta.template.call.cpp patterns: - - include: "#inline_comment" + - 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: comment.block.cpp punctuation.definition.comment.begin.cpp - '8': - name: comment.block.cpp + 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: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '10': + - 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: "(?\\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: "(?\\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)))(?:(?\\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: "(?\\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)))(?\\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: "(?\\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: "(?\\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)" @@ -5388,9 +5977,6 @@ repository: end: "[\\s\\n]*(?=;)" patterns: - include: "$self" - 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 lambdas: begin: ((?:(?<=[^\s]|^)(?])|(?<=\Wreturn|^return))\s*(\[(?!\[))((?:[^\]\[]*\[.*?\](?!\s*\[)[^\]\[]*?)*[^\]\[]*?)(\](?!\[))) beginCaptures: @@ -5534,6 +6120,7 @@ repository: '1': name: punctuation.section.block.end.bracket.curly.enum.cpp patterns: + - include: "#ever_present_context" - include: "#enumerator_list" - include: "#comments" - include: "#comma" @@ -5545,6 +6132,7 @@ repository: - include: "$self" inheritance_context: patterns: + - include: "#ever_present_context" - match: "," name: punctuation.separator.delimiter.comma.inheritance.cpp - match: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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 @@ -5644,47 +6232,112 @@ repository: name: storage.type.$3.cpp '4': patterns: - - include: "#attributes_context" - - include: "#number_literal" - '5': + - 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" - '6': + '25': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '26': name: comment.block.cpp - '8': + '27': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': - name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '28': + name: storage.type.modifier.final.cpp + '29': patterns: - include: "#inline_comment" - '11': + '30': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '31': name: comment.block.cpp - '13': + '32': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '33': patterns: - - include: "#attributes_context" - - include: "#number_literal" - '15': - name: entity.name.type.$3.cpp - '16': - name: storage.type.modifier.final.cpp - '17': + - 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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -5723,55 +6376,120 @@ repository: - include: "$self" struct_block: name: meta.block.struct.cpp - begin: "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -5810,55 +6528,120 @@ repository: - include: "$self" union_block: name: meta.block.union.cpp - begin: "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -5953,55 +6736,120 @@ repository: end: "(?<=;)" patterns: - name: meta.block.class.cpp - begin: "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -6111,55 +6959,120 @@ repository: end: "(?<=;)" patterns: - name: meta.block.struct.cpp - begin: "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -6269,55 +7182,120 @@ repository: end: "(?<=;)" patterns: - name: meta.block.union.cpp - begin: "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -6366,256 +7344,64 @@ repository: - 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)))((?\\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\\$)((?\\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)))((?\\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\\$)((?\\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)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)" + '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)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)" captures: '1': - name: storage.type.enum.declare.cpp + name: storage.type.struct.declare.cpp '2': patterns: - include: "#inline_comment" @@ -6630,7 +7416,7 @@ repository: - match: "\\*" name: comment.block.cpp '6': - name: entity.name.type.enum.cpp + name: entity.name.type.struct.cpp '7': patterns: - match: "\\*" @@ -6707,11 +7493,11 @@ repository: name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - class_declare: - match: "(class)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)" + union_declare: + match: "(union)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)" captures: '1': - name: storage.type.class.declare.cpp + name: storage.type.union.declare.cpp '2': patterns: - include: "#inline_comment" @@ -6726,7 +7512,7 @@ repository: - match: "\\*" name: comment.block.cpp '6': - name: entity.name.type.class.cpp + name: entity.name.type.union.cpp '7': patterns: - match: "\\*" @@ -6803,17 +7589,11 @@ repository: 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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)" + enum_declare: + match: "(enum)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)" captures: '1': - name: storage.type.struct.parameter.cpp + name: storage.type.enum.declare.cpp '2': patterns: - include: "#inline_comment" @@ -6828,21 +7608,8 @@ repository: - match: "\\*" name: comment.block.cpp '6': - name: entity.name.type.struct.parameter.cpp + name: entity.name.type.enum.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 @@ -6864,226 +7631,65 @@ repository: 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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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': + '9': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '22': + '10': name: comment.block.cpp - '23': + '11': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '24': - name: variable.other.object.declare.cpp - '25': + '12': patterns: - include: "#inline_comment" - '26': + '13': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '27': + '14': name: comment.block.cpp - '28': + '15': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '29': + '16': patterns: - include: "#inline_comment" - '30': + '17': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '31': + '18': name: comment.block.cpp - '32': + '19': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '33': + '20': + name: variable.other.object.declare.cpp + '21': patterns: - include: "#inline_comment" - '34': + '22': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '35': + '23': name: comment.block.cpp - '36': + '24': 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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)" + class_declare: + match: "(class)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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\\$)((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)" captures: '1': - name: storage.type.union.parameter.cpp + name: storage.type.class.declare.cpp '2': patterns: - include: "#inline_comment" @@ -7098,21 +7704,8 @@ repository: - match: "\\*" name: comment.block.cpp '6': - name: entity.name.type.union.parameter.cpp + name: entity.name.type.class.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 @@ -7134,91 +7727,71 @@ repository: name: invalid.illegal.reference-type.cpp - match: "\\&" name: storage.modifier.reference.cpp - '12': + '8': patterns: - include: "#inline_comment" - '13': + '9': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '14': + '10': name: comment.block.cpp - '15': + '11': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '16': + '12': patterns: - include: "#inline_comment" - '17': + '13': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '18': + '14': name: comment.block.cpp - '19': + '15': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '20': + '16': patterns: - include: "#inline_comment" - '21': + '17': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '22': + '18': name: comment.block.cpp - '23': + '19': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '24': + '20': 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': + '21': patterns: - include: "#inline_comment" - '34': + '22': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '35': + '23': name: comment.block.cpp - '36': + '24': 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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)" + 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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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 + name: storage.type.struct.parameter.cpp '2': patterns: - include: "#inline_comment" @@ -7233,7 +7806,7 @@ repository: - match: "\\*" name: comment.block.cpp '6': - name: entity.name.type.class.parameter.cpp + name: entity.name.type.struct.parameter.cpp '7': patterns: - include: "#inline_comment" @@ -7326,1002 +7899,629 @@ repository: '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" - hacky_fix_for_stray_directive: - match: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\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}))*)(?:(\\()([^()\\\\]+)(\\)))?" - beginCaptures: - '1': - patterns: - - include: "#inline_comment" - '2': + '30': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '3': + '31': name: comment.block.cpp - '4': + '32': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '5': - name: keyword.control.directive.define.cpp - '6': - name: punctuation.definition.directive.cpp - '7': - name: entity.name.function.preprocessor.cpp - '8': - name: punctuation.definition.parameters.begin.cpp - '9': + '33': 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 - '10': - name: punctuation.definition.parameters.end.cpp - end: "(?\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|$)|(?=\/\/))) + - 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)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\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" - '2': - name: comment.block.cpp punctuation.definition.comment.begin.cpp '3': - name: comment.block.cpp + 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 - '5': - name: keyword.control.directive.$7.cpp '6': - name: punctuation.definition.directive.cpp + name: entity.name.type.enum.parameter.cpp + '7': + patterns: + - include: "#inline_comment" '8': - name: string.quoted.other.lt-gt.include.cpp + name: comment.block.cpp punctuation.definition.comment.begin.cpp '9': - name: punctuation.definition.string.begin.cpp + name: comment.block.cpp '10': - name: punctuation.definition.string.end.cpp + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp '11': patterns: - - include: "#inline_comment" + - 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': - name: comment.block.cpp punctuation.definition.comment.begin.cpp + patterns: + - include: "#inline_comment" '13': - name: comment.block.cpp + 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 - '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': + '17': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '20': + '18': name: comment.block.cpp - '21': + '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: entity.name.other.preprocessor.macro.include.cpp + name: comment.block.cpp '23': patterns: - - include: "#inline_comment" + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp '24': - name: comment.block.cpp punctuation.definition.comment.begin.cpp + name: variable.other.object.declare.cpp '25': - name: comment.block.cpp + 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 - '27': + '29': patterns: - include: "#inline_comment" - '28': + '30': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '29': + '31': name: comment.block.cpp - '30': + '32': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - name: meta.preprocessor.include.cpp - meta_preprocessor_line: - name: meta.preprocessor.cpp - begin: "^\\s*((#)\\s*line)\\b" - beginCaptures: - '1': - name: keyword.control.directive.line.cpp - '2': - name: punctuation.definition.directive.cpp - end: "(?=(?://|/\\*))|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)" captures: '1': - name: meta.preprocessor.pragma.cpp + name: storage.type.union.parameter.cpp '2': - name: keyword.control.directive.pragma.pragma-mark.cpp + patterns: + - include: "#inline_comment" '3': - name: punctuation.definition.directive.cpp + name: comment.block.cpp punctuation.definition.comment.begin.cpp '4': - name: entity.name.tag.pragma-mark.cpp - match: "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))" - name: meta.section.cpp - 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:(?\\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: "#preprocessor_rule_conditional_line_context" - - include: "$self" - - begin: "\\n" - end: "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))" - contentName: comment.block.preprocessor.if-branch.cpp - patterns: - - include: "#disabled" - - include: "#pragma_mark" - preprocessor_rule_disabled_block: - begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))" - beginCaptures: - '0': - name: meta.preprocessor.cpp - '1': - name: keyword.control.directive.conditional.cpp - '2': - name: punctuation.definition.directive.cpp - end: "^\\s*((#)\\s*endif\\b)" - endCaptures: - '0': - name: meta.preprocessor.cpp - '1': - name: keyword.control.directive.conditional.cpp - '2': - name: punctuation.definition.directive.cpp - patterns: - - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))" - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)" - name: meta.preprocessor.cpp - patterns: - - include: "#preprocessor_rule_conditional_line_context" - - include: "#comments" - - include: "#preprocessor_rule_enabled_elif_block" - - include: "#preprocessor_rule_enabled_else_block" - - include: "#preprocessor_rule_disabled_elif" - - begin: "^\\s*((#)\\s*elif\\b)" - beginCaptures: - '0': - name: meta.preprocessor.cpp - '1': - name: keyword.control.directive.conditional.cpp - '2': - name: punctuation.definition.directive.cpp - end: "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))" - patterns: - - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))" - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?=,|\\)|\\n)" + captures: '1': - name: keyword.control.directive.conditional.cpp + name: storage.type.class.parameter.cpp '2': - name: punctuation.definition.directive.cpp - end: "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))" + 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: - - begin: "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))" - end: "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=+!]+|\(\)|\[\]))\s*\( - ) - end: "(?<=\\))(?!\\w)|(?=+!]+|\(\)|\[\])) - ) - \s*(\() - beginCaptures: - '1': - name: entity.name.function.cpp - '2': - name: punctuation.section.arguments.begin.bracket.round.cpp - end: "(\\))|(?\\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*)?::)*)(((?>(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))::((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\16((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\()))" @@ -9502,55 +9661,120 @@ repository: end: "(?<=;)|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '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" - '6': + '30': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '31': name: comment.block.cpp - '8': + '32': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': - name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '33': patterns: - include: "#inline_comment" - '11': + '34': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '35': name: comment.block.cpp - '13': + '36': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': - patterns: - - include: "#attributes_context" - - include: "#number_literal" - '15': - name: entity.name.type.$3.cpp - '16': - name: storage.type.modifier.final.cpp - '17': + '37': name: punctuation.separator.colon.inheritance.cpp - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -9660,55 +9884,120 @@ repository: end: "(?<=;)|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -9818,55 +10107,120 @@ repository: end: "(?<=;)|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" @@ -9970,55 +10324,120 @@ repository: - match: "," macro_safe_class_block: name: meta.block.class.cpp - begin: "((((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '19': patterns: - include: "#inline_comment" - '6': + '20': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '21': name: comment.block.cpp - '8': + '22': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': - name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '23': + name: entity.name.type.$3.cpp + '24': patterns: - include: "#inline_comment" - '11': + '25': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '26': name: comment.block.cpp - '13': + '27': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': - patterns: - - include: "#attributes_context" - - include: "#number_literal" - '15': - name: entity.name.type.$3.cpp - '16': + '28': name: storage.type.modifier.final.cpp - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(DLLEXPORT)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?\\s*((?:(?\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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(?:(?:(?(?:(?>[^<>]*)?)+)>)\\s*)?(?![\\w<:.])))+)*))?))" + begin: "((((?\\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)))((?:(?\\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" - '5': + '9': patterns: - include: "#inline_comment" - '6': + '10': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '11': name: comment.block.cpp - '8': + '12': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '9': + '13': name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': + '14': patterns: - include: "#inline_comment" - '11': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '16': name: comment.block.cpp - '13': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '18': patterns: - include: "#attributes_context" - include: "#number_literal" - '15': + '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 - '16': + '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 - '17': + '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 - '18': + '38': patterns: - include: "#inheritance_context" end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(? #define IsPointDef(...) \ @@ -34,3 +52,4 @@ int other; struct IsArrayBasedPoint:public std::true_type \ { + diff --git a/test/fixtures/issues/324.cpp b/test/fixtures/issues/324.cpp index 1dc109b7..3234c844 100644 --- a/test/fixtures/issues/324.cpp +++ b/test/fixtures/issues/324.cpp @@ -1,11 +1,11 @@ #define HARVEST_REQUEST_PARAM_APPEND(string, key, value, edited, ampersand) \ do { \ - (if(edited) { \ + if(edited) { \ if(ampersand) { \ g_string_append_printf(string, "&%s=%s", #key, #value); \ } else { \ ampersand = TRUE; \ g_string_append_printf(string, "%s=%s", #key, #value); \ } \ - }) \ + } \ } while(0) diff --git a/test/source/get_tokens.js b/test/source/get_tokens.js index 3ac15cc5..ca37835b 100644 --- a/test/source/get_tokens.js +++ b/test/source/get_tokens.js @@ -1,7 +1,7 @@ // get the tokens from the file and process them with the provided function const path = require("path"); const chalk = require("chalk"); -const vsctm = require("vscode-textmate-experimental"); +const vsctm = require("vscode-textmate"); const paths = require("./paths"); const fs = require("fs"); diff --git a/test/source/registry.js b/test/source/registry.js index ff218a09..adbff3d0 100644 --- a/test/source/registry.js +++ b/test/source/registry.js @@ -1,7 +1,7 @@ const path = require("path"); const fs = require("fs"); const glob = require("glob"); -const vsctm = require("vscode-textmate-experimental"); +const vsctm = require("vscode-textmate"); const rewriteGrammar = require("./report/rewrite_grammar"); const pathFor = require("./paths"); diff --git a/test/source/report/onig_scanner.js b/test/source/report/onig_scanner.js index d7f0803a..38244db0 100644 --- a/test/source/report/onig_scanner.js +++ b/test/source/report/onig_scanner.js @@ -1,7 +1,7 @@ // this files acts like a onigScanner except that it checks each pattern in turn to // determine which pattern actually matched. // it also double checks with an actual onigScanner -const vsctm = require("vscode-textmate-experimental"); +const vsctm = require("vscode-textmate"); const oniguruma = require("oniguruma"); const { performance } = require("perf_hooks"); diff --git a/test/source/report/oniguruma_decorator.js b/test/source/report/oniguruma_decorator.js index e97f62a9..ebde3fbf 100644 --- a/test/source/report/oniguruma_decorator.js +++ b/test/source/report/oniguruma_decorator.js @@ -1,5 +1,5 @@ // This file wraps an IOnigLib and collects information to provide pattern coverage statistics -const onigLibs = require("vscode-textmate-experimental"); +const onigLibs = require("vscode-textmate"); const OnigScanner = require("./onig_scanner"); const recorder = require("./recorder"); diff --git a/test/source/report/rewrite_grammar.js b/test/source/report/rewrite_grammar.js index 44fcbcf9..bfda9340 100644 --- a/test/source/report/rewrite_grammar.js +++ b/test/source/report/rewrite_grammar.js @@ -1,6 +1,6 @@ // this modifies each rule so that regular expressions have their line numbers in them const jsonSourceMap = require("json-source-map"); -const vsctm = require("vscode-textmate-experimental"); +const vsctm = require("vscode-textmate"); const recorder = require("./recorder"); /** diff --git a/test/source/spec_checker.js b/test/source/spec_checker.js index 5a9ef704..2912c335 100644 --- a/test/source/spec_checker.js +++ b/test/source/spec_checker.js @@ -1,6 +1,6 @@ const _ = require("lodash"); const chalk = require("chalk"); -const vsctm = require("vscode-textmate-experimental"); +const vsctm = require("vscode-textmate"); const {removeScopeName} = require("./utils") /** diff --git a/test/specs/features/preprocessor.cpp.yaml b/test/specs/features/preprocessor.cpp.yaml index df9a836b..09fca014 100644 --- a/test/specs/features/preprocessor.cpp.yaml +++ b/test/specs/features/preprocessor.cpp.yaml @@ -141,10 +141,236 @@ scopes: - entity.name.type.class scopesEnd: + - meta.preprocessor.macro - meta.block.class - meta.head.class - source: '#' scopesBegin: + - keyword.control.directive.conditional.ifdef + scopes: + - punctuation.definition.directive +- source: ifdef + scopesEnd: + - keyword.control.directive.conditional.ifdef +- source: __vax__ + scopes: + - meta.conditional.preprocessor + - entity.name.function.preprocessor +- source: '#' + scopesBegin: + - meta.preprocessor.diagnostic + - keyword.control.directive.diagnostic.error + scopes: + - punctuation.definition.directive +- source: error + scopesEnd: + - keyword.control.directive.diagnostic.error +- source: '"' + scopesBegin: + - string.quoted.double + scopes: + - punctuation.definition.string.begin +- source: Won't work on VAXen. See comments at get_last_object. +- source: '"' + scopes: + - punctuation.definition.string.end + scopesEnd: + - meta.preprocessor.diagnostic + - string.quoted.double +- source: '#' + scopesBegin: + - keyword.control.directive.endif + scopes: + - punctuation.definition.directive +- source: endif + scopesEnd: + - keyword.control.directive.endif +- source: '#' + scopesBegin: + - keyword.control.directive.conditional.if + scopes: + - punctuation.definition.directive +- source: if + scopesEnd: + - keyword.control.directive.conditional.if +- source: '!' + scopesBegin: + - meta.conditional.preprocessor + scopes: + - keyword.operator.logical +- source: defined + scopes: + - keyword.control.directive.conditional.defined +- source: ( + scopes: + - punctuation.section.parens.control.defined +- source: FOO + scopes: + - entity.name.function.preprocessor +- source: ) + scopes: + - punctuation.section.parens.control.defined +- source: '&&' + scopes: + - keyword.operator.logical +- source: defined + scopes: + - keyword.control.directive.conditional.defined +- source: ( + scopes: + - punctuation.section.parens.control.defined +- source: BAR + scopes: + - entity.name.function.preprocessor +- source: ) + scopes: + - punctuation.section.parens.control.defined + scopesEnd: + - meta.conditional.preprocessor +- source: '#' + scopesBegin: + - meta.preprocessor.diagnostic + - keyword.control.directive.diagnostic.error + scopes: + - punctuation.definition.directive +- source: error + scopesEnd: + - keyword.control.directive.diagnostic.error +- source: '''' + scopesBegin: + - string.quoted.single + scopes: + - punctuation.definition.string.begin +- source: BAR requires FOO. +- source: '''' + scopes: + - punctuation.definition.string.end + scopesEnd: + - meta.preprocessor.diagnostic + - string.quoted.single +- source: '#' + scopesBegin: + - keyword.control.directive.endif + scopes: + - punctuation.definition.directive +- source: endif + scopesEnd: + - keyword.control.directive.endif +- source: '#' + scopesBegin: + - keyword.control.directive.conditional.ifdef + scopes: + - punctuation.definition.directive +- source: ifdef + scopesEnd: + - keyword.control.directive.conditional.ifdef +- source: __vax__ + scopes: + - meta.conditional.preprocessor + - entity.name.function.preprocessor +- source: '#' + scopesBegin: + - meta.preprocessor.diagnostic + - keyword.control.directive.diagnostic.warning + scopes: + - punctuation.definition.directive +- source: warning + scopesEnd: + - keyword.control.directive.diagnostic.warning +- source: '"' + scopesBegin: + - string.quoted.double + scopes: + - punctuation.definition.string.begin +- source: Won't work on VAXen. See comments at get_last_object. +- source: '"' + scopes: + - punctuation.definition.string.end + scopesEnd: + - meta.preprocessor.diagnostic + - string.quoted.double +- source: '#' + scopesBegin: + - keyword.control.directive.endif + scopes: + - punctuation.definition.directive +- source: endif + scopesEnd: + - keyword.control.directive.endif +- source: '#' + scopesBegin: + - keyword.control.directive.conditional.if + scopes: + - punctuation.definition.directive +- source: if + scopesEnd: + - keyword.control.directive.conditional.if +- source: '!' + scopesBegin: + - meta.conditional.preprocessor + scopes: + - keyword.operator.logical +- source: defined + scopes: + - keyword.control.directive.conditional.defined +- source: ( + scopes: + - punctuation.section.parens.control.defined +- source: FOO + scopes: + - entity.name.function.preprocessor +- source: ) + scopes: + - punctuation.section.parens.control.defined +- source: '&&' + scopes: + - keyword.operator.logical +- source: defined + scopes: + - keyword.control.directive.conditional.defined +- source: ( + scopes: + - punctuation.section.parens.control.defined +- source: BAR + scopes: + - entity.name.function.preprocessor +- source: ) + scopes: + - punctuation.section.parens.control.defined + scopesEnd: + - meta.conditional.preprocessor +- source: '#' + scopesBegin: + - meta.preprocessor.diagnostic + - keyword.control.directive.diagnostic.warning + scopes: + - punctuation.definition.directive +- source: warning + scopesEnd: + - keyword.control.directive.diagnostic.warning +- source: '''' + scopesBegin: + - string.quoted.single + scopes: + - punctuation.definition.string.begin +- source: BAR requires FOO. +- source: '''' + scopes: + - punctuation.definition.string.end + scopesEnd: + - meta.preprocessor.diagnostic + - string.quoted.single +- source: '#' + scopesBegin: + - keyword.control.directive.endif + scopes: + - punctuation.definition.directive +- source: endif + scopesEnd: + - keyword.control.directive.endif +- source: '#' + scopesBegin: + - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -276,8 +502,22 @@ - source: once scopes: - entity.other.attribute-name.pragma.preprocessor +- source: '#' + scopesBegin: + - keyword.control.directive.pragma + scopes: + - punctuation.definition.directive +- source: pragma + scopesEnd: + - keyword.control.directive.pragma +- source: GCC + scopesBegin: + - entity.other.attribute-name.pragma.preprocessor +- source: poison +- source: printf scopesEnd: - meta.preprocessor.pragma + - entity.other.attribute-name.pragma.preprocessor - source: '#' scopesBegin: - meta.preprocessor.include diff --git a/test/specs/issues/088.cpp.yaml b/test/specs/issues/088.cpp.yaml index 8df4fb32..53d65f21 100644 --- a/test/specs/issues/088.cpp.yaml +++ b/test/specs/issues/088.cpp.yaml @@ -8,29 +8,25 @@ - comment.line.double-slash - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifdef scopes: - punctuation.definition.directive - source: ifdef scopesEnd: - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifdef - source: USE_IN_HLSL scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: cbuffer testCB - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.else scopes: - punctuation.definition.directive - source: else scopesEnd: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.else - source: struct scopesBegin: - meta.block.struct @@ -40,9 +36,14 @@ - source: testCB scopes: - entity.name.type.struct -- source: '#endif' +- source: '#' + scopesBegin: + - keyword.control.directive.endif scopes: - - 'keyword.control.directive.#endif' + - punctuation.definition.directive +- source: endif + scopesEnd: + - keyword.control.directive.endif - source: // scopesBegin: - comment.line.double-slash diff --git a/test/specs/issues/121.cpp.yaml b/test/specs/issues/121.cpp.yaml index 7538d631..52ac83a9 100644 --- a/test/specs/issues/121.cpp.yaml +++ b/test/specs/issues/121.cpp.yaml @@ -100,6 +100,8 @@ - source: ':' scopes: - punctuation.separator.colon.inheritance + scopesEnd: + - meta.head.class - source: /* scopesBegin: - comment.block @@ -120,9 +122,8 @@ - entity.name.type - source: '{' scopes: - - punctuation.section.block.begin.bracket.curly.class - scopesEnd: - meta.head.class + - punctuation.section.block.begin.bracket.curly.class - source: '}' scopes: - meta.body.class diff --git a/test/specs/issues/166.cpp.yaml b/test/specs/issues/166.cpp.yaml index b1df6f51..d6d1c96c 100644 --- a/test/specs/issues/166.cpp.yaml +++ b/test/specs/issues/166.cpp.yaml @@ -10,6 +10,8 @@ - source: ':' scopes: - punctuation.separator.colon.inheritance + scopesEnd: + - meta.head.class - source: public scopes: - storage.type.modifier.access.public @@ -32,9 +34,8 @@ - meta.qualified_type - source: '{' scopes: - - punctuation.section.block.begin.bracket.curly.class - scopesEnd: - meta.head.class + - punctuation.section.block.begin.bracket.curly.class - source: /* scopesBegin: - meta.body.class @@ -66,6 +67,8 @@ - source: ':' scopes: - punctuation.separator.colon.inheritance + scopesEnd: + - meta.head.class - source: virtual scopes: - storage.type.modifier.virtual @@ -88,9 +91,8 @@ - meta.qualified_type - source: '{' scopes: - - punctuation.section.block.begin.bracket.curly.class - scopesEnd: - meta.head.class + - punctuation.section.block.begin.bracket.curly.class - source: /* scopesBegin: - meta.body.class diff --git a/test/specs/issues/299.cpp.yaml b/test/specs/issues/299.cpp.yaml index 04269fbb..38ca581c 100644 --- a/test/specs/issues/299.cpp.yaml +++ b/test/specs/issues/299.cpp.yaml @@ -59,18 +59,16 @@ - source: '#' scopesBegin: - meta.tail.enum - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.conditional.if scopes: - punctuation.definition.directive - source: if scopesEnd: - - keyword.control.directive.conditional + - keyword.control.directive.conditional.if - source: COND scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: '#' scopesBegin: - meta.preprocessor.macro @@ -83,15 +81,14 @@ - source: TWO_AND_HALF scopes: - entity.name.function.preprocessor + scopesEnd: + - meta.preprocessor.macro - source: '1' scopes: - constant.numeric.decimal - scopesEnd: - - meta.preprocessor.macro - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.endif scopes: - punctuation.definition.directive - source: endif diff --git a/test/specs/issues/324.cpp.yaml b/test/specs/issues/324.cpp.yaml index eb3d34f2..ecf52c8d 100644 --- a/test/specs/issues/324.cpp.yaml +++ b/test/specs/issues/324.cpp.yaml @@ -59,11 +59,6 @@ - constant.character.escape.line-continuation scopesEnd: - meta.block -- source: ( - scopesBegin: - - meta.parens - scopes: - - punctuation.section.parens.begin.bracket.round - source: if scopes: - keyword.control.if @@ -78,10 +73,16 @@ - punctuation.section.parens.end.bracket.round scopesEnd: - meta.parens -- source: ' { ' +- source: '{' + scopesBegin: + - meta.block + scopes: + - punctuation.section.block.begin.bracket.curly - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.block - source: if scopes: - keyword.control.if @@ -96,10 +97,16 @@ - punctuation.section.parens.end.bracket.round scopesEnd: - meta.parens -- source: ' { ' +- source: '{' + scopesBegin: + - meta.block + scopes: + - punctuation.section.block.begin.bracket.curly - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.block - source: g_string_append_printf scopes: - entity.name.function.call @@ -131,11 +138,15 @@ - source: ',' scopes: - punctuation.separator.delimiter.comma -- source: ' #key' +- source: '#key' + scopes: + - variable.other.macro.argument - source: ',' scopes: - punctuation.separator.delimiter.comma -- source: ' #value' +- source: '#value' + scopes: + - variable.other.macro.argument - source: ) scopes: - punctuation.section.arguments.end.bracket.round.function.call @@ -149,10 +160,16 @@ - source: else scopes: - keyword.control.else -- source: ' { ' +- source: '{' + scopesBegin: + - meta.block + scopes: + - punctuation.section.block.begin.bracket.curly - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.block - source: "\t\t\t\tampersand " - source: = scopes: @@ -194,11 +211,15 @@ - source: ',' scopes: - punctuation.separator.delimiter.comma -- source: ' #key' +- source: '#key' + scopes: + - variable.other.macro.argument - source: ',' scopes: - punctuation.separator.delimiter.comma -- source: ' #value' +- source: '#value' + scopes: + - variable.other.macro.argument - source: ) scopes: - punctuation.section.arguments.end.bracket.round.function.call @@ -212,12 +233,7 @@ - source: \ scopes: - constant.character.escape.line-continuation -- source: "\t\t}" -- source: ) - scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - - meta.parens +- source: "\t\t} " - source: \ scopes: - constant.character.escape.line-continuation diff --git a/test/specs/vscode/example.cpp.yaml b/test/specs/vscode/example.cpp.yaml index 46b1d351..743901bb 100644 --- a/test/specs/vscode/example.cpp.yaml +++ b/test/specs/vscode/example.cpp.yaml @@ -3981,18 +3981,16 @@ - meta.preprocessor.macro - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifndef scopes: - punctuation.definition.directive - source: ifndef scopesEnd: - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifndef - source: CEKO_LIBRARY scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: '#' scopesBegin: - meta.preprocessor.macro @@ -4009,14 +4007,12 @@ - meta.preprocessor.macro - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.endif scopes: - punctuation.definition.directive - source: endif scopesEnd: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.endif - source: // scopesBegin: - comment.line.double-slash @@ -4193,18 +4189,16 @@ - punctuation.section.angle-brackets.end.template.definition - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifdef scopes: - punctuation.definition.directive - source: ifdef scopesEnd: - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifdef - source: blah scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: struct scopesBegin: - meta.block.struct @@ -4214,52 +4208,52 @@ - source: test scopes: - entity.name.type.struct -- source: '#endif' + scopesEnd: + - meta.block.struct + - meta.head.struct +- source: '#' + scopesBegin: + - keyword.control.directive.endif scopes: - - 'keyword.control.directive.#endif' + - punctuation.definition.directive +- source: endif + scopesEnd: + - keyword.control.directive.endif - source: '{' + scopesBegin: + - meta.block scopes: - - punctuation.section.block.begin.bracket.curly.struct - scopesEnd: - - meta.head.struct + - punctuation.section.block.begin.bracket.curly - source: // scopesBegin: - - meta.body.struct - comment.line.double-slash scopes: - punctuation.definition.comment - source: ' seperate line template' scopesEnd: - comment.line.double-slash -- source: template - scopes: - - storage.type.template +- source: ' template ' - source: < scopes: - - punctuation.section.angle-brackets.start.template.definition -- source: 'class ' + - keyword.operator.comparison +- source: class scopesBegin: - - meta.template.definition + - meta.block.class + - meta.head.class scopes: - - storage.type.template + - storage.type.class - source: U scopes: - - entity.name.type.template -- source: = - scopes: - - keyword.operator.assignment -- source: std - scopes: - - entity.name.scope-resolution.template.definition -- source: '::' - scopes: - - punctuation.separator.namespace.access - - punctuation.separator.scope-resolution.template.definition + - entity.name.type.class +- source: '= std::' - source: vector + scopesBegin: + - meta.qualified_type + scopes: + - entity.name.type - source: < scopesBegin: - meta.template.call - - meta.template.call scopes: - punctuation.section.angle-brackets.begin.template.call - source: int @@ -4270,35 +4264,33 @@ scopes: - punctuation.section.angle-brackets.end.template.call scopesEnd: - - meta.template.definition - - meta.template.call + - meta.qualified_type - meta.template.call - source: '>' - scopes: - - punctuation.section.angle-brackets.end.template.definition -- source: template - scopes: - - storage.type.template +- source: ' template' - source: < + scopesBegin: + - meta.template.call scopes: - - punctuation.section.angle-brackets.start.template.definition + - punctuation.section.angle-brackets.begin.template.call - source: typename - scopesBegin: - - meta.template.definition scopes: - - storage.type.template.argument.typename + - storage.modifier - source: RETURN_TYPE scopes: - - entity.name.type.template + - meta.qualified_type + - entity.name.type - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument -- source: 'int ' +- source: int scopes: - - storage.type.template + - storage.type.primitive + - storage.type.built-in.primitive - source: 'N' scopes: - - entity.name.type.template + - meta.qualified_type + - entity.name.type - source: = scopes: - keyword.operator.assignment @@ -4307,81 +4299,35 @@ - constant.numeric.decimal - source: '>' scopes: - - keyword.operator.comparison -- source: '1' - scopes: - - constant.numeric.decimal -- source: ',' - scopes: - - punctuation.separator.delimiter.comma -- source: typename - scopes: - - storage.type.template.argument.typename -- source: Callable - scopes: - - entity.name.type.template - scopesEnd: - - meta.template.definition -- source: '> ' - scopes: - - punctuation.section.angle-brackets.end.template.definition -- source: bool - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - storage.type.primitive - - storage.type.built-in.primitive -- source: operator - scopesBegin: - - meta.head.function.definition.special.operator-overload - scopes: - - keyword.other.operator.overload -- source: () - scopes: - - entity.name.operator -- source: ( - scopes: - - >- - punctuation.section.parameters.begin.bracket.round.special.operator-overload -- source: U - scopesBegin: - - meta.function.definition.parameters.special.operator-overload - - meta.parameter - scopes: - - entity.name.type.parameter -- source: k - scopes: - - variable.parameter + - punctuation.section.angle-brackets.end.template.call scopesEnd: - - meta.function.definition.parameters.special.operator-overload - - meta.parameter -- source: ) + - meta.template.call +- source: ' 1' +- source: ',' scopes: - - punctuation.section.parameters.end.bracket.round.special.operator-overload + - punctuation.separator.delimiter.comma.inheritance +- source: ' typename Callable> ' +- source: ' bool operator()(U k) ' - source: '{' scopes: - - >- - punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload + - punctuation.section.block.begin.bracket.curly.class scopesEnd: - - meta.head.function.definition.special.operator-overload + - meta.head.class - source: '}' scopes: - - meta.body.function.definition.special.operator-overload - - >- - punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload - scopesEnd: - - meta.function.definition.special.operator-overload -- source: '}' + - meta.body.class + - punctuation.section.block.end.bracket.curly.class +- source: ' }' scopes: - - punctuation.section.block.end.bracket.curly.struct - scopesEnd: - - meta.body.struct + - meta.tail.class - source: ; scopes: - punctuation.terminator.statement + scopesEnd: + - meta.block.class - source: struct scopesBegin: + - meta.block.struct - meta.head.struct scopes: - storage.type.struct @@ -4673,7 +4619,11 @@ - punctuation.terminator.statement scopesEnd: - meta.block.struct -- source: ' }' +- source: '}' + scopes: + - punctuation.section.block.end.bracket.curly + scopesEnd: + - meta.block - source: // scopesBegin: - comment.line.double-slash diff --git a/test/specs/vscode/misc005.cpp.yaml b/test/specs/vscode/misc005.cpp.yaml index 24ffb14d..38c31820 100644 --- a/test/specs/vscode/misc005.cpp.yaml +++ b/test/specs/vscode/misc005.cpp.yaml @@ -21,18 +21,16 @@ - comment.line.double-slash - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifndef scopes: - punctuation.definition.directive - source: ifndef scopesEnd: - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifndef - source: CEKO_LIBRARY scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: '#' scopesBegin: - meta.preprocessor.macro @@ -982,12 +980,11 @@ - source: numeric_limits scopes: - entity.name.scope-resolution + scopesEnd: + - meta.preprocessor.macro - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: long scopesBegin: - storage.type.primitive @@ -998,11 +995,10 @@ - storage.type.built-in.primitive - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: '::' + scopesBegin: + - meta.preprocessor.macro scopes: - punctuation.separator.namespace.access - punctuation.separator.scope-resolution @@ -1026,26 +1022,34 @@ - source: DoubleMax scopes: - entity.name.function.preprocessor + scopesEnd: + - meta.preprocessor.macro - source: '1' scopes: - constant.numeric.decimal - source: . scopes: + - meta.preprocessor.macro - constant.numeric.decimal.point - source: '79769' scopes: - constant.numeric.decimal - source: e + scopesBegin: + - meta.preprocessor.macro scopes: - keyword.other.unit.exponent.decimal - source: + scopes: - keyword.operator.plus.exponent.decimal + scopesEnd: + - meta.preprocessor.macro - source: '308' scopes: - - constant.numeric.exponent.decimal + - constant.numeric.decimal - source: '#' scopesBegin: + - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -1055,17 +1059,18 @@ - source: Pi scopes: - entity.name.function.preprocessor + scopesEnd: + - meta.preprocessor.macro - source: '3' scopes: - constant.numeric.decimal - source: . scopes: + - meta.preprocessor.macro - constant.numeric.decimal.point - source: '1415926535897932384626' scopes: - constant.numeric.decimal - scopesEnd: - - meta.preprocessor.macro - source: // scopesBegin: - comment.line.double-slash @@ -1371,14 +1376,12 @@ scopesEnd: - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: ClearScreen scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1395,13 +1398,9 @@ scopes: - punctuation.terminator.statement - source: streamsize - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: FlushCin scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1418,14 +1417,12 @@ scopes: - punctuation.terminator.statement - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Pause scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1442,14 +1439,12 @@ scopes: - punctuation.terminator.statement - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: System scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1478,13 +1473,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Getline scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1501,13 +1492,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Getline scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1515,20 +1502,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: string - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_string + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -1539,13 +1530,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Getline scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1553,20 +1540,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -1577,13 +1568,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Getline scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1591,15 +1578,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -1608,15 +1602,22 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_string + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -1627,13 +1628,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: StreamAsString scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1641,20 +1638,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -1665,13 +1666,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: StreamStatus scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1679,20 +1676,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -1703,13 +1704,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Literal scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1738,13 +1735,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Literal scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1774,14 +1767,12 @@ scopes: - punctuation.terminator.statement - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: IsAllUpperCase scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1810,14 +1801,12 @@ scopes: - punctuation.terminator.statement - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: IsAllUpperCase scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1847,14 +1836,12 @@ scopes: - punctuation.terminator.statement - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__CharIn__String scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1893,13 +1880,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: EverythingUpTo scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1922,15 +1905,22 @@ - source: istream scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -1941,13 +1931,9 @@ scopes: - punctuation.terminator.statement - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: EverythingUpTo scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -1977,14 +1963,12 @@ scopes: - punctuation.terminator.statement - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: EndProgram scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2001,14 +1985,12 @@ scopes: - punctuation.terminator.statement - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Poke scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2037,16 +2019,12 @@ scopes: - punctuation.terminator.statement - source: istream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: StreamFailed scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2054,20 +2032,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -2078,14 +2060,12 @@ scopes: - punctuation.terminator.statement - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: DidStreamFail scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2093,20 +2073,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -2117,14 +2101,12 @@ scopes: - punctuation.terminator.statement - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: EndOfStream scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2132,20 +2114,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -2156,14 +2142,12 @@ scopes: - punctuation.terminator.statement - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: StreamMatchesString scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2171,15 +2155,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -2211,10 +2202,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -2223,13 +2220,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Type scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2265,10 +2258,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -2277,13 +2276,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: AsString scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2299,15 +2294,22 @@ - source: ANYTYPE scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -2464,16 +2466,16 @@ scopesEnd: - meta.block.struct - source: ostream - scopesBegin: - - meta.function.definition.special.operator-overload scopes: + - meta.function.definition.special.operator-overload - meta.qualified_type - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -2485,15 +2487,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output_stream + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -2505,15 +2514,22 @@ - source: Errors scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_error + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -2552,14 +2568,12 @@ - meta.function.definition.special.operator-overload - meta.body.function.definition.special.operator-overload - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Error scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2608,14 +2622,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: error scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2775,15 +2790,12 @@ scopes: - punctuation.section.angle-brackets.start.template.definition - source: typename - scopesBegin: - - meta.template.definition scopes: - - storage.type.template.argument.typename + - storage.modifier - source: Callable scopes: - - entity.name.type.template - scopesEnd: - - meta.template.definition + - meta.qualified_type + - entity.name.type - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition @@ -2860,54 +2872,46 @@ scopes: - punctuation.section.angle-brackets.start.template.definition - source: int - scopesBegin: - - meta.template.definition scopes: - - storage.type.template.argument.int + - storage.type.primitive + - storage.type.built-in.primitive - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument + - punctuation.separator.delimiter.comma - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier - source: Callable scopes: - - entity.name.type.template + - meta.qualified_type + - entity.name.type - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument + - punctuation.separator.delimiter.comma - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier - source: Ret scopes: - - entity.name.type.template + - meta.qualified_type + - entity.name.type - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument + - punctuation.separator.delimiter.comma - source: typename scopes: - - storage.type.template -- source: ... - scopes: - - punctuation.vararg-ellipses.template.definition -- source: Args - scopes: - - entity.name.type.template - scopesEnd: - - meta.template.definition + - storage.modifier.typename +- source: ... Args - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition - source: auto - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: internalConversionToFuncPtr scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -2915,28 +2919,39 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: Callable - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter -- source: '&' - scopesBegin: - - storage.modifier.reference -- source: '&' scopesEnd: - - storage.modifier.reference + - meta.function.definition + - meta.head.function.definition +- source: '&&' + scopes: + - keyword.operator.logical - source: a_callable + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' scopes: - punctuation.separator.delimiter.comma + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: Ret - scopes: - - meta.qualified_type - - entity.name.type - source: ( + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - punctuation.section.parens.begin.bracket.round.function.pointer - source: '*' @@ -3007,20 +3022,20 @@ scopes: - punctuation.terminator.statement - source: using - scopesBegin: - - meta.declaration.type.alias scopes: + - meta.declaration.type.alias - keyword.other.using.directive + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: type - scopes: - - meta.qualified_type - - entity.name.type - source: = scopes: + - meta.function.definition + - meta.body.function.definition + - meta.declaration.type.alias - keyword.operator.assignment - source: decltype - scopesBegin: - - meta.declaration.type.alias.value.unknown scopes: - keyword.operator.functionlike - keyword.other.decltype @@ -3044,13 +3059,13 @@ - source: ) scopes: - punctuation.section.arguments.end.bracket.round.decltype - scopesEnd: - - meta.declaration.type.alias.value.unknown - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.terminator.statement - scopesEnd: - meta.declaration.type.alias + - punctuation.terminator.statement - source: if scopes: - keyword.control.if @@ -3076,13 +3091,16 @@ - source: . scopes: - punctuation.separator.dot-access -- source: callable - scopes: - - variable.other.object.property -- source: . - scopes: - - punctuation.separator.dot-access + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block +- source: callable. - source: ~type + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block scopes: - entity.name.function.member - source: ( @@ -3134,23 +3152,20 @@ - source: forward scopes: - entity.name.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: Callable - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: a_callable @@ -3240,23 +3255,22 @@ - source: forward scopes: - entity.name.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.function.definition.body.lambda - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: Args - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.function.definition.body.lambda scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: args @@ -3294,22 +3308,20 @@ scopes: - punctuation.section.angle-brackets.start.template.definition - source: typename - scopesBegin: - - meta.template.definition scopes: - - storage.type.template.argument.typename + - storage.modifier - source: RETURN_TYPE scopes: - - entity.name.type.template + - meta.qualified_type + - entity.name.type - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument -- source: 'int ' - scopes: - - storage.type.template -- source: 'N' + - punctuation.separator.delimiter.comma +- source: int scopes: - - entity.name.type.template + - storage.type.primitive + - storage.type.built-in.primitive +- source: ' N ' - source: = scopes: - keyword.operator.assignment @@ -3321,26 +3333,21 @@ - punctuation.separator.delimiter.comma - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier - source: Callable scopes: - - entity.name.type.template - scopesEnd: - - meta.template.definition + - meta.qualified_type + - entity.name.type - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition - source: RETURN_TYPE - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: convertToFunctionPointer scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -3348,23 +3355,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: Callable - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter -- source: '&' - scopesBegin: - - storage.modifier.reference -- source: '&' scopesEnd: - - storage.modifier.reference + - meta.function.definition + - meta.head.function.definition +- source: '&&' + scopes: + - keyword.operator.logical - source: c + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -3381,45 +3389,39 @@ - source: internalConversionToFuncPtr scopes: - entity.name.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: 'N' - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: forward scopes: - entity.name.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: Callable - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: c @@ -3518,10 +3520,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -3529,17 +3537,13 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: ostream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ostream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -3551,15 +3555,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output_stream + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -3572,28 +3583,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -3639,10 +3656,18 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -3697,14 +3722,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: '<<' scopes: - keyword.operator.bitwise.shift @@ -3763,10 +3796,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -3774,17 +3813,13 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: istream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' istream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -3796,15 +3831,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -3814,28 +3856,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -4018,10 +4066,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -4029,29 +4083,17 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: vector - scopesBegin: - - meta.function.definition.special.operator-overload - - meta.qualified_type - scopes: - - entity.name.type +- source: ' vector' - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -4072,23 +4114,32 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: vec1 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -4101,28 +4152,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: vec2 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -4260,10 +4317,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -4271,29 +4334,17 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: vector - scopesBegin: - - meta.function.definition.special.operator-overload - - meta.qualified_type - scopes: - - entity.name.type +- source: ' vector' - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -4314,23 +4365,32 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: vec1 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -4416,10 +4476,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -4427,29 +4493,17 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: vector - scopesBegin: - - meta.function.definition.special.operator-overload - - meta.qualified_type - scopes: - - entity.name.type +- source: ' vector' - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -4482,28 +4536,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: vec1 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -4598,19 +4658,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -4618,17 +4690,13 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: ostream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ostream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -4640,15 +4708,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output_stream + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -4661,35 +4736,43 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYTYPE' - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_pair + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -4761,19 +4844,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -4781,17 +4876,13 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: ostream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ostream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -4803,15 +4894,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output_stream + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -4824,35 +4922,43 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYTYPE' - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_map + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -4950,19 +5056,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -4970,17 +5088,13 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: istream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' istream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -4992,15 +5106,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -5010,35 +5131,43 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYTYPE' - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_pair + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -5136,19 +5265,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -5156,17 +5297,13 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: istream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' istream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -5178,15 +5315,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -5196,35 +5340,43 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYTYPE' - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_map + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -5505,10 +5657,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -5517,13 +5675,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Indent scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -5713,13 +5867,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Indent scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -5727,20 +5880,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -5788,13 +5945,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Indent scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -5802,20 +5958,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: stringstream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -5882,13 +6042,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Input_Unindent scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -5896,20 +6052,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -6556,14 +6716,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: '!=' scopes: - keyword.operator.comparison @@ -6729,14 +6899,12 @@ scopesEnd: - comment.line.double-slash - source: float - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Rand scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -6773,41 +6941,56 @@ - source: '%' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '10000' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: / scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '10000' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition + - meta.body.function.definition - constant.numeric.decimal.point - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '}' scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: float scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Randn scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -6836,10 +7019,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '2' scopes: - constant.numeric.decimal - source: '*' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - keyword.operator - source: log @@ -6870,10 +7059,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '2' scopes: - constant.numeric.decimal - source: '*' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - keyword.operator - source: ' Pi ' @@ -6911,17 +7106,15 @@ - comment.line.double-slash - source: long scopesBegin: - - meta.function.definition - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: long scopesEnd: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: CurrentTimeInMicroSeconds scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -6963,10 +7156,16 @@ - source: ',' scopes: - punctuation.separator.delimiter.comma + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: ; @@ -6987,10 +7186,16 @@ - source: '*' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1000000' scopes: - constant.numeric.decimal - source: + + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - keyword.operator - source: a_time @@ -7009,14 +7214,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: long scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: NumberOfMicrosecondsBetween scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -7032,10 +7238,20 @@ - source: timeval scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: start_time + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -7047,15 +7263,22 @@ - source: timeval scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: end_time + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -7142,14 +7365,20 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -7172,17 +7401,25 @@ scopes: - punctuation.section.parens.end.bracket.round scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: e scopes: + - meta.function.definition + - meta.body.function.definition + - meta.block - keyword.other.unit.exponent.decimal - source: '6' - scopes: - - constant.numeric.exponent.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block scopes: - punctuation.terminator.statement - source: ' seconds' @@ -7209,10 +7446,18 @@ - source: '*' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1000000' scopes: - constant.numeric.decimal - source: + + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - keyword.operator - source: ' micro_seconds' @@ -7228,14 +7473,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: BriefDelay scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -7264,11 +7510,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '200' scopes: - constant.numeric.decimal - source: ) scopesBegin: + - meta.function.definition + - meta.body.function.definition - punctuation.section.arguments.end.bracket.round.function.call - source: ) scopesEnd: @@ -7280,14 +7531,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: BriefDelay scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -7352,14 +7604,20 @@ - source: '*' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '100' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ) scopesBegin: - punctuation.section.arguments.end.bracket.round.function.call @@ -7373,14 +7631,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: LittleRandomDelay scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -7415,10 +7674,16 @@ - source: + scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: ; @@ -7433,12 +7698,12 @@ scopes: - meta.head.function.definition - storage.modifier.const + scopesEnd: + - meta.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: currentDateTime scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -7496,10 +7761,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: ; @@ -7529,14 +7800,20 @@ - source: '[' scopes: - punctuation.definition.begin.bracket.square + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.bracket.square.access - source: '80' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: ; scopes: - punctuation.terminator.statement @@ -7664,10 +7941,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -7676,13 +7957,9 @@ scopesEnd: - meta.template.definition - source: streamsize - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: FlushStream scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -7696,23 +7973,32 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -7786,10 +8072,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: if @@ -7842,23 +8134,24 @@ - source: char_traits scopes: - entity.name.scope-resolution + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens + - meta.parens - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: '::' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens + - meta.parens scopes: - punctuation.separator.namespace.access - punctuation.separator.scope-resolution @@ -7962,23 +8255,22 @@ - source: numeric_limits scopes: - entity.name.scope-resolution + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: streamsize - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: '::' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block scopes: - punctuation.separator.namespace.access - punctuation.separator.scope-resolution @@ -8066,14 +8358,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: ClearScreen scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8127,13 +8420,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: streamsize - scopes: - - meta.qualified_type - - entity.name.type - source: FlushCin scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8170,13 +8462,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Getline scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8237,13 +8528,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Getline scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8251,20 +8541,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: string - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_string + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -8315,13 +8609,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Getline scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8329,20 +8622,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -8397,13 +8694,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Getline scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8411,15 +8707,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -8428,15 +8731,22 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_string + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -8487,14 +8797,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Pause scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8580,14 +8891,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: BackSpace scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8649,10 +8961,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -8778,14 +9100,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: TypeOut scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -8860,10 +9183,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -8900,10 +9233,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: cout @@ -8991,10 +9334,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '7' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: ; @@ -9015,13 +9364,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: StreamAsString scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -9029,20 +9374,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -9135,13 +9484,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: StreamStatus scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -9149,20 +9497,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -9512,16 +9864,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: StreamFailed scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -9529,20 +9880,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -9608,14 +9963,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: DidStreamFail scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -9623,20 +9979,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -9748,14 +10108,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: EndOfStream scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -9763,20 +10124,24 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -9837,14 +10202,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: StreamMatchesString scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -9852,15 +10218,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -9940,10 +10313,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -10059,14 +10442,26 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: ) scopes: - punctuation.section.parens.end.bracket.round @@ -10104,13 +10499,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: EverythingUpTo scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -10133,15 +10527,22 @@ - source: istream scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_stream + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -10251,13 +10652,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: EverythingUpTo scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -10397,14 +10797,12 @@ scopesEnd: - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: System scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -10482,14 +10880,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: EndProgram scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -10623,10 +11022,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: ; @@ -10636,14 +11041,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Poke scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -10763,10 +11169,20 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: base + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -10781,17 +11197,176 @@ - storage.type.built-in.primitive - source: long scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + - storage.type.primitive + - storage.type.built-in.primitive +- source: '&' + scopes: + - keyword.operator +- source: repetitions + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + scopes: + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + - variable.parameter +- source: ) + scopes: + - punctuation.section.parameters.end.bracket.round.special.operator-overload +- source: '{' + scopes: + - >- + punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload + scopesEnd: + - meta.head.function.definition.special.operator-overload +- source: ' string result' + scopesBegin: + - meta.body.function.definition.special.operator-overload +- source: ; + scopes: + - punctuation.terminator.statement +- source: for + scopes: + - keyword.control.for +- source: ( + scopesBegin: + - meta.parens + scopes: + - punctuation.section.parens.begin.bracket.round +- source: int + scopes: + - storage.type.primitive + - storage.type.built-in.primitive +- source: ' i ' +- source: = + scopes: + - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens +- source: '0' + scopes: + - constant.numeric.decimal +- source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens + scopes: + - punctuation.terminator.statement +- source: ' i ' +- source: < + scopes: + - keyword.operator.comparison +- source: ' repetitions' +- source: ; + scopes: + - punctuation.terminator.statement +- source: ' i' +- source: ++ + scopes: + - keyword.operator.increment +- source: ) + scopes: + - punctuation.section.parens.end.bracket.round + scopesEnd: + - meta.parens +- source: ' result ' +- source: += + scopes: + - keyword.operator.assignment.compound +- source: ' base' +- source: ; + scopes: + - punctuation.terminator.statement +- source: return + scopes: + - keyword.control.return +- source: ' result' +- source: ; + scopes: + - punctuation.terminator.statement +- source: '}' + scopes: + - >- + punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload + scopesEnd: + - meta.body.function.definition.special.operator-overload +- source: string + scopes: + - meta.qualified_type + - entity.name.type +- source: operator + scopesBegin: + - meta.head.function.definition.special.operator-overload + scopes: + - keyword.other.operator.overload +- source: '*' + scopes: + - entity.name.operator +- source: ( + scopes: + - >- + punctuation.section.parameters.begin.bracket.round.special.operator-overload +- source: const + scopesBegin: + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + scopes: + - storage.modifier.specifier.const +- source: long + scopesBegin: + - storage.type.primitive + - storage.type.built-in.primitive +- source: long + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - storage.type.primitive - storage.type.built-in.primitive - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: repetitions + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter +- source: ',' + scopes: + - punctuation.separator.delimiter.comma +- source: const + scopes: + - storage.modifier.specifier.const +- source: string + scopes: + - entity.name.type.parameter scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter +- source: '&' + scopes: + - keyword.operator +- source: base + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -10823,139 +11398,18 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ; - scopes: - - punctuation.terminator.statement -- source: ' i ' -- source: < - scopes: - - keyword.operator.comparison -- source: ' repetitions' -- source: ; - scopes: - - punctuation.terminator.statement -- source: ' i' -- source: ++ - scopes: - - keyword.operator.increment -- source: ) - scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - - meta.parens -- source: ' result ' -- source: += - scopes: - - keyword.operator.assignment.compound -- source: ' base' -- source: ; - scopes: - - punctuation.terminator.statement -- source: return - scopes: - - keyword.control.return -- source: ' result' -- source: ; - scopes: - - punctuation.terminator.statement -- source: '}' - scopes: - - >- - punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload - scopesEnd: - - meta.body.function.definition.special.operator-overload -- source: string - scopes: - - meta.qualified_type - - entity.name.type -- source: operator - scopesBegin: - - meta.head.function.definition.special.operator-overload - scopes: - - keyword.other.operator.overload -- source: '*' - scopes: - - entity.name.operator -- source: ( - scopes: - - >- - punctuation.section.parameters.begin.bracket.round.special.operator-overload -- source: const - scopesBegin: - - meta.function.definition.parameters.special.operator-overload - - meta.parameter - scopes: - - storage.modifier.specifier.const -- source: long - scopesBegin: - - storage.type.primitive - - storage.type.built-in.primitive -- source: long - scopesEnd: - - storage.type.primitive - - storage.type.built-in.primitive -- source: '&' - scopes: - - storage.modifier.reference -- source: repetitions - scopes: - - variable.parameter -- source: ',' - scopes: - - punctuation.separator.delimiter.comma -- source: const - scopes: - - storage.modifier.specifier.const -- source: string - scopes: - - entity.name.type.parameter -- source: '&' - scopes: - - storage.modifier.reference -- source: base - scopes: - - variable.parameter - scopesEnd: - - meta.function.definition.parameters.special.operator-overload - - meta.parameter -- source: ) - scopes: - - punctuation.section.parameters.end.bracket.round.special.operator-overload -- source: '{' - scopes: - - >- - punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload - scopesEnd: - - meta.head.function.definition.special.operator-overload -- source: ' string result' - scopesBegin: - - meta.body.function.definition.special.operator-overload -- source: ; - scopes: - - punctuation.terminator.statement -- source: for - scopes: - - keyword.control.for -- source: ( - scopesBegin: - - meta.parens - scopes: - - punctuation.section.parens.begin.bracket.round -- source: int - scopes: - - storage.type.primitive - - storage.type.built-in.primitive -- source: ' i ' -- source: = - scopes: - - keyword.operator.assignment -- source: '0' - scopes: - - constant.numeric.decimal -- source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens scopes: - punctuation.terminator.statement - source: ' i ' @@ -10998,13 +11452,9 @@ - meta.function.definition.special.operator-overload - meta.body.function.definition.special.operator-overload - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Substring scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -11065,14 +11515,20 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ' start ' - source: = scopes: @@ -11168,14 +11624,20 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ' finish ' - source: = scopes: @@ -11349,13 +11811,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Substring scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -11436,13 +11897,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Join scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -11456,19 +11916,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -11514,10 +11979,18 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - punctuation.terminator.statement - source: ' i ' @@ -11542,10 +12015,18 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - punctuation.terminator.statement - source: ' i' @@ -11612,14 +12093,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: ; scopes: - punctuation.terminator.statement @@ -11634,13 +12121,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Join scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -11654,19 +12140,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -11712,10 +12203,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' delimiter' @@ -11732,13 +12229,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Replace scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -11793,10 +12289,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: ' string current' @@ -11999,13 +12501,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Replace scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -12072,10 +12573,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' oldstring' @@ -12096,13 +12603,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Replace scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -12173,10 +12679,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' newstring' @@ -12193,13 +12705,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Replace scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -12267,10 +12778,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' oldstring' @@ -12286,10 +12803,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' newstring' @@ -12306,13 +12829,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Replace scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -12387,13 +12909,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Replace scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -12451,10 +12972,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' oldstring' @@ -12484,13 +13011,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Strip scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -12567,14 +13093,20 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -12612,10 +13144,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: while @@ -12755,10 +13293,16 @@ - source: ',' scopes: - punctuation.separator.delimiter.comma + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: + + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - keyword.operator - source: 'num_end ' @@ -12776,13 +13320,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: GetWhileIncluded scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -12971,13 +13514,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: RemoveWhileIncluded scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -13040,10 +13582,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: for @@ -13187,10 +13735,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -13207,29 +13761,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: vector - scopesBegin: - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Split scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -13340,10 +13884,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: int @@ -13354,10 +13904,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: bool @@ -13629,19 +14185,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE2 + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -13650,14 +14218,12 @@ scopesEnd: - meta.template.definition - source: int - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: StartIndexOfFirst__In__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -13786,10 +14352,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: while @@ -13923,10 +14495,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '}' @@ -13943,19 +14521,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE2 + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -13964,14 +14554,12 @@ scopesEnd: - meta.template.definition - source: int - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: StartIndexOfLast__In__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -14231,10 +14819,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '}' @@ -14251,10 +14845,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -14263,28 +14863,19 @@ scopesEnd: - meta.template.definition - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: int scopes: - storage.type.primitive - storage.type.built-in.primitive - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Indices scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -14386,10 +14977,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: while @@ -14550,10 +15147,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -14562,14 +15165,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Includes scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -14676,14 +15277,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ; scopes: - punctuation.terminator.statement @@ -14701,10 +15308,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -14713,14 +15326,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Startswith scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -14865,10 +15476,18 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - punctuation.separator.delimiter.comma - source: target @@ -14924,10 +15543,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -14936,14 +15561,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Endswith scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -15159,10 +15782,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -15171,13 +15800,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: the__thDigitOf__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -15275,14 +15900,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: IsALegitFileName scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -15381,13 +16007,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Literal scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -15448,10 +16073,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: int @@ -15462,10 +16093,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: while @@ -15646,10 +16283,22 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: '}' @@ -15818,10 +16467,22 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: '}' @@ -16195,13 +16856,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Literal scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -16285,14 +16945,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: IsAllUpperCase scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -16367,10 +17028,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -16407,10 +17078,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: if @@ -16488,14 +17169,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: IsAllUpperCase scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -16554,14 +17236,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__CharIn__String scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -16682,29 +17365,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: vector - scopesBegin: - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: ExtractArguments scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -16712,15 +17385,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: string - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: content + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -16792,42 +17472,38 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: pair - scopesBegin: - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: char scopes: - storage.type.primitive - storage.type.built-in.primitive - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument + - punctuation.separator.delimiter.comma - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: encapsulating_pairs scopes: - variable.parameter @@ -16903,10 +17579,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: ' vector' @@ -17025,14 +17707,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ; scopes: - punctuation.terminator.statement @@ -17330,14 +18020,26 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ',' scopes: - punctuation.separator.delimiter.comma @@ -17449,14 +18151,28 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block + - meta.parens + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block + - meta.parens scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ) scopes: - punctuation.section.parens.end.bracket.round @@ -17775,14 +18491,26 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.parens + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.parens scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ) scopes: - punctuation.section.parens.end.bracket.round @@ -17954,10 +18682,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -17992,25 +18726,23 @@ - punctuation.section.angle-brackets.start.template.definition - source: class scopesBegin: - - meta.template.definition + - meta.block.class + - meta.head.class scopes: - - storage.type.template.argument.class + - storage.type.class - source: ANYTYPE scopes: - - entity.name.type.template + - entity.name.type.class scopesEnd: - - meta.template.definition + - meta.block.class + - meta.head.class - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: ToBinary scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -18052,22 +18784,22 @@ - source: bitset scopes: - entity.name.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: '8' scopes: - constant.numeric.decimal - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: input @@ -18093,14 +18825,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: int scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: BinaryToInt scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -18142,22 +18875,22 @@ - source: bitset scopes: - entity.name.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: '8' scopes: - constant.numeric.decimal - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: input @@ -18183,14 +18916,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: int scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Round scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -18227,30 +18961,39 @@ - source: + scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition + - meta.body.function.definition - constant.numeric.decimal.point - source: '5' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '}' scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: int scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Round scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -18287,16 +19030,24 @@ - source: + scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition + - meta.body.function.definition - constant.numeric.decimal.point - source: '5' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '}' @@ -18314,28 +19065,19 @@ scopesEnd: - comment.line.double-slash - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: int scopes: - storage.type.primitive - storage.type.built-in.primitive - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Range scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -18412,14 +19154,20 @@ - source: '>' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -18588,29 +19336,22 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: vector - scopesBegin: - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: int scopes: - storage.type.primitive - storage.type.built-in.primitive - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Range scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -18663,10 +19404,16 @@ - source: ',' scopes: - punctuation.separator.delimiter.comma + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' upper' @@ -18680,29 +19427,22 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: vector - scopesBegin: - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: int scopes: - storage.type.primitive - storage.type.built-in.primitive - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Range scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -18741,16 +19481,24 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' scopes: + - meta.function.definition + - meta.body.function.definition - punctuation.separator.delimiter.comma - source: '1' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' upper' @@ -18990,16 +19738,12 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -19007,15 +19751,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -19028,15 +19779,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -19210,16 +19968,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -19227,15 +19984,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -19245,15 +20009,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -19569,16 +20340,12 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -19586,15 +20353,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -19607,15 +20381,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_char + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -19719,16 +20500,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -19736,15 +20516,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -19754,15 +20541,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_char + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -19990,14 +20784,20 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '2' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -20019,14 +20819,24 @@ - source: '[' scopes: - punctuation.definition.begin.bracket.square + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: == scopes: - keyword.operator.comparison @@ -20060,14 +20870,22 @@ - source: '[' scopes: - punctuation.definition.begin.bracket.square + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.bracket.square.access - source: '0' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: ; scopes: - punctuation.terminator.statement @@ -20144,16 +20962,12 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -20161,15 +20975,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -20182,15 +21003,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -20294,16 +21122,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -20311,15 +21138,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -20329,15 +21163,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -20635,16 +21476,12 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -20652,15 +21489,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -20673,15 +21517,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -20755,10 +21606,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '20' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: '<<' @@ -20834,16 +21691,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -20851,15 +21707,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -20869,15 +21732,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -21175,16 +22045,12 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -21192,15 +22058,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -21215,17 +22088,23 @@ - storage.type.built-in.primitive - source: double scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - storage.type.primitive - storage.type.built-in.primitive - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -21299,10 +22178,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '20' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: '<<' @@ -21378,16 +22263,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -21395,15 +22279,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -21415,17 +22306,23 @@ - storage.type.built-in.primitive - source: double scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - storage.type.primitive - storage.type.built-in.primitive - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -21723,16 +22620,12 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -21740,15 +22633,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -21760,15 +22660,22 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -21872,16 +22779,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -21889,15 +22795,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -21906,15 +22819,22 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -22122,14 +23042,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: '!=' scopes: - keyword.operator.comparison @@ -22191,10 +23119,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: content @@ -22215,10 +23149,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -22254,16 +23194,12 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -22271,15 +23207,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -22428,10 +23371,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -22440,16 +23389,12 @@ scopesEnd: - meta.template.definition - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -22457,15 +23402,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -22477,15 +23429,22 @@ - source: ANYTYPE scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -22599,10 +23558,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -22611,16 +23576,12 @@ scopesEnd: - meta.template.definition - source: istream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -22628,15 +23589,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -22645,15 +23613,22 @@ - source: ANYTYPE scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -22861,14 +23836,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: '!=' scopes: - keyword.operator.comparison @@ -22934,10 +23917,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: content @@ -22958,10 +23947,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -23059,10 +24054,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -23071,13 +24072,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: AsString scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -23093,15 +24090,22 @@ - source: ANYTYPE scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -23219,10 +24223,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: content @@ -23243,10 +24253,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -23273,10 +24289,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -23285,13 +24307,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: TypeAsString scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -23307,15 +24325,22 @@ - source: ANYTYPE scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -23412,10 +24437,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: name @@ -23436,10 +24467,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -23478,10 +24515,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -23498,13 +24541,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormat scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -23581,13 +24620,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormat scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -23702,13 +24737,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormat scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -23769,13 +24800,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormat scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -23836,13 +24863,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormat scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -23903,13 +24926,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormat scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -23960,13 +24979,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormatDollars scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -24014,10 +25029,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '2' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: ; @@ -24162,10 +25183,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -24174,13 +25201,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Show scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -24257,13 +25280,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Ask scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -24345,14 +25364,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: int scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: AskForAnInt scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -24581,14 +25601,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: double scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: AskForANumber scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -24829,14 +25850,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: int scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: AskForAnIntFrom__To__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -25104,14 +26126,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: double scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: AskForADoubleFrom__To__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -25379,14 +26402,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: AskYesOrNo scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -25763,13 +26787,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: AskForAFileName scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -25914,13 +26937,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: fstream - scopes: - - meta.qualified_type - - entity.name.type - source: AskUserForExistingFile scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -26104,10 +27126,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -26116,14 +27144,12 @@ scopesEnd: - meta.template.definition - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Save__In__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -26224,10 +27250,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -26236,14 +27268,12 @@ scopesEnd: - meta.template.definition - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Load__From__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -26251,15 +27281,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ANYTYPE - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: data_to_load + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -26337,14 +27374,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: SaveFile scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -26426,13 +27464,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: ReadFile scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -26490,23 +27527,25 @@ - source: istreambuf_iterator scopes: - entity.name.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: char scopes: - storage.type.primitive - storage.type.built-in.primitive - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: the_file @@ -26524,23 +27563,23 @@ - source: istreambuf_iterator scopes: - entity.name.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: char scopes: - storage.type.primitive - storage.type.built-in.primitive - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: ) @@ -26581,13 +27620,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: OpenFileAsString scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -26745,17 +27783,15 @@ scopesEnd: - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: thread_stub scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -26763,21 +27799,25 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: void - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: context + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -26913,23 +27953,28 @@ - punctuation.section.angle-brackets.start.template.definition - source: class scopesBegin: - - meta.template.definition + - meta.block.class + - meta.head.class scopes: - - storage.type.template.argument.class + - storage.type.class - source: ANY_OUTPUT_TYPE scopes: - - entity.name.type.template + - entity.name.type.class - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument + - punctuation.separator.delimiter.comma.inheritance - source: class + scopesBegin: + - meta.qualified_type scopes: - - storage.type.template.argument.class + - storage.type.class - source: ANY_INPUT_TYPE scopes: - - entity.name.type.template + - entity.name.type scopesEnd: - - meta.template.definition + - meta.block.class + - meta.head.class + - meta.qualified_type - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition @@ -27227,15 +28272,26 @@ - source: TaskClass scopes: - entity.name.type.parameter + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: obj + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.constructor - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.constructor @@ -27304,24 +28360,37 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter - source: ANY_OUTPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ( + scopes: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter + - meta.template.call - source: ANY_INPUT_TYPE - scopesBegin: - - meta.qualified_type - - entity.name.type -- source: argument - scopesEnd: - - meta.qualified_type - - entity.name.type +- source: ' argument' - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter + - meta.template.call - source: '>' scopes: - punctuation.section.angle-brackets.end.template.call @@ -27394,86 +28463,98 @@ - source: ( scopes: - punctuation.section.parameters.begin.bracket.round.special.constructor -- source: ANY_OUTPUT_TYPE - scopesBegin: - - meta.function.definition.parameters.special.constructor - - meta.parameter - scopes: - - meta.qualified_type - - entity.name.type -- source: ( - scopes: - - punctuation.section.parens.begin.bracket.round.function.pointer -- source: '*' - scopes: - - punctuation.definition.function.pointer.dereference -- source: input_function - scopes: - - variable.parameter.pointer.function -- source: ) - scopes: - - punctuation.section.parens.end.bracket.round.function.pointer -- source: ( - scopes: - - punctuation.section.parameters.begin.bracket.round.function.pointer -- source: ANY_INPUT_TYPE - scopesBegin: - - meta.parameter - scopes: - - entity.name.type.parameter -- source: argument - scopes: - - variable.parameter - scopesEnd: - - meta.parameter -- source: ) - scopes: - - punctuation.section.parameters.end.bracket.round.function.pointer - scopesEnd: - - meta.function.definition.parameters.special.constructor - - meta.parameter -- source: ) - scopes: - - punctuation.section.parameters.end.bracket.round.special.constructor -- source: '{' - scopes: - - >- - punctuation.section.block.begin.bracket.curly.function.definition.special.constructor - scopesEnd: - - meta.head.function.definition.special.constructor -- source: ' thread_function ' - scopesBegin: - - meta.body.function.definition.special.constructor -- source: = - scopes: - - keyword.operator.assignment -- source: ' input_function' -- source: ; - scopes: - - punctuation.terminator.statement -- source: '}' - scopes: - - >- - punctuation.section.block.end.bracket.curly.function.definition.special.constructor scopesEnd: - - meta.body.function.definition.special.constructor -- source: TaskClass - scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor - meta.head.function.definition.special.constructor - scopes: - - entity.name.function.constructor - - entity.name.function.definition.special.constructor -- source: ( - scopes: - - punctuation.section.parameters.begin.bracket.round.special.constructor - source: ANY_OUTPUT_TYPE +- source: ( scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter + scopes: + - punctuation.section.parens.begin.bracket.round.function.pointer +- source: '*' + scopes: + - punctuation.definition.function.pointer.dereference +- source: input_function + scopes: + - variable.parameter.pointer.function +- source: ) + scopes: + - punctuation.section.parens.end.bracket.round.function.pointer +- source: ( + scopes: + - punctuation.section.parameters.begin.bracket.round.function.pointer +- source: ANY_INPUT_TYPE + scopesBegin: + - meta.parameter + scopes: + - entity.name.type.parameter +- source: argument + scopes: + - variable.parameter + scopesEnd: + - meta.parameter +- source: ) + scopes: + - punctuation.section.parameters.end.bracket.round.function.pointer + scopesEnd: + - meta.function.definition.parameters.special.constructor + - meta.parameter +- source: ) + scopes: + - punctuation.section.parameters.end.bracket.round.special.constructor +- source: '{' + scopes: + - >- + punctuation.section.block.begin.bracket.curly.function.definition.special.constructor + scopesEnd: + - meta.head.function.definition.special.constructor +- source: ' thread_function ' + scopesBegin: + - meta.body.function.definition.special.constructor +- source: = + scopes: + - keyword.operator.assignment +- source: ' input_function' +- source: ; + scopes: + - punctuation.terminator.statement +- source: '}' + scopes: + - >- + punctuation.section.block.end.bracket.curly.function.definition.special.constructor + scopesEnd: + - meta.body.function.definition.special.constructor +- source: TaskClass + scopesBegin: + - meta.head.function.definition.special.constructor + scopes: + - entity.name.function.constructor + - entity.name.function.definition.special.constructor +- source: ( + scopes: + - punctuation.section.parameters.begin.bracket.round.special.constructor + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor +- source: ANY_OUTPUT_TYPE +- source: ( + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor - meta.function.definition.parameters.special.constructor - meta.parameter - scopes: - - meta.qualified_type - - entity.name.type -- source: ( scopes: - punctuation.section.parens.begin.bracket.round.function.pointer - source: '*' @@ -27563,16 +28644,18 @@ - punctuation.definition.comment - source: ' Methods' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Start scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -27589,10 +28672,24 @@ scopes: - support.type.posix-reserved.pthread - support.type.built-in.posix-reserved.pthread + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: attributes + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: = @@ -27766,12 +28863,14 @@ - source: function scopes: - entity.name.function.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: void scopes: - storage.type.primitive @@ -27779,24 +28878,44 @@ - source: '*' scopes: - keyword.operator -- source: () -- source: '>' +- source: ( + scopesBegin: + - meta.parens scopes: - - punctuation.section.angle-brackets.end.template.call + - punctuation.section.parens.begin.bracket.round +- source: ) + scopes: + - punctuation.section.parens.end.bracket.round scopesEnd: - - meta.template.call - - meta.template.call + - meta.parens +- source: '>' + scopes: + - keyword.operator.comparison - source: ( + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: '[' scopes: - punctuation.definition.capture.begin.lambda + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '&' scopes: - - meta.lambda.capture - keyword.operator - source: ']' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.definition.capture.end.lambda - source: ( @@ -27986,13 +29105,16 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: ANY_OUTPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type - source: WaitForCompletion scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -28100,23 +29222,28 @@ - punctuation.section.angle-brackets.start.template.definition - source: class scopesBegin: - - meta.template.definition + - meta.block.class + - meta.head.class scopes: - - storage.type.template.argument.class + - storage.type.class - source: ANY_OUTPUT_TYPE scopes: - - entity.name.type.template + - entity.name.type.class - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument + - punctuation.separator.delimiter.comma.inheritance - source: class + scopesBegin: + - meta.qualified_type scopes: - - storage.type.template.argument.class + - storage.type.class - source: ANY_INPUT_TYPE scopes: - - entity.name.type.template + - entity.name.type scopesEnd: - - meta.template.definition + - meta.block.class + - meta.head.class + - meta.qualified_type - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition @@ -28307,35 +29434,51 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter - source: ANY_OUTPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANY_INPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANY_INPUT_TYPE' - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: a_task_ptr + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.constructor - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.constructor @@ -28456,10 +29599,22 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.body.function.definition.special.constructor + - meta.block - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.body.function.definition.special.constructor + - meta.block scopes: - punctuation.terminator.statement - source: '}' @@ -28535,15 +29690,26 @@ - source: Task scopes: - entity.name.type.parameter + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor + - meta.function.definition.parameters.special.constructor + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: obj + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.head.function.definition.special.constructor scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.constructor - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.constructor @@ -28597,13 +29763,24 @@ - source: . scopes: - punctuation.separator.dot-access + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.body.function.definition.special.constructor - source: ptr_to_original +- source: '-' scopes: - - variable.other.object.property -- source: '->' + - keyword.operator +- source: '>' scopes: - - punctuation.separator.pointer-access + - keyword.operator.comparison - source: thread + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.body.function.definition.special.constructor scopes: - variable.other.property - source: ; @@ -28694,10 +29871,22 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.body.function.definition.special.constructor + - meta.block - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.constructor + - meta.body.function.definition.special.constructor + - meta.block scopes: - punctuation.terminator.statement - source: '}' @@ -28822,14 +30011,24 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.member.destructor + - meta.body.function.definition.special.member.destructor + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.member.destructor + - meta.body.function.definition.special.member.destructor scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -28862,16 +30061,18 @@ - punctuation.definition.comment - source: ' methods' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: SetOriginal scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -28885,35 +30086,51 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANY_OUTPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANY_INPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANY_INPUT_TYPE' - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: a_pointer + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -28985,14 +30202,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Start scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -29009,10 +30231,24 @@ scopes: - support.type.posix-reserved.pthread - support.type.built-in.posix-reserved.pthread + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: attributes + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: = @@ -29148,13 +30384,16 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: ANY_OUTPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type - source: WaitForCompletion scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -29196,14 +30435,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: bool scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: StillRunning scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -29254,16 +30498,21 @@ scopesEnd: - comment.line.double-slash - source: Task - scopesBegin: - - meta.function.definition.special.operator-overload scopes: + - meta.function.definition.special.operator-overload - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -29283,15 +30532,26 @@ - source: Task scopes: - entity.name.type.parameter + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: obj + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -29329,13 +30589,24 @@ - source: . scopes: - punctuation.separator.dot-access + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload - source: ptr_to_original +- source: '-' scopes: - - variable.other.object.property -- source: '->' + - keyword.operator +- source: '>' scopes: - - punctuation.separator.pointer-access + - keyword.operator.comparison - source: thread + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload scopes: - variable.other.property - source: ; @@ -29426,10 +30697,22 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - punctuation.terminator.statement - source: '}' @@ -29499,19 +30782,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANY_OUTPUT_TYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANY_INPUT_TYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -29552,28 +30847,16 @@ scopes: - entity.name.scope-resolution - source: < - scopesBegin: - - meta.template.call - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ANY_OUTPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument -- source: ANY_INPUT_TYPE - scopes: - - meta.qualified_type - - entity.name.type + - punctuation.separator.delimiter.comma +- source: ' ANY_INPUT_TYPE' - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call + - keyword.operator.comparison - source: '::' scopes: - punctuation.separator.namespace.access @@ -29620,12 +30903,87 @@ - source: Task scopes: - entity.name.function.call + scopesEnd: + - meta.preprocessor.macro - source: < + scopes: + - keyword.operator.comparison +- source: decltype + scopes: + - keyword.operator.functionlike + - keyword.other.decltype + - storage.type.decltype +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.decltype +- source: FUNC scopesBegin: - - meta.template.call - - meta.template.call + - meta.arguments.decltype scopes: - - punctuation.section.angle-brackets.begin.template.call + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: decltype + scopes: + - keyword.operator.functionlike + - keyword.other.decltype + - storage.type.decltype +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.decltype +- source: ARG + scopes: + - meta.arguments.decltype +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.decltype +- source: '{}' +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.call + scopesEnd: + - meta.arguments.decltype +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.decltype +- source: ',' + scopes: + - punctuation.separator.delimiter.comma +- source: decltype + scopes: + - keyword.operator.functionlike + - keyword.other.decltype + - storage.type.decltype +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.decltype +- source: ARG + scopes: + - meta.arguments.decltype +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.decltype +- source: '>' + scopes: + - keyword.operator.comparison +- source: ( + scopesBegin: + - meta.preprocessor.macro + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: new + scopes: + - keyword.operator.wordlike + - keyword.operator.new +- source: TaskClass + scopes: + - entity.name.function.call + scopesEnd: + - meta.preprocessor.macro +- source: < + scopes: + - keyword.operator.comparison - source: decltype scopes: - keyword.operator.functionlike @@ -29667,7 +31025,7 @@ - punctuation.section.arguments.end.bracket.round.decltype - source: ',' scopes: - - punctuation.separator.delimiter.comma.template.argument + - punctuation.separator.delimiter.comma - source: decltype scopes: - keyword.operator.functionlike @@ -29684,89 +31042,10 @@ - punctuation.section.arguments.end.bracket.round.decltype - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.call -- source: new - scopes: - - keyword.operator.wordlike - - keyword.operator.new -- source: TaskClass - scopes: - - entity.name.function.call -- source: < - scopesBegin: - - meta.template.call - - meta.template.call - scopes: - - punctuation.section.angle-brackets.begin.template.call -- source: decltype - scopes: - - keyword.operator.functionlike - - keyword.other.decltype - - storage.type.decltype + - keyword.operator.comparison - source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.decltype -- source: FUNC scopesBegin: - - meta.arguments.decltype - scopes: - - entity.name.function.call -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.call -- source: decltype - scopes: - - keyword.operator.functionlike - - keyword.other.decltype - - storage.type.decltype -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.decltype -- source: ARG - scopes: - - meta.arguments.decltype -- source: ) - scopes: - - punctuation.section.arguments.end.bracket.round.decltype -- source: '{}' -- source: ) - scopes: - - punctuation.section.arguments.end.bracket.round.function.call - scopesEnd: - - meta.arguments.decltype -- source: ) - scopes: - - punctuation.section.arguments.end.bracket.round.decltype -- source: ',' - scopes: - - punctuation.separator.delimiter.comma.template.argument -- source: decltype - scopes: - - keyword.operator.functionlike - - keyword.other.decltype - - storage.type.decltype -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.decltype -- source: ARG - scopes: - - meta.arguments.decltype -- source: ) - scopes: - - punctuation.section.arguments.end.bracket.round.decltype -- source: '>' - scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.template.call - - meta.template.call -- source: ( + - meta.preprocessor.macro scopes: - punctuation.section.arguments.begin.bracket.round.function.call - source: FUNC @@ -29794,17 +31073,15 @@ scopesEnd: - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: WaitFor scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -29965,16 +31242,18 @@ - punctuation.definition.comment - source: ' methods' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Lock scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -29982,21 +31261,29 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: void - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: varaible_address + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -30151,14 +31438,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Unlock scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -30166,21 +31458,29 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: void - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition - source: '*' scopes: - - storage.modifier.pointer + - keyword.operator - source: varaible_address + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -30505,10 +31805,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -30517,16 +31823,12 @@ scopesEnd: - meta.template.definition - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -30534,15 +31836,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -30555,28 +31864,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -30754,14 +32069,20 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ' all_members ' - source: '<<' scopes: @@ -30941,10 +32262,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -30953,16 +32280,12 @@ scopesEnd: - meta.template.definition - source: istream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -30970,15 +32293,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -30988,28 +32318,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -31563,14 +32899,20 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: return scopes: - keyword.control.return @@ -31624,10 +32966,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -31636,13 +32984,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormat scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -31656,19 +33000,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: input scopes: - variable.parameter @@ -31802,10 +33151,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -31814,14 +33169,12 @@ scopesEnd: - meta.template.definition - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Remove__ThElementFrom__Vector scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -31845,28 +33198,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -31928,10 +33287,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -31940,14 +33305,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__In__Vector scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -31970,28 +33333,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -32085,10 +33454,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -32097,14 +33472,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__In__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -32127,28 +33500,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -32205,10 +33584,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -32245,10 +33634,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: if @@ -32336,10 +33735,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -32348,14 +33753,12 @@ scopesEnd: - meta.template.definition - source: int - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: IndexOf__In__Vector scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -32378,28 +33781,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -32456,10 +33865,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -32496,10 +33915,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: if @@ -32578,10 +34007,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '}' @@ -32598,10 +34033,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -32610,14 +34051,12 @@ scopesEnd: - meta.template.definition - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: RemoveFirst__From__Vector scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -32640,28 +34079,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -32748,10 +34193,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -32760,14 +34211,12 @@ scopesEnd: - meta.template.definition - source: int - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: NumberOf__In__Vector scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -32790,28 +34239,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -32877,10 +34332,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -32917,10 +34382,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: if @@ -33004,10 +34479,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -33016,28 +34497,16 @@ scopesEnd: - meta.template.definition - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: RemoveDuplicates scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -33051,28 +34520,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_vector + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -33142,10 +34617,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -33182,10 +34667,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: if @@ -33318,20 +34813,21 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: char scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: '*' scopesBegin: - - storage.modifier.pointer + - keyword.operator - source: '*' scopesEnd: - - storage.modifier.pointer + - keyword.operator - source: VectorStringToCStringArray scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -33345,28 +34841,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -33396,10 +34898,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: for @@ -33797,10 +35305,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -33809,28 +35321,16 @@ scopesEnd: - meta.template.definition - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Slice scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -33844,19 +35344,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -33917,14 +35422,20 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ' start ' - source: = scopes: @@ -34020,14 +35531,20 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ' finish ' - source: = scopes: @@ -34257,10 +35774,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -34269,28 +35790,16 @@ scopesEnd: - meta.template.definition - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Slice scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -34304,19 +35813,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -34391,10 +35905,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -34403,28 +35921,16 @@ scopesEnd: - meta.template.definition - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Splice scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -34438,19 +35944,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -34481,19 +35992,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: additions scopes: - variable.parameter @@ -34534,14 +36050,20 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ' start ' - source: = scopes: @@ -34703,10 +36225,18 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - punctuation.terminator.statement - source: ' i ' @@ -34774,10 +36304,18 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - punctuation.terminator.statement - source: ' i ' @@ -34951,10 +36489,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -34963,28 +36505,16 @@ scopesEnd: - meta.template.definition - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Splice scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -34998,19 +36528,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -35101,10 +36636,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -35113,28 +36652,16 @@ scopesEnd: - meta.template.definition - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Splice scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -35148,19 +36675,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -35181,19 +36713,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: additions scopes: - variable.parameter @@ -35227,10 +36764,16 @@ - source: ',' scopes: - punctuation.separator.delimiter.comma + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: ' additions' @@ -35254,10 +36797,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -35266,14 +36813,12 @@ scopesEnd: - meta.template.definition - source: int - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Index scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -35287,19 +36832,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -35333,10 +36883,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: while @@ -35432,10 +36988,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '}' @@ -35452,10 +37014,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -35464,14 +37030,12 @@ scopesEnd: - meta.template.definition - source: int - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: LastIndex scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -35485,19 +37049,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -35624,10 +37193,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '}' @@ -35644,10 +37219,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -35656,28 +37235,19 @@ scopesEnd: - meta.template.definition - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: int scopes: - storage.type.primitive - storage.type.built-in.primitive - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Indices scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -35691,19 +37261,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -35752,10 +37327,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: while @@ -35878,10 +37459,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: T + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -35890,14 +37475,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Includes scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -35911,19 +37494,24 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: T - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: base scopes: - variable.parameter @@ -35977,14 +37565,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ; scopes: - punctuation.terminator.statement @@ -36018,19 +37612,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -36039,16 +37645,12 @@ scopesEnd: - meta.template.definition - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -36056,15 +37658,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -36077,35 +37686,43 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -36433,19 +38050,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -36454,16 +38083,12 @@ scopesEnd: - meta.template.definition - source: istream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -36471,15 +38096,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -36489,35 +38121,43 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -36725,14 +38365,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: '!=' scopes: - keyword.operator.comparison @@ -36814,10 +38462,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: content @@ -36838,10 +38492,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -37059,19 +38719,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -37080,16 +38752,12 @@ scopesEnd: - meta.template.definition - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -37097,15 +38765,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -37118,35 +38793,43 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -37363,19 +39046,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -37384,16 +39079,12 @@ scopesEnd: - meta.template.definition - source: istream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -37401,15 +39092,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -37419,35 +39117,43 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -37655,14 +39361,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: '!=' scopes: - keyword.operator.comparison @@ -37744,10 +39458,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: content @@ -37768,10 +39488,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -38092,19 +39818,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -38113,14 +39851,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__KeyIn__Map scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -38143,26 +39879,33 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYSECONDTYPE' - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: input_map scopes: - variable.parameter @@ -38265,19 +40008,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -38286,14 +40041,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__ValueIn__Map scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -38316,26 +40069,33 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYTYPE' - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: input_map scopes: - variable.parameter @@ -38465,19 +40225,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -38486,13 +40258,9 @@ scopesEnd: - meta.template.definition - source: ANYSECONDTYPE - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: KeyOfFirst__ValueIn__Map scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -38515,26 +40283,33 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYTYPE' - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: input_map scopes: - variable.parameter @@ -38672,10 +40447,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -38684,14 +40465,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__In__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -38714,26 +40493,33 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYTYPE' - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: input_map scopes: - variable.parameter @@ -38845,19 +40631,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -38866,14 +40664,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__In__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -38896,26 +40692,33 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYSECONDTYPE' - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: input_map scopes: - variable.parameter @@ -38982,19 +40785,31 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: ',' scopes: - punctuation.separator.delimiter.comma.template.argument + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYSECONDTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -39003,14 +40818,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__In__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -39033,26 +40846,33 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ANYSECONDTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: ',' scopes: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter + - meta.template.call - punctuation.separator.delimiter.comma.template.argument -- source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ANYTYPE' - source: '>' + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: input_map scopes: - variable.parameter @@ -39226,25 +41046,23 @@ - punctuation.section.angle-brackets.start.template.definition - source: class scopesBegin: - - meta.template.definition + - meta.block.class + - meta.head.class scopes: - - storage.type.template.argument.class + - storage.type.class - source: ANYTYPE scopes: - - entity.name.type.template + - entity.name.type.class scopesEnd: - - meta.template.definition + - meta.block.class + - meta.head.class - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Type scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -39337,16 +41155,24 @@ - source: ',' scopes: - punctuation.separator.delimiter.comma + scopesEnd: + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' scopes: + - meta.function.definition + - meta.body.function.definition - punctuation.separator.delimiter.comma - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: '&' @@ -39465,10 +41291,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: ITEM + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -39554,16 +41384,18 @@ - punctuation.definition.comment - source: ' NumberOfItems ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: int - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: NumberOfItems scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -39644,26 +41476,35 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition scopesEnd: + - meta.block.class + - meta.body.class - meta.template.definition - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: AddToBottom scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -39679,15 +41520,26 @@ - source: ANYTYPE scopes: - entity.name.type.parameter + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -39759,16 +41611,18 @@ - punctuation.definition.comment - source: ' Remove__ThItem ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Remove__ThItem scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -39787,17 +41641,27 @@ - storage.type.built-in.primitive - source: int scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - storage.type.primitive - storage.type.built-in.primitive - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: item_position + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -39843,14 +41707,24 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -39904,14 +41778,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: ',' scopes: - punctuation.separator.delimiter.comma @@ -39935,16 +41819,18 @@ - punctuation.definition.comment - source: ' Remove__ ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Remove__ scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -39960,15 +41846,26 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: name + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -40025,10 +41922,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -40065,10 +41976,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: if @@ -40185,30 +42110,22 @@ - punctuation.definition.comment - source: ' From__To__ ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: List - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: From__To__ scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -40225,10 +42142,24 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: starting_spot + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -40241,15 +42172,26 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: ending_spot + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -40303,10 +42245,22 @@ - source: + scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block scopes: - punctuation.terminator.statement - source: for @@ -40325,10 +42279,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -40381,11 +42349,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ) scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - punctuation.section.arguments.end.bracket.round.function.member - source: ) scopesEnd: @@ -40427,30 +42408,22 @@ - punctuation.definition.comment - source: ' Data ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Data scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -40494,93 +42467,22 @@ - punctuation.definition.comment - source: ' Vector ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: vector - scopesBegin: - - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: Vector scopesBegin: - - meta.head.function.definition - scopes: - - entity.name.function.definition -- source: ( - scopes: - - punctuation.section.parameters.begin.bracket.round -- source: ) - scopes: - - punctuation.section.parameters.end.bracket.round -- source: const - scopes: - - storage.modifier.specifier.functional.post-parameters.const -- source: '{' - scopes: - - punctuation.section.block.begin.bracket.curly.function.definition - scopesEnd: - - meta.head.function.definition -- source: return - scopesBegin: - - meta.body.function.definition - scopes: - - keyword.control.return -- source: ' vector_' -- source: ; - scopes: - - punctuation.terminator.statement -- source: '}' - scopes: - - punctuation.section.block.end.bracket.curly.function.definition - scopesEnd: - - meta.function.definition - - meta.body.function.definition -- source: // - scopesBegin: - - comment.line.double-slash - scopes: - - punctuation.definition.comment -- source: ' Names ' - scopesEnd: - - comment.line.double-slash -- source: vector - scopesBegin: + - meta.block.class + - meta.body.class - meta.function.definition - - meta.qualified_type - scopes: - - entity.name.type -- source: < - scopesBegin: - - meta.template.call - scopes: - - punctuation.section.angle-brackets.begin.template.call -- source: string - scopes: - - meta.qualified_type - - entity.name.type -- source: '>' - scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call -- source: Names - scopesBegin: - meta.head.function.definition scopes: - entity.name.function.definition @@ -40603,7 +42505,7 @@ - meta.body.function.definition scopes: - keyword.control.return -- source: ' names' +- source: ' vector_' - source: ; scopes: - punctuation.terminator.statement @@ -40618,32 +42520,79 @@ - comment.line.double-slash scopes: - punctuation.definition.comment -- source: ' NamedValues ' +- source: ' Names ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: vector +- source: < + scopes: + - keyword.operator.comparison +- source: string +- source: '>' + scopes: + - keyword.operator.comparison +- source: Names scopesBegin: + - meta.block.class + - meta.body.class - meta.function.definition - - meta.qualified_type + - meta.head.function.definition scopes: - - entity.name.type -- source: < + - entity.name.function.definition +- source: ( + scopes: + - punctuation.section.parameters.begin.bracket.round +- source: ) + scopes: + - punctuation.section.parameters.end.bracket.round +- source: const + scopes: + - storage.modifier.specifier.functional.post-parameters.const +- source: '{' + scopes: + - punctuation.section.block.begin.bracket.curly.function.definition + scopesEnd: + - meta.head.function.definition +- source: return scopesBegin: - - meta.template.call + - meta.body.function.definition scopes: - - punctuation.section.angle-brackets.begin.template.call -- source: ITEM + - keyword.control.return +- source: ' names' +- source: ; scopes: - - meta.qualified_type - - entity.name.type -- source: '>' + - punctuation.terminator.statement +- source: '}' scopes: - - punctuation.section.angle-brackets.end.template.call + - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: - - meta.qualified_type - - meta.template.call + - meta.function.definition + - meta.body.function.definition +- source: // + scopesBegin: + - comment.line.double-slash + scopes: + - punctuation.definition.comment +- source: ' NamedValues ' + scopesEnd: + - meta.block.class + - meta.body.class + - comment.line.double-slash +- source: vector +- source: < + scopes: + - keyword.operator.comparison +- source: ITEM +- source: '>' + scopes: + - keyword.operator.comparison - source: NamedValues scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -40692,26 +42641,35 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition scopesEnd: + - meta.block.class + - meta.body.class - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__AName scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -40881,26 +42839,35 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition scopesEnd: + - meta.block.class + - meta.body.class - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__ANamedValue scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -40980,26 +42947,35 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition scopesEnd: + - meta.block.class + - meta.body.class - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__AVectorValue scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -41079,26 +43055,35 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition scopesEnd: + - meta.block.class + - meta.body.class - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__AValue scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -41248,26 +43233,35 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition scopesEnd: + - meta.block.class + - meta.body.class - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Has scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -41378,16 +43372,18 @@ - punctuation.definition.comment - source: ' SizeOfLargestName' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: int - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: SizeOfLargestName scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -41415,10 +43411,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: for @@ -41543,15 +43549,15 @@ - punctuation.definition.comment - source: ' Sample ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Sample scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -41604,14 +43610,24 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: return scopes: - keyword.control.return @@ -41664,21 +43680,41 @@ - source: '>' scopes: - keyword.operator.comparison + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '3' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '?' scopes: - keyword.operator.ternary + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '3' scopes: - constant.numeric.decimal - source: ':' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - keyword.operator.ternary - source: vector_ @@ -41749,10 +43785,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -41801,10 +43851,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: . @@ -41868,18 +43932,18 @@ - punctuation.definition.comment - source: ' At ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: ITEM - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: At scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -41952,10 +44016,20 @@ - source: '!=' scopes: - keyword.operator.comparison + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: bool @@ -41970,10 +44044,20 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: if @@ -42102,10 +44186,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -42337,10 +44435,28 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -42421,10 +44537,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -42465,18 +44595,18 @@ - punctuation.definition.comment - source: ' Input ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: istream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: Input scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -42484,20 +44614,28 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -42705,14 +44843,26 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: '!=' scopes: - keyword.operator.comparison @@ -42794,10 +44944,20 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: content @@ -42818,10 +44978,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -43020,16 +45190,21 @@ scopesEnd: - comment.line.double-slash - source: Item - scopesBegin: - - meta.function.definition.special.operator-overload scopes: + - meta.function.definition.special.operator-overload - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -43099,11 +45274,18 @@ scopes: - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -43188,14 +45370,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -43331,10 +45523,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -43360,43 +45564,42 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition scopesEnd: + - meta.block.class + - meta.body.class - meta.template.definition -- source: List - scopesBegin: - - meta.function.definition.special.operator-overload - - meta.qualified_type - scopes: - - entity.name.type +- source: ' List' - source: < - scopesBegin: - - meta.template.call scopes: - - punctuation.section.angle-brackets.begin.template.call + - keyword.operator.comparison - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - - meta.qualified_type - - meta.template.call + - keyword.operator.comparison - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -43414,31 +45617,51 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ANYTYPE - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: const scopes: - storage.modifier.specifier.const + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: assignment_data + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -43514,10 +45737,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -43554,10 +45791,24 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: vector_ @@ -43637,25 +45888,31 @@ scopes: - entity.name.type - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call -- source: ITEM - scopes: + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.qualified_type - - entity.name.type +- source: ITEM - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.qualified_type - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -43673,31 +45930,51 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: Item - scopes: - - meta.qualified_type - - entity.name.type - source: '>' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: const scopes: - storage.modifier.specifier.const + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: assignment_data + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -43766,10 +46043,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ITEM + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -43778,16 +46061,12 @@ scopesEnd: - meta.template.definition - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -43795,15 +46074,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -43816,28 +46102,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -44130,10 +46422,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ITEM + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -44142,16 +46440,12 @@ scopesEnd: - meta.template.definition - source: istream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -44159,15 +46453,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -44177,28 +46478,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -44253,10 +46560,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: ITEM + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -44265,13 +46576,9 @@ scopesEnd: - meta.template.definition - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: VisualFormat scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -44288,28 +46595,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -44365,10 +46678,18 @@ - source: '>=' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: and + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - keyword.operator.wordlike - keyword.operator.and @@ -44402,14 +46723,20 @@ - source: '>=' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -44478,10 +46805,22 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -44518,10 +46857,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: ' named_values_stream ' @@ -44534,10 +46885,22 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block - source: '15' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: '<<' @@ -44790,14 +47153,20 @@ - source: '>=' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -44904,14 +47273,20 @@ - source: '>=' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -44980,10 +47355,22 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -45020,10 +47407,22 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block scopes: - punctuation.terminator.statement - source: ' output_stream ' @@ -45036,10 +47435,22 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block - source: '15' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.block + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: '<<' @@ -45252,10 +47663,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: ITEM + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -45263,17 +47678,13 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: ostream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ostream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -45285,15 +47696,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -45306,28 +47724,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -45374,10 +47798,14 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: typename scopes: - - storage.type.template.argument.typename + - storage.modifier.typename - source: ITEM + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -45385,17 +47813,13 @@ - punctuation.section.angle-brackets.end.template.definition scopesEnd: - meta.template.definition -- source: istream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' istream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -45407,15 +47831,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -45425,28 +47856,34 @@ scopes: - entity.name.type.parameter - source: < - scopesBegin: - - meta.template.call scopes: + - meta.template.call - punctuation.section.angle-brackets.begin.template.call + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ITEM - scopes: - - meta.qualified_type - - entity.name.type - source: '>' scopes: - - punctuation.section.angle-brackets.end.template.call - scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - meta.template.call + - punctuation.section.angle-brackets.end.template.call - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -45810,10 +48247,18 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.block - source: '20' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: '<<' @@ -45876,10 +48321,17 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -45983,10 +48435,18 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.block.class + - meta.body.class + - meta.block - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.block scopes: - punctuation.separator.delimiter.comma - source: type @@ -46007,10 +48467,18 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -46065,10 +48533,18 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.block.class + - meta.body.class + - meta.block - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.block scopes: - punctuation.separator.delimiter.comma - source: content @@ -46089,10 +48565,18 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.block - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -46182,15 +48666,15 @@ - punctuation.definition.comment - source: ' methods ' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: Type scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -46221,13 +48705,16 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Data scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -46258,13 +48745,16 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: Remove0s scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -46387,16 +48877,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: Input scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -46404,20 +48897,28 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -46625,14 +49126,26 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.parens + - meta.bracket.square.access - source: '1' scopes: - constant.numeric.decimal - source: ']' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.parens scopes: - - punctuation.definition.end.bracket.square - scopesEnd: - meta.bracket.square.access + - punctuation.definition.end.bracket.square - source: '!=' scopes: - keyword.operator.comparison @@ -46714,10 +49227,20 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.separator.delimiter.comma - source: content @@ -46738,10 +49261,20 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '1' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -46924,16 +49457,21 @@ scopesEnd: - comment.line.double-slash - source: Item - scopesBegin: - - meta.function.definition.special.operator-overload scopes: + - meta.function.definition.special.operator-overload - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -46953,15 +49491,26 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -47039,11 +49588,18 @@ scopes: - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -47138,11 +49694,18 @@ scopes: - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -47227,11 +49790,18 @@ scopes: - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -47326,11 +49896,18 @@ scopes: - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -47390,10 +49967,20 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload - source: '20' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: '<<' @@ -47465,11 +50052,18 @@ scopes: - meta.qualified_type - entity.name.type + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -47529,10 +50123,20 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.call + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload - source: '20' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload scopes: - punctuation.section.arguments.end.bracket.round.function.call - source: '<<' @@ -47609,28 +50213,35 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.body.class + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.body.class + - meta.template.definition scopes: - entity.name.type.template - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition scopesEnd: + - meta.block.class + - meta.body.class - meta.template.definition -- source: Item - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' Item' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -47937,16 +50548,12 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: output scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -47954,15 +50561,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -47974,15 +50588,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -48198,16 +50819,15 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: istream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -48215,15 +50835,22 @@ scopes: - punctuation.section.parameters.begin.bracket.round - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter scopes: - variable.parameter - source: ',' @@ -48232,15 +50859,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -48277,13 +50911,12 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.function.definition - meta.body.function.definition - source: string - scopes: - - meta.qualified_type - - entity.name.type - source: AsData scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -48299,15 +50932,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -48497,16 +51137,16 @@ scopesEnd: - comment.line.double-slash - source: ostream - scopesBegin: - - meta.function.definition.special.operator-overload scopes: + - meta.function.definition.special.operator-overload - meta.qualified_type - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -48518,15 +51158,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: out + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -48538,15 +51185,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -48829,11 +51483,14 @@ scopes: - meta.qualified_type - entity.name.type + scopesEnd: + - meta.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -48845,15 +51502,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: istream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: in_ + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -48862,15 +51526,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_ + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -48948,10 +51619,20 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: base + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -48964,15 +51645,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: repetitions + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -49004,10 +51692,18 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.parens scopes: - punctuation.terminator.statement - source: ' i ' @@ -49105,15 +51801,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -49315,10 +52018,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -49330,15 +52043,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -49547,10 +52267,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -49562,15 +52292,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -49778,10 +52515,20 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -49793,15 +52540,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -49977,10 +52731,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -50208,10 +52972,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -50224,15 +52998,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -50431,10 +53212,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -50447,15 +53238,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -50654,10 +53452,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -50669,15 +53477,22 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -50853,10 +53668,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item1 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -50868,15 +53693,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item2 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -51142,10 +53974,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -51157,15 +53999,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -51365,10 +54214,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -51380,15 +54239,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -51587,10 +54453,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -51603,15 +54479,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -51810,10 +54693,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -51826,15 +54719,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -52033,10 +54933,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item1 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -52048,15 +54958,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item2 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -52412,10 +55329,20 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -52427,15 +55354,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -52651,14 +55585,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -52718,14 +55660,22 @@ - source: '>' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -52768,10 +55718,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -52912,10 +55876,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -52927,15 +55901,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -53042,14 +56023,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -53109,14 +56098,22 @@ - source: '>' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -53159,10 +56156,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -53415,10 +56426,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -53430,15 +56451,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -53545,14 +56573,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -53612,14 +56648,22 @@ - source: '>' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -53662,10 +56706,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -53918,10 +56976,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -53933,15 +57001,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -54013,10 +57088,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -54029,15 +57114,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -54144,14 +57236,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -54211,14 +57311,22 @@ - source: '>' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -54261,10 +57369,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -54516,10 +57638,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -54532,15 +57664,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -54647,14 +57786,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -54714,14 +57861,22 @@ - source: '>' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -54764,10 +57919,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -55019,10 +58188,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -55034,15 +58213,22 @@ - source: string scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -55226,14 +58412,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -55293,14 +58487,22 @@ - source: '>' scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -55343,10 +58545,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.block + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -55486,106 +58702,133 @@ - source: Item scopes: - entity.name.type.parameter -- source: '&' - scopes: - - storage.modifier.reference -- source: input_item - scopes: - - variable.parameter -- source: ',' - scopes: - - punctuation.separator.delimiter.comma -- source: const - scopes: - - storage.modifier.specifier.const -- source: char - scopes: - - storage.type.primitive - - storage.type.built-in.primitive -- source: '&' - scopes: - - storage.modifier.reference -- source: the_input - scopes: - - variable.parameter scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter +- source: '&' + scopes: + - keyword.operator +- source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + scopes: + - variable.parameter +- source: ',' + scopes: + - punctuation.separator.delimiter.comma +- source: const + scopes: + - storage.modifier.specifier.const +- source: char + scopes: + - storage.type.primitive + - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter +- source: '&' + scopes: + - keyword.operator +- source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + scopes: + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + - variable.parameter +- source: ) + scopes: + - punctuation.section.parameters.end.bracket.round.special.operator-overload +- source: '{' + scopes: + - >- + punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload + scopesEnd: + - meta.head.function.definition.special.operator-overload +- source: return + scopesBegin: + - meta.body.function.definition.special.operator-overload + scopes: + - keyword.control.return +- source: Item + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: 'input_item ' +- source: '*' + scopes: + - keyword.operator +- source: AsString + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: the_input +- source: ) + scopesBegin: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ) + scopesEnd: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ; + scopes: + - punctuation.terminator.statement +- source: '}' + scopes: + - >- + punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload + scopesEnd: + - meta.body.function.definition.special.operator-overload +- source: Item + scopes: + - meta.qualified_type + - entity.name.type +- source: operator + scopesBegin: + - meta.head.function.definition.special.operator-overload + scopes: + - keyword.other.operator.overload +- source: '*' + scopes: + - entity.name.operator +- source: ( + scopes: + - >- + punctuation.section.parameters.begin.bracket.round.special.operator-overload +- source: const + scopesBegin: + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + scopes: + - storage.modifier.specifier.const +- source: Item + scopes: + - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - meta.function.definition.parameters.special.operator-overload - meta.parameter -- source: ) - scopes: - - punctuation.section.parameters.end.bracket.round.special.operator-overload -- source: '{' - scopes: - - >- - punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload - scopesEnd: - - meta.head.function.definition.special.operator-overload -- source: return - scopesBegin: - - meta.body.function.definition.special.operator-overload - scopes: - - keyword.control.return -- source: Item - scopes: - - entity.name.function.call -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.call -- source: 'input_item ' -- source: '*' +- source: '&' scopes: - keyword.operator -- source: AsString - scopes: - - entity.name.function.call -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.call -- source: the_input -- source: ) - scopesBegin: - - punctuation.section.arguments.end.bracket.round.function.call -- source: ) - scopesEnd: - - punctuation.section.arguments.end.bracket.round.function.call -- source: ; - scopes: - - punctuation.terminator.statement -- source: '}' - scopes: - - >- - punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload - scopesEnd: - - meta.body.function.definition.special.operator-overload -- source: Item - scopes: - - meta.qualified_type - - entity.name.type -- source: operator +- source: input_item1 scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload - scopes: - - keyword.other.operator.overload -- source: '*' - scopes: - - entity.name.operator -- source: ( - scopes: - - >- - punctuation.section.parameters.begin.bracket.round.special.operator-overload -- source: const - scopesBegin: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - - storage.modifier.specifier.const -- source: Item - scopes: - - entity.name.type.parameter -- source: '&' - scopes: - - storage.modifier.reference -- source: input_item1 scopes: - variable.parameter - source: ',' @@ -55597,15 +58840,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item2 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -56308,10 +59558,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -56324,15 +59584,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -56403,14 +59670,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -56583,10 +59858,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -56599,15 +59884,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -56781,10 +60073,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -56797,15 +60099,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -56980,10 +60289,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -56995,15 +60314,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -57097,14 +60423,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -57284,16 +60618,33 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00000000001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0000000001' + scopes: + - constant.numeric.octal - source: '&&' + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens scopes: - keyword.operator.logical - source: stod @@ -57326,20 +60677,35 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00000000001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0000000001' + scopes: + - constant.numeric.octal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -57519,16 +60885,33 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0001' + scopes: + - constant.numeric.octal - source: '&&' + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens scopes: - keyword.operator.logical - source: stof @@ -57561,20 +60944,35 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0001' + scopes: + - constant.numeric.octal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -57737,10 +61135,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -57752,15 +61160,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -57854,14 +61269,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -58041,16 +61464,33 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00000000001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0000000001' + scopes: + - constant.numeric.octal - source: '&&' + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens scopes: - keyword.operator.logical - source: stod @@ -58083,20 +61523,35 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00000000001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0000000001' + scopes: + - constant.numeric.octal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -58276,16 +61731,33 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0001' + scopes: + - constant.numeric.octal - source: '&&' + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens scopes: - keyword.operator.logical - source: stof @@ -58318,20 +61790,35 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0001' + scopes: + - constant.numeric.octal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -58494,10 +61981,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -58509,15 +62006,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -58611,14 +62115,22 @@ - source: == scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -58798,16 +62310,33 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00000000001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0000000001' + scopes: + - constant.numeric.octal - source: '&&' + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens scopes: - keyword.operator.logical - source: stod @@ -58840,20 +62369,35 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00000000001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0000000001' + scopes: + - constant.numeric.octal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -59033,16 +62577,33 @@ - source: < scopes: - keyword.operator.comparison + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0001' + scopes: + - constant.numeric.octal - source: '&&' + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens scopes: - keyword.operator.logical - source: stof @@ -59075,20 +62636,35 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: . scopes: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block + - meta.parens - constant.numeric.decimal.point -- source: '00001' +- source: '0' scopes: - - constant.numeric.decimal + - keyword.other.unit.octal +- source: '0001' + scopes: + - constant.numeric.octal - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.body.function.definition.special.operator-overload + - meta.block scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -59250,10 +62826,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item1 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -59265,15 +62851,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item2 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -59622,10 +63215,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -59638,15 +63241,22 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -59829,10 +63439,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -59845,15 +63465,246 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + scopes: + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + - variable.parameter +- source: ) + scopes: + - punctuation.section.parameters.end.bracket.round.special.operator-overload +- source: '{' + scopes: + - >- + punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload + scopesEnd: + - meta.head.function.definition.special.operator-overload +- source: if + scopesBegin: + - meta.body.function.definition.special.operator-overload + scopes: + - keyword.control.if +- source: ( + scopesBegin: + - meta.parens + scopes: + - punctuation.section.parens.begin.bracket.round +- source: input_item + scopes: + - variable.other.object.access +- source: . + scopes: + - punctuation.separator.dot-access +- source: Type + scopes: + - entity.name.function.member +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.member +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.member +- source: == + scopes: + - keyword.operator.comparison +- source: '"' + scopesBegin: + - string.quoted.double + scopes: + - punctuation.definition.string.begin +- source: number +- source: '"' + scopes: + - punctuation.definition.string.end + scopesEnd: + - string.quoted.double +- source: ) + scopes: + - punctuation.section.parens.end.bracket.round + scopesEnd: + - meta.parens +- source: '{' + scopesBegin: + - meta.block + scopes: + - punctuation.section.block.begin.bracket.curly +- source: return + scopes: + - keyword.control.return +- source: Item + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: pow + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: stold + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: input_item + scopes: + - variable.other.object.access +- source: . + scopes: + - punctuation.separator.dot-access +- source: Data + scopes: + - entity.name.function.member +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.member +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.member +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ',' + scopes: + - punctuation.separator.delimiter.comma +- source: ' the_input' +- source: ) + scopesBegin: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ) + scopesEnd: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ; + scopes: + - punctuation.terminator.statement +- source: '}' + scopes: + - punctuation.section.block.end.bracket.curly + scopesEnd: + - meta.block +- source: else + scopes: + - keyword.control.else +- source: '{' + scopesBegin: + - meta.block + scopes: + - punctuation.section.block.begin.bracket.curly +- source: Error + scopes: + - entity.name.function.call +- source: ( + scopes: + - punctuation.section.arguments.begin.bracket.round.function.call +- source: '"' + scopesBegin: + - string.quoted.double + scopes: + - punctuation.definition.string.begin +- source: Trying to use an exponent with something from an item thats not a number +- source: '"' + scopes: + - punctuation.definition.string.end + scopesEnd: + - string.quoted.double +- source: ) + scopes: + - punctuation.section.arguments.end.bracket.round.function.call +- source: ; + scopes: + - punctuation.terminator.statement +- source: '}' + scopes: + - punctuation.section.block.end.bracket.curly + scopesEnd: + - meta.block +- source: '}' + scopes: + - >- + punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload + scopesEnd: + - meta.body.function.definition.special.operator-overload +- source: Item + scopes: + - meta.qualified_type + - entity.name.type +- source: operator + scopesBegin: + - meta.head.function.definition.special.operator-overload + scopes: + - keyword.other.operator.overload +- source: ^ + scopes: + - entity.name.operator +- source: ( + scopes: + - >- + punctuation.section.parameters.begin.bracket.round.special.operator-overload +- source: const + scopesBegin: + - meta.function.definition.parameters.special.operator-overload + - meta.parameter + scopes: + - storage.modifier.specifier.const +- source: Item + scopes: + - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter +- source: '&' + scopes: + - keyword.operator +- source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter +- source: ',' + scopes: + - punctuation.separator.delimiter.comma +- source: const + scopes: + - storage.modifier.specifier.const +- source: double + scopes: + - storage.type.primitive + - storage.type.built-in.primitive scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter +- source: '&' + scopes: + - keyword.operator +- source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -60033,221 +63884,24 @@ - meta.parameter scopes: - storage.modifier.specifier.const -- source: Item - scopes: - - entity.name.type.parameter -- source: '&' - scopes: - - storage.modifier.reference -- source: input_item - scopes: - - variable.parameter -- source: ',' - scopes: - - punctuation.separator.delimiter.comma -- source: const - scopes: - - storage.modifier.specifier.const -- source: double +- source: int scopes: - storage.type.primitive - storage.type.built-in.primitive -- source: '&' - scopes: - - storage.modifier.reference -- source: the_input - scopes: - - variable.parameter scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - meta.function.definition.parameters.special.operator-overload - meta.parameter -- source: ) - scopes: - - punctuation.section.parameters.end.bracket.round.special.operator-overload -- source: '{' - scopes: - - >- - punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload - scopesEnd: - - meta.head.function.definition.special.operator-overload -- source: if - scopesBegin: - - meta.body.function.definition.special.operator-overload - scopes: - - keyword.control.if -- source: ( - scopesBegin: - - meta.parens - scopes: - - punctuation.section.parens.begin.bracket.round -- source: input_item - scopes: - - variable.other.object.access -- source: . - scopes: - - punctuation.separator.dot-access -- source: Type - scopes: - - entity.name.function.member -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.member -- source: ) - scopes: - - punctuation.section.arguments.end.bracket.round.function.member -- source: == - scopes: - - keyword.operator.comparison -- source: '"' - scopesBegin: - - string.quoted.double - scopes: - - punctuation.definition.string.begin -- source: number -- source: '"' - scopes: - - punctuation.definition.string.end - scopesEnd: - - string.quoted.double -- source: ) - scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - - meta.parens -- source: '{' - scopesBegin: - - meta.block - scopes: - - punctuation.section.block.begin.bracket.curly -- source: return - scopes: - - keyword.control.return -- source: Item - scopes: - - entity.name.function.call -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.call -- source: pow - scopes: - - entity.name.function.call -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.call -- source: stold - scopes: - - entity.name.function.call -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.call -- source: input_item - scopes: - - variable.other.object.access -- source: . - scopes: - - punctuation.separator.dot-access -- source: Data - scopes: - - entity.name.function.member -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.member -- source: ) - scopes: - - punctuation.section.arguments.end.bracket.round.function.member -- source: ) - scopes: - - punctuation.section.arguments.end.bracket.round.function.call -- source: ',' - scopes: - - punctuation.separator.delimiter.comma -- source: ' the_input' -- source: ) - scopesBegin: - - punctuation.section.arguments.end.bracket.round.function.call -- source: ) - scopesEnd: - - punctuation.section.arguments.end.bracket.round.function.call -- source: ; - scopes: - - punctuation.terminator.statement -- source: '}' - scopes: - - punctuation.section.block.end.bracket.curly - scopesEnd: - - meta.block -- source: else - scopes: - - keyword.control.else -- source: '{' - scopesBegin: - - meta.block - scopes: - - punctuation.section.block.begin.bracket.curly -- source: Error - scopes: - - entity.name.function.call -- source: ( - scopes: - - punctuation.section.arguments.begin.bracket.round.function.call -- source: '"' - scopesBegin: - - string.quoted.double - scopes: - - punctuation.definition.string.begin -- source: Trying to use an exponent with something from an item thats not a number -- source: '"' - scopes: - - punctuation.definition.string.end - scopesEnd: - - string.quoted.double -- source: ) - scopes: - - punctuation.section.arguments.end.bracket.round.function.call -- source: ; - scopes: - - punctuation.terminator.statement -- source: '}' - scopes: - - punctuation.section.block.end.bracket.curly - scopesEnd: - - meta.block -- source: '}' - scopes: - - >- - punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload - scopesEnd: - - meta.body.function.definition.special.operator-overload -- source: Item +- source: '&' scopes: - - meta.qualified_type - - entity.name.type -- source: operator + - keyword.operator +- source: the_input scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload - scopes: - - keyword.other.operator.overload -- source: ^ - scopes: - - entity.name.operator -- source: ( - scopes: - - >- - punctuation.section.parameters.begin.bracket.round.special.operator-overload -- source: const - scopesBegin: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - - storage.modifier.specifier.const -- source: int - scopes: - - storage.type.primitive - - storage.type.built-in.primitive -- source: '&' - scopes: - - storage.modifier.reference -- source: the_input scopes: - variable.parameter - source: ',' @@ -60259,15 +63913,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -60449,10 +64110,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -60464,15 +64135,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -60654,10 +64332,20 @@ scopes: - storage.type.primitive - storage.type.built-in.primitive + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: the_input + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -60669,15 +64357,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -60858,10 +64553,20 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item1 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -60873,15 +64578,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item2 + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -61181,13 +64893,9 @@ scopesEnd: - comment.line.double-slash - source: string - scopesBegin: - - meta.function.definition - scopes: - - meta.qualified_type - - entity.name.type - source: to_string scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -61203,15 +64911,22 @@ - source: Item scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition + - meta.head.function.definition + - meta.function.definition.parameters + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: input_item + scopesBegin: + - meta.function.definition + - meta.head.function.definition scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round @@ -61269,10 +64984,16 @@ - source: < scopes: - punctuation.section.angle-brackets.start.template.definition + scopesEnd: + - meta.template.definition - source: class scopes: - - storage.type.template.argument.class + - meta.block.class + - meta.head.class + - storage.type.class - source: ANYTYPE + scopesBegin: + - meta.template.definition scopes: - entity.name.type.template - source: '>' @@ -61281,14 +65002,12 @@ scopesEnd: - meta.template.definition - source: bool - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: Is__In__ scopesBegin: + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -61639,14 +65358,18 @@ - source: '>=' scopes: - keyword.operator.comparison + scopesEnd: + - meta.preprocessor.macro + - meta.parens - source: '4' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.preprocessor.macro scopes: - - punctuation.section.parens.end.bracket.round - scopesEnd: - meta.parens + - punctuation.section.parens.end.bracket.round - source: '{' scopesBegin: - meta.block @@ -61668,10 +65391,16 @@ - source: ( scopes: - punctuation.section.arguments.begin.bracket.round.function.member + scopesEnd: + - meta.preprocessor.macro + - meta.block - source: '0' scopes: - constant.numeric.decimal - source: ',' + scopesBegin: + - meta.preprocessor.macro + - meta.block scopes: - punctuation.separator.delimiter.comma - source: __OUTPUT_INDENT @@ -61692,10 +65421,16 @@ - source: '-' scopes: - keyword.operator + scopesEnd: + - meta.preprocessor.macro + - meta.block - source: '4' scopes: - constant.numeric.decimal - source: ) + scopesBegin: + - meta.preprocessor.macro + - meta.block scopes: - punctuation.section.arguments.end.bracket.round.function.member - source: ; @@ -61746,15 +65481,12 @@ scopes: - punctuation.separator.colon.inheritance scopesEnd: + - meta.block.class - meta.head.class -- source: public - scopes: - - storage.type.modifier.access.public -- source: stringstream - scopes: - - meta.qualified_type - - entity.name.type +- source: ' public stringstream' - source: '{' + scopesBegin: + - meta.block.class scopes: - meta.head.class - punctuation.section.block.begin.bracket.curly.class @@ -61783,10 +65515,16 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class scopes: - punctuation.terminator.statement - source: bool @@ -61844,16 +65582,18 @@ - punctuation.definition.comment - source: ' class helper functions' scopesEnd: + - meta.block.class + - meta.body.class - comment.line.double-slash - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: go_up_a_line scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -61895,14 +65635,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: go_to_the_right scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -61984,14 +65729,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: save_cursor_position scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -62033,14 +65783,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: restore_cursor_position scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -62082,14 +65837,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: int scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: length_of_previous_line scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -62114,10 +65874,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: '{' @@ -62167,10 +65937,24 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens - source: '1' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition + - meta.block + - meta.parens scopes: - punctuation.terminator.statement - source: ' LoopNumber ' @@ -62322,16 +66106,18 @@ scopes: - punctuation.separator.colon.access.control scopesEnd: + - meta.block.class + - meta.body.class - storage.type.modifier.access.control.public - source: void - scopesBegin: - - meta.function.definition scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: reset scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -62352,10 +66138,20 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition + - meta.body.function.definition scopes: - punctuation.terminator.statement - source: ' dont_go_up_a_line ' @@ -62389,14 +66185,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: output_line scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -62747,14 +66548,19 @@ scopes: - punctuation.section.block.end.bracket.curly.function.definition scopesEnd: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.body.function.definition - source: void scopes: - - meta.qualified_type - storage.type.primitive - storage.type.built-in.primitive - source: add_content scopesBegin: + - meta.block.class + - meta.body.class + - meta.function.definition - meta.head.function.definition scopes: - entity.name.function.definition @@ -62843,31 +66649,29 @@ - punctuation.section.angle-brackets.start.template.definition - source: class scopesBegin: - - meta.template.definition + - meta.block.class + - meta.head.class scopes: - - storage.type.template.argument.class + - storage.type.class - source: ANYTYPE scopes: - - entity.name.type.template + - entity.name.type.class scopesEnd: - - meta.template.definition + - meta.block.class + - meta.head.class - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition - source: inline scopes: - storage.modifier.specifier.functional.pre-parameters.inline -- source: ostream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ostream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -62879,15 +66683,22 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: o + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' @@ -62899,15 +66710,22 @@ - source: ANYTYPE scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: value + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - variable.parameter - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - variable.parameter - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -63791,17 +67609,13 @@ - source: inline scopes: - storage.modifier.specifier.functional.pre-parameters.inline -- source: ostream - scopesBegin: - - meta.function.definition.special.operator-overload - scopes: - - meta.qualified_type - - entity.name.type +- source: ' ostream' - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: operator scopesBegin: + - meta.function.definition.special.operator-overload - meta.head.function.definition.special.operator-overload scopes: - keyword.other.operator.overload @@ -63813,28 +67627,42 @@ - >- punctuation.section.parameters.begin.bracket.round.special.operator-overload - source: ostream - scopesBegin: + scopes: - meta.function.definition.parameters.special.operator-overload - meta.parameter - scopes: - entity.name.type.parameter + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: o + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - variable.parameter - source: ',' scopes: - punctuation.separator.delimiter.comma + scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter - source: ostream - scopes: - - meta.qualified_type - - entity.name.type - source: '&' scopes: - - storage.modifier.reference + - keyword.operator - source: ( + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload + - meta.parameter scopes: - punctuation.section.parens.begin.bracket.round.function.pointer - source: '*' @@ -63850,21 +67678,25 @@ scopes: - punctuation.section.parameters.begin.bracket.round.function.pointer - source: ostream - scopesBegin: - - meta.parameter scopes: + - meta.parameter - entity.name.type.parameter -- source: '&' - scopes: - - storage.modifier.reference scopesEnd: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload + - meta.function.definition.parameters.special.operator-overload - meta.parameter +- source: '&' + scopes: + - keyword.operator - source: ) + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.head.function.definition.special.operator-overload scopes: - - punctuation.section.parameters.end.bracket.round.function.pointer - scopesEnd: - meta.function.definition.parameters.special.operator-overload - meta.parameter + - punctuation.section.parameters.end.bracket.round.function.pointer - source: ) scopes: - punctuation.section.parameters.end.bracket.round.special.operator-overload @@ -64053,8 +67885,7 @@ - meta.body.function.definition.special.operator-overload - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.endif scopes: - punctuation.definition.directive - source: endif diff --git a/test/specs/vscode/test-23630.cpp.yaml b/test/specs/vscode/test-23630.cpp.yaml index b701dfa3..aa7df9c1 100644 --- a/test/specs/vscode/test-23630.cpp.yaml +++ b/test/specs/vscode/test-23630.cpp.yaml @@ -1,17 +1,15 @@ - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifndef scopes: - punctuation.definition.directive - source: ifndef scopesEnd: - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifndef - source: _UCRT scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: '#' scopesBegin: - meta.preprocessor.macro @@ -28,8 +26,7 @@ - meta.preprocessor.macro - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.endif scopes: - punctuation.definition.directive - source: endif diff --git a/test/specs/vscode/test-23850.cpp.yaml b/test/specs/vscode/test-23850.cpp.yaml index b701dfa3..aa7df9c1 100644 --- a/test/specs/vscode/test-23850.cpp.yaml +++ b/test/specs/vscode/test-23850.cpp.yaml @@ -1,17 +1,15 @@ - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifndef scopes: - punctuation.definition.directive - source: ifndef scopesEnd: - - keyword.control.directive.conditional + - keyword.control.directive.conditional.ifndef - source: _UCRT scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: '#' scopesBegin: - meta.preprocessor.macro @@ -28,8 +26,7 @@ - meta.preprocessor.macro - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.endif scopes: - punctuation.definition.directive - source: endif diff --git a/test/specs/vscode/test.cc.yaml b/test/specs/vscode/test.cc.yaml index 82c12ced..bb6b353b 100644 --- a/test/specs/vscode/test.cc.yaml +++ b/test/specs/vscode/test.cc.yaml @@ -1,17 +1,15 @@ - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.conditional.if scopes: - punctuation.definition.directive - source: if scopesEnd: - - keyword.control.directive.conditional + - keyword.control.directive.conditional.if - source: B4G_DEBUG_CHECK scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: fprintf scopes: - entity.name.function.call @@ -63,10 +61,14 @@ - source: = scopes: - keyword.operator.assignment + scopesEnd: + - meta.parens - source: '0' scopes: - constant.numeric.decimal - source: ; + scopesBegin: + - meta.parens scopes: - punctuation.terminator.statement - source: i @@ -162,14 +164,12 @@ - punctuation.terminator.statement - source: '#' scopesBegin: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.endif scopes: - punctuation.definition.directive - source: endif scopesEnd: - - meta.preprocessor - - keyword.control.directive.conditional + - keyword.control.directive.endif - source: void scopesBegin: - meta.function.definition