github-linguist 9.1.0 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/github-linguist +3 -3
- data/grammars/etc.json +1 -1
- data/grammars/inline.edgeql.json +1 -1
- data/grammars/liquid.injection.json +1 -1
- data/grammars/source.4dm.json +1 -1
- data/grammars/source.QB64.json +1 -1
- data/grammars/source.abl.json +1 -1
- data/grammars/source.aiken.json +1 -0
- data/grammars/source.apex.json +1 -1
- data/grammars/source.ballerina.json +1 -1
- data/grammars/source.brs.json +1 -1
- data/grammars/source.c++.json +1 -1
- data/grammars/source.c.calendar.json +1 -0
- data/grammars/source.c.json +1 -1
- data/grammars/source.cl.json +1 -1
- data/grammars/source.clue.json +1 -0
- data/grammars/source.cmake.json +1 -1
- data/grammars/source.cmakecache.json +1 -1
- data/grammars/source.cobol.json +1 -1
- data/grammars/source.curlrc.json +1 -1
- data/grammars/source.daslang.json +1 -0
- data/grammars/source.dds.dspf.json +1 -1
- data/grammars/source.erlang.json +1 -1
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.git-revlist.json +1 -1
- data/grammars/source.gleam.json +1 -1
- data/grammars/source.hx.json +1 -1
- data/grammars/source.ilecobol.json +1 -0
- data/grammars/source.jai.json +1 -1
- data/grammars/source.json.comments.json +1 -1
- data/grammars/source.julia.console.json +1 -1
- data/grammars/source.julia.json +1 -1
- data/grammars/source.just.json +1 -1
- data/grammars/source.koka.json +1 -0
- data/grammars/source.leo.json +1 -0
- data/grammars/source.livescript.json +1 -1
- data/grammars/source.m2.json +1 -1
- data/grammars/source.m3u.json +1 -0
- data/grammars/source.moonbit.json +1 -1
- data/grammars/source.nasl.json +1 -1
- data/grammars/source.nim.json +1 -1
- data/grammars/source.nushell.json +1 -1
- data/grammars/source.objc.json +1 -1
- data/grammars/source.odin.json +1 -1
- data/grammars/source.openqasm.json +1 -0
- data/grammars/source.rascal.json +1 -1
- data/grammars/source.rescript.json +1 -1
- data/grammars/source.roc.json +1 -1
- data/grammars/source.rust.json +1 -1
- data/grammars/source.sail.json +1 -0
- data/grammars/source.slang.json +1 -1
- data/grammars/source.slint.json +1 -1
- data/grammars/source.smithy.json +1 -1
- data/grammars/source.soql.json +1 -1
- data/grammars/source.sway.json +1 -1
- data/grammars/source.tact.json +1 -1
- data/grammars/source.talon.json +1 -1
- data/grammars/source.templ.json +1 -1
- data/grammars/source.toc.json +1 -1
- data/grammars/source.torrc.json +1 -0
- data/grammars/source.typst.json +1 -1
- data/grammars/source.uplc.json +1 -0
- data/grammars/source.vba.json +1 -1
- data/grammars/source.vento.json +1 -0
- data/grammars/source.vue.json +1 -1
- data/grammars/source.wdl.json +1 -1
- data/grammars/source.wit.json +1 -1
- data/grammars/source.zmodel.json +1 -0
- data/grammars/text.adblock.json +1 -1
- data/grammars/text.html.liquid.json +1 -1
- data/grammars/text.html.vento.json +1 -0
- data/grammars/text.valve-cfg.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/generated.rb +23 -1
- data/lib/linguist/heuristics.yml +8 -1
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +143 -10
- data/lib/linguist/samples.json +1 -1
- metadata +21 -11
- data/grammars/source.c.platform.json +0 -1
data/grammars/source.slang.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Slang","scopeName":"source.slang","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-conditional"},{"include":"#predefined_macros"},{"include":"#comments"},{"include":"#switch_statement"},{"name":"keyword.control.slang","match":"\\b(break|continue|do|else|for|goto|if|return|while|try|throw|catch|defer|discard)\\b"},{"include":"#storage_types"},{"name":"keyword.other.typedef.slang","match":"typedef"},{"name":"keyword.other.additional.slang","match":"\\b(throws|using|__generic|func|associatedtype|public|internal|private|import|module|implementing|__include|export|__exported|groupshared|let|var|property|extension|in|out|inout|ref|namespace|this|cbuffer|tbuffer|(dynamic_)?uniform|typealias|new|__extern_cpp|__(target|stage)_intrinsic|__intrinsic_asm|spirv_asm|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each|where|typename)\\b"},{"name":"storage.modifier.slang","match":"\\b(const|extern|register|restrict|static|volatile|inline|nointerpolation|precise|row_major|column_major|snorm|unorm|globallycoherent|layout)\\b"},{"name":"constant.other.variable.mac-classic.slang","match":"\\bk[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.global.mac-classic.slang","match":"\\bg[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.static.mac-classic.slang","match":"\\bs[A-Z]\\w*\\b"},{"name":"constant.language.slang","match":"\\b(nullptr|none|true|false)\\b"},{"include":"#operators"},{"include":"#numbers"},{"include":"#strings"},{"name":"meta.preprocessor.macro.slang","begin":"((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?\u003c!\\w)[a-zA-Z_]\\w*(?!\\w))(?:(\\()([^()\\\\]+)(\\)))?","end":"(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-define-line-contents"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"10":{"name":"punctuation.definition.parameters.end.slang"},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.directive.define.slang"},"6":{"name":"punctuation.definition.directive.slang"},"7":{"name":"entity.name.function.preprocessor.slang"},"8":{"name":"punctuation.definition.parameters.begin.slang"},"9":{"patterns":[{"match":"(?\u003c=[(,])\\s*((?\u003c!\\w)[a-zA-Z_]\\w*(?!\\w))\\s*","captures":{"1":{"name":"variable.parameter.preprocessor.slang"}}},{"name":"punctuation.separator.parameters.slang","match":","},{"name":"ellipses.slang punctuation.vararg-ellipses.variable.parameter.preprocessor.slang","match":"\\.\\.\\."}]}}},{"name":"meta.preprocessor.diagnostic.slang","begin":"^\\s*((#)\\s*(error|warning))\\b\\s*","end":"(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"string.quoted.double.slang","begin":"\"","end":"\"|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.unquoted.single.slang","begin":"[^'\"]","end":"(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"},{"include":"#comments"}]}],"beginCaptures":{"1":{"name":"keyword.control.directive.diagnostic.$3.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.include.slang","begin":"^\\s*((#)\\s*(include(?:_next)?|import|module|implementing|__include))\\b\\s*","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#line_continuation_character"},{"name":"string.quoted.double.include.slang","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.other.lt-gt.include.slang","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}],"beginCaptures":{"1":{"name":"keyword.control.directive.$3.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#pragma-mark"},{"include":"#preprocessor-version"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*line)\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#strings"},{"include":"#numbers"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.line.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.slang","begin":"^\\s*(?:((#)\\s*undef))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"entity.name.function.preprocessor.slang","match":"[a-zA-Z_$][\\w$]*"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.undef.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.pragma.slang","begin":"^\\s*(?:((#)\\s*pragma))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#strings"},{"name":"entity.other.attribute-name.pragma.preprocessor.slang","match":"[a-zA-Z_$][\\w\\-$]*"},{"include":"#numbers"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.pragma.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"support.type.stdint.slang","match":"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|intptr_t|uintptr_t)\n\\b"},{"name":"support.type.string.slang","match":"(?x) \\b(string)\\b"},{"name":"support.type.ptr.slang","match":"(?x) \\b(Ptr)\\b"},{"name":"support.type.hlsl.slang","match":"(?x) \\b((RW)?StructuredBuffer|(RW)?Buffer|(RW)?ByteAddressBuffer|ConstantBuffer|ParameterBlock|(RW)?Texture([1-3]D|Cube)(MS)?(Array)?|Sampler(Comparison)?State|RaytracingAccelerationStructure)\\b"},{"name":"support.type.vector.slang","match":"(?x) \\b(bool|char|half|float|int|double|uint)[1-4](x[1-4])?\\b"},{"include":"#block"},{"include":"#parens"},{"include":"#line_continuation_character"},{"name":"meta.bracket.square.access.slang","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))?(\\[)(?!\\])","end":"\\]","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.slang"},"2":{"name":"punctuation.definition.begin.bracket.square.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.slang"}}},{"name":"storage.modifier.array.bracket.square.slang","match":"\\[\\s*\\]"},{"name":"punctuation.terminator.statement.slang","match":";"},{"name":"punctuation.separator.delimiter.slang","match":","}],"repository":{"access-method":{"name":"meta.function-call.member.slang","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))\\s*(?:(\\.)|(-\u003e))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:-\u003e)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"name":"punctuation.separator.dot-access.slang","match":"\\."},{"name":"punctuation.separator.pointer-access.slang","match":"-\u003e"},{"name":"variable.object.slang","match":"[a-zA-Z_][a-zA-Z_0-9]*"},{"name":"everything.else.slang","match":".+"}]},"5":{"name":"entity.name.function.member.slang"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.slang"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.member.slang"}}},"backslash_escapes":{"name":"constant.character.escape.slang","match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )"},"block":{"patterns":[{"name":"meta.block.slang","begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-conditional-block"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#c_function_call"},{"name":"meta.initialization.slang","begin":"(?x)\n(?:\n (?:\n\t(?=\\s)(?\u003c!else|new|return)\n\t(?\u003c=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?\u003c=operator) (?:[-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.other.slang"},"2":{"name":"punctuation.section.parens.begin.bracket.round.initialization.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.initialization.slang"}}},{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"include":"#parens-block"},{"include":"$base"}]},"c_conditional_context":{"patterns":[{"include":"$self"},{"include":"#block_innards"}]},"c_function_call":{"name":"meta.function-call.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|__target_intrinsic|__intrinsic_asm|spirv_asm|expand|each)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?\u003c=\\))(?!\\w)","patterns":[{"include":"#function-call-innards"}]},"case_statement":{"name":"meta.conditional.case.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)case(?!\\w))","end":"(:)","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.case.slang"}},"endCaptures":{"1":{"name":"punctuation.separator.colon.case.slang"}}},"comments":{"patterns":[{"name":"comment.line.double-slash.documentation.slang","begin":"(?:^)(?\u003e\\s*)(\\/\\/[!\\/]+)","end":"(?\u003c=\\n)(?\u003c!\\\\\\n)","patterns":[{"include":"#line_continuation_character"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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.slang","match":"(?\u003c=[\\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(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out|ref"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.documentation.slang"}}},{"name":"comment.block.documentation.slang","match":"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)","captures":{"1":{"name":"punctuation.definition.comment.begin.documentation.slang"},"2":{"patterns":[{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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.slang","match":"(?\u003c=[\\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(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}]},"3":{"name":"punctuation.definition.comment.end.documentation.slang"}}},{"name":"comment.block.documentation.slang","begin":"((?\u003e\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))","end":"([!*]*\\*\\/)","patterns":[{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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.slang","match":"(?\u003c=[\\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(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.documentation.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.end.documentation.slang"}}},{"name":"comment.block.banner.slang","match":"^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.slang"}}},{"name":"comment.block.slang","begin":"(\\/\\*)","end":"(\\*\\/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.end.slang"}}},{"name":"comment.line.banner.slang","match":"^\\/\\/ =(\\s*.*?)\\s*=$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.slang"}}},{"begin":"((?:^[ \\t]+)?)(?=\\/\\/)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.slang","begin":"(\\/\\/)","end":"(?=\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.slang"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.slang"}}}]},"default_statement":{"name":"meta.conditional.case.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)default(?!\\w))","end":"(:)","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.default.slang"}},"endCaptures":{"1":{"name":"punctuation.separator.colon.case.default.slang"}}},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","end":"^\\s*#\\s*endif\\b","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},"evaluation_context":{"patterns":[{"include":"#function-call-innards"},{"include":"$base"}]},"function-call-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#operators"},{"begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.slang"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"#block_innards"}]},"function-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#operators"},{"include":"#vararg_ellipses"},{"name":"meta.function.definition.parameters.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#probably_a_parameter"},{"include":"#function-innards"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.parameters.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.slang"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"$base"}]},"inline_comment":{"match":"(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/))","captures":{"1":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"2":{"name":"comment.block.slang"},"3":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},"line_continuation_character":{"patterns":[{"match":"(\\\\)\\n","captures":{"1":{"name":"constant.character.escape.line-continuation.slang"}}}]},"member_access":{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"}}}]},"5":{"name":"variable.other.member.slang"}}},"method_access":{"contentName":"meta.function-call.member.slang","begin":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()","end":"(\\))","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"}}}]},"5":{"name":"entity.name.function.member.slang"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.slang"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.member.slang"}}},"numbers":{"match":"(?\u003c!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-])*","captures":{"0":{"patterns":[{"begin":"(?=.)","end":"$","patterns":[{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfFzZhH](?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.hexadecimal.slang"},"10":{"name":"keyword.operator.minus.exponent.hexadecimal.slang"},"11":{"name":"constant.numeric.exponent.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.slang"},"2":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"constant.numeric.hexadecimal.slang"},"5":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric"},"8":{"name":"keyword.other.unit.exponent.hexadecimal.slang"},"9":{"name":"keyword.operator.plus.exponent.hexadecimal.slang"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfFzZhH](?!\\w))?$","captures":{"10":{"name":"keyword.operator.minus.exponent.decimal.slang"},"11":{"name":"constant.numeric.exponent.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.slang"},"2":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"constant.numeric.decimal.point.slang"},"5":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric"},"8":{"name":"keyword.other.unit.exponent.decimal.slang"},"9":{"name":"keyword.operator.plus.exponent.decimal.slang"}}},{"match":"(\\G0[bB])([01](?:[01]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?|[uU]?z|z[uU])|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.binary.slang"},"2":{"name":"constant.numeric.binary.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G0)((?:[0-7]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?|[uU]?z|z[uU])|LL?[uU]?)|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.octal.slang"},"2":{"name":"constant.numeric.octal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?|[uU]?z|z[uU])|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.hexadecimal.slang"},"2":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"5":{"name":"keyword.other.unit.exponent.hexadecimal.slang"},"6":{"name":"keyword.operator.plus.exponent.hexadecimal.slang"},"7":{"name":"keyword.operator.minus.exponent.hexadecimal.slang"},"8":{"name":"constant.numeric.exponent.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?|[uU]?z|z[uU])|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$","captures":{"2":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"5":{"name":"keyword.other.unit.exponent.decimal.slang"},"6":{"name":"keyword.operator.plus.exponent.decimal.slang"},"7":{"name":"keyword.operator.minus.exponent.decimal.slang"},"8":{"name":"constant.numeric.exponent.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"name":"invalid.illegal.constant.numeric","match":"(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-])+"}]}]}}},"operators":{"patterns":[{"name":"keyword.operator.sizeof.slang","match":"(?\u003c![\\w$])(sizeof|countof)(?![\\w$])"},{"name":"keyword.other.additional.slang","match":"(?\u003c![\\w$])(as)(?![\\w$])"},{"name":"keyword.other.additional.slang","match":"(?\u003c![\\w$])(is)(?![\\w$])"},{"name":"keyword.operator.decrement.slang","match":"--"},{"name":"keyword.operator.increment.slang","match":"\\+\\+"},{"name":"keyword.operator.assignment.compound.slang","match":"%=|\\+=|-=|\\*=|(?\u003c!\\()/="},{"name":"keyword.operator.assignment.compound.bitwise.slang","match":"\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.slang","match":"\u003c\u003c|\u003e\u003e"},{"name":"keyword.operator.comparison.slang","match":"!=|\u003c=|\u003e=|==|\u003c|\u003e"},{"name":"keyword.operator.logical.slang","match":"\u0026\u0026|!|\\|\\|"},{"name":"keyword.operator.slang","match":"\u0026|\\||\\^|~"},{"name":"keyword.operator.assignment.slang","match":"="},{"name":"keyword.operator.slang","match":"%|\\*|/|-|\\+"},{"begin":"(\\?)","end":"(:)","patterns":[{"include":"#function-call-innards"},{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.operator.ternary.slang"}},"endCaptures":{"1":{"name":"keyword.operator.ternary.slang"}}}]},"parens":{"name":"meta.parens.slang","begin":"\\(","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},"parens-block":{"name":"meta.parens.block.slang","begin":"\\(","end":"\\)","patterns":[{"include":"#block_innards"},{"name":"punctuation.range-based.slang","match":"(?-mix:(?\u003c!:):(?!:))"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},"pragma-mark":{"name":"meta.section.slang","match":"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))","captures":{"1":{"name":"meta.preprocessor.pragma.slang"},"2":{"name":"keyword.control.directive.pragma.pragma-mark.slang"},"3":{"name":"punctuation.definition.directive.slang"},"4":{"name":"entity.name.tag.pragma-mark.slang"}}},"predefined_macros":{"patterns":[{"match":"\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b","captures":{"1":{"name":"entity.name.other.preprocessor.macro.predefined.$1.slang"}}},{"name":"entity.name.other.preprocessor.macro.predefined.probably.$1.slang","match":"\\b__([A-Z_]+)__\\b"}]},"preprocessor-rule-conditional":{"patterns":[{"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#preprocessor-rule-enabled-elif"},{"include":"#preprocessor-rule-enabled-else"},{"include":"#preprocessor-rule-disabled-elif"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"match":"^\\s*#\\s*(else|elif|endif)\\b","captures":{"0":{"name":"invalid.illegal.stray-$1.slang"}}}]},"preprocessor-rule-conditional-block":{"patterns":[{"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#preprocessor-rule-enabled-elif-block"},{"include":"#preprocessor-rule-enabled-else-block"},{"include":"#preprocessor-rule-disabled-elif"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"match":"^\\s*#\\s*(else|elif|endif)\\b","captures":{"0":{"name":"invalid.illegal.stray-$1.slang"}}}]},"preprocessor-rule-conditional-line":{"patterns":[{"name":"keyword.control.directive.conditional.slang","match":"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|\u0026\u0026|\\|\\||\\\\\\s*\\n)))"},{"name":"invalid.illegal.macro-name.slang","match":"\\bdefined\\b"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"begin":"\\?","end":":","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"0":{"name":"keyword.operator.ternary.slang"}},"endCaptures":{"0":{"name":"keyword.operator.ternary.slang"}}},{"include":"#operators"},{"name":"constant.language.slang","match":"\\b(NULL|true|false|TRUE|FALSE)\\b"},{"name":"entity.name.function.preprocessor.slang","match":"[a-zA-Z_$][\\w$]*"},{"include":"#line_continuation_character"},{"begin":"\\(","end":"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}}]},"preprocessor-rule-define-line-blocks":{"patterns":[{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-blocks"},{"include":"#preprocessor-rule-define-line-contents"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"include":"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{"patterns":[{"include":"#vararg_ellipses"},{"name":"meta.block.slang","begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-blocks"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"name":"punctuation.section.parens.begin.bracket.round.slang","match":"\\("},{"name":"punctuation.section.parens.end.bracket.round.slang","match":"\\)"},{"name":"meta.function.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?\u003c=\\))(?!\\w)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}]},{"name":"string.quoted.double.slang","begin":"\"","end":"\"|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#string_escaped_char"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"include":"#method_access"},{"include":"#member_access"},{"include":"$base"}]},"preprocessor-rule-define-line-functions":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#vararg_ellipses"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#operators"},{"begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"(\\))|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.slang"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.slang"}}},{"begin":"\\(","end":"(\\))|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"include":"#preprocessor-rule-enabled-elif"},{"include":"#preprocessor-rule-enabled-else"},{"include":"#preprocessor-rule-disabled-elif"},{"begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-disabled-block":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"include":"#preprocessor-rule-enabled-elif-block"},{"include":"#preprocessor-rule-enabled-else-block"},{"include":"#preprocessor-rule-disabled-elif"},{"begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.in-block.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-disabled-elif":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.else-branch.slang","begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"$base"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"},"3":{"name":"constant.numeric.preprocessor.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-enabled-block":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.else-branch.in-block.slang","begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.in-block.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#block_innards"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-enabled-elif":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:endif)\\b))","patterns":[{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(else)\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(elif)\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"$base"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-elif-block":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:endif)\\b))","patterns":[{"contentName":"comment.block.preprocessor.elif-branch.in-block.slang","begin":"^\\s*((#)\\s*(else)\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(elif)\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#block_innards"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-else":{"begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-else-block":{"begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-version":{"name":"meta.section.slang","match":"^\\s*((#\\s*version)\\s+(.*))","captures":{"2":{"name":"keyword.control.directive.version.slang"},"3":{"name":"constant.numeric.decimal.slang"}}},"probably_a_parameter":{"match":"(?\u003c=[a-zA-Z_0-9] |[\u0026*\u003e\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))","captures":{"1":{"name":"variable.parameter.probably.slang"}}},"static_assert":{"begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)static_assert|_Static_assert(?!\\w))((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))(\\()","end":"(\\))","patterns":[{"name":"meta.static_assert.message.slang","begin":"(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)","end":"(?=\\))","patterns":[{"include":"#string_context"}],"beginCaptures":{"1":{"name":"punctuation.separator.delimiter.comma.slang"}}},{"include":"#evaluation_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"10":{"name":"punctuation.section.arguments.begin.bracket.round.static_assert.slang"},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.other.static_assert.slang"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"8":{"name":"comment.block.slang"},"9":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.static_assert.slang"}}},"storage_types":{"patterns":[{"name":"storage.type.built-in.primitive.slang","match":"(?-mix:(?\u003c!\\w)(?:unsigned|signed|double|_Bool|short|float|half|long|void|char|bool|int|uint)(?!\\w))"},{"match":"\\b(namespace|enum|enum\\s+class|struct|class|interface)\\s+([A-Za-z0-9_]+)((\\.|::)([A-Za-z0-9_]+))*","captures":{"1":{"name":"keyword.$1.slang"},"2":{"name":"support.type.$1.slang"},"4":{"name":"punctuation.separator.dot-access.slang"},"5":{"name":"support.type.$1.slang"}}},{"name":"meta.asm.slang","begin":"(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)","end":"(?!\\G)","patterns":[{"match":"(?:^)((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},{"include":"#comments"},{"begin":"(((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))\\()","end":"(\\))","patterns":[{"name":"string.quoted.double.slang","contentName":"meta.embedded.assembly.slang","begin":"(R?)(\")","end":"(\")","patterns":[{"include":"#backslash_escapes"},{"include":"#string_escaped_char"}],"beginCaptures":{"1":{"name":"meta.encoding.slang"},"2":{"name":"punctuation.definition.string.begin.assembly.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.assembly.slang"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#evaluation_context"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.bracket.round.assembly.inner.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.assembly.inner.slang"}}},{"match":"\\[((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))\\]","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"variable.other.asm.label.slang"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"8":{"name":"comment.block.slang"},"9":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},{"name":"punctuation.separator.delimiter.colon.assembly.slang","match":":"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.bracket.round.assembly.slang"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"4":{"name":"comment.block.slang"},"5":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.assembly.slang"}}}],"beginCaptures":{"1":{"name":"storage.type.asm.slang"},"2":{"name":"storage.modifier.slang"}}}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.slang","match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )"},{"name":"invalid.illegal.unknown-escape.slang","match":"\\\\."}]},"string_placeholder":{"patterns":[{"name":"constant.other.placeholder.slang","match":"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type"},{"match":"(%)(?!\"\\s*(PRI|SCN))","captures":{"1":{"name":"invalid.illegal.placeholder.slang"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.raw","begin":"((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(","end":"\\)\\2(\\3)\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin"},"1":{"name":"meta.encoding"},"3":{"name":"invalid.illegal.delimiter-too-long"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end"},"1":{"name":"invalid.illegal.delimiter-too-long"}}},{"name":"string.quoted.double.slang","begin":"((?:u|u8|U|L)?)?\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}]},"switch_conditional_parentheses":{"name":"meta.conditional.switch.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))(\\()","end":"(\\))","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"punctuation.section.parens.begin.bracket.round.conditional.switch.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.conditional.switch.slang"}}},"switch_statement":{"name":"meta.block.switch.slang","begin":"(((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)switch|__(target|stage)_switch(?!\\w)))","end":"(?:(?\u003c=\\}|%\u003e|\\?\\?\u003e)|(?=[;\u003e\\[\\]=]))","patterns":[{"name":"meta.head.switch.slang","begin":"\\G ?","end":"((?:\\{|\u003c%|\\?\\?\u003c|(?=;)))","patterns":[{"include":"#switch_conditional_parentheses"},{"include":"$self"}],"endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.switch.slang"}}},{"name":"meta.body.switch.slang","begin":"(?\u003c=\\{|\u003c%|\\?\\?\u003c)","end":"(\\}|%\u003e|\\?\\?\u003e)","patterns":[{"include":"#default_statement"},{"include":"#case_statement"},{"include":"$self"},{"include":"#block_innards"}],"endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.switch.slang"}}},{"name":"meta.tail.switch.slang","begin":"(?\u003c=\\}|%\u003e|\\?\\?\u003e)[\\s\\n]*","end":"[\\s\\n]*(?=;)","patterns":[{"include":"$self"}]}],"beginCaptures":{"1":{"name":"meta.head.switch.slang"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"4":{"name":"comment.block.slang"},"5":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"6":{"name":"keyword.control.switch.slang"}}},"vararg_ellipses":{"name":"punctuation.vararg-ellipses.slang","match":"(?\u003c!\\.)\\.\\.\\.(?!\\.)"}}}
|
1
|
+
{"name":"Slang","scopeName":"source.slang","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-conditional"},{"include":"#predefined_macros"},{"include":"#comments"},{"include":"#switch_statement"},{"name":"keyword.control.slang","match":"\\b(break|continue|do|else|for|goto|if|return|while|try|throw|catch|defer|discard)\\b"},{"include":"#storage_types"},{"name":"keyword.other.typedef.slang","match":"typedef"},{"name":"keyword.other.additional.slang","match":"\\b(throws|using|__generic|func|associatedtype|public|internal|private|import|module|implementing|__include|export|__exported|groupshared|let|var|property|extension|in|out|inout|ref|namespace|this|cbuffer|tbuffer|(dynamic_)?uniform|typealias|new|__extern_cpp|__(target|stage)_intrinsic|__intrinsic_asm|spirv_asm|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each|where|typename|constexpr|dyn|some)\\b"},{"name":"storage.modifier.slang","match":"\\b(const|extern|register|restrict|static|volatile|inline|nointerpolation|precise|row_major|column_major|snorm|unorm|globallycoherent|layout)\\b"},{"name":"constant.other.variable.mac-classic.slang","match":"\\bk[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.global.mac-classic.slang","match":"\\bg[A-Z]\\w*\\b"},{"name":"variable.other.readwrite.static.mac-classic.slang","match":"\\bs[A-Z]\\w*\\b"},{"name":"constant.language.slang","match":"\\b(nullptr|none|true|false)\\b"},{"include":"#operators"},{"include":"#numbers"},{"include":"#strings"},{"name":"meta.preprocessor.macro.slang","begin":"((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?\u003c!\\w)[a-zA-Z_]\\w*(?!\\w))(?:(\\()([^()\\\\]+)(\\)))?","end":"(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-define-line-contents"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"10":{"name":"punctuation.definition.parameters.end.slang"},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.directive.define.slang"},"6":{"name":"punctuation.definition.directive.slang"},"7":{"name":"entity.name.function.preprocessor.slang"},"8":{"name":"punctuation.definition.parameters.begin.slang"},"9":{"patterns":[{"match":"(?\u003c=[(,])\\s*((?\u003c!\\w)[a-zA-Z_]\\w*(?!\\w))\\s*","captures":{"1":{"name":"variable.parameter.preprocessor.slang"}}},{"name":"punctuation.separator.parameters.slang","match":","},{"name":"ellipses.slang punctuation.vararg-ellipses.variable.parameter.preprocessor.slang","match":"\\.\\.\\."}]}}},{"name":"meta.preprocessor.diagnostic.slang","begin":"^\\s*((#)\\s*(error|warning))\\b\\s*","end":"(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"string.quoted.double.slang","begin":"\"","end":"\"|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.unquoted.single.slang","begin":"[^'\"]","end":"(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"},{"include":"#comments"}]}],"beginCaptures":{"1":{"name":"keyword.control.directive.diagnostic.$3.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.include.slang","begin":"^\\s*((#)\\s*(include(?:_next)?|import|module|implementing|__include))\\b\\s*","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#line_continuation_character"},{"name":"string.quoted.double.include.slang","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.other.lt-gt.include.slang","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}],"beginCaptures":{"1":{"name":"keyword.control.directive.$3.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#pragma-mark"},{"include":"#preprocessor-version"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*line)\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#strings"},{"include":"#numbers"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.line.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.slang","begin":"^\\s*(?:((#)\\s*undef))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"entity.name.function.preprocessor.slang","match":"[a-zA-Z_$][\\w$]*"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.undef.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.pragma.slang","begin":"^\\s*(?:((#)\\s*pragma))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#strings"},{"name":"entity.other.attribute-name.pragma.preprocessor.slang","match":"[a-zA-Z_$][\\w\\-$]*"},{"include":"#numbers"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.pragma.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"support.type.stdint.slang","match":"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|intptr_t|uintptr_t)\n\\b"},{"name":"support.type.string.slang","match":"(?x) \\b(string)\\b"},{"name":"support.type.ptr.slang","match":"(?x) \\b(Ptr)\\b"},{"name":"support.type.hlsl.slang","match":"(?x) \\b((RW)?StructuredBuffer|(RW)?Buffer|(RW)?ByteAddressBuffer|ConstantBuffer|ParameterBlock|(RW)?Texture([1-3]D|Cube)(MS)?(Array)?|Sampler(Comparison)?State|RaytracingAccelerationStructure)\\b"},{"name":"support.type.vector.slang","match":"(?x) \\b(bool|char|half|float|int|double|uint)[1-4](x[1-4])?\\b"},{"include":"#block"},{"include":"#parens"},{"include":"#line_continuation_character"},{"name":"meta.bracket.square.access.slang","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))?(\\[)(?!\\])","end":"\\]","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.slang"},"2":{"name":"punctuation.definition.begin.bracket.square.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.slang"}}},{"name":"storage.modifier.array.bracket.square.slang","match":"\\[\\s*\\]"},{"name":"punctuation.terminator.statement.slang","match":";"},{"name":"punctuation.separator.delimiter.slang","match":","}],"repository":{"access-method":{"name":"meta.function-call.member.slang","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))\\s*(?:(\\.)|(-\u003e))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:-\u003e)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"name":"punctuation.separator.dot-access.slang","match":"\\."},{"name":"punctuation.separator.pointer-access.slang","match":"-\u003e"},{"name":"variable.object.slang","match":"[a-zA-Z_][a-zA-Z_0-9]*"},{"name":"everything.else.slang","match":".+"}]},"5":{"name":"entity.name.function.member.slang"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.slang"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.member.slang"}}},"backslash_escapes":{"name":"constant.character.escape.slang","match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )"},"block":{"patterns":[{"name":"meta.block.slang","begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-conditional-block"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#c_function_call"},{"name":"meta.initialization.slang","begin":"(?x)\n(?:\n (?:\n\t(?=\\s)(?\u003c!else|new|return)\n\t(?\u003c=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?\u003c=operator) (?:[-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.other.slang"},"2":{"name":"punctuation.section.parens.begin.bracket.round.initialization.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.initialization.slang"}}},{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"include":"#parens-block"},{"include":"$base"}]},"c_conditional_context":{"patterns":[{"include":"$self"},{"include":"#block_innards"}]},"c_function_call":{"name":"meta.function-call.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|__target_intrinsic|__intrinsic_asm|spirv_asm|expand|each)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?\u003c=\\))(?!\\w)","patterns":[{"include":"#function-call-innards"}]},"case_statement":{"name":"meta.conditional.case.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)case(?!\\w))","end":"(:)","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.case.slang"}},"endCaptures":{"1":{"name":"punctuation.separator.colon.case.slang"}}},"comments":{"patterns":[{"name":"comment.line.double-slash.documentation.slang","begin":"(?:^)(?\u003e\\s*)(\\/\\/[!\\/]+)","end":"(?\u003c=\\n)(?\u003c!\\\\\\n)","patterns":[{"include":"#line_continuation_character"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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.slang","match":"(?\u003c=[\\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(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out|ref"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.documentation.slang"}}},{"name":"comment.block.documentation.slang","match":"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)","captures":{"1":{"name":"punctuation.definition.comment.begin.documentation.slang"},"2":{"patterns":[{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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.slang","match":"(?\u003c=[\\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(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}]},"3":{"name":"punctuation.definition.comment.end.documentation.slang"}}},{"name":"comment.block.documentation.slang","begin":"((?\u003e\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))","end":"([!*]*\\*\\/)","patterns":[{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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.slang","match":"(?\u003c=[\\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(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.documentation.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.end.documentation.slang"}}},{"name":"comment.block.banner.slang","match":"^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.slang"}}},{"name":"comment.block.slang","begin":"(\\/\\*)","end":"(\\*\\/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.end.slang"}}},{"name":"comment.line.banner.slang","match":"^\\/\\/ =(\\s*.*?)\\s*=$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.slang"}}},{"begin":"((?:^[ \\t]+)?)(?=\\/\\/)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.slang","begin":"(\\/\\/)","end":"(?=\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.slang"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.slang"}}}]},"default_statement":{"name":"meta.conditional.case.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)default(?!\\w))","end":"(:)","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.default.slang"}},"endCaptures":{"1":{"name":"punctuation.separator.colon.case.default.slang"}}},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","end":"^\\s*#\\s*endif\\b","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},"evaluation_context":{"patterns":[{"include":"#function-call-innards"},{"include":"$base"}]},"function-call-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#operators"},{"begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.slang"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"#block_innards"}]},"function-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#operators"},{"include":"#vararg_ellipses"},{"name":"meta.function.definition.parameters.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#probably_a_parameter"},{"include":"#function-innards"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.parameters.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.slang"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"$base"}]},"inline_comment":{"match":"(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/))","captures":{"1":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"2":{"name":"comment.block.slang"},"3":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},"line_continuation_character":{"patterns":[{"match":"(\\\\)\\n","captures":{"1":{"name":"constant.character.escape.line-continuation.slang"}}}]},"member_access":{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"}}}]},"5":{"name":"variable.other.member.slang"}}},"method_access":{"contentName":"meta.function-call.member.slang","begin":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()","end":"(\\))","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"}}}]},"5":{"name":"entity.name.function.member.slang"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.slang"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.member.slang"}}},"numbers":{"match":"(?\u003c!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-])*","captures":{"0":{"patterns":[{"begin":"(?=.)","end":"$","patterns":[{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfFzZhH](?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.hexadecimal.slang"},"10":{"name":"keyword.operator.minus.exponent.hexadecimal.slang"},"11":{"name":"constant.numeric.exponent.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.slang"},"2":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"constant.numeric.hexadecimal.slang"},"5":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric"},"8":{"name":"keyword.other.unit.exponent.hexadecimal.slang"},"9":{"name":"keyword.operator.plus.exponent.hexadecimal.slang"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfFzZhH](?!\\w))?$","captures":{"10":{"name":"keyword.operator.minus.exponent.decimal.slang"},"11":{"name":"constant.numeric.exponent.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.slang"},"2":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"constant.numeric.decimal.point.slang"},"5":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric"},"8":{"name":"keyword.other.unit.exponent.decimal.slang"},"9":{"name":"keyword.operator.plus.exponent.decimal.slang"}}},{"match":"(\\G0[bB])([01](?:[01]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?|[uU]?z|z[uU])|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.binary.slang"},"2":{"name":"constant.numeric.binary.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G0)((?:[0-7]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?|[uU]?z|z[uU])|LL?[uU]?)|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.octal.slang"},"2":{"name":"constant.numeric.octal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?|[uU]?z|z[uU])|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.hexadecimal.slang"},"2":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"5":{"name":"keyword.other.unit.exponent.hexadecimal.slang"},"6":{"name":"keyword.operator.plus.exponent.hexadecimal.slang"},"7":{"name":"keyword.operator.minus.exponent.hexadecimal.slang"},"8":{"name":"constant.numeric.exponent.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?|[uU]?z|z[uU])|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$","captures":{"2":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"5":{"name":"keyword.other.unit.exponent.decimal.slang"},"6":{"name":"keyword.operator.plus.exponent.decimal.slang"},"7":{"name":"keyword.operator.minus.exponent.decimal.slang"},"8":{"name":"constant.numeric.exponent.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"name":"invalid.illegal.constant.numeric","match":"(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-])+"}]}]}}},"operators":{"patterns":[{"name":"keyword.operator.sizeof.slang","match":"(?\u003c![\\w$])(sizeof|countof)(?![\\w$])"},{"name":"keyword.other.additional.slang","match":"(?\u003c![\\w$])(as)(?![\\w$])"},{"name":"keyword.other.additional.slang","match":"(?\u003c![\\w$])(is)(?![\\w$])"},{"name":"keyword.operator.decrement.slang","match":"--"},{"name":"keyword.operator.increment.slang","match":"\\+\\+"},{"name":"keyword.operator.assignment.compound.slang","match":"%=|\\+=|-=|\\*=|(?\u003c!\\()/="},{"name":"keyword.operator.assignment.compound.bitwise.slang","match":"\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.slang","match":"\u003c\u003c|\u003e\u003e"},{"name":"keyword.operator.comparison.slang","match":"!=|\u003c=|\u003e=|==|\u003c|\u003e"},{"name":"keyword.operator.logical.slang","match":"\u0026\u0026|!|\\|\\|"},{"name":"keyword.operator.slang","match":"\u0026|\\||\\^|~"},{"name":"keyword.operator.assignment.slang","match":"="},{"name":"keyword.operator.slang","match":"%|\\*|/|-|\\+"},{"begin":"(\\?)","end":"(:)","patterns":[{"include":"#function-call-innards"},{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.operator.ternary.slang"}},"endCaptures":{"1":{"name":"keyword.operator.ternary.slang"}}}]},"parens":{"name":"meta.parens.slang","begin":"\\(","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},"parens-block":{"name":"meta.parens.block.slang","begin":"\\(","end":"\\)","patterns":[{"include":"#block_innards"},{"name":"punctuation.range-based.slang","match":"(?-mix:(?\u003c!:):(?!:))"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},"pragma-mark":{"name":"meta.section.slang","match":"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))","captures":{"1":{"name":"meta.preprocessor.pragma.slang"},"2":{"name":"keyword.control.directive.pragma.pragma-mark.slang"},"3":{"name":"punctuation.definition.directive.slang"},"4":{"name":"entity.name.tag.pragma-mark.slang"}}},"predefined_macros":{"patterns":[{"match":"\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b","captures":{"1":{"name":"entity.name.other.preprocessor.macro.predefined.$1.slang"}}},{"name":"entity.name.other.preprocessor.macro.predefined.probably.$1.slang","match":"\\b__([A-Z_]+)__\\b"}]},"preprocessor-rule-conditional":{"patterns":[{"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#preprocessor-rule-enabled-elif"},{"include":"#preprocessor-rule-enabled-else"},{"include":"#preprocessor-rule-disabled-elif"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"match":"^\\s*#\\s*(else|elif|endif)\\b","captures":{"0":{"name":"invalid.illegal.stray-$1.slang"}}}]},"preprocessor-rule-conditional-block":{"patterns":[{"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#preprocessor-rule-enabled-elif-block"},{"include":"#preprocessor-rule-enabled-else-block"},{"include":"#preprocessor-rule-disabled-elif"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"match":"^\\s*#\\s*(else|elif|endif)\\b","captures":{"0":{"name":"invalid.illegal.stray-$1.slang"}}}]},"preprocessor-rule-conditional-line":{"patterns":[{"name":"keyword.control.directive.conditional.slang","match":"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|\u0026\u0026|\\|\\||\\\\\\s*\\n)))"},{"name":"invalid.illegal.macro-name.slang","match":"\\bdefined\\b"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"begin":"\\?","end":":","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"0":{"name":"keyword.operator.ternary.slang"}},"endCaptures":{"0":{"name":"keyword.operator.ternary.slang"}}},{"include":"#operators"},{"name":"constant.language.slang","match":"\\b(NULL|true|false|TRUE|FALSE)\\b"},{"name":"entity.name.function.preprocessor.slang","match":"[a-zA-Z_$][\\w$]*"},{"include":"#line_continuation_character"},{"begin":"\\(","end":"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}}]},"preprocessor-rule-define-line-blocks":{"patterns":[{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-blocks"},{"include":"#preprocessor-rule-define-line-contents"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"include":"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{"patterns":[{"include":"#vararg_ellipses"},{"name":"meta.block.slang","begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-blocks"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"name":"punctuation.section.parens.begin.bracket.round.slang","match":"\\("},{"name":"punctuation.section.parens.end.bracket.round.slang","match":"\\)"},{"name":"meta.function.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?\u003c=\\))(?!\\w)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}]},{"name":"string.quoted.double.slang","begin":"\"","end":"\"|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#string_escaped_char"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"include":"#method_access"},{"include":"#member_access"},{"include":"$base"}]},"preprocessor-rule-define-line-functions":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#vararg_ellipses"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#operators"},{"begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"(\\))|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.slang"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.slang"}}},{"begin":"\\(","end":"(\\))|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"include":"#preprocessor-rule-enabled-elif"},{"include":"#preprocessor-rule-enabled-else"},{"include":"#preprocessor-rule-disabled-elif"},{"begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-disabled-block":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"include":"#preprocessor-rule-enabled-elif-block"},{"include":"#preprocessor-rule-enabled-else-block"},{"include":"#preprocessor-rule-disabled-elif"},{"begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.in-block.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-disabled-elif":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.else-branch.slang","begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"$base"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"},"3":{"name":"constant.numeric.preprocessor.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-enabled-block":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.else-branch.in-block.slang","begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.in-block.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#block_innards"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-enabled-elif":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:endif)\\b))","patterns":[{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(else)\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(elif)\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"$base"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-elif-block":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:endif)\\b))","patterns":[{"contentName":"comment.block.preprocessor.elif-branch.in-block.slang","begin":"^\\s*((#)\\s*(else)\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(elif)\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#block_innards"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-else":{"begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-else-block":{"begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-version":{"name":"meta.section.slang","match":"^\\s*((#\\s*version)\\s+(.*))","captures":{"2":{"name":"keyword.control.directive.version.slang"},"3":{"name":"constant.numeric.decimal.slang"}}},"probably_a_parameter":{"match":"(?\u003c=[a-zA-Z_0-9] |[\u0026*\u003e\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))","captures":{"1":{"name":"variable.parameter.probably.slang"}}},"static_assert":{"begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)static_assert|_Static_assert(?!\\w))((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))(\\()","end":"(\\))","patterns":[{"name":"meta.static_assert.message.slang","begin":"(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)","end":"(?=\\))","patterns":[{"include":"#string_context"}],"beginCaptures":{"1":{"name":"punctuation.separator.delimiter.comma.slang"}}},{"include":"#evaluation_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"10":{"name":"punctuation.section.arguments.begin.bracket.round.static_assert.slang"},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.other.static_assert.slang"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"8":{"name":"comment.block.slang"},"9":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.static_assert.slang"}}},"storage_types":{"patterns":[{"name":"storage.type.built-in.primitive.slang","match":"(?-mix:(?\u003c!\\w)(?:unsigned|signed|double|_Bool|short|float|half|long|void|char|bool|int|uint)(?!\\w))"},{"match":"\\b(namespace|enum|enum\\s+class|struct|class|interface)\\s+([A-Za-z0-9_]+)((\\.|::)([A-Za-z0-9_]+))*","captures":{"1":{"name":"keyword.$1.slang"},"2":{"name":"support.type.$1.slang"},"4":{"name":"punctuation.separator.dot-access.slang"},"5":{"name":"support.type.$1.slang"}}},{"name":"meta.asm.slang","begin":"(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)","end":"(?!\\G)","patterns":[{"match":"(?:^)((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},{"include":"#comments"},{"begin":"(((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))\\()","end":"(\\))","patterns":[{"name":"string.quoted.double.slang","contentName":"meta.embedded.assembly.slang","begin":"(R?)(\")","end":"(\")","patterns":[{"include":"#backslash_escapes"},{"include":"#string_escaped_char"}],"beginCaptures":{"1":{"name":"meta.encoding.slang"},"2":{"name":"punctuation.definition.string.begin.assembly.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.assembly.slang"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#evaluation_context"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.bracket.round.assembly.inner.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.assembly.inner.slang"}}},{"match":"\\[((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))\\]","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"variable.other.asm.label.slang"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"8":{"name":"comment.block.slang"},"9":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},{"name":"punctuation.separator.delimiter.colon.assembly.slang","match":":"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.bracket.round.assembly.slang"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"4":{"name":"comment.block.slang"},"5":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.assembly.slang"}}}],"beginCaptures":{"1":{"name":"storage.type.asm.slang"},"2":{"name":"storage.modifier.slang"}}}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.slang","match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )"},{"name":"invalid.illegal.unknown-escape.slang","match":"\\\\."}]},"string_placeholder":{"patterns":[{"name":"constant.other.placeholder.slang","match":"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type"},{"match":"(%)(?!\"\\s*(PRI|SCN))","captures":{"1":{"name":"invalid.illegal.placeholder.slang"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.raw","begin":"((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(","end":"\\)\\2(\\3)\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin"},"1":{"name":"meta.encoding"},"3":{"name":"invalid.illegal.delimiter-too-long"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end"},"1":{"name":"invalid.illegal.delimiter-too-long"}}},{"name":"string.quoted.double.slang","begin":"((?:u|u8|U|L)?)?\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}]},"switch_conditional_parentheses":{"name":"meta.conditional.switch.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))(\\()","end":"(\\))","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"punctuation.section.parens.begin.bracket.round.conditional.switch.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.conditional.switch.slang"}}},"switch_statement":{"name":"meta.block.switch.slang","begin":"(((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)switch|__(target|stage)_switch(?!\\w)))","end":"(?:(?\u003c=\\}|%\u003e|\\?\\?\u003e)|(?=[;\u003e\\[\\]=]))","patterns":[{"name":"meta.head.switch.slang","begin":"\\G ?","end":"((?:\\{|\u003c%|\\?\\?\u003c|(?=;)))","patterns":[{"include":"#switch_conditional_parentheses"},{"include":"$self"}],"endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.switch.slang"}}},{"name":"meta.body.switch.slang","begin":"(?\u003c=\\{|\u003c%|\\?\\?\u003c)","end":"(\\}|%\u003e|\\?\\?\u003e)","patterns":[{"include":"#default_statement"},{"include":"#case_statement"},{"include":"$self"},{"include":"#block_innards"}],"endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.switch.slang"}}},{"name":"meta.tail.switch.slang","begin":"(?\u003c=\\}|%\u003e|\\?\\?\u003e)[\\s\\n]*","end":"[\\s\\n]*(?=;)","patterns":[{"include":"$self"}]}],"beginCaptures":{"1":{"name":"meta.head.switch.slang"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"4":{"name":"comment.block.slang"},"5":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"6":{"name":"keyword.control.switch.slang"}}},"vararg_ellipses":{"name":"punctuation.vararg-ellipses.slang","match":"(?\u003c!\\.)\\.\\.\\.(?!\\.)"}}}
|
data/grammars/source.slint.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"slint","scopeName":"source.slint","patterns":[{"include":"#document"}],"repository":{"block-comments":{"patterns":[{"name":"comment.block","begin":"/\\*","end":"\\*/","patterns":[{"include":"#block-comments"}]}]},"document":{"patterns":[{"include":"#general"},{"name":"keyword","match":"(?\u003c!-)\\b(from|export)\\b(?!-)"},{"name":"keyword.other","match":"(?\u003c!-)\\b(animate|states|transitions|private|public|pure|function|in|out|in-out)\\b(?!-)"},{"name":"keyword.control","match":"(?\u003c!-)\\b(if|for|return)\\b(?!-)"},{"name":"variable.language","match":"(?\u003c!-)\\b(root|parent|this|self)\\b(?!-)"},{"match":"(?\u003c!-)\\b(import)\\s*\\{\\s*(([a-zA-Z_][a-zA-Z0-9_-]*)(\\s*,\\s*([a-zA-Z_][a-zA-Z0-9_-]*))*)\\s*\\}","captures":{"1":{"name":"keyword.other"},"3":{"name":"entity.name.type"},"5":{"name":"entity.name.type"}}},{"match":"(?\u003c!-)\\b([a-zA-Z_][a-zA-Z0-9_-]*)\\s*:","captures":{"1":{"name":"variable.parameter"}}},{"match":"(?\u003c!-)\\b([a-zA-Z_][a-zA-Z0-9_-]*)\\s*\\(.*\\)\\s*=\u003e","captures":{"1":{"name":"entity.name.function"}}},{"match":"(?\u003c!-)\\b(callback)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*","captures":{"1":{"name":"entity.name.function"},"2":{"name":"entity.name.type"}}},{"begin":"(?\u003c!-)\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*\\{","end":"\\}","patterns":[{"match":"([a-zA-Z_][a-zA-Z0-9_-]*)\\s*:\\s*([a-zA-Z_][a-zA-Z0-9_-]*)\\s*,?","captures":{"1":{"name":"variable.parameter"},"2":{"name":"entity.name.type"}}}],"beginCaptures":{"1":{"name":"storage.type"},"2":{"name":"entity.name.type"}}},{"begin":"(?\u003c!-)\\b(global)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*\\{","end":"\\}","patterns":[{"include":"#property"}],"beginCaptures":{"1":{"name":"storage.type"},"2":{"name":"entity.name.type"}}},{"begin":"(?\u003c!-)\\b(enum)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*\\{","end":"\\}","patterns":[{"name":"entity.name.type","match":"([a-zA-Z_][a-zA-Z0-9_-]*)\\s*,?"}],"beginCaptures":{"1":{"name":"storage.type"},"2":{"name":"entity.name.type"}}},{"match":"(?\u003c!-)\\b(component|inherits)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)","captures":{"1":{"name":"storage.type"},"2":{"name":"entity.name.type"}}},{"match":"([a-zA-Z_][a-zA-Z0-9_-])*\\s*(:=)\\s*([a-zA-Z_][a-zA-Z0-9_-]*)","captures":{"1":{"name":"variable.parameter"},"2":{"name":"keyword.operator"},"3":{"name":"entity.name.type"}}},{"name":"support.constant","match":"(?\u003c!-)\\b(blue|red|green|yellow|red|black|linear|ease-in-quad|ease-out-quad|ease-in-out-quad|ease|ease-in|ease-out|ease-in-out|ease-in-quart|ease-out-quart|ease-in-out-quart|ease-in-quint|ease-out-quint|ease-in-out-quint|ease-in-expo|ease-out-expo|ease-in-out-expo|ease-in-sine|ease-out-sine|ease-in-out-sine|ease-in-back|ease-out-back|ease-in-out-back|ease-in-circ|ease-out-circ|ease-in-out-circ|ease-in-elastic|ease-out-elastic|ease-in-out-elastic|ease-in-bounce|ease-out-bounce|ease-in-out-bounce|cubic-bezier)\\b(?!-)"},{"include":"#property"}]},"general":{"patterns":[{"include":"#block-comments"},{"name":"comment.line","match":"//.*$"},{"name":"string.quoted.double","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.untitled","match":"\\\\(n|\\\\|u\\{\\d+\\}|\\{[^\\}]+\\})"}]},{"name":"constant.other","match":"#([a-fA-F0-9]){3,8}"},{"name":"constant.numeric","match":"\\b\\d+(\\.\\d*)?(%|px|phx|pt|in|mm|cm|ms|s|deg|rad|turn)?\\b"}]},"property":{"patterns":[{"begin":"\\b(property)\\b","end":"(;|:|\u003c=\u003e)","patterns":[{"match":"\u003c([a-zA-Z_][a-zA-Z0-9_-]*)\u003e","captures":{"1":{"name":"entity.name.type"}}},{"name":"variable.parameter","match":"[a-zA-Z_][a-zA-Z0-9_-]*"},{"name":"keyword.operator","match":"\\b(\u003c=\u003e|:)\\b"}],"beginCaptures":{"1":{"name":"keyword.other"}}}]}}}
|
1
|
+
{"name":"slint","scopeName":"source.slint","patterns":[{"include":"#comment"},{"include":"#import-list"},{"include":"#export-list"},{"include":"#struct"},{"include":"#enum"},{"include":"#global"},{"include":"#component"},{"name":"keyword.other.export.slint","match":"(?\u003c!-)\\bexport\\b(?!-)"},{"include":"#element-contents"}],"repository":{"animate":{"patterns":[{"begin":"(?\u003c!-)\\b(animate)\\s*([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(\\{)","end":"(\\})","patterns":[{"match":"(?\u003c!-)\\b(delay|duration|iteration-count|easing|direction)\\s*:","captures":{"1":{"name":"keyword.other.animate.setting.slint"}}},{"include":"#expression"},{"match":";"}],"beginCaptures":{"1":{"name":"keyword.other.animate.slint"},"2":{"name":"variable.other.property.slint"},"3":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}}}]},"block-comment":{"patterns":[{"contentName":"comment.block.slint","begin":"(/\\*)","end":"(\\*/)","patterns":[{"include":"#block-comment"}],"beginCaptures":{"1":{"name":"comment.block.slint"}},"endCaptures":{"1":{"name":"comment.block.slint"}}}]},"boolean":{"patterns":[{"name":"constant.language.boolean.slint","match":"(?\u003c!-)\\b(true|false)\\b(?!-)"}]},"callback-setup":{"patterns":[{"match":"(?\u003c!-)([a-zA-Z_][a-zA-Z0-9_-]*)\\s*=\u003e","captures":{"1":{"name":"entity.name.function.slint"}}},{"begin":"(?\u003c!-)([a-zA-Z_][a-zA-Z0-9_-]*)\\s*\\(","end":"\\)\\s*=\u003e","patterns":[{"include":"#expression"},{"match":"\\s*,\\s*"}],"beginCaptures":{"1":{"name":"entity.name.function.slint"}}}]},"code-block":{"patterns":[{"begin":"\\s*(\\{)","end":"(\\})\\s*","patterns":[{"include":"#code-block-contents"}],"beginCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}}}]},"code-block-contents":{"patterns":[{"include":"#comment"},{"include":"#expression"},{"name":"keyword.control.code-block.slint","match":"(?\u003c!-)\\b(for|if|else|return)\\b(?!-)"},{"name":"punctuation.other.code-block.slint","match":"(=|;)"},{"include":"#function-call"},{"include":"#code-block"}]},"color":{"patterns":[{"name":"constant.other.color.slint","match":"#([a-fA-F0-9]){3,8}"},{"match":"(?\u003c!-)\\b((Colors)\\.)(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|transparent|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)\\b(?!-)","captures":{"2":{"name":"support.class.colors.slint"},"3":{"name":"support.constant.colors.slint"}}}]},"comment":{"patterns":[{"include":"#block-comment"},{"include":"#line-comment"}]},"component":{"patterns":[{"begin":"(?\u003c!-)\\b(component)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)(\\s+(inherits)\\s+([a-zA-Z_][a-zA-Z0-9_-]*))?\\s*(\\{)","end":"(\\})","patterns":[{"include":"#element-contents"}],"beginCaptures":{"1":{"name":"keyword.other.component.slint"},"2":{"name":"entity.name.type.component.slint"},"4":{"name":"keyword.other.inherits.slint"},"5":{"name":"entity.other.inherited-class.component.slint"},"6":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}}}]},"conditional-element":{"begin":"(?\u003c!-)\\b(if)\\s+","end":":","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.conditional-element.slint"}}},"element":{"begin":"(?\u003c!-)(([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(:=)\\s*)?([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(\\{)","end":"(\\})","patterns":[{"include":"#element-contents"}],"beginCaptures":{"2":{"name":"entity.name.tag.element-id.slint"},"3":{"name":"punctuation.assignment.element-id.slint"},"4":{"name":"entity.name.type.element.slint"},"5":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}}},"element-contents":{"patterns":[{"include":"#comment"},{"include":"#conditional-element"},{"include":"#repeated-element"},{"include":"#property-def"},{"include":"#animate"},{"include":"#element"},{"include":"#function"},{"include":"#property-set"},{"include":"#code-block"},{"include":"#states"},{"include":"#callback-setup"},{"include":"#expression"},{"name":"keyword.other.extra.slint","match":"(?\u003c!-)\\b(animate|states|transitions|private|public|pure|in|out|in-out|changed)\\b(?!-)"}]},"enum":{"patterns":[{"begin":"(?\u003c!-)\\b(enum)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(\\{)","end":"(\\})","patterns":[{"match":"([a-zA-Z_][a-zA-Z0-9_-]*)\\s*,?\\s*","captures":{"1":{"name":"entity.name.type.enum.value.slint"}}},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.declaration.enum.slint"},"2":{"name":"entity.name.type.enum.slint"},"3":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}}}]},"export-list":{"patterns":[{"begin":"(?\u003c!-)\\b(export)\\s*(\\{)","end":"(\\})","patterns":[{"name":"keyword.other.as.slint","match":"(?\u003c!-)\\bas\\b(?!-)"},{"name":"entity.name.type.export-list.slint","match":"[a-zA-Z_][a-zA-Z0-9_-]*"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.export.slint"},"2":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}}},{"match":"\\s*(from)\\s*(\"[^\"]*\")\\s*;","captures":{"1":{"name":"keyword.other.from.slint"},"2":{"name":"string.quoted.double.export-path.slint"}}}]},"expression":{"patterns":[{"include":"#value"},{"match":"(?\u003c!-)\\b(root|parent|self)(?!-)","captures":{"1":{"name":"variable.language.special-element.slint"}}}]},"function":{"patterns":[{"match":"(?\u003c!-)\\b((pure)\\s+)?(function|callback)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*;\\s*","captures":{"2":{"name":"keyword.other.pure.slint"},"3":{"name":"keyword.other.function.slint"},"4":{"name":"entity.name.function.slint"}}},{"begin":"(?\u003c!-)\\b((pure)\\s+)?(function|callback)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(\\()","end":"(\\))\\s*((-\u003e)\\s*([a-zA-Z_][a-zA-Z0-9_-]*))?(;|(=\u003e))?","patterns":[{"match":"\\s*(([a-zA-Z_][a-zA-Z0-9_-]*)\\s*:\\s*)?([a-zA-Z_][a-zA-Z0-9_-]*)\\s*,?\\s*","captures":{"2":{"name":"variable.parameter.function-argument.slint"},"3":{"name":"entity.name.type.function-argument.slint"}}}],"beginCaptures":{"2":{"name":"keyword.other.pure.slint"},"3":{"name":"keyword.other.function.slint"},"4":{"name":"entity.name.function.slint"},"5":{"name":"punctuation.brackets.round.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.round.slint"},"3":{"name":"keyword.operator.arrow.skinny.slint"},"4":{"name":"entity.name.type.return-type.slint"},"6":{"name":"keyword.operator.arrow.fat.slint"}}}]},"function-call":{"patterns":[{"begin":"(?\u003c!-)([a-zA-Z_][a-zA-Z0-9_.-]*)\\s*\\(","end":"\\)","patterns":[{"include":"#expression"},{"match":"\\s,\\s"}],"beginCaptures":{"1":{"name":"entity.name.function.slint"}}}]},"global":{"patterns":[{"begin":"(?\u003c!-)\\b(global)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(\\{)","end":"(\\})","patterns":[{"include":"#element-contents"}],"beginCaptures":{"1":{"name":"keyword.other.global.slint"},"2":{"name":"entity.name.type.global.slint"},"3":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}}}]},"import-list":{"patterns":[{"match":"(?\u003c!-)\\b(import)\\s*(\"[^\"]*\")\\s*;","captures":{"1":{"name":"keyword.other.import.slint"},"2":{"name":"string.quoted.double.import-file.slint"}}},{"begin":"(?\u003c!-)\\b(import)\\s*(\\{)","end":"(\\})\\s*(from)\\s*(\"[^\"]*\")\\s*;","patterns":[{"name":"keyword.other.as.slint","match":"(?\u003c!-)\\bas\\b(?!-)"},{"name":"entity.name.type.import-list.slint","match":"(?\u003c!-)[a-zA-Z_][a-zA-Z0-9_-]*(?!-)"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.import.slint"},"2":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"},"2":{"name":"keyword.other.from.slint"},"3":{"name":"string.quoted.double.import-path.slint"}}}]},"line-comment":{"patterns":[{"name":"comment.line.double-slash.slint","match":"//.*$"}]},"number":{"patterns":[{"name":"constant.numeric.slint","match":"(\\+|-)?\\d+(\\.\\d*)?(%|px|phx|pt|in|mm|cm|ms|s|deg|rad|rem|turn)?"}]},"property-def":{"patterns":[{"begin":"(?\u003c!-)\\b((private|in|out|in-out)\\s+)?(property)\\b(?!-)","end":"(;|:|(\u003c=\u003e))","patterns":[{"match":"(\u003c)([a-zA-Z_][a-zA-Z0-9_-]*)(\u003e)","captures":{"1":{"name":"punctuation.brackets.angle.slint"},"2":{"name":"entity.name.type.property.slint"},"3":{"name":"punctuation.brackets.angle.slint"}}},{"match":"(?\u003c!-)\\b([a-zA-Z_][a-zA-Z0-9_-]*)\\b(?!-)","captures":{"1":{"name":"variable.other.property.slint"}}}],"beginCaptures":{"2":{"name":"keyword.other.visibility.slint"},"3":{"name":"keyword.other.property.slint"}},"endCaptures":{"2":{"name":"punctuation.arrow.fat-double.slint"}}}]},"property-set":{"begin":"(?\u003c!-)([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(:)","end":";","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.property.slint"}}},"repeated-element":{"begin":"(?\u003c!-)\\b(for)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)(\\s*(\\[)\\s*([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(\\]))?\\s+(in)\\b(?!-)","end":":","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.repeated-element.slint"},"2":{"name":"variable.other.iterator.slint"},"4":{"name":"punctuation.brackets.square.slint"},"5":{"name":"variable.other.index.slint"},"6":{"name":"punctuation.brackets.square.slint"},"7":{"name":"keyword.control.in.slint"}}},"states":{"patterns":[{"begin":"(?\u003c!-)\\b(states)\\s*(\\[)","end":"(\\])","patterns":[{"begin":"(?\u003c!-)([a-zA-Z_][a-zA-Z0-9_-]*)\\s+(when)\\s+","end":":","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"entity.name.tag.state.slint"},"2":{"name":"keyword.other.when.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.square.curly.slint"}}},{"begin":"(\\{)","end":"(\\})","patterns":[{"include":"#property-set"},{"begin":"(?\u003c!-)\\b(in|out)\\s+(\\{)","end":"(\\})","patterns":[{"include":"#property-set"},{"include":"#animate"}],"beginCaptures":{"1":{"name":"keyword.other.state-change.slint"},"2":{"name":"punctuation.brackets.square.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.square.curly.slint"}}}],"beginCaptures":{"1":{"name":"punctuation.brackets.square.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.square.curly.slint"}}}],"beginCaptures":{"1":{"name":"keyword.other.states.slint"},"2":{"name":"punctuation.brackets.square.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.square.slint"}}}]},"string":{"patterns":[{"name":"string.quoted.double.slint","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.untitled.slint","match":"\\\\(n|\\\\|u\\{\\d+\\}|\\{[^\\}]+\\})"}]}]},"struct":{"patterns":[{"begin":"(?\u003c!-)\\b(struct)\\s+([a-zA-Z_][a-zA-Z0-9_-]*)\\s*(\\{)","end":"(\\})","patterns":[{"match":"\\s*([a-zA-Z_][a-zA-Z0-9_-]*)\\s*:\\s*([a-zA-Z_][a-zA-Z0-9_-]*)(\\s*,)?\\s*","captures":{"1":{"name":"variable.other.struct.field.slint"},"2":{"name":"entity.name.type.struct.field.slint"}}},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.declaration.struct.slint"},"2":{"name":"entity.name.type.struct.slint"},"3":{"name":"punctuation.brackets.curly.slint"}},"endCaptures":{"1":{"name":"punctuation.brackets.curly.slint"}}}]},"value":{"patterns":[{"include":"#string"},{"include":"#color"},{"include":"#number"},{"include":"#boolean"},{"begin":"(@(tr|linear-gradient|radial-gradient|image-url))\\s*(\\()","end":"(\\))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"support.function.macro.slint"},"3":{"name":"punctuation.brackets.round.slint"}},"endCaptures":{"1":{"name":"support.function.macro.slint"},"2":{"name":"punctuation.brackets.round.slint"}}}]}}}
|
data/grammars/source.smithy.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"Smithy","scopeName":"source.smithy","patterns":[{"include":"#comment"},{"name":"meta.keyword.statement.control.smithy","begin":"^(\\$)([A-Z-a-z_][A-Z-a-z0-9_]*)(:)\\s*","end":"\\n","patterns":[{"include":"#value"},{"name":"invalid.illegal.control.smithy","match":"[^\\n]"}],"beginCaptures":{"1":{"name":"keyword.statement.control.smithy"},"2":{"name":"support.type.property-name.smithy"},"3":{"name":"punctuation.separator.dictionary.pair.smithy"}}},{"name":"meta.keyword.statement.metadata.smithy","begin":"^(metadata)\\s+(.+)\\s*(=)\\s*","end":"\\n","patterns":[{"include":"#value"}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"variable.other.smithy"},"3":{"name":"keyword.operator.smithy"}}},{"name":"meta.keyword.statement.namespace.smithy","begin":"^(namespace)\\s+","end":"\\n","patterns":[{"name":"entity.name.type.smithy","match":"[A-Z-a-z_][A-Z-a-z0-9_]*(\\.[A-Z-a-z_][A-Z-a-z0-9_]*)*"},{"name":"invalid.illegal.namespace.smithy","match":"[^\\n]"}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"}}},{"name":"meta.keyword.statement.use.smithy","begin":"^(use)\\s+","end":"\\n","patterns":[{"name":"entity.name.type.smithy","match":"[A-Z-a-z_][A-Z-a-z0-9_]*(\\.[A-Z-a-z_][A-Z-a-z0-9_]*)*#[A-Z-a-z_][A-Z-a-z0-9_]*(\\.[A-Z-a-z_][A-Z-a-z0-9_]*)*"},{"name":"invalid.illegal.use.smithy","match":"[^\\n]"}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"}}},{"include":"#trait"},{"name":"meta.keyword.statement.shape.smithy","begin":"^(byte|short|integer|long|float|double|bigInteger|bigDecimal|boolean|blob|string|timestamp|document|list|set|map|union|service|operation|resource|enum|intEnum)\\s+([A-Z-a-z_][A-Z-a-z0-9_]*)\\s+(with)\\s+(\\[)","end":"\\]","patterns":[{"name":"entity.name.type.smithy","include":"#identifier"},{"include":"#comment"},{"name":"punctuation.separator.array.smithy","match":","}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"entity.name.type.smithy"},"3":{"name":"keyword.statement.with.smithy"},"4":{"name":"punctuation.definition.array.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.smithy"}}},{"name":"meta.keyword.statement.shape.smithy","match":"^(byte|short|integer|long|float|double|bigInteger|bigDecimal|boolean|blob|string|timestamp|document|list|set|map|union|service|operation|resource|enum|intEnum)\\s+([A-Z-a-z_][A-Z-a-z0-9_]*)","captures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"entity.name.type.smithy"}}},{"name":"meta.keyword.statement.shape.smithy","begin":"^(structure)\\s+([A-Z-a-z_][A-Z-a-z0-9_]*)(?:\\s+(for)\\s+([0-9a-zA-Z\\.#-]+))?\\s+(with)\\s+(\\[)","end":"\\]","patterns":[{"name":"entity.name.type.smithy","include":"#identifier"},{"include":"#comment"},{"name":"punctuation.separator.array.smithy","match":","}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"entity.name.type.smithy"},"3":{"name":"keyword.statement.for-resource.smithy"},"4":{"name":"entity.name.type.smithy"},"5":{"name":"keyword.statement.with.smithy"},"6":{"name":"punctuation.definition.array.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.smithy"}}},{"name":"meta.keyword.statement.shape.smithy","match":"^(structure)\\s+([A-Z-a-z_][A-Z-a-z0-9_]*)(?:\\s+(for)\\s+([0-9a-zA-Z\\.#-]+))?","captures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"entity.name.type.smithy"},"3":{"name":"keyword.statement.for-resource.smithy"},"4":{"name":"entity.name.type.smithy"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"#shape_inner"}],"beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.smithy"}}},{"name":"meta.keyword.statement.apply.smithy","begin":"^(apply)\\s+","end":"\\n","patterns":[{"include":"#trait"},{"include":"#shapeid"},{"name":"invalid.illegal.apply.smithy","match":"[^\\n]"}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"}}}],"repository":{"array":{"name":"meta.structure.array.smithy","begin":"\\[","end":"\\]","patterns":[{"include":"#value"},{"name":"punctuation.separator.array.smithy","match":","},{"name":"invalid.illegal.array.smithy","match":"[^\\s\\]]"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.smithy"}}},"comment":{"patterns":[{"include":"#doc_comment"},{"include":"#line_comment"}]},"doc_comment":{"name":"comment.block.documentation.smithy","match":"(///.*)"},"dquote":{"name":"string.quoted.double.smithy","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.smithy","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.smithy"}}},"dquote_key":{"name":"support.type.property-name.smithy","match":"\".*\"(?=\\s*:)"},"elided_target":{"match":"(\\$)([A-Z-a-z0-9_\\.#$]+)","captures":{"1":{"name":"keyword.statement.elision.smithy"},"2":{"name":"support.type.property-name.smithy"}}},"identifier":{"name":"entity.name.type.smithy","match":"[A-Z-a-z_][A-Z-a-z0-9_]*"},"identifier_key":{"name":"support.type.property-name.smithy","match":"[A-Z-a-z0-9_\\.#$]+(?=\\s*:)"},"keywords":{"name":"constant.language.smithy","match":"\\b(?:true|false|null)\\b"},"line_comment":{"name":"comment.line.double-slash.smithy","match":"(//.*)"},"number":{"name":"constant.numeric.smithy","match":"(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"},"object":{"name":"meta.structure.dictionary.smithy","begin":"\\{","end":"\\}","patterns":[{"include":"#object_inner"}],"beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.smithy"}}},"object_inner":{"patterns":[{"include":"#comment"},{"include":"#string_key"},{"name":"punctuation.separator.dictionary.key-value.smithy","match":":"},{"name":"keyword.operator.smithy","match":"="},{"name":"meta.structure.dictionary.value.smithy","include":"#value"},{"name":"punctuation.separator.dictionary.pair.smithy","match":","}]},"shape_inner":{"patterns":[{"include":"#trait"},{"name":"punctuation.separator.dictionary.inline-struct.smithy","match":":="},{"include":"#with_statement"},{"include":"#elided_target"},{"include":"#object_inner"}]},"shapeid":{"name":"entity.name.type.smithy","match":"[A-Z-a-z_][A-Z-a-z0-9_\\.#$]*"},"string":{"patterns":[{"include":"#textblock"},{"include":"#dquote"},{"include":"#shapeid"}]},"string_key":{"patterns":[{"include":"#identifier_key"},{"include":"#dquote_key"}]},"textblock":{"name":"string.quoted.double.smithy","begin":"\"\"\"","end":"\"\"\"","patterns":[{"name":"constant.character.escape.smithy","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.smithy"}}},"trait":{"patterns":[{"name":"meta.keyword.statement.trait.smithy","begin":"(@)([0-9a-zA-Z\\.#-]+)(\\()","end":"\\)","patterns":[{"include":"#object_inner"},{"include":"#value"}],"beginCaptures":{"1":{"name":"punctuation.definition.annotation.smithy"},"2":{"name":"storage.type.annotation.smithy"},"3":{"name":"punctuation.definition.dictionary.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.smithy"}}},{"name":"meta.keyword.statement.trait.smithy","match":"(@)([0-9a-zA-Z\\.#-]+)","captures":{"1":{"name":"punctuation.definition.annotation.smithy"},"2":{"name":"storage.type.annotation.smithy"}}}]},"value":{"patterns":[{"include":"#comment"},{"include":"#keywords"},{"include":"#number"},{"include":"#string"},{"include":"#array"},{"include":"#object"}]},"with_statement":{"begin":"(with)\\s+(\\[)","end":"\\]","patterns":[{"name":"punctuation.separator.array.smithy","match":","},{"include":"#identifier"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.statement.with.smithy"},"2":{"name":"punctuation.definition.array.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.smithy"}}}}}
|
1
|
+
{"name":"Smithy","scopeName":"source.smithy","patterns":[{"include":"#comment"},{"name":"meta.keyword.statement.control.smithy","begin":"^(\\$)([A-Z-a-z_][A-Z-a-z0-9_]*)(:)\\s*","end":"\\n","patterns":[{"include":"#value"},{"name":"invalid.illegal.control.smithy","match":"[^\\n]"}],"beginCaptures":{"1":{"name":"keyword.statement.control.smithy"},"2":{"name":"support.type.property-name.smithy"},"3":{"name":"punctuation.separator.dictionary.pair.smithy"}}},{"name":"meta.keyword.statement.metadata.smithy","begin":"^(metadata)\\s+(.+)\\s*(=)\\s*","end":"\\n","patterns":[{"include":"#value"}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"variable.other.smithy"},"3":{"name":"keyword.operator.smithy"}}},{"name":"meta.keyword.statement.namespace.smithy","begin":"^(namespace)\\s+","end":"\\n","patterns":[{"name":"entity.name.type.smithy","match":"[A-Z-a-z_][A-Z-a-z0-9_]*(\\.[A-Z-a-z_][A-Z-a-z0-9_]*)*"},{"name":"invalid.illegal.namespace.smithy","match":"[^\\n]"}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"}}},{"name":"meta.keyword.statement.use.smithy","begin":"^(use)\\s+","end":"\\n","patterns":[{"name":"entity.name.type.smithy","match":"[A-Z-a-z_][A-Z-a-z0-9_]*(\\.[A-Z-a-z_][A-Z-a-z0-9_]*)*#[A-Z-a-z_][A-Z-a-z0-9_]*(\\.[A-Z-a-z_][A-Z-a-z0-9_]*)*"},{"name":"invalid.illegal.use.smithy","match":"[^\\n]"}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"}}},{"include":"#trait"},{"name":"meta.keyword.statement.shape.smithy","begin":"^(byte|short|integer|long|float|double|bigInteger|bigDecimal|boolean|blob|string|timestamp|document|list|set|map|union|service|operation|resource|enum|intEnum)\\s+([A-Z-a-z_][A-Z-a-z0-9_]*)\\s+(with)\\s+(\\[)","end":"\\]","patterns":[{"name":"entity.name.type.smithy","include":"#identifier"},{"include":"#comment"},{"name":"punctuation.separator.array.smithy","match":","}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"entity.name.type.smithy"},"3":{"name":"keyword.statement.with.smithy"},"4":{"name":"punctuation.definition.array.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.smithy"}}},{"name":"meta.keyword.statement.shape.smithy","match":"^(byte|short|integer|long|float|double|bigInteger|bigDecimal|boolean|blob|string|timestamp|document|list|set|map|union|service|operation|resource|enum|intEnum)\\s+([A-Z-a-z_][A-Z-a-z0-9_]*)","captures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"entity.name.type.smithy"}}},{"name":"meta.keyword.statement.shape.smithy","begin":"^(structure)\\s+([A-Z-a-z_][A-Z-a-z0-9_]*)(?:\\s+(for)\\s+([0-9a-zA-Z\\.#-]+))?\\s+(with)\\s+(\\[)","end":"\\]","patterns":[{"name":"entity.name.type.smithy","include":"#identifier"},{"include":"#comment"},{"name":"punctuation.separator.array.smithy","match":","}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"entity.name.type.smithy"},"3":{"name":"keyword.statement.for-resource.smithy"},"4":{"name":"entity.name.type.smithy"},"5":{"name":"keyword.statement.with.smithy"},"6":{"name":"punctuation.definition.array.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.smithy"}}},{"name":"meta.keyword.statement.shape.smithy","match":"^(structure)\\s+([A-Z-a-z_][A-Z-a-z0-9_]*)(?:\\s+(for)\\s+([0-9a-zA-Z\\.#-]+))?","captures":{"1":{"name":"keyword.statement.smithy"},"2":{"name":"entity.name.type.smithy"},"3":{"name":"keyword.statement.for-resource.smithy"},"4":{"name":"entity.name.type.smithy"}}},{"begin":"\\{","end":"\\}","patterns":[{"include":"#shape_inner"}],"beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.smithy"}}},{"name":"meta.keyword.statement.apply.smithy","begin":"^(apply)\\s+","end":"\\n","patterns":[{"include":"#trait"},{"include":"#shapeid"},{"name":"invalid.illegal.apply.smithy","match":"[^\\n]"}],"beginCaptures":{"1":{"name":"keyword.statement.smithy"}}},{"name":"meta.keyword.statement.member.smithy","begin":"^([A-Z-a-z_][A-Z-a-z0-9_]*)(:)\\s*","end":"\\n","patterns":[{"include":"#shapeid"}],"beginCaptures":{"1":{"name":"support.type.property-name.smithy"},"2":{"name":"punctuation.separator.dictionary.pair.smithy"}}}],"repository":{"array":{"name":"meta.structure.array.smithy","begin":"\\[","end":"\\]","patterns":[{"include":"#value"},{"name":"punctuation.separator.array.smithy","match":","},{"name":"invalid.illegal.array.smithy","match":"[^\\s\\]]"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.smithy"}}},"comment":{"patterns":[{"include":"#doc_comment"},{"include":"#line_comment"}]},"doc_comment":{"name":"comment.block.documentation.smithy","match":"(///.*)"},"dquote":{"name":"string.quoted.double.smithy","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.smithy","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.smithy"}}},"dquote_key":{"name":"support.type.property-name.smithy","match":"\".*\"(?=\\s*:)"},"elided_target":{"match":"(\\$)([A-Z-a-z0-9_\\.#$]+)","captures":{"1":{"name":"keyword.statement.elision.smithy"},"2":{"name":"support.type.property-name.smithy"}}},"identifier":{"name":"entity.name.type.smithy","match":"[A-Z-a-z_][A-Z-a-z0-9_]*"},"identifier_key":{"name":"support.type.property-name.smithy","match":"[A-Z-a-z0-9_\\.#$]+(?=\\s*:)"},"keywords":{"name":"constant.language.smithy","match":"\\b(?:true|false|null)\\b"},"line_comment":{"name":"comment.line.double-slash.smithy","match":"(//.*)"},"number":{"name":"constant.numeric.smithy","match":"(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"},"object":{"name":"meta.structure.dictionary.smithy","begin":"\\{","end":"\\}","patterns":[{"include":"#object_inner"}],"beginCaptures":{"0":{"name":"punctuation.definition.dictionary.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.smithy"}}},"object_inner":{"patterns":[{"include":"#comment"},{"include":"#string_key"},{"name":"punctuation.separator.dictionary.key-value.smithy","match":":"},{"name":"keyword.operator.smithy","match":"="},{"name":"meta.structure.dictionary.value.smithy","include":"#value"},{"name":"punctuation.separator.dictionary.pair.smithy","match":","}]},"shape_inner":{"patterns":[{"include":"#trait"},{"name":"punctuation.separator.dictionary.inline-struct.smithy","match":":="},{"include":"#with_statement"},{"include":"#elided_target"},{"include":"#object_inner"}]},"shapeid":{"name":"entity.name.type.smithy","match":"[A-Z-a-z_][A-Z-a-z0-9_\\.#$]*"},"string":{"patterns":[{"include":"#textblock"},{"include":"#dquote"},{"include":"#shapeid"}]},"string_key":{"patterns":[{"include":"#identifier_key"},{"include":"#dquote_key"}]},"textblock":{"name":"string.quoted.double.smithy","begin":"\"\"\"","end":"\"\"\"","patterns":[{"name":"constant.character.escape.smithy","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.smithy"}}},"trait":{"patterns":[{"name":"meta.keyword.statement.trait.smithy","begin":"(@)([0-9a-zA-Z\\.#-]+)(\\()","end":"\\)","patterns":[{"include":"#object_inner"},{"include":"#value"}],"beginCaptures":{"1":{"name":"punctuation.definition.annotation.smithy"},"2":{"name":"storage.type.annotation.smithy"},"3":{"name":"punctuation.definition.dictionary.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.dictionary.end.smithy"}}},{"name":"meta.keyword.statement.trait.smithy","match":"(@)([0-9a-zA-Z\\.#-]+)","captures":{"1":{"name":"punctuation.definition.annotation.smithy"},"2":{"name":"storage.type.annotation.smithy"}}}]},"value":{"patterns":[{"include":"#comment"},{"include":"#keywords"},{"include":"#number"},{"include":"#string"},{"include":"#array"},{"include":"#object"}]},"with_statement":{"begin":"(with)\\s+(\\[)","end":"\\]","patterns":[{"name":"punctuation.separator.array.smithy","match":","},{"include":"#identifier"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.statement.with.smithy"},"2":{"name":"punctuation.definition.array.begin.smithy"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.smithy"}}}}}
|