From 009674415846a2c6d7ee1eab3238f5dfe9b4f0fb Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 11:06:10 -0500 Subject: [PATCH 01/25] switch back to vscode-textmate --- package-lock.json | 10 ---------- package.json | 1 - test/source/get_tokens.js | 2 +- test/source/registry.js | 2 +- test/source/report/onig_scanner.js | 2 +- test/source/report/oniguruma_decorator.js | 2 +- test/source/report/rewrite_grammar.js | 2 +- test/source/spec_checker.js | 2 +- 8 files changed, 6 insertions(+), 17 deletions(-) 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 f606f315..8714cb9e 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,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/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 37b7de09..f60d3d6a 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") /** From 8f006cf499873fe834129aaa6fb635ab880bf04d Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 11:12:43 -0500 Subject: [PATCH 02/25] make compatible with ruby 2.5 --- source/languages/cpp/generate.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 052f2e34..ff0c35e5 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -916,7 +916,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: generateScopeResolutionFinder = ->(tag_extension, grammar_name) do hidden_grammar_name = (grammar_name.to_s+"_inner_generated").to_sym tagged_scope_operator = scope_operator.reTag( - append: tag_extension[1...] + append: tag_extension[1..-1] ) cpp_grammar[grammar_name] = newPattern( # find the whole scope resolution From d0271406d74ab4820811638c0acbddb118e96741 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 11:14:57 -0500 Subject: [PATCH 03/25] generate syntax --- syntaxes/c.tmLanguage.json | 2 +- syntaxes/c.tmLanguage.yaml | 2 +- syntaxes/cpp.tmLanguage.json | 2 +- syntaxes/cpp.tmLanguage.yaml | 2 +- test/specs/issues/207.cpp.yaml | 24 ++++++++++++------------ 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/syntaxes/c.tmLanguage.json b/syntaxes/c.tmLanguage.json index 1a109d72..5823dcc2 100644 --- a/syntaxes/c.tmLanguage.json +++ b/syntaxes/c.tmLanguage.json @@ -1895,7 +1895,7 @@ "name": "entity.name.other.preprocessor.macro.predefined._Float16.c" }, { - "match": "(\\b__([A-Z_])__\\b)", + "match": "(\\b__([A-Z_]+)__\\b)", "captures": { "1": { "name": "entity.name.other.preprocessor.macro.predefined.probably.$2.c" diff --git a/syntaxes/c.tmLanguage.yaml b/syntaxes/c.tmLanguage.yaml index 3c4c4764..b4965c75 100644 --- a/syntaxes/c.tmLanguage.yaml +++ b/syntaxes/c.tmLanguage.yaml @@ -992,7 +992,7 @@ repository: name: entity.name.other.preprocessor.macro.predefined.__fp16.c - match: "\\b_Float16\\b" name: entity.name.other.preprocessor.macro.predefined._Float16.c - - match: "(\\b__([A-Z_])__\\b)" + - match: "(\\b__([A-Z_]+)__\\b)" captures: '1': name: entity.name.other.preprocessor.macro.predefined.probably.$2.c diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index 02c2d57d..f0f62641 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -4873,7 +4873,7 @@ "name": "entity.name.other.preprocessor.macro.predefined._Float16.cpp" }, { - "match": "(\\b__([A-Z_])__\\b)", + "match": "(\\b__([A-Z_]+)__\\b)", "captures": { "1": { "name": "entity.name.other.preprocessor.macro.predefined.probably.$2.cpp" diff --git a/syntaxes/cpp.tmLanguage.yaml b/syntaxes/cpp.tmLanguage.yaml index 4ef8afa9..29c77045 100644 --- a/syntaxes/cpp.tmLanguage.yaml +++ b/syntaxes/cpp.tmLanguage.yaml @@ -2501,7 +2501,7 @@ repository: name: entity.name.other.preprocessor.macro.predefined.__fp16.cpp - match: "\\b_Float16\\b" name: entity.name.other.preprocessor.macro.predefined._Float16.cpp - - match: "(\\b__([A-Z_])__\\b)" + - match: "(\\b__([A-Z_]+)__\\b)" captures: '1': name: entity.name.other.preprocessor.macro.predefined.probably.$2.cpp diff --git a/test/specs/issues/207.cpp.yaml b/test/specs/issues/207.cpp.yaml index 0da29aff..a99559ac 100644 --- a/test/specs/issues/207.cpp.yaml +++ b/test/specs/issues/207.cpp.yaml @@ -169,9 +169,6 @@ scopesEnd: - meta.block.class - source: template - scopesBegin: - - meta.function.definition.special.operator-overload - - meta.qualified_type scopes: - entity.name.scope-resolution - source: '::' @@ -179,6 +176,9 @@ - punctuation.separator.namespace.access - punctuation.separator.scope-resolution - source: std + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.qualified_type scopes: - entity.name.scope-resolution - source: '::' @@ -251,9 +251,6 @@ scopes: - punctuation.terminator.statement - source: template - scopesBegin: - - meta.function.definition.special.operator-overload - - meta.qualified_type scopes: - entity.name.scope-resolution - source: '::' @@ -261,6 +258,9 @@ - punctuation.separator.namespace.access - punctuation.separator.scope-resolution - source: std + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.qualified_type scopes: - entity.name.scope-resolution - source: '::' @@ -333,9 +333,6 @@ scopes: - punctuation.terminator.statement - source: template - scopesBegin: - - meta.function.definition.special.operator-overload - - meta.qualified_type scopes: - entity.name.scope-resolution - source: '::' @@ -343,6 +340,9 @@ - punctuation.separator.namespace.access - punctuation.separator.scope-resolution - source: std + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.qualified_type scopes: - entity.name.scope-resolution - source: '::' @@ -418,9 +418,6 @@ scopes: - punctuation.terminator.statement - source: template - scopesBegin: - - meta.function.definition.special.operator-overload - - meta.qualified_type scopes: - entity.name.scope-resolution - source: '::' @@ -428,6 +425,9 @@ - punctuation.separator.namespace.access - punctuation.separator.scope-resolution - source: std + scopesBegin: + - meta.function.definition.special.operator-overload + - meta.qualified_type scopes: - entity.name.scope-resolution - source: '::' From ebccc43ecfe665cc0945d426283867ce611fd85f Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 11:34:07 -0500 Subject: [PATCH 04/25] add the overwrite warning --- source/languages/cpp/generate.rb | 6 +----- source/textmate_tools.rb | 16 ++++++++++++---- syntaxes/cpp.tmLanguage.json | 8 ++++---- syntaxes/cpp.tmLanguage.yaml | 6 +++--- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index ff0c35e5..104c7358 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -1570,7 +1570,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: includes: cpp_grammar[:evaluation_context] ) - cpp_grammar[:operators] += [ + cpp_grammar[:operators, overwrite: true] += [ newPattern( match: /--/, tag_as: "keyword.operator.decrement" @@ -2005,10 +2005,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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 diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index 3e68d7c2..a4317a5c 100644 --- a/source/textmate_tools.rb +++ b/source/textmate_tools.rb @@ -139,7 +139,7 @@ def recursively_set_each_value!(a_lambda) class Grammar attr_accessor :data, :all_tags, :language_ending - + # # Globally accessible current grammar object # @@ -369,11 +369,19 @@ def initialize(wrap_source: false, name:nil, scope_name:nil, global_patterns:[], # # External Helpers # - def [](key) - return @data[:repository][key] + def [](*args) + return @data[:repository][args[0]] end - def []=(key, value) + def []=(*args) + # parse out the arguments: grammar[key, (optional_overwrite)] = value + *keys, value = args + key, overwrite_option = keys + overwrite_allowed = overwrite_option.is_a?(Hash) && overwrite_option[:overwrite] + # check for accidental 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 # tell the object it was added to a repository diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index f0f62641..f1358578 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -10818,10 +10818,6 @@ } ] }, - "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": { @@ -14756,6 +14752,10 @@ "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" }, + "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" + }, "square_brackets": { "name": "meta.bracket.square.access.cpp", "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", diff --git a/syntaxes/cpp.tmLanguage.yaml b/syntaxes/cpp.tmLanguage.yaml index 29c77045..50798a78 100644 --- a/syntaxes/cpp.tmLanguage.yaml +++ b/syntaxes/cpp.tmLanguage.yaml @@ -5584,9 +5584,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: @@ -7631,6 +7628,9 @@ repository: 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 + 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 square_brackets: name: meta.bracket.square.access.cpp begin: "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])" From 2a8912adfc7084f2c5383d4198d7d68eafb6f7d7 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 13:26:53 -0500 Subject: [PATCH 05/25] add import and export methods --- source/textmate_tools.rb | 65 ++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 13 deletions(-) diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index a4317a5c..a8358c43 100644 --- a/source/textmate_tools.rb +++ b/source/textmate_tools.rb @@ -136,16 +136,33 @@ def recursively_set_each_value!(a_lambda) - class Grammar - attr_accessor :data, :all_tags, :language_ending - - # - # Globally accessible current grammar object - # - @@current_grammar = nil - def self.current_grammar - return @@current_grammar + attr_accessor :data, :all_tags, :language_ending, :namespace + + # + # import and export methods + # + @@exported_lambda + def self.export(exported_lambda) + @@exported_lambda = exported_lambda + end + + def import(file, namespace:"") + # make sure it has the .rb extension + if file[-3..-1] != ".rb" + file += ".rb" + end + # import the file, use load rather than require so that the @@exported_lambda gets reset on each import + load(file) + # create a shallow copy of the grammar + namespaced_grammar = Grammar.new(self, namespace) + if @@exported_lambda != nil + # run the import function with the namespaced grammar + output = @@exported_lambda[namespaced_grammar] + # clean up the consumed lambda + @@exported_lambda = nil + end + return output end # @@ -352,7 +369,24 @@ 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 + # 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,22 +395,27 @@ 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 # # External Helpers # def [](*args) - return @data[:repository][args[0]] + key = args[0] + # append namespace to the key + key = (@namespace + key.to_s).to_sym + return @data[:repository][key] end def []=(*args) # parse out the arguments: grammar[key, (optional_overwrite)] = value *keys, value = args key, overwrite_option = keys + # append namespace to the key + key = (@namespace + key.to_s).to_sym overwrite_allowed = overwrite_option.is_a?(Hash) && overwrite_option[:overwrite] # check for accidental overwrite if @data[:repository][key] != nil && (not overwrite_option) From a592b2c303b09b8b694bf9f85e04ba704118c9a3 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 15:31:19 -0500 Subject: [PATCH 06/25] update the import and export method --- source/textmate_tools.rb | 93 ++++++++++++++++++++++++++++++++-------- 1 file changed, 76 insertions(+), 17 deletions(-) diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index a8358c43..50ccaf70 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) @@ -137,30 +138,59 @@ def recursively_set_each_value!(a_lambda) class Grammar - attr_accessor :data, :all_tags, :language_ending, :namespace + attr_accessor :data, :all_tags, :language_ending, :namespace, :export_options # # import and export methods # - @@exported_lambda - def self.export(exported_lambda) - @@exported_lambda = exported_lambda + @@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| + # # 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(file, namespace:"") - # make sure it has the .rb extension + # make sure the pathname is absolute + # if its not then it will try to locate the file relative to the working directory, rather than relative to the source file + # in the source file this can be easily fixed by adding __dir__() to the path, + # however we can't use __dir__() in this method because the __dir__() changes based on its source file (aka it would be relative to this file) + if not Pathname.new(file).absolute? + raise "\n\nthe grammar.import('#{file}') needs to be an absolute path.\nThis likely means you need to change it to something like:\ngrammar.import(__dir__()+'/#{file}')" + end + # make sure it has the .rb extension, for some reason its required for the load function if file[-3..-1] != ".rb" file += ".rb" end - # import the file, use load rather than require so that the @@exported_lambda gets reset on each import + # import the file using load rather than require so that the @@export_data gets reset on each import load(file) # create a shallow copy of the grammar - namespaced_grammar = Grammar.new(self, namespace) - if @@exported_lambda != nil + namespaced_grammar = Grammar.new(self, namespace, @@export_data[:export_options]) + if @@export_data != nil # run the import function with the namespaced grammar - output = @@exported_lambda[namespaced_grammar] + output = @@export_data[:lambda][namespaced_grammar] # clean up the consumed lambda - @@exported_lambda = nil + @@export_data = nil end return output end @@ -376,10 +406,13 @@ def initialize(*args, **kwargs) @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 = args[1] + else+ @namespace = "" end + puts "args is: #{args} " + puts "kwargs is: #{kwargs} " + @export_options = kwargs # if not making a copy then run the normal init else self.init(*args, **kwargs) @@ -400,13 +433,38 @@ def init(wrap_source: false, name:nil, scope_name:nil, global_patterns:[], repos @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 [](*args) key = args[0] - # append namespace to the key - key = (@namespace + key.to_s).to_sym + key = self.insertNamespaceIfNeeded(key) return @data[:repository][key] end @@ -414,10 +472,9 @@ def []=(*args) # parse out the arguments: grammar[key, (optional_overwrite)] = value *keys, value = args key, overwrite_option = keys - # append namespace to the key - key = (@namespace + key.to_s).to_sym - overwrite_allowed = overwrite_option.is_a?(Hash) && overwrite_option[:overwrite] + 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 @@ -426,6 +483,8 @@ def []=(*args) # 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 From 35da89dc71973a7ccc361de2601375945d9c08e5 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 16:31:56 -0500 Subject: [PATCH 07/25] allow local imports --- source/textmate_tools.rb | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index 50ccaf70..2c208448 100644 --- a/source/textmate_tools.rb +++ b/source/textmate_tools.rb @@ -147,7 +147,7 @@ class Grammar 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| + # 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 # @@ -170,25 +170,24 @@ def self.export(*args, &block) } end - def import(file, namespace:"") - # make sure the pathname is absolute - # if its not then it will try to locate the file relative to the working directory, rather than relative to the source file - # in the source file this can be easily fixed by adding __dir__() to the path, - # however we can't use __dir__() in this method because the __dir__() changes based on its source file (aka it would be relative to this file) - if not Pathname.new(file).absolute? - raise "\n\nthe grammar.import('#{file}') needs to be an absolute path.\nThis likely means you need to change it to something like:\ngrammar.import(__dir__()+'/#{file}')" + def import(filepath, namespace:"") + if not Pathname.new(filepath).absolute? + # try to detect the relative path + source_directory = File.dirname(caller[-1].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 file[-3..-1] != ".rb" - file += ".rb" + 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(file) + load(filepath) # create a shallow copy of the grammar namespaced_grammar = Grammar.new(self, namespace, @@export_data[:export_options]) if @@export_data != nil # run the import function with the namespaced grammar - output = @@export_data[:lambda][namespaced_grammar] + output = @@export_data[:lambda][namespaced_grammar, namespace] # clean up the consumed lambda @@export_data = nil end @@ -410,8 +409,6 @@ def initialize(*args, **kwargs) else+ @namespace = "" end - puts "args is: #{args} " - puts "kwargs is: #{kwargs} " @export_options = kwargs # if not making a copy then run the normal init else From c8505b8f7bf85974f7f8b3ef85026309165a03bc Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 16:50:26 -0500 Subject: [PATCH 08/25] add the pattern class --- source/textmate_tools.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index 2c208448..d31d9fb5 100644 --- a/source/textmate_tools.rb +++ b/source/textmate_tools.rb @@ -1243,6 +1243,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 # From 3150d87f77d5e3fb1ec8006ddf086c551bc9a397 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 16:59:30 -0500 Subject: [PATCH 09/25] clean up std_space and inline comment --- source/languages/cpp/generate.rb | 6 +-- source/languages/cpp/lib/inline_comment.rb | 47 ++++++++++++++++++++++ source/languages/cpp/lib/std_space.rb | 35 ++++++++++++++++ 3 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 source/languages/cpp/lib/inline_comment.rb create mode 100644 source/languages/cpp/lib/std_space.rb diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index affcda05..77411a8f 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -45,9 +45,9 @@ # # Utils # - $grammar = cpp_grammar - cpp_grammar[:inline_comment] = inline_comment - def std_space() generateStdSpace($grammar[:inline_comment]) end + cpp_grammar[:inline_comment] = cpp_grammar.import("./lib/inline_comment") + std_space = cpp_grammar.import("./lib/std_space")[inline_comment, :inline_comment] + # preprocessor = cpp_grammar.import("./lib/preprocessor")[std_space] leading_space = /\s*+/ cpp_grammar[:semicolon] = @semicolon = newPattern( match: /;/, diff --git a/source/languages/cpp/lib/inline_comment.rb b/source/languages/cpp/lib/inline_comment.rb new file mode 100644 index 00000000..b8b2584b --- /dev/null +++ b/source/languages/cpp/lib/inline_comment.rb @@ -0,0 +1,47 @@ +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| + newPattern( + match: /\/\*/, + tag_as: "comment.block punctuation.definition.comment.begin", + ).then( + # this pattern is complicated because its optimized to never backtrack + match: newPattern( + tag_as: "comment.block", + should_fully_match: [ "thing ****/", "/* thing */", "/* thing *******/" ], + match: zeroOrMoreOf( + dont_back_track?: true, + match: newPattern( + newPattern( + /[^\*]/ + ).or( + oneOrMoreOf( + match: /\*/, + dont_back_track?: true, + # any character that is not a / + ).then(/[^\/]/) + ) + ), + ).then( + should_fully_match: [ "*/", "*******/" ], + match: newPattern( + oneOrMoreOf( + match: /\*/, + dont_back_track?: true, + ).then(/\//) + ), + includes: [ + newPattern( + match: /\*\//, + tag_as: "comment.block punctuation.definition.comment.end" + ), + newPattern( + match: /\*/, + tag_as: "comment.block" + ), + ] + ) + ) + ) +end 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 From 89d7c23dce4ff954568a65e60549bae8e35ad3ea Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 16:59:57 -0500 Subject: [PATCH 10/25] switch to Pattern.new --- source/languages/cpp/lib/inline_comment.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/languages/cpp/lib/inline_comment.rb b/source/languages/cpp/lib/inline_comment.rb index b8b2584b..6c0310e6 100644 --- a/source/languages/cpp/lib/inline_comment.rb +++ b/source/languages/cpp/lib/inline_comment.rb @@ -2,18 +2,18 @@ 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| - newPattern( + Pattern.new( match: /\/\*/, tag_as: "comment.block punctuation.definition.comment.begin", ).then( # this pattern is complicated because its optimized to never backtrack - match: newPattern( + match: Pattern.new( tag_as: "comment.block", should_fully_match: [ "thing ****/", "/* thing */", "/* thing *******/" ], match: zeroOrMoreOf( dont_back_track?: true, - match: newPattern( - newPattern( + match: Pattern.new( + Pattern.new( /[^\*]/ ).or( oneOrMoreOf( @@ -25,18 +25,18 @@ ), ).then( should_fully_match: [ "*/", "*******/" ], - match: newPattern( + match: Pattern.new( oneOrMoreOf( match: /\*/, dont_back_track?: true, ).then(/\//) ), includes: [ - newPattern( + Pattern.new( match: /\*\//, tag_as: "comment.block punctuation.definition.comment.end" ), - newPattern( + Pattern.new( match: /\*/, tag_as: "comment.block" ), From 18f2548db04db5a6787f1a33f932f43a0cddc1ba Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 17:35:47 -0500 Subject: [PATCH 11/25] minor fix to import method --- source/textmate_tools.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index d31d9fb5..7b3ecb23 100644 --- a/source/textmate_tools.rb +++ b/source/textmate_tools.rb @@ -173,7 +173,7 @@ def self.export(*args, &block) def import(filepath, namespace:"") if not Pathname.new(filepath).absolute? # try to detect the relative path - source_directory = File.dirname(caller[-1].sub(/:\d+:.+?$/,"")) + source_directory = File.dirname(caller[0].sub(/:\d+:.+?$/,"")) # make the filepath absolute filepath = File.join(source_directory, filepath) end @@ -185,9 +185,15 @@ def import(filepath, namespace:"") 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, namespace] + output = @@export_data[:lambda][namespaced_grammar, send_namespace] # clean up the consumed lambda @@export_data = nil end From 5ffa27fcc4f17b64068465ac2bef187d50410438 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 17:43:39 -0500 Subject: [PATCH 12/25] add wordBounds --- source/textmate_tools.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index 7b3ecb23..24dcb500 100644 --- a/source/textmate_tools.rb +++ b/source/textmate_tools.rb @@ -1301,6 +1301,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 From 2e43cc259c578a891f5d18eee72aad67ff5be2ac Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 17:47:44 -0500 Subject: [PATCH 13/25] start modern preprocessor, pragmas finished --- language_tags/cpp.txt | 1 - source/languages/cpp/generate.rb | 74 +----- source/languages/cpp/lib/preprocessor.rb | 90 ++++++++ syntaxes/cpp.tmLanguage.json | 263 +++++++++++++--------- syntaxes/cpp.tmLanguage.yaml | 136 ++++++----- test/fixtures/features/preprocessor.cpp | 2 + test/specs/features/preprocessor.cpp.yaml | 14 ++ 7 files changed, 347 insertions(+), 233 deletions(-) create mode 100644 source/languages/cpp/lib/preprocessor.rb diff --git a/language_tags/cpp.txt b/language_tags/cpp.txt index f1c3b14a..b8c87621 100644 --- a/language_tags/cpp.txt +++ b/language_tags/cpp.txt @@ -464,7 +464,6 @@ meta.preprocessor.include.cpp meta.preprocessor.macro.cpp meta.preprocessor.pragma.cpp meta.qualified_type.cpp -meta.section.cpp meta.static_assert.message.cpp meta.tail.class.cpp meta.tail.enum.cpp diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 77411a8f..23aae504 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -47,7 +47,7 @@ # cpp_grammar[:inline_comment] = cpp_grammar.import("./lib/inline_comment") std_space = cpp_grammar.import("./lib/std_space")[inline_comment, :inline_comment] - # preprocessor = cpp_grammar.import("./lib/preprocessor")[std_space] + preprocessor = cpp_grammar.import("./lib/preprocessor")[std_space] leading_space = /\s*+/ cpp_grammar[:semicolon] = @semicolon = newPattern( match: /;/, @@ -166,10 +166,9 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :meta_preprocessor_macro, :meta_preprocessor_diagnostic, :meta_preprocessor_include, - :pragma_mark, + *preprocessor, :meta_preprocessor_line, :meta_preprocessor_undef, - :meta_preprocessor_pragma, :hacky_fix_for_stray_directive, # comments :comments, @@ -2332,29 +2331,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: cpp_grammar[:parameter_union ] = generateOverqualifiedTypeFor["union"], cpp_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 @@ -2590,34 +2566,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:meta_preprocessor_pragma] = { - name: "meta.preprocessor.pragma", - begin: "^\\s*(?:((#)\\s*pragma))\\b", - beginCaptures: { - "1" => { - name: "keyword.control.directive.pragma" - }, - "2" => { - name: "punctuation.definition.directive" - } - }, - end: "(?=(?://|/\\*))|(? { - 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] = [ { begin: "\"", diff --git a/source/languages/cpp/lib/preprocessor.rb b/source/languages/cpp/lib/preprocessor.rb new file mode 100644 index 00000000..6b735ff4 --- /dev/null +++ b/source/languages/cpp/lib/preprocessor.rb @@ -0,0 +1,90 @@ +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| + ->(std_space) do + # + # 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(@end_of_line) + # + # 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: [ + "#string_context_c", + Pattern.new( + match: /[a-zA-Z_$][\w\-$]*/, + tag_as: "entity.other.attribute-name.pragma.preprocessor", + ), + "#number_literal", + "#line_continuation_character", + ] + ) + # include + # line + # warning + # error + # undef + # + # 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: [ + :meta_preprocessor_macro, + :comments, + :string_context, + :number_literal, + :operators, + :semicolon, + ] + ) + # arguments + # *conditionals* + # if + # ifdef + # ifndef + # elif + # else + # endif + grammar[:hacky_fix_for_stray_directive] = hacky_fix_for_stray_directive = newPattern( + match: wordBounds(/#(?:endif|else|elif)/), + tag_as: "keyword.control.directive.$match" + ) + # return the preprocessor context + [ + :pragma_mark, + :pragma, + :single_line_macro, + :hacky_fix_for_stray_directive, + ].map {|each| (namespace + each.to_s).to_sym } + end +end \ No newline at end of file diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index 39d7265b..94cd8e2a 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -131,6 +131,155 @@ } } }, + "pragma_mark": { + "match": "((?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*pragma\\s+mark)\\s+(.*)", + "captures": { + "1": { + "name": "keyword.control.directive.pragma.pragma-mark.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "6": { + "name": "punctuation.definition.directive.cpp" + }, + "7": { + "name": "entity.name.tag.pragma-mark.cpp" + } + }, + "name": "meta.preprocessor.pragma.cpp" + }, + "pragma": { + "name": "meta.preprocessor.pragma.cpp", + "begin": "((?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*pragma\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.pragma.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "6": { + "name": "punctuation.definition.directive.cpp" + } + }, + "end": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\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)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(? #define IsPointDef(...) \ diff --git a/test/specs/features/preprocessor.cpp.yaml b/test/specs/features/preprocessor.cpp.yaml index d3c22d60..97b6353c 100644 --- a/test/specs/features/preprocessor.cpp.yaml +++ b/test/specs/features/preprocessor.cpp.yaml @@ -208,8 +208,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 From e83d77b5e2131bb93863cdc2d31249c8910b5848 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 18:07:15 -0500 Subject: [PATCH 14/25] make correction for escaped newlines --- source/languages/cpp/lib/preprocessor.rb | 8 ++++---- syntaxes/cpp.tmLanguage.json | 2 +- syntaxes/cpp.tmLanguage.yaml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/source/languages/cpp/lib/preprocessor.rb b/source/languages/cpp/lib/preprocessor.rb index 6b735ff4..e4fe5dab 100644 --- a/source/languages/cpp/lib/preprocessor.rb +++ b/source/languages/cpp/lib/preprocessor.rb @@ -12,7 +12,7 @@ tag_as: "punctuation.definition.directive", ).maybe(@spaces) ) - non_escaped_newline = lookBehindToAvoid(/\\/).lookAheadFor(@end_of_line) + non_escaped_newline = lookBehindToAvoid(/\\/).lookAheadFor(/\n/) # # pragma # @@ -38,13 +38,13 @@ ), end_pattern: non_escaped_newline, includes: [ - "#string_context_c", + :string_context_c, Pattern.new( match: /[a-zA-Z_$][\w\-$]*/, tag_as: "entity.other.attribute-name.pragma.preprocessor", ), - "#number_literal", - "#line_continuation_character", + :number_literal, + :line_continuation_character, ] ) # include diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index 94cd8e2a..a6d602c8 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -207,7 +207,7 @@ "name": "punctuation.definition.directive.cpp" } }, - "end": "(? Date: Wed, 7 Aug 2019 18:35:34 -0500 Subject: [PATCH 15/25] move macros to preprocessor file, update #324 --- source/languages/cpp/generate.rb | 49 +----- source/languages/cpp/lib/preprocessor.rb | 82 ++++++++-- syntaxes/cpp.tmLanguage.json | 178 ++++++++++------------ syntaxes/cpp.tmLanguage.yaml | 95 ++++++------ test/fixtures/issues/324.cpp | 4 +- test/specs/features/preprocessor.cpp.yaml | 47 +++--- test/specs/issues/030.cpp.yaml | 19 ++- test/specs/issues/324.cpp.yaml | 10 +- 8 files changed, 250 insertions(+), 234 deletions(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 23aae504..02fa2249 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -47,7 +47,11 @@ # cpp_grammar[:inline_comment] = cpp_grammar.import("./lib/inline_comment") std_space = cpp_grammar.import("./lib/std_space")[inline_comment, :inline_comment] - preprocessor = cpp_grammar.import("./lib/preprocessor")[std_space] + 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 = cpp_grammar.import("./lib/preprocessor")[std_space, identifier] leading_space = /\s*+/ cpp_grammar[:semicolon] = @semicolon = newPattern( match: /;/, @@ -159,11 +163,9 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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, *preprocessor, @@ -402,10 +404,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # 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) @@ -2375,43 +2373,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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: /(?(std_space) do + ->(std_space, identifier) do # # helpers # @@ -55,27 +55,80 @@ # # 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: [ - :meta_preprocessor_macro, - :comments, - :string_context, - :number_literal, - :operators, - :semicolon, - ] - ) + grammar[:single_line_macro] = Pattern.new( + should_fully_match: ["#define EXTERN_C extern \"C\""], + match: /^/.then(std_space).then(/#\s*+define\b/).then(/.*[^\\]$/), + includes: [ :multi_line_macro ] + ) + grammar[:multi_line_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( + match: identifier, + tag_as: "entity.name.function.preprocessor", + ) + ), + 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 + ] + + ) + # # arguments + # + + # # *conditionals* + # # if # ifdef # ifndef # elif # else # endif - grammar[:hacky_fix_for_stray_directive] = hacky_fix_for_stray_directive = newPattern( + grammar[:hacky_fix_for_stray_directive] = hacky_fix_for_stray_directive = Pattern.new( match: wordBounds(/#(?:endif|else|elif)/), tag_as: "keyword.control.directive.$match" ) @@ -84,6 +137,7 @@ :pragma_mark, :pragma, :single_line_macro, + :multi_line_macro, :hacky_fix_for_stray_directive, ].map {|each| (namespace + each.to_s).to_sym } end diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index a6d602c8..1b65f2d9 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -225,27 +225,12 @@ ] }, "single_line_macro": { - "match": "^((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#\\s*+define\\b.*[^\\\\]$", "captures": { "0": { "patterns": [ { - "include": "#meta_preprocessor_macro" - }, - { - "include": "#comments" - }, - { - "include": "#string_context" - }, - { - "include": "#number_literal" - }, - { - "include": "#operators" - }, - { - "include": "#semicolon" + "include": "#multi_line_macro" } ] }, @@ -276,6 +261,84 @@ } } }, + "multi_line_macro": { + "name": "meta.preprocessor.macro.cpp", + "begin": "((?:^)((?:(?:(?>\\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": { + "name": "keyword.control.directive.define.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "6": { + "name": "punctuation.definition.directive.cpp" + }, + "7": { + "name": "entity.name.function.preprocessor.cpp" + } + }, + "end": "(?\\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)))#define.*(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#\\s*+define\\b.*[^\\\\]$" captures: '0': patterns: - - include: "#meta_preprocessor_macro" - - include: "#comments" - - include: "#string_context" - - include: "#number_literal" - - include: "#operators" - - include: "#semicolon" + - include: "#multi_line_macro" '1': patterns: - include: "#inline_comment" @@ -135,6 +130,49 @@ repository: name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp + multi_line_macro: + name: meta.preprocessor.macro.cpp + begin: "((?:^)((?:(?:(?>\\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': + name: keyword.control.directive.define.cpp + '2': + patterns: + - include: "#inline_comment" + '3': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '4': + name: comment.block.cpp + '5': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '6': + name: punctuation.definition.directive.cpp + '7': + name: entity.name.function.preprocessor.cpp + end: "(?\\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: "(?' - scopes: - - punctuation.section.angle-brackets.end.template.definition scopesEnd: - - meta.template.definition + - keyword.operator.comparison - source: \ scopes: - constant.character.escape.line-continuation @@ -348,10 +346,11 @@ scopes: - punctuation.section.block.end.bracket.curly.struct scopesEnd: - - meta.block.struct - meta.body.struct - source: '#' scopesBegin: + - meta.tail.struct + - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -373,6 +372,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.preprocessor.macro - source: IsPointDef scopes: - entity.name.function.call @@ -383,25 +384,23 @@ - source: ) scopes: - punctuation.section.arguments.end.bracket.round.function.call + scopesEnd: + - meta.tail.struct - source: ; scopes: - punctuation.terminator.statement + scopesEnd: + - meta.block.struct - source: \ scopes: - constant.character.escape.line-continuation -- source: template - scopesBegin: - - meta.template.definition - scopes: - - storage.type.template +- source: ' template' - source: < - scopes: - - punctuation.section.angle-brackets.start.template.definition + scopesBegin: + - keyword.operator.comparison - source: '>' - scopes: - - punctuation.section.angle-brackets.end.template.definition scopesEnd: - - meta.template.definition + - keyword.operator.comparison - source: \ scopes: - constant.character.escape.line-continuation diff --git a/test/specs/issues/030.cpp.yaml b/test/specs/issues/030.cpp.yaml index db8c9849..f192d689 100644 --- a/test/specs/issues/030.cpp.yaml +++ b/test/specs/issues/030.cpp.yaml @@ -57,6 +57,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.preprocessor.macro - source: template scopesBegin: - meta.template.definition @@ -136,10 +138,11 @@ scopes: - punctuation.section.block.end.bracket.curly.struct scopesEnd: - - meta.block.struct - meta.body.struct - source: '#' scopesBegin: + - meta.tail.struct + - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -161,6 +164,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.preprocessor.macro - source: IsPointDef scopes: - entity.name.function.call @@ -171,9 +176,13 @@ - source: ) scopes: - punctuation.section.arguments.end.bracket.round.function.call + scopesEnd: + - meta.tail.struct - source: ; scopes: - punctuation.terminator.statement + scopesEnd: + - meta.block.struct - source: \ scopes: - constant.character.escape.line-continuation @@ -253,6 +262,7 @@ - meta.block.struct - source: '#' scopesBegin: + - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -274,6 +284,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.preprocessor.macro - source: IsPointDef scopes: - entity.name.function.call @@ -366,6 +378,7 @@ - meta.block.struct - source: '#' scopesBegin: + - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -378,6 +391,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.preprocessor.macro - source: template scopes: - storage.type.template @@ -549,8 +564,6 @@ - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition - scopesEnd: - - meta.preprocessor.macro - source: namespace scopesBegin: - meta.block.namespace diff --git a/test/specs/issues/324.cpp.yaml b/test/specs/issues/324.cpp.yaml index eb3d34f2..362bd145 100644 --- a/test/specs/issues/324.cpp.yaml +++ b/test/specs/issues/324.cpp.yaml @@ -46,6 +46,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.preprocessor.macro - source: do scopes: - keyword.control.do @@ -57,8 +59,6 @@ - source: \ scopes: - constant.character.escape.line-continuation - scopesEnd: - - meta.block - source: ( scopesBegin: - meta.parens @@ -221,7 +221,11 @@ - source: \ scopes: - constant.character.escape.line-continuation -- source: "\t}" +- source: '}' + scopes: + - punctuation.section.block.end.bracket.curly + scopesEnd: + - meta.block - source: while scopes: - keyword.control.while From 945385b7831877fed52941bd1c7c76bf5a04da56 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 18:42:32 -0500 Subject: [PATCH 16/25] add macro arguments --- source/languages/cpp/generate.rb | 5 -- source/languages/cpp/lib/preprocessor.rb | 6 ++- syntaxes/cpp.tmLanguage.json | 14 +++--- syntaxes/cpp.tmLanguage.yaml | 8 ++-- test/specs/issues/324.cpp.yaml | 58 ++++++++++++++++-------- 5 files changed, 56 insertions(+), 35 deletions(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 02fa2249..1d3e9dfb 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -171,7 +171,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: *preprocessor, :meta_preprocessor_line, :meta_preprocessor_undef, - :hacky_fix_for_stray_directive, # comments :comments, :line_continuation_character, @@ -2335,10 +2334,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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" - ) # # Misc Legacy # diff --git a/source/languages/cpp/lib/preprocessor.rb b/source/languages/cpp/lib/preprocessor.rb index 60695ca0..8be57645 100644 --- a/source/languages/cpp/lib/preprocessor.rb +++ b/source/languages/cpp/lib/preprocessor.rb @@ -118,7 +118,10 @@ # # arguments # - + grammar[:macro_argument] = newPattern( + match: /##?/.then(identifier).lookAheadToAvoid(@standard_character), + tag_as: "variable.other.macro.argument" + ) # # *conditionals* # @@ -139,6 +142,7 @@ :single_line_macro, :multi_line_macro, :hacky_fix_for_stray_directive, + :macro_argument, ].map {|each| (namespace + each.to_s).to_sym } end end \ No newline at end of file diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index 1b65f2d9..6e6d77d7 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -339,6 +339,10 @@ } ] }, + "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" + }, "hacky_fix_for_stray_directive": { "match": "(? Date: Wed, 7 Aug 2019 18:43:42 -0500 Subject: [PATCH 17/25] change from cpp_grammar to just grammar --- source/languages/cpp/generate.rb | 336 +++++++++++++++---------------- 1 file changed, 168 insertions(+), 168 deletions(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 1d3e9dfb..7137850b 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,24 @@ # # Utils # - cpp_grammar[:inline_comment] = cpp_grammar.import("./lib/inline_comment") - std_space = cpp_grammar.import("./lib/std_space")[inline_comment, :inline_comment] + 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 = cpp_grammar.import("./lib/preprocessor")[std_space, identifier] + preprocessor = grammar.import("./lib/preprocessor")[std_space, identifier] leading_space = /\s*+/ - cpp_grammar[:semicolon] = @semicolon = newPattern( + grammar[:semicolon] = @semicolon = newPattern( match: /;/, tag_as: "punctuation.terminator.statement", ) - cpp_grammar[:comma] = newPattern( + grammar[:comma] = newPattern( 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 = newPattern( match: /\=/, tag_as: "keyword.operator.assignment", ) @@ -95,7 +95,7 @@ ] ) if repository_name - cpp_grammar[repository_name] = new_range + grammar[repository_name] = new_range end return new_range end @@ -161,7 +161,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # Contexts # # - cpp_grammar[:ever_present_context] = [ + grammar[:ever_present_context] = [ # preprocessor directives, which should be a part of every scope :preprocessor_rule_enabled, :preprocessor_rule_disabled, @@ -175,7 +175,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :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 @@ -213,7 +213,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, @@ -236,7 +236,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, @@ -273,19 +273,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, @@ -297,13 +297,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, @@ -315,7 +315,7 @@ 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( /\s*+/.then( @@ -328,7 +328,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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: /\/\//, @@ -338,7 +338,7 @@ 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] = newPattern( # # file banner # this matches emacs style file banners ex: /* = foo.c = */ @@ -386,11 +386,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] = newPattern( match: /\*\//, tag_as: "invalid.illegal.unexpected.punctuation.definition.comment.end" ) - cpp_grammar[:comments] = [ + grammar[:comments] = [ :emacs_file_banner, :block_comment, :line_comment, @@ -399,7 +399,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Numbers # - cpp_grammar[:number_literal] = numeric_constant(allow_user_defined_literals: true) + grammar[:number_literal] = numeric_constant(allow_user_defined_literals: true) # # Variable # @@ -414,7 +414,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Constants # - cpp_grammar[:language_constants] = newPattern( + grammar[:language_constants] = newPattern( match: variableBounds[@cpp_tokens.that(:isLiteral)], tag_as: "constant.language.$match" ) @@ -423,32 +423,32 @@ 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] = newPattern( 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] = newPattern( 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 = newPattern( 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 = newPattern( 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" @@ -456,37 +456,37 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) inline_builtin_storage_type = std_space.then( newPattern( - cpp_grammar[:primitive_types] + 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] = newPattern(match: /using/, tag_as: "keyword.other.using.directive").then(@spaces).lookAheadToAvoid(/namespace\b/) + grammar[:functional_specifiers_pre_parameters] = newPattern( 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] = newPattern( std_space.then( tag_as: "storage.modifier.specifier.functional.post-parameters.$match", match: variableBounds[ @cpp_tokens.that(:canAppearAfterParametersBeforeBody) ] ), ) - cpp_grammar[:storage_specifiers] = storage_specifier = newPattern( + grammar[:storage_specifiers] = storage_specifier = newPattern( 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] = newPattern( std_space.then( tag_as: "storage.type.modifier.access.control.$reference(access_specifier)", match: newPattern( @@ -500,32 +500,32 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ) ) - cpp_grammar[:exception_keywords] = newPattern( + grammar[:exception_keywords] = newPattern( std_space.then( match: variableBounds[ @cpp_tokens.that(:isExceptionRelated) ], tag_as: "keyword.control.exception.$match" ) ) - cpp_grammar[:typedef_keyword] = newPattern( + grammar[:typedef_keyword] = newPattern( 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 = newPattern( 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] = newPattern( 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] = newPattern( std_space.then( tag_as: "keyword.operator.wordlike", match: newPattern( @@ -549,7 +549,7 @@ 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 = newPattern( std_space.then( match: variableBounds[ @cpp_tokens.that(:isControlFlow) ], tag_as: "keyword.control.$match" @@ -564,7 +564,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Control flow # - cpp_grammar[:goto_statement] = newPattern( + grammar[:goto_statement] = newPattern( newPattern( match: variableBounds[/goto/], tag_as: "keyword.control.goto", @@ -573,7 +573,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "entity.name.label.call" ) ) - cpp_grammar[:label] = newPattern( + grammar[:label] = newPattern( std_space.then( tag_as: "entity.name.label", match: variableBounds[identifier], @@ -584,7 +584,7 @@ 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( std_space.then( @@ -599,7 +599,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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( std_space.then( @@ -614,7 +614,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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( std_space.then( @@ -629,7 +629,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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( @@ -700,10 +700,10 @@ 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( should_fully_match:["[[nodiscard]]","__attribute((packed))","__declspec(fastcall)","__attribute__((constructor(101)))"], @@ -751,19 +751,19 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) - cpp_grammar[:comma_in_template_argument] = newPattern( + grammar[:comma_in_template_argument] = newPattern( 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 = newPattern( 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( match: /::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", @@ -1018,7 +1018,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :string_context_c, :comma, :scope_resolution_inner_generated, - cpp_grammar[:template_call_range], + grammar[:template_call_range], newPattern( match: identifier, tag_as: "entity.name.type", @@ -1026,8 +1026,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ], ) # 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] = newPattern( 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;"], @@ -1057,7 +1057,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: array_brackets ).maybe(@spaces).then(@semicolon.or(/\n/)), ) - cpp_grammar[:typename] = newPattern( + grammar[:typename] = newPattern( should_fully_match: ["typename Alloc::select_on_container_copy_construction"], should_not_partial_match: ["this_typename_is_valid"], match: newPattern( @@ -1070,7 +1070,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 @@ -1082,7 +1082,7 @@ 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( @@ -1099,10 +1099,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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" @@ -1142,12 +1142,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( # 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"] @@ -1217,7 +1217,7 @@ 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( + grammar[:static_assert] = PatternRange.new( start_pattern: newPattern( std_space.then( match: variableBounds[/static_assert|_Static_assert/], @@ -1249,9 +1249,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( + grammar[:function_call] = PatternRange.new( start_pattern: newPattern( - cpp_grammar[:scope_resolution_function_call] + grammar[:scope_resolution_function_call] ).then( match: variable_name_without_bounds, tag_as: "entity.name.function.call" @@ -1273,7 +1273,7 @@ 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( qualified_type.then(std_space).then( @@ -1290,7 +1290,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :comma ] ) - cpp_grammar[:builtin_storage_type_initilizer] = PatternRange.new( + grammar[:builtin_storage_type_initilizer] = PatternRange.new( start_pattern: newPattern( inline_builtin_storage_type.then(std_space).then( match: /\(/, @@ -1379,7 +1379,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :evaluation_context ] ), - cpp_grammar[:comma], + grammar[:comma], ] ), # parameters @@ -1408,7 +1408,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"], @@ -1421,7 +1421,7 @@ 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( @@ -1485,7 +1485,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: body_includes: [ :function_body_context ], ) end - cpp_grammar[:destructor_inline] = destructor[ + grammar[:destructor_inline] = destructor[ newPattern( # find the begining of the line /^/.then(std_space).then(optional_calling_convention).zeroOrMoreOf( @@ -1499,7 +1499,7 @@ 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( @@ -1536,15 +1536,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] = newPattern( 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}", @@ -1553,7 +1553,7 @@ 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( match: /\?/, @@ -1563,10 +1563,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: match: /:/, tag_as: "keyword.operator.ternary" ), - includes: cpp_grammar[:evaluation_context] + includes: grammar[:evaluation_context] ) - cpp_grammar[:operators, overwrite: true] += [ + grammar[:operators, overwrite: true] += [ newPattern( match: /--/, tag_as: "keyword.operator.decrement" @@ -1612,7 +1612,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( @@ -1642,9 +1642,9 @@ 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"] - cpp_grammar[:typedef_function_pointer] = PatternRange.new( + 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: newPattern( match: variableBounds[/typedef/], tag_as: "keyword.other.typedef" @@ -1657,8 +1657,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # 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, @@ -1762,7 +1762,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, @@ -1906,14 +1906,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 = newPattern( 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), @@ -1932,7 +1932,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/, @@ -1941,7 +1941,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" @@ -1950,7 +1950,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), end_pattern: @semicolon, ) - cpp_grammar[:namespace_alias] = newPattern( + grammar[:namespace_alias] = newPattern( 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;"], @@ -1962,7 +1962,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( @@ -1970,7 +1970,7 @@ 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, @@ -1981,7 +1981,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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( @@ -2008,7 +2008,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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( + grammar[:lambdas] = lambdas = PatternRange.new( start_pattern: newPattern( 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 ] {" ], @@ -2028,9 +2028,9 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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 @@ -2088,7 +2088,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Classes, structs, unions, enums # - cpp_grammar[:enumerator_list] = newPattern( + grammar[:enumerator_list] = newPattern( tag_as: "meta.enum.definition", match: newPattern( newPattern( @@ -2121,7 +2121,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) # 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( @@ -2155,7 +2155,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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] = [ + grammar[:inheritance_context] = [ newPattern( match: /,/, tag_as: "punctuation.separator.delimiter.comma.inheritance" @@ -2238,12 +2238,12 @@ 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( @@ -2273,9 +2273,9 @@ 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( @@ -2296,11 +2296,11 @@ 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( @@ -2322,22 +2322,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"], ] # # Misc # - cpp_grammar[:assembly] = assembly_pattern() - cpp_grammar[:backslash_escapes] = backslash_escapes() + 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: { @@ -2360,15 +2360,15 @@ 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] = newPattern( match: /\b(?:export|mutable|typename|thread_local|register|restrict|static|volatile|inline)\b/, tag_as: "storage.modifier.$match" ) - cpp_grammar[:meta_preprocessor_diagnostic] = { + grammar[:meta_preprocessor_diagnostic] = { name: "meta.preprocessor.diagnostic", begin: "^\\s*((#)\\s*(error|warning))\\b\\s*", beginCaptures: { @@ -2436,7 +2436,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:meta_preprocessor_include] = newPattern( + grammar[:meta_preprocessor_include] = newPattern( should_fully_match: ["#include ", "#include \"my_header\"", "#include INC_HEADER","#include", "#include //comment"], match: @start_of_line.then(std_space).then( @@ -2476,7 +2476,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: )), tag_as: "meta.preprocessor.include" ) - cpp_grammar[:meta_preprocessor_line] = { + grammar[:meta_preprocessor_line] = { name: "meta.preprocessor", begin: "^\\s*((#)\\s*line)\\b", beginCaptures: { @@ -2500,7 +2500,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:meta_preprocessor_undef] = { + grammar[:meta_preprocessor_undef] = { name: "meta.preprocessor", begin: "^\\s*(?:((#)\\s*undef))\\b", beginCaptures: { @@ -2522,7 +2522,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:string_context] = [ + grammar[:string_context] = [ PatternRange.new( tag_as: "string.quoted.double", start_pattern: newPattern( @@ -2582,7 +2582,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), getRawStringPatterns() ] - cpp_grammar[:block] = PatternRange.new( + grammar[:block] = PatternRange.new( tag_as: "meta.block", start_pattern: newPattern( match: /{/, @@ -2594,7 +2594,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), includes: [:function_body_context] ) - cpp_grammar[:disabled] = { + grammar[:disabled] = { begin: "^\\s*#\\s*if(n?def)?\\b.*$", end: "^\\s*#\\s*endif\\b", patterns: [ @@ -2606,7 +2606,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:line_continuation_character] = { + grammar[:line_continuation_character] = { match: "(\\\\)\\n", captures: { "1" => { @@ -2614,7 +2614,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } } } - cpp_grammar[:parentheses] = PatternRange.new( + grammar[:parentheses] = PatternRange.new( tag_as: "meta.parens", start_pattern: newPattern( match: /\(/, @@ -2636,7 +2636,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :vararg_ellipses ] ) - cpp_grammar[:string_context_c] = [ + grammar[:string_context_c] = [ { begin: "\"", beginCaptures: { @@ -2684,7 +2684,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: "\\\\.", @@ -2705,11 +2705,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # } # } ] - cpp_grammar[:vararg_ellipses] = { + grammar[:vararg_ellipses] = { match: "(? { @@ -2777,7 +2777,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_conditional_block] = { + grammar[:preprocessor_rule_conditional_block] = { begin: "^\\s*((#)\\s*if(?:n?def)?\\b)", beginCaptures: { "0" => { @@ -2845,7 +2845,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_conditional_line_context] = [ + grammar[:preprocessor_rule_conditional_line_context] = [ { match: "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", name: "keyword.control.directive.conditional" @@ -2903,7 +2903,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] } ] - cpp_grammar[:preprocessor_rule_disabled] = { + grammar[:preprocessor_rule_disabled] = { begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", beginCaptures: { "0" => { @@ -2996,7 +2996,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_disabled_block] = { + grammar[:preprocessor_rule_disabled_block] = { begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", beginCaptures: { "0" => { @@ -3089,7 +3089,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_disabled_elif] = { + grammar[:preprocessor_rule_disabled_elif] = { begin: "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", beginCaptures: { "0" => { @@ -3132,7 +3132,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_enabled] = { + grammar[:preprocessor_rule_enabled] = { begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", beginCaptures: { "0" => { @@ -3233,7 +3233,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_enabled_block] = { + grammar[:preprocessor_rule_enabled_block] = { begin: "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", beginCaptures: { "0" => { @@ -3332,7 +3332,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] } - cpp_grammar[:preprocessor_rule_enabled_elif] = { + grammar[:preprocessor_rule_enabled_elif] = { begin: "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", beginCaptures: { "0" => { @@ -3419,7 +3419,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_enabled_elif_block] = { + grammar[:preprocessor_rule_enabled_elif_block] = { begin: "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", beginCaptures: { "0" => { @@ -3506,7 +3506,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_enabled_else] = { + grammar[:preprocessor_rule_enabled_else] = { begin: "^\\s*((#)\\s*else\\b)", beginCaptures: { "0" => { @@ -3526,7 +3526,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_enabled_else_block] = { + grammar[:preprocessor_rule_enabled_else_block] = { begin: "^\\s*((#)\\s*else\\b)", beginCaptures: { "0" => { @@ -3546,7 +3546,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: } ] } - cpp_grammar[:preprocessor_rule_define_line_context] = [ + grammar[:preprocessor_rule_define_line_context] = [ :vararg_ellipses, :macro_argument, { @@ -3635,7 +3635,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: }, :$initial_context ] - cpp_grammar[:preprocessor_rule_define_line_blocks_context] = [ + grammar[:preprocessor_rule_define_line_blocks_context] = [ { begin: "{", beginCaptures: { @@ -3662,7 +3662,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: include: "#preprocessor_rule_define_line_context" } ] - cpp_grammar[:preprocessor_rule_define_line_functions_context] = [ + grammar[:preprocessor_rule_define_line_functions_context] = [ :comments, :storage_types, :vararg_ellipses, @@ -3720,15 +3720,15 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # TODO: this is incomplete, all the root patterns are included, but their "includes" are not converted macro_context = [] - for each in cpp_grammar[:$initial_context] - if cpp_grammar[each].is_a?(PatternRange) - tag_version = cpp_grammar[each].to_tag(ignore_repository_entry: true).dup + for each in grammar[:$initial_context] + if grammar[each].is_a?(PatternRange) + tag_version = grammar[each].to_tag(ignore_repository_entry: true).dup if tag_version[:end] != nil tag_version[:end] = tag_version[:end].dup # if there's a non-escaped newline, then the range is over tag_version[:end] = "#{tag_version[:end]}|(? Date: Wed, 7 Aug 2019 20:38:24 -0500 Subject: [PATCH 18/25] everything in preprocessor except conditionals --- language_tags/cpp.txt | 6 +- source/languages/cpp/generate.rb | 160 +-- source/languages/cpp/lib/preprocessor.rb | 175 ++- syntaxes/cpp.tmLanguage.json | 1525 +++++++++++----------- syntaxes/cpp.tmLanguage.yaml | 357 ++--- test/fixtures/features/preprocessor.cpp | 17 + 6 files changed, 1165 insertions(+), 1075 deletions(-) diff --git a/language_tags/cpp.txt b/language_tags/cpp.txt index b8c87621..a16cb7d9 100644 --- a/language_tags/cpp.txt +++ b/language_tags/cpp.txt @@ -338,7 +338,7 @@ keyword.control.directive.$0.cpp keyword.control.directive.$7.cpp keyword.control.directive.conditional.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 @@ -461,8 +461,10 @@ meta.parens.cpp meta.preprocessor.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.static_assert.message.cpp meta.tail.class.cpp @@ -667,7 +669,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/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 7137850b..9a6106b5 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -45,7 +45,7 @@ # # Utils # - grammar[:inline_comment] = grammar.import("./lib/inline_comment") + 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) @@ -166,11 +166,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :preprocessor_rule_enabled, :preprocessor_rule_disabled, :preprocessor_rule_conditional, - :meta_preprocessor_diagnostic, - :meta_preprocessor_include, *preprocessor, - :meta_preprocessor_line, - :meta_preprocessor_undef, # comments :comments, :line_continuation_character, @@ -2368,160 +2364,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: match: /\b(?:export|mutable|typename|thread_local|register|restrict|static|volatile|inline)\b/, tag_as: "storage.modifier.$match" ) - grammar[:meta_preprocessor_diagnostic] = { - name: "meta.preprocessor.diagnostic", - begin: "^\\s*((#)\\s*(error|warning))\\b\\s*", - beginCaptures: { - "1" => { - 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" - ) - 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: "(?=(?://|/\\*))|(?(std_space, identifier) do + # specification source https://gcc.gnu.org/onlinedocs/cpp/ + # # helpers # @@ -14,7 +16,7 @@ ) non_escaped_newline = lookBehindToAvoid(/\\/).lookAheadFor(/\n/) # - # pragma + # #pragma # grammar[:pragma_mark] = Pattern.new( tag_as: "meta.preprocessor.pragma", @@ -38,6 +40,7 @@ ), end_pattern: non_escaped_newline, includes: [ + :comments, :string_context_c, Pattern.new( match: /[a-zA-Z_$][\w\-$]*/, @@ -47,20 +50,152 @@ :line_continuation_character, ] ) - # include - # line - # warning - # error - # undef - # - # define - # - grammar[:single_line_macro] = Pattern.new( - should_fully_match: ["#define EXTERN_C extern \"C\""], - match: /^/.then(std_space).then(/#\s*+define\b/).then(/.*[^\\]$/), - includes: [ :multi_line_macro ] + # + # #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" ) - grammar[:multi_line_macro] = PatternRange.new( + # + # #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( + tag_as: "entity.name.function.preprocessor", + match: wordBounds(identifier), + ) + ), + ) + # + # #define + # + grammar[:macro] = PatternRange.new( tag_as: "meta.preprocessor.macro", start_pattern: Pattern.new( # the directive @@ -111,14 +246,15 @@ ] ), # everything after the parameters - :macro_context + :macro_context, + :macro_argument, ] ) # # arguments # - grammar[:macro_argument] = newPattern( + grammar[:macro_argument] = Pattern.new( match: /##?/.then(identifier).lookAheadToAvoid(@standard_character), tag_as: "variable.other.macro.argument" ) @@ -139,8 +275,11 @@ [ :pragma_mark, :pragma, - :single_line_macro, - :multi_line_macro, + :include, + :line, + :diagnostic, + :undef, + :macro, :hacky_fix_for_stray_directive, :macro_argument, ].map {|each| (namespace + each.to_s).to_sym } diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index 6e6d77d7..aeca20ee 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -209,6 +209,9 @@ }, "end": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#\\s*+define\\b.*[^\\\\]$", + "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": { - "0": { + "1": { "patterns": [ { - "include": "#multi_line_macro" + "include": "#inline_comment" } ] }, - "1": { + "2": { + "name": "comment.block.cpp punctuation.definition.comment.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" } ] }, - "2": { + "12": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "3": { + "13": { "name": "comment.block.cpp" }, - "4": { + "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": "\\*\\/", @@ -259,14 +382,15 @@ } ] } - } + }, + "name": "meta.preprocessor.include.cpp" }, - "multi_line_macro": { - "name": "meta.preprocessor.macro.cpp", - "begin": "((?:^)((?:(?:(?>\\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}))*)", + "line": { + "name": "meta.preprocessor.line.cpp", + "begin": "((?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*line\\b)", "beginCaptures": { "1": { - "name": "keyword.control.directive.define.cpp" + "name": "keyword.control.directive.line.cpp" }, "2": { "patterns": [ @@ -295,86 +419,290 @@ }, "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)))(#)\\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": { + "name": "keyword.control.directive.define.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "6": { + "name": "punctuation.definition.directive.cpp" + }, + "7": { + "name": "entity.name.function.preprocessor.cpp" + } + }, + "end": "(?\\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" + "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": "," + } + ] } ] } - } + ] }, - "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)(?!:)", + "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.union.declare.cpp" + "name": "storage.type.struct.declare.cpp" }, "2": { "patterns": [ @@ -13243,7 +13392,7 @@ ] }, "6": { - "name": "entity.name.type.union.cpp" + "name": "entity.name.type.struct.cpp" }, "7": { "patterns": [ @@ -13393,11 +13542,11 @@ } } }, - "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)(?!:)", + "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.enum.declare.cpp" + "name": "storage.type.union.declare.cpp" }, "2": { "patterns": [ @@ -13425,7 +13574,7 @@ ] }, "6": { - "name": "entity.name.type.enum.cpp" + "name": "entity.name.type.union.cpp" }, "7": { "patterns": [ @@ -13575,11 +13724,11 @@ } } }, - "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)(?!:)", + "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.declare.cpp" + "name": "storage.type.enum.declare.cpp" }, "2": { "patterns": [ @@ -13607,7 +13756,7 @@ ] }, "6": { - "name": "entity.name.type.class.cpp" + "name": "entity.name.type.enum.cpp" }, "7": { "patterns": [ @@ -13757,27 +13906,11 @@ } } }, - "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)", + "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.struct.parameter.cpp" + "name": "storage.type.class.declare.cpp" }, "2": { "patterns": [ @@ -13805,34 +13938,9 @@ ] }, "6": { - "name": "entity.name.type.struct.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": "\\*", @@ -13875,20 +13983,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": "\\*\\/", @@ -13900,20 +14008,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": "\\*\\/", @@ -13925,20 +14033,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": "\\*\\/", @@ -13950,73 +14058,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": "\\*\\/", @@ -14030,11 +14088,27 @@ } } }, - "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)", + "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.enum.parameter.cpp" + "name": "storage.type.struct.parameter.cpp" }, "2": { "patterns": [ @@ -14062,7 +14136,7 @@ ] }, "6": { - "name": "entity.name.type.enum.parameter.cpp" + "name": "entity.name.type.struct.parameter.cpp" }, "7": { "patterns": [ @@ -14287,11 +14361,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)", + "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.union.parameter.cpp" + "name": "storage.type.enum.parameter.cpp" }, "2": { "patterns": [ @@ -14319,7 +14393,7 @@ ] }, "6": { - "name": "entity.name.type.union.parameter.cpp" + "name": "entity.name.type.enum.parameter.cpp" }, "7": { "patterns": [ @@ -14544,11 +14618,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)", + "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.class.parameter.cpp" + "name": "storage.type.union.parameter.cpp" }, "2": { "patterns": [ @@ -14576,7 +14650,7 @@ ] }, "6": { - "name": "entity.name.type.class.parameter.cpp" + "name": "entity.name.type.union.parameter.cpp" }, "7": { "patterns": [ @@ -14801,236 +14875,147 @@ } } }, - "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": { + "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.asm.cpp" + "name": "storage.type.class.parameter.cpp" }, "2": { - "name": "storage.modifier.cpp" + "patterns": [ + { + "include": "#inline_comment" + } + ] }, "3": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.assembly.cpp" - } - }, - "patterns": [ - { - "name": "string.quoted.double.cpp", - "contentName": "meta.embedded.assembly.cpp", - "begin": "(R?)(\")", - "beginCaptures": { - "1": { - "name": "meta.encoding.cpp" - }, - "2": { - "name": "punctuation.definition.string.begin.assembly.cpp" - } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.assembly.cpp" - } - }, + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { "patterns": [ { - "include": "source.asm" - }, - { - "include": "source.x86" - }, - { - "include": "source.x86_64" - }, - { - "include": "source.arm" - }, - { - "include": "#backslash_escapes" - }, - { - "include": "#string_escaped_char" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "match": "(?=not)possible" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp" - } - }, + "6": { + "name": "entity.name.type.class.parameter.cpp" + }, + "7": { "patterns": [ { - "include": "#evaluation_context" + "include": "#inline_comment" } ] }, - { - "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" + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.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)))){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": "\\*\\/", @@ -15042,35 +15027,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": "\\*\\/", @@ -15082,29 +15052,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": "\\*\\/", @@ -15116,23 +15080,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": "\\*\\/", @@ -15144,20 +15105,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": "\\*\\/", @@ -15169,55 +15130,153 @@ } ] } - }, - "name": "meta.preprocessor.include.cpp" + } + }, + "over_qualified_types": { + "patterns": [ + { + "include": "#parameter_struct" + }, + { + "include": "#parameter_enum" + }, + { + "include": "#parameter_union" + }, + { + "include": "#parameter_class" + } + ] }, - "meta_preprocessor_line": { - "name": "meta.preprocessor.cpp", - "begin": "^\\s*((#)\\s*line)\\b", + "assembly": { + "name": "meta.asm.cpp", + "begin": "(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)\\s*(\\()", "beginCaptures": { "1": { - "name": "keyword.control.directive.line.cpp" + "name": "storage.type.asm.cpp" }, "2": { - "name": "punctuation.definition.directive.cpp" + "name": "storage.modifier.cpp" + }, + "3": { + "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.assembly.cpp" } }, - "end": "(?=(?://|/\\*))|(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))#\\s*+define\\b.*[^\\\\]$" + 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: - '0': - patterns: - - include: "#multi_line_macro" '1': patterns: - include: "#inline_comment" @@ -130,7 +128,191 @@ repository: name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - multi_line_macro: + '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)))(#)\\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: @@ -173,6 +355,7 @@ repository: - match: "\\.\\.\\." name: punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp - include: "#macro_context" + - include: "#macro_argument" macro_argument: match: "##?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)" name: variable.other.macro.argument.cpp @@ -193,16 +376,15 @@ repository: - include: "#preprocessor_rule_enabled" - include: "#preprocessor_rule_disabled" - include: "#preprocessor_rule_conditional" - - include: "#meta_preprocessor_diagnostic" - - include: "#meta_preprocessor_include" - include: "#pragma_mark" - include: "#pragma" - - include: "#single_line_macro" - - include: "#multi_line_macro" + - include: "#include" + - include: "#line" + - include: "#diagnostic" + - include: "#undef" + - include: "#macro" - include: "#hacky_fix_for_stray_directive" - include: "#macro_argument" - - include: "#meta_preprocessor_line" - - include: "#meta_preprocessor_undef" - include: "#comments" - include: "#line_continuation_character" function_body_context: @@ -7741,157 +7923,6 @@ repository: misc_storage_modifiers: match: "\\b(?:export|mutable|typename|thread_local|register|restrict|static|volatile|inline)\\b" name: storage.modifier.$0.cpp - meta_preprocessor_diagnostic: - name: meta.preprocessor.diagnostic.cpp - begin: "^\\s*((#)\\s*(error|warning))\\b\\s*" - beginCaptures: - '1': - name: keyword.control.directive.diagnostic.$3.cpp - '2': - 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 - 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: "(?=(?://|/\\*))|(?:public std::true_type \ { + From 9b692e2e9a0f491ce0adf7b361f33eb0282adee5 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Wed, 7 Aug 2019 23:53:43 -0500 Subject: [PATCH 19/25] finish the new preprocessor --- language_tags/cpp.txt | 21 +- source/languages/cpp/generate.rb | 1013 -- source/languages/cpp/lib/preprocessor.rb | 111 +- source/textmate_tools.rb | 1 + syntaxes/cpp.tmLanguage.json | 1261 +-- syntaxes/cpp.tmLanguage.yaml | 682 +- test/specs/features/preprocessor.cpp.yaml | 273 +- test/specs/issues/030.cpp.yaml | 19 +- test/specs/issues/088.cpp.yaml | 23 +- test/specs/issues/299.cpp.yaml | 29 +- test/specs/issues/324.cpp.yaml | 34 +- test/specs/vscode/example.cpp.yaml | 184 +- test/specs/vscode/misc005.cpp.yaml | 10417 +++++++++++++------- test/specs/vscode/test-23630.cpp.yaml | 11 +- test/specs/vscode/test-23850.cpp.yaml | 11 +- test/specs/vscode/test.cc.yaml | 18 +- 16 files changed, 7909 insertions(+), 6199 deletions(-) diff --git a/language_tags/cpp.txt b/language_tags/cpp.txt index a16cb7d9..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 @@ -327,16 +319,16 @@ 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.$7.cpp keyword.control.directive.line.cpp @@ -423,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 @@ -431,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 @@ -458,7 +450,7 @@ 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 @@ -509,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 @@ -522,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 @@ -577,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 diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 9a6106b5..af18887f 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -163,9 +163,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # grammar[:ever_present_context] = [ # preprocessor directives, which should be a part of every scope - :preprocessor_rule_enabled, - :preprocessor_rule_disabled, - :preprocessor_rule_conditional, *preprocessor, # comments :comments, @@ -1992,13 +1989,6 @@ 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(/\(/)) - # # Lambdas # @@ -2551,1009 +2541,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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" - } - ] - } - ] - 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" - } - ] - } - ] - } - 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" - } - ] - } - ] - } - 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" - } - ] - } - ] - } - 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" - } - ] - } - ] - } - 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" - } - ] - } - ] - - } - 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" - } - ] - } - ] - } - 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" - } - ] - } - ] - } - 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" - } - ] - } - 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" - } - ] - } - 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 - ] - 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" - } - ] - 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 - ] diff --git a/source/languages/cpp/lib/preprocessor.rb b/source/languages/cpp/lib/preprocessor.rb index 637dc6cb..5205174e 100644 --- a/source/languages/cpp/lib/preprocessor.rb +++ b/source/languages/cpp/lib/preprocessor.rb @@ -15,6 +15,10 @@ ).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 # @@ -186,15 +190,20 @@ Pattern.new( tag_as: "keyword.control.directive.undef", match: directive_start.then(/undef\b/) - ).then(std_space).then( - tag_as: "entity.name.function.preprocessor", - match: wordBounds(identifier), - ) + ).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( @@ -205,10 +214,7 @@ /define\b/ ), # the name of the directive - ).maybe(@spaces).then( - match: identifier, - tag_as: "entity.name.function.preprocessor", - ) + ).maybe(@spaces).then(macro_name) ), end_pattern: non_escaped_newline, includes: [ @@ -261,16 +267,83 @@ # # *conditionals* # - # if - # ifdef - # ifndef - # elif - # else - # endif - grammar[:hacky_fix_for_stray_directive] = hacky_fix_for_stray_directive = Pattern.new( - match: wordBounds(/#(?:endif|else|elif)/), - tag_as: "keyword.control.directive.$match" + # 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, @@ -279,8 +352,10 @@ :line, :diagnostic, :undef, + :preprocessor_conditional_range, + :single_line_macro, :macro, - :hacky_fix_for_stray_directive, + :preprocessor_conditional_standalone, :macro_argument, ].map {|each| (namespace + each.to_s).to_sym } end diff --git a/source/textmate_tools.rb b/source/textmate_tools.rb index 24dcb500..8d3a2d46 100644 --- a/source/textmate_tools.rb +++ b/source/textmate_tools.rb @@ -483,6 +483,7 @@ def []=(*args) 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 diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index aeca20ee..567d0a46 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -131,6 +131,10 @@ } } }, + "macro_name": { + "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*pragma\\s+mark)\\s+(.*)", "captures": { @@ -592,9 +596,49 @@ }, "name": "meta.preprocessor.undef.cpp" }, + "single_line_macro": { + "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}))*)", + "begin": "((?:^)((?:(?:(?>\\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*((?=+!]+|\\(\\)|\\[\\]))\\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)))(?=\\()))", diff --git a/syntaxes/cpp.tmLanguage.yaml b/syntaxes/cpp.tmLanguage.yaml index 0f958de7..91cf734b 100644 --- a/syntaxes/cpp.tmLanguage.yaml +++ b/syntaxes/cpp.tmLanguage.yaml @@ -60,6 +60,9 @@ repository: 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: @@ -312,9 +315,29 @@ repository: '11': name: entity.name.function.preprocessor.cpp name: meta.preprocessor.undef.cpp + single_line_macro: + 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}))*)" + begin: "((?:^)((?:(?:(?>\\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*((?=+!]+|\(\)|\[\]))\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)))(?=\\()))" diff --git a/test/specs/features/preprocessor.cpp.yaml b/test/specs/features/preprocessor.cpp.yaml index 1046123b..7b06466e 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 @@ -189,15 +415,13 @@ - source: \ scopes: - constant.character.escape.line-continuation +- source: '{' + scopes: + - punctuation.section.block.begin.bracket.curly.struct scopesEnd: - meta.preprocessor.macro - meta.block.struct - meta.head.struct -- source: '{' - scopesBegin: - - meta.block - scopes: - - punctuation.section.block.begin.bracket.curly - source: '#' scopesBegin: - meta.preprocessor.pragma @@ -271,15 +495,19 @@ - source: \ scopes: - constant.character.escape.line-continuation - scopesEnd: - - meta.preprocessor.macro -- source: ' template' -- source: < +- source: template scopesBegin: - - keyword.operator.comparison + - meta.template.definition + scopes: + - storage.type.template +- source: < + scopes: + - punctuation.section.angle-brackets.start.template.definition - source: '>' + scopes: + - punctuation.section.angle-brackets.end.template.definition scopesEnd: - - keyword.operator.comparison + - meta.template.definition - source: \ scopes: - constant.character.escape.line-continuation @@ -346,11 +574,10 @@ scopes: - punctuation.section.block.end.bracket.curly.struct scopesEnd: + - meta.block.struct - meta.body.struct - source: '#' scopesBegin: - - meta.tail.struct - - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -372,8 +599,6 @@ - source: \ scopes: - constant.character.escape.line-continuation - scopesEnd: - - meta.preprocessor.macro - source: IsPointDef scopes: - entity.name.function.call @@ -384,23 +609,25 @@ - source: ) scopes: - punctuation.section.arguments.end.bracket.round.function.call - scopesEnd: - - meta.tail.struct - source: ; scopes: - punctuation.terminator.statement - scopesEnd: - - meta.block.struct - source: \ scopes: - constant.character.escape.line-continuation -- source: ' template' -- source: < +- source: template scopesBegin: - - keyword.operator.comparison + - meta.template.definition + scopes: + - storage.type.template +- source: < + scopes: + - punctuation.section.angle-brackets.start.template.definition - source: '>' + scopes: + - punctuation.section.angle-brackets.end.template.definition scopesEnd: - - keyword.operator.comparison + - meta.template.definition - source: \ scopes: - constant.character.escape.line-continuation diff --git a/test/specs/issues/030.cpp.yaml b/test/specs/issues/030.cpp.yaml index f192d689..db8c9849 100644 --- a/test/specs/issues/030.cpp.yaml +++ b/test/specs/issues/030.cpp.yaml @@ -57,8 +57,6 @@ - source: \ scopes: - constant.character.escape.line-continuation - scopesEnd: - - meta.preprocessor.macro - source: template scopesBegin: - meta.template.definition @@ -138,11 +136,10 @@ scopes: - punctuation.section.block.end.bracket.curly.struct scopesEnd: + - meta.block.struct - meta.body.struct - source: '#' scopesBegin: - - meta.tail.struct - - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -164,8 +161,6 @@ - source: \ scopes: - constant.character.escape.line-continuation - scopesEnd: - - meta.preprocessor.macro - source: IsPointDef scopes: - entity.name.function.call @@ -176,13 +171,9 @@ - source: ) scopes: - punctuation.section.arguments.end.bracket.round.function.call - scopesEnd: - - meta.tail.struct - source: ; scopes: - punctuation.terminator.statement - scopesEnd: - - meta.block.struct - source: \ scopes: - constant.character.escape.line-continuation @@ -262,7 +253,6 @@ - meta.block.struct - source: '#' scopesBegin: - - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -284,8 +274,6 @@ - source: \ scopes: - constant.character.escape.line-continuation - scopesEnd: - - meta.preprocessor.macro - source: IsPointDef scopes: - entity.name.function.call @@ -378,7 +366,6 @@ - meta.block.struct - source: '#' scopesBegin: - - meta.preprocessor.macro - keyword.control.directive.define scopes: - punctuation.definition.directive @@ -391,8 +378,6 @@ - source: \ scopes: - constant.character.escape.line-continuation - scopesEnd: - - meta.preprocessor.macro - source: template scopes: - storage.type.template @@ -564,6 +549,8 @@ - source: '>' scopes: - punctuation.section.angle-brackets.end.template.definition + scopesEnd: + - meta.preprocessor.macro - source: namespace scopesBegin: - meta.block.namespace 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/299.cpp.yaml b/test/specs/issues/299.cpp.yaml index 014ed891..ff73f7d2 100644 --- a/test/specs/issues/299.cpp.yaml +++ b/test/specs/issues/299.cpp.yaml @@ -31,32 +31,28 @@ - meta.enum.definition - 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: COND scopes: + - meta.conditional.preprocessor - entity.name.function.preprocessor - scopesEnd: - - meta.preprocessor - source: ' TWO_AND_HALF' - source: ',' scopes: - punctuation.separator.delimiter.comma - 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: THREE scopes: - meta.enum.definition @@ -69,18 +65,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 @@ -93,15 +87,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 8dab0871..ecf52c8d 100644 --- a/test/specs/issues/324.cpp.yaml +++ b/test/specs/issues/324.cpp.yaml @@ -46,8 +46,6 @@ - source: \ scopes: - constant.character.escape.line-continuation - scopesEnd: - - meta.preprocessor.macro - source: do scopes: - keyword.control.do @@ -59,6 +57,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.block - source: if scopes: - keyword.control.if @@ -81,6 +81,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.block - source: if scopes: - keyword.control.if @@ -103,6 +105,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.block - source: g_string_append_printf scopes: - entity.name.function.call @@ -152,11 +156,7 @@ - source: \ scopes: - constant.character.escape.line-continuation -- source: '}' - scopes: - - punctuation.section.block.end.bracket.curly - scopesEnd: - - meta.block +- source: "\t\t\t}" - source: else scopes: - keyword.control.else @@ -168,6 +168,8 @@ - source: \ scopes: - constant.character.escape.line-continuation + scopesEnd: + - meta.block - source: "\t\t\t\tampersand " - source: = scopes: @@ -227,27 +229,15 @@ - source: \ scopes: - constant.character.escape.line-continuation -- source: '}' - scopes: - - punctuation.section.block.end.bracket.curly - scopesEnd: - - meta.block +- source: "\t\t\t} " - source: \ scopes: - constant.character.escape.line-continuation -- source: '}' - scopes: - - punctuation.section.block.end.bracket.curly - scopesEnd: - - meta.block +- source: "\t\t} " - source: \ scopes: - constant.character.escape.line-continuation -- source: '}' - scopes: - - punctuation.section.block.end.bracket.curly - scopesEnd: - - meta.block +- source: "\t}" - source: while scopes: - keyword.control.while 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 From 9d8427e20d590d2a702ea53b17a7f3e1b31a7dbf Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Thu, 8 Aug 2019 17:47:16 -0500 Subject: [PATCH 20/25] replace maybe(spaces) with std_space to fix --- source/languages/cpp/generate.rb | 25 +- syntaxes/cpp.tmLanguage.json | 5254 +++++++++++++++++++++++------- syntaxes/cpp.tmLanguage.yaml | 2844 ++++++++++++---- 3 files changed, 6278 insertions(+), 1845 deletions(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index af18887f..1bb5af78 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -1420,9 +1420,9 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ).then( match: newPattern( newPattern( - match: variableBounds[identifier], - reference: "class_name", - dont_back_track?: true + match: variableBounds[identifier], + reference: "class_name", + dont_back_track?: true ).then(std_space).then( /::/ ).then(std_space).matchResultOf( @@ -2175,7 +2175,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: match: variableBounds[ /#{name}/ ], tag_as: "storage.type.$match", ).then( - @spaces.or( + std_space.or( inline_attribute ).or( lookAheadFor(/{/) @@ -2183,16 +2183,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) @@ -2200,13 +2200,13 @@ 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 + match: std_space.maybe(/,/).then( + std_space ).maybe( @cpp_tokens.that(:isAccessSpecifier) - ).maybe(@spaces).oneOrMoreOf( - maybe(@spaces).maybe(/,/).maybe( - @spaces + ).then(std_space).oneOrMoreOf( + std_space.maybe(/,/).then( + std_space ).lookAheadToAvoid( @cpp_tokens.that(:isAccessSpecifier) ).then(qualified_type.without_numbered_capture_groups) @@ -2567,7 +2567,6 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: end end macro_context.push(:macro_argument) - grammar[:macro_context] = macro_context # # Save diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index 567d0a46..c63783fe 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -12031,7 +12031,7 @@ }, "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -12040,6 +12040,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" @@ -12049,20 +12074,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": "\\*\\/", @@ -12074,23 +12099,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": "\\*\\/", @@ -12102,7 +12127,7 @@ } ] }, - "14": { + "18": { "patterns": [ { "include": "#attributes_context" @@ -12112,127 +12137,161 @@ } ] }, - "15": { - "name": "entity.name.type.$3.cpp" + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - "16": { - "name": "storage.type.modifier.final.cpp" + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "21": { + "name": "comment.block.cpp" }, - "18": { + "22": { "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.class.cpp", - "begin": "\\G ?", - "end": "((?:\\{|<%|\\?\\?<|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" - } - }, + "23": { + "name": "entity.name.type.$3.cpp" + }, + "24": { "patterns": [ { - "include": "#ever_present_context" - }, + "include": "#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "patterns": [ { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#template_call_range" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "name": "meta.body.class.cpp", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.class.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": [ { - "include": "#function_pointer" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#static_assert" - }, + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "33": { + "patterns": [ { - "include": "#constructor_inline" - }, + "include": "#inline_comment" + } + ] + }, + "34": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "35": { + "name": "comment.block.cpp" + }, + "36": { + "patterns": [ { - "include": "#destructor_inline" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "$self" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "name": "meta.tail.class.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "37": { + "name": "punctuation.separator.colon.inheritance.cpp" + }, + "38": { "patterns": [ { - "include": "$self" + "include": "#inheritance_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<:.])))+)*))?))", - "beginCaptures": { - "1": { - "name": "meta.head.struct.cpp" }, - "3": { - "name": "storage.type.$3.cpp" + "39": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - "4": { + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "43": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "44": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "45": { "name": "comment.block.cpp" }, - "8": { + "46": { "patterns": [ { "match": "\\*\\/", @@ -12244,23 +12303,20 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - "10": { + "47": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "48": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "49": { "name": "comment.block.cpp" }, - "13": { + "50": { "patterns": [ { "match": "\\*\\/", @@ -12272,29 +12328,53 @@ } ] }, - "14": { + "51": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" + "52": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "53": { + "name": "comment.block.cpp" }, - "18": { + "54": { "patterns": [ { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "55": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "57": { + "name": "comment.block.cpp" + }, + "58": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] } @@ -12310,12 +12390,12 @@ }, "patterns": [ { - "name": "meta.head.struct.cpp", + "name": "meta.head.class.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", "endCaptures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + "name": "punctuation.section.block.begin.bracket.curly.class.cpp" } }, "patterns": [ @@ -12331,12 +12411,12 @@ ] }, { - "name": "meta.body.struct.cpp", + "name": "meta.body.class.cpp", "begin": "(?<=\\{|<%|\\?\\?<)", "end": "(\\}|%>|\\?\\?>)", "endCaptures": { "1": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" + "name": "punctuation.section.block.end.bracket.curly.class.cpp" } }, "patterns": [ @@ -12358,7 +12438,7 @@ ] }, { - "name": "meta.tail.struct.cpp", + "name": "meta.tail.class.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -12369,17 +12449,42 @@ } ] }, - "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<:.])))+)*))?))", + "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" + "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" @@ -12389,20 +12494,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": "\\*\\/", @@ -12414,23 +12519,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": "\\*\\/", @@ -12442,7 +12547,7 @@ } ] }, - "14": { + "18": { "patterns": [ { "include": "#attributes_context" @@ -12452,114 +12557,101 @@ } ] }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" - }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" - }, - "18": { + "19": { "patterns": [ { - "include": "#inheritance_context" + "include": "#inline_comment" } ] - } - }, - "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" - } - }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { "patterns": [ { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#template_call_range" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "name": "meta.body.union.cpp", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, + "23": { + "name": "entity.name.type.$3.cpp" + }, + "24": { "patterns": [ { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, + "include": "#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "patterns": [ { - "include": "#constructor_inline" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#destructor_inline" - }, + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "28": { + "name": "storage.type.modifier.final.cpp" + }, + "29": { + "patterns": [ { - "include": "$self" + "include": "#inline_comment" } ] }, - { - "name": "meta.tail.union.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "30": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "31": { + "name": "comment.block.cpp" + }, + "32": { "patterns": [ { - "include": "$self" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] - } - ] - }, - "extern_block": { - "name": "meta.block.extern.cpp", - "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(extern)(?=\\s*\\\"))", - "beginCaptures": { - "1": { - "name": "meta.head.extern.cpp" }, - "2": { + "33": { "patterns": [ { "include": "#inline_comment" } ] }, - "3": { + "34": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "35": { "name": "comment.block.cpp" }, - "5": { + "36": { "patterns": [ { "match": "\\*\\/", @@ -12571,544 +12663,1702 @@ } ] }, - "6": { - "name": "storage.type.extern.cpp" - } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" + "37": { + "name": "punctuation.separator.colon.inheritance.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" - } - }, + "38": { "patterns": [ { - "include": "$self" + "include": "#inheritance_context" } ] }, - { - "name": "meta.body.extern.cpp", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.extern.cpp" - } - }, + "39": { "patterns": [ { - "include": "$self" + "include": "#inline_comment" } ] }, - { - "name": "meta.tail.extern.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { "patterns": [ { - "include": "$self" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] }, - { - "include": "$self" + "43": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "45": { + "name": "comment.block.cpp" + }, + "46": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.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": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "57": { + "name": "comment.block.cpp" + }, + "58": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] } - ] - }, - "typedef_class": { - "begin": "((?|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", + "endCaptures": { "1": { - "name": "keyword.other.typedef.cpp" + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" } }, - "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<:.])))+)*))?))", - "beginCaptures": { + "name": "meta.head.struct.cpp", + "begin": "\\G ?", + "end": "((?:\\{|<%|\\?\\?<|(?=;)))", + "endCaptures": { "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" + "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + } + }, + "patterns": [ + { + "include": "#ever_present_context" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + { + "include": "#inheritance_context" }, - "18": { - "patterns": [ - { - "include": "#inheritance_context" - } - ] + { + "include": "#template_call_range" } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", + ] + }, + { + "name": "meta.body.struct.cpp", + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "(\\}|%>|\\?\\?>)", "endCaptures": { "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" + "name": "punctuation.section.block.end.bracket.curly.struct.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" - } - ] + "include": "#function_pointer" }, { - "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" - } - ] + "include": "#static_assert" }, { - "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": "," - } - ] + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "name": "meta.tail.struct.cpp", + "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", + "patterns": [ + { + "include": "$self" } ] } ] }, - "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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": "keyword.other.typedef.cpp" - } - }, - "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<:.])))+)*))?))", - "beginCaptures": { - "1": { - "name": "meta.head.struct.cpp" - }, - "3": { - "name": "storage.type.$3.cpp" + "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" }, - "4": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#attributes_context" }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "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" }, - "7": { + { + "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" }, - "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": { + { + "match": "\\*", "name": "comment.block.cpp" + } + ] + }, + "18": { + "patterns": [ + { + "include": "#attributes_context" }, - "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" - } - ] + { + "include": "#number_literal" } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, - "2": { - "name": "punctuation.terminator.statement.cpp" + { + "match": "\\*", + "name": "comment.block.cpp" } - }, + ] + }, + "23": { + "name": "entity.name.type.$3.cpp" + }, + "24": { "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" - } - ] + "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" }, { - "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" - } - ] + "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" }, { - "name": "meta.tail.struct.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ + "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" + } + ] + }, + "39": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "43": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "45": { + "name": "comment.block.cpp" + }, + "46": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.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": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "57": { + "name": "comment.block.cpp" + }, + "58": { + "patterns": [ + { + "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.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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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": "#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" + } + ] + }, + "39": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "43": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "45": { + "name": "comment.block.cpp" + }, + "46": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.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": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "57": { + "name": "comment.block.cpp" + }, + "58": { + "patterns": [ + { + "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.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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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": "#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" + } + ] + }, + "39": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "43": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "45": { + "name": "comment.block.cpp" + }, + "46": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.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": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "57": { + "name": "comment.block.cpp" + }, + "58": { + "patterns": [ + { + "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" + } + }, + "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)))(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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -13263,7 +14513,32 @@ "3": { "name": "storage.type.$3.cpp" }, - "4": { + "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" @@ -13273,20 +14548,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": "\\*\\/", @@ -13298,23 +14573,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": "\\*\\/", @@ -13326,7 +14601,7 @@ } ] }, - "14": { + "18": { "patterns": [ { "include": "#attributes_context" @@ -13336,21 +14611,246 @@ } ] }, - "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" } ] + }, + "39": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "43": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "45": { + "name": "comment.block.cpp" + }, + "46": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.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": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "57": { + "name": "comment.block.cpp" + }, + "58": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", @@ -17881,15 +19381,40 @@ "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" + "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" @@ -17899,20 +19424,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": "\\*\\/", @@ -17924,23 +19449,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": "\\*\\/", @@ -17952,7 +19477,7 @@ } ] }, - "14": { + "18": { "patterns": [ { "include": "#attributes_context" @@ -17962,19 +19487,244 @@ } ] }, - "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": { - "name": "storage.type.modifier.final.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" + } + ] + }, + "39": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "43": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "45": { + "name": "comment.block.cpp" + }, + "46": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.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": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "57": { + "name": "comment.block.cpp" }, - "18": { + "58": { "patterns": [ { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] } @@ -18169,57 +19919,286 @@ } }, { - "match": "," + "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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": "#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" + } + ] + }, + "39": { + "patterns": [ + { + "include": "#inline_comment" } ] - } - ] - } - ] - }, - "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" + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "41": { + "name": "comment.block.cpp" + }, + "42": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "43": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "44": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "45": { "name": "comment.block.cpp" }, - "8": { + "46": { "patterns": [ { "match": "\\*\\/", @@ -18231,23 +20210,20 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - "10": { + "47": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "48": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "49": { "name": "comment.block.cpp" }, - "13": { + "50": { "patterns": [ { "match": "\\*\\/", @@ -18259,29 +20235,53 @@ } ] }, - "14": { + "51": { "patterns": [ { - "include": "#attributes_context" + "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" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" + "55": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - "16": { - "name": "storage.type.modifier.final.cpp" + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "57": { + "name": "comment.block.cpp" }, - "18": { + "58": { "patterns": [ { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] } @@ -18476,57 +20476,226 @@ } }, { - "match": "," + "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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": "#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" } ] - } - ] - } - ] - }, - "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" + "28": { + "name": "storage.type.modifier.final.cpp" }, - "4": { + "29": { "patterns": [ { - "include": "#attributes_context" + "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" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "33": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "34": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "35": { "name": "comment.block.cpp" }, - "8": { + "36": { "patterns": [ { "match": "\\*\\/", @@ -18538,23 +20707,30 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + "37": { + "name": "punctuation.separator.colon.inheritance.cpp" }, - "10": { + "38": { + "patterns": [ + { + "include": "#inheritance_context" + } + ] + }, + "39": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "40": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "41": { "name": "comment.block.cpp" }, - "13": { + "42": { "patterns": [ { "match": "\\*\\/", @@ -18566,29 +20742,103 @@ } ] }, - "14": { + "43": { "patterns": [ { - "include": "#attributes_context" + "include": "#inline_comment" + } + ] + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "45": { + "name": "comment.block.cpp" + }, + "46": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" + "47": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - "16": { - "name": "storage.type.modifier.final.cpp" + "48": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "49": { + "name": "comment.block.cpp" }, - "18": { + "50": { "patterns": [ { - "include": "#inheritance_context" + "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": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "57": { + "name": "comment.block.cpp" + }, + "58": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] } @@ -19006,188 +21256,837 @@ "name": "invalid.illegal.reference-type.cpp" }, { - "match": "\\&", - "name": "storage.modifier.reference.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" } ] }, - "29": { + "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" } ] }, - "30": { - "name": "comment.block.cpp punctuation.definition.comment.begin.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" + } + ] + } + }, + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + } + ] + }, + "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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": "#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" + } + ] + }, + "39": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, - "31": { + { + "match": "\\*", "name": "comment.block.cpp" + } + ] + }, + "43": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "45": { + "name": "comment.block.cpp" + }, + "46": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, - "32": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\*", + "name": "comment.block.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" }, - "33": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "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" }, - "34": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "55": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "57": { + "name": "comment.block.cpp" + }, + "58": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, - "35": { + { + "match": "\\*", "name": "comment.block.cpp" + } + ] + } + }, + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.class.cpp" + } + }, + "patterns": [ + { + "include": "#function_pointer" }, - "38": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + { + "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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": "#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" }, - "39": { + { + "match": "\\*", "name": "comment.block.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#attributes_context" }, - "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" - } - ] + { + "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" }, - "46": { - "name": "punctuation.definition.end.bracket.square.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" }, - "47": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "18": { + "patterns": [ + { + "include": "#attributes_context" }, - "48": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" + { + "include": "#number_literal" } - }, - "end": "(\\))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=[{=,);]|\\n)(?!\\()", - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + { + "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" }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.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" }, - "4": { + { + "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" }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] + { + "match": "\\*", + "name": "comment.block.cpp" + } + ] + }, + "37": { + "name": "punctuation.separator.colon.inheritance.cpp" + }, + "38": { + "patterns": [ + { + "include": "#inheritance_context" } - }, + ] + }, + "39": { "patterns": [ { - "include": "#function_parameter_context" + "include": "#inline_comment" } ] - } - ] - }, - "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" + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "41": { + "name": "comment.block.cpp" + }, + "42": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "43": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "44": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "45": { "name": "comment.block.cpp" }, - "8": { + "46": { "patterns": [ { "match": "\\*\\/", @@ -19199,23 +22098,20 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - "10": { + "47": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "48": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "49": { "name": "comment.block.cpp" }, - "13": { + "50": { "patterns": [ { "match": "\\*\\/", @@ -19227,29 +22123,53 @@ } ] }, - "14": { + "51": { "patterns": [ { - "include": "#attributes_context" + "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" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" + "55": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - "16": { - "name": "storage.type.modifier.final.cpp" + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "57": { + "name": "comment.block.cpp" }, - "18": { + "58": { "patterns": [ { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] } @@ -19265,12 +22185,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": [ @@ -19286,12 +22206,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": [ @@ -19313,7 +22233,7 @@ ] }, { - "name": "meta.tail.class.cpp", + "name": "meta.tail.struct.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -19324,12 +22244,12 @@ } ] }, - "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" + "name": "meta.head.union.cpp" }, "3": { "name": "storage.type.$3.cpp" @@ -19337,27 +22257,171 @@ "4": { "patterns": [ { - "include": "#attributes_context" + "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" }, { - "include": "#number_literal" + "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": "\\*\\/", @@ -19369,23 +22433,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": "\\*\\/", @@ -19397,137 +22458,80 @@ } ] }, - "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*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "41": { + "name": "comment.block.cpp" + }, + "42": { "patterns": [ { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "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]*(?=;)", + "43": { "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" + "44": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "4": { + "45": { + "name": "comment.block.cpp" + }, + "46": { "patterns": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "5": { + "47": { "patterns": [ { "include": "#inline_comment" } ] }, - "6": { + "48": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "7": { + "49": { "name": "comment.block.cpp" }, - "8": { + "50": { "patterns": [ { "match": "\\*\\/", @@ -19539,23 +22543,20 @@ } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - "10": { + "51": { "patterns": [ { "include": "#inline_comment" } ] }, - "11": { + "52": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "12": { + "53": { "name": "comment.block.cpp" }, - "13": { + "54": { "patterns": [ { "match": "\\*\\/", @@ -19567,29 +22568,28 @@ } ] }, - "14": { + "55": { "patterns": [ { - "include": "#attributes_context" - }, - { - "include": "#number_literal" + "include": "#inline_comment" } ] }, - "15": { - "name": "entity.name.type.$3.cpp" - }, - "16": { - "name": "storage.type.modifier.final.cpp" + "56": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "punctuation.separator.colon.inheritance.cpp" + "57": { + "name": "comment.block.cpp" }, - "18": { + "58": { "patterns": [ { - "include": "#inheritance_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + { + "match": "\\*", + "name": "comment.block.cpp" } ] } @@ -20387,100 +23387,6 @@ "include": "#function_parameter_context" } ] - }, - "macro_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#macro_safe_constructor_root" - }, - { - "include": "#macro_safe_destructor_root" - }, - { - "include": "#macro_safe_function_definition" - }, - { - "include": "#macro_safe_operator_overload" - }, - { - "include": "#macro_safe_using_namespace" - }, - { - "include": "#type_alias" - }, - { - "include": "#using_name" - }, - { - "include": "#namespace_alias" - }, - { - "include": "#macro_safe_namespace_block" - }, - { - "include": "#macro_safe_extern_block" - }, - { - "include": "#macro_safe_typedef_class" - }, - { - "include": "#macro_safe_typedef_struct" - }, - { - "include": "#macro_safe_typedef_union" - }, - { - "include": "#macro_safe_typedef_function_pointer" - }, - { - "include": "#typedef_keyword" - }, - { - "include": "#standard_declares" - }, - { - "include": "#macro_safe_class_block" - }, - { - "include": "#macro_safe_struct_block" - }, - { - "include": "#macro_safe_union_block" - }, - { - "include": "#macro_safe_enum_block" - }, - { - "include": "#template_isolated_definition" - }, - { - "include": "#macro_safe_template_definition" - }, - { - "include": "#access_control_keywords" - }, - { - "include": "#macro_safe_block" - }, - { - "include": "#macro_safe_static_assert" - }, - { - "include": "#macro_safe_assembly" - }, - { - "include": "#macro_safe_function_pointer" - }, - { - "include": "#evaluation_context" - }, - { - "include": "#macro_argument" - } - ] } }, "name": "C++" diff --git a/syntaxes/cpp.tmLanguage.yaml b/syntaxes/cpp.tmLanguage.yaml index 91cf734b..2a3903e0 100644 --- a/syntaxes/cpp.tmLanguage.yaml +++ b/syntaxes/cpp.tmLanguage.yaml @@ -6231,57 +6231,187 @@ repository: - 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<:.])))+)*))?))" + 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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: "#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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -6318,144 +6448,187 @@ 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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': + '5': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '6': name: comment.block.cpp - '8': + '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': - name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp - '10': 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: "\\*\\/" 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: "#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.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)))(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': + - 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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -6463,174 +6636,521 @@ repository: '2': name: punctuation.terminator.statement.cpp patterns: - - name: meta.head.union.cpp + - name: meta.head.struct.cpp begin: "\\G ?" end: "((?:\\{|<%|\\?\\?<|(?=;)))" endCaptures: '1': - name: punctuation.section.block.begin.bracket.curly.union.cpp + name: punctuation.section.block.begin.bracket.curly.struct.cpp patterns: - include: "#ever_present_context" - include: "#inheritance_context" - include: "#template_call_range" - - name: meta.body.union.cpp + - name: meta.body.struct.cpp begin: "(?<=\\{|<%|\\?\\?<)" end: "(\\}|%>|\\?\\?>)" endCaptures: '1': - name: punctuation.section.block.end.bracket.curly.union.cpp + 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.union.cpp + - name: meta.tail.struct.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*\")) + 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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.extern.cpp - '2': + name: meta.head.union.cpp + '3': + name: storage.type.$3.cpp + '4': patterns: - include: "#inline_comment" - '3': + '5': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '4': + '6': name: comment.block.cpp - '5': + '7': 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)))(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*(;)|(;))|(?=[;>\\[\\]=]))" - 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 + '8': 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 + - include: "#attributes_context" + - include: "#number_literal" + '9': 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]*(?=;)" + - 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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - 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.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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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: "#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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - 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.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)))(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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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: "#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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -6864,7 +7514,7 @@ 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -6872,49 +7522,179 @@ 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" + '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" + '39': patterns: - include: "#inline_comment" - '6': + '40': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '41': name: comment.block.cpp - '8': + '42': 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': + '43': patterns: - include: "#inline_comment" - '11': + '44': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '45': name: comment.block.cpp - '13': + '46': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '47': 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': + - include: "#inline_comment" + '48': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '49': + name: comment.block.cpp + '50': patterns: - - include: "#inheritance_context" + - 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: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -9281,67 +10061,485 @@ repository: begin: "(?<=\\}|%>|\\?\\?>)[\\s\\n]*" end: "[\\s\\n]*(?=;)" 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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: "#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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - 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.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: "," + 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<:.])))+)*))?))" + - 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 + 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 + '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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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: + - include: "#inline_comment" + '56': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '57': name: comment.block.cpp - '13': + '58': 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*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -9349,29 +10547,29 @@ repository: '2': name: punctuation.terminator.statement.cpp 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: - include: "#ever_present_context" - include: "#inheritance_context" - include: "#template_call_range" - - 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: - include: "#function_pointer" - include: "#static_assert" - include: "#constructor_inline" - include: "#destructor_inline" - include: "$self" - - name: meta.tail.class.cpp + - name: meta.tail.struct.cpp begin: "(?<=\\}|%>|\\?\\?>)[\\s\\n]*" end: "[\\s\\n]*(?=;)" patterns: @@ -9441,223 +10639,195 @@ repository: '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<:.])))+)*))?))" + - 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 + 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*(;)|(;))|(?=[;>\\[\\]=]))" - 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: "," - 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': + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': patterns: - - include: "#attributes_context" - - include: "#number_literal" - '5': + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '47': patterns: - include: "#inline_comment" - '6': + '48': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '49': name: comment.block.cpp - '8': + '50': 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': + '51': patterns: - include: "#inline_comment" - '11': + '52': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '53': name: comment.block.cpp - '13': + '54': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '55': 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': + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': patterns: - - include: "#inheritance_context" + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -9889,114 +11059,461 @@ repository: 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': + '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" + 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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: "#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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" 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: "(?:(?:(?<=\\}|%>|\\?\\?>)\\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<:.])))+)*))?))" + - include: "#ever_present_context" + - include: "#inheritance_context" + - include: "#template_call_range" + - name: meta.body.class.cpp + begin: "(?<=\\{|<%|\\?\\?<)" + end: "(\\}|%>|\\?\\?>)" + endCaptures: + '1': + name: punctuation.section.block.end.bracket.curly.class.cpp + patterns: + - include: "#function_pointer" + - include: "#static_assert" + - include: "#constructor_inline" + - include: "#destructor_inline" + - include: "$self" + - name: meta.tail.class.cpp + begin: "(?<=\\}|%>|\\?\\?>)[\\s\\n]*" + end: "[\\s\\n]*(?=;)" + patterns: + - include: "$self" + macro_safe_struct_block: + name: meta.block.struct.cpp + begin: "((((?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 + 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 + '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" + '39': + patterns: + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': + patterns: + - include: "#inline_comment" + '44': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '45': + name: comment.block.cpp + '46': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.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 - '7': + '53': name: comment.block.cpp - '8': + '54': 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': + '55': patterns: - include: "#inline_comment" - '11': + '56': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '57': name: comment.block.cpp - '13': + '58': 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*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)" endCaptures: '1': - name: punctuation.section.block.end.bracket.curly.class.cpp + 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.class.cpp + - name: meta.tail.struct.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)))(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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 + 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*(;)|(;))|(?=[;>\\[\\]=]))|(?|\\?\\?>)" - endCaptures: - '1': - name: punctuation.section.block.end.bracket.curly.struct.cpp - patterns: - - include: "#function_pointer" - - include: "#static_assert" - - include: "#constructor_inline" - - include: "#destructor_inline" - - include: "$self" - - name: meta.tail.struct.cpp - begin: "(?<=\\}|%>|\\?\\?>)[\\s\\n]*" - end: "[\\s\\n]*(?=;)" - patterns: - - include: "$self" - macro_safe_union_block: - name: meta.block.union.cpp - begin: "((((?\\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': + '39': patterns: - - include: "#attributes_context" - - include: "#number_literal" - '5': + - include: "#inline_comment" + '40': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '41': + name: comment.block.cpp + '42': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '43': patterns: - include: "#inline_comment" - '6': + '44': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '7': + '45': name: comment.block.cpp - '8': + '46': 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': + '47': patterns: - include: "#inline_comment" - '11': + '48': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '12': + '49': name: comment.block.cpp - '13': + '50': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '14': + '51': 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': + - include: "#inline_comment" + '52': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '53': + name: comment.block.cpp + '54': patterns: - - include: "#inheritance_context" + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp + '55': + patterns: + - include: "#inline_comment" + '56': + name: comment.block.cpp punctuation.definition.comment.begin.cpp + '57': + name: comment.block.cpp + '58': + patterns: + - match: "\\*\\/" + name: comment.block.cpp punctuation.definition.comment.end.cpp + - match: "\\*" + name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(? Date: Thu, 8 Aug 2019 18:07:26 -0500 Subject: [PATCH 21/25] _fix the inline comment bug --- source/languages/cpp/generate.rb | 52 +- syntaxes/cpp.tmLanguage.json | 1791 ++++-------------------------- syntaxes/cpp.tmLanguage.yaml | 943 ++-------------- test/specs/issues/121.cpp.yaml | 5 +- test/specs/issues/166.cpp.yaml | 10 +- 5 files changed, 302 insertions(+), 2499 deletions(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 1bb5af78..1d97f1ad 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -162,9 +162,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # grammar[:ever_present_context] = [ - # preprocessor directives, which should be a part of every scope *preprocessor, - # comments :comments, :line_continuation_character, ] @@ -2142,6 +2140,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: can_come_before_a_inherited_class = @cpp_tokens.representationsThat(:isInheritanceSpecifier) + [ ',', ':', ] can_come_before_a_inherited_class_regex = /#{can_come_before_a_inherited_class.join('|')}/ grammar[:inheritance_context] = [ + :ever_present_context, newPattern( match: /,/, tag_as: "punctuation.separator.delimiter.comma.inheritance" @@ -2156,7 +2155,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), lookBehindFor(can_come_before_a_inherited_class_regex).maybe(@spaces).lookAheadToAvoid(@cpp_tokens.that(:isAccessSpecifier).or(/virtual/)).then( qualified_type - ) + ), ] final_modifier = newPattern( match: /final/, @@ -2200,17 +2199,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: std_space.maybe(/,/).then( - std_space - ).maybe( - @cpp_tokens.that(:isAccessSpecifier) - ).then(std_space).oneOrMoreOf( - std_space.maybe(/,/).then( - std_space - ).lookAheadToAvoid( - @cpp_tokens.that(:isAccessSpecifier) - ).then(qualified_type.without_numbered_capture_groups) - ), + match: /[^{]/, + dont_back_track?: true, includes: [ :inheritance_context ] ) ), @@ -2426,26 +2416,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), includes: [:function_body_context] ) - grammar[:disabled] = { - begin: "^\\s*#\\s*if(n?def)?\\b.*$", - end: "^\\s*#\\s*endif\\b", - patterns: [ - { - include: "#disabled" - }, - { - include: "#pragma_mark" - } - ] - } - grammar[:line_continuation_character] = { - match: "(\\\\)\\n", - captures: { - "1" => { - name: "constant.character.escape.line-continuation" - } - } - } + 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( @@ -2537,11 +2511,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # } # } ] - grammar[:vararg_ellipses] = { - 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -12252,131 +12255,6 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", @@ -12451,7 +12329,7 @@ }, "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -12672,131 +12550,6 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", @@ -12871,7 +12624,7 @@ }, "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -13092,131 +12845,6 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", @@ -13391,7 +13019,7 @@ "patterns": [ { "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -13612,131 +13240,6 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", @@ -13948,7 +13451,7 @@ "patterns": [ { "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -14169,137 +13672,12 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" + } + }, + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" @@ -14505,7 +13883,7 @@ "patterns": [ { "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -14726,131 +14104,6 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", @@ -17131,25 +16384,9 @@ } ] }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "end": "^\\s*#\\s*endif\\b", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma_mark" - } - ] - }, "line_continuation_character": { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.cpp" - } - } + "match": "\\\\\\n", + "name": "constant.character.escape.line-continuation.cpp" }, "parentheses": { "name": "meta.parens.cpp", @@ -19381,7 +18618,7 @@ "patterns": [ { "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -19602,152 +18839,27 @@ "include": "#inheritance_context" } ] + } + }, + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "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.class.cpp", - "begin": "\\G ?", - "end": "((?:\\{|<%|\\?\\?<|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.class.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" @@ -19938,7 +19050,7 @@ "patterns": [ { "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -20159,131 +19271,6 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", @@ -20495,7 +19482,7 @@ "patterns": [ { "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -20716,137 +19703,12 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" + } + }, + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" @@ -21406,7 +20268,7 @@ }, "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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -21627,131 +20489,6 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -21910,158 +20647,7 @@ "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" - } - ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { + "17": { "patterns": [ { "match": "\\*\\/", @@ -22073,20 +20659,30 @@ } ] }, - "43": { + "18": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "19": { "patterns": [ { "include": "#inline_comment" } ] }, - "44": { + "20": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "45": { + "21": { "name": "comment.block.cpp" }, - "46": { + "22": { "patterns": [ { "match": "\\*\\/", @@ -22098,20 +20694,23 @@ } ] }, - "47": { + "23": { + "name": "entity.name.type.$3.cpp" + }, + "24": { "patterns": [ { "include": "#inline_comment" } ] }, - "48": { + "25": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "49": { + "26": { "name": "comment.block.cpp" }, - "50": { + "27": { "patterns": [ { "match": "\\*\\/", @@ -22123,20 +20722,23 @@ } ] }, - "51": { + "28": { + "name": "storage.type.modifier.final.cpp" + }, + "29": { "patterns": [ { "include": "#inline_comment" } ] }, - "52": { + "30": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "53": { + "31": { "name": "comment.block.cpp" }, - "54": { + "32": { "patterns": [ { "match": "\\*\\/", @@ -22148,20 +20750,20 @@ } ] }, - "55": { + "33": { "patterns": [ { "include": "#inline_comment" } ] }, - "56": { + "34": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "57": { + "35": { "name": "comment.block.cpp" }, - "58": { + "36": { "patterns": [ { "match": "\\*\\/", @@ -22172,6 +20774,16 @@ "name": "comment.block.cpp" } ] + }, + "37": { + "name": "punctuation.separator.colon.inheritance.cpp" + }, + "38": { + "patterns": [ + { + "include": "#inheritance_context" + } + ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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" @@ -22467,131 +21079,6 @@ "include": "#inheritance_context" } ] - }, - "39": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "41": { - "name": "comment.block.cpp" - }, - "42": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "43": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "45": { - "name": "comment.block.cpp" - }, - "46": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.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": [ - { - "include": "#inline_comment" - } - ] - }, - "56": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "57": { - "name": "comment.block.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] } }, "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -6347,71 +6348,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -6448,7 +6384,7 @@ repository: - 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -6564,71 +6500,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -6665,7 +6536,7 @@ repository: - 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -6781,71 +6652,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -6938,7 +6744,7 @@ repository: end: "(?<=;)" patterns: - 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -7054,71 +6860,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -7226,7 +6967,7 @@ repository: end: "(?<=;)" patterns: - 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -7316,97 +7057,32 @@ repository: - 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" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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': + '31': name: comment.block.cpp - '54': + '32': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '55': + '33': patterns: - include: "#inline_comment" - '56': + '34': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': + '35': name: comment.block.cpp - '58': + '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': @@ -7514,7 +7190,7 @@ repository: end: "(?<=;)" patterns: - 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -7630,71 +7306,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -8894,17 +8505,9 @@ repository: name: punctuation.section.block.end.bracket.curly.cpp patterns: - include: "#function_body_context" - disabled: - begin: "^\\s*#\\s*if(n?def)?\\b.*$" - end: "^\\s*#\\s*endif\\b" - patterns: - - include: "#disabled" - - include: "#pragma_mark" line_continuation_character: - match: "(\\\\)\\n" - captures: - '1': - name: constant.character.escape.line-continuation.cpp + match: "\\\\\\n" + name: constant.character.escape.line-continuation.cpp parentheses: name: meta.parens.cpp begin: "(\\()" @@ -10071,7 +9674,7 @@ repository: end: "(?<=;)|(?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -10187,71 +9790,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -10359,7 +9897,7 @@ repository: end: "(?<=;)|(?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -10475,71 +10013,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))" endCaptures: '1': @@ -10647,7 +10120,7 @@ repository: end: "(?<=;)|(?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -10677,157 +10150,92 @@ repository: 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': + '12': 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" - '39': + '13': + name: entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp + '14': patterns: - include: "#inline_comment" - '40': + '15': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': + '16': name: comment.block.cpp - '42': + '17': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '43': + '18': + patterns: + - include: "#attributes_context" + - include: "#number_literal" + '19': patterns: - include: "#inline_comment" - '44': + '20': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': + '21': name: comment.block.cpp - '46': + '22': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '47': + '23': + name: entity.name.type.$3.cpp + '24': patterns: - include: "#inline_comment" - '48': + '25': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '49': + '26': name: comment.block.cpp - '50': + '27': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '51': + '28': + name: storage.type.modifier.final.cpp + '29': patterns: - include: "#inline_comment" - '52': + '30': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '53': + '31': name: comment.block.cpp - '54': + '32': patterns: - match: "\\*\\/" name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp - '55': + '33': patterns: - include: "#inline_comment" - '56': + '34': name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': + '35': name: comment.block.cpp - '58': + '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': @@ -11116,7 +10524,7 @@ repository: - include: "#function_parameter_context" 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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -11232,71 +10640,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -11449,71 +10792,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?\\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)))(:)((?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:private|protected|public)?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))),?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:private|protected|public))(?:\\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*+(?:(?:(?(?:(?>[^<>]*)?)+)>)\\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 @@ -11666,71 +10944,6 @@ repository: '38': patterns: - include: "#inheritance_context" - '39': - patterns: - - include: "#inline_comment" - '40': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '41': - name: comment.block.cpp - '42': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp - '43': - patterns: - - include: "#inline_comment" - '44': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '45': - name: comment.block.cpp - '46': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.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: - - include: "#inline_comment" - '56': - name: comment.block.cpp punctuation.definition.comment.begin.cpp - '57': - name: comment.block.cpp - '58': - patterns: - - match: "\\*\\/" - name: comment.block.cpp punctuation.definition.comment.end.cpp - - match: "\\*" - name: comment.block.cpp end: "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(? Date: Thu, 8 Aug 2019 18:09:46 -0500 Subject: [PATCH 22/25] rename newPattern to Pattern.new --- source/languages/cpp/generate.rb | 452 +++++++++++++++---------------- 1 file changed, 226 insertions(+), 226 deletions(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index 1d97f1ad..6e0de667 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -53,20 +53,20 @@ identifier = first_character.then(zeroOrMoreOf(subsequent_character)) preprocessor = grammar.import("./lib/preprocessor")[std_space, identifier] leading_space = /\s*+/ - grammar[:semicolon] = @semicolon = newPattern( + grammar[:semicolon] = @semicolon = Pattern.new( match: /;/, tag_as: "punctuation.terminator.statement", ) - grammar[:comma] = newPattern( + grammar[:comma] = Pattern.new( match: /,/, tag_as: "punctuation.separator.delimiter.comma" ) possible_begining_of_statement = /^|\G/.or(lookBehindFor(/;|\}/)) - 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( @@ -79,14 +79,14 @@ 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}" ), @@ -103,8 +103,8 @@ 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 @@ -117,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, ), @@ -129,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 ), @@ -139,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 ), @@ -149,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 @@ -308,13 +308,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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" ) @@ -329,18 +329,18 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: end_pattern: lookBehindFor(/\n/).lookBehindToAvoid(/\\\n/), includes: [ :line_continuation_character ] ) - 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( @@ -359,7 +359,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( @@ -377,7 +377,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "meta.toc-list.banner.block", ) ) - grammar[:invalid_comment_end] = newPattern( + grammar[:invalid_comment_end] = Pattern.new( match: /\*\//, tag_as: "invalid.illegal.unexpected.punctuation.definition.comment.end" ) @@ -405,7 +405,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Constants # - grammar[:language_constants] = newPattern( + grammar[:language_constants] = Pattern.new( match: variableBounds[@cpp_tokens.that(:isLiteral)], tag_as: "constant.language.$match" ) @@ -414,13 +414,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # Built-In Types # look_behind_for_type = lookBehindFor(/\w |\*\/|[&*>\]\)]|\.\.\./).maybe(@spaces) - 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" ) ) - 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" @@ -433,20 +433,20 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_content_as: "arguments.decltype", tag_parenthese_as: "decltype" ] - 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/ ], ) ) - 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( + Pattern.new( grammar[:primitive_types] ).or( grammar[:non_primitive_types] @@ -460,28 +460,28 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Keywords and Keyword-ish things # - grammar[:using_name] = newPattern(match: /using/, tag_as: "keyword.other.using.directive").then(@spaces).lookAheadToAvoid(/namespace\b/) - 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" ) - 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: variableBounds[ @cpp_tokens.that(:canAppearAfterParametersBeforeBody) ] ), ) - 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" ) ) - 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( @@ -491,38 +491,38 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ) ) - grammar[:exception_keywords] = newPattern( + grammar[:exception_keywords] = Pattern.new( std_space.then( match: variableBounds[ @cpp_tokens.that(:isExceptionRelated) ], tag_as: "keyword.control.exception.$match" ) ) - grammar[:typedef_keyword] = newPattern( + grammar[:typedef_keyword] = Pattern.new( std_space.then( match: variableBounds[ /typedef/ ], tag_as: "keyword.other.$match" ) ) - 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 - 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" ) ) - 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( @@ -540,13 +540,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) ) ) - 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 @@ -555,8 +555,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Control flow # - grammar[:goto_statement] = newPattern( - newPattern( + grammar[:goto_statement] = Pattern.new( + Pattern.new( match: variableBounds[/goto/], tag_as: "keyword.control.goto", ).then(std_space).then( @@ -564,7 +564,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "entity.name.label.call" ) ) - grammar[:label] = newPattern( + grammar[:label] = Pattern.new( std_space.then( tag_as: "entity.name.label", match: variableBounds[identifier], @@ -577,13 +577,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) 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" ), @@ -592,13 +592,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) 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" ), @@ -607,13 +607,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) 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' ), @@ -623,7 +623,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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" @@ -647,11 +647,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", ), @@ -666,17 +666,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, ] ) @@ -696,11 +696,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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) @@ -720,16 +720,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, @@ -742,13 +742,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) - 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 - 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), @@ -756,11 +756,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) 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" ), @@ -774,7 +774,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) - grammar[:template_isolated_definition] = newPattern( + grammar[:template_isolated_definition] = Pattern.new( match: template_start.then( match: zeroOrMoreOf(/./), tag_as: "meta.template.definition", @@ -787,7 +787,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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" ), @@ -796,11 +796,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" ), @@ -809,7 +809,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :template_definition_context, ] ) - 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", @@ -821,18 +821,18 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "keyword.operator.assignment" ) ) - 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", ) @@ -843,7 +843,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( @@ -854,7 +854,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( @@ -866,7 +866,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, @@ -877,14 +877,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 ), @@ -892,11 +892,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 ] ) @@ -905,7 +905,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tagged_scope_operator = scope_operator.reTag( append: tag_extension[1..-1] ) - 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*+/), @@ -914,7 +914,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: hidden_grammar_name, ] ) - grammar[hidden_grammar_name] = newPattern( + grammar[hidden_grammar_name] = Pattern.new( should_fully_match: ["name::", "name::name2::name3::"], match: grammar[grammar_name].then( match: variable_name_without_bounds, @@ -939,14 +939,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) @@ -954,23 +954,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, ), @@ -979,7 +979,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)) - 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", @@ -998,7 +998,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" ), @@ -1010,7 +1010,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :comma, :scope_resolution_inner_generated, grammar[:template_call_range], - newPattern( + Pattern.new( match: identifier, tag_as: "entity.name.type", ), @@ -1018,11 +1018,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) # TODO: create a :type that includes inline function-pointer types and array types grammar[:simple_type] = qualified_type.maybe(ref_deref[]) - grammar[:type_alias] = newPattern( + 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( @@ -1048,10 +1048,10 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: array_brackets ).maybe(@spaces).then(@semicolon.or(/\n/)), ) - 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) @@ -1076,16 +1076,16 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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) @@ -1106,11 +1106,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" ), @@ -1136,7 +1136,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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(grammar[:simple_type].then(std_space)).then(optional_calling_convention).then( std_space @@ -1151,7 +1151,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 @@ -1168,7 +1168,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( @@ -1184,11 +1184,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" ), @@ -1209,7 +1209,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) # static assert is special as it can be outside of normal places function calls can be grammar[:static_assert] = PatternRange.new( - start_pattern: newPattern( + start_pattern: Pattern.new( std_space.then( match: variableBounds[/static_assert|_Static_assert/], tag_as: "keyword.other.static_assert", @@ -1218,14 +1218,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(/\"/))), @@ -1241,7 +1241,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) # a full match example of function call would be: aNameSpace::subClassFunctionName<5>( grammar[:function_call] = PatternRange.new( - start_pattern: newPattern( + start_pattern: Pattern.new( grammar[:scope_resolution_function_call] ).then( match: variable_name_without_bounds, @@ -1254,7 +1254,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" ), @@ -1266,13 +1266,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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", ), @@ -1282,13 +1282,13 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] ) grammar[:builtin_storage_type_initilizer] = PatternRange.new( - start_pattern: newPattern( + 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" ), @@ -1300,7 +1300,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( @@ -1321,7 +1321,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" ), @@ -1330,8 +1330,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: :ever_present_context, 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( @@ -1341,7 +1341,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", ), @@ -1352,8 +1352,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( @@ -1361,7 +1361,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", ), @@ -1376,11 +1376,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # 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" ), @@ -1416,8 +1416,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: leading_space.then(optional_calling_convention).then( inline_scope_resolution[".constructor"] ).then( - match: newPattern( - newPattern( + match: Pattern.new( + Pattern.new( match: variableBounds[identifier], reference: "class_name", dont_back_track?: true @@ -1429,17 +1429,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" ) @@ -1457,11 +1457,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" ), @@ -1477,7 +1477,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) end grammar[:destructor_inline] = destructor[ - newPattern( + Pattern.new( # find the begining of the line /^/.then(std_space).then(optional_calling_convention).zeroOrMoreOf( match: @cpp_tokens.that(:isFunctionSpecifier).then(std_space), @@ -1494,8 +1494,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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 @@ -1507,17 +1507,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" ) @@ -1528,7 +1528,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # Operators # grammar[:operators] = [] - grammar[:wordlike_operators] = newPattern( + 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", ) @@ -1546,11 +1546,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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" ), @@ -1558,40 +1558,40 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) grammar[:operators, overwrite: true] += [ - newPattern( + 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" ), @@ -1624,7 +1624,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), @@ -1636,7 +1636,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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: newPattern( + start_pattern: Pattern.new( match: variableBounds[/typedef/], tag_as: "keyword.other.typedef" ).maybe(@spaces).lookAheadFor(/.*\(\*\s*/.then(identifier).then(/\s*\)/)), @@ -1663,11 +1663,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) @@ -1676,7 +1676,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( @@ -1692,7 +1692,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" ), @@ -1705,7 +1705,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 @@ -1732,18 +1732,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" ), @@ -1763,11 +1763,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) @@ -1776,7 +1776,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( @@ -1791,7 +1791,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" ), @@ -1804,7 +1804,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 @@ -1831,18 +1831,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" ), @@ -1857,7 +1857,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( @@ -1869,7 +1869,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, ) @@ -1879,7 +1879,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( @@ -1897,7 +1897,7 @@ 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('|')}/ - 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" @@ -1913,7 +1913,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" ), @@ -1941,7 +1941,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), end_pattern: @semicolon, ) - 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;"], @@ -1965,7 +1965,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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" ), @@ -1976,7 +1976,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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( @@ -1993,7 +1993,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: array_of_invalid_function_names = @cpp_tokens.representationsThat(:canAppearBeforeLambdaCapture) non_variable_name = /#{array_of_invalid_function_names.map { |each| '\W'+each+'|^'+each } .join('|')}/ grammar[:lambdas] = lambdas = PatternRange.new( - start_pattern: newPattern( + 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" ], @@ -2007,7 +2007,7 @@ 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( @@ -2024,30 +2024,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( @@ -2057,11 +2057,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", ), @@ -2072,16 +2072,16 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: # # Classes, structs, unions, enums # - grammar[:enumerator_list] = newPattern( + grammar[:enumerator_list] = Pattern.new( tag_as: "meta.enum.definition", - match: newPattern( - newPattern( + match: Pattern.new( + Pattern.new( match: variable_name, tag_as: "variable.other.enummember", ).maybe(@spaces).maybe( inline_attribute ).maybe(@spaces).maybe( - newPattern( + Pattern.new( match: /\=/, tag_as: "keyword.operator.assignment", ).maybe(@spaces).then( @@ -2089,8 +2089,8 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: includes: [ :evaluation_context ] ).maybe(@spaces) ).then( - newPattern( - match: newPattern(/[,;]/.lookAheadToAvoid(/'/)).or(/\n/), + Pattern.new( + match: Pattern.new(/[,;]/.lookAheadToAvoid(/'/)).or(/\n/), includes: [ :comma, :semicolon, @@ -2108,7 +2108,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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( @@ -2141,15 +2141,15 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: can_come_before_a_inherited_class_regex = /#{can_come_before_a_inherited_class.join('|')}/ grammar[:inheritance_context] = [ :ever_present_context, - newPattern( + 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", ), @@ -2157,7 +2157,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: qualified_type ), ] - final_modifier = newPattern( + final_modifier = Pattern.new( match: /final/, tag_as: "storage.type.modifier.final", ) @@ -2165,11 +2165,11 @@ 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", @@ -2222,7 +2222,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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" @@ -2233,7 +2233,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}/]), @@ -2254,9 +2254,9 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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( @@ -2279,9 +2279,9 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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( @@ -2340,34 +2340,34 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: name: "storage.modifier.array.bracket.square", match: /#{lookBehindToAvoid(/delete/)}\\[\\s*\\]/ } - 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" ) grammar[:string_context] = [ PatternRange.new( tag_as: "string.quoted.double", - start_pattern: newPattern( + start_pattern: Pattern.new( tag_as: "punctuation.definition.string.begin", match: maybe(match: /u|u8|U|L/, tag_as: "meta.encoding").then(/"/), ), - end_pattern: newPattern( + end_pattern: Pattern.new( tag_as: "punctuation.definition.string.end", match: /"/, ), includes: [ # universal characters \u00AF, \U0001234F - newPattern( + Pattern.new( match: universal_character, tag_as: "constant.character.escape", ), # normal escapes \r, \n, \t - newPattern( + Pattern.new( match: /\\['"?\\abfnrtv]/, tag_as: "constant.character.escape", ), # octal escapes \017 - newPattern( + Pattern.new( match: /\\/.then( match: /[0-7]/, at_least: 1.times, @@ -2376,7 +2376,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: tag_as: "constant.character.escape", ), # hex escapes - newPattern( + Pattern.new( match: /\\x/.then( match: /[0-9a-fA-F]/, how_many_times?: 2.times, @@ -2388,12 +2388,12 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ), PatternRange.new( tag_as: "string.quoted.single", - start_pattern: newPattern( + start_pattern: Pattern.new( tag_as: "punctuation.definition.string.begin", match: lookBehindToAvoid(/[0-9A-Fa-f]/).maybe(match: /u|u8|U|L/, tag_as: "meta.encoding") .then(/'/), ), - end_pattern: newPattern( + end_pattern: Pattern.new( tag_as: "punctuation.definition.string.end", match: /'/, ), @@ -2406,11 +2406,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ] grammar[:block] = PatternRange.new( tag_as: "meta.block", - start_pattern: newPattern( + start_pattern: Pattern.new( match: /{/, tag_as: "punctuation.section.block.begin.bracket.curly" ), - end_pattern: newPattern( + end_pattern: Pattern.new( match: /}|(?=\s*#\s*(?:elif|else|endif)\b)/, tag_as: "punctuation.section.block.end.bracket.curly" ), @@ -2422,11 +2422,11 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: ) 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" ), @@ -2434,7 +2434,7 @@ 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" ), From 0f0324e858c9a67c44d0cc26343a656824686015 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Thu, 8 Aug 2019 18:29:44 -0500 Subject: [PATCH 23/25] generate --- language_tags/cpp.txt | 1 + syntaxes/cpp.embedded.latex.tmLanguage.json | 2 +- syntaxes/cpp.tmLanguage.json | 3530 +++++++------------ syntaxes/cpp.tmLanguage.yaml | 454 +-- test/specs/issues/299.cpp.yaml | 26 - 5 files changed, 1420 insertions(+), 2593 deletions(-) diff --git a/language_tags/cpp.txt b/language_tags/cpp.txt index c2e731cf..a9bef526 100644 --- a/language_tags/cpp.txt +++ b/language_tags/cpp.txt @@ -309,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 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)(?!\\()|(?>>>>>> master }, "9": { "name": "punctuation.definition.string.begin.cpp" @@ -376,7 +371,6 @@ "29": { "name": "comment.block.cpp" }, -<<<<<<< HEAD "30": { "patterns": [ { @@ -405,24 +399,12 @@ "include": "#inline_comment" } ] -======= - { - "include": "#qualifiers_and_specifiers_post_parameters" ->>>>>>> master }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, -<<<<<<< HEAD "4": { "name": "comment.block.cpp" -======= - { - "include": "#storage_types" - }, - { - "include": "#misc_storage_modifiers" ->>>>>>> master }, "5": { "patterns": [ @@ -971,9 +953,6 @@ { "include": "#typedef_union" }, - { - "include": "#typedef_function_pointer" - }, { "include": "#typedef_keyword" }, @@ -1044,37 +1023,8 @@ { "include": "#predefined_macros" }, -<<<<<<< HEAD { "include": "#operators" -======= - "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)))((?>>>>>> master }, { "include": "#memory_operators" @@ -1100,15 +1050,15 @@ { "include": "#builtin_storage_type_initilizer" }, - { - "include": "#storage_types" - }, { "include": "#qualifiers_and_specifiers_post_parameters" }, { "include": "#functional_specifiers_pre_parameters" }, + { + "include": "#storage_types" + }, { "include": "#misc_storage_modifiers" }, @@ -1834,7 +1784,7 @@ "name": "storage.modifier.specifier.functional.pre-parameters.$0.cpp" }, "qualifiers_and_specifiers_post_parameters": { - "match": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp" - } - }, - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "name": "meta.tail.function.definition.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "operator_overload": { - "name": "meta.function.definition.special.operator-overload.cpp", - "begin": "((?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:(?:(?:short|signed|unsigned|long)|(?:class|struct|union|enum))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(((::)?(?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?(::))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?!(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|NULL|true|false|nullptr|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|final|override|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized|audit|axiom|transaction_safe|transaction_safe_dynamic)\\b)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?(?![\\w<:.]))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(operator)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?:((?-mix:(?!\\b(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|if|elif|else|endif|ifdef|ifndef|define|undef|include|line|error|warning|pragma|_Pragma|defined|__has_include|__has_cpp_attribute|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(?:(?:((?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|new|new\\[\\]|delete|delete\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,))|((?\\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": "(?>>>>>> master "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, @@ -6343,9 +6132,6 @@ } ] }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, { "include": "$self" } @@ -7347,197 +7133,53 @@ "12": { "patterns": [ { -<<<<<<< HEAD "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" - } - } - } - ] - }, - { - "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": "((?>>>>>> master - } - ] - }, - "13": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "15": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "17": { - "name": "entity.name.scope-resolution.cpp" - }, - "18": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "20": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "21": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "23": { - "name": "comment.block.cpp" - }, - "24": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + ] + }, + "13": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "15": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "17": { + "name": "entity.name.scope-resolution.cpp" + }, + "18": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "20": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "21": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "23": { + "name": "comment.block.cpp" + }, + "24": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", @@ -8331,9 +7973,6 @@ }, "end": "(?=\\{)", "patterns": [ - { - "include": "#ever_present_context" - }, { "contentName": "meta.parameter.initialization.cpp", "begin": "((?(?:(?>[^<>]*)\\g<3>?)+)>)\\s*)?(\\()", @@ -8360,9 +7999,6 @@ } }, "patterns": [ - { - "include": "#ever_present_context" - }, { "include": "#evaluation_context" } @@ -8386,9 +8022,6 @@ } }, "patterns": [ - { - "include": "#ever_present_context" - }, { "include": "#evaluation_context" } @@ -10073,78 +9706,66 @@ } ] }, - "parameter_or_maybe_value": { - "name": "meta.parameter.cpp", - "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\w)", + "typedef_function_pointer": { + "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)))(?=,|\\)|=)", - "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": [ { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { + "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": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "30": { "patterns": [ { "include": "#inline_comment" } ] }, - "31": { + "30": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "32": { + "31": { "name": "comment.block.cpp" }, - "33": { + "32": { "patterns": [ { "match": "\\*\\/", @@ -10328,26 +9951,20 @@ } ] }, - "34": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "35": { - "name": "entity.name.type.parameter.cpp" - }, - "36": { + "33": { "patterns": [ { "include": "#inline_comment" } ] }, - "37": { + "34": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "38": { + "35": { "name": "comment.block.cpp" }, - "39": { + "36": { "patterns": [ { "match": "\\*\\/", @@ -10358,53 +9975,21 @@ "name": "comment.block.cpp" } ] - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "#function_call" - }, - { - "include": "#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:class|struct|union|enum)", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))", - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\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": { + }, + "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": "\\*\\/", @@ -10416,23 +10001,54 @@ } ] }, - "5": { - "name": "variable.parameter.cpp" + "41": { + "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" }, - "6": { + "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" } ] }, - "7": { + "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "8": { + "4": { "name": "comment.block.cpp" }, - "9": { + "5": { "patterns": [ { "match": "\\*\\/", @@ -10444,142 +10060,16 @@ } ] } - } - }, - { - "include": "#attributes_context" - }, - { - "name": "meta.bracket.square.array.cpp", - "begin": "(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.begin.bracket.square.array.type.cpp" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.end.bracket.square.array.type.cpp" - } }, "patterns": [ { - "include": "#evaluation_context" + "include": "#function_parameter_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": { + "parameter_or_maybe_value": { "name": "meta.parameter.cpp", "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\w)", "beginCaptures": { @@ -10622,6 +10112,15 @@ { "include": "#function_pointer_parameter" }, + { + "include": "#memory_operators" + }, + { + "include": "#builtin_storage_type_initilizer" + }, + { + "include": "#curly_initializer" + }, { "include": "#decltype" }, @@ -10861,6 +10360,9 @@ { "include": "#storage_types" }, + { + "include": "#function_call" + }, { "include": "#scope_resolution_parameter_inner_generated" }, @@ -10883,10 +10385,7 @@ ] }, { - "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)", + "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": [ @@ -11070,12 +10569,16 @@ ] } } + }, + { + "include": "#evaluation_context" } ] }, - "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": { + "parameter": { + "name": "meta.parameter.cpp", + "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\w)", + "beginCaptures": { "1": { "patterns": [ { @@ -11100,816 +10603,329 @@ "name": "comment.block.cpp" } ] + } + }, + "end": "(?:(?=\\))|(,))", + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "patterns": [ + { + "include": "#ever_present_context" }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" + { + "include": "#function_pointer_parameter" }, - "7": { - "name": "punctuation.separator.dot-access.cpp" + { + "include": "#decltype" }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" + { + "include": "#vararg_ellipses" }, - "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" + { + "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" }, - "3": { + { + "match": "\\*", "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": "(\\))", - "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" - } - }, - "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*((?|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.tail.namespace.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "macro_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": "(?<=})", - "patterns": [ - { - "name": "meta.function.definition.parameters.lambda.cpp", - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.lambda.cpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.lambda.cpp" - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - { - "match": "(?)((?:.+?(?=\\{|$))?)", - "captures": { - "1": { - "name": "punctuation.definition.lambda.return-type.cpp" - }, - "2": { - "name": "storage.type.return-type.lambda.cpp" - } - } - }, - { - "name": "meta.function.definition.body.lambda.cpp", - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.lambda.cpp" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "enumerator_list": { - "match": "((?(?:(?>[^<>]*)\\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" + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "include": "#comments" + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - { - "include": "#comma" + "9": { + "name": "comment.block.cpp" }, - { - "include": "#semicolon" - } - ] - }, - { - "name": "meta.tail.enum.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, -<<<<<<< HEAD - "lambdas": { - "begin": "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[))((?:[^\\]\\[]*\\[.*?\\](?!\\s*\\[)[^\\]\\[]*?)*[^\\]\\[]*?)(\\](?!\\[)))", - "beginCaptures": { - "2": { - "name": "punctuation.definition.capture.begin.lambda.cpp" -======= - "inheritance_context": { - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.delimiter.comma.inheritance.cpp" ->>>>>>> master - }, - { - "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", + "10": { "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": [ { - "include": "#attributes_context" + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { - "include": "#number_literal" + "match": "\\*", + "name": "comment.block.cpp" } ] }, - "3": { + "5": { + "name": "variable.parameter.cpp" + }, + "6": { "patterns": [ { "include": "#inline_comment" } ] }, - "4": { + "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "5": { + "8": { "name": "comment.block.cpp" }, - "6": { + "9": { "patterns": [ { "match": "\\*\\/", @@ -11920,21 +10936,99 @@ "name": "comment.block.cpp" } ] + } + } + }, + { + "include": "#attributes_context" + }, + { + "name": "meta.bracket.square.array.cpp", + "begin": "(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.begin.bracket.square.array.type.cpp" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.end.bracket.square.array.type.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?\\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" + } + ] }, - "7": { + "1": { "patterns": [ { "include": "#inline_comment" } ] }, - "8": { + "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "9": { + "3": { "name": "comment.block.cpp" }, - "10": { + "4": { "patterns": [ { "match": "\\*\\/", @@ -11946,195 +11040,428 @@ } ] }, - "12": { + "5": { "patterns": [ { - "include": "#scope_resolution_inner_generated" + "include": "#inline_comment" } ] }, - "13": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "15": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] + "6": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, - "17": { - "name": "entity.name.scope-resolution.cpp" + "7": { + "name": "comment.block.cpp" }, - "18": { - "name": "meta.template.call.cpp", + "8": { "patterns": [ { - "include": "#template_call_range" - } - ] - }, - "20": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "21": { - "patterns": [ + "match": "\\*\\/", + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, { - "include": "#inline_comment" + "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" }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "23": { + { + "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" + } + } }, - "24": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + { + "match": "(?:((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] }, - { - "match": "\\*", + "2": { + "name": "comment.block.cpp punctuation.definition.comment.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" } - ] + } }, - "25": { - "name": "entity.name.type.cpp" + { + "include": "#member_access" }, - "26": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] + { + "include": "#method_access" } - } + ] + }, + "10": { + "name": "variable.other.property.cpp" } - ] + } }, - "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<:.])))+)*))?))", + "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": { - "name": "meta.head.class.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" } ] }, "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] + "name": "variable.language.this.cpp" }, "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + "name": "variable.other.object.access.cpp" }, "7": { - "name": "comment.block.cpp" + "name": "punctuation.separator.dot-access.cpp" }, "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" + "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" } ] }, - "9": { - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.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*((?|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))", - "endCaptures": { + "name": "meta.declaration.namespace.alias.cpp" + }, + "namespace_block": { + "name": "meta.block.namespace.cpp", + "begin": "(((?|\\?\\?>)|(?=[;>\\[\\]=]))", "patterns": [ { - "name": "meta.head.class.cpp", + "name": "meta.head.namespace.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", "endCaptures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" + "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" } }, "patterns": [ @@ -12142,61 +11469,239 @@ "include": "#ever_present_context" }, { - "include": "#inheritance_context" + "include": "#attributes_context" }, { - "include": "#template_call_range" + "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.class.cpp" + "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" } }, "patterns": [ { - "include": "#function_pointer" + "include": "$self" + } + ] + }, + { + "name": "meta.tail.namespace.cpp", + "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", + "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" }, { - "include": "#static_assert" + "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": "#constructor_inline" + "include": "#evaluation_context" + } + ] + }, + "4": { + "name": "punctuation.definition.capture.end.lambda.cpp" + } + }, + "end": "(?<=})", + "patterns": [ + { + "name": "meta.function.definition.parameters.lambda.cpp", + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.lambda.cpp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.lambda.cpp" + } + }, + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + }, + { + "match": "(?)((?:.+?(?=\\{|$))?)", + "captures": { + "1": { + "name": "punctuation.definition.lambda.return-type.cpp" }, + "2": { + "name": "storage.type.return-type.lambda.cpp" + } + } + }, + { + "name": "meta.function.definition.body.lambda.cpp", + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.lambda.cpp" + } + }, + "patterns": [ { - "include": "#destructor_inline" + "include": "$self" + } + ] + } + ] + }, + "enumerator_list": { + "match": "((?|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", + "5": { "patterns": [ { - "include": "$self" + "include": "#comma" + }, + { + "include": "#semicolon" } ] } - ] + }, + "name": "meta.enum.definition.cpp" }, - "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<:.])))+)*))?))", + "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*(;)|(;))|(?=[;>\\[\\]=]))", @@ -12299,55 +11766,46 @@ }, "patterns": [ { - "name": "meta.head.struct.cpp", + "name": "meta.head.enum.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", "endCaptures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + "name": "punctuation.section.block.begin.bracket.curly.enum.cpp" } }, "patterns": [ { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" + "include": "$self" } ] }, { - "name": "meta.body.struct.cpp", + "name": "meta.body.enum.cpp", "begin": "(?<=\\{|<%|\\?\\?<)", "end": "(\\}|%>|\\?\\?>)", "endCaptures": { "1": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" + "name": "punctuation.section.block.end.bracket.curly.enum.cpp" } }, "patterns": [ { - "include": "#function_pointer" - }, - { - "include": "#static_assert" + "include": "#enumerator_list" }, { - "include": "#constructor_inline" + "include": "#comments" }, { - "include": "#destructor_inline" + "include": "#comma" }, { - "include": "$self" + "include": "#semicolon" } ] }, { - "name": "meta.tail.struct.cpp", + "name": "meta.tail.enum.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -12358,7 +11816,6 @@ } ] }, -<<<<<<< HEAD "inheritance_context": { "patterns": [ { @@ -12554,14 +12011,6 @@ "beginCaptures": { "1": { "name": "meta.head.class.cpp" -======= - "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" ->>>>>>> master }, "3": { "name": "storage.type.$3.cpp" @@ -12643,38 +12092,6 @@ "name": "comment.block.cpp" }, "17": { -<<<<<<< HEAD -======= - "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" - } - }, ->>>>>>> master "patterns": [ { "match": "\\*\\/", @@ -12686,19 +12103,7 @@ } ] }, -<<<<<<< HEAD "18": { -======= - { - "name": "meta.body.union.cpp", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, ->>>>>>> master "patterns": [ { "include": "#attributes_context" @@ -12708,20 +12113,12 @@ } ] }, -<<<<<<< HEAD "19": { -======= - { - "name": "meta.tail.union.cpp", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", ->>>>>>> master "patterns": [ { "include": "#inline_comment" } ] -<<<<<<< HEAD }, "20": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" @@ -12745,26 +12142,12 @@ "name": "entity.name.type.$3.cpp" }, "24": { -======= - } - ] - }, - "extern_block": { - "name": "meta.block.extern.cpp", - "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(extern)(?=\\s*\\\"))", - "beginCaptures": { - "1": { - "name": "meta.head.extern.cpp" - }, - "2": { ->>>>>>> master "patterns": [ { "include": "#inline_comment" } ] }, -<<<<<<< HEAD "25": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, @@ -12772,15 +12155,6 @@ "name": "comment.block.cpp" }, "27": { -======= - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { ->>>>>>> master "patterns": [ { "match": "\\*\\/", @@ -12792,7 +12166,6 @@ } ] }, -<<<<<<< HEAD "28": { "name": "storage.type.modifier.final.cpp" }, @@ -12885,66 +12258,38 @@ }, { "include": "#template_call_range" -======= - "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" ->>>>>>> master } ] }, { -<<<<<<< HEAD "name": "meta.body.class.cpp", -======= - "name": "meta.body.extern.cpp", ->>>>>>> master "begin": "(?<=\\{|<%|\\?\\?<)", "end": "(\\}|%>|\\?\\?>)", "endCaptures": { "1": { -<<<<<<< HEAD "name": "punctuation.section.block.end.bracket.curly.class.cpp" -======= - "name": "punctuation.section.block.end.bracket.curly.extern.cpp" ->>>>>>> master } }, "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, { "include": "$self" } ] }, { -<<<<<<< HEAD "name": "meta.tail.class.cpp", -======= - "name": "meta.tail.extern.cpp", ->>>>>>> master "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -12952,13 +12297,9 @@ "include": "$self" } ] - }, - { - "include": "$self" } ] }, -<<<<<<< HEAD "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)))(:)((?>[^{]*)))?))", @@ -13191,19 +12532,10 @@ }, "2": { "name": "punctuation.terminator.statement.cpp" -======= - "typedef_class": { - "begin": "((?>>>>>> master } }, - "end": "(?<=;)", "patterns": [ { -<<<<<<< HEAD "name": "meta.head.struct.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", @@ -13230,34 +12562,16 @@ "end": "(\\}|%>|\\?\\?>)", "endCaptures": { "1": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, - "patterns": [ - { - "include": "#function_pointer" -======= - "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" ->>>>>>> master - }, - "4": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] + "name": "punctuation.section.block.end.bracket.curly.struct.cpp" + } + }, + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" }, -<<<<<<< HEAD { "include": "#constructor_inline" }, @@ -13372,17 +12686,6 @@ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" -======= - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" ->>>>>>> master }, { "match": "\\*", @@ -16215,7 +15518,6 @@ "34": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, -<<<<<<< HEAD "35": { "name": "comment.block.cpp" }, @@ -16230,10 +15532,6 @@ "name": "comment.block.cpp" } ] -======= - { - "include": "#evaluation_context" ->>>>>>> master } } }, @@ -17087,9 +16385,6 @@ }, { "include": "#evaluation_context" - }, - { - "include": "#vararg_ellipses" } ] }, @@ -19281,7 +18576,6 @@ "patterns": [ { "name": "meta.block.class.cpp", -<<<<<<< HEAD "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": { @@ -19809,12 +19103,6 @@ "name": "comment.block.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" ->>>>>>> master }, "18": { "patterns": [ @@ -19954,12 +19242,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": [ @@ -19975,12 +19263,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": [ @@ -20002,7 +19290,7 @@ ] }, { - "name": "meta.tail.class.cpp", + "name": "meta.tail.struct.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -20141,8 +19429,8 @@ } ] }, - "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)))(:)((?>[^{]*)))?))", -======= - "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<:.])))+)*))?))", ->>>>>>> master "beginCaptures": { "1": { - "name": "meta.head.struct.cpp" + "name": "meta.head.union.cpp" }, "3": { "name": "storage.type.$3.cpp" @@ -20391,12 +19674,12 @@ }, "patterns": [ { - "name": "meta.head.struct.cpp", + "name": "meta.head.union.cpp", "begin": "\\G ?", "end": "((?:\\{|<%|\\?\\?<|(?=;)))", "endCaptures": { "1": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + "name": "punctuation.section.block.begin.bracket.curly.union.cpp" } }, "patterns": [ @@ -20412,12 +19695,12 @@ ] }, { - "name": "meta.body.struct.cpp", + "name": "meta.body.union.cpp", "begin": "(?<=\\{|<%|\\?\\?<)", "end": "(\\}|%>|\\?\\?>)", "endCaptures": { "1": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" + "name": "punctuation.section.block.end.bracket.curly.union.cpp" } }, "patterns": [ @@ -20439,7 +19722,7 @@ ] }, { - "name": "meta.tail.struct.cpp", + "name": "meta.tail.union.cpp", "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", "end": "[\\s\\n]*(?=;)", "patterns": [ @@ -20515,223 +19798,65 @@ ] }, "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" - } - ] -<<<<<<< HEAD - }, - "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" + "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": "\\*", - "name": "comment.block.cpp" + "match": "," } ] } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } ] } ] @@ -21026,203 +20151,6 @@ "patterns": [ { "include": "$self" -======= - } - }, - "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": "," - } - ] ->>>>>>> master } ] } diff --git a/syntaxes/cpp.tmLanguage.yaml b/syntaxes/cpp.tmLanguage.yaml index a01efbd5..d6da1d12 100644 --- a/syntaxes/cpp.tmLanguage.yaml +++ b/syntaxes/cpp.tmLanguage.yaml @@ -59,143 +59,12 @@ repository: name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp -<<<<<<< HEAD macro_name: match: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(#)\\s*pragma\\s+mark)\\s+(.*)" captures: -======= - 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: ->>>>>>> master '1': name: keyword.control.directive.pragma.pragma-mark.cpp '2': @@ -465,82 +334,10 @@ repository: name: comment.block.cpp punctuation.definition.comment.end.cpp - match: "\\*" name: comment.block.cpp -<<<<<<< HEAD macro: name: meta.preprocessor.macro.cpp begin: "((?:^)((?:(?:(?>\\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)))(((?: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)))((?>>>>>> master '1': name: keyword.control.directive.define.cpp '2': @@ -699,7 +496,6 @@ repository: - include: "#typedef_class" - include: "#typedef_struct" - include: "#typedef_union" - - include: "#typedef_function_pointer" - include: "#typedef_keyword" - include: "#standard_declares" - include: "#class_block" @@ -733,9 +529,9 @@ repository: - include: "#the_this_keyword" - include: "#language_constants" - include: "#builtin_storage_type_initilizer" - - include: "#storage_types" - include: "#qualifiers_and_specifiers_post_parameters" - include: "#functional_specifiers_pre_parameters" + - include: "#storage_types" - include: "#misc_storage_modifiers" - include: "#lambdas" - include: "#attributes_context" @@ -1124,7 +920,7 @@ repository: match: "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?\\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<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)" @@ -7995,7 +7978,6 @@ repository: name: storage.modifier.reference.cpp '12': patterns: -<<<<<<< HEAD - include: "#inline_comment" '13': name: comment.block.cpp punctuation.definition.comment.begin.cpp @@ -8076,63 +8058,6 @@ repository: 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)" -======= - - include: source.sql - - begin: ((?:u|u8|U|L)?R)"(?:([^ ()\\\t]{0,16})|([^ ()\\\t]*))\( - beginCaptures: - '0': - name: punctuation.definition.string.begin.cpp - '1': - name: meta.encoding.cpp - '3': - name: invalid.illegal.delimiter-too-long.cpp - end: \)\2(\3)" - endCaptures: - '0': - name: punctuation.definition.string.end.cpp - '1': - name: invalid.illegal.delimiter-too-long.cpp - name: string.quoted.double.raw.cpp - block: - name: meta.block.cpp - begin: "({)" - beginCaptures: - '1': - name: punctuation.section.block.begin.bracket.curly.cpp - end: "(}|(?=\\s*#\\s*(?:elif|else|endif)\\b))" - endCaptures: - '1': - name: punctuation.section.block.end.bracket.curly.cpp - patterns: - - include: "#function_body_context" - disabled: - begin: "^\\s*#\\s*if(n?def)?\\b.*$" - end: "^\\s*#\\s*endif\\b" - patterns: - - include: "#disabled" - - include: "#pragma_mark" - line_continuation_character: - match: "(\\\\)\\n" - captures: - '1': - name: constant.character.escape.line-continuation.cpp - parentheses: - name: meta.parens.cpp - begin: "(\\()" - beginCaptures: - '1': - name: punctuation.section.parens.begin.bracket.round.cpp - end: "(\\))" - endCaptures: - '1': - name: punctuation.section.parens.end.bracket.round.cpp - patterns: - - include: "#over_qualified_types" - - match: "(?>>>>>> master captures: '1': name: storage.type.union.parameter.cpp @@ -8589,7 +8514,6 @@ repository: - match: "(?>>>>>> master - source: ',' scopes: - punctuation.separator.delimiter.comma scopesEnd: - meta.enum.definition - source: '#' -<<<<<<< HEAD - scopesBegin: - - keyword.control.directive.endif - scopes: - - punctuation.definition.directive -- source: endif - scopesEnd: - - keyword.control.directive.endif -======= - source: endif scopesBegin: - meta.enum.definition - variable.other.enummember ->>>>>>> master - source: THREE scopesEnd: - meta.enum.definition From 74c2c0eaad8f647e98a188da0f95a64f7239cbe0 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Thu, 8 Aug 2019 18:31:32 -0500 Subject: [PATCH 24/25] restore the enum everpresent context --- source/languages/cpp/generate.rb | 2 +- syntaxes/cpp.tmLanguage.json | 6 ++++++ syntaxes/cpp.tmLanguage.yaml | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index a5cd160d..e7e4280c 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -2130,7 +2130,7 @@ 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(/:/) diff --git a/syntaxes/cpp.tmLanguage.json b/syntaxes/cpp.tmLanguage.json index d2c3f31c..6db89b20 100644 --- a/syntaxes/cpp.tmLanguage.json +++ b/syntaxes/cpp.tmLanguage.json @@ -11790,6 +11790,9 @@ } }, "patterns": [ + { + "include": "#ever_present_context" + }, { "include": "#enumerator_list" }, @@ -20846,6 +20849,9 @@ } }, "patterns": [ + { + "include": "#ever_present_context" + }, { "include": "#enumerator_list" }, diff --git a/syntaxes/cpp.tmLanguage.yaml b/syntaxes/cpp.tmLanguage.yaml index d6da1d12..ea3914f5 100644 --- a/syntaxes/cpp.tmLanguage.yaml +++ b/syntaxes/cpp.tmLanguage.yaml @@ -6120,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" @@ -10836,6 +10837,7 @@ repository: '1': name: punctuation.section.block.end.bracket.curly.enum.cpp patterns: + - include: "#ever_present_context" - include: "#enumerator_list" - include: "#comments" - include: "#comma" From 8aff2afd2ad23a6e8e4fb11e6af1d643fc35a1c8 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Thu, 8 Aug 2019 18:32:12 -0500 Subject: [PATCH 25/25] correct a straggling newPattern() --- source/languages/cpp/generate.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/languages/cpp/generate.rb b/source/languages/cpp/generate.rb index e7e4280c..e6e0e58a 100644 --- a/source/languages/cpp/generate.rb +++ b/source/languages/cpp/generate.rb @@ -468,7 +468,7 @@ def generateBlockFinder( name:"", tag_as:"", start_pattern:nil, needs_semicolon: 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]/)