{ "information_for_contributors": [ "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master/syntaxes/cpp.embedded.macro.tmLanguage.json", "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/ad9f1541fd376740c30a7257614c9cb5ed25005d", "name": "C++", "scopeName": "source.cpp.embedded.macro", "patterns": [ { "include": "#ever_present_context" }, { "include": "#constructor_root" }, { "include": "#destructor_root" }, { "include": "#function_definition" }, { "include": "#operator_overload" }, { "include": "#using_namespace" }, { "include": "source.cpp#type_alias" }, { "include": "source.cpp#using_name" }, { "include": "source.cpp#namespace_alias" }, { "include": "#namespace_block" }, { "include": "#extern_block" }, { "include": "#typedef_class" }, { "include": "#typedef_struct" }, { "include": "#typedef_union" }, { "include": "source.cpp#misc_keywords" }, { "include": "source.cpp#standard_declares" }, { "include": "#class_block" }, { "include": "#struct_block" }, { "include": "#union_block" }, { "include": "#enum_block" }, { "include": "source.cpp#template_isolated_definition" }, { "include": "#template_definition" }, { "include": "source.cpp#access_control_keywords" }, { "include": "#block" }, { "include": "#static_assert" }, { "include": "#assembly" }, { "include": "#function_pointer" }, { "include": "#evaluation_context" } ], "repository": { "alignas_attribute": { "begin": "alignas\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.attribute.begin.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.attribute.end.cpp" } }, "name": "support.other.attribute.cpp", "patterns": [ { "include": "#attributes_context" }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "patterns": [ { "include": "#attributes_context" }, { "include": "#string_context" } ] }, { "match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", "captures": { "1": { "name": "keyword.other.using.directive.cpp" }, "2": { "name": "entity.name.namespace.cpp" } } }, { "match": ",", "name": "punctuation.separator.attribute.cpp" }, { "match": ":", "name": "punctuation.accessor.attribute.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", "name": "entity.name.namespace.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.other.attribute.$0.cpp" }, { "include": "source.cpp#number_literal" } ] }, "alignas_operator": { "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" } }, "contentName": "meta.arguments.operator.alignas", "patterns": [ { "include": "#evaluation_context" } ] }, "alignof_operator": { "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" } }, "contentName": "meta.arguments.operator.alignof", "patterns": [ { "include": "#evaluation_context" } ] }, "assembly": { "begin": "(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)", "end": "(?!\\G)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "storage.type.asm.cpp" }, "2": { "name": "storage.modifier.cpp" } }, "endCaptures": {}, "name": "meta.asm.cpp", "patterns": [ { "match": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "include": "#comments_context" }, { "include": "#comments" }, { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "endCaptures": { "0": { "name": "punctuation.section.parens.end.bracket.round.assembly.cpp" } }, "patterns": [ { "begin": "(R?)(\")", "end": "\"|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "meta.encoding.cpp" }, "2": { "name": "punctuation.definition.string.begin.assembly.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.assembly.cpp" } }, "name": "string.quoted.double.cpp", "contentName": "meta.embedded.assembly", "patterns": [ { "include": "source.asm" }, { "include": "source.x86" }, { "include": "source.x86_64" }, { "include": "source.arm" }, { "include": "source.cpp#backslash_escapes" }, { "include": "#string_escaped_char" } ] }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp" } }, "patterns": [ { "include": "#evaluation_context" } ] }, { "match": "\\[((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "variable.other.asm.label.cpp" }, "6": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "8": { "name": "comment.block.cpp" }, "9": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": ":", "name": "punctuation.separator.delimiter.colon.assembly.cpp" }, { "include": "#comments_context" }, { "include": "#comments" } ] } ] }, "attributes_context": { "patterns": [ { "include": "#cpp_attributes" }, { "include": "#gcc_attributes" }, { "include": "#ms_attributes" }, { "include": "#alignas_attribute" } ] }, "block": { "begin": "{", "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.cpp" } }, "name": "meta.block.cpp", "patterns": [ { "include": "#function_body_context" } ] }, "block_comment": { "begin": "\\s*+(\\/\\*)", "end": "\\*\\/|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "punctuation.definition.comment.begin.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.comment.end.cpp" } }, "name": "comment.block.cpp" }, "builtin_storage_type_initilizer": { "begin": "(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)(?:\\s)*+(?<!\\w)(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" }, "2": { "name": "storage.type.cpp storage.type.built-in.cpp" }, "3": { "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" }, "4": { "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" }, "5": { "name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.initializer.cpp" } }, "patterns": [ { "include": "#evaluation_context" } ] }, "case_statement": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)case(?!\\w))", "end": ":|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "keyword.control.case.cpp" } }, "endCaptures": { "0": { "name": "punctuation.separator.colon.case.cpp" } }, "name": "meta.conditional.case.cpp", "patterns": [ { "include": "#evaluation_context" }, { "include": "#c_conditional_context" } ] }, "class_block": { "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.class.cpp" }, "1": { "name": "storage.type.$1.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", "captures": { "1": { "name": "storage.type.modifier.final.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", "captures": { "1": { "name": "entity.name.type.class.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "storage.type.modifier.final.cpp" }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "DLLEXPORT", "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" } ] }, "12": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "18": { "name": "comment.block.cpp" }, "19": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "20": { "name": "punctuation.separator.colon.inheritance.cpp" } }, "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.block.class.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.class.cpp" } }, "name": "meta.head.class.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#inheritance_context" }, { "include": "#template_call_range" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.class.cpp" } }, "name": "meta.body.class.cpp", "patterns": [ { "include": "#function_pointer" }, { "include": "#static_assert" }, { "include": "#constructor_inline" }, { "include": "#destructor_inline" }, { "include": "$self" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.class.cpp", "patterns": [ { "include": "$self" } ] } ] }, "comments": { "patterns": [ { "begin": "^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)", "end": "(?<=\\n)(?<!\\\\\\n)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "punctuation.definition.comment.documentation.cpp" } }, "endCaptures": {}, "name": "comment.line.double-slash.documentation.cpp", "patterns": [ { "include": "source.cpp#line_continuation_character" }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.italic.doxygen.cpp" } } }, { "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.bold.doxygen.cpp" } } }, { "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.inline.raw.string.cpp" } } }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "patterns": [ { "match": "in|out", "name": "keyword.other.parameter.direction.$0.cpp" } ] }, "3": { "name": "variable.parameter.cpp" } } }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", "name": "storage.type.class.gtkdoc.cpp" } ] }, { "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", "captures": { "1": { "name": "punctuation.definition.comment.begin.documentation.cpp" }, "2": { "patterns": [ { "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.italic.doxygen.cpp" } } }, { "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.bold.doxygen.cpp" } } }, { "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.inline.raw.string.cpp" } } }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "patterns": [ { "match": "in|out", "name": "keyword.other.parameter.direction.$0.cpp" } ] }, "3": { "name": "variable.parameter.cpp" } } }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", "name": "storage.type.class.gtkdoc.cpp" } ] }, "3": { "name": "punctuation.definition.comment.end.documentation.cpp" } }, "name": "comment.block.documentation.cpp" }, { "begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))", "end": "[!*]*\\*\\/|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.comment.begin.documentation.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.comment.end.documentation.cpp" } }, "name": "comment.block.documentation.cpp", "patterns": [ { "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.italic.doxygen.cpp" } } }, { "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.bold.doxygen.cpp" } } }, { "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "name": "markup.inline.raw.string.cpp" } } }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", "captures": { "1": { "name": "storage.type.class.doxygen.cpp" }, "2": { "patterns": [ { "match": "in|out", "name": "keyword.other.parameter.direction.$0.cpp" } ] }, "3": { "name": "variable.parameter.cpp" } } }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", "name": "storage.type.class.doxygen.cpp" }, { "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", "name": "storage.type.class.gtkdoc.cpp" } ] }, { "include": "source.cpp#emacs_file_banner" }, { "include": "#block_comment" }, { "include": "#line_comment" }, { "include": "source.cpp#invalid_comment_end" } ] }, "constructor_inline": { "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.function.definition.special.constructor.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#functional_specifiers_pre_parameters" } ] }, "6": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "11": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "12": { "name": "comment.block.cpp" }, "13": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "14": { "name": "storage.type.modifier.calling-convention.cpp" }, "15": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "16": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "17": { "name": "comment.block.cpp" }, "18": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "19": { "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp" } }, "endCaptures": {}, "name": "meta.function.definition.special.constructor.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" } }, "name": "meta.head.function.definition.special.constructor.cpp", "patterns": [ { "include": "#ever_present_context" }, { "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", "captures": { "1": { "name": "keyword.operator.assignment.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.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": "source.cpp#functional_specifiers_pre_parameters" }, { "begin": ":", "end": "(?=\\{)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.separator.initializers.cpp" } }, "endCaptures": {}, "patterns": [ { "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "entity.name.function.call.initializer.cpp" }, "2": { "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_range" } ] }, "3": {}, "4": { "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" } }, "contentName": "meta.parameter.initialization", "patterns": [ { "include": "#evaluation_context" } ] }, { "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", "end": "\\}|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "entity.name.function.call.initializer.cpp" }, "2": { "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" } }, "contentName": "meta.parameter.initialization", "patterns": [ { "include": "#evaluation_context" } ] }, { "match": ",", "name": "punctuation.separator.delimiter.comma.cpp" }, { "include": "#comments" } ] }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" } }, "contentName": "meta.function.definition.parameters.special.constructor", "patterns": [ { "include": "#function_parameter_context" }, { "include": "#evaluation_context" } ] }, { "match": "((?:(?:final)|(?:override)))+", "captures": { "1": { "name": "keyword.operator.$1.cpp" } } }, { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" } }, "name": "meta.body.function.definition.special.constructor.cpp", "patterns": [ { "include": "#function_body_context" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.function.definition.special.constructor.cpp", "patterns": [ { "include": "$self" } ] } ] }, "constructor_root": { "begin": "\\s*+((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())", "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.function.definition.special.constructor.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "storage.type.modifier.calling-convention.cpp" }, "6": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "8": { "name": "comment.block.cpp" }, "9": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "10": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.constructor.cpp" }, { "include": "#template_call_range" } ] }, "11": { "patterns": [ { "include": "#template_call_range" } ] }, "12": {}, "13": { "patterns": [ { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", "name": "entity.name.type.constructor.cpp" }, { "match": "(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.function.definition.special.constructor.cpp" }, { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" } ] }, "14": {}, "15": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "16": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "17": { "name": "comment.block.cpp" }, "18": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "19": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "20": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "21": { "name": "comment.block.cpp" }, "22": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "23": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "24": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "25": { "name": "comment.block.cpp" }, "26": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "endCaptures": {}, "name": "meta.function.definition.special.constructor.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" } }, "name": "meta.head.function.definition.special.constructor.cpp", "patterns": [ { "include": "#ever_present_context" }, { "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", "captures": { "1": { "name": "keyword.operator.assignment.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.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": "source.cpp#functional_specifiers_pre_parameters" }, { "begin": ":", "end": "(?=\\{)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.separator.initializers.cpp" } }, "endCaptures": {}, "patterns": [ { "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "entity.name.function.call.initializer.cpp" }, "2": { "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_range" } ] }, "3": {}, "4": { "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" } }, "contentName": "meta.parameter.initialization", "patterns": [ { "include": "#evaluation_context" } ] }, { "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", "end": "\\}|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "entity.name.function.call.initializer.cpp" }, "2": { "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" } }, "contentName": "meta.parameter.initialization", "patterns": [ { "include": "#evaluation_context" } ] }, { "match": ",", "name": "punctuation.separator.delimiter.comma.cpp" }, { "include": "#comments" } ] }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" } }, "contentName": "meta.function.definition.parameters.special.constructor", "patterns": [ { "include": "#function_parameter_context" }, { "include": "#evaluation_context" } ] }, { "match": "((?:(?:final)|(?:override)))+", "captures": { "1": { "name": "keyword.operator.$1.cpp" } } }, { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" } }, "name": "meta.body.function.definition.special.constructor.cpp", "patterns": [ { "include": "#function_body_context" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.function.definition.special.constructor.cpp", "patterns": [ { "include": "$self" } ] } ] }, "cpp_attributes": { "begin": "\\[\\[", "end": "\\]\\]|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.attribute.begin.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.attribute.end.cpp" } }, "name": "support.other.attribute.cpp", "patterns": [ { "include": "#attributes_context" }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "patterns": [ { "include": "#attributes_context" }, { "include": "#string_context" } ] }, { "match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", "captures": { "1": { "name": "keyword.other.using.directive.cpp" }, "2": { "name": "entity.name.namespace.cpp" } } }, { "match": ",", "name": "punctuation.separator.attribute.cpp" }, { "match": ":", "name": "punctuation.accessor.attribute.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", "name": "entity.name.namespace.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.other.attribute.$0.cpp" }, { "include": "source.cpp#number_literal" } ] }, "curly_initializer": { "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)", "end": "\\}|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "meta.qualified_type.cpp", "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, { "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", "name": "storage.type.$0.cpp" }, { "include": "#attributes_context" }, { "include": "#storage_types" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.type.cpp" } ] }, "2": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "3": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.type.cpp" }, { "include": "#template_call_range" } ] }, "12": { "patterns": [ { "include": "#template_call_range" } ] }, "13": {}, "14": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "15": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "16": { "name": "comment.block.cpp" }, "17": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "18": {}, "19": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "20": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "21": { "name": "comment.block.cpp" }, "22": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "23": { "name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp" } }, "name": "meta.initialization.cpp", "patterns": [ { "include": "#evaluation_context" }, { "include": "source.cpp#comma" } ] }, "decltype": { "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" } }, "contentName": "meta.arguments.decltype", "patterns": [ { "include": "#evaluation_context" } ] }, "decltype_specifier": { "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" } }, "contentName": "meta.arguments.decltype", "patterns": [ { "include": "#evaluation_context" } ] }, "default_statement": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)default(?!\\w))", "end": ":|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "keyword.control.default.cpp" } }, "endCaptures": { "0": { "name": "punctuation.separator.colon.case.default.cpp" } }, "name": "meta.conditional.case.cpp", "patterns": [ { "include": "#evaluation_context" }, { "include": "#c_conditional_context" } ] }, "destructor_inline": { "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.function.definition.special.member.destructor.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "6": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "7": { "name": "comment.block.cpp" }, "8": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "9": { "name": "storage.type.modifier.calling-convention.cpp" }, "10": { "patterns": [ { "include": "source.cpp#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": "source.cpp#functional_specifiers_pre_parameters" } ] }, "15": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "16": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "17": { "name": "comment.block.cpp" }, "18": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "19": { "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp" } }, "endCaptures": {}, "name": "meta.function.definition.special.member.destructor.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" } }, "name": "meta.head.function.definition.special.member.destructor.cpp", "patterns": [ { "include": "#ever_present_context" }, { "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", "captures": { "1": { "name": "keyword.operator.assignment.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "keyword.other.default.constructor.cpp" }, "7": { "name": "keyword.other.delete.constructor.cpp" } } }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" } }, "contentName": "meta.function.definition.parameters.special.member.destructor", "patterns": [] }, { "match": "((?:(?:final)|(?:override)))+", "captures": { "1": { "name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp" } } }, { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" } }, "name": "meta.body.function.definition.special.member.destructor.cpp", "patterns": [ { "include": "#function_body_context" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.function.definition.special.member.destructor.cpp", "patterns": [ { "include": "$self" } ] } ] }, "destructor_root": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())", "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.function.definition.special.member.destructor.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "storage.type.modifier.calling-convention.cpp" }, "6": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "8": { "name": "comment.block.cpp" }, "9": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "10": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.destructor.cpp" }, { "include": "#template_call_range" } ] }, "11": { "patterns": [ { "include": "#template_call_range" } ] }, "12": {}, "13": { "patterns": [ { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", "name": "entity.name.type.destructor.cpp" }, { "match": "(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.function.definition.special.member.destructor.cpp" }, { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" } ] }, "14": {}, "15": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "16": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "17": { "name": "comment.block.cpp" }, "18": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "19": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "20": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "21": { "name": "comment.block.cpp" }, "22": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "23": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "24": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "25": { "name": "comment.block.cpp" }, "26": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "endCaptures": {}, "name": "meta.function.definition.special.member.destructor.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" } }, "name": "meta.head.function.definition.special.member.destructor.cpp", "patterns": [ { "include": "#ever_present_context" }, { "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", "captures": { "1": { "name": "keyword.operator.assignment.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "keyword.other.default.constructor.cpp" }, "7": { "name": "keyword.other.delete.constructor.cpp" } } }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" } }, "contentName": "meta.function.definition.parameters.special.member.destructor", "patterns": [] }, { "match": "((?:(?:final)|(?:override)))+", "captures": { "1": { "name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp" } } }, { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" } }, "name": "meta.body.function.definition.special.member.destructor.cpp", "patterns": [ { "include": "#function_body_context" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.function.definition.special.member.destructor.cpp", "patterns": [ { "include": "$self" } ] } ] }, "diagnostic": { "begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?", "end": "(?<!\\\\)(?=\\n)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.control.directive.diagnostic.$7.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.definition.directive.cpp" }, "7": {} }, "endCaptures": {}, "name": "meta.preprocessor.diagnostic.$reference(directive).cpp", "patterns": [ { "begin": "\"", "end": "(?:(\")|(?<!\\\\)(?=\\n))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cpp" } }, "endCaptures": { "1": { "name": "punctuation.definition.string.end.cpp" } }, "name": "string.quoted.double.cpp", "patterns": [ { "include": "source.cpp#line_continuation_character" } ] }, { "begin": "'", "end": "(?:(')|(?<!\\\\)(?=\\n))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cpp" } }, "endCaptures": { "1": { "name": "punctuation.definition.string.end.cpp" } }, "name": "string.quoted.single.cpp", "patterns": [ { "include": "source.cpp#line_continuation_character" } ] }, { "begin": "[^'\"]", "end": "(?<!\\\\)(?=\\n)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "string.unquoted.cpp", "patterns": [ { "include": "source.cpp#line_continuation_character" }, { "include": "#comments" } ] } ] }, "enum_block": { "begin": "((?<!\\w)enum(?!\\w))(?:(?:\\s)+(class|struct))?(?:(?:(?:\\s)+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:(?:\\s)+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:(?:\\s)+)?(:)(?:(?:\\s)+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?", "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.enum.cpp" }, "1": { "name": "storage.type.enum.cpp" }, "2": { "name": "storage.type.enum.enum-key.$2.cpp" }, "3": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "4": { "name": "entity.name.type.enum.cpp" }, "5": { "name": "punctuation.separator.colon.type-specifier.cpp" }, "6": { "patterns": [ { "include": "source.cpp#scope_resolution_inner_generated" } ] }, "7": { "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, "8": { "patterns": [ { "include": "#template_call_range" } ] }, "9": {}, "10": { "name": "entity.name.scope-resolution.cpp" }, "11": { "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_range" } ] }, "12": {}, "13": { "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, "14": { "name": "storage.type.integral.$14.cpp" } }, "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.block.enum.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.enum.cpp" } }, "name": "meta.head.enum.cpp", "patterns": [ { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.enum.cpp" } }, "name": "meta.body.enum.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "source.cpp#enumerator_list" }, { "include": "#comments" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#semicolon" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.enum.cpp", "patterns": [ { "include": "$self" } ] } ] }, "evaluation_context": { "patterns": [ { "include": "#ever_present_context" }, { "include": "#string_context" }, { "include": "source.cpp#number_literal" }, { "include": "#method_access" }, { "include": "source.cpp#member_access" }, { "include": "source.cpp#predefined_macros" }, { "include": "#operators" }, { "include": "source.cpp#memory_operators" }, { "include": "source.cpp#wordlike_operators" }, { "include": "source.cpp#type_casting_operators" }, { "include": "source.cpp#control_flow_keywords" }, { "include": "source.cpp#exception_keywords" }, { "include": "source.cpp#the_this_keyword" }, { "include": "source.cpp#language_constants" }, { "include": "#builtin_storage_type_initilizer" }, { "include": "source.cpp#qualifiers_and_specifiers_post_parameters" }, { "include": "source.cpp#functional_specifiers_pre_parameters" }, { "include": "#storage_types" }, { "include": "#lambdas" }, { "include": "#attributes_context" }, { "include": "#parentheses" }, { "include": "#function_call" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "include": "#square_brackets" }, { "include": "source.cpp#semicolon" }, { "include": "source.cpp#comma" } ] }, "ever_present_context": { "patterns": [ { "include": "source.cpp#pragma_mark" }, { "include": "#pragma" }, { "include": "source.cpp#include" }, { "include": "#line" }, { "include": "#diagnostic" }, { "include": "source.cpp#undef" }, { "include": "#preprocessor_conditional_range" }, { "include": "source.cpp#single_line_macro" }, { "include": "#macro" }, { "include": "source.cpp#preprocessor_conditional_standalone" }, { "include": "source.cpp#macro_argument" }, { "include": "#comments" }, { "include": "source.cpp#line_continuation_character" } ] }, "extern_block": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")", "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.extern.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "storage.type.extern.cpp" } }, "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.block.extern.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.extern.cpp" } }, "name": "meta.head.extern.cpp", "patterns": [ { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.extern.cpp" } }, "name": "meta.body.extern.cpp", "patterns": [ { "include": "$self" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.extern.cpp", "patterns": [ { "include": "$self" } ] }, { "include": "$self" } ] }, "function_body_context": { "patterns": [ { "include": "#ever_present_context" }, { "include": "#using_namespace" }, { "include": "source.cpp#type_alias" }, { "include": "source.cpp#using_name" }, { "include": "source.cpp#namespace_alias" }, { "include": "#typedef_class" }, { "include": "#typedef_struct" }, { "include": "#typedef_union" }, { "include": "source.cpp#misc_keywords" }, { "include": "source.cpp#standard_declares" }, { "include": "#class_block" }, { "include": "#struct_block" }, { "include": "#union_block" }, { "include": "#enum_block" }, { "include": "source.cpp#access_control_keywords" }, { "include": "#block" }, { "include": "#static_assert" }, { "include": "#assembly" }, { "include": "#function_pointer" }, { "include": "#switch_statement" }, { "include": "source.cpp#goto_statement" }, { "include": "#evaluation_context" }, { "include": "source.cpp#label" } ] }, "function_call": { "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wint_least16_t|^int_least16_t|\\Watomic_commit|^atomic_commit|\\Watomic_cancel|^atomic_cancel|\\Wuint_fast64_t|^uint_fast64_t|\\Wuint_least8_t|^uint_least8_t|\\Wint_least64_t|^int_least64_t|\\Wint_least32_t|^int_least32_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wdynamic_cast|^dynamic_cast|\\Wthread_local|^thread_local|\\Wuint_fast8_t|^uint_fast8_t|\\Wint_fast64_t|^int_fast64_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast16_t|^int_fast16_t|\\Wsynchronized|^synchronized|\\Wint_least8_t|^int_least8_t|\\Wsuseconds_t|^suseconds_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wnamespace|^namespace|\\Wco_return|^co_return|\\Wblksize_t|^blksize_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wco_return|^co_return|\\Wco_await|^co_await|\\Wnoexcept|^noexcept|\\Wrestrict|^restrict|\\Wnoexcept|^noexcept|\\Wdecltype|^decltype|\\Wintmax_t|^intmax_t|\\Wuint64_t|^uint64_t|\\Wintmax_t|^intmax_t|\\Wcontinue|^continue|\\Wreflexpr|^reflexpr|\\Wintptr_t|^intptr_t|\\Wuint32_t|^uint32_t|\\Wuint16_t|^uint16_t|\\Wexplicit|^explicit|\\Wtypename|^typename|\\Wu_quad_t|^u_quad_t|\\Wvolatile|^volatile|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wco_yield|^co_yield|\\Wco_await|^co_await|\\Wvolatile|^volatile|\\Woperator|^operator|\\Wunsigned|^unsigned|\\Wregister|^register|\\Wblkcnt_t|^blkcnt_t|\\Wrequires|^requires|\\Wco_yield|^co_yield|\\Wnullptr|^nullptr|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wmutable|^mutable|\\Wvirtual|^virtual|\\Wmutable|^mutable|\\Wdaddr_t|^daddr_t|\\Wfixpt_t|^fixpt_t|\\Wconcept|^concept|\\Wnlink_t|^nlink_t|\\Wdefault|^default|\\Wwchar_t|^wchar_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wclock_t|^clock_t|\\Wssize_t|^ssize_t|\\W__asm__|^__asm__|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wu_short|^u_short|\\Walignas|^alignas|\\Walignof|^alignof|\\Wtypedef|^typedef|\\Wprivate|^private|\\Wu_char|^u_char|\\Wmode_t|^mode_t|\\Wstatic|^static|\\Wdouble|^double|\\Wnot_eq|^not_eq|\\Wtypeid|^typeid|\\Wmodule|^module|\\Wstruct|^struct|\\Wexport|^export|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wu_long|^u_long|\\Wquad_t|^quad_t|\\Wsigned|^signed|\\Wushort|^ushort|\\Wimport|^import|\\Wbitand|^bitand|\\Wfriend|^friend|\\Wtime_t|^time_t|\\Wdelete|^delete|\\Wsize_t|^size_t|\\Wint8_t|^int8_t|\\Winline|^inline|\\Wextern|^extern|\\Wpublic|^public|\\Wsizeof|^sizeof|\\Wswitch|^switch|\\Wreturn|^return|\\Wconst|^const|\\Wshort|^short|\\Wfloat|^float|\\Wu_int|^u_int|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wwhile|^while|\\Wor_eq|^or_eq|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wcompl|^compl|\\Wusing|^using|\\Wcatch|^catch|\\Wbreak|^break|\\Wtrue|^true|\\Wid_t|^id_t|\\Wchar|^char|\\Wid_t|^id_t|\\Wauto|^auto|\\Wcase|^case|\\Wuint|^uint|\\Wbool|^bool|\\Wlong|^long|\\Wvoid|^void|\\Wenum|^enum|\\WNULL|^NULL|\\Wthis|^this|\\Welse|^else|\\Wgoto|^goto|\\Wnew|^new|\\Wtry|^try|\\Wxor|^xor|\\Wnot|^not|\\Wint|^int|\\Wand|^and|\\Wfor|^for|\\Wasm|^asm|\\Wdo|^do|\\Wor|^or|\\Wif|^if)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "patterns": [ { "include": "source.cpp#scope_resolution_function_call_inner_generated" } ] }, "2": { "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" }, "3": { "patterns": [ { "include": "#template_call_range" } ] }, "4": {}, "5": { "name": "entity.name.function.call.cpp" }, "6": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "8": { "name": "comment.block.cpp" }, "9": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "10": { "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_range" } ] }, "11": {}, "12": { "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp" } }, "patterns": [ { "include": "#evaluation_context" } ] }, "function_definition": { "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)template(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wint_least16_t|^int_least16_t|\\Watomic_commit|^atomic_commit|\\Watomic_cancel|^atomic_cancel|\\Wuint_fast64_t|^uint_fast64_t|\\Wuint_least8_t|^uint_least8_t|\\Wint_least64_t|^int_least64_t|\\Wint_least32_t|^int_least32_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wdynamic_cast|^dynamic_cast|\\Wthread_local|^thread_local|\\Wuint_fast8_t|^uint_fast8_t|\\Wint_fast64_t|^int_fast64_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast16_t|^int_fast16_t|\\Wsynchronized|^synchronized|\\Wint_least8_t|^int_least8_t|\\Wsuseconds_t|^suseconds_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wnamespace|^namespace|\\Wco_return|^co_return|\\Wblksize_t|^blksize_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wco_return|^co_return|\\Wco_await|^co_await|\\Wnoexcept|^noexcept|\\Wrestrict|^restrict|\\Wnoexcept|^noexcept|\\Wdecltype|^decltype|\\Wintmax_t|^intmax_t|\\Wuint64_t|^uint64_t|\\Wintmax_t|^intmax_t|\\Wcontinue|^continue|\\Wreflexpr|^reflexpr|\\Wintptr_t|^intptr_t|\\Wuint32_t|^uint32_t|\\Wuint16_t|^uint16_t|\\Wexplicit|^explicit|\\Wtypename|^typename|\\Wu_quad_t|^u_quad_t|\\Wvolatile|^volatile|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wco_yield|^co_yield|\\Wco_await|^co_await|\\Wvolatile|^volatile|\\Woperator|^operator|\\Wunsigned|^unsigned|\\Wregister|^register|\\Wblkcnt_t|^blkcnt_t|\\Wrequires|^requires|\\Wco_yield|^co_yield|\\Wnullptr|^nullptr|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wmutable|^mutable|\\Wvirtual|^virtual|\\Wmutable|^mutable|\\Wdaddr_t|^daddr_t|\\Wfixpt_t|^fixpt_t|\\Wconcept|^concept|\\Wnlink_t|^nlink_t|\\Wdefault|^default|\\Wwchar_t|^wchar_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wclock_t|^clock_t|\\Wssize_t|^ssize_t|\\W__asm__|^__asm__|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wu_short|^u_short|\\Walignas|^alignas|\\Walignof|^alignof|\\Wtypedef|^typedef|\\Wprivate|^private|\\Wu_char|^u_char|\\Wmode_t|^mode_t|\\Wstatic|^static|\\Wdouble|^double|\\Wnot_eq|^not_eq|\\Wtypeid|^typeid|\\Wmodule|^module|\\Wstruct|^struct|\\Wexport|^export|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wu_long|^u_long|\\Wquad_t|^quad_t|\\Wsigned|^signed|\\Wushort|^ushort|\\Wimport|^import|\\Wbitand|^bitand|\\Wfriend|^friend|\\Wtime_t|^time_t|\\Wdelete|^delete|\\Wsize_t|^size_t|\\Wint8_t|^int8_t|\\Winline|^inline|\\Wextern|^extern|\\Wpublic|^public|\\Wsizeof|^sizeof|\\Wswitch|^switch|\\Wreturn|^return|\\Wconst|^const|\\Wshort|^short|\\Wfloat|^float|\\Wu_int|^u_int|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wwhile|^while|\\Wor_eq|^or_eq|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wcompl|^compl|\\Wusing|^using|\\Wcatch|^catch|\\Wbreak|^break|\\Wtrue|^true|\\Wid_t|^id_t|\\Wchar|^char|\\Wid_t|^id_t|\\Wauto|^auto|\\Wcase|^case|\\Wuint|^uint|\\Wbool|^bool|\\Wlong|^long|\\Wvoid|^void|\\Wenum|^enum|\\WNULL|^NULL|\\Wthis|^this|\\Welse|^else|\\Wgoto|^goto|\\Wnew|^new|\\Wtry|^try|\\Wxor|^xor|\\Wnot|^not|\\Wint|^int|\\Wand|^and|\\Wfor|^for|\\Wasm|^asm|\\Wdo|^do|\\Wor|^or|\\Wif|^if)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()", "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.function.definition.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "storage.type.template.cpp" }, "6": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "8": { "name": "comment.block.cpp" }, "9": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "10": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "11": { "patterns": [ { "match": "((?<!\\w)(?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", "captures": { "1": { "name": "storage.modifier.$1.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } } ] }, "12": { "name": "storage.modifier.$12.cpp" }, "13": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "14": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "15": { "name": "comment.block.cpp" }, "16": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "17": { "name": "meta.qualified_type.cpp", "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, { "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", "name": "storage.type.$0.cpp" }, { "include": "#attributes_context" }, { "include": "#storage_types" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.type.cpp" } ] }, "18": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "19": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "20": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "21": { "name": "comment.block.cpp" }, "22": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "23": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "24": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "25": { "name": "comment.block.cpp" }, "26": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "27": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.type.cpp" }, { "include": "#template_call_range" } ] }, "28": { "patterns": [ { "include": "#template_call_range" } ] }, "29": {}, "30": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "31": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "32": { "name": "comment.block.cpp" }, "33": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "34": {}, "35": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "name": "invalid.illegal.reference-type.cpp" }, { "match": "\\&", "name": "storage.modifier.reference.cpp" } ] }, "36": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "37": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "38": { "name": "comment.block.cpp" }, "39": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "40": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "41": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "42": { "name": "comment.block.cpp" }, "43": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "44": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "49": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "50": { "name": "comment.block.cpp" }, "51": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "52": { "name": "storage.type.modifier.calling-convention.cpp" }, "53": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "54": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "55": { "name": "comment.block.cpp" }, "56": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "57": { "patterns": [ { "include": "source.cpp#scope_resolution_function_definition_inner_generated" } ] }, "58": { "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" }, "59": { "patterns": [ { "include": "#template_call_range" } ] }, "60": {}, "61": { "name": "entity.name.function.definition.cpp" }, "62": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "63": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "64": { "name": "comment.block.cpp" }, "65": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "endCaptures": {}, "name": "meta.function.definition.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp" } }, "name": "meta.head.function.definition.cpp", "patterns": [ { "include": "#ever_present_context" }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parameters.begin.bracket.round.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parameters.end.bracket.round.cpp" } }, "contentName": "meta.function.definition.parameters", "patterns": [ { "include": "#ever_present_context" }, { "include": "#parameter_or_maybe_value" }, { "include": "source.cpp#comma" }, { "include": "#evaluation_context" } ] }, { "match": "(?<=^|\\))(?:(?:\\s)+)?(->)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)?(?![\\w<:.]))", "captures": { "1": { "name": "punctuation.definition.function.return-type.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "meta.qualified_type.cpp", "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, { "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", "name": "storage.type.$0.cpp" }, { "include": "#attributes_context" }, { "include": "#storage_types" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.type.cpp" } ] }, "7": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "8": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "13": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "14": { "name": "comment.block.cpp" }, "15": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "16": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.type.cpp" }, { "include": "#template_call_range" } ] }, "17": { "patterns": [ { "include": "#template_call_range" } ] }, "18": {}, "19": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "20": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "21": { "name": "comment.block.cpp" }, "22": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "23": {} } }, { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp" } }, "name": "meta.body.function.definition.cpp", "patterns": [ { "include": "#function_body_context" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.function.definition.cpp", "patterns": [ { "include": "$self" } ] } ] }, "function_parameter_context": { "patterns": [ { "include": "#ever_present_context" }, { "include": "#parameter" }, { "include": "source.cpp#comma" } ] }, "function_pointer": { "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "meta.qualified_type.cpp", "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, { "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", "name": "storage.type.$0.cpp" }, { "include": "#attributes_context" }, { "include": "#storage_types" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.type.cpp" } ] }, "2": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "3": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.type.cpp" }, { "include": "#template_call_range" } ] }, "12": { "patterns": [ { "include": "#template_call_range" } ] }, "13": {}, "14": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "15": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "16": { "name": "comment.block.cpp" }, "17": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "18": {}, "19": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "name": "invalid.illegal.reference-type.cpp" }, { "match": "\\&", "name": "storage.modifier.reference.cpp" } ] }, "20": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "21": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "22": { "name": "comment.block.cpp" }, "23": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "24": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "25": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "26": { "name": "comment.block.cpp" }, "27": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "28": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "29": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "30": { "name": "comment.block.cpp" }, "31": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "32": { "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" }, "33": { "name": "punctuation.definition.function.pointer.dereference.cpp" }, "34": { "name": "variable.other.definition.pointer.function.cpp" }, "35": { "name": "punctuation.definition.begin.bracket.square.cpp" }, "36": { "patterns": [ { "include": "#evaluation_context" } ] }, "37": { "name": "punctuation.definition.end.bracket.square.cpp" }, "38": { "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" }, "39": { "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" } }, "endCaptures": { "1": { "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "patterns": [ { "include": "#function_parameter_context" } ] }, "function_pointer_parameter": { "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "meta.qualified_type.cpp", "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, { "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", "name": "storage.type.$0.cpp" }, { "include": "#attributes_context" }, { "include": "#storage_types" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.type.cpp" } ] }, "2": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "3": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.type.cpp" }, { "include": "#template_call_range" } ] }, "12": { "patterns": [ { "include": "#template_call_range" } ] }, "13": {}, "14": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "15": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "16": { "name": "comment.block.cpp" }, "17": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "18": {}, "19": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "name": "invalid.illegal.reference-type.cpp" }, { "match": "\\&", "name": "storage.modifier.reference.cpp" } ] }, "20": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "21": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "22": { "name": "comment.block.cpp" }, "23": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "24": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "25": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "26": { "name": "comment.block.cpp" }, "27": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "28": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "29": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "30": { "name": "comment.block.cpp" }, "31": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "32": { "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" }, "33": { "name": "punctuation.definition.function.pointer.dereference.cpp" }, "34": { "name": "variable.parameter.pointer.function.cpp" }, "35": { "name": "punctuation.definition.begin.bracket.square.cpp" }, "36": { "patterns": [ { "include": "#evaluation_context" } ] }, "37": { "name": "punctuation.definition.end.bracket.square.cpp" }, "38": { "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" }, "39": { "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" } }, "endCaptures": { "1": { "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.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" } ] }, "gcc_attributes": { "begin": "__attribute(?:__)?\\s*\\(\\s*\\(", "end": "\\)\\s*\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.attribute.begin.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.attribute.end.cpp" } }, "name": "support.other.attribute.cpp", "patterns": [ { "include": "#attributes_context" }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "patterns": [ { "include": "#attributes_context" }, { "include": "#string_context" } ] }, { "match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", "captures": { "1": { "name": "keyword.other.using.directive.cpp" }, "2": { "name": "entity.name.namespace.cpp" } } }, { "match": ",", "name": "punctuation.separator.attribute.cpp" }, { "match": ":", "name": "punctuation.accessor.attribute.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", "name": "entity.name.namespace.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.other.attribute.$0.cpp" }, { "include": "source.cpp#number_literal" } ] }, "inheritance_context": { "patterns": [ { "include": "#ever_present_context" }, { "match": ",", "name": "punctuation.separator.delimiter.comma.inheritance.cpp" }, { "match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)", "name": "storage.type.modifier.access.$0.cpp" }, { "match": "(?<!\\w)virtual(?!\\w)", "name": "storage.type.modifier.virtual.cpp" }, { "match": "(?<=protected|virtual|private|public|,|:)(?:(?:\\s)+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))", "captures": { "1": { "name": "meta.qualified_type.cpp", "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, { "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", "name": "storage.type.$0.cpp" }, { "include": "#attributes_context" }, { "include": "#storage_types" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.type.cpp" } ] }, "2": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "3": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "4": { "patterns": [ { "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", "captures": { "1": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "2": { "name": "comment.block.cpp" }, "3": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } } ] }, "5": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "6": { "patterns": [ { "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", "captures": { "1": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "2": { "name": "comment.block.cpp" }, "3": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } } ] }, "7": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.type.cpp" }, { "include": "#template_call_range" } ] }, "8": { "patterns": [ { "include": "#template_call_range" } ] }, "9": {}, "10": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "11": { "patterns": [ { "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", "captures": { "1": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "2": { "name": "comment.block.cpp" }, "3": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } } ] }, "12": {} } } ] }, "lambdas": { "begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))", "end": "(?<=[;}])|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "punctuation.definition.capture.begin.lambda.cpp" }, "2": { "name": "meta.lambda.capture.cpp", "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.separator.delimiter.comma.cpp" }, "7": { "name": "keyword.operator.assignment.cpp" } } }, { "include": "#evaluation_context" } ] }, "3": {}, "4": { "name": "punctuation.definition.capture.end.lambda.cpp" }, "5": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "6": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "7": { "name": "comment.block.cpp" }, "8": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "endCaptures": {}, "patterns": [ { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.parameters.begin.lambda.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.parameters.end.lambda.cpp" } }, "name": "meta.function.definition.parameters.lambda.cpp", "patterns": [ { "include": "#function_parameter_context" } ] }, { "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)", "name": "storage.modifier.lambda.$0.cpp" }, { "match": "(->)((?:.+?(?=\\{|$))?)", "captures": { "1": { "name": "punctuation.definition.lambda.return-type.cpp" }, "2": { "name": "storage.type.return-type.lambda.cpp" } } }, { "begin": "\\{", "end": "\\}|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.lambda.cpp" } }, "name": "meta.function.definition.body.lambda.cpp", "patterns": [ { "include": "$self" } ] } ] }, "line": { "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b", "end": "(?<!\\\\)(?=\\n)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "keyword.control.directive.line.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "punctuation.definition.directive.cpp" } }, "endCaptures": {}, "name": "meta.preprocessor.line.cpp", "patterns": [ { "include": "#string_context" }, { "include": "#preprocessor_number_literal" }, { "include": "source.cpp#line_continuation_character" } ] }, "line_comment": { "begin": "\\s*+(\\/\\/)", "end": "(?<=\\n)(?<!\\\\\\n)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "punctuation.definition.comment.cpp" } }, "endCaptures": {}, "name": "comment.line.double-slash.cpp", "patterns": [ { "include": "source.cpp#line_continuation_character" } ] }, "macro": { "begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", "end": "(?<!\\\\)(?=\\n)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.control.directive.define.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.definition.directive.cpp" }, "7": { "name": "entity.name.function.preprocessor.cpp" } }, "endCaptures": {}, "name": "meta.preprocessor.macro.cpp", "patterns": [ { "match": "\\G(?:(?:\\s)+)?(\\()([^\\(]*)(\\))", "captures": { "1": { "name": "punctuation.definition.parameters.begin.preprocessor.cpp" }, "2": { "patterns": [ { "match": "(?<=[(,])(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?", "captures": { "1": { "name": "variable.parameter.preprocessor.cpp" } } }, { "match": ",", "name": "punctuation.separator.parameters.cpp" }, { "match": "\\.\\.\\.", "name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp" } ] }, "3": { "name": "punctuation.definition.parameters.end.preprocessor.cpp" } } }, { "include": "#macro_context" }, { "include": "source.cpp#macro_argument" } ] }, "macro_context": { "patterns": [ { "include": "source.cpp.embedded.macro" } ] }, "method_access": { "begin": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "variable.language.this.cpp" }, "6": { "name": "variable.other.object.access.cpp" }, "7": { "name": "punctuation.separator.dot-access.cpp" }, "8": { "name": "punctuation.separator.pointer-access.cpp" }, "9": { "patterns": [ { "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "variable.language.this.cpp" }, "6": { "name": "variable.other.object.property.cpp" }, "7": { "name": "punctuation.separator.dot-access.cpp" }, "8": { "name": "punctuation.separator.pointer-access.cpp" } } }, { "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#member_access" }, { "include": "#method_access" } ] }, "10": { "name": "entity.name.function.member.cpp" }, "11": { "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp" } }, "patterns": [ { "include": "#evaluation_context" } ] }, "ms_attributes": { "begin": "__declspec\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.attribute.begin.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.attribute.end.cpp" } }, "name": "support.other.attribute.cpp", "patterns": [ { "include": "#attributes_context" }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "patterns": [ { "include": "#attributes_context" }, { "include": "#string_context" } ] }, { "match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", "captures": { "1": { "name": "keyword.other.using.directive.cpp" }, "2": { "name": "entity.name.namespace.cpp" } } }, { "match": ",", "name": "punctuation.separator.attribute.cpp" }, { "match": ":", "name": "punctuation.accessor.attribute.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", "name": "entity.name.namespace.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.other.attribute.$0.cpp" }, { "include": "source.cpp#number_literal" } ] }, "namespace_block": { "begin": "((?<!\\w)namespace(?!\\w))", "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.namespace.cpp" }, "1": { "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp" } }, "endCaptures": {}, "name": "meta.block.namespace.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" } }, "name": "meta.head.namespace.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#attributes_context" }, { "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?(?:(::)(?:(?:\\s)+)?(inline))?", "captures": { "1": { "patterns": [ { "include": "source.cpp#scope_resolution_namespace_block_inner_generated" } ] }, "2": { "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" }, "3": { "patterns": [ { "include": "#template_call_range" } ] }, "4": {}, "5": { "name": "entity.name.namespace.cpp" }, "6": { "name": "punctuation.separator.scope-resolution.namespace.block.cpp" }, "7": { "name": "storage.modifier.inline.cpp" } } } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" } }, "name": "meta.body.namespace.cpp", "patterns": [ { "include": "$self" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.namespace.cpp", "patterns": [ { "include": "$self" } ] } ] }, "noexcept_operator": { "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" } }, "contentName": "meta.arguments.operator.noexcept", "patterns": [ { "include": "#evaluation_context" } ] }, "operator_overload": { "begin": "(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()", "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.function.definition.special.operator-overload.cpp" }, "1": { "name": "meta.qualified_type.cpp", "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, { "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", "name": "storage.type.$0.cpp" }, { "include": "#attributes_context" }, { "include": "#storage_types" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.type.cpp" } ] }, "2": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "3": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.type.cpp" }, { "include": "#template_call_range" } ] }, "12": { "patterns": [ { "include": "#template_call_range" } ] }, "13": {}, "14": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "15": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "16": { "name": "comment.block.cpp" }, "17": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "18": {}, "19": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "name": "invalid.illegal.reference-type.cpp" }, { "match": "\\&", "name": "storage.modifier.reference.cpp" } ] }, "20": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "21": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "22": { "name": "comment.block.cpp" }, "23": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "24": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "25": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "26": { "name": "comment.block.cpp" }, "27": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "28": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "29": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "30": { "name": "comment.block.cpp" }, "31": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "32": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "33": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "34": { "name": "comment.block.cpp" }, "35": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "36": { "name": "storage.type.modifier.calling-convention.cpp" }, "37": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "38": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "39": { "name": "comment.block.cpp" }, "40": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "41": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "42": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "43": { "name": "comment.block.cpp" }, "44": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "45": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.operator.cpp" }, { "include": "#template_call_range" } ] }, "46": { "patterns": [ { "include": "#template_call_range" } ] }, "47": {}, "48": { "name": "keyword.other.operator.overload.cpp" }, "49": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "50": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "51": { "name": "comment.block.cpp" }, "52": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "53": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.operator-overload.cpp" }, { "include": "#template_call_range" } ] }, "54": { "patterns": [ { "include": "#template_call_range" } ] }, "55": {}, "56": { "name": "entity.name.operator.cpp" }, "57": { "name": "entity.name.operator.type.cpp" }, "58": { "patterns": [ { "match": "\\*", "name": "entity.name.operator.type.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "name": "invalid.illegal.reference-type.cpp" }, { "match": "\\&", "name": "entity.name.operator.type.reference.cpp" } ] }, "59": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "60": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "61": { "name": "comment.block.cpp" }, "62": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "63": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "64": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "65": { "name": "comment.block.cpp" }, "66": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "67": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "68": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "69": { "name": "comment.block.cpp" }, "70": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "71": { "name": "entity.name.operator.type.array.cpp" }, "72": { "name": "entity.name.operator.custom-literal.cpp" }, "73": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "74": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "75": { "name": "comment.block.cpp" }, "76": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "77": { "name": "entity.name.operator.custom-literal.cpp" }, "78": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "79": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "80": { "name": "comment.block.cpp" }, "81": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "endCaptures": {}, "name": "meta.function.definition.special.operator-overload.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp" } }, "name": "meta.head.function.definition.special.operator-overload.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#template_call_range" }, { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp" } }, "contentName": "meta.function.definition.parameters.special.operator-overload", "patterns": [ { "include": "#function_parameter_context" }, { "include": "#evaluation_context" } ] }, { "include": "source.cpp#qualifiers_and_specifiers_post_parameters" }, { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp" } }, "name": "meta.body.function.definition.special.operator-overload.cpp", "patterns": [ { "include": "#function_body_context" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.function.definition.special.operator-overload.cpp", "patterns": [ { "include": "$self" } ] } ] }, "operators": { "patterns": [ { "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" } }, "contentName": "meta.arguments.operator.sizeof", "patterns": [ { "include": "#evaluation_context" } ] }, { "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" } }, "contentName": "meta.arguments.operator.alignof", "patterns": [ { "include": "#evaluation_context" } ] }, { "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" } }, "contentName": "meta.arguments.operator.alignas", "patterns": [ { "include": "#evaluation_context" } ] }, { "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" } }, "contentName": "meta.arguments.operator.typeid", "patterns": [ { "include": "#evaluation_context" } ] }, { "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" } }, "contentName": "meta.arguments.operator.noexcept", "patterns": [ { "include": "#evaluation_context" } ] }, { "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" } }, "contentName": "meta.arguments.operator.sizeof.variadic", "patterns": [ { "include": "#evaluation_context" } ] }, { "match": "--", "name": "keyword.operator.decrement.cpp" }, { "match": "\\+\\+", "name": "keyword.operator.increment.cpp" }, { "match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=", "name": "keyword.operator.assignment.compound.cpp" }, { "match": "&=|\\^=|<<=|>>=|\\|=", "name": "keyword.operator.assignment.compound.bitwise.cpp" }, { "match": "<<|>>", "name": "keyword.operator.bitwise.shift.cpp" }, { "match": "!=|<=|>=|==|<|>", "name": "keyword.operator.comparison.cpp" }, { "match": "&&|!|\\|\\|", "name": "keyword.operator.logical.cpp" }, { "match": "&|\\||\\^|~", "name": "keyword.operator.cpp" }, { "include": "source.cpp#assignment_operator" }, { "match": "%|\\*|\\/|-|\\+", "name": "keyword.operator.cpp" }, { "include": "#ternary_operator" } ] }, "parameter": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)", "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "endCaptures": { "1": { "name": "punctuation.separator.delimiter.comma.cpp" } }, "name": "meta.parameter.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#function_pointer_parameter" }, { "include": "#decltype" }, { "include": "source.cpp#vararg_ellipses" }, { "match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)", "captures": { "1": { "patterns": [ { "include": "#storage_types" } ] }, "2": { "name": "storage.modifier.specifier.parameter.cpp" }, "3": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" }, "12": { "name": "storage.type.cpp storage.type.built-in.cpp" }, "13": { "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" }, "14": { "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" }, "15": { "name": "entity.name.type.parameter.cpp" }, "16": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "18": { "name": "comment.block.cpp" }, "19": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "include": "#storage_types" }, { "include": "source.cpp#scope_resolution_parameter_inner_generated" }, { "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", "name": "storage.type.$0.cpp" }, { "begin": "(?<==)", "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "1": { "name": "punctuation.separator.delimiter.comma.cpp" } }, "patterns": [ { "include": "#evaluation_context" } ] }, { "match": "\\=", "name": "keyword.operator.assignment.cpp" }, { "match": "(?<!\\s|\\(|,|:)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "8": { "name": "comment.block.cpp" }, "9": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "include": "#attributes_context" }, { "begin": "\\[", "end": "\\]|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.begin.bracket.square.array.type.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.end.bracket.square.array.type.cpp" } }, "name": "meta.bracket.square.array.cpp", "patterns": [ { "include": "#evaluation_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", "name": "entity.name.type.parameter.cpp" }, { "include": "#template_call_range" }, { "match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))", "captures": { "0": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "6": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "7": { "name": "comment.block.cpp" }, "8": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } } ] }, "parameter_or_maybe_value": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)", "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "endCaptures": { "1": { "name": "punctuation.separator.delimiter.comma.cpp" } }, "name": "meta.parameter.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#function_pointer_parameter" }, { "include": "source.cpp#memory_operators" }, { "include": "#builtin_storage_type_initilizer" }, { "include": "#curly_initializer" }, { "include": "#decltype" }, { "include": "source.cpp#vararg_ellipses" }, { "match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)", "captures": { "1": { "patterns": [ { "include": "#storage_types" } ] }, "2": { "name": "storage.modifier.specifier.parameter.cpp" }, "3": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" }, "12": { "name": "storage.type.cpp storage.type.built-in.cpp" }, "13": { "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" }, "14": { "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" }, "15": { "name": "entity.name.type.parameter.cpp" }, "16": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "18": { "name": "comment.block.cpp" }, "19": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "include": "#storage_types" }, { "include": "#function_call" }, { "include": "source.cpp#scope_resolution_parameter_inner_generated" }, { "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", "name": "storage.type.$0.cpp" }, { "begin": "(?<==)", "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "1": { "name": "punctuation.separator.delimiter.comma.cpp" } }, "patterns": [ { "include": "#evaluation_context" } ] }, { "match": "(?<!\\s|\\(|,|:)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "8": { "name": "comment.block.cpp" }, "9": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "include": "#attributes_context" }, { "begin": "\\[", "end": "\\]|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.begin.bracket.square.array.type.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.end.bracket.square.array.type.cpp" } }, "name": "meta.bracket.square.array.cpp", "patterns": [ { "include": "#evaluation_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", "name": "entity.name.type.parameter.cpp" }, { "include": "#template_call_range" }, { "match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))", "captures": { "0": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#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" } ] }, "parentheses": { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parens.begin.bracket.round.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parens.end.bracket.round.cpp" } }, "name": "meta.parens.cpp", "patterns": [ { "include": "source.cpp#over_qualified_types" }, { "match": "(?<!:):(?!:)", "name": "punctuation.separator.colon.range-based.cpp" }, { "include": "#evaluation_context" } ] }, "pragma": { "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b", "end": "(?<!\\\\)(?=\\n)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "keyword.control.directive.pragma.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "punctuation.definition.directive.cpp" } }, "endCaptures": {}, "name": "meta.preprocessor.pragma.cpp", "patterns": [ { "include": "#comments" }, { "include": "#string_context" }, { "match": "[a-zA-Z_$][\\w\\-$]*", "name": "entity.other.attribute-name.pragma.preprocessor.cpp" }, { "include": "#preprocessor_number_literal" }, { "include": "source.cpp#line_continuation_character" } ] }, "preprocessor_conditional_context": { "patterns": [ { "include": "#preprocessor_conditional_defined" }, { "include": "#comments" }, { "include": "source.cpp#language_constants" }, { "include": "#string_context" }, { "include": "source.cpp#d9bc4796b0b_preprocessor_number_literal" }, { "include": "#operators" }, { "include": "source.cpp#predefined_macros" }, { "include": "source.cpp#macro_name" }, { "include": "source.cpp#line_continuation_character" } ] }, "preprocessor_conditional_defined": { "begin": "((?<!\\w)defined(?!\\w))(\\()", "end": "(?:\\)|(?<!\\\\)(?=\\n))|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.control.directive.conditional.defined.cpp" }, "2": { "name": "punctuation.section.parens.control.defined.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parens.control.defined.cpp" } }, "patterns": [ { "include": "source.cpp#macro_name" } ] }, "preprocessor_conditional_parentheses": { "begin": "\\(", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.parens.begin.bracket.round.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parens.end.bracket.round.cpp" } }, "name": "meta.parens.preprocessor.conditional.cpp" }, "preprocessor_conditional_range": { "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))", "end": "^(?!\\s*+#\\s*(?:else|endif))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "keyword.control.directive.conditional.$6.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "punctuation.definition.directive.cpp" }, "6": {} }, "endCaptures": {}, "patterns": [ { "begin": "\\G(?<=ifndef|ifdef|if)", "end": "(?<!\\\\)(?=\\n)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.preprocessor.conditional.cpp", "patterns": [ { "include": "#preprocessor_conditional_context" } ] }, { "include": "$self" } ] }, "preprocessor_context": { "patterns": [ { "include": "source.cpp#pragma_mark" }, { "include": "#pragma" }, { "include": "source.cpp#include" }, { "include": "#line" }, { "include": "#diagnostic" }, { "include": "source.cpp#undef" }, { "include": "#preprocessor_conditional_range" }, { "include": "source.cpp#single_line_macro" }, { "include": "#macro" }, { "include": "source.cpp#preprocessor_conditional_standalone" }, { "include": "source.cpp#macro_argument" } ] }, "sizeof_operator": { "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" } }, "contentName": "meta.arguments.operator.sizeof", "patterns": [ { "include": "#evaluation_context" } ] }, "sizeof_variadic_operator": { "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" } }, "contentName": "meta.arguments.operator.sizeof.variadic", "patterns": [ { "include": "#evaluation_context" } ] }, "square_brackets": { "name": "meta.bracket.square.access", "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", "beginCaptures": { "1": { "name": "variable.other.object" }, "2": { "name": "punctuation.definition.begin.bracket.square" } }, "end": "\\]|(?=(?<!\\\\)\n)", "endCaptures": { "0": { "name": "punctuation.definition.end.bracket.square" } }, "patterns": [ { "include": "#evaluation_context" } ] }, "static_assert": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "7": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "8": { "name": "comment.block.cpp" }, "9": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "10": { "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp" } }, "patterns": [ { "begin": "(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\\")?)", "end": "(?=\\))|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "punctuation.separator.delimiter.comma.cpp" } }, "endCaptures": {}, "name": "meta.static_assert.message.cpp", "patterns": [ { "include": "#string_context" } ] }, { "include": "#evaluation_context" } ] }, "storage_types": { "patterns": [ { "include": "source.cpp#storage_specifiers" }, { "include": "source.cpp#inline_builtin_storage_type" }, { "include": "#decltype" }, { "include": "source.cpp#typename" } ] }, "string_context": { "patterns": [ { "begin": "((?:u|u8|U|L)?)\"", "end": "\"|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cpp" }, "1": { "name": "meta.encoding.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cpp" } }, "name": "string.quoted.double.cpp", "patterns": [ { "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})", "name": "constant.character.escape.cpp" }, { "match": "\\\\['\"?\\\\abfnrtv]", "name": "constant.character.escape.cpp" }, { "match": "\\\\[0-7]{1,3}", "name": "constant.character.escape.cpp" }, { "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", "captures": { "1": { "name": "constant.character.escape.cpp" }, "2": { "name": "invalid.illegal.unknown-escape.cpp" } } }, { "include": "source.cpp#string_escapes_context_c" } ] }, { "begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'", "end": "'|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cpp" }, "1": { "name": "meta.encoding.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cpp" } }, "name": "string.quoted.single.cpp", "patterns": [ { "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", "captures": { "1": { "name": "constant.character.escape.cpp" }, "2": { "name": "invalid.illegal.unknown-escape.cpp" } } }, { "include": "source.cpp#string_escapes_context_c" }, { "include": "source.cpp#line_continuation_character" } ] }, { "begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(", "end": "\\)(?:(?:_r|re)|regex)\\\"|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cpp" }, "1": { "name": "meta.encoding.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cpp" } }, "name": "string.quoted.double.raw.regex.cpp", "patterns": [ { "include": "source.regexp.python" } ] }, { "begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(", "end": "\\)(?:glsl|GLSL)\\\"|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cpp" }, "1": { "name": "meta.encoding.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cpp" } }, "name": "meta.string.quoted.double.raw.glsl.cpp", "patterns": [ { "include": "source.glsl" } ] }, { "begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(", "end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cpp" }, "1": { "name": "meta.encoding.cpp" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cpp" } }, "name": "meta.string.quoted.double.raw.sql.cpp", "patterns": [ { "include": "source.sql" } ] }, { "begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin" }, "1": { "name": "meta.encoding" }, "3": { "name": "invalid.illegal.delimiter-too-long" } }, "end": "\\)\\2(\\3)\"|(?=(?<!\\\\)\n)", "endCaptures": { "0": { "name": "punctuation.definition.string.end" }, "1": { "name": "invalid.illegal.delimiter-too-long" } }, "name": "string.quoted.double.raw" } ] }, "struct_block": { "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.struct.cpp" }, "1": { "name": "storage.type.$1.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", "captures": { "1": { "name": "storage.type.modifier.final.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", "captures": { "1": { "name": "entity.name.type.struct.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "storage.type.modifier.final.cpp" }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "DLLEXPORT", "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" } ] }, "12": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "18": { "name": "comment.block.cpp" }, "19": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "20": { "name": "punctuation.separator.colon.inheritance.cpp" } }, "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.block.struct.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" } }, "name": "meta.head.struct.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#inheritance_context" }, { "include": "#template_call_range" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.struct.cpp" } }, "name": "meta.body.struct.cpp", "patterns": [ { "include": "#function_pointer" }, { "include": "#static_assert" }, { "include": "#constructor_inline" }, { "include": "#destructor_inline" }, { "include": "$self" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.struct.cpp", "patterns": [ { "include": "$self" } ] } ] }, "switch_conditional_parentheses": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp" } }, "name": "meta.conditional.switch.cpp", "patterns": [ { "include": "#evaluation_context" }, { "include": "#c_conditional_context" } ] }, "switch_statement": { "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)switch(?!\\w))", "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.switch.cpp" }, "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "5": { "name": "keyword.control.switch.cpp" } }, "endCaptures": {}, "name": "meta.block.switch.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.switch.cpp" } }, "name": "meta.head.switch.cpp", "patterns": [ { "include": "#switch_conditional_parentheses" }, { "include": "$self" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.switch.cpp" } }, "name": "meta.body.switch.cpp", "patterns": [ { "include": "#default_statement" }, { "include": "#case_statement" }, { "include": "$self" }, { "include": "#block_innards" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.switch.cpp", "patterns": [ { "include": "$self" } ] } ] }, "template_call_context": { "patterns": [ { "include": "#ever_present_context" }, { "include": "#template_call_range" }, { "include": "#storage_types" }, { "include": "source.cpp#language_constants" }, { "include": "source.cpp#scope_resolution_template_call_inner_generated" }, { "include": "#operators" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma_in_template_argument" }, { "include": "source.cpp#qualified_type" } ] }, "template_call_range": { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, "template_definition": { "begin": "(?<!\\w)(template)(?:(?:\\s)+)?(<)", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "storage.type.template.cpp" }, "2": { "name": "punctuation.section.angle-brackets.start.template.definition.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.definition.cpp" } }, "name": "meta.template.definition.cpp", "patterns": [ { "begin": "(?<=\\w)(?:(?:\\s)+)?<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "patterns": [ { "include": "#template_call_context" } ] }, { "include": "#template_definition_context" } ] }, "template_definition_context": { "patterns": [ { "include": "source.cpp#scope_resolution_template_definition_inner_generated" }, { "include": "source.cpp#template_definition_argument" }, { "include": "source.cpp#template_argument_defaulted" }, { "include": "source.cpp#template_call_innards" }, { "include": "#evaluation_context" } ] }, "ternary_operator": { "begin": "\\?", "end": ":|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "keyword.operator.ternary.cpp" } }, "endCaptures": { "0": { "name": "keyword.operator.ternary.cpp" } }, "patterns": [ { "include": "#ever_present_context" }, { "include": "#string_context" }, { "include": "source.cpp#number_literal" }, { "include": "#method_access" }, { "include": "source.cpp#member_access" }, { "include": "source.cpp#predefined_macros" }, { "include": "#operators" }, { "include": "source.cpp#memory_operators" }, { "include": "source.cpp#wordlike_operators" }, { "include": "source.cpp#type_casting_operators" }, { "include": "source.cpp#control_flow_keywords" }, { "include": "source.cpp#exception_keywords" }, { "include": "source.cpp#the_this_keyword" }, { "include": "source.cpp#language_constants" }, { "include": "#builtin_storage_type_initilizer" }, { "include": "source.cpp#qualifiers_and_specifiers_post_parameters" }, { "include": "source.cpp#functional_specifiers_pre_parameters" }, { "include": "#storage_types" }, { "include": "#lambdas" }, { "include": "#attributes_context" }, { "include": "#parentheses" }, { "include": "#function_call" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "include": "#square_brackets" }, { "include": "source.cpp#semicolon" }, { "include": "source.cpp#comma" } ], "applyEndPatternLast": 1 }, "typedef_class": { "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)class(?!\\w))", "end": "(?<=;)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.other.typedef.cpp" } }, "endCaptures": {}, "patterns": [ { "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.class.cpp" }, "1": { "name": "storage.type.$1.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", "captures": { "1": { "name": "storage.type.modifier.final.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", "captures": { "1": { "name": "entity.name.type.class.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "storage.type.modifier.final.cpp" }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "DLLEXPORT", "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" } ] }, "12": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "18": { "name": "comment.block.cpp" }, "19": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "20": { "name": "punctuation.separator.colon.inheritance.cpp" } }, "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.block.class.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.class.cpp" } }, "name": "meta.head.class.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#inheritance_context" }, { "include": "#template_call_range" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.class.cpp" } }, "name": "meta.body.class.cpp", "patterns": [ { "include": "#function_pointer" }, { "include": "#static_assert" }, { "include": "#constructor_inline" }, { "include": "#destructor_inline" }, { "include": "$self" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.class.cpp", "patterns": [ { "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", "captures": { "1": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.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": "source.cpp#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": "source.cpp#inline_comment" } ] }, "11": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "12": { "name": "comment.block.cpp" }, "13": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "14": { "name": "entity.name.type.alias.cpp" } } }, { "match": "," } ] } ] } ] }, "typedef_function_pointer": { "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))", "end": "(?<=;)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.other.typedef.cpp" } }, "endCaptures": {}, "patterns": [ { "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "meta.qualified_type.cpp", "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" }, { "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", "name": "storage.type.$0.cpp" }, { "include": "#attributes_context" }, { "include": "#storage_types" }, { "include": "source.cpp#number_literal" }, { "include": "#string_context" }, { "include": "source.cpp#comma" }, { "include": "source.cpp#scope_resolution_inner_generated" }, { "begin": "<", "end": ">|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "punctuation.section.angle-brackets.begin.template.call.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.angle-brackets.end.template.call.cpp" } }, "name": "meta.template.call.cpp", "patterns": [ { "include": "#template_call_context" } ] }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.type.cpp" } ] }, "2": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "3": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "::", "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" }, { "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", "name": "entity.name.scope-resolution.type.cpp" }, { "include": "#template_call_range" } ] }, "12": { "patterns": [ { "include": "#template_call_range" } ] }, "13": {}, "14": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "15": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "16": { "name": "comment.block.cpp" }, "17": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "18": {}, "19": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "3": { "name": "comment.block.cpp" }, "4": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "name": "invalid.illegal.reference-type.cpp" }, { "match": "\\&", "name": "storage.modifier.reference.cpp" } ] }, "20": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "21": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "22": { "name": "comment.block.cpp" }, "23": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "24": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "25": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "26": { "name": "comment.block.cpp" }, "27": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "28": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "29": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "30": { "name": "comment.block.cpp" }, "31": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "32": { "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" }, "33": { "name": "punctuation.definition.function.pointer.dereference.cpp" }, "34": { "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp" }, "35": { "name": "punctuation.definition.begin.bracket.square.cpp" }, "36": { "patterns": [ { "include": "#evaluation_context" } ] }, "37": { "name": "punctuation.definition.end.bracket.square.cpp" }, "38": { "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" }, "39": { "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" } }, "endCaptures": { "1": { "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } }, "patterns": [ { "include": "#function_parameter_context" } ] } ] }, "typedef_struct": { "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)struct(?!\\w))", "end": "(?<=;)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.other.typedef.cpp" } }, "endCaptures": {}, "patterns": [ { "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.struct.cpp" }, "1": { "name": "storage.type.$1.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", "captures": { "1": { "name": "storage.type.modifier.final.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", "captures": { "1": { "name": "entity.name.type.struct.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "storage.type.modifier.final.cpp" }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "DLLEXPORT", "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" } ] }, "12": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "18": { "name": "comment.block.cpp" }, "19": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "20": { "name": "punctuation.separator.colon.inheritance.cpp" } }, "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.block.struct.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" } }, "name": "meta.head.struct.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#inheritance_context" }, { "include": "#template_call_range" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.struct.cpp" } }, "name": "meta.body.struct.cpp", "patterns": [ { "include": "#function_pointer" }, { "include": "#static_assert" }, { "include": "#constructor_inline" }, { "include": "#destructor_inline" }, { "include": "$self" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.struct.cpp", "patterns": [ { "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", "captures": { "1": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.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": "source.cpp#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": "source.cpp#inline_comment" } ] }, "11": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "12": { "name": "comment.block.cpp" }, "13": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "14": { "name": "entity.name.type.alias.cpp" } } }, { "match": "," } ] } ] } ] }, "typedef_union": { "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)union(?!\\w))", "end": "(?<=;)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.other.typedef.cpp" } }, "endCaptures": {}, "patterns": [ { "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.union.cpp" }, "1": { "name": "storage.type.$1.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", "captures": { "1": { "name": "storage.type.modifier.final.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", "captures": { "1": { "name": "entity.name.type.union.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "storage.type.modifier.final.cpp" }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "DLLEXPORT", "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" } ] }, "12": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "18": { "name": "comment.block.cpp" }, "19": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "20": { "name": "punctuation.separator.colon.inheritance.cpp" } }, "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.block.union.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.union.cpp" } }, "name": "meta.head.union.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#inheritance_context" }, { "include": "#template_call_range" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.union.cpp" } }, "name": "meta.body.union.cpp", "patterns": [ { "include": "#function_pointer" }, { "include": "#static_assert" }, { "include": "#constructor_inline" }, { "include": "#destructor_inline" }, { "include": "$self" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.union.cpp", "patterns": [ { "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", "captures": { "1": { "patterns": [ { "match": "\\*", "name": "storage.modifier.pointer.cpp" }, { "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", "captures": { "1": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "2": { "name": "comment.block.cpp punctuation.definition.comment.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": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.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": "source.cpp#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": "source.cpp#inline_comment" } ] }, "11": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "12": { "name": "comment.block.cpp" }, "13": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "14": { "name": "entity.name.type.alias.cpp" } } }, { "match": "," } ] } ] } ] }, "typeid_operator": { "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", "end": "\\)|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" } }, "endCaptures": { "0": { "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" } }, "contentName": "meta.arguments.operator.typeid", "patterns": [ { "include": "#evaluation_context" } ] }, "union_block": { "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", "beginCaptures": { "0": { "name": "meta.head.union.cpp" }, "1": { "name": "storage.type.$1.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "patterns": [ { "include": "#attributes_context" }, { "include": "source.cpp#number_literal" } ] }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "11": { "patterns": [ { "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", "captures": { "1": { "name": "storage.type.modifier.final.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", "captures": { "1": { "name": "entity.name.type.union.cpp" }, "2": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "3": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "4": { "name": "comment.block.cpp" }, "5": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "6": { "name": "storage.type.modifier.final.cpp" }, "7": { "patterns": [ { "include": "source.cpp#inline_comment" } ] }, "8": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "9": { "name": "comment.block.cpp" }, "10": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] } } }, { "match": "DLLEXPORT", "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" }, { "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" } ] }, "12": { "patterns": [ { "include": "source.cpp#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": "source.cpp#inline_comment" } ] }, "17": { "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" }, "18": { "name": "comment.block.cpp" }, "19": { "patterns": [ { "match": "\\*\\/", "name": "comment.block.cpp punctuation.definition.comment.end.cpp" }, { "match": "\\*", "name": "comment.block.cpp" } ] }, "20": { "name": "punctuation.separator.colon.inheritance.cpp" } }, "endCaptures": { "1": { "name": "punctuation.terminator.statement.cpp" }, "2": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.block.union.cpp", "patterns": [ { "begin": "\\G ?", "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.begin.bracket.curly.union.cpp" } }, "name": "meta.head.union.cpp", "patterns": [ { "include": "#ever_present_context" }, { "include": "#inheritance_context" }, { "include": "#template_call_range" } ] }, { "begin": "(?<=\\{|<%|\\?\\?<)", "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": { "0": { "name": "punctuation.section.block.end.bracket.curly.union.cpp" } }, "name": "meta.body.union.cpp", "patterns": [ { "include": "#function_pointer" }, { "include": "#static_assert" }, { "include": "#constructor_inline" }, { "include": "#destructor_inline" }, { "include": "$self" } ] }, { "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", "beginCaptures": {}, "endCaptures": {}, "name": "meta.tail.union.cpp", "patterns": [ { "include": "$self" } ] } ] }, "using_namespace": { "begin": "(?<!\\w)(using)(?:\\s)+(namespace)(?:\\s)+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)", "end": ";|(?=(?<!\\\\)\n)", "beginCaptures": { "1": { "name": "keyword.other.using.directive.cpp" }, "2": { "name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp" }, "3": { "patterns": [ { "include": "source.cpp#scope_resolution_namespace_using_inner_generated" } ] }, "4": { "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" }, "5": { "patterns": [ { "include": "#template_call_range" } ] }, "6": {}, "7": { "name": "entity.name.namespace.cpp" } }, "endCaptures": { "0": { "name": "punctuation.terminator.statement.cpp" } }, "name": "meta.using-namespace.cpp" } } }