@shikijs/langs-precompiled 4.0.1 → 4.1.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.
package/dist/apex.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"Apex",fileTypes:["apex","cls","trigger"],name:"apex",patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#directives"},{include:"#declarations"},{include:"#script-top-level"}],repository:{"annotation-declaration":{begin:/(@[_\p{Alpha}]+)\b/dgv,beginCaptures:{"1":{name:"storage.type.annotation.apex"}},end:/(?=\p{space}(?!\())|(?=\p{space}*(?=\n?$))|(?<=\p{space}*\))/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"argument-list":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"array-creation-expression":{begin:/*@__PURE__*/ new EmulatedRegExp("\\b(new)\\b\\p{space}*(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)?\\p{space}*(?=\\[)","dgv",{"hiddenCaptures":[5,7,8,9],"transfers":[[3,[5,8]],[4,[7]],[6,[9]]]}),beginCaptures:{"1":{name:"keyword.control.new.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]}},end:/(?<=\])/dgv,patterns:[{include:"#bracketed-argument-list"}]},block:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"}]},"boolean-literal":{patterns:[{match:/(?<!\.)\btrue\b/dgv,name:"constant.language.boolean.true.apex"},{match:/(?<!\.)\bfalse\b/dgv,name:"constant.language.boolean.false.apex"}]},"bracketed-argument-list":{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.squarebracket.open.apex"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.squarebracket.close.apex"}},patterns:[{include:"#soql-query-expression"},{include:"#named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"break-or-continue-statement":{captures:{"1":{name:"keyword.control.flow.break.apex"},"2":{name:"keyword.control.flow.continue.apex"}},match:/(?<!\.)\b(?:(break)|(continue))\b/dgv},"cast-expression":{captures:{"1":{name:"punctuation.parenthesis.open.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{name:"punctuation.parenthesis.close.apex"}},match:/*@__PURE__*/ new EmulatedRegExp("(\\()\\p{space}*(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(\\))(?=\\p{space}*@?[\\(_\\p{Alpha}\\p{Nd}])","dgv",{"hiddenCaptures":[5,7,8,9],"transfers":[[3,[5,8]],[4,[7]],[6,[9]]]})},"catch-clause":{begin:/(?<!\.)\b(catch)\b/dgv,beginCaptures:{"1":{name:"keyword.control.try.catch.apex"}},end:/(?<=\})/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{captures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"5":{name:"entity.name.variable.local.apex"}},match:/*@__PURE__*/ new EmulatedRegExp("(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(?:((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\b)?","dgv",{"hiddenCaptures":[4,6,7,8,10],"transfers":[[2,[4,7,10]],[3,[6]],[5,[8]]]})}]},{include:"#comment"},{include:"#block"}]},"class-declaration":{begin:/(?=\bclass\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\b(class)\b\p{space}+(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.other.class.apex"},"2":{name:"entity.name.type.class.apex"}},end:/(?=\{)/dgv,patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"},{include:"#extends-class"},{include:"#implements-class"}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#class-or-trigger-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"class-or-trigger-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#type-declarations"},{include:"#field-declaration"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#variable-initializer"},{include:"#constructor-declaration"},{include:"#method-declaration"},{include:"#initializer-block"},{include:"#punctuation-semicolon"}]},"colon-expression":{match:/:/dgv,name:"keyword.operator.conditional.colon.apex"},comment:{patterns:[{begin:/\/\*(\*)?/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.apex"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.apex"}},name:"comment.block.apex"},{begin:/(^\p{space}+)?(?=\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.apex"}},end:/(?=(?=\n?$))/dgv,patterns:[{begin:/(?<!\/)\/\/\/(?!\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.apex"}},end:/(?=(?=\n?$))/dgv,name:"comment.block.documentation.apex",patterns:[{include:"#xml-doc-comment"}]},{begin:/(?<!\/)\/\/(?:(?!\/)|(?=\/\/))/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.apex"}},end:/(?=(?=\n?$))/dgv,name:"comment.line.double-slash.apex"}]}]},"conditional-operator":{begin:/(?<!\?)\?(?!\?|\.(?!\p{Nd})|\[)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.question-mark.apex"}},end:/:/dgv,endCaptures:{"0":{name:"keyword.operator.conditional.colon.apex"}},patterns:[{include:"#expression"}]},"constructor-declaration":{begin:/(?=@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*\p{space}*\()/dgv,end:/(?<=\})|(?=;)/dgv,patterns:[{captures:{"1":{name:"entity.name.function.apex"}},match:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\b/dgv},{begin:/(:)/dgv,beginCaptures:{"1":{name:"punctuation.separator.colon.apex"}},end:/(?=\{|=>)/dgv,patterns:[{include:"#constructor-initializer"}]},{include:"#parenthesized-parameter-list"},{include:"#comment"},{include:"#expression-body"},{include:"#block"}]},"constructor-initializer":{begin:/\b(this)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.other.this.apex"}},end:/(?<=\))/dgv,patterns:[{include:"#argument-list"}]},"date-literal-with-params":{captures:{"1":{name:"keyword.operator.query.date.apex"}},match:/\b(((?:LAST_N_DAY|NEXT_N_DAY|NEXT_N_WEEK|LAST_N_WEEK|NEXT_N_MONTH|LAST_N_MONTH|NEXT_N_QUARTER|LAST_N_QUARTER|NEXT_N_YEAR|LAST_N_YEAR|NEXT_N_FISCAL_QUARTER|LAST_N_FISCAL_QUARTER|NEXT_N_FISCAL_YEAR|LAST_N_FISCAL_YEAR)S)\p{space}*:\p{Nd}+)\b/dgv},"date-literals":{captures:{"1":{name:"keyword.operator.query.date.apex"}},match:/\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\b\p{space}*/dgv},declarations:{patterns:[{include:"#type-declarations"},{include:"#punctuation-semicolon"}]},directives:{patterns:[{include:"#punctuation-semicolon"}]},"dml-expression":{begin:/\b(delete|insert|undelete|update|upsert)\b\p{space}+(?!new\b)/dgv,beginCaptures:{"1":{name:"support.function.apex"}},end:/(?<=;)/dgv,patterns:[{include:"#expression"},{include:"#punctuation-semicolon"}]},"do-statement":{begin:/(?<!\.)\b(do)\b/dgv,beginCaptures:{"1":{name:"keyword.control.loop.do.apex"}},end:/(?=[\;\}])/dgv,patterns:[{include:"#statement"}]},"element-access-expression":{begin:/(?:(\??\.)\p{space}*)?(?:(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*)?(?:(\?)\p{space}*)?(?=\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.property.apex"},"3":{name:"keyword.operator.null-conditional.apex"}},end:/(?<=\])(?!\p{space}*\[)/dgv,patterns:[{include:"#bracketed-argument-list"}]},"else-part":{begin:/(?<!\.)\b(else)\b/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.else.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{include:"#statement"}]},"enum-declaration":{begin:/(?=\benum\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/(?=enum)/dgv,end:/(?=\{)/dgv,patterns:[{include:"#javadoc-comment"},{include:"#comment"},{captures:{"1":{name:"keyword.other.enum.apex"},"2":{name:"entity.name.type.enum.apex"}},match:/(enum)\p{space}+(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#punctuation-comma"},{begin:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,beginCaptures:{"0":{name:"entity.name.variable.enum-member.apex"}},end:/(?=([\,\}]))/dgv,patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#variable-initializer"}]}]},{include:"#javadoc-comment"},{include:"#comment"}]},expression:{patterns:[{include:"#comment"},{include:"#dml-expression"},{include:"#merge-expression"},{include:"#support-expression"},{include:"#throw-expression"},{include:"#this-expression"},{include:"#trigger-context-declaration"},{include:"#conditional-operator"},{include:"#expression-operators"},{include:"#soql-query-expression"},{include:"#object-creation-expression"},{include:"#array-creation-expression"},{include:"#invocation-expression"},{include:"#member-access-expression"},{include:"#element-access-expression"},{include:"#cast-expression"},{include:"#literal"},{include:"#parenthesized-expression"},{include:"#initializer-expression"},{include:"#identifier"}]},"expression-body":{begin:/=>/dgv,beginCaptures:{"0":{name:"keyword.operator.arrow.apex"}},end:/(?=[\)\,\;\}])/dgv,patterns:[{include:"#expression"}]},"expression-operators":{patterns:[{match:/[\-\%\*\+\/]=/dgv,name:"keyword.operator.assignment.compound.apex"},{match:/(?:[\&\^]|<<|>>|\|)=/dgv,name:"keyword.operator.assignment.compound.bitwise.apex"},{match:/<<|>>/dgv,name:"keyword.operator.bitwise.shift.apex"},{match:/[\!\=]=/dgv,name:"keyword.operator.comparison.apex"},{match:/<=|>=|[\<\>]/dgv,name:"keyword.operator.relational.apex"},{match:/!|&&|\|\|/dgv,name:"keyword.operator.logical.apex"},{match:/[\&\^\|\~]/dgv,name:"keyword.operator.bitwise.apex"},{match:/=/dgv,name:"keyword.operator.assignment.apex"},{match:/--/dgv,name:"keyword.operator.decrement.apex"},{match:/\+\+/dgv,name:"keyword.operator.increment.apex"},{match:/[\-\%\*\+\/]/dgv,name:"keyword.operator.arithmetic.apex"}]},"extends-class":{begin:/(extends)\b\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.extends.apex"}},end:/(?=\{|implements)/dgv,patterns:[{begin:/(?=[_\p{Alpha}][_\p{Alpha}\p{Nd}]*\p{space}*\.)/dgv,end:/(?=\{|implements)/dgv,patterns:[{include:"#support-type"},{include:"#type"}]},{captures:{"1":{name:"entity.name.type.extends.apex"}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv}]},"field-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(?!=[\\=\\>])(?=[\\,\\;\\=]|(?=\\n?$))","dgv",{"hiddenCaptures":[4,6,7,8,10],"transfers":[[2,[4,7,10]],[3,[6]],[5,[8]]]}),beginCaptures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"5":{name:"entity.name.variable.field.apex"}},end:/(?=;)/dgv,patterns:[{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.variable.field.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"finally-clause":{begin:/(?<!\.)\b(finally)\b/dgv,beginCaptures:{"1":{name:"keyword.control.try.finally.apex"}},end:/(?<=\})/dgv,patterns:[{include:"#comment"},{include:"#block"}]},"for-apex-syntax":{captures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"2":{name:"entity.name.variable.local.apex"},"3":{name:"keyword.operator.iterator.colon.apex"}},match:/([\._\p{Alpha}][\._\p{Alpha}\p{Nd}]+)\p{space}+([\._\p{Alpha}][\._\p{Alpha}\p{Nd}]*)\p{space}*(:)/dgv},"for-statement":{begin:/(?<!\.)\b(for)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.control.loop.for.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#for-apex-syntax"},{include:"#local-variable-declaration"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#colon-expression"}]},{include:"#statement"}]},"from-clause":{captures:{"1":{name:"keyword.operator.query.from.apex"},"2":{name:"storage.type.apex"}},match:/(FROM)\b\p{space}*([\._\p{Alpha}\p{Nd}]+\b)?/dgv},"goto-statement":{begin:/(?<!\.)\b(goto)\b/dgv,beginCaptures:{"1":{name:"keyword.control.goto.apex"}},end:/(?=;)/dgv,patterns:[{begin:/\b(case)\b/dgv,beginCaptures:{"1":{name:"keyword.control.case.apex"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},{captures:{"1":{name:"keyword.control.default.apex"}},match:/\b(default)\b/dgv},{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.label.apex"}]},identifier:{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.readwrite.apex"},"if-statement":{begin:/(?<!\.)\b(if)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.if.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"implements-class":{begin:/(implements)\b/dgv,beginCaptures:{"1":{name:"keyword.other.implements.apex"}},end:/(?=\{|extends)/dgv,patterns:[{begin:/(?=[_\p{Alpha}][_\p{Alpha}\p{Nd}]*\p{space}*\.)/dgv,end:/(?=\{|extends|,)/dgv,patterns:[{include:"#support-type"},{include:"#type"}]},{captures:{"1":{name:"entity.name.type.implements.apex"},"2":{name:"punctuation.separator.comma.apex"}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\b\p{space}*(,)?/dgv},{include:"#punctuation-comma"}]},"indexer-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?<return_type>(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+)(?<interface_name>((?:ref\\p{space}+)?(?:(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*\\.\\p{space}*)?(?<indexer_name>this)\\p{space}*(?=\\[)","dgv",{"hiddenCaptures":[5,7,8,9,11,12,13,14,15,16,17,18],"transfers":[[3,[5,8,12,14,17]],[4,[7,13,16]],[6,[9,15,18]],[2,[11]]]}),beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{name:"keyword.other.this.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"}]},"initializer-block":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"}]},"initializer-expression":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-declaration":{begin:/(?=\binterface\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/(interface)\b\p{space}+(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"1":{name:"keyword.other.interface.apex"},"2":{name:"entity.name.type.interface.apex"}},end:/(?=\{)/dgv,patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"},{include:"#extends-class"}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#interface-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"interface-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},"invocation-expression":{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(\\??\\.)\\p{space}*)?(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?\\p{space}*(?=\\()","dgv",{"hiddenCaptures":[5,6,7,8]}),beginCaptures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"entity.name.function.apex"},"3":{patterns:[{include:"#type-arguments"}]}},end:/(?<=\))/dgv,patterns:[{include:"#argument-list"}]},"javadoc-comment":{patterns:[{begin:/^\p{space}*(\/\*\*)(?!\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.apex"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.apex"}},name:"comment.block.javadoc.apex",patterns:[{match:/@(deprecated|author|return|see|serial|since|version|usage|name|link)\b/dgv,name:"keyword.other.documentation.javadoc.apex"},{captures:{"1":{name:"keyword.other.documentation.javadoc.apex"},"2":{name:"entity.name.variable.parameter.apex"}},match:/(@param)\p{space}+(\P{space}+)/dgv},{captures:{"1":{name:"keyword.other.documentation.javadoc.apex"},"2":{name:"entity.name.type.class.apex"}},match:/(@(?:exception|throws))\p{space}+(\P{space}+)/dgv},{captures:{"1":{name:"string.quoted.single.apex"}},match:/(`([^\`]+?)`)/dgv}]}]},literal:{patterns:[{include:"#boolean-literal"},{include:"#null-literal"},{include:"#numeric-literal"},{include:"#string-literal"}]},"local-constant-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("\\b(?<const_keyword>const)\\b\\p{space}*(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(?=[\\,\\;\\=])","dgv",{"hiddenCaptures":[5,7,8,9,11],"transfers":[[3,[5,8,11]],[4,[7]],[6,[9]]]}),beginCaptures:{"1":{name:"storage.modifier.apex"},"2":{patterns:[{include:"#type"}]},"6":{name:"entity.name.variable.local.apex"}},end:/(?=;)/dgv,patterns:[{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.variable.local.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-declaration":{patterns:[{include:"#local-constant-declaration"},{include:"#local-variable-declaration"}]},"local-variable-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?:\\b(ref)\\p{space}+)?\\b(var)\\b|(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*))\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(?=[\\)\\,\\;\\=])","dgv",{"hiddenCaptures":[6,8,9,10,12],"transfers":[[4,[6,9,12]],[5,[8]],[7,[10]]]}),beginCaptures:{"1":{name:"storage.modifier.apex"},"2":{name:"keyword.other.var.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]},"7":{name:"entity.name.variable.local.apex"}},end:/(?=[\)\;])/dgv,patterns:[{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.variable.local.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"member-access-expression":{patterns:[{captures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.property.apex"}},match:/(\??\.)\p{space}*(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*(?![\(_\p{Alpha}\p{Nd}]|(\?)?\[|<)/dgv},{captures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.apex"},"3":{patterns:[{include:"#type-arguments"}]}},match:/*@__PURE__*/ new EmulatedRegExp("(\\??\\.)?\\p{space}*(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)(?<type_params>\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)(?=(\\p{space}*\\?)?\\p{space}*\\.\\p{space}*@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)","dgv",{"hiddenCaptures":[5,6,7,8]})},{captures:{"1":{name:"variable.other.object.apex"}},match:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(?=(\p{space}*\?)?\p{space}*\.\p{space}*@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv}]},"merge-expression":{begin:/(merge)\b\p{space}+/dgv,beginCaptures:{"1":{name:"support.function.apex"}},end:/(?<=;)/dgv,patterns:[{include:"#object-creation-expression"},{include:"#merge-type-statement"},{include:"#expression"},{include:"#punctuation-semicolon"}]},"merge-type-statement":{captures:{"1":{name:"variable.other.readwrite.apex"},"2":{name:"variable.other.readwrite.apex"},"3":{name:"punctuation.terminator.statement.apex"}},match:/([_\p{Alpha}]*)\b\p{space}+([_\p{Alpha}]*)\b\p{space}*(;)/dgv},"method-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?<return_type>(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+)(?<interface_name>((?:ref\\p{space}+)?(?:(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*\\.\\p{space}*)?((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(<([^\\<\\>]+)>)?\\p{space}*(?=\\()","dgv",{"hiddenCaptures":[5,7,8,9,11,12,13,14,15,16,17,18,20],"transfers":[[3,[5,8,12,14,17,20]],[4,[7,13,16]],[6,[9,15,18]],[2,[11]]]}),beginCaptures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{patterns:[{include:"#support-type"},{include:"#method-name-custom"}]},"8":{patterns:[{include:"#type-parameter-list"}]}},end:/(?<=\})|(?=;)/dgv,patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"method-name-custom":{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.function.apex"},"named-argument":{begin:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"entity.name.variable.parameter.apex"},"2":{name:"punctuation.separator.colon.apex"}},end:/(?=([\]\)\,]))/dgv,patterns:[{include:"#expression"}]},"null-literal":{match:/(?<!\.)\bnull\b/dgv,name:"constant.language.null.apex"},"numeric-literal":{patterns:[{match:/\b(\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}T\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}(\.\p{Nd}{1,3})?([\-\+])\p{Nd}{2}:\p{Nd}{2})\b/dgv,name:"constant.numeric.datetime.apex"},{match:/\b(\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}T\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}(\.\p{Nd}{1,3})?(Z)?)\b/dgv,name:"constant.numeric.datetime.apex"},{match:/\b(\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2})\b/dgv,name:"constant.numeric.date.apex"},{match:/\b0([Xx])[_\p{AHex}]+([LUlu]|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/dgv,name:"constant.numeric.hex.apex"},{match:/\b0([Bb])[01_]+([LUlu]|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/dgv,name:"constant.numeric.binary.apex"},{match:/\b([0-9_]+)?\.[0-9_]+(([Ee])[0-9]+)?([DFMdfm])?\b/dgv,name:"constant.numeric.decimal.apex"},{match:/\b[0-9_]+([Ee])[0-9_]+([DFMdfm])?\b/dgv,name:"constant.numeric.decimal.apex"},{match:/\b[0-9_]+([DFMdfm])\b/dgv,name:"constant.numeric.decimal.apex"},{match:/\b[0-9_]+([LUlu]|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/dgv,name:"constant.numeric.decimal.apex"}]},"object-creation-expression":{patterns:[{include:"#object-creation-expression-with-parameters"},{include:"#object-creation-expression-with-no-parameters"},{include:"#punctuation-comma"}]},"object-creation-expression-with-no-parameters":{captures:{"1":{name:"support.function.apex"},"2":{name:"keyword.control.new.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]}},match:/*@__PURE__*/ new EmulatedRegExp("(delete|insert|undelete|update|upsert)?\\p{space}*(new)\\p{space}+(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(?=\\{|(?=\\n?$))","dgv",{"hiddenCaptures":[6,8,9,10],"transfers":[[4,[6,9]],[5,[8]],[7,[10]]]})},"object-creation-expression-with-parameters":{begin:/*@__PURE__*/ new EmulatedRegExp("(delete|insert|undelete|update|upsert)?\\p{space}*(new)\\p{space}+(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(?=\\()","dgv",{"hiddenCaptures":[6,8,9,10],"transfers":[[4,[6,9]],[5,[8]],[7,[10]]]}),beginCaptures:{"1":{name:"support.function.apex"},"2":{name:"keyword.control.new.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]}},end:/(?<=\))/dgv,patterns:[{include:"#argument-list"}]},"operator-assignment":{match:/(?<![\!\=])(=)(?!=)/dgv,name:"keyword.operator.assignment.apex"},"operator-safe-navigation":{match:/\?\./dgv,name:"keyword.operator.safe-navigation.apex"},"orderby-clause":{captures:{"1":{name:"keyword.operator.query.orderby.apex"}},match:/\b(ORDER BY)\b\p{space}*/dgv,patterns:[{include:"#ordering-direction"},{include:"#ordering-nulls"}]},"ordering-direction":{captures:{"1":{name:"keyword.operator.query.ascending.apex"},"2":{name:"keyword.operator.query.descending.apex"}},match:/\b(?:(ASC)|(DESC))\b/dgv},"ordering-nulls":{captures:{"1":{name:"keyword.operator.query.nullsfirst.apex"},"2":{name:"keyword.operator.query.nullslast.apex"}},match:/\b(?:(NULLS FIRST)|(NULLS LAST))\b/dgv},parameter:{captures:{"1":{name:"storage.modifier.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{name:"entity.name.variable.parameter.apex"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:\\b(this|final)\\b\\p{space}+)?(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))","dgv",{"hiddenCaptures":[5,7,8,9,11],"transfers":[[3,[5,8,11]],[4,[7]],[6,[9]]]})},"parenthesized-expression":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},"parenthesized-parameter-list":{begin:/(\()/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/(\))/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#comment"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]},"property-accessors":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{match:/\b(pr(?:ivate|otected))\b/dgv,name:"storage.modifier.apex"},{match:/\b(get)\b/dgv,name:"keyword.other.get.apex"},{match:/\b(set)\b/dgv,name:"keyword.other.set.apex"},{include:"#comment"},{include:"#expression-body"},{include:"#block"},{include:"#punctuation-semicolon"}]},"property-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?![^\\n]*\\b(?:class|interface|enum)\\b)\\p{space}*(?<return_type>(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+)(?<interface_name>((?:ref\\p{space}+)?(?:(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*\\.\\p{space}*)?(?<property_name>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(?=\\{|=>|(?=\\n?$))","dgv",{"hiddenCaptures":[5,7,8,9,11,12,13,14,15,16,17,18,20],"transfers":[[3,[5,8,12,14,17,20]],[4,[7,13,16]],[6,[9,15,18]],[2,[11]]]}),beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{name:"entity.name.variable.property.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"punctuation-accessor":{match:/\./dgv,name:"punctuation.accessor.apex"},"punctuation-comma":{match:/,/dgv,name:"punctuation.separator.comma.apex"},"punctuation-semicolon":{match:/;/dgv,name:"punctuation.terminator.statement.apex"},"query-operators":{captures:{"1":{name:"keyword.operator.query.apex"}},match:/\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\b\p{space}*/dgv},"return-statement":{begin:/(?<!\.)\b(return)\b/dgv,beginCaptures:{"1":{name:"keyword.control.flow.return.apex"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},"script-top-level":{patterns:[{include:"#method-declaration"},{include:"#statement"},{include:"#punctuation-semicolon"}]},"sharing-modifier":{match:/(?<!\.)\b((?:with|without|inherited) sharing)\b/dgv,name:"sharing.modifier.apex"},"soql-colon-method-statement":{begin:/(:?\.)?([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(?=\()/dgv,beginCaptures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"entity.name.function.apex"}},end:/(?<=\))/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"soql-colon-vars":{begin:/(:)\p{space}*/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.colon.apex"}},end:/(?![\(_\p{Alpha}\p{Nd}]|(\?)?\[|<)/dgv,patterns:[{include:"#trigger-context-declaration"},{captures:{"1":{name:"variable.other.object.apex"},"2":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(\??\.)/dgv},{include:"#soql-colon-method-statement"},{match:/[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.variable.local.apex"}]},"soql-functions":{begin:/\b(AVG|CALENDAR_MONTH|CALENDAR_QUARTER|CALENDAR_YEAR|convertCurrency|convertTimezone|COUNT|COUNT_DISTINCT|DAY_IN_MONTH|DAY_IN_WEEK|DAY_IN_YEAR|DAY_ONLY|toLabel|INCLUDES|EXCLUDES|FISCAL_MONTH|FISCAL_QUARTER|FISCAL_YEAR|FORMAT|GROUPING|GROUP BY CUBE|GROUP BY ROLLUP|HOUR_IN_DAY|MAX|MIN|SUM|WEEK_IN_MONTH|WEEK_IN_YEAR)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"support.function.query.apex"},"2":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#literal"},{include:"#punctuation-comma"},{include:"#soql-functions"},{match:/[\._\p{Alpha}][\._\p{Alpha}\p{Nd}]*/dgv,name:"keyword.query.field.apex"}]},"soql-group-clauses":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#soql-query-expression"},{include:"#soql-colon-vars"},{include:"#soql-group-clauses"},{include:"#punctuation-comma"},{include:"#operator-assignment"},{include:"#literal"},{include:"#query-operators"},{include:"#date-literals"},{include:"#date-literal-with-params"},{include:"#using-scope"},{match:/[\._\p{Alpha}][\._\p{Alpha}\p{Nd}]*/dgv,name:"keyword.query.field.apex"}]},"soql-query-body":{patterns:[{include:"#trigger-context-declaration"},{include:"#soql-colon-vars"},{include:"#soql-functions"},{include:"#from-clause"},{include:"#where-clause"},{include:"#query-operators"},{include:"#date-literals"},{include:"#date-literal-with-params"},{include:"#using-scope"},{include:"#soql-group-clauses"},{include:"#orderby-clause"},{include:"#ordering-direction"},{include:"#ordering-nulls"}]},"soql-query-expression":{begin:/\b(SELECT)\b\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.operator.query.select.apex"}},end:/(?=;)|(?=\])|(?=\))/dgv,patterns:[{include:"#soql-query-body"},{include:"#comment"},{include:"#punctuation-comma"},{include:"#operator-assignment"},{include:"#parenthesized-expression"},{include:"#expression-operators"},{include:"#literal"},{captures:{"1":{name:"keyword.query.field.apex"},"2":{name:"punctuation.separator.comma.apex"}},match:/([\._\p{Alpha}][\._\p{Alpha}\p{Nd}]*)\p{space}*(,)?/dgv}]},statement:{patterns:[{include:"#comment"},{include:"#while-statement"},{include:"#do-statement"},{include:"#for-statement"},{include:"#switch-statement"},{include:"#when-else-statement"},{include:"#when-sobject-statement"},{include:"#when-statement"},{include:"#when-multiple-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#goto-statement"},{include:"#return-statement"},{include:"#break-or-continue-statement"},{include:"#throw-statement"},{include:"#try-statement"},{include:"#soql-query-expression"},{include:"#local-declaration"},{include:"#block"},{include:"#expression"},{include:"#punctuation-semicolon"}]},"storage-modifier":{match:/(?<!\.)\b(new|public|protected|private|abstract|virtual|override|global|static|final|transient)\b/dgv,name:"storage.modifier.apex"},"string-character-escape":{match:/\\[^\n]/dgv,name:"constant.character.escape.apex"},"string-literal":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.apex"}},end:/(')|([^\n\\])(?=\n?$)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.apex"},"2":{name:"invalid.illegal.newline.apex"}},name:"string.quoted.single.apex",patterns:[{include:"#string-character-escape"}]},"support-arguments":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.apex"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#punctuation-comma"}]},"support-class":{captures:{"1":{name:"support.class.apex"}},match:/\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\b/dgv},"support-expression":{begin:/(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=[\.\p{space}])/dgv,beginCaptures:{"1":{name:"support.class.apex"}},end:/(?<=\)|(?=\n?$))|(?=\})|(?=;)|(?=\)|(?=\]))|(?=,)/dgv,patterns:[{include:"#support-type"},{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.function.apex"}},match:/(\.)(\p{Alpha}*)(?=\()/dgv},{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.type.apex"}},match:/(\.)(\p{Alpha}+)/dgv},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{include:"#comment"},{include:"#statement"}]},"support-functions":{captures:{"1":{name:"support.function.apex"}},match:/\b(delete|execute|finish|insert|start|undelete|update|upsert)\b/dgv},"support-name":{patterns:[{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.function.apex"}},match:/(\.)\p{space}*(\p{Alpha}*)(?=\()/dgv},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.type.apex"}},match:/(\.)\p{space}*([_\p{Alpha}]*)/dgv}]},"support-type":{name:"support.apex",patterns:[{include:"#comment"},{include:"#support-class"},{include:"#support-functions"},{include:"#support-name"}]},"switch-statement":{begin:/(switch)\b\p{space}+(on)\b\p{space}+([^\n]*)(\{)/dgv,beginCaptures:{"1":{name:"keyword.control.switch.apex"},"2":{name:"keyword.control.switch.on.apex"},"3":{patterns:[{include:"#statement"},{include:"#parenthesized-expression"}]},"4":{name:"punctuation.curlybrace.open.apex"}},end:/(\})/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#when-string"},{include:"#when-else-statement"},{include:"#when-sobject-statement"},{include:"#when-statement"},{include:"#when-multiple-statement"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"this-expression":{captures:{"1":{name:"keyword.other.this.apex"}},match:/\b(this)\b/dgv},"throw-expression":{captures:{"1":{name:"keyword.control.flow.throw.apex"}},match:/(?<!\.)\b(throw)\b/dgv},"throw-statement":{begin:/(?<!\.)\b(throw)\b/dgv,beginCaptures:{"1":{name:"keyword.control.flow.throw.apex"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},"trigger-context-declaration":{begin:/\b(Trigger)\b(\.)\b/dgv,beginCaptures:{"1":{name:"support.class.trigger.apex"},"2":{name:"punctuation.accessor.apex"}},end:/(?=\})|(?=;)|(?=\)|(?=\]))/dgv,patterns:[{match:/\b(isExecuting|isInsert|isUpdate|isDelete|isBefore|isAfter|isUndelete|new|newMap|old|oldMap|size)\b/dgv,name:"support.type.trigger.apex"},{captures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"support.function.trigger.apex"}},match:/(\??\.)(\p{Alpha}+)(?=\()/dgv},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#trigger-type-statement"},{include:"#javadoc-comment"},{include:"#comment"},{include:"#expression"}]},{include:"#expression"}]},"trigger-declaration":{begin:/(?=\btrigger\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\b(trigger)\b\p{space}+(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*\b(on)\b\p{space}+([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.other.trigger.apex"},"2":{name:"entity.name.type.trigger.apex"},"3":{name:"keyword.operator.trigger.on.apex"},"4":{name:"storage.type.apex"}},end:/(?=\{)/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#trigger-type-statement"},{include:"#trigger-operator-statement"},{include:"#punctuation-comma"},{include:"#expression"}]},{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"},{include:"#class-or-trigger-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"trigger-operator-statement":{match:/\b(insert|update|delete|merge|upsert|undelete)\b/dgv,name:"keyword.operator.trigger.apex"},"trigger-type-statement":{captures:{"1":{name:"keyword.control.trigger.before.apex"},"2":{name:"keyword.control.trigger.after.apex"}},match:/\b(?:(before)|(after))\b/dgv},"try-block":{begin:/(?<!\.)\b(try)\b/dgv,beginCaptures:{"1":{name:"keyword.control.try.apex"}},end:/(?<=\})/dgv,patterns:[{include:"#comment"},{include:"#block"}]},"try-statement":{patterns:[{include:"#try-block"},{include:"#catch-clause"},{include:"#finally-clause"}]},type:{name:"meta.type.apex",patterns:[{include:"#comment"},{include:"#type-builtin"},{include:"#type-name"},{include:"#type-arguments"},{include:"#type-array-suffix"},{include:"#type-nullable-suffix"}]},"type-arguments":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.apex"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#type"},{include:"#punctuation-comma"}]},"type-array-suffix":{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.squarebracket.open.apex"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.squarebracket.close.apex"}},patterns:[{include:"#punctuation-comma"}]},"type-builtin":{captures:{"1":{name:"keyword.type.apex"}},match:/\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|Id|ID|Integer|Long|Object|String|Time|void)\b/dgv},"type-declarations":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#annotation-declaration"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#class-declaration"},{include:"#enum-declaration"},{include:"#interface-declaration"},{include:"#trigger-declaration"},{include:"#punctuation-semicolon"}]},"type-name":{patterns:[{captures:{"1":{name:"storage.type.apex"},"2":{name:"punctuation.accessor.apex"}},match:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*(\.)/dgv},{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"storage.type.apex"}},match:/(\.)\p{space}*(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv},{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"storage.type.apex"}]},"type-nullable-suffix":{captures:{"0":{name:"punctuation.separator.question-mark.apex"}},match:/\?/dgv},"type-parameter-list":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.apex"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{captures:{"1":{name:"entity.name.type.type-parameter.apex"}},match:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\b/dgv},{include:"#comment"},{include:"#punctuation-comma"}]},"using-scope":{captures:{"1":{name:"keyword.operator.query.using.apex"}},match:/((USING SCOPE)\b\p{space}*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\b\p{space}*/dgv},"variable-initializer":{begin:/(?<![\!\=])(=)(?![\=\>])/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.apex"}},end:/(?=[\]\)\,\;\}])/dgv,patterns:[{include:"#expression"}]},"when-else-statement":{begin:/(when)\b\p{space}+(else)\b\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"},"2":{name:"keyword.control.switch.else.apex"}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"}]},"when-multiple-statement":{begin:/(when)\b\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"},{include:"#punctuation-comma"}]},"when-sobject-statement":{begin:/(when)\b\p{space}+([_\p{Alpha}\p{Nd}]+)\p{space}+([_\p{Alpha}\p{Nd}]+)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"},"2":{name:"storage.type.apex"},"3":{name:"entity.name.variable.local.apex"}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"}]},"when-statement":{begin:/(when)\b\p{space}+([\-_\p{Alpha}\p{Nd}]+)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"},"2":{patterns:[{include:"#expression"}]}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"}]},"when-string":{begin:/(when)\b\p{space}*('[^\n']*')(\p{space}*(,)\p{space}*('[^\n']*'))*\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"},"2":{patterns:[{include:"#string-literal"}]},"4":{patterns:[{include:"#punctuation-comma"}]},"5":{patterns:[{include:"#string-literal"}]}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"}]},"where-clause":{captures:{"1":{name:"keyword.operator.query.where.apex"}},match:/\b(WHERE)\b\p{space}*/dgv},"while-statement":{begin:/(?<!\.)\b(while)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.control.loop.while.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"xml-attribute":{patterns:[{captures:{"1":{name:"entity.other.attribute-name.apex"},"2":{name:"entity.other.attribute-name.namespace.apex"},"3":{name:"punctuation.separator.colon.apex"},"4":{name:"entity.other.attribute-name.localname.apex"},"5":{name:"punctuation.separator.equals.apex"}},match:/(?:^|\p{space}+)((?:([\-_\p{Alpha}\p{Nd}]+)(:))?([\-_\p{Alpha}\p{Nd}]+))(=)/dgv},{include:"#xml-string"}]},"xml-cdata":{begin:/<!\[CDATA\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.apex"}},end:/\]\]>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.apex"}},name:"string.unquoted.cdata.apex"},"xml-character-entity":{patterns:[{captures:{"1":{name:"punctuation.definition.constant.apex"},"3":{name:"punctuation.definition.constant.apex"}},match:/(&)([\:_\p{Alpha}][\-\.\:_\p{Alpha}\p{Nd}]*|#\p{Nd}+|#x\p{AHex}+)(;)/dgv,name:"constant.character.entity.apex"},{match:/&/dgv,name:"invalid.illegal.bad-ampersand.apex"}]},"xml-comment":{begin:/<!--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.apex"}},end:/-->/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.apex"}},name:"comment.block.apex"},"xml-doc-comment":{patterns:[{include:"#xml-comment"},{include:"#xml-character-entity"},{include:"#xml-cdata"},{include:"#xml-tag"}]},"xml-string":{patterns:[{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.apex"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.apex"}},name:"string.quoted.single.apex",patterns:[{include:"#xml-character-entity"}]},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.stringdoublequote.begin.apex"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.stringdoublequote.end.apex"}},name:"string.quoted.double.apex",patterns:[{include:"#xml-character-entity"}]}]},"xml-tag":{begin:/(<\/?)((?:([\-_\p{Alpha}\p{Nd}]+)(:))?([\-_\p{Alpha}\p{Nd}]+))/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.apex"},"2":{name:"entity.name.tag.apex"},"3":{name:"entity.name.tag.namespace.apex"},"4":{name:"punctuation.separator.colon.apex"},"5":{name:"entity.name.tag.localname.apex"}},end:/(\/?>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.apex"}},name:"meta.tag.apex",patterns:[{include:"#xml-attribute"}]}},scopeName:"source.apex",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"Apex",fileTypes:["apex","cls","trigger"],name:"apex",patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#directives"},{include:"#declarations"},{include:"#script-top-level"}],repository:{"annotation-declaration":{begin:/(@[_\p{Alpha}]+)\b/dgv,beginCaptures:{"1":{name:"storage.type.annotation.apex"}},end:/(?=\p{space}(?!\())|(?=\p{space}*(?=\n?$))|(?<=\p{space}*\))/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"argument-list":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"array-creation-expression":{begin:/*@__PURE__*/ new EmulatedRegExp("\\b(new)\\b\\p{space}*(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)?\\p{space}*(?=\\[)","dgv",{"hiddenCaptures":[5,7,8,9],"transfers":[[3,[5,8]],[4,[7]],[6,[9]]]}),beginCaptures:{"1":{name:"keyword.control.new.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]}},end:/(?<=\])/dgv,patterns:[{include:"#bracketed-argument-list"}]},block:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"}]},"boolean-literal":{patterns:[{match:/(?<!\.)\btrue\b/dgv,name:"constant.language.boolean.true.apex"},{match:/(?<!\.)\bfalse\b/dgv,name:"constant.language.boolean.false.apex"}]},"bracketed-argument-list":{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.squarebracket.open.apex"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.squarebracket.close.apex"}},patterns:[{include:"#soql-query-expression"},{include:"#named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"break-or-continue-statement":{captures:{"1":{name:"keyword.control.flow.break.apex"},"2":{name:"keyword.control.flow.continue.apex"}},match:/(?<!\.)\b(?:(break)|(continue))\b/dgv},"cast-expression":{captures:{"1":{name:"punctuation.parenthesis.open.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{name:"punctuation.parenthesis.close.apex"}},match:/*@__PURE__*/ new EmulatedRegExp("(\\()\\p{space}*(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(\\))(?=\\p{space}*@?[\\(_\\p{Alpha}\\p{Nd}])","dgv",{"hiddenCaptures":[5,7,8,9],"transfers":[[3,[5,8]],[4,[7]],[6,[9]]]})},"catch-clause":{begin:/(?<!\.)\b(catch)\b/dgv,beginCaptures:{"1":{name:"keyword.control.try.catch.apex"}},end:/(?<=\})/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{captures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"5":{name:"entity.name.variable.local.apex"}},match:/*@__PURE__*/ new EmulatedRegExp("(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(?:((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\b)?","dgv",{"hiddenCaptures":[4,6,7,8,10],"transfers":[[2,[4,7,10]],[3,[6]],[5,[8]]]})}]},{include:"#comment"},{include:"#block"}]},"class-declaration":{begin:/(?=\bclass\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\b(class)\b\p{space}+(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.other.class.apex"},"2":{name:"entity.name.type.class.apex"}},end:/(?=\{)/dgv,patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"},{include:"#extends-class"},{include:"#implements-class"}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#class-or-trigger-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"class-or-trigger-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#type-declarations"},{include:"#field-declaration"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#variable-initializer"},{include:"#constructor-declaration"},{include:"#method-declaration"},{include:"#initializer-block"},{include:"#punctuation-semicolon"}]},"colon-expression":{match:/:/dgv,name:"keyword.operator.conditional.colon.apex"},comment:{patterns:[{begin:/\/\*(\*)?/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.apex"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.apex"}},name:"comment.block.apex"},{begin:/(^\p{space}+)?(?=\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.apex"}},end:/(?=(?=\n?$))/dgv,patterns:[{begin:/(?<!\/)\/\/\/(?!\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.apex"}},end:/(?=(?=\n?$))/dgv,name:"comment.block.documentation.apex",patterns:[{include:"#xml-doc-comment"}]},{begin:/(?<!\/)\/\/(?:(?!\/)|(?=\/\/))/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.apex"}},end:/(?=(?=\n?$))/dgv,name:"comment.line.double-slash.apex"}]}]},"conditional-operator":{begin:/(?<!\?)\?(?!\?|\.(?!\p{Nd})|\[)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.question-mark.apex"}},end:/:/dgv,endCaptures:{"0":{name:"keyword.operator.conditional.colon.apex"}},patterns:[{include:"#expression"}]},"constructor-declaration":{begin:/(?=@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*\p{space}*\()/dgv,end:/(?<=\})|(?=;)/dgv,patterns:[{captures:{"1":{name:"entity.name.function.apex"}},match:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\b/dgv},{begin:/(:)/dgv,beginCaptures:{"1":{name:"punctuation.separator.colon.apex"}},end:/(?=\{|=>)/dgv,patterns:[{include:"#constructor-initializer"}]},{include:"#parenthesized-parameter-list"},{include:"#comment"},{include:"#expression-body"},{include:"#block"}]},"constructor-initializer":{begin:/\b(this)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.other.this.apex"}},end:/(?<=\))/dgv,patterns:[{include:"#argument-list"}]},"date-literal-with-params":{captures:{"1":{name:"keyword.operator.query.date.apex"}},match:/\b(((?:LAST_N_DAY|NEXT_N_DAY|NEXT_N_WEEK|LAST_N_WEEK|NEXT_N_MONTH|LAST_N_MONTH|NEXT_N_QUARTER|LAST_N_QUARTER|NEXT_N_YEAR|LAST_N_YEAR|NEXT_N_FISCAL_QUARTER|LAST_N_FISCAL_QUARTER|NEXT_N_FISCAL_YEAR|LAST_N_FISCAL_YEAR)S)\p{space}*:\p{Nd}+)\b/dgv},"date-literals":{captures:{"1":{name:"keyword.operator.query.date.apex"}},match:/\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\b\p{space}*/dgv},declarations:{patterns:[{include:"#type-declarations"},{include:"#punctuation-semicolon"}]},directives:{patterns:[{include:"#punctuation-semicolon"}]},"dml-expression":{begin:/\b(delete|insert|undelete|update|upsert)\b\p{space}+(?!new\b)/dgv,beginCaptures:{"1":{name:"support.function.apex"}},end:/(?<=;)/dgv,patterns:[{include:"#expression"},{include:"#punctuation-semicolon"}]},"do-statement":{begin:/(?<!\.)\b(do)\b/dgv,beginCaptures:{"1":{name:"keyword.control.loop.do.apex"}},end:/(?=[\;\}])/dgv,patterns:[{include:"#statement"}]},"element-access-expression":{begin:/(?:(\??\.)\p{space}*)?(?:(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*)?(?:(\?)\p{space}*)?(?=\[)/dgv,beginCaptures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.property.apex"},"3":{name:"keyword.operator.null-conditional.apex"}},end:/(?<=\])(?!\p{space}*\[)/dgv,patterns:[{include:"#bracketed-argument-list"}]},"else-part":{begin:/(?<!\.)\b(else)\b/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.else.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{include:"#statement"}]},"enum-declaration":{begin:/(?=\benum\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/(?=enum)/dgv,end:/(?=\{)/dgv,patterns:[{include:"#javadoc-comment"},{include:"#comment"},{captures:{"1":{name:"keyword.other.enum.apex"},"2":{name:"entity.name.type.enum.apex"}},match:/(enum)\p{space}+(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#punctuation-comma"},{begin:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,beginCaptures:{"0":{name:"entity.name.variable.enum-member.apex"}},end:/(?=([\,\}]))/dgv,patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#variable-initializer"}]}]},{include:"#javadoc-comment"},{include:"#comment"}]},expression:{patterns:[{include:"#comment"},{include:"#dml-expression"},{include:"#merge-expression"},{include:"#support-expression"},{include:"#throw-expression"},{include:"#this-expression"},{include:"#trigger-context-declaration"},{include:"#conditional-operator"},{include:"#expression-operators"},{include:"#soql-query-expression"},{include:"#object-creation-expression"},{include:"#array-creation-expression"},{include:"#invocation-expression"},{include:"#member-access-expression"},{include:"#element-access-expression"},{include:"#cast-expression"},{include:"#literal"},{include:"#parenthesized-expression"},{include:"#initializer-expression"},{include:"#identifier"}]},"expression-body":{begin:/=>/dgv,beginCaptures:{"0":{name:"keyword.operator.arrow.apex"}},end:/(?=[\)\,\;\}])/dgv,patterns:[{include:"#expression"}]},"expression-operators":{patterns:[{match:/[\-\%\*\+\/]=/dgv,name:"keyword.operator.assignment.compound.apex"},{match:/(?:[\&\^]|<<|>>|\|)=/dgv,name:"keyword.operator.assignment.compound.bitwise.apex"},{match:/<<|>>/dgv,name:"keyword.operator.bitwise.shift.apex"},{match:/[\!\=]=/dgv,name:"keyword.operator.comparison.apex"},{match:/<=|>=|[\<\>]/dgv,name:"keyword.operator.relational.apex"},{match:/!|&&|\|\|/dgv,name:"keyword.operator.logical.apex"},{match:/[\&\^\|\~]/dgv,name:"keyword.operator.bitwise.apex"},{match:/=/dgv,name:"keyword.operator.assignment.apex"},{match:/--/dgv,name:"keyword.operator.decrement.apex"},{match:/\+\+/dgv,name:"keyword.operator.increment.apex"},{match:/[\-\%\*\+\/]/dgv,name:"keyword.operator.arithmetic.apex"}]},"extends-class":{begin:/(extends)\b\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.extends.apex"}},end:/(?=\{|implements)/dgv,patterns:[{begin:/(?=[_\p{Alpha}][_\p{Alpha}\p{Nd}]*\p{space}*\.)/dgv,end:/(?=\{|implements)/dgv,patterns:[{include:"#support-type"},{include:"#type"}]},{captures:{"1":{name:"entity.name.type.extends.apex"}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv}]},"field-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(?!=[\\=\\>])(?=[\\,\\;\\=]|(?=\\n?$))","dgv",{"hiddenCaptures":[4,6,7,8,10],"transfers":[[2,[4,7,10]],[3,[6]],[5,[8]]]}),beginCaptures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"5":{name:"entity.name.variable.field.apex"}},end:/(?=;)/dgv,patterns:[{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.variable.field.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"finally-clause":{begin:/(?<!\.)\b(finally)\b/dgv,beginCaptures:{"1":{name:"keyword.control.try.finally.apex"}},end:/(?<=\})/dgv,patterns:[{include:"#comment"},{include:"#block"}]},"for-apex-syntax":{captures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"2":{name:"entity.name.variable.local.apex"},"3":{name:"keyword.operator.iterator.colon.apex"}},match:/([\._\p{Alpha}][\._\p{Alpha}\p{Nd}]+)\p{space}+([\._\p{Alpha}][\._\p{Alpha}\p{Nd}]*)\p{space}*(:)/dgv},"for-statement":{begin:/(?<!\.)\b(for)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.control.loop.for.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#for-apex-syntax"},{include:"#local-variable-declaration"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#colon-expression"}]},{include:"#statement"}]},"from-clause":{captures:{"1":{name:"keyword.operator.query.from.apex"},"2":{name:"storage.type.apex"}},match:/(FROM)\b\p{space}*([\._\p{Alpha}\p{Nd}]+\b)?/dgv},"goto-statement":{begin:/(?<!\.)\b(goto)\b/dgv,beginCaptures:{"1":{name:"keyword.control.goto.apex"}},end:/(?=;)/dgv,patterns:[{begin:/\b(case)\b/dgv,beginCaptures:{"1":{name:"keyword.control.case.apex"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},{captures:{"1":{name:"keyword.control.default.apex"}},match:/\b(default)\b/dgv},{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.label.apex"}]},identifier:{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.readwrite.apex"},"if-statement":{begin:/(?<!\.)\b(if)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.if.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"implements-class":{begin:/(implements)\b/dgv,beginCaptures:{"1":{name:"keyword.other.implements.apex"}},end:/(?=\{|extends)/dgv,patterns:[{begin:/(?=[_\p{Alpha}][_\p{Alpha}\p{Nd}]*\p{space}*\.)/dgv,end:/(?=\{|extends|,)/dgv,patterns:[{include:"#support-type"},{include:"#type"}]},{captures:{"1":{name:"entity.name.type.implements.apex"},"2":{name:"punctuation.separator.comma.apex"}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\b\p{space}*(,)?/dgv},{include:"#punctuation-comma"}]},"indexer-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?<return_type>(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+)(?<interface_name>((?:ref\\p{space}+)?(?:(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*\\.\\p{space}*)?(?<indexer_name>this)\\p{space}*(?=\\[)","dgv",{"hiddenCaptures":[5,7,8,9,11,12,13,14,15,16,17,18],"transfers":[[3,[5,8,12,14,17]],[4,[7,13,16]],[6,[9,15,18]],[2,[11]]]}),beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{name:"keyword.other.this.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"}]},"initializer-block":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"}]},"initializer-expression":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-declaration":{begin:/(?=\binterface\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/(interface)\b\p{space}+(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"1":{name:"keyword.other.interface.apex"},"2":{name:"entity.name.type.interface.apex"}},end:/(?=\{)/dgv,patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"},{include:"#extends-class"}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#interface-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"interface-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},"invocation-expression":{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(\\??\\.)\\p{space}*)?(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?\\p{space}*(?=\\()","dgv",{"hiddenCaptures":[5,6,7,8]}),beginCaptures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"entity.name.function.apex"},"3":{patterns:[{include:"#type-arguments"}]}},end:/(?<=\))/dgv,patterns:[{include:"#argument-list"}]},"javadoc-comment":{patterns:[{begin:/^\p{space}*(\/\*\*)(?!\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.apex"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.apex"}},name:"comment.block.javadoc.apex",patterns:[{match:/@(deprecated|author|return|see|serial|since|version|usage|name|link)\b/dgv,name:"keyword.other.documentation.javadoc.apex"},{captures:{"1":{name:"keyword.other.documentation.javadoc.apex"},"2":{name:"entity.name.variable.parameter.apex"}},match:/(@param)\p{space}+(\P{space}+)/dgv},{captures:{"1":{name:"keyword.other.documentation.javadoc.apex"},"2":{name:"entity.name.type.class.apex"}},match:/(@(?:exception|throws))\p{space}+(\P{space}+)/dgv},{captures:{"1":{name:"string.quoted.single.apex"}},match:/(`([^\`]+?)`)/dgv}]}]},literal:{patterns:[{include:"#boolean-literal"},{include:"#null-literal"},{include:"#numeric-literal"},{include:"#multiline-string-literal"},{include:"#string-literal"}]},"local-constant-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("\\b(?<const_keyword>const)\\b\\p{space}*(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(?=[\\,\\;\\=])","dgv",{"hiddenCaptures":[5,7,8,9,11],"transfers":[[3,[5,8,11]],[4,[7]],[6,[9]]]}),beginCaptures:{"1":{name:"storage.modifier.apex"},"2":{patterns:[{include:"#type"}]},"6":{name:"entity.name.variable.local.apex"}},end:/(?=;)/dgv,patterns:[{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.variable.local.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-declaration":{patterns:[{include:"#local-constant-declaration"},{include:"#local-variable-declaration"}]},"local-variable-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?:\\b(ref)\\p{space}+)?\\b(var)\\b|(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*))\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(?=[\\)\\,\\;\\=])","dgv",{"hiddenCaptures":[6,8,9,10,12],"transfers":[[4,[6,9,12]],[5,[8]],[7,[10]]]}),beginCaptures:{"1":{name:"storage.modifier.apex"},"2":{name:"keyword.other.var.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]},"7":{name:"entity.name.variable.local.apex"}},end:/(?=[\)\;])/dgv,patterns:[{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.variable.local.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"member-access-expression":{patterns:[{captures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.property.apex"}},match:/(\??\.)\p{space}*(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*(?![\(_\p{Alpha}\p{Nd}]|(\?)?\[|<)/dgv},{captures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.apex"},"3":{patterns:[{include:"#type-arguments"}]}},match:/*@__PURE__*/ new EmulatedRegExp("(\\??\\.)?\\p{space}*(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)(?<type_params>\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:\\p{space}*<([^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)(?=(\\p{space}*\\?)?\\p{space}*\\.\\p{space}*@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)","dgv",{"hiddenCaptures":[5,6,7,8]})},{captures:{"1":{name:"variable.other.object.apex"}},match:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(?=(\p{space}*\?)?\p{space}*\.\p{space}*@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv}]},"merge-expression":{begin:/(merge)\b\p{space}+/dgv,beginCaptures:{"1":{name:"support.function.apex"}},end:/(?<=;)/dgv,patterns:[{include:"#object-creation-expression"},{include:"#merge-type-statement"},{include:"#expression"},{include:"#punctuation-semicolon"}]},"merge-type-statement":{captures:{"1":{name:"variable.other.readwrite.apex"},"2":{name:"variable.other.readwrite.apex"},"3":{name:"punctuation.terminator.statement.apex"}},match:/([_\p{Alpha}]*)\b\p{space}+([_\p{Alpha}]*)\b\p{space}*(;)/dgv},"method-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?<return_type>(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+)(?<interface_name>((?:ref\\p{space}+)?(?:(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*\\.\\p{space}*)?((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(<([^\\<\\>]+)>)?\\p{space}*(?=\\()","dgv",{"hiddenCaptures":[5,7,8,9,11,12,13,14,15,16,17,18,20],"transfers":[[3,[5,8,12,14,17,20]],[4,[7,13,16]],[6,[9,15,18]],[2,[11]]]}),beginCaptures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{patterns:[{include:"#support-type"},{include:"#method-name-custom"}]},"8":{patterns:[{include:"#type-parameter-list"}]}},end:/(?<=\})|(?=;)/dgv,patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"method-name-custom":{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.function.apex"},"multiline-string-literal":{begin:/'''/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.apex"}},end:/'''/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.apex"}},name:"string.quoted.single.multiline.apex",patterns:[{include:"#string-character-escape"},{include:"#string-template-expression"}]},"named-argument":{begin:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"entity.name.variable.parameter.apex"},"2":{name:"punctuation.separator.colon.apex"}},end:/(?=([\]\)\,]))/dgv,patterns:[{include:"#expression"}]},"null-literal":{match:/(?<!\.)\bnull\b/dgv,name:"constant.language.null.apex"},"numeric-literal":{patterns:[{match:/\b(\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}T\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}(\.\p{Nd}{1,3})?([\-\+])\p{Nd}{2}:\p{Nd}{2})\b/dgv,name:"constant.numeric.datetime.apex"},{match:/\b(\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}T\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}(\.\p{Nd}{1,3})?(Z)?)\b/dgv,name:"constant.numeric.datetime.apex"},{match:/\b(\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2})\b/dgv,name:"constant.numeric.date.apex"},{match:/\b0([Xx])[_\p{AHex}]+([LUlu]|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/dgv,name:"constant.numeric.hex.apex"},{match:/\b0([Bb])[01_]+([LUlu]|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/dgv,name:"constant.numeric.binary.apex"},{match:/\b([0-9_]+)?\.[0-9_]+(([Ee])[0-9]+)?([DFMdfm])?\b/dgv,name:"constant.numeric.decimal.apex"},{match:/\b[0-9_]+([Ee])[0-9_]+([DFMdfm])?\b/dgv,name:"constant.numeric.decimal.apex"},{match:/\b[0-9_]+([DFMdfm])\b/dgv,name:"constant.numeric.decimal.apex"},{match:/\b[0-9_]+([LUlu]|UL|Ul|uL|ul|LU|Lu|lU|lu)?\b/dgv,name:"constant.numeric.decimal.apex"}]},"object-creation-expression":{patterns:[{include:"#object-creation-expression-with-parameters"},{include:"#object-creation-expression-with-no-parameters"},{include:"#punctuation-comma"}]},"object-creation-expression-with-no-parameters":{captures:{"1":{name:"support.function.apex"},"2":{name:"keyword.control.new.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]}},match:/*@__PURE__*/ new EmulatedRegExp("(delete|insert|undelete|update|upsert)?\\p{space}*(new)\\p{space}+(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(?=\\{|(?=\\n?$))","dgv",{"hiddenCaptures":[6,8,9,10],"transfers":[[4,[6,9]],[5,[8]],[7,[10]]]})},"object-creation-expression-with-parameters":{begin:/*@__PURE__*/ new EmulatedRegExp("(delete|insert|undelete|update|upsert)?\\p{space}*(new)\\p{space}+(?<type_name>(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(?=\\()","dgv",{"hiddenCaptures":[6,8,9,10],"transfers":[[4,[6,9]],[5,[8]],[7,[10]]]}),beginCaptures:{"1":{name:"support.function.apex"},"2":{name:"keyword.control.new.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]}},end:/(?<=\))/dgv,patterns:[{include:"#argument-list"}]},"operator-assignment":{match:/(?<![\!\=])(=)(?!=)/dgv,name:"keyword.operator.assignment.apex"},"operator-safe-navigation":{match:/\?\./dgv,name:"keyword.operator.safe-navigation.apex"},"orderby-clause":{captures:{"1":{name:"keyword.operator.query.orderby.apex"}},match:/\b(ORDER BY)\b\p{space}*/dgv,patterns:[{include:"#ordering-direction"},{include:"#ordering-nulls"}]},"ordering-direction":{captures:{"1":{name:"keyword.operator.query.ascending.apex"},"2":{name:"keyword.operator.query.descending.apex"}},match:/\b(?:(ASC)|(DESC))\b/dgv},"ordering-nulls":{captures:{"1":{name:"keyword.operator.query.nullsfirst.apex"},"2":{name:"keyword.operator.query.nullslast.apex"}},match:/\b(?:(NULLS FIRST)|(NULLS LAST))\b/dgv},parameter:{captures:{"1":{name:"storage.modifier.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{name:"entity.name.variable.parameter.apex"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:\\b(this|final)\\b\\p{space}+)?(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))","dgv",{"hiddenCaptures":[5,7,8,9,11],"transfers":[[3,[5,8,11]],[4,[7]],[6,[9]]]})},"parenthesized-expression":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},"parenthesized-parameter-list":{begin:/(\()/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/(\))/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#comment"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]},"property-accessors":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{match:/\b(pr(?:ivate|otected))\b/dgv,name:"storage.modifier.apex"},{match:/\b(get)\b/dgv,name:"keyword.other.get.apex"},{match:/\b(set)\b/dgv,name:"keyword.other.set.apex"},{include:"#comment"},{include:"#expression-body"},{include:"#block"},{include:"#punctuation-semicolon"}]},"property-declaration":{begin:/*@__PURE__*/ new EmulatedRegExp("(?![^\\n]*\\b(?:class|interface|enum)\\b)\\p{space}*(?<return_type>(?<type_name>(?:ref\\p{space}+)?(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}+)(?<interface_name>((?:ref\\p{space}+)?(?:(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*\\.\\p{space}*)?(?<property_name>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}*(?=\\{|=>|(?=\\n?$))","dgv",{"hiddenCaptures":[5,7,8,9,11,12,13,14,15,16,17,18,20],"transfers":[[3,[5,8,12,14,17,20]],[4,[7,13,16]],[6,[9,15,18]],[2,[11]]]}),beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{name:"entity.name.variable.property.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"punctuation-accessor":{match:/\./dgv,name:"punctuation.accessor.apex"},"punctuation-comma":{match:/,/dgv,name:"punctuation.separator.comma.apex"},"punctuation-semicolon":{match:/;/dgv,name:"punctuation.terminator.statement.apex"},"query-operators":{captures:{"1":{name:"keyword.operator.query.apex"}},match:/\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\b\p{space}*/dgv},"return-statement":{begin:/(?<!\.)\b(return)\b/dgv,beginCaptures:{"1":{name:"keyword.control.flow.return.apex"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},"script-top-level":{patterns:[{include:"#method-declaration"},{include:"#statement"},{include:"#punctuation-semicolon"}]},"sharing-modifier":{match:/(?<!\.)\b((?:with|without|inherited) sharing)\b/dgv,name:"sharing.modifier.apex"},"soql-colon-method-statement":{begin:/(:?\.)?([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(?=\()/dgv,beginCaptures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"entity.name.function.apex"}},end:/(?<=\))/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"soql-colon-vars":{begin:/(:)\p{space}*/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.colon.apex"}},end:/(?![\(_\p{Alpha}\p{Nd}]|(\?)?\[|<)/dgv,patterns:[{include:"#trigger-context-declaration"},{captures:{"1":{name:"variable.other.object.apex"},"2":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(\??\.)/dgv},{include:"#soql-colon-method-statement"},{match:/[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.variable.local.apex"}]},"soql-functions":{begin:/\b(AVG|CALENDAR_MONTH|CALENDAR_QUARTER|CALENDAR_YEAR|convertCurrency|convertTimezone|COUNT|COUNT_DISTINCT|DAY_IN_MONTH|DAY_IN_WEEK|DAY_IN_YEAR|DAY_ONLY|toLabel|INCLUDES|EXCLUDES|FISCAL_MONTH|FISCAL_QUARTER|FISCAL_YEAR|FORMAT|GROUPING|GROUP BY CUBE|GROUP BY ROLLUP|HOUR_IN_DAY|MAX|MIN|SUM|WEEK_IN_MONTH|WEEK_IN_YEAR)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"support.function.query.apex"},"2":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#literal"},{include:"#punctuation-comma"},{include:"#soql-functions"},{match:/[\._\p{Alpha}][\._\p{Alpha}\p{Nd}]*/dgv,name:"keyword.query.field.apex"}]},"soql-group-clauses":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#soql-query-expression"},{include:"#soql-colon-vars"},{include:"#soql-group-clauses"},{include:"#punctuation-comma"},{include:"#operator-assignment"},{include:"#literal"},{include:"#query-operators"},{include:"#date-literals"},{include:"#date-literal-with-params"},{include:"#using-scope"},{match:/[\._\p{Alpha}][\._\p{Alpha}\p{Nd}]*/dgv,name:"keyword.query.field.apex"}]},"soql-query-body":{patterns:[{include:"#trigger-context-declaration"},{include:"#soql-colon-vars"},{include:"#soql-functions"},{include:"#from-clause"},{include:"#where-clause"},{include:"#query-operators"},{include:"#date-literals"},{include:"#date-literal-with-params"},{include:"#using-scope"},{include:"#soql-group-clauses"},{include:"#orderby-clause"},{include:"#ordering-direction"},{include:"#ordering-nulls"}]},"soql-query-expression":{begin:/\b(SELECT)\b\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.operator.query.select.apex"}},end:/(?=;)|(?=\])|(?=\))/dgv,patterns:[{include:"#soql-query-body"},{include:"#comment"},{include:"#punctuation-comma"},{include:"#operator-assignment"},{include:"#parenthesized-expression"},{include:"#expression-operators"},{include:"#literal"},{captures:{"1":{name:"keyword.query.field.apex"},"2":{name:"punctuation.separator.comma.apex"}},match:/([\._\p{Alpha}][\._\p{Alpha}\p{Nd}]*)\p{space}*(,)?/dgv}]},statement:{patterns:[{include:"#comment"},{include:"#while-statement"},{include:"#do-statement"},{include:"#for-statement"},{include:"#switch-statement"},{include:"#when-else-statement"},{include:"#when-sobject-statement"},{include:"#when-statement"},{include:"#when-multiple-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#goto-statement"},{include:"#return-statement"},{include:"#break-or-continue-statement"},{include:"#throw-statement"},{include:"#try-statement"},{include:"#soql-query-expression"},{include:"#local-declaration"},{include:"#block"},{include:"#expression"},{include:"#punctuation-semicolon"}]},"storage-modifier":{match:/(?<!\.)\b(new|public|protected|private|abstract|virtual|override|global|static|final|transient)\b/dgv,name:"storage.modifier.apex"},"string-character-escape":{match:/\\[^\n]/dgv,name:"constant.character.escape.apex"},"string-literal":{begin:/'(?!'')/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.apex"}},end:/(')|([^\n\\])(?=\n?$)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.apex"},"2":{name:"invalid.illegal.newline.apex"}},name:"string.quoted.single.apex",patterns:[{include:"#string-character-escape"},{include:"#string-template-expression"}]},"string-template-expression":{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.apex"}},name:"meta.template-expression.apex",patterns:[{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.readwrite.apex"}]},"support-arguments":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.apex"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#punctuation-comma"}]},"support-class":{captures:{"1":{name:"support.class.apex"}},match:/\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\b/dgv},"support-expression":{begin:/(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=[\.\p{space}])/dgv,beginCaptures:{"1":{name:"support.class.apex"}},end:/(?<=\)|(?=\n?$))|(?=\})|(?=;)|(?=\)|(?=\]))|(?=,)/dgv,patterns:[{include:"#support-type"},{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.function.apex"}},match:/(\.)(\p{Alpha}*)(?=\()/dgv},{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.type.apex"}},match:/(\.)(\p{Alpha}+)/dgv},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{include:"#comment"},{include:"#statement"}]},"support-functions":{captures:{"1":{name:"support.function.apex"}},match:/\b(delete|execute|finish|insert|start|undelete|update|upsert)\b/dgv},"support-name":{patterns:[{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.function.apex"}},match:/(\.)\p{space}*(\p{Alpha}*)(?=\()/dgv},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.type.apex"}},match:/(\.)\p{space}*([_\p{Alpha}]*)/dgv}]},"support-type":{name:"support.apex",patterns:[{include:"#comment"},{include:"#support-class"},{include:"#support-functions"},{include:"#support-name"}]},"switch-statement":{begin:/(switch)\b\p{space}+(on)\b\p{space}+([^\n]*)(\{)/dgv,beginCaptures:{"1":{name:"keyword.control.switch.apex"},"2":{name:"keyword.control.switch.on.apex"},"3":{patterns:[{include:"#statement"},{include:"#parenthesized-expression"}]},"4":{name:"punctuation.curlybrace.open.apex"}},end:/(\})/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#when-string"},{include:"#when-else-statement"},{include:"#when-sobject-statement"},{include:"#when-statement"},{include:"#when-multiple-statement"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"this-expression":{captures:{"1":{name:"keyword.other.this.apex"}},match:/\b(this)\b/dgv},"throw-expression":{captures:{"1":{name:"keyword.control.flow.throw.apex"}},match:/(?<!\.)\b(throw)\b/dgv},"throw-statement":{begin:/(?<!\.)\b(throw)\b/dgv,beginCaptures:{"1":{name:"keyword.control.flow.throw.apex"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},"trigger-context-declaration":{begin:/\b(Trigger)\b(\.)\b/dgv,beginCaptures:{"1":{name:"support.class.trigger.apex"},"2":{name:"punctuation.accessor.apex"}},end:/(?=\})|(?=;)|(?=\)|(?=\]))/dgv,patterns:[{match:/\b(isExecuting|isInsert|isUpdate|isDelete|isBefore|isAfter|isUndelete|new|newMap|old|oldMap|size)\b/dgv,name:"support.type.trigger.apex"},{captures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"support.function.trigger.apex"}},match:/(\??\.)(\p{Alpha}+)(?=\()/dgv},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#trigger-type-statement"},{include:"#javadoc-comment"},{include:"#comment"},{include:"#expression"}]},{include:"#expression"}]},"trigger-declaration":{begin:/(?=\btrigger\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\b(trigger)\b\p{space}+(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*\b(on)\b\p{space}+([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.other.trigger.apex"},"2":{name:"entity.name.type.trigger.apex"},"3":{name:"keyword.operator.trigger.on.apex"},"4":{name:"storage.type.apex"}},end:/(?=\{)/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#trigger-type-statement"},{include:"#trigger-operator-statement"},{include:"#punctuation-comma"},{include:"#expression"}]},{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"},{include:"#class-or-trigger-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"trigger-operator-statement":{match:/\b(insert|update|delete|merge|upsert|undelete)\b/dgv,name:"keyword.operator.trigger.apex"},"trigger-type-statement":{captures:{"1":{name:"keyword.control.trigger.before.apex"},"2":{name:"keyword.control.trigger.after.apex"}},match:/\b(?:(before)|(after))\b/dgv},"try-block":{begin:/(?<!\.)\b(try)\b/dgv,beginCaptures:{"1":{name:"keyword.control.try.apex"}},end:/(?<=\})/dgv,patterns:[{include:"#comment"},{include:"#block"}]},"try-statement":{patterns:[{include:"#try-block"},{include:"#catch-clause"},{include:"#finally-clause"}]},type:{name:"meta.type.apex",patterns:[{include:"#comment"},{include:"#type-builtin"},{include:"#type-name"},{include:"#type-arguments"},{include:"#type-array-suffix"},{include:"#type-nullable-suffix"}]},"type-arguments":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.apex"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#type"},{include:"#punctuation-comma"}]},"type-array-suffix":{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.squarebracket.open.apex"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.squarebracket.close.apex"}},patterns:[{include:"#punctuation-comma"}]},"type-builtin":{captures:{"1":{name:"keyword.type.apex"}},match:/\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|Id|ID|Integer|Long|Object|String|Time|void)\b/dgv},"type-declarations":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#annotation-declaration"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#class-declaration"},{include:"#enum-declaration"},{include:"#interface-declaration"},{include:"#trigger-declaration"},{include:"#punctuation-semicolon"}]},"type-name":{patterns:[{captures:{"1":{name:"storage.type.apex"},"2":{name:"punctuation.accessor.apex"}},match:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*(\.)/dgv},{captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"storage.type.apex"}},match:/(\.)\p{space}*(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv},{match:/@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"storage.type.apex"}]},"type-nullable-suffix":{captures:{"0":{name:"punctuation.separator.question-mark.apex"}},match:/\?/dgv},"type-parameter-list":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.apex"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{captures:{"1":{name:"entity.name.type.type-parameter.apex"}},match:/(@?[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\b/dgv},{include:"#comment"},{include:"#punctuation-comma"}]},"using-scope":{captures:{"1":{name:"keyword.operator.query.using.apex"}},match:/((USING SCOPE)\b\p{space}*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\b\p{space}*/dgv},"variable-initializer":{begin:/(?<![\!\=])(=)(?![\=\>])/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.apex"}},end:/(?=[\]\)\,\;\}])/dgv,patterns:[{include:"#expression"}]},"when-else-statement":{begin:/(when)\b\p{space}+(else)\b\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"},"2":{name:"keyword.control.switch.else.apex"}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"}]},"when-multiple-statement":{begin:/(when)\b\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"},{include:"#punctuation-comma"}]},"when-sobject-statement":{begin:/(when)\b\p{space}+([_\p{Alpha}\p{Nd}]+)\p{space}+([_\p{Alpha}\p{Nd}]+)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"},"2":{name:"storage.type.apex"},"3":{name:"entity.name.variable.local.apex"}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"}]},"when-statement":{begin:/(when)\b\p{space}+([\-_\p{Alpha}\p{Nd}]+)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"},"2":{patterns:[{include:"#expression"}]}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"}]},"when-string":{begin:/(when)\b\p{space}*('[^\n']*')(\p{space}*(,)\p{space}*('[^\n']*'))*\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.switch.when.apex"},"2":{patterns:[{include:"#string-literal"}]},"4":{patterns:[{include:"#punctuation-comma"}]},"5":{patterns:[{include:"#string-literal"}]}},end:/(?=\})|(?=when\b)/dgv,patterns:[{include:"#block"},{include:"#expression"}]},"where-clause":{captures:{"1":{name:"keyword.operator.query.where.apex"}},match:/\b(WHERE)\b\p{space}*/dgv},"while-statement":{begin:/(?<!\.)\b(while)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.control.loop.while.apex"}},end:/(?<=\})|(?=;)/dgv,patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"xml-attribute":{patterns:[{captures:{"1":{name:"entity.other.attribute-name.apex"},"2":{name:"entity.other.attribute-name.namespace.apex"},"3":{name:"punctuation.separator.colon.apex"},"4":{name:"entity.other.attribute-name.localname.apex"},"5":{name:"punctuation.separator.equals.apex"}},match:/(?:^|\p{space}+)((?:([\-_\p{Alpha}\p{Nd}]+)(:))?([\-_\p{Alpha}\p{Nd}]+))(=)/dgv},{include:"#xml-string"}]},"xml-cdata":{begin:/<!\[CDATA\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.apex"}},end:/\]\]>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.apex"}},name:"string.unquoted.cdata.apex"},"xml-character-entity":{patterns:[{captures:{"1":{name:"punctuation.definition.constant.apex"},"3":{name:"punctuation.definition.constant.apex"}},match:/(&)([\:_\p{Alpha}][\-\.\:_\p{Alpha}\p{Nd}]*|#\p{Nd}+|#x\p{AHex}+)(;)/dgv,name:"constant.character.entity.apex"},{match:/&/dgv,name:"invalid.illegal.bad-ampersand.apex"}]},"xml-comment":{begin:/<!--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.apex"}},end:/-->/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.apex"}},name:"comment.block.apex"},"xml-doc-comment":{patterns:[{include:"#xml-comment"},{include:"#xml-character-entity"},{include:"#xml-cdata"},{include:"#xml-tag"}]},"xml-string":{patterns:[{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.apex"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.apex"}},name:"string.quoted.single.apex",patterns:[{include:"#xml-character-entity"}]},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.stringdoublequote.begin.apex"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.stringdoublequote.end.apex"}},name:"string.quoted.double.apex",patterns:[{include:"#xml-character-entity"}]}]},"xml-tag":{begin:/(<\/?)((?:([\-_\p{Alpha}\p{Nd}]+)(:))?([\-_\p{Alpha}\p{Nd}]+))/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.apex"},"2":{name:"entity.name.tag.apex"},"3":{name:"entity.name.tag.namespace.apex"},"4":{name:"punctuation.separator.colon.apex"},"5":{name:"entity.name.tag.localname.apex"}},end:/(\/?>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.apex"}},name:"meta.tag.apex",patterns:[{include:"#xml-attribute"}]}},scopeName:"source.apex",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang
package/dist/bird2.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"BIRD2 Configuration",fileTypes:["conf","bird","bird2","bird3","bird.conf","bird2.conf","bird3.conf"],foldingStartMarker:/\{\p{space}*(?=\n?$)/dgv,foldingStopMarker:/^\p{space}*\}/dgv,name:"bird2",patterns:[{include:"#comments"},{include:"#strings"},{include:"#ip-addresses"},{include:"#prefixes"},{include:"#vpn-rd"},{include:"#bytestrings"},{include:"#bgp-paths"},{include:"#print-statements"},{include:"#template-definitions"},{include:"#filter-definitions"},{include:"#function-definitions"},{include:"#protocol-definitions"},{include:"#next-hop-statements"},{include:"#neighbor-statements"},{include:"#import-export-statements"},{include:"#variable-declarations"},{include:"#method-calls"},{include:"#function-calls"},{include:"#method-properties"},{include:"#route-attributes"},{include:"#data-types"},{include:"#constants"},{include:"#structural-keywords"},{include:"#protocol-phrases"},{include:"#functional-keywords"},{include:"#semantic-modifiers"},{include:"#builtin-functions"},{include:"#filter-names"},{include:"#user-variables"},{include:"#operators"},{include:"#numbers"},{include:"#symbols"},{include:"#blocks"}],repository:{"bgp-paths":{patterns:[{begin:/\[=/dgv,beginCaptures:{"0":{name:"punctuation.definition.bgp-path.begin.bird"}},end:/=\]/dgv,endCaptures:{"0":{name:"punctuation.definition.bgp-path.end.bird"}},name:"meta.bgp-path.bird",patterns:[{match:/[\*\+\?]/dgv,name:"keyword.operator.wildcard.bird"},{match:/\b[0-9]+\b/dgv,name:"constant.numeric.asn.bird"},{include:"#operators"},{include:"#symbols"}]}]},blocks:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.block.bird",patterns:[{include:"$self"}]},{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.set.begin.bird"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.set.end.bird"}},name:"meta.set.bird",patterns:[{include:"$self"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.tuple.begin.bird"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.tuple.end.bird"}},name:"meta.tuple.bird",patterns:[{include:"$self"}]},{match:/;/dgv,name:"punctuation.terminator.statement.bird"},{match:/,/dgv,name:"punctuation.separator.bird"}]},"builtin-functions":{patterns:[{match:/\b(?:defined|unset|roa_check|aspa_check|aspa_check_downstream|aspa_check_upstream|from_hex|format|append|prepend|add|delete|empty|reset|bt_assert|bt_test_suite|bt_test_same)\b/dgv,name:"support.function.builtin.bird"}]},bytestrings:{patterns:[{match:/\bhex:\p{AHex}{2}(?:[\-\.\:\p{space}]*\p{AHex}{2})*\b/dgv,name:"constant.numeric.bytestring.bird"},{match:/\b(?:\p{AHex}{2}[\-\.\:\p{space}]*){15,}\p{AHex}{2}\b/dgv,name:"constant.numeric.bytestring.bird"},{match:/\b\p{AHex}{32,}\b/dgv,name:"constant.numeric.bytestring.bird"}]},comments:{patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.bird"}},end:/(?=\n?$)/dgv,name:"comment.line.number-sign.bird"},{begin:/\/\*/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.bird"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.bird"}},name:"comment.block.bird"}]},constants:{patterns:[{match:/\b(?:on|off|yes|no|true|false)\b/dgv,name:"constant.language.boolean.bird"},{match:/\b(?:empty|unknown|generic|rt|ro|one|ten)\b/dgv,name:"constant.language.special.bird"},{match:/\bSCOPE_(?:HOST|LINK|SITE|ORGANIZATION|UNIVERSE)\b/dgv,name:"constant.language.scope.bird"},{match:/\bRTS_(?:STATIC|INHERIT|DEVICE|RIP|OSPF|OSPF_IA|OSPF_EXT1|OSPF_EXT2|BGP|PIPE|BABEL)\b/dgv,name:"constant.language.source.bird"},{match:/\bRTD_(?:ROUTER|DEVICE|MULTIPATH|BLACKHOLE|UNREACHABLE|PROHIBIT)\b/dgv,name:"constant.language.dest.bird"},{match:/\bROA_(?:UNKNOWN|INVALID|VALID)\b/dgv,name:"constant.language.roa.bird"},{match:/\bASPA_(?:UNKNOWN|INVALID|VALID)\b/dgv,name:"constant.language.aspa.bird"},{match:/\bNET_(?:IP4|IP6|IP6_SADR|VPN4|VPN6|ROA4|ROA6|FLOW4|FLOW6|MPLS)\b/dgv,name:"constant.language.net-type.bird"},{match:/\bMPLS_POLICY_(?:NONE|STATIC|PREFIX|AGGREGATE|VRF)\b/dgv,name:"constant.language.mpls.bird"}]},"data-types":{patterns:[{match:/\b(?:(?:int|pair|quad|ip|prefix|ec|lc|rd|enum)\p{space}+set|int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\b/dgv,name:"storage.type.bird"}]},"filter-definitions":{patterns:[{begin:/\b(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.filter.bird"},"2":{name:"entity.name.function.filter.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.filter-definition.bird",patterns:[{include:"$self"}]}]},"filter-names":{patterns:[{match:/\b[A-Z_a-z][0-9A-Z_a-z]*_filter\b/dgv,name:"entity.name.function.filter.bird"}]},"function-calls":{patterns:[{begin:/\b([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\(/dgv,beginCaptures:{"1":{name:"entity.name.function.call.bird"}},end:/\)/dgv,name:"meta.function-call.bird",patterns:[{include:"$self"}]}]},"function-definitions":{patterns:[{begin:/\b(function)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')(?=\p{space}*\()/dgv,beginCaptures:{"1":{name:"keyword.control.function.bird"},"2":{name:"entity.name.function.user-defined.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.function-definition.bird",patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.bird"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.bird"}},name:"meta.function-parameters.bird",patterns:[{include:"#data-types"},{include:"#symbols"}]},{begin:/->/dgv,beginCaptures:{"0":{name:"keyword.operator.return-type.bird"}},end:/(?=\{)/dgv,name:"meta.function-return-type.bird",patterns:[{include:"#data-types"}]},{include:"$self"}]}]},"functional-keywords":{patterns:[{match:/\b(?:static|rip|ospf|bgp|babel|rpki|bfd|bmp|device|direct|kernel|pipe|perf|mrt|aggregator|l3vpn|radv)\b/dgv,name:"keyword.control.protocol-type.bird"},{match:/\b(?:graceful|restart|preference|disabled|hold|keepalive|connect|retry|start|delay|error|wait|forget|scan|randomize|router|id)\b/dgv,name:"keyword.control.routing.bird"},{match:/\b(?:interface|type|wired|wireless|tunnel|rxcost|limit|hello|update|interval|port|tx|class|dscp|priority|rx|buffer|length|check|link|rtt|cost|min|max|decay|send|timestamps)\b/dgv,name:"keyword.other.interface.bird"},{match:/\b(?:(?:refresh|retry|expire|transport|ssh|tcp|user|address|version|ignore|private|public|key)|(?:local\p{space}+address|ignore\p{space}+max\p{space}+length|min\p{space}+version|max\p{space}+version|bird\p{space}+private\p{space}+key|remote\p{space}+public\p{space}+key))\b/dgv,name:"keyword.other.rpki.bird"},{match:/\b(?:authentication|none|mac|permissive|password|generate|accept|from|to|algorithm|hmac|sha1|sha256|sha384|sha512|blake2s128|blake2s256|blake2b256|blake2b512)\b/dgv,name:"keyword.other.auth.bird"},{match:/\btime\b/dgv,name:"keyword.other.time.bird"},{match:/\b(?:hostname|description|debug|log|syslog|stderr|bird|protocols|tables|channels|timeouts|passwords|bfd|confederation|cluster|stub|dead|neighbors|area|md5|multihop|passive|rfc1583compat|tick|ls|retransmit|transmit|ack|state|database|summary|external|nssa|translator|always|candidate|never|role|stability|election|action|warn|block|disable|keep|filtered|receive|modify|add|delete|withdraw|unreachable|blackhole|prohibit|unreach|igp_metric|localpref|med|origin|community|large_community|ext_community|as_path|prepend|weight|gateway|scope|onlink|recursive|multipath|igp|channel|sadr|src|learn|persist|via|ng)\b/dgv,name:"keyword.other.config.bird"},{match:/\b(?:flow4|flow6|dst|src|proto|header|dport|sport|icmp|code|tcp|flags|dscp|dont_fragment|is_fragment|first_fragment|last_fragment|fragment|label|offset)\b/dgv,name:"keyword.other.flowspec.bird"},{match:/\b(?:vpn4|vpn6|mpls|aspa|roa4|roa6)\b/dgv,name:"keyword.other.address.bird"},{match:/\b(?:all|none)\b/dgv,name:"keyword.other.quick-declaration.bird"}]},"import-export-statements":{patterns:[{captures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"},"3":{name:"entity.name.function.filter.bird"}},match:/\b(import)\p{space}+(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\b/dgv,name:"meta.import-statement.bird"},{begin:/\b(import)\p{space}+(filter)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.import-filter-inline.bird",patterns:[{include:"$self"}]},{begin:/\b(export)\p{space}+(where)\b/dgv,beginCaptures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.where.bird"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.statement.bird"}},name:"meta.export-where-clause.bird",patterns:[{include:"$self"}]},{captures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"},"3":{name:"entity.name.function.filter.bird"}},match:/\b(export)\p{space}+(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\b/dgv,name:"meta.export-statement.bird"}]},"ip-addresses":{patterns:[{match:/\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:\/[0-9]{1,2})?\b/dgv,name:"constant.numeric.ip.ipv4.bird"},{match:/\b(?:\p{AHex}{0,4}:){2,7}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"},{match:/::(?:\p{AHex}{0,4}:){0,6}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"},{match:/\b(?:\p{AHex}{0,4}:){1,6}::(?:\p{AHex}{0,4}:){0,5}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"}]},"method-calls":{patterns:[{begin:/\.\p{space}*([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\(/dgv,beginCaptures:{"1":{name:"entity.name.function.method.bird"}},end:/\)/dgv,name:"meta.method-call.bird",patterns:[{include:"$self"}]},{captures:{"1":{name:"variable.other.property.bird"}},match:/\.\p{space}*([A-Z_a-z][0-9A-Z_a-z]*)/dgv,name:"meta.method-access.bird"}]},"method-properties":{patterns:[{match:/(?<=\.)\p{space}*(?:first|last|last_nonaggregated|len|asn|data1??|data2|is_v4|ip|src|dst|rd|maxlen|type|mask|min|max)\b(?!\p{space}*\()/dgv,name:"support.variable.property.bird"}]},"neighbor-statements":{patterns:[{captures:{"1":{name:"keyword.control.neighbor.bird"},"2":{name:"constant.numeric.ip-address.bird"},"3":{name:"meta.interface-reference.bird"},"4":{name:"string.quoted.single.interface.bird"},"5":{name:"keyword.control.as.bird"},"6":{name:"constant.numeric.asn.bird"}},match:/\b(neighbor)\p{space}+([\.\:\p{AHex}]+)\p{space}*(%\p{space}*'([^']+)')?\p{space}+(as)\p{space}+([0-9]+)\b/dgv,name:"meta.neighbor-statement.bird"},{captures:{"1":{name:"keyword.control.source.bird"},"2":{name:"constant.numeric.ip-address.bird"}},match:/\b(source address)\p{space}+([\.\:\p{AHex}]+)\b/dgv,name:"meta.source-address-statement.bird"}]},"next-hop-statements":{patterns:[{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.ip-version.bird"},"3":{name:"constant.numeric.ip-address.bird"}},match:/\b(next hop)\p{space}+(ipv4)\p{space}+([\.0-9]+)\b/dgv,name:"meta.next-hop-ipv4.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.ip-version.bird"},"3":{name:"constant.numeric.ip-address.bird"}},match:/\b(next hop)\p{space}+(ipv6)\p{space}+([\:\p{AHex}]+)\b/dgv,name:"meta.next-hop-ipv6.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.semantic-modifier.bird"}},match:/\b(next hop)\p{space}+(self)\b/dgv,name:"meta.next-hop-simple.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.semantic-modifier.bird"}},match:/\b(extended next hop)\p{space}+(o(?:n|ff))\b/dgv,name:"meta.extended-next-hop-statement.bird"}]},numbers:{patterns:[{match:/\b0x\p{AHex}+\b/dgv,name:"constant.numeric.hex.bird"},{match:/\b[0-9]+\b/dgv,name:"constant.numeric.decimal.bird"},{captures:{"1":{name:"keyword.other.unit.bird"}},match:/\b[0-9]+\p{space}*([mu]??s)\b/dgv,name:"constant.numeric.time.bird"}]},operators:{patterns:[{match:/==|!=|<=|>=|!~|[\<\=\>\~]/dgv,name:"keyword.operator.comparison.bird"},{match:/&&|\|\||!|->/dgv,name:"keyword.operator.logical.bird"},{match:/\+\+/dgv,name:"keyword.operator.concat.bird"},{match:/[\-\%\*\+\/]/dgv,name:"keyword.operator.arithmetic.bird"},{match:/\.\./dgv,name:"keyword.operator.range.bird"},{match:/\./dgv,name:"keyword.operator.accessor.bird"}]},prefixes:{patterns:[{match:/\b(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}|(?:\p{AHex}{0,4}:)+\p{AHex}{0,4})\/[0-9]{1,3}(?:[\-\+]|\{[0-9]+,[0-9]+\})?\b/dgv,name:"constant.numeric.prefix.bird"}]},"print-statements":{patterns:[{begin:/\b(printn??)\b/dgv,beginCaptures:{"1":{name:"keyword.other.print.bird"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.statement.bird"}},name:"meta.print-statement.bird",patterns:[{include:"$self"}]}]},"protocol-definitions":{patterns:[{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}+(from)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.protocol.bird"},"4":{name:"keyword.control.template-reference.bird"},"5":{name:"entity.name.function.template.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-with-template.bird",patterns:[{include:"$self"}]},{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.protocol.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-with-name.bird",patterns:[{include:"$self"}]},{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-anonymous.bird",patterns:[{include:"$self"}]}]},"protocol-phrases":{patterns:[{match:/\b(?:strict\p{space}+bind|zero\p{space}+udp6\p{space}+checksum\p{space}+rx|idle\p{space}+tx\p{space}+interval|multiplier|keyed|meticulous)\b/dgv,name:"keyword.other.bfd.phrase.bird"},{match:/\b(?:send\p{space}+timestamps|rtt\p{space}+(?:cost|min|max|decay)|next\p{space}+hop\p{space}+prefer|prefer|native)\b/dgv,name:"keyword.other.babel.phrase.bird"},{match:/\b(?:next\p{space}+hop\p{space}+(?:self|address|ibgp|ebgp)|link\p{space}+local\p{space}+next\p{space}+hop\p{space}+format|import\p{space}+table|export\p{space}+table|base\p{space}+table|add\p{space}+paths|aigp\p{space}+originate|long\p{space}+lived\p{space}+graceful\p{space}+restart|long\p{space}+lived\p{space}+stale\p{space}+time|dynamic\p{space}+name(?:\p{space}+digits)?|free\p{space}+bind|ttl\p{space}+security|multihop\p{space}+password|rr\p{space}+client|rs\p{space}+client|advertise\p{space}+hostname|interpret\p{space}+communities|deterministic\p{space}+med|default\p{space}+bgp_local_pref|default\p{space}+bgp_med|med\p{space}+metric|igp\p{space}+metric|missing\p{space}+lladdr|gateway\p{space}+address|forwarding\p{space}+addressed|gateway\p{space}+recursive|allow\p{space}+local\p{space}+as|allow\p{space}+bogus\p{space}+as|originate\p{space}+community|full\p{space}+route\p{space}+table|capabilities|primary)\b/dgv,name:"keyword.other.bgp.phrase.bird"}]},"route-attributes":{patterns:[{match:/\b(?:net|scope|preference|from|gw|proto|source|dest|ifname|ifindex|weight|gw_mpls|gw_mpls_stack|onlink|igp_metric|mpls_label|mpls_policy|mpls_class|bgp_path|bgp_origin|bgp_next_hop|bgp_med|bgp_local_pref|bgp_community|bgp_ext_community|bgp_large_community|bgp_originator_id|bgp_cluster_list|ospf_metric1|ospf_metric2|ospf_tag|ospf_router_id|rip_metric|rip_tag|mypath|mylclist)\b/dgv,name:"support.variable.route-attribute.bird"}]},"semantic-modifiers":{patterns:[{match:/\b(?:self|on|off|remote|extended)\b/dgv,name:"keyword.other.semantic-modifier.bird"}]},strings:{patterns:[{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.bird"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.bird"}},name:"string.quoted.double.bird",patterns:[{match:/\./dgv,name:"constant.character.escape.bird"}]},{match:/'[\-\.0-\:A-Z_a-z]+'/dgv,name:"entity.name.symbol.quoted.bird"}]},"structural-keywords":{patterns:[{match:/\b(?:if|then|else|case|for|do|while|break|continue|return|in)\b/dgv,name:"keyword.control.bird"},{match:/\belse\p{space}*:/dgv,name:"keyword.control.case.else.bird"},{match:/\b(?:accept|reject|error)\b/dgv,name:"keyword.control.flow.bird"},{match:/\b(?:protocol|table|define|include|attribute|eval|ipv4|ipv6|local|as|from|where|cost|limit|action)\b/dgv,name:"keyword.control.structure.bird"}]},symbols:{patterns:[{match:/\b[A-Z_a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.bird"}]},"template-definitions":{patterns:[{begin:/\b(template)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}+(from)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.template.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.template.bird"},"4":{name:"keyword.control.template-reference.bird"},"5":{name:"entity.name.function.template.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.template-definition-with-from.bird",patterns:[{include:"$self"}]},{begin:/\b(template)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.template.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.template.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.template-definition-with-name.bird",patterns:[{include:"$self"}]},{begin:/\b(template)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.template.bird"},"2":{name:"entity.name.type.protocol.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.template-definition-anonymous.bird",patterns:[{include:"$self"}]}]},"user-variables":{patterns:[{match:/\b[A-Z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.user-defined.bird"}]},"variable-declarations":{patterns:[{captures:{"1":{name:"storage.type.bird"},"2":{name:"variable.other.declaration.bird"}},match:/\b((?:int|pair|quad|ip|prefix|ec|lc|rd|enum)\p{space}+set|int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)(?:\p{space}*=|;)/dgv,name:"meta.variable-declaration.bird"}]},"vpn-rd":{match:/\b(?:[0-9]+:[0-9]+|[012]:[0-9]+:[0-9]+|(?:[0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]+)\b/dgv,name:"constant.numeric.vpn-rd.bird"}},scopeName:"source.bird2",embeddedLangs:undefined,aliases:["bird"]})
1
+ const lang = Object.freeze({displayName:"BIRD2 Configuration",fileTypes:["conf","bird","bird2","bird3","bird.conf","bird2.conf","bird3.conf"],foldingStartMarker:/\{\p{space}*(?=\n?$)/dgv,foldingStopMarker:/^\p{space}*\}/dgv,name:"bird2",patterns:[{include:"#comments"},{include:"#strings"},{include:"#ip-addresses"},{include:"#prefixes"},{include:"#vpn-rd"},{include:"#bytestrings"},{include:"#bgp-paths"},{include:"#print-statements"},{include:"#template-definitions"},{include:"#filter-definitions"},{include:"#function-definitions"},{include:"#protocol-definitions"},{include:"#next-hop-statements"},{include:"#neighbor-statements"},{include:"#import-export-statements"},{include:"#variable-declarations"},{include:"#method-calls"},{include:"#function-calls"},{include:"#method-properties"},{include:"#route-attributes"},{include:"#data-types"},{include:"#constants"},{include:"#structural-keywords"},{include:"#protocol-phrases"},{include:"#functional-keywords"},{include:"#semantic-modifiers"},{include:"#builtin-functions"},{include:"#filter-names"},{include:"#user-variables"},{include:"#operators"},{include:"#numbers"},{include:"#symbols"},{include:"#blocks"}],repository:{"bgp-paths":{patterns:[{begin:/\[=/dgv,beginCaptures:{"0":{name:"punctuation.definition.bgp-path.begin.bird"}},end:/=\]/dgv,endCaptures:{"0":{name:"punctuation.definition.bgp-path.end.bird"}},name:"meta.bgp-path.bird",patterns:[{match:/[\*\+\?]/dgv,name:"keyword.operator.wildcard.bird"},{match:/\b[0-9]+\b/dgv,name:"constant.numeric.asn.bird"},{include:"#operators"},{include:"#symbols"}]}]},blocks:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.block.bird",patterns:[{include:"$self"}]},{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.set.begin.bird"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.set.end.bird"}},name:"meta.set.bird",patterns:[{include:"$self"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.tuple.begin.bird"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.tuple.end.bird"}},name:"meta.tuple.bird",patterns:[{include:"$self"}]},{match:/;/dgv,name:"punctuation.terminator.statement.bird"},{match:/,/dgv,name:"punctuation.separator.bird"}]},"builtin-functions":{patterns:[{match:/\b(?:defined|unset|roa_check|aspa_check|aspa_check_downstream|aspa_check_upstream|from_hex|format|append|prepend|add|delete|empty|reset|bt_assert|bt_test_suite|bt_test_same)\b/dgv,name:"support.function.builtin.bird"}]},bytestrings:{patterns:[{match:/\bhex:\p{AHex}{2}(?:[\-\.\:\p{space}]*\p{AHex}{2})*\b/dgv,name:"constant.numeric.bytestring.bird"},{match:/\b(?:\p{AHex}{2}[\-\.\:\p{space}]*){15,}\p{AHex}{2}\b/dgv,name:"constant.numeric.bytestring.bird"},{match:/\b\p{AHex}{32,}\b/dgv,name:"constant.numeric.bytestring.bird"}]},comments:{patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.bird"}},end:/(?=\n?$)/dgv,name:"comment.line.number-sign.bird"},{begin:/\/\*/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.bird"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.bird"}},name:"comment.block.bird"}]},constants:{patterns:[{match:/\b(?:on|off|yes|no|true|false)\b/dgv,name:"constant.language.boolean.bird"},{match:/\b(?:empty|unknown|generic|rt|ro|one|ten)\b/dgv,name:"constant.language.special.bird"},{match:/\bSCOPE_(?:HOST|LINK|SITE|ORGANIZATION|UNIVERSE)\b/dgv,name:"constant.language.scope.bird"},{match:/\bRTS_(?:STATIC|INHERIT|DEVICE|RIP|OSPF|OSPF_IA|OSPF_EXT1|OSPF_EXT2|BGP|PIPE|BABEL)\b/dgv,name:"constant.language.source.bird"},{match:/\bRTD_(?:ROUTER|DEVICE|MULTIPATH|BLACKHOLE|UNREACHABLE|PROHIBIT)\b/dgv,name:"constant.language.dest.bird"},{match:/\bROA_(?:UNKNOWN|INVALID|VALID)\b/dgv,name:"constant.language.roa.bird"},{match:/\bASPA_(?:UNKNOWN|INVALID|VALID)\b/dgv,name:"constant.language.aspa.bird"},{match:/\bNET_(?:IP4|IP6|IP6_SADR|VPN4|VPN6|ROA4|ROA6|FLOW4|FLOW6|MPLS)\b/dgv,name:"constant.language.net-type.bird"},{match:/\bMPLS_POLICY_(?:NONE|STATIC|PREFIX|AGGREGATE|VRF)\b/dgv,name:"constant.language.mpls.bird"}]},"data-types":{patterns:[{match:/\b(?:(?:int|pair|quad|ip|prefix|ec|lc|rd|enum)\p{space}+set|int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\b/dgv,name:"storage.type.bird"}]},"filter-definitions":{patterns:[{begin:/\b(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.filter.bird"},"2":{name:"entity.name.function.filter.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.filter-definition.bird",patterns:[{include:"$self"}]}]},"filter-names":{patterns:[{match:/\b[A-Z_a-z][0-9A-Z_a-z]*_filter\b/dgv,name:"entity.name.function.filter.bird"}]},"function-calls":{patterns:[{begin:/\b([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\(/dgv,beginCaptures:{"1":{name:"entity.name.function.call.bird"}},end:/\)/dgv,name:"meta.function-call.bird",patterns:[{include:"$self"}]}]},"function-definitions":{patterns:[{begin:/\b(function)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')(?=\p{space}*\()/dgv,beginCaptures:{"1":{name:"keyword.control.function.bird"},"2":{name:"entity.name.function.user-defined.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.function-definition.bird",patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.bird"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.bird"}},name:"meta.function-parameters.bird",patterns:[{include:"#data-types"},{include:"#symbols"}]},{begin:/->/dgv,beginCaptures:{"0":{name:"keyword.operator.return-type.bird"}},end:/(?=\{)/dgv,name:"meta.function-return-type.bird",patterns:[{include:"#data-types"}]},{include:"$self"}]}]},"functional-keywords":{patterns:[{match:/\b(?:static|rip|ospf|bgp|babel|rpki|bfd|bmp|device|direct|kernel|pipe|perf|mrt|aggregator|l3vpn|radv)\b/dgv,name:"keyword.control.protocol-type.bird"},{match:/\b(?:graceful|restart|preference|disabled|hold|keepalive|connect|retry|start|delay|error|wait|forget|scan|randomize|router|id)\b/dgv,name:"keyword.control.routing.bird"},{match:/\b(?:interface|type|wired|wireless|tunnel|rxcost|limit|hello|update|interval|port|tx|class|dscp|priority|rx|buffer|length|check|link|rtt|cost|min|max|decay|send|timestamps)\b/dgv,name:"keyword.other.interface.bird"},{match:/\b(?:(?:refresh|retry|expire|transport|ssh|tcp|user|address|version|ignore|private|public|key)|(?:local\p{space}+address|ignore\p{space}+max\p{space}+length|min\p{space}+version|max\p{space}+version|bird\p{space}+private\p{space}+key|remote\p{space}+public\p{space}+key))\b/dgv,name:"keyword.other.rpki.bird"},{match:/\b(?:authentication|none|mac|permissive|password|generate|accept|from|to|algorithm|hmac|sha1|sha256|sha384|sha512|blake2s128|blake2s256|blake2b256|blake2b512)\b/dgv,name:"keyword.other.auth.bird"},{match:/\btime\b/dgv,name:"keyword.other.time.bird"},{match:/\b(?:hostname|description|debug|log|syslog|stderr|bird|protocols|tables|channels|timeouts|passwords|bfd|confederation|cluster|stub|dead|neighbors|area|md5|multihop|passive|rfc1583compat|tick|ls|retransmit|transmit|ack|state|database|summary|external|nssa|translator|always|candidate|never|role|stability|election|action|warn|block|disable|keep|filtered|receive|modify|add|delete|withdraw|unreachable|blackhole|prohibit|unreach|igp_metric|localpref|med|origin|community|large_community|ext_community|as_path|prepend|weight|gateway|scope|onlink|recursive|multipath|igp|channel|sadr|src|learn|persist|via|ng)\b/dgv,name:"keyword.other.config.bird"},{match:/\b(?:flow4|flow6|dst|src|proto|header|dport|sport|icmp|code|tcp|flags|dscp|dont_fragment|is_fragment|first_fragment|last_fragment|fragment|label|offset)\b/dgv,name:"keyword.other.flowspec.bird"},{match:/\b(?:vpn4|vpn6|mpls|aspa|roa4|roa6)\b/dgv,name:"keyword.other.address.bird"},{match:/\b(?:all|none)\b/dgv,name:"keyword.other.quick-declaration.bird"}]},"import-export-statements":{patterns:[{captures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"},"3":{name:"entity.name.function.filter.bird"}},match:/\b(import)\p{space}+(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\b/dgv,name:"meta.import-statement.bird"},{begin:/\b(import)\p{space}+(filter)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.import-filter-inline.bird",patterns:[{include:"$self"}]},{begin:/\b(export)\p{space}+(where)\b/dgv,beginCaptures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.where.bird"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.statement.bird"}},name:"meta.export-where-clause.bird",patterns:[{include:"$self"}]},{captures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"},"3":{name:"entity.name.function.filter.bird"}},match:/\b(export)\p{space}+(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\b/dgv,name:"meta.export-statement.bird"}]},"ip-addresses":{patterns:[{match:/\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:\/[0-9]{1,2})?\b/dgv,name:"constant.numeric.ip.ipv4.bird"},{match:/\b(?:\p{AHex}{0,4}:){2,7}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"},{match:/::(?:\p{AHex}{0,4}:){0,6}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"},{match:/\b(?:\p{AHex}{0,4}:){1,6}::(?:\p{AHex}{0,4}:){0,5}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"}]},"method-calls":{patterns:[{begin:/\.\p{space}*([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\(/dgv,beginCaptures:{"1":{name:"entity.name.function.method.bird"}},end:/\)/dgv,name:"meta.method-call.bird",patterns:[{include:"$self"}]},{captures:{"1":{name:"variable.other.property.bird"}},match:/\.\p{space}*([A-Z_a-z][0-9A-Z_a-z]*)/dgv,name:"meta.method-access.bird"}]},"method-properties":{patterns:[{match:/(?<=\.)\p{space}*(?:first|last|last_nonaggregated|len|asn|data1??|data2|is_v4|ip|src|dst|rd|maxlen|type|mask|min|max)\b(?!\p{space}*\()/dgv,name:"support.variable.property.bird"}]},"neighbor-statements":{patterns:[{captures:{"1":{name:"keyword.control.local.bird"},"2":{name:"entity.name.symbol.local-address.bird"},"3":{name:"keyword.control.port.bird"},"4":{name:"constant.numeric.port.bird"},"5":{name:"keyword.control.as.bird"},"6":{name:"constant.numeric.asn.bird"}},match:/\b(local)\p{space}+([\.\:\p{AHex}]+|[A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')(?:\p{space}+(port)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*))?\p{space}+(as)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.local-as-statement.bird"},{captures:{"1":{name:"keyword.control.local.bird"},"2":{name:"keyword.control.as.bird"},"3":{name:"constant.numeric.asn.bird"}},match:/\b(local)\p{space}+(as)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.local-as-template-statement.bird"},{captures:{"1":{name:"keyword.control.neighbor.bird"},"2":{name:"constant.numeric.ip-address.bird"},"3":{name:"meta.interface-reference.bird"},"4":{name:"string.quoted.single.interface.bird"},"5":{name:"variable.other.interface.bird"},"6":{name:"keyword.control.as.bird"},"7":{name:"constant.numeric.asn.bird"},"8":{name:"keyword.control.port.bird"},"9":{name:"constant.numeric.port.bird"}},match:/\b(neighbor)\p{space}+([\.\:\p{AHex}]+)\p{space}*(%\p{space}*(?:'([\-\.0-\:A-Z_a-z]+)'|([\-\.0-\:A-Z_a-z]+)))?(?:\p{space}+(as)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*))?\p{space}+(port)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.neighbor-port-statement.bird"},{captures:{"1":{name:"keyword.control.neighbor.bird"},"2":{name:"entity.name.symbol.neighbor-address.bird"},"3":{name:"meta.interface-reference.bird"},"4":{name:"string.quoted.single.interface.bird"},"5":{name:"variable.other.interface.bird"},"6":{name:"keyword.control.as.bird"},"7":{name:"constant.numeric.asn.bird"},"8":{name:"keyword.control.port.bird"},"9":{name:"constant.numeric.port.bird"}},match:/\b(neighbor)\p{space}+('[\-\.0-\:A-Z_a-z]+'|(?!(?:as|range)\b)[A-Z_a-z][0-9A-Z_a-z]*)\p{space}*(%\p{space}*(?:'([\-\.0-\:A-Z_a-z]+)'|([\-\.0-\:A-Z_a-z]+)))?(?:\p{space}+(as)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*))?\p{space}+(port)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.neighbor-port-symbolic-statement.bird"},{captures:{"1":{name:"keyword.control.neighbor.bird"},"2":{name:"constant.numeric.ip-address.bird"},"3":{name:"meta.interface-reference.bird"},"4":{name:"string.quoted.single.interface.bird"},"5":{name:"variable.other.interface.bird"},"6":{name:"keyword.control.as.bird"},"7":{name:"constant.numeric.asn.bird"}},match:/\b(neighbor)\p{space}+([\.\:\p{AHex}]+)\p{space}*(%\p{space}*(?:'([\-\.0-\:A-Z_a-z]+)'|([\-\.0-\:A-Z_a-z]+)))?\p{space}+(as)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.neighbor-statement.bird"},{captures:{"1":{name:"keyword.control.neighbor.bird"},"2":{name:"entity.name.symbol.neighbor-address.bird"},"3":{name:"meta.interface-reference.bird"},"4":{name:"string.quoted.single.interface.bird"},"5":{name:"variable.other.interface.bird"},"6":{name:"keyword.control.as.bird"},"7":{name:"constant.numeric.asn.bird"}},match:/\b(neighbor)\p{space}+('[\-\.0-\:A-Z_a-z]+'|(?!(?:as|range)\b)[A-Z_a-z][0-9A-Z_a-z]*)\p{space}*(%\p{space}*(?:'([\-\.0-\:A-Z_a-z]+)'|([\-\.0-\:A-Z_a-z]+)))?\p{space}+(as)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.neighbor-symbolic-statement.bird"},{captures:{"1":{name:"keyword.control.neighbor.bird"},"2":{name:"keyword.control.as.bird"},"3":{name:"constant.numeric.asn.bird"}},match:/\b(neighbor)\p{space}+(as)\p{space}+([0-9]+|[A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.neighbor-template-statement.bird"},{captures:{"1":{name:"keyword.control.source.bird"},"2":{name:"constant.numeric.ip-address.bird"}},match:/\b(source address)\p{space}+([\.\:\p{AHex}]+)\b/dgv,name:"meta.source-address-statement.bird"}]},"next-hop-statements":{patterns:[{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.ip-version.bird"},"3":{name:"constant.numeric.ip-address.bird"}},match:/\b(next hop)\p{space}+(ipv4)\p{space}+([\.0-9]+)\b/dgv,name:"meta.next-hop-ipv4.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.ip-version.bird"},"3":{name:"constant.numeric.ip-address.bird"}},match:/\b(next hop)\p{space}+(ipv6)\p{space}+([\:\p{AHex}]+)\b/dgv,name:"meta.next-hop-ipv6.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.semantic-modifier.bird"}},match:/\b(next hop)\p{space}+(self)\b/dgv,name:"meta.next-hop-simple.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.semantic-modifier.bird"}},match:/\b(extended next hop)\p{space}+(o(?:n|ff))\b/dgv,name:"meta.extended-next-hop-statement.bird"}]},numbers:{patterns:[{match:/\b0x\p{AHex}+\b/dgv,name:"constant.numeric.hex.bird"},{match:/\b[0-9]+\b/dgv,name:"constant.numeric.decimal.bird"},{captures:{"1":{name:"keyword.other.unit.bird"}},match:/\b[0-9]+\p{space}*([mu]??s)\b/dgv,name:"constant.numeric.time.bird"}]},operators:{patterns:[{match:/==|!=|<=|>=|!~|[\<\=\>\~]/dgv,name:"keyword.operator.comparison.bird"},{match:/&&|\|\||!|->/dgv,name:"keyword.operator.logical.bird"},{match:/\+\+/dgv,name:"keyword.operator.concat.bird"},{match:/[\-\%\*\+\/]/dgv,name:"keyword.operator.arithmetic.bird"},{match:/\.\./dgv,name:"keyword.operator.range.bird"},{match:/\./dgv,name:"keyword.operator.accessor.bird"}]},prefixes:{patterns:[{match:/\b(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}|(?:\p{AHex}{0,4}:)+\p{AHex}{0,4})\/[0-9]{1,3}(?:[\-\+]|\{[0-9]+,[0-9]+\})?\b/dgv,name:"constant.numeric.prefix.bird"}]},"print-statements":{patterns:[{begin:/\b(printn??)\b/dgv,beginCaptures:{"1":{name:"keyword.other.print.bird"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.statement.bird"}},name:"meta.print-statement.bird",patterns:[{include:"$self"}]}]},"protocol-definitions":{patterns:[{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}+(from)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.protocol.bird"},"4":{name:"keyword.control.template-reference.bird"},"5":{name:"entity.name.function.template.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-with-template.bird",patterns:[{include:"$self"}]},{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.protocol.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-with-name.bird",patterns:[{include:"$self"}]},{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-anonymous.bird",patterns:[{include:"$self"}]}]},"protocol-phrases":{patterns:[{match:/\b(?:strict\p{space}+bind|zero\p{space}+udp6\p{space}+checksum\p{space}+rx|idle\p{space}+tx\p{space}+interval|multiplier|keyed|meticulous)\b/dgv,name:"keyword.other.bfd.phrase.bird"},{match:/\b(?:send\p{space}+timestamps|rtt\p{space}+(?:cost|min|max|decay)|next\p{space}+hop\p{space}+prefer|prefer|native)\b/dgv,name:"keyword.other.babel.phrase.bird"},{match:/\b(?:next\p{space}+hop\p{space}+(?:self|address|ibgp|ebgp)|link\p{space}+local\p{space}+next\p{space}+hop\p{space}+format|import\p{space}+table|export\p{space}+table|base\p{space}+table|add\p{space}+paths|aigp\p{space}+originate|long\p{space}+lived\p{space}+graceful\p{space}+restart|long\p{space}+lived\p{space}+stale\p{space}+time|dynamic\p{space}+name(?:\p{space}+digits)?|free\p{space}+bind|ttl\p{space}+security|multihop\p{space}+password|rr\p{space}+client|rs\p{space}+client|advertise\p{space}+hostname|interpret\p{space}+communities|deterministic\p{space}+med|default\p{space}+bgp_local_pref|default\p{space}+bgp_med|med\p{space}+metric|igp\p{space}+metric|missing\p{space}+lladdr|gateway\p{space}+address|forwarding\p{space}+addressed|gateway\p{space}+recursive|allow\p{space}+local\p{space}+as|allow\p{space}+bogus\p{space}+as|originate\p{space}+community|full\p{space}+route\p{space}+table|capabilities|primary)\b/dgv,name:"keyword.other.bgp.phrase.bird"}]},"route-attributes":{patterns:[{match:/\b(?:net|scope|preference|from|gw|proto|source|dest|ifname|ifindex|weight|gw_mpls|gw_mpls_stack|onlink|igp_metric|mpls_label|mpls_policy|mpls_class|bgp_path|bgp_origin|bgp_next_hop|bgp_med|bgp_local_pref|bgp_community|bgp_ext_community|bgp_large_community|bgp_originator_id|bgp_cluster_list|ospf_metric1|ospf_metric2|ospf_tag|ospf_router_id|rip_metric|rip_tag|mypath|mylclist)\b/dgv,name:"support.variable.route-attribute.bird"}]},"semantic-modifiers":{patterns:[{match:/\b(?:self|on|off|remote|extended)\b/dgv,name:"keyword.other.semantic-modifier.bird"}]},strings:{patterns:[{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.bird"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.bird"}},name:"string.quoted.double.bird",patterns:[{match:/\./dgv,name:"constant.character.escape.bird"}]},{match:/'[\-\.0-\:A-Z_a-z]+'/dgv,name:"entity.name.symbol.quoted.bird"}]},"structural-keywords":{patterns:[{match:/\b(?:if|then|else|case|for|do|while|break|continue|return|in)\b/dgv,name:"keyword.control.bird"},{match:/\belse\p{space}*:/dgv,name:"keyword.control.case.else.bird"},{match:/\b(?:accept|reject|error)\b/dgv,name:"keyword.control.flow.bird"},{match:/\b(?:protocol|table|define|include|attribute|eval|ipv4|ipv6|local|as|from|where|cost|limit|action)\b/dgv,name:"keyword.control.structure.bird"}]},symbols:{patterns:[{match:/\b[A-Z_a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.bird"}]},"template-definitions":{patterns:[{begin:/\b(template)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}+(from)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.template.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.template.bird"},"4":{name:"keyword.control.template-reference.bird"},"5":{name:"entity.name.function.template.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.template-definition-with-from.bird",patterns:[{include:"$self"}]},{begin:/\b(template)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*|'[\-\.0-\:A-Z_a-z]+')\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.template.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.template.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.template-definition-with-name.bird",patterns:[{include:"$self"}]},{begin:/\b(template)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.template.bird"},"2":{name:"entity.name.type.protocol.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.template-definition-anonymous.bird",patterns:[{include:"$self"}]}]},"user-variables":{patterns:[{match:/\b[A-Z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.user-defined.bird"}]},"variable-declarations":{patterns:[{captures:{"1":{name:"storage.type.bird"},"2":{name:"variable.other.declaration.bird"}},match:/\b((?:int|pair|quad|ip|prefix|ec|lc|rd|enum)\p{space}+set|int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)(?:\p{space}*=|;)/dgv,name:"meta.variable-declaration.bird"}]},"vpn-rd":{match:/\b(?:[0-9]+:[0-9]+|[012]:[0-9]+:[0-9]+|(?:[0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]+)\b/dgv,name:"constant.numeric.vpn-rd.bird"}},scopeName:"source.bird2",embeddedLangs:undefined,aliases:["bird"]})
2
2
 
3
3
  export default [
4
4
  lang