@shikijs/langs-precompiled 3.1.0 → 3.2.1

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.
Files changed (217) hide show
  1. package/dist/abap.mjs +1 -1
  2. package/dist/actionscript-3.mjs +1 -1
  3. package/dist/ada.mjs +1 -1
  4. package/dist/angular-expression.mjs +1 -1
  5. package/dist/angular-html.mjs +1 -1
  6. package/dist/angular-inline-style.mjs +1 -1
  7. package/dist/angular-inline-template.mjs +1 -1
  8. package/dist/angular-ts.mjs +1 -1
  9. package/dist/apache.mjs +1 -1
  10. package/dist/apex.mjs +1 -1
  11. package/dist/apl.mjs +1 -1
  12. package/dist/applescript.mjs +1 -1
  13. package/dist/ara.mjs +1 -1
  14. package/dist/asciidoc.mjs +1 -1
  15. package/dist/asm.mjs +1 -1
  16. package/dist/astro.mjs +1 -1
  17. package/dist/awk.mjs +1 -1
  18. package/dist/ballerina.mjs +1 -1
  19. package/dist/bat.mjs +1 -1
  20. package/dist/beancount.mjs +1 -1
  21. package/dist/berry.mjs +1 -1
  22. package/dist/bicep.mjs +1 -1
  23. package/dist/blade.mjs +1 -1
  24. package/dist/bsl.mjs +1 -1
  25. package/dist/c.mjs +1 -1
  26. package/dist/cadence.mjs +1 -1
  27. package/dist/cairo.mjs +1 -1
  28. package/dist/clarity.mjs +1 -1
  29. package/dist/clojure.mjs +1 -1
  30. package/dist/cmake.mjs +1 -1
  31. package/dist/cobol.mjs +1 -1
  32. package/dist/codeql.mjs +1 -1
  33. package/dist/coffee.mjs +1 -1
  34. package/dist/common-lisp.mjs +1 -1
  35. package/dist/coq.mjs +1 -1
  36. package/dist/cpp-macro.mjs +1 -1
  37. package/dist/cpp.mjs +1 -1
  38. package/dist/crystal.mjs +1 -1
  39. package/dist/csharp.mjs +1 -1
  40. package/dist/css.mjs +1 -1
  41. package/dist/cue.mjs +1 -1
  42. package/dist/cypher.mjs +1 -1
  43. package/dist/d.mjs +1 -1
  44. package/dist/dart.mjs +1 -1
  45. package/dist/dax.mjs +1 -1
  46. package/dist/desktop.mjs +1 -1
  47. package/dist/diff.mjs +1 -1
  48. package/dist/dotenv.mjs +1 -1
  49. package/dist/dream-maker.mjs +1 -1
  50. package/dist/elixir.mjs +1 -1
  51. package/dist/elm.mjs +1 -1
  52. package/dist/emacs-lisp.mjs +1 -1
  53. package/dist/erlang.mjs +1 -1
  54. package/dist/es-tag-css.mjs +1 -1
  55. package/dist/es-tag-glsl.mjs +1 -1
  56. package/dist/es-tag-html.mjs +1 -1
  57. package/dist/es-tag-sql.mjs +1 -1
  58. package/dist/es-tag-xml.mjs +1 -1
  59. package/dist/fennel.mjs +1 -1
  60. package/dist/fish.mjs +1 -1
  61. package/dist/fluent.mjs +1 -1
  62. package/dist/fortran-free-form.mjs +1 -1
  63. package/dist/fsharp.mjs +1 -1
  64. package/dist/gdresource.mjs +1 -1
  65. package/dist/gdscript.mjs +1 -1
  66. package/dist/gdshader.mjs +1 -1
  67. package/dist/genie.mjs +1 -1
  68. package/dist/git-rebase.mjs +1 -1
  69. package/dist/gleam.mjs +1 -1
  70. package/dist/glimmer-js.mjs +1 -1
  71. package/dist/glimmer-ts.mjs +1 -1
  72. package/dist/glsl.mjs +1 -1
  73. package/dist/gnuplot.mjs +1 -1
  74. package/dist/go.mjs +1 -1
  75. package/dist/graphql.mjs +1 -1
  76. package/dist/groovy.mjs +1 -1
  77. package/dist/hack.mjs +1 -1
  78. package/dist/haml.mjs +1 -1
  79. package/dist/handlebars.mjs +1 -1
  80. package/dist/haskell.mjs +1 -1
  81. package/dist/haxe.mjs +1 -1
  82. package/dist/hcl.mjs +1 -1
  83. package/dist/hjson.mjs +1 -1
  84. package/dist/hlsl.mjs +1 -1
  85. package/dist/html-derivative.mjs +1 -1
  86. package/dist/html.mjs +1 -1
  87. package/dist/http.mjs +1 -1
  88. package/dist/hxml.mjs +1 -1
  89. package/dist/hy.mjs +1 -1
  90. package/dist/imba.mjs +1 -3
  91. package/dist/index.mjs +2 -0
  92. package/dist/java.mjs +1 -1
  93. package/dist/javascript.mjs +1 -1
  94. package/dist/jinja-html.mjs +1 -1
  95. package/dist/jinja.mjs +1 -1
  96. package/dist/jison.mjs +1 -1
  97. package/dist/json.mjs +1 -1
  98. package/dist/json5.mjs +1 -1
  99. package/dist/jsonc.mjs +1 -1
  100. package/dist/jsonl.mjs +1 -1
  101. package/dist/jsonnet.mjs +1 -1
  102. package/dist/jsx.mjs +1 -1
  103. package/dist/julia.mjs +1 -2
  104. package/dist/kotlin.mjs +1 -1
  105. package/dist/kusto.mjs +1 -1
  106. package/dist/latex.mjs +1 -1
  107. package/dist/lean.mjs +1 -1
  108. package/dist/less.mjs +1 -1
  109. package/dist/liquid.mjs +1 -1
  110. package/dist/llvm.d.mts +3 -0
  111. package/dist/llvm.mjs +5 -0
  112. package/dist/log.mjs +1 -1
  113. package/dist/lua.mjs +1 -1
  114. package/dist/luau.mjs +1 -1
  115. package/dist/make.mjs +1 -1
  116. package/dist/markdown-vue.mjs +1 -1
  117. package/dist/markdown.mjs +1 -1
  118. package/dist/marko.mjs +1 -1
  119. package/dist/matlab.mjs +1 -1
  120. package/dist/mdc.mjs +1 -1
  121. package/dist/mdx.mjs +1 -1
  122. package/dist/mermaid.mjs +1 -1
  123. package/dist/mipsasm.mjs +1 -1
  124. package/dist/mojo.mjs +1 -1
  125. package/dist/move.mjs +1 -1
  126. package/dist/narrat.mjs +1 -1
  127. package/dist/nextflow.mjs +1 -1
  128. package/dist/nginx.mjs +1 -1
  129. package/dist/nim.mjs +1 -1
  130. package/dist/nix.mjs +1 -1
  131. package/dist/nushell.mjs +1 -1
  132. package/dist/objective-c.mjs +1 -1
  133. package/dist/objective-cpp.mjs +1 -1
  134. package/dist/ocaml.mjs +1 -1
  135. package/dist/pascal.mjs +1 -1
  136. package/dist/perl.mjs +1 -1
  137. package/dist/php.mjs +1 -1
  138. package/dist/plsql.mjs +1 -1
  139. package/dist/po.mjs +1 -1
  140. package/dist/polar.mjs +1 -1
  141. package/dist/postcss.mjs +1 -1
  142. package/dist/powerquery.mjs +1 -1
  143. package/dist/powershell.mjs +1 -1
  144. package/dist/prisma.mjs +1 -1
  145. package/dist/prolog.mjs +1 -1
  146. package/dist/proto.mjs +1 -1
  147. package/dist/pug.mjs +1 -1
  148. package/dist/puppet.mjs +1 -1
  149. package/dist/purescript.mjs +6 -2
  150. package/dist/python.mjs +1 -1
  151. package/dist/qss.mjs +1 -1
  152. package/dist/r.mjs +1 -1
  153. package/dist/racket.mjs +1 -1
  154. package/dist/raku.mjs +1 -1
  155. package/dist/razor.mjs +1 -1
  156. package/dist/reg.mjs +1 -1
  157. package/dist/regexp.mjs +1 -1
  158. package/dist/rel.mjs +1 -1
  159. package/dist/riscv.mjs +1 -1
  160. package/dist/rst.mjs +1 -1
  161. package/dist/ruby.mjs +1 -1
  162. package/dist/rust.mjs +1 -1
  163. package/dist/sas.mjs +1 -1
  164. package/dist/sass.mjs +1 -1
  165. package/dist/scala.mjs +1 -1
  166. package/dist/scheme.mjs +1 -1
  167. package/dist/scss.mjs +1 -1
  168. package/dist/sdbl.mjs +1 -1
  169. package/dist/shaderlab.mjs +1 -1
  170. package/dist/shellscript.mjs +1 -1
  171. package/dist/shellsession.mjs +1 -1
  172. package/dist/smalltalk.mjs +1 -1
  173. package/dist/solidity.mjs +1 -1
  174. package/dist/soy.mjs +1 -1
  175. package/dist/sparql.mjs +1 -1
  176. package/dist/splunk.mjs +1 -1
  177. package/dist/sql.mjs +1 -1
  178. package/dist/ssh-config.mjs +1 -1
  179. package/dist/stata.mjs +1 -1
  180. package/dist/stylus.mjs +1 -1
  181. package/dist/svelte.mjs +1 -1
  182. package/dist/system-verilog.mjs +1 -1
  183. package/dist/systemd.mjs +1 -1
  184. package/dist/talonscript.mjs +1 -1
  185. package/dist/tasl.mjs +1 -1
  186. package/dist/tcl.mjs +1 -1
  187. package/dist/templ.mjs +1 -1
  188. package/dist/terraform.mjs +1 -1
  189. package/dist/tex.mjs +1 -1
  190. package/dist/toml.mjs +1 -1
  191. package/dist/tsx.mjs +1 -1
  192. package/dist/twig.mjs +1 -1
  193. package/dist/typescript.mjs +1 -1
  194. package/dist/typespec.mjs +1 -1
  195. package/dist/typst.mjs +1 -1
  196. package/dist/v.mjs +1 -1
  197. package/dist/vala.mjs +1 -1
  198. package/dist/vb.mjs +1 -1
  199. package/dist/verilog.mjs +1 -1
  200. package/dist/vhdl.mjs +1 -1
  201. package/dist/viml.mjs +1 -1
  202. package/dist/vue-html.mjs +1 -1
  203. package/dist/vue-sfc-style-variable-injection.mjs +1 -1
  204. package/dist/vue.mjs +1 -1
  205. package/dist/vyper.mjs +1 -1
  206. package/dist/wasm.mjs +1 -1
  207. package/dist/wenyan.mjs +1 -1
  208. package/dist/wgsl.mjs +1 -1
  209. package/dist/wikitext.mjs +1 -1
  210. package/dist/wit.d.mts +3 -0
  211. package/dist/wit.mjs +5 -0
  212. package/dist/wolfram.mjs +1 -1
  213. package/dist/xml.mjs +1 -1
  214. package/dist/yaml.mjs +1 -1
  215. package/dist/zenscript.mjs +1 -1
  216. package/dist/zig.mjs +1 -1
  217. package/package.json +6 -4
package/dist/abap.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"ABAP",fileTypes:["abap","ABAP"],foldingStartMarker:/\/\*\*|\{\p{space}*(?=\n?$)/dgv,foldingStopMarker:/\*\*\/|^\p{space}*\}/dgv,name:"abap",patterns:[{captures:{"1":{name:"punctuation.definition.comment.abap"}},match:/^\*[^\n]*\n?/dgv,name:"comment.line.full.abap"},{captures:{"1":{name:"punctuation.definition.comment.abap"}},match:/"[^\n]*\n?/dgv,name:"comment.line.partial.abap"},{match:/(?<![^\p{space}])##[^\n]*?(?=([\.\:\,\p{space}]))/dgv,name:"comment.line.pragma.abap"},{match:/(?<=(?:\p{space}|~|-))(?<=(?:->|=>))([a-z_\/][a-z_0-9\/]*)(?=\p{space}+(?:=|\+=|-=|\*=|\/=|&&=|&=)\p{space}+)/dgiv,name:"variable.other.abap"},{match:/\b[0-9]+(\b|\.|,)/dgv,name:"constant.numeric.abap"},{match:/(^|\p{space}+)((PUBLIC|PRIVATE|PROTECTED)\p{space}SECTION)(?=\p{space}+|:|\.)/dgiv,name:"storage.modifier.class.abap"},{begin:/(?<!\\)(\|)([^\n]*?)/dgv,beginCaptures:{"1":{name:"constant.character.escape.abap"}},end:/(?<!\\)(\||(\\\\\|))/dgv,endCaptures:{"1":{name:"constant.character.escape.abap"}},name:"string.interpolated.abap",patterns:[{match:/(\{ )|( \})/dgv,name:"constant.character.escape"},{match:/\\\|/dgv,name:"constant.character.escape.abap"},{match:/(?<=\p{space})(align|alpha|case|country|currency|date|decimals|exponent|number|pad|sign|style|time|timestamp|timezone|width|xsd|zero)(?=\p{space}=)/dgiv,name:"entity.name.property.stringtemplate.abap"},{match:/(?<==\p{space})(center|engineering|environment|in|iso|left|leftplus|leftspace|lower|no|out|raw|right|rightplus|rightspace|scale_preserving|scale_preserving_scientific|scientific|scientific_with_leading_zero|sign_as_postfix|simple|space|upper|user|yes)(?=\p{space})/dgiv,name:"entity.value.property.stringtemplate.abap"}]},{begin:/'/dgv,end:/'/dgv,name:"string.quoted.single.abap",patterns:[{match:/''/dgv,name:"constant.character.escape.abap"}]},{begin:/`/dgv,end:/`/dgv,name:"string.quoted.single.abap",patterns:[{match:/``/dgv,name:"constant.character.escape.abap"}]},{begin:/^\p{space}*(class)\p{space}([a-z_\/][a-z_0-9\/]*)/dgiv,beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.block.abap"}},end:/\p{space}*\.\p{space}*\n?/dgv,name:"meta.block.begin.implementation.abap",patterns:[{match:/(^|\p{space}+)(definition|implementation|public|inheriting\p{space}+from|final|deferred|abstract|shared\p{space}+memory\p{space}+enabled|(global|local)*\p{space}*friends|(create\p{space}+(public|protected|private))|for\p{space}+behavior\p{space}+of|for\p{space}+testing|risk\p{space}+level\p{space}+(critical|dangerous|harmless))|duration\p{space}(short|medium|long)(?=\p{space}+|\.)/dgiv,name:"storage.modifier.class.abap"},{begin:/(?=[A-Za-z_][A-Za-z0-9_]*)/dgv,contentName:"entity.name.type.block.abap",end:/(?![A-Za-z0-9_])/dgv,patterns:[{include:"#generic_names"}]}]},{begin:/^\p{space}*(method)\p{space}(?:([a-z_\/][a-z_0-9\/]*)~)?([a-z_\/][a-z_0-9\/]*)/dgiv,beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.abap"},"3":{name:"entity.name.function.abap"}},end:/\p{space}*\.\p{space}*\n?/dgv,patterns:[{match:/(?<=^|\p{space})(BY\p{space}+DATABASE(\p{space}+PROCEDURE|\p{space}+FUNCTION|\p{space}+GRAPH\p{space}+WORKSPACE)|BY\p{space}+KERNEL\p{space}+MODULE)(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"},{match:/(?<=^|\p{space})(FOR\p{space}+(HDB|LLANG))(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"},{match:/(?<=\p{space})(OPTIONS\p{space}+(READ-ONLY|DETERMINISTIC|SUPPRESS\p{space}+SYNTAX\p{space}+ERRORS))(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"},{match:/(?<=^|\p{space})(LANGUAGE\p{space}+(SQLSCRIPT|SQL|GRAPH))(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"},{captures:{"1":{name:"storage.modifier.method.abap"}},match:/(?<=\p{space})(USING)\p{space}+([a-z_\/][a-z_0-9\/\=\>]*)+(?=\p{space}+|\.)/dgiv},{begin:/(?=[A-Za-z_][A-Za-z0-9_]*)/dgv,end:/(?![A-Za-z0-9_])/dgv,patterns:[{include:"#generic_names"}]}]},{begin:/^\p{space}*(INTERFACE)\p{space}([a-z_\/][a-z_0-9\/]*)/dgiv,beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.abap"}},end:/\p{space}*\.\p{space}*\n?/dgv,patterns:[{match:/(?<=^|\p{space})(DEFERRED|PUBLIC)(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"}]},{begin:/^\p{space}*(FORM)\p{space}([a-z_\/][a-z_0-9\/\-\?]*)/dgiv,beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.abap"}},end:/\p{space}*\.\p{space}*\n?/dgv,patterns:[{match:/(?<=^|\p{space})(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\p{space}+|\.)/dgiv,name:"storage.modifier.form.abap"},{include:"#abaptypes"},{include:"#keywords_followed_by_braces"}]},{match:/(endclass|endmethod|endform|endinterface)/dgiv,name:"storage.type.block.end.abap"},{match:/(<[A-Za-z_][A-Za-z0-9_]*>)/dgiv,name:"variable.other.field.symbol.abap"},{include:"#keywords"},{include:"#abap_constants"},{include:"#reserved_names"},{include:"#operators"},{include:"#builtin_functions"},{include:"#abaptypes"},{include:"#system_fields"},{include:"#sql_functions"},{include:"#sql_types"}],repository:{abap_constants:{match:/(?<=\p{space})(initial|null|@?space|@?abap_true|@?abap_false|@?abap_undefined|table_line|%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|adabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\p{space}|\.|,)/dgiv,name:"constant.language.abap"},abaptypes:{patterns:[{match:/\p{space}(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\p{space}|\.|,)/dgiv,name:"support.type.abap"},{match:/\p{space}(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\p{space}|\.|,)/dgiv,name:"keyword.control.simple.abap"}]},arithmetic_operator:{match:/(?<=\p{space})(\+|-|\*|\*\*|\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\p{space})/dgiv,name:"keyword.control.simple.abap"},builtin_functions:{match:/(?<=\p{space})(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\()/dgiv,name:"entity.name.function.builtin.abap"},comparison_operator:{match:/(?<=\p{space})(<|>|<=|>=|=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\p{space})/dgiv,name:"keyword.control.simple.abap"},control_keywords:{match:/(^|\p{space})(at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\p{space}|\.|:)/dgiv,name:"keyword.control.flow.abap"},generic_names:{match:/[A-Za-z_][A-Za-z0-9_]*/dgv},keywords:{patterns:[{include:"#main_keywords"},{include:"#text_symbols"},{include:"#control_keywords"},{include:"#keywords_followed_by_braces"}]},keywords_followed_by_braces:{captures:{"1":{name:"keyword.control.simple.abap"},"2":{name:"variable.other.abap"}},match:/\b(data|value|field-symbol|final|reference|resumable)\((<?[a-z_\/][a-z_0-9\/]*>?)\)/dgiv},logical_operator:{match:/(?<=\p{space})(not|or|and)(?=\p{space})/dgiv,name:"keyword.control.simple.abap"},main_keywords:{match:/*@__PURE__*/ new EmulatedRegExp("(?<=^|\\p{space})(abap-source|abstract|accept|accepting|access|according|action|activation|actual|add|add-corresponding|adjacent|after|alias|aliases|all|allocate|amdp|analysis|analyzer|append|appending|application|archive|area|arithmetic|as|ascending|assert|assign|assigned|assigning|association|asynchronous|at|attributes|authority|authority-check|authorization|auto|back|background|backward|badi|base|before|begin|behavior|between|binary|bit|blank|blanks|block|blocks|bound|boundaries|bounds|boxed|break|break-point|buffer|by|bypassing|byte|byte-order|call|calling|cast|casting|cds|centered|change|changing|channels|char-to-hex|character|check|checkbox|cid|circular|class|class-data|class-events|class-method|class-methods|class-pool|cleanup|clear|client|clients|clock|clone|close|cnt|code|collect|color|column|comment|comments|commit|common|communication|comparing|component|components|compression|compute|concatenate|cond|condense|condition|connection|constant|constants|context|contexts|control|controls|conv|conversion|convert|copy|corresponding|count|country|cover|create|currency|current|cursor|customer-function|data|database|datainfo|dataset|date|daylight|ddl|deallocate|decimals|declarations|deep|default|deferred|define|delete|deleting|demand|descending|describe|destination|detail|determine|dialog|did|directory|discarding|display|display-mode|distance|distinct|divide|divide-corresponding|dummy|duplicate|duplicates|duration|during|dynpro|edit|editor-call|empty|enabled|enabling|encoding|end|end-enhancement-section|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|endenhancement|endexec|endfunction|endian|ending|endmodule|endprovide|endselect|endwith|enhancement|enhancement-point|enhancement-section|enhancements|entities|entity|entries|entry|enum|equiv|errors|escape|escaping|event|events|exact|except|exception|exception-table|exceptions|excluding|exec|execute|exists|exit|exit-command|expanding|explicit|exponent|export|exporting|extended|extension|extract|fail|failed|features|fetch|field|field-groups|field-symbols|fields|file|fill|filter|filters|final|find|first|first-line|fixed-point|flush|following|for|format|forward|found|frame|frames|free|from|full|function|function-pool|generate|get|giving|graph|group|groups|handle|handler|hashed|having|header|headers|heading|help-id|help-request|hide|hint|hold|hotspot|icon|id|identification|identifier|ignore|ignoring|immediately|implemented|implicit|import|importing|in|inactive|incl|include|includes|including|increment|index|index-line|indicators|infotypes|inheriting|init|initial|initialization|inner|input|insert|instance|instances|intensified|interface|interface-pool|interfaces|internal|intervals|into|inverse|inverted-date|is|job|join|keep|keeping|kernel|key|keys|keywords|kind|language|last|late|layout|leading|leave|left|left-justified|legacy|length|let|level|levels|like|line|line-count|line-selection|line-size|linefeed|lines|link|list|list-processing|listbox|load|load-of-program|local|locale|lock|locks|log-point|logical|lower|mapped|mapping|margin|mark|mask|match|matchcode|maximum|members|memory|mesh|message|message-id|messages|messaging|method|methods|mode|modif|modifier|modify|module|move|move-corresponding|multiply|multiply-corresponding|name|nametab|native|nested|nesting|new|new-line|new-page|new-section|next|no-display|no-extension|no-gap|no-gaps|no-grouping|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unicode|non-unique|number|object|objects|objmgr|obligatory|occurence|occurences|occurrence|occurrences|occurs|of|offset|on|only|open|optional|option|options|order|others|out|outer|output|output-length|overflow|overlay|pack|package|padding|page|parameter|parameter-table|parameters|part|partially|pcre|perform|performing|permissions|pf-status|places|pool|position|pragmas|preceding|precompiled|preferred|preserving|primary|print|print-control|private|privileged|procedure|process|program|property|protected|provide|push|pushbutton|put|query|queue-only|queueonly|quickinfo|radiobutton|raising|range|ranges|read|read-only|receive|received|receiving|redefinition|reduce|ref|reference|refresh|regex|reject|renaming|replace|replacement|replacing|report|reported|request|requested|required|reserve|reset|resolution|respecting|response|restore|result|results|resumable|resume|retry|return|returning|right|right-justified|rollback|rows|rp-provide-from-last|run|sap|sap-spool|save|saving|scan|screen|scroll|scroll-boundary|scrolling|search|seconds|section|select|select-options|selection|selection-screen|selection-set|selection-sets|selection-table|selections|send|separate|separated|session|set|shared|shift|shortdump|shortdump-id|sign|simple|simulation|single|size|skip|skipping|smart|some|sort|sortable|sorted|source|specified|split|spool|spots|sql|stable|stamp|standard|start-of-selection|starting|state|statement|statements|static|statics|statusinfo|step|step-loop|stop|structure|structures|style|subkey|submatches|submit|subroutine|subscreen|substring|subtract|subtract-corresponding|suffix|sum|summary|supplied|supply|suppress|switch|symbol|syntax-check|syntax-trace|system-call|system-exceptions|tab|tabbed|table|tables|tableview|tabstrip|target|task|tasks|test|test-injection|test-seam|testing|text|textpool|then|throw|time|times|title|titlebar|to|tokens|top-lines|top-of-page|trace-file|trace-table|trailing|transaction|transfer|transformation|translate|transporting|trmac|truncate|truncation|type|type-pool|type-pools|types|uline|unassign|unbounded|under|unicode|union|unique|unit|unix|unpack|until|unwind|up|update|upper|user|user-command|using|utf-8|uuid|valid|validate|value|value-request|values|vary|varying|version|via|visible|wait|when|where|window|windows|with|with-heading|with-title|without|word|work|workspace|write|xml|zone)(?=\\p{space}|\\.|:|,)","dgiv",{"lazyCompile":true}),name:"keyword.control.simple.abap"},operators:{patterns:[{include:"#other_operator"},{include:"#arithmetic_operator"},{include:"#comparison_operator"},{include:"#logical_operator"}]},other_operator:{match:/(?<=\p{space})(&&|&|\?=|\+=|-=|\/=|\*=|&&=|&=)(?=\p{space})/dgv,name:"keyword.control.simple.abap"},reserved_names:{match:/(?<=\p{space})(me|super)(?=\p{space}|\.|,|->)/dgiv,name:"constant.language.abap"},sql_functions:{match:/(?<=\p{space})(abap_system_timezone|abap_user_timezone|abs|add_days|add_months|allow_precision_loss|as_geo_json|avg|bintohex|cast|ceil|coalesce|concat_with_space|concat|corr_spearman|corr|count|currency_conversion|datn_add_days|datn_add_months|datn_days_between|dats_add_days|dats_add_months|dats_days_between|dats_from_datn|dats_is_valid|dats_tims_to_tstmp|dats_to_datn|dayname|days_between|dense_rank|division|div|extract_day|extract_hour|extract_minute|extract_month|extract_second|extract_year|first_value|floor|grouping|hextobin|initcap|instr|is_valid|lag|last_value|lead|left|length|like_regexpr|locate_regexpr_after|locate_regexpr|locate|lower|lpad|ltrim|max|median|min|mod|monthname|ntile|occurrences_regexpr|over|product|rank|replace_regexpr|replace|rigth|round|row_number|rpad|rtrim|stddev|string_agg|substring_regexpr|substring|sum|tims_from_timn|tims_is_valid|tims_to_timn|to_blob|to_clob|tstmp_add_seconds|tstmp_current_utctimestamp|tstmp_is_valid|tstmp_seconds_between|tstmp_to_dats|tstmp_to_dst|tstmp_to_tims|tstmpl_from_utcl|tstmpl_to_utcl|unit_conversion|upper|utcl_add_seconds|utcl_current|utcl_seconds_between|uuid|var|weekday)(?=\()/dgiv,name:"entity.name.function.sql.abap"},sql_types:{match:/(?<=\p{space})(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\p{space}|\(|\))/dgiv,name:"entity.name.type.sql.abap"},system_fields:{captures:{"1":{name:"variable.language.abap"},"2":{name:"variable.language.abap"}},match:/\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\.|\p{space})/dgiv},text_symbols:{captures:{"1":{name:"keyword.control.simple.abap"},"2":{name:"constant.numeric.abap"}},match:/(?<=^|\p{space})(text)-([A-Z0-9]{1,3})(?=\p{space}|\.|:|,)/dgiv}},scopeName:"source.abap",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"ABAP",fileTypes:["abap","ABAP"],foldingStartMarker:/\/\*\*|\{\p{space}*(?=\n?$)/dgv,foldingStopMarker:/\*\*\/|^\p{space}*\}/dgv,name:"abap",patterns:[{captures:{"1":{name:"punctuation.definition.comment.abap"}},match:/^\*[^\n]*\n?/dgv,name:"comment.line.full.abap"},{captures:{"1":{name:"punctuation.definition.comment.abap"}},match:/"[^\n]*\n?/dgv,name:"comment.line.partial.abap"},{match:/(?<!\P{space})##[^\n]*?(?=([\.\:\,\p{space}]))/dgv,name:"comment.line.pragma.abap"},{match:/(?<=[\p{space}\~\-])(?<=(?:->|=>))([a-z_\/][a-z_0-9\/]*)(?=\p{space}+(?:=|\+=|-=|\*=|\/=|&&=|&=)\p{space}+)/dgiv,name:"variable.other.abap"},{match:/\b[0-9]+(\b|[\.\,])/dgv,name:"constant.numeric.abap"},{match:/(^|\p{space}+)((P(?:UBLIC|RIVATE|ROTECTED))\p{space}SECTION)(?=\p{space}+|[\:\.])/dgiv,name:"storage.modifier.class.abap"},{begin:/(?<!\\)(\|)([^\n]*?)/dgv,beginCaptures:{"1":{name:"constant.character.escape.abap"}},end:/(?<!\\)(\||(\\\\\|))/dgv,endCaptures:{"1":{name:"constant.character.escape.abap"}},name:"string.interpolated.abap",patterns:[{match:/(\{ )|( \})/dgv,name:"constant.character.escape"},{match:/\\\|/dgv,name:"constant.character.escape.abap"},{match:/(?<=\p{space})(align|alpha|case|country|currency|date|decimals|exponent|number|pad|sign|style|time|timestamp|timezone|width|xsd|zero)(?=\p{space}=)/dgiv,name:"entity.name.property.stringtemplate.abap"},{match:/(?<==\p{space})(center|engineering|environment|in|iso|left|leftplus|leftspace|lower|no|out|raw|right|rightplus|rightspace|scale_preserving|scale_preserving_scientific|scientific|scientific_with_leading_zero|sign_as_postfix|simple|space|upper|user|yes)(?=\p{space})/dgiv,name:"entity.value.property.stringtemplate.abap"}]},{begin:/'/dgv,end:/'/dgv,name:"string.quoted.single.abap",patterns:[{match:/''/dgv,name:"constant.character.escape.abap"}]},{begin:/`/dgv,end:/`/dgv,name:"string.quoted.single.abap",patterns:[{match:/``/dgv,name:"constant.character.escape.abap"}]},{begin:/^\p{space}*(class)\p{space}([a-z_\/][a-z_0-9\/]*)/dgiv,beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.block.abap"}},end:/\p{space}*\.\p{space}*\n?/dgv,name:"meta.block.begin.implementation.abap",patterns:[{match:/(^|\p{space}+)(definition|implementation|public|inheriting\p{space}+from|final|deferred|abstract|shared\p{space}+memory\p{space}+enabled|(global|local)*\p{space}*friends|(create\p{space}+(p(?:ublic|rotected|rivate)))|for\p{space}+behavior\p{space}+of|for\p{space}+testing|risk\p{space}+level\p{space}+(critical|dangerous|harmless))|duration\p{space}(short|medium|long)(?=\p{space}+|\.)/dgiv,name:"storage.modifier.class.abap"},{begin:/(?=[A-Za-z_][A-Za-z0-9_]*)/dgv,contentName:"entity.name.type.block.abap",end:/(?![A-Za-z0-9_])/dgv,patterns:[{include:"#generic_names"}]}]},{begin:/^\p{space}*(method)\p{space}(?:([a-z_\/][a-z_0-9\/]*)~)?([a-z_\/][a-z_0-9\/]*)/dgiv,beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.abap"},"3":{name:"entity.name.function.abap"}},end:/\p{space}*\.\p{space}*\n?/dgv,patterns:[{match:/(?<=^|\p{space})(BY(?:\p{space}+DATABASE(\p{space}+PROCEDURE|\p{space}+FUNCTION|\p{space}+GRAPH\p{space}+WORKSPACE)|\p{space}+KERNEL\p{space}+MODULE))(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"},{match:/(?<=^|\p{space})(FOR\p{space}+(HDB|LLANG))(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"},{match:/(?<=\p{space})(OPTIONS\p{space}+(READ-ONLY|DETERMINISTIC|SUPPRESS\p{space}+SYNTAX\p{space}+ERRORS))(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"},{match:/(?<=^|\p{space})(LANGUAGE\p{space}+(SQLSCRIPT|SQL|GRAPH))(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"},{captures:{"1":{name:"storage.modifier.method.abap"}},match:/(?<=\p{space})(USING)\p{space}+([a-z_\/][a-z_0-9\/\=\>]*)+(?=\p{space}+|\.)/dgiv},{begin:/(?=[A-Za-z_][A-Za-z0-9_]*)/dgv,end:/(?![A-Za-z0-9_])/dgv,patterns:[{include:"#generic_names"}]}]},{begin:/^\p{space}*(INTERFACE)\p{space}([a-z_\/][a-z_0-9\/]*)/dgiv,beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.abap"}},end:/\p{space}*\.\p{space}*\n?/dgv,patterns:[{match:/(?<=^|\p{space})(DEFERRED|PUBLIC)(?=\p{space}+|\.)/dgiv,name:"storage.modifier.method.abap"}]},{begin:/^\p{space}*(FORM)\p{space}([a-z_\/][a-z_0-9\/\-\?]*)/dgiv,beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.abap"}},end:/\p{space}*\.\p{space}*\n?/dgv,patterns:[{match:/(?<=^|\p{space})(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\p{space}+|\.)/dgiv,name:"storage.modifier.form.abap"},{include:"#abaptypes"},{include:"#keywords_followed_by_braces"}]},{match:/(end(?:class|method|form|interface))/dgiv,name:"storage.type.block.end.abap"},{match:/(<[A-Za-z_][A-Za-z0-9_]*>)/dgiv,name:"variable.other.field.symbol.abap"},{include:"#keywords"},{include:"#abap_constants"},{include:"#reserved_names"},{include:"#operators"},{include:"#builtin_functions"},{include:"#abaptypes"},{include:"#system_fields"},{include:"#sql_functions"},{include:"#sql_types"}],repository:{abap_constants:{match:/(?<=\p{space})(initial|null|@?space|@?abap_true|@?abap_false|@?abap_undefined|table_line|%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|adabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=[\p{space}\.\,])/dgiv,name:"constant.language.abap"},abaptypes:{patterns:[{match:/\p{space}(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|[cnipfdtx])(?=[\p{space}\.\,])/dgiv,name:"support.type.abap"},{match:/\p{space}(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=[\p{space}\.\,])/dgiv,name:"keyword.control.simple.abap"}]},arithmetic_operator:{match:/(?<=\p{space})([\+\-\*]|\*\*|[\/\%]|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\p{space})/dgiv,name:"keyword.control.simple.abap"},builtin_functions:{match:/(?<=\p{space})(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\()/dgiv,name:"entity.name.function.builtin.abap"},comparison_operator:{match:/(?<=\p{space})([\<\>]|<=|>=|=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|[ozm])(?=\p{space})/dgiv,name:"keyword.control.simple.abap"},control_keywords:{match:/(^|\p{space})(at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=[\p{space}\.\:])/dgiv,name:"keyword.control.flow.abap"},generic_names:{match:/[A-Za-z_][A-Za-z0-9_]*/dgv},keywords:{patterns:[{include:"#main_keywords"},{include:"#text_symbols"},{include:"#control_keywords"},{include:"#keywords_followed_by_braces"}]},keywords_followed_by_braces:{captures:{"1":{name:"keyword.control.simple.abap"},"2":{name:"variable.other.abap"}},match:/\b(data|value|field-symbol|final|reference|resumable)\((<?[a-z_\/][a-z_0-9\/]*>?)\)/dgiv},logical_operator:{match:/(?<=\p{space})(not|or|and)(?=\p{space})/dgiv,name:"keyword.control.simple.abap"},main_keywords:{match:/*@__PURE__*/ new EmulatedRegExp("(?<=^|\\p{space})(abap-source|abstract|accept|accepting|access|according|action|activation|actual|add|add-corresponding|adjacent|after|alias|aliases|all|allocate|amdp|analysis|analyzer|append|appending|application|archive|area|arithmetic|as|ascending|assert|assign|assigned|assigning|association|asynchronous|at|attributes|authority|authority-check|authorization|auto|back|background|backward|badi|base|before|begin|behavior|between|binary|bit|blank|blanks|block|blocks|bound|boundaries|bounds|boxed|break|break-point|buffer|by|bypassing|byte|byte-order|call|calling|cast|casting|cds|centered|change|changing|channels|char-to-hex|character|check|checkbox|cid|circular|class|class-data|class-events|class-method|class-methods|class-pool|cleanup|clear|client|clients|clock|clone|close|cnt|code|collect|color|column|comment|comments|commit|common|communication|comparing|component|components|compression|compute|concatenate|cond|condense|condition|connection|constant|constants|context|contexts|control|controls|conv|conversion|convert|copy|corresponding|count|country|cover|create|currency|current|cursor|customer-function|data|database|datainfo|dataset|date|daylight|ddl|deallocate|decimals|declarations|deep|default|deferred|define|delete|deleting|demand|descending|describe|destination|detail|determine|dialog|did|directory|discarding|display|display-mode|distance|distinct|divide|divide-corresponding|dummy|duplicate|duplicates|duration|during|dynpro|edit|editor-call|empty|enabled|enabling|encoding|end|end-enhancement-section|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|endenhancement|endexec|endfunction|endian|ending|endmodule|endprovide|endselect|endwith|enhancement|enhancement-point|enhancement-section|enhancements|entities|entity|entries|entry|enum|equiv|errors|escape|escaping|event|events|exact|except|exception|exception-table|exceptions|excluding|exec|execute|exists|exit|exit-command|expanding|explicit|exponent|export|exporting|extended|extension|extract|fail|failed|features|fetch|field|field-groups|field-symbols|fields|file|fill|filter|filters|final|find|first|first-line|fixed-point|flush|following|for|format|forward|found|frame|frames|free|from|full|function|function-pool|generate|get|giving|graph|group|groups|handle|handler|hashed|having|header|headers|heading|help-id|help-request|hide|hint|hold|hotspot|icon|id|identification|identifier|ignore|ignoring|immediately|implemented|implicit|import|importing|in|inactive|incl|include|includes|including|increment|index|index-line|indicators|infotypes|inheriting|init|initial|initialization|inner|input|insert|instance|instances|intensified|interface|interface-pool|interfaces|internal|intervals|into|inverse|inverted-date|is|job|join|keep|keeping|kernel|key|keys|keywords|kind|language|last|late|layout|leading|leave|left|left-justified|legacy|length|let|level|levels|like|line|line-count|line-selection|line-size|linefeed|lines|link|list|list-processing|listbox|load|load-of-program|local|locale|lock|locks|log-point|logical|lower|mapped|mapping|margin|mark|mask|match|matchcode|maximum|members|memory|mesh|message|message-id|messages|messaging|method|methods|mode|modif|modifier|modify|module|move|move-corresponding|multiply|multiply-corresponding|name|nametab|native|nested|nesting|new|new-line|new-page|new-section|next|no-display|no-extension|no-gap|no-gaps|no-grouping|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unicode|non-unique|number|object|objects|objmgr|obligatory|occurence|occurences|occurrence|occurrences|occurs|of|offset|on|only|open|optional|option|options|order|others|out|outer|output|output-length|overflow|overlay|pack|package|padding|page|parameter|parameter-table|parameters|part|partially|pcre|perform|performing|permissions|pf-status|places|pool|position|pragmas|preceding|precompiled|preferred|preserving|primary|print|print-control|private|privileged|procedure|process|program|property|protected|provide|push|pushbutton|put|query|queue-only|queueonly|quickinfo|radiobutton|raising|range|ranges|read|read-only|receive|received|receiving|redefinition|reduce|ref|reference|refresh|regex|reject|renaming|replace|replacement|replacing|report|reported|request|requested|required|reserve|reset|resolution|respecting|response|restore|result|results|resumable|resume|retry|return|returning|right|right-justified|rollback|rows|rp-provide-from-last|run|sap|sap-spool|save|saving|scan|screen|scroll|scroll-boundary|scrolling|search|seconds|section|select|select-options|selection|selection-screen|selection-set|selection-sets|selection-table|selections|send|separate|separated|session|set|shared|shift|shortdump|shortdump-id|sign|simple|simulation|single|size|skip|skipping|smart|some|sort|sortable|sorted|source|specified|split|spool|spots|sql|stable|stamp|standard|start-of-selection|starting|state|statement|statements|static|statics|statusinfo|step|step-loop|stop|structure|structures|style|subkey|submatches|submit|subroutine|subscreen|substring|subtract|subtract-corresponding|suffix|sum|summary|supplied|supply|suppress|switch|symbol|syntax-check|syntax-trace|system-call|system-exceptions|tab|tabbed|table|tables|tableview|tabstrip|target|task|tasks|test|test-injection|test-seam|testing|text|textpool|then|throw|time|times|title|titlebar|to|tokens|top-lines|top-of-page|trace-file|trace-table|trailing|transaction|transfer|transformation|translate|transporting|trmac|truncate|truncation|type|type-pool|type-pools|types|uline|unassign|unbounded|under|unicode|union|unique|unit|unix|unpack|until|unwind|up|update|upper|user|user-command|using|utf-8|uuid|valid|validate|value|value-request|values|vary|varying|version|via|visible|wait|when|where|window|windows|with|with-heading|with-title|without|word|work|workspace|write|xml|zone)(?=[\\p{space}\\.\\:\\,])","dgiv",{"lazyCompile":true}),name:"keyword.control.simple.abap"},operators:{patterns:[{include:"#other_operator"},{include:"#arithmetic_operator"},{include:"#comparison_operator"},{include:"#logical_operator"}]},other_operator:{match:/(?<=\p{space})(&&|&|\?=|\+=|-=|\/=|\*=|&&=|&=)(?=\p{space})/dgv,name:"keyword.control.simple.abap"},reserved_names:{match:/(?<=\p{space})(me|super)(?=[\p{space}\.\,]|->)/dgiv,name:"constant.language.abap"},sql_functions:{match:/(?<=\p{space})(abap_system_timezone|abap_user_timezone|abs|add_days|add_months|allow_precision_loss|as_geo_json|avg|bintohex|cast|ceil|coalesce|concat_with_space|concat|corr_spearman|corr|count|currency_conversion|datn_add_days|datn_add_months|datn_days_between|dats_add_days|dats_add_months|dats_days_between|dats_from_datn|dats_is_valid|dats_tims_to_tstmp|dats_to_datn|dayname|days_between|dense_rank|division|div|extract_day|extract_hour|extract_minute|extract_month|extract_second|extract_year|first_value|floor|grouping|hextobin|initcap|instr|is_valid|lag|last_value|lead|left|length|like_regexpr|locate_regexpr_after|locate_regexpr|locate|lower|lpad|ltrim|max|median|min|mod|monthname|ntile|occurrences_regexpr|over|product|rank|replace_regexpr|replace|rigth|round|row_number|rpad|rtrim|stddev|string_agg|substring_regexpr|substring|sum|tims_from_timn|tims_is_valid|tims_to_timn|to_blob|to_clob|tstmp_add_seconds|tstmp_current_utctimestamp|tstmp_is_valid|tstmp_seconds_between|tstmp_to_dats|tstmp_to_dst|tstmp_to_tims|tstmpl_from_utcl|tstmpl_to_utcl|unit_conversion|upper|utcl_add_seconds|utcl_current|utcl_seconds_between|uuid|var|weekday)(?=\()/dgiv,name:"entity.name.function.sql.abap"},sql_types:{match:/(?<=\p{space})(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=[\p{space}\(\)])/dgiv,name:"entity.name.type.sql.abap"},system_fields:{captures:{"1":{name:"variable.language.abap"},"2":{name:"variable.language.abap"}},match:/\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=[\.\p{space}])/dgiv},text_symbols:{captures:{"1":{name:"keyword.control.simple.abap"},"2":{name:"constant.numeric.abap"}},match:/(?<=^|\p{space})(text)-([A-Z0-9]{1,3})(?=[\p{space}\.\:\,])/dgiv}},scopeName:"source.abap",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"ActionScript",fileTypes:["as"],name:"actionscript-3",patterns:[{include:"#comments"},{include:"#package"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"},{include:"#import"},{include:"#mxml"},{include:"#strings"},{include:"#regexp"},{include:"#variable_declaration"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#logical_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#control_keywords"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#functions"}],repository:{arithmetic_operators:{match:/(\+|-|\/|%|(?<!:)\*)/dgv,name:"keyword.operator.actionscript.3"},array_access_operators:{match:/(\[|\])/dgv,name:"keyword.operator.actionscript.3"},class:{begin:/(^|\p{space}+|;)(\b(dynamic|final|abstract)\b\p{space}+)?(\b(internal|public)\b\p{space}+)?(\b(dynamic|final|abstract)\b\p{space}+)?(?=\bclass\b)/dgv,beginCaptures:{"3":{name:"storage.modifier.actionscript.3"},"5":{name:"storage.modifier.actionscript.3"},"7":{name:"storage.modifier.actionscript.3"}},end:/\}/dgv,name:"meta.class.actionscript.3",patterns:[{include:"#class_declaration"},{include:"#metadata"},{include:"#method"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#other_operators"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#arithmetic_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#variable_declaration"},{include:"#object_literal"}]},class_declaration:{begin:/\b(class)\b\p{space}+([\.\p{L}\p{M}\p{N}\p{Pc}]+|\*)/dgv,beginCaptures:{"1":{name:"storage.type.class.actionscript.3"},"2":{name:"entity.name.class.actionscript.3"}},end:/\{/dgv,name:"meta.class_declaration.actionscript.3",patterns:[{include:"#extends"},{include:"#implements"},{include:"#comments"}]},code_block:{begin:/\{/dgv,end:/\}/dgv,name:"meta.code_block.actionscript.3",patterns:[{include:"#code_block"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#variable_declaration"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#logical_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#control_keywords"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#functions"},{include:"#import"}]},comments:{patterns:[{begin:/\/\*\*(?!\/)/dgv,end:/\*\//dgv,name:"comment.block.documentation.actionscript.3",patterns:[{match:/@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\b/dgv,name:"keyword.other.documentation.actionscript.3.asdoc"}]},{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block.actionscript.3"},{match:/\/\/[^\n]*/dgv,name:"comment.line.actionscript.3"}]},control_keywords:{match:/\b(if|else|do|while|for|each|continue|return|switch|case|default|break|try|catch|finally|throw|with)\b/dgv,name:"keyword.control.actionscript.3"},dynamic_type:{captures:{"1":{name:"support.type.actionscript.3"}},match:/(?<=:)\p{space}*(\*)/dgv},escapes:{match:/\\(x\p{AHex}{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|[^\n])/dgv,name:"constant.character.escape.actionscript.3"},extends:{captures:{"1":{name:"keyword.other.actionscript.3"},"2":{name:"entity.other.inherited-class.actionscript.3"},"3":{name:"entity.other.inherited-class.actionscript.3"}},match:/\b(extends)\b\p{space}+([\.\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}*(?:,\p{space}*([\.\p{L}\p{M}\p{N}\p{Pc}]+))*\p{space}*/dgv,name:"meta.extends.actionscript.3"},function_arguments:{begin:/\(/dgv,end:/\)/dgv,name:"meta.function_arguments.actionscript.3",patterns:[{include:"#parameters"},{include:"#comments"}]},functions:{begin:/\b(function)\b(?:\p{space}+\b(get|set)\b\p{space}+)?\p{space}*([a-zA-Z0-9_\$]+\b)?/dgv,beginCaptures:{"1":{name:"storage.type.function.actionscript.3"},"2":{name:"storage.modifier.actionscript.3"},"3":{name:"entity.name.function.actionscript.3"}},end:/((?=\n?$)|;|(?=\{))/dgv,name:"meta.function.actionscript.3",patterns:[{include:"#function_arguments"},{include:"#return_type"},{include:"#comments"}]},guess_constant:{captures:{"1":{name:"constant.other.actionscript.3"}},match:/\b([A-Z\$][A-Z0-9_]+)\b/dgv},guess_type:{captures:{"1":{name:"support.type.actionscript.3"}},match:/\b((?:[A-Za-z0-9_\$]+\.)*[A-Z][A-Z0-9]*[a-z]+[A-Za-z0-9_\$]*)\b/dgv},implements:{captures:{"1":{name:"keyword.other.actionscript.3"},"2":{name:"entity.other.inherited-class.actionscript.3"},"3":{name:"entity.other.inherited-class.actionscript.3"}},match:/\b(implements)\b\p{space}+([\.\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}*(?:,\p{space}*([\.\p{L}\p{M}\p{N}\p{Pc}]+))*\p{space}*/dgv,name:"meta.implements.actionscript.3"},import:{captures:{"2":{name:"keyword.control.import.actionscript.3"},"3":{name:"support.type.actionscript.3"}},match:/(^|\p{space}+|;)\b(import)\b\p{space}+([A-Za-z0-9\$_\.]+(?:\.\*)?)\p{space}*(?=;|(?=\n?$))/dgv,name:"meta.import.actionscript.3"},interface:{begin:/(^|\p{space}+|;)(\b(internal|public)\b\p{space}+)?(?=\binterface\b)/dgv,beginCaptures:{"3":{name:"storage.modifier.actionscript.3"}},end:/\}/dgv,name:"meta.interface.actionscript.3",patterns:[{include:"#interface_declaration"},{include:"#metadata"},{include:"#functions"},{include:"#comments"}]},interface_declaration:{begin:/\b(interface)\b\p{space}+([\.\p{L}\p{M}\p{N}\p{Pc}]+)/dgv,beginCaptures:{"1":{name:"storage.type.interface.actionscript.3"},"2":{name:"entity.name.class.actionscript.3"}},end:/\{/dgv,name:"meta.class_declaration.actionscript.3",patterns:[{include:"#extends"},{include:"#comments"}]},language_constants:{match:/\b(true|false|null|Infinity|-Infinity|NaN|undefined)\b/dgv,name:"constant.language.actionscript.3"},language_variables:{match:/\b(super|this|arguments)\b/dgv,name:"variable.language.actionscript.3"},logical_operators:{match:/(&|<|~|\||>|\^|!|\?)/dgv,name:"keyword.operator.actionscript.3"},metadata:{begin:/\[\p{space}*\b([\p{L}\p{M}\p{N}\p{Pc}]+)\b/dgv,beginCaptures:{"1":{name:"keyword.other.actionscript.3"}},end:/\]/dgv,name:"meta.metadata_info.actionscript.3",patterns:[{include:"#metadata_info"}]},metadata_info:{begin:/\(/dgv,end:/\)/dgv,patterns:[{include:"#strings"},{captures:{"1":{name:"variable.parameter.actionscript.3"},"2":{name:"keyword.operator.actionscript.3"}},match:/([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}*(=)/dgv}]},method:{begin:/(^|\p{space}+)(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(?=\bfunction\b)/dgv,beginCaptures:{"3":{name:"storage.modifier.actionscript.3"},"5":{name:"storage.modifier.actionscript.3"},"7":{name:"storage.modifier.actionscript.3"},"8":{name:"storage.modifier.actionscript.3"}},end:/(?<=(;|\}))/dgv,name:"meta.method.actionscript.3",patterns:[{include:"#functions"},{include:"#code_block"}]},mxml:{begin:/<!\[CDATA\[/dgv,end:/\]\]>/dgv,name:"meta.cdata.actionscript.3",patterns:[{include:"#comments"},{include:"#import"},{include:"#metadata"},{include:"#class"},{include:"#namespace_declaration"},{include:"#use_namespace"},{include:"#class_declaration"},{include:"#method"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#other_keywords"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#variable_declaration"}]},namespace_declaration:{captures:{"2":{name:"storage.modifier.actionscript.3"},"3":{name:"storage.modifier.actionscript.3"}},match:/(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(namespace)\p{space}+[A-Za-z0-9_\$]+/dgv,name:"meta.namespace_declaration.actionscript.3"},numbers:{match:/\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b/dgv,name:"constant.numeric.actionscript.3"},object_literal:{begin:/\{/dgv,end:/\}/dgv,name:"meta.object_literal.actionscript.3",patterns:[{include:"#object_literal"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#functions"}]},other_keywords:{match:/\b(as|delete|in|instanceof|is|native|new|to|typeof)\b/dgv,name:"keyword.other.actionscript.3"},other_operators:{match:/(\.|=)/dgv,name:"keyword.operator.actionscript.3"},package:{begin:/(^|\p{space}+)(package)\b/dgv,beginCaptures:{"2":{name:"keyword.other.actionscript.3"}},end:/\}/dgv,name:"meta.package.actionscript.3",patterns:[{include:"#package_name"},{include:"#variable_declaration"},{include:"#method"},{include:"#comments"},{include:"#return_type"},{include:"#import"},{include:"#use_namespace"},{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#metadata"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"}]},package_name:{begin:/(?<=package)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\._]*)\b/dgv,end:/\{/dgv,name:"meta.package_name.actionscript.3"},parameters:{begin:/(\.\.\.)?\p{space}*([A-Za-z_\$][A-Za-z0-9_\$]*)(?:\p{space}*(:)\p{space}*(?:([A-Za-z\$][A-Za-z0-9_\$]+(?:\.[A-Za-z\$][A-Za-z0-9_\$]+)*)(?:\.<([A-Za-z\$][A-Za-z0-9_\$]+(?:\.[A-Za-z\$][A-Za-z0-9_\$]+)*)>)?|(\*)))?(?:\p{space}*(=))?/dgv,beginCaptures:{"1":{name:"keyword.operator.actionscript.3"},"2":{name:"variable.parameter.actionscript.3"},"3":{name:"keyword.operator.actionscript.3"},"4":{name:"support.type.actionscript.3"},"5":{name:"support.type.actionscript.3"},"6":{name:"support.type.actionscript.3"},"7":{name:"keyword.operator.actionscript.3"}},end:/,|(?=\))/dgv,patterns:[{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#comments"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#guess_type"},{include:"#guess_constant"}]},primitive_error_types:{captures:{"1":{name:"support.class.error.actionscript.3"}},match:/\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\b/dgv},primitive_functions:{captures:{"1":{name:"support.function.actionscript.3"}},match:/\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\p{space}*\()/dgv},primitive_types:{captures:{"1":{name:"support.class.builtin.actionscript.3"}},match:/\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\*(?<=a))\b/dgv},regexp:{begin:/(?<=[\=\(\:\,\[]|^|return|&&|\|\||!)\p{space}*(\/)(?![\/\*\+\{\}\?])/dgv,end:/(?=\n?$)|(\/)[igm]*/dgv,name:"string.regex.actionscript.3",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.actionscript.3"},{match:/\[(\\\]|[^\]])*\]/dgv,name:"constant.character.class.actionscript.3"}]},return_type:{captures:{"1":{name:"keyword.operator.actionscript.3"},"2":{name:"support.type.actionscript.3"},"3":{name:"support.type.actionscript.3"},"4":{name:"support.type.actionscript.3"}},match:/(:)\p{space}*([A-Za-z\$][A-Za-z0-9_\$]+(?:\.[A-Za-z\$][A-Za-z0-9_\$]+)*)(?:\.<([A-Za-z\$][A-Za-z0-9_\$]+(?:\.[A-Za-z\$][A-Za-z0-9_\$]+)*)>)?|(\*)/dgv},strings:{patterns:[{begin:/@"/dgv,end:/"/dgv,name:"string.quoted.verbatim.actionscript.3"},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.actionscript.3",patterns:[{include:"#escapes"}]},{begin:/'/dgv,end:/'/dgv,name:"string.quoted.single.actionscript.3",patterns:[{include:"#escapes"}]}]},use_namespace:{captures:{"2":{name:"keyword.other.actionscript.3"},"3":{name:"keyword.other.actionscript.3"},"4":{name:"storage.modifier.actionscript.3"}},match:/(^|\p{space}+|;)(use\p{space}+)?(namespace)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}*(;|(?=\n?$))/dgv},variable_declaration:{captures:{"2":{name:"storage.modifier.actionscript.3"},"4":{name:"storage.modifier.actionscript.3"},"6":{name:"storage.modifier.actionscript.3"},"7":{name:"storage.modifier.actionscript.3"},"8":{name:"keyword.operator.actionscript.3"}},match:/((static)\p{space}+)?(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?((static)\p{space}+)?(const|var)\p{space}+[A-Za-z0-9_\$]+(?:\p{space}*(:))?/dgv,name:"meta.variable_declaration.actionscript.3"},vector_creation_operators:{match:/(<|>)/dgv,name:"keyword.operator.actionscript.3"}},scopeName:"source.actionscript.3",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"ActionScript",fileTypes:["as"],name:"actionscript-3",patterns:[{include:"#comments"},{include:"#package"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"},{include:"#import"},{include:"#mxml"},{include:"#strings"},{include:"#regexp"},{include:"#variable_declaration"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#logical_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#control_keywords"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#functions"}],repository:{arithmetic_operators:{match:/([\+\-\/\%]|(?<!:)\*)/dgv,name:"keyword.operator.actionscript.3"},array_access_operators:{match:/([\[\]])/dgv,name:"keyword.operator.actionscript.3"},class:{begin:/(^|\p{space}+|;)(\b(dynamic|final|abstract)\b\p{space}+)?(\b(internal|public)\b\p{space}+)?(\b(dynamic|final|abstract)\b\p{space}+)?(?=\bclass\b)/dgv,beginCaptures:{"3":{name:"storage.modifier.actionscript.3"},"5":{name:"storage.modifier.actionscript.3"},"7":{name:"storage.modifier.actionscript.3"}},end:/\}/dgv,name:"meta.class.actionscript.3",patterns:[{include:"#class_declaration"},{include:"#metadata"},{include:"#method"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#other_operators"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#arithmetic_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#variable_declaration"},{include:"#object_literal"}]},class_declaration:{begin:/\b(class)\b\p{space}+([A-Za-z0-9_\$\.]+|\*)/dgv,beginCaptures:{"1":{name:"storage.type.class.actionscript.3"},"2":{name:"entity.name.class.actionscript.3"}},end:/\{/dgv,name:"meta.class_declaration.actionscript.3",patterns:[{include:"#extends"},{include:"#implements"},{include:"#comments"}]},code_block:{begin:/\{/dgv,end:/\}/dgv,name:"meta.code_block.actionscript.3",patterns:[{include:"#code_block"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#variable_declaration"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#logical_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#control_keywords"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#functions"},{include:"#import"}]},comments:{patterns:[{begin:/\/\*\*(?!\/)/dgv,end:/\*\//dgv,name:"comment.block.documentation.actionscript.3",patterns:[{match:/@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\b/dgv,name:"keyword.other.documentation.actionscript.3.asdoc"}]},{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block.actionscript.3"},{match:/\/\/[^\n]*/dgv,name:"comment.line.actionscript.3"}]},control_keywords:{match:/\b(if|else|do|while|for|each|continue|return|switch|case|default|break|try|catch|finally|throw|with)\b/dgv,name:"keyword.control.actionscript.3"},dynamic_type:{captures:{"1":{name:"support.type.actionscript.3"}},match:/(?<=:)\p{space}*(\*)/dgv},escapes:{match:/\\(x\p{AHex}{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|[^\n])/dgv,name:"constant.character.escape.actionscript.3"},extends:{captures:{"1":{name:"keyword.other.actionscript.3"},"2":{name:"entity.other.inherited-class.actionscript.3"},"3":{name:"entity.other.inherited-class.actionscript.3"}},match:/\b(extends)\b\p{space}+([A-Za-z0-9_\$\.]+)\p{space}*(?:,\p{space}*([A-Za-z0-9_\$\.]+))*\p{space}*/dgv,name:"meta.extends.actionscript.3"},function_arguments:{begin:/\(/dgv,end:/\)/dgv,name:"meta.function_arguments.actionscript.3",patterns:[{include:"#parameters"},{include:"#comments"}]},functions:{begin:/\b(function)\b(?:\p{space}+\b(get|set)\b\p{space}+)?\p{space}*([a-zA-Z0-9_\$]+\b)?/dgv,beginCaptures:{"1":{name:"storage.type.function.actionscript.3"},"2":{name:"storage.modifier.actionscript.3"},"3":{name:"entity.name.function.actionscript.3"}},end:/((?=\n?$)|;|(?=\{))/dgv,name:"meta.function.actionscript.3",patterns:[{include:"#function_arguments"},{include:"#return_type"},{include:"#comments"}]},guess_constant:{captures:{"1":{name:"constant.other.actionscript.3"}},match:/\b([A-Z\$][A-Z0-9_]+)\b/dgv},guess_type:{captures:{"1":{name:"support.type.actionscript.3"}},match:/\b((?:[A-Za-z0-9_\$]+\.)*[A-Z][A-Z0-9]*[a-z]+[A-Za-z0-9_\$]*)\b/dgv},implements:{captures:{"1":{name:"keyword.other.actionscript.3"},"2":{name:"entity.other.inherited-class.actionscript.3"},"3":{name:"entity.other.inherited-class.actionscript.3"}},match:/\b(implements)\b\p{space}+([A-Za-z0-9_\$\.]+)\p{space}*(?:,\p{space}*([A-Za-z0-9_\$\.]+))*\p{space}*/dgv,name:"meta.implements.actionscript.3"},import:{captures:{"2":{name:"keyword.control.import.actionscript.3"},"3":{name:"support.type.actionscript.3"}},match:/(^|\p{space}+|;)\b(import)\b\p{space}+([A-Za-z0-9\$_\.]+(?:\.\*)?)\p{space}*(?=;|(?=\n?$))/dgv,name:"meta.import.actionscript.3"},interface:{begin:/(^|\p{space}+|;)(\b(internal|public)\b\p{space}+)?(?=\binterface\b)/dgv,beginCaptures:{"3":{name:"storage.modifier.actionscript.3"}},end:/\}/dgv,name:"meta.interface.actionscript.3",patterns:[{include:"#interface_declaration"},{include:"#metadata"},{include:"#functions"},{include:"#comments"}]},interface_declaration:{begin:/\b(interface)\b\p{space}+([A-Za-z0-9_\$\.]+)/dgv,beginCaptures:{"1":{name:"storage.type.interface.actionscript.3"},"2":{name:"entity.name.class.actionscript.3"}},end:/\{/dgv,name:"meta.class_declaration.actionscript.3",patterns:[{include:"#extends"},{include:"#comments"}]},language_constants:{match:/\b(true|false|null|Infinity|-Infinity|NaN|undefined)\b/dgv,name:"constant.language.actionscript.3"},language_variables:{match:/\b(super|this|arguments)\b/dgv,name:"variable.language.actionscript.3"},logical_operators:{match:/([\&\<\~\|\>\^\!\?])/dgv,name:"keyword.operator.actionscript.3"},metadata:{begin:/\[\p{space}*\b([\p{L}\p{M}\p{N}\p{Pc}]+)\b/dgv,beginCaptures:{"1":{name:"keyword.other.actionscript.3"}},end:/\]/dgv,name:"meta.metadata_info.actionscript.3",patterns:[{include:"#metadata_info"}]},metadata_info:{begin:/\(/dgv,end:/\)/dgv,patterns:[{include:"#strings"},{captures:{"1":{name:"variable.parameter.actionscript.3"},"2":{name:"keyword.operator.actionscript.3"}},match:/([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}*(=)/dgv}]},method:{begin:/(^|\p{space}+)(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(?=\bfunction\b)/dgv,beginCaptures:{"3":{name:"storage.modifier.actionscript.3"},"5":{name:"storage.modifier.actionscript.3"},"7":{name:"storage.modifier.actionscript.3"},"8":{name:"storage.modifier.actionscript.3"}},end:/(?<=([\;\}]))/dgv,name:"meta.method.actionscript.3",patterns:[{include:"#functions"},{include:"#code_block"}]},mxml:{begin:/<!\[CDATA\[/dgv,end:/\]\]>/dgv,name:"meta.cdata.actionscript.3",patterns:[{include:"#comments"},{include:"#import"},{include:"#metadata"},{include:"#class"},{include:"#namespace_declaration"},{include:"#use_namespace"},{include:"#class_declaration"},{include:"#method"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#other_keywords"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#variable_declaration"}]},namespace_declaration:{captures:{"2":{name:"storage.modifier.actionscript.3"},"3":{name:"storage.modifier.actionscript.3"}},match:/(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?(namespace)\p{space}+[A-Za-z0-9_\$]+/dgv,name:"meta.namespace_declaration.actionscript.3"},numbers:{match:/\b((0([xX])\p{AHex}*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))(([eE])([\+\-])?[0-9]+)?)([Ll]|UL|ul|[uUFf])?\b/dgv,name:"constant.numeric.actionscript.3"},object_literal:{begin:/\{/dgv,end:/\}/dgv,name:"meta.object_literal.actionscript.3",patterns:[{include:"#object_literal"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#functions"}]},other_keywords:{match:/\b(as|delete|in|instanceof|is|native|new|to|typeof)\b/dgv,name:"keyword.other.actionscript.3"},other_operators:{match:/([\.\=])/dgv,name:"keyword.operator.actionscript.3"},package:{begin:/(^|\p{space}+)(package)\b/dgv,beginCaptures:{"2":{name:"keyword.other.actionscript.3"}},end:/\}/dgv,name:"meta.package.actionscript.3",patterns:[{include:"#package_name"},{include:"#variable_declaration"},{include:"#method"},{include:"#comments"},{include:"#return_type"},{include:"#import"},{include:"#use_namespace"},{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#metadata"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"}]},package_name:{begin:/(?<=package)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\._]*)\b/dgv,end:/\{/dgv,name:"meta.package_name.actionscript.3"},parameters:{begin:/(\.\.\.)?\p{space}*([A-Za-z_\$][A-Za-z0-9_\$]*)(?:\p{space}*(:)\p{space}*(?:([A-Za-z\$][A-Za-z0-9_\$]+(?:\.[A-Za-z\$][A-Za-z0-9_\$]+)*)(?:\.<([A-Za-z\$][A-Za-z0-9_\$]+(?:\.[A-Za-z\$][A-Za-z0-9_\$]+)*)>)?|(\*)))?(?:\p{space}*(=))?/dgv,beginCaptures:{"1":{name:"keyword.operator.actionscript.3"},"2":{name:"variable.parameter.actionscript.3"},"3":{name:"keyword.operator.actionscript.3"},"4":{name:"support.type.actionscript.3"},"5":{name:"support.type.actionscript.3"},"6":{name:"support.type.actionscript.3"},"7":{name:"keyword.operator.actionscript.3"}},end:/,|(?=\))/dgv,patterns:[{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#comments"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#guess_type"},{include:"#guess_constant"}]},primitive_error_types:{captures:{"1":{name:"support.class.error.actionscript.3"}},match:/\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\b/dgv},primitive_functions:{captures:{"1":{name:"support.function.actionscript.3"}},match:/\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\p{space}*\()/dgv},primitive_types:{captures:{"1":{name:"support.class.builtin.actionscript.3"}},match:/\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\*(?<=a))\b/dgv},regexp:{begin:/(?<=[\=\(\:\,\[]|^|return|&&|\|\||!)\p{space}*(\/)(?![\/\*\+\{\}\?])/dgv,end:/(?=\n?$)|(\/)[igm]*/dgv,name:"string.regex.actionscript.3",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.actionscript.3"},{match:/\[(\\\]|[^\]])*\]/dgv,name:"constant.character.class.actionscript.3"}]},return_type:{captures:{"1":{name:"keyword.operator.actionscript.3"},"2":{name:"support.type.actionscript.3"},"3":{name:"support.type.actionscript.3"},"4":{name:"support.type.actionscript.3"}},match:/(:)\p{space}*([A-Za-z\$][A-Za-z0-9_\$]+(?:\.[A-Za-z\$][A-Za-z0-9_\$]+)*)(?:\.<([A-Za-z\$][A-Za-z0-9_\$]+(?:\.[A-Za-z\$][A-Za-z0-9_\$]+)*)>)?|(\*)/dgv},strings:{patterns:[{begin:/@"/dgv,end:/"/dgv,name:"string.quoted.verbatim.actionscript.3"},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.actionscript.3",patterns:[{include:"#escapes"}]},{begin:/'/dgv,end:/'/dgv,name:"string.quoted.single.actionscript.3",patterns:[{include:"#escapes"}]}]},use_namespace:{captures:{"2":{name:"keyword.other.actionscript.3"},"3":{name:"keyword.other.actionscript.3"},"4":{name:"storage.modifier.actionscript.3"}},match:/(^|\p{space}+|;)(use\p{space}+)?(namespace)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}*(;|(?=\n?$))/dgv},variable_declaration:{captures:{"2":{name:"storage.modifier.actionscript.3"},"4":{name:"storage.modifier.actionscript.3"},"6":{name:"storage.modifier.actionscript.3"},"7":{name:"storage.modifier.actionscript.3"},"8":{name:"keyword.operator.actionscript.3"}},match:/((static)\p{space}+)?(([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+)?((static)\p{space}+)?(const|var)\p{space}+[A-Za-z0-9_\$]+(?:\p{space}*(:))?/dgv,name:"meta.variable_declaration.actionscript.3"},vector_creation_operators:{match:/([\<\>])/dgv,name:"keyword.operator.actionscript.3"}},scopeName:"source.actionscript.3",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
package/dist/ada.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"Ada",name:"ada",patterns:[{include:"#library_unit"},{include:"#comment"},{include:"#use_clause"},{include:"#with_clause"},{include:"#pragma"},{include:"#keyword"}],repository:{abort_statement:{begin:/\babort\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.abort.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+\b/dgv,name:"entity.name.task.ada"}]},accept_statement:{begin:/\b(accept)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"entity.name.accept.ada"}},end:/(?:\b(end)\p{space}*(\p{space}(?!))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"entity.name.accept.ada"},"3":{name:"punctuation.ada"}},name:"meta.statement.accept.ada",patterns:[{begin:/\bdo\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#statement"}]},{include:"#parameter_profile"}]},access_definition:{captures:{"1":{name:"storage.visibility.ada"},"2":{name:"storage.visibility.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"entity.name.type.ada"}},match:/(not\p{space}+null\p{space}+)?(access)\p{space}+(constant\p{space}+)?((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv,name:"meta.declaration.access.definition.ada"},access_type_definition:{begin:/\b(not\p{space}+null\p{space}+)?(access)\b/dgiv,beginCaptures:{"1":{name:"storage.visibility.ada"},"2":{name:"storage.visibility.ada"}},end:/(?=(with|;))/dgiv,name:"meta.declaration.type.definition.access.ada",patterns:[{match:/\ball\b/dgiv,name:"storage.visibility.ada"},{match:/\bconstant\b/dgiv,name:"storage.modifier.ada"},{include:"#subtype_mark"}]},actual_parameter_part:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#parameter_association"}]},adding_operator:{match:/(\+|-|&)/dgv,name:"keyword.operator.adding.ada"},array_aggregate:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,name:"meta.definition.array.aggregate.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#positional_array_aggregate"},{include:"#array_component_association"}]},array_component_association:{captures:{"1":{name:"variable.name.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{include:"#expression"}]}},match:/\b([^\(\=\>\)]*)\p{space}*(=>)\p{space}*([^\,\)]+)/dgv,name:"meta.definition.array.aggregate.component.ada"},array_dimensions:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,name:"meta.declaration.type.definition.array.dimensions.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\brange\b/dgiv,name:"storage.modifier.ada"},{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{match:/\.\./dgv,name:"keyword.ada"},{include:"#expression"},{patterns:[{include:"#subtype_mark"}]}]},array_type_definition:{begin:/\barray\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/(?=(with|;))/dgiv,name:"meta.declaration.type.definition.array.ada",patterns:[{include:"#array_dimensions"},{match:/\bof\b/dgiv,name:"storage.modifier.ada"},{match:/\baliased\b/dgiv,name:"storage.visibility.ada"},{include:"#access_definition"},{include:"#subtype_mark"}]},aspect_clause:{begin:/\b(for)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#subtype_mark"}]},"3":{name:"punctuation.ada"},"5":{name:"keyword.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.aspect.clause.ada",patterns:[{begin:/\buse\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=;)/dgv,endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#record_representation_clause"},{include:"#array_aggregate"},{include:"#expression"}]},{begin:/(?<=for)/dgiv,captures:{"0":{name:"keyword.ada"}},end:/(?=use)/dgiv,patterns:[{captures:{"1":{patterns:[{include:"#subtype_mark"}]},"2":{patterns:[{include:"#attribute"}]}},match:/((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)('((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+))?/dgv}]}]},aspect_definition:{begin:/=>/dgv,beginCaptures:{"0":{name:"keyword.other.ada"}},end:/(?=(,|;|\bis\b))/dgiv,name:"meta.aspect.definition.ada",patterns:[{include:"#expression"}]},aspect_mark:{captures:{"1":{name:"keyword.control.directive.ada"},"2":{name:"punctuation.ada"},"3":{name:"entity.other.attribute-name.ada"}},match:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)(?:(')(class))?\b/dgiv,name:"meta.aspect.mark.ada"},aspect_specification:{begin:/\bwith\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(;|\bis\b))/dgiv,name:"meta.aspect.specification.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{captures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"}},match:/\b(null)\p{space}+(record)\b/dgiv},{begin:/\brecord\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/\b(end)\p{space}+(record)\b/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},patterns:[{include:"#component_item"}]},{captures:{"0":{name:"storage.visibility.ada"}},match:/\bprivate\b/dgiv},{include:"#aspect_definition"},{include:"#aspect_mark"},{include:"#comment"}]},assignment_statement:{begin:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_|\(|\)|"|'|\p{space})+)\p{space}*(:=)/dgv,beginCaptures:{"1":{patterns:[{match:/((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)/dgv,name:"variable.name.ada"},{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,patterns:[{include:"#expression"}]}]},"2":{name:"keyword.operator.new.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.assignment.ada",patterns:[{include:"#expression"},{include:"#comment"}]},attribute:{captures:{"1":{name:"punctuation.ada"},"2":{name:"entity.other.attribute-name.ada"}},match:/(')((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\b/dgv,name:"meta.attribute.ada"},based_literal:{captures:{"1":{name:"constant.numeric.base.ada"},"2":{name:"punctuation.ada"},"3":{name:"punctuation.ada"},"4":{name:"punctuation.radix-point.ada"},"5":{name:"punctuation.ada"},"6":{name:"constant.numeric.base.ada"},"7":{patterns:[{include:"#exponent_part"}]}},match:/(\p{Nd}(?:(_)?\p{Nd})*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\+|-)?\p{Nd}(?:_?\p{Nd})*)?/dgiv,name:"constant.numeric.ada"},basic_declaration:{patterns:[{include:"#type_declaration"},{include:"#subtype_declaration"},{include:"#exception_declaration"},{include:"#object_declaration"},{include:"#single_protected_declaration"},{include:"#single_task_declaration"},{include:"#subprogram_specification"},{include:"#package_declaration"},{include:"#pragma"},{include:"#comment"}]},basic_declarative_item:{patterns:[{include:"#basic_declaration"},{include:"#aspect_clause"},{include:"#use_clause"},{include:"#keyword"}]},block_statement:{begin:/\bdeclare\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(end)(\p{space}+(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)?\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.label.ada"},"3":{name:"punctuation.ada"}},name:"meta.statement.block.ada",patterns:[{begin:/(?<=declare)/dgiv,end:/\bbegin\b/dgiv,endCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},{begin:/(?<=begin)/dgiv,end:/(?=end)/dgiv,patterns:[{include:"#statement"}]}]},body:{patterns:[{include:"#subprogram_body"},{include:"#package_body"},{include:"#task_body"},{include:"#protected_body"}]},case_statement:{begin:/\bcase\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(case)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"punctuation.ada"}},name:"meta.statement.case.ada",patterns:[{begin:/(?<=case)\b/dgiv,end:/\bis\b/dgiv,endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/=>/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.case.alternative.ada",patterns:[{match:/\bothers\b/dgiv,name:"keyword.modifier.unknown.ada"},{match:/\|/dgv,name:"punctuation.ada"},{include:"#expression"}]},{include:"#statement"}]},character_literal:{captures:{"0":{patterns:[{match:/'/dgv,name:"punctuation.definition.string.ada"}]}},match:/'[^\n]'/dgv,name:"string.quoted.single.ada"},comment:{patterns:[{include:"#preprocessor"},{include:"#comment-section"},{include:"#comment-doc"},{include:"#comment-line"}]},"comment-doc":{captures:{"1":{name:"comment.line.double-dash.ada"},"2":{name:"punctuation.definition.tag.ada"},"3":{name:"entity.name.tag.ada"},"4":{name:"comment.line.double-dash.ada"}},match:/(--)\p{space}*(@)([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+([^\n]*)(?=\n?$)/dgv,name:"comment.block.documentation.ada"},"comment-line":{match:/--[^\n]*(?=\n?$)/dgv,name:"comment.line.double-dash.ada"},"comment-section":{captures:{"1":{name:"entity.name.section.ada"}},match:/--\p{space}*([^\-][^\n]*?[^\-])\p{space}*--\p{space}*(?=\n?$)/dgv,name:"comment.line.double-dash.ada"},component_clause:{begin:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\b/dgv,beginCaptures:{"0":{name:"variable.name.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.aspect.clause.record.representation.component.ada",patterns:[{begin:/\bat\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/\b(?=range)\b/dgiv,patterns:[{include:"#expression"}]},{include:"#range_constraint"}]},component_declaration:{begin:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+(?:\p{space}*,\p{space}*(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)?)\p{space}*(:)/dgv,beginCaptures:{"1":{patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+\b/dgv,name:"variable.name.ada"}]},"2":{name:"punctuation.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.type.definition.record.component.ada",patterns:[{patterns:[{match:/:=/dgv,name:"keyword.operator.new.ada"},{include:"#expression"}]},{include:"#component_definition"}]},component_definition:{patterns:[{match:/\baliased\b/dgiv,name:"storage.visibility.ada"},{match:/\brange\b/dgiv,name:"storage.modifier.ada"},{match:/\.\./dgv,name:"keyword.ada"},{include:"#access_definition"},{include:"#subtype_mark"}]},component_item:{patterns:[{include:"#component_declaration"},{include:"#variant_part"},{include:"#comment"},{include:"#aspect_clause"},{captures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}},match:/\b(null)\p{space}*(;)/dgiv}]},composite_constraint:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,name:"meta.declaration.constraint.composite.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\.\./dgv,name:"keyword.ada"},{captures:{"1":{name:"variable.name.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{include:"#expression"}]}},match:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\p{space}*(=>)\p{space}*([^\,\)])+\b/dgv},{include:"#expression"}]},decimal_literal:{captures:{"1":{name:"punctuation.ada"},"2":{name:"punctuation.radix-point.ada"},"3":{name:"punctuation.ada"},"4":{patterns:[{include:"#exponent_part"}]}},match:/\p{Nd}(?:(_)?\p{Nd})*(?:(\.)\p{Nd}(?:(_)?\p{Nd})*)?([eE](?:\+|-)?\p{Nd}(?:_?\p{Nd})*)?/dgv,name:"constant.numeric.ada"},declarative_item:{patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},delay_relative_statement:{begin:/\b(delay)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#expression"}]},delay_statement:{patterns:[{include:"#delay_until_statement"},{include:"#delay_relative_statement"}]},delay_until_statement:{begin:/\b(delay)\p{space}+(until)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.delay.until.ada",patterns:[{include:"#expression"}]},derived_type_definition:{name:"meta.declaration.type.definition.derived.ada",patterns:[{begin:/\bnew\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/(?=(\bwith\b|;))/dgiv,patterns:[{match:/\band\b/dgiv,name:"storage.modifier.ada"},{include:"#subtype_mark"}]},{match:/\b(abstract|and|limited|tagged)\b/dgiv,name:"storage.modifier.ada"},{match:/\bprivate\b/dgiv,name:"storage.visibility.ada"},{include:"#subtype_mark"}]},discriminant_specification:{begin:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+(?:\p{space}*,\p{space}*(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)?)\p{space}*(:)/dgv,beginCaptures:{"1":{patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+\b/dgv,name:"variable.name.ada"}]},"2":{name:"punctuation.ada"}},end:/(?=(;|\)))/dgv,patterns:[{begin:/:=/dgv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=(;|\)))/dgv,patterns:[{include:"#expression"}]},{captures:{"1":{name:"storage.visibility.ada"},"2":{patterns:[{include:"#subtype_mark"}]}},match:/(not\p{space}+null\p{space}+)?((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv},{include:"#access_definition"}]},entry_body:{begin:/\b(entry)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.entry.ada"}},end:/\b(end)\p{space}*(\p{space}(?!))\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.entry.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=begin)\b/dgiv,patterns:[{include:"#declarative_item"}]},{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#statement"}]},{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=is)\b/dgiv,patterns:[{include:"#expression"}]},{include:"#parameter_profile"}]},entry_declaration:{begin:/\b(?:(not)?\p{space}+(overriding)\p{space}+)?(entry)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"keyword.ada"},"4":{name:"entity.name.entry.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#parameter_profile"}]},enumeration_type_definition:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.type.definition.enumeration.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+\b/dgv,name:"variable.name.ada"},{include:"#comment"}]},exception_declaration:{begin:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+(?:\p{space}*,\p{space}*(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)?)\p{space}*(:)\p{space}*(exception)/dgiv,beginCaptures:{"1":{patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+\b/dgv,name:"entity.name.exception.ada"}]},"2":{name:"punctuation.ada"},"3":{name:"storage.type.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.exception.ada",patterns:[{match:/\b(renames)\p{space}+(([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_|\.)+)/dgiv,name:"entity.name.exception.ada"}]},exit_statement:{begin:/\bexit\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.exit.ada",patterns:[{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},{match:/(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+/dgv,name:"entity.name.label.ada"}]},exponent_part:{captures:{"1":{name:"punctuation.exponent-mark.ada"},"2":{name:"keyword.operator.unary.ada"},"3":{name:"punctuation.ada"}},match:/([eE])(\+|-)?\p{Nd}(?:(_)?\p{Nd})*/dgv},expression:{name:"meta.expression.ada",patterns:[{match:/\bnull\b/dgiv,name:"constant.language.ada"},{match:/=>(\+)?/dgv,name:"keyword.other.ada"},{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,patterns:[{include:"#expression"}]},{match:/,/dgv,name:"punctuation.ada"},{match:/\.\./dgv,name:"keyword.ada"},{include:"#value"},{include:"#attribute"},{include:"#comment"},{include:"#operator"},{match:/\b(and|or|xor)\b/dgiv,name:"keyword.ada"},{match:/\b(if|then|else|elsif|in|for|(?<!\.)all|some|\.\.|delta|with)\b/dgiv,name:"keyword.ada"}]},for_loop_statement:{begin:/\bfor\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(loop)(\p{space}+(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)?\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"entity.name.label.ada"},"4":{name:"punctuation.ada"}},name:"meta.statement.loop.for.ada",patterns:[{begin:/(?<=for)/dgiv,end:/\bloop\b/dgiv,endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{captures:{"1":{name:"variable.name.ada"},"2":{name:"keyword.control.ada"},"3":{name:"keyword.control.ada"}},match:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\p{space}+(in)(\p{space}+reverse)?\b/dgiv},{captures:{"1":{name:"variable.name.ada"},"2":{name:"punctuation.ada"},"3":{patterns:[{include:"#subtype_mark"}]},"4":{name:"keyword.control.ada"},"5":{name:"keyword.control.ada"}},match:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)(?:\p{space}*(:)\p{space}*((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+))?\p{space}+(of)(\p{space}+reverse)?\b/dgiv},{include:"#expression"}]},{include:"#statement"}]},full_type_declaration:{patterns:[{include:"#task_type_declaration"},{include:"#regular_type_declaration"}]},function_body:{begin:/\b(overriding\p{space}+)?(function)\p{space}+(?:((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+\b)|("[^\n]+"))/dgiv,beginCaptures:{"1":{name:"storage.visibility.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.function.ada"},"4":{patterns:[{include:"#string_literal"}]}},end:/(?:\b(end)\p{space}+(\3|\4)\p{space}*)?(;)()/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.function.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.function.body.ada",patterns:[{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=end)/dgiv,patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#aspect_specification"},{include:"#result_profile"},{include:"#subprogram_renaming_declaration"},{include:"#parameter_profile"},{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with|begin|;))/dgiv,name:"meta.function.body.spec_part.ada",patterns:[{begin:/\bnew\b/dgiv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=;)/dgv,name:"meta.declaration.package.generic.ada",patterns:[{match:/((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)/dgv,name:"entity.name.function.ada"},{include:"#actual_parameter_part"}]},{captures:{"0":{name:"storage.modifier.ada"}},match:/\babstract\b/dgiv,name:"meta.declaration.function.abstract.ada"},{include:"#declarative_item"},{include:"#subprogram_renaming_declaration"},{include:"#expression"}]}]},function_specification:{patterns:[{include:"#function_body"}]},goto_statement:{begin:/\bgoto\b/dgiv,beginCaptures:{"0":{name:"keyword.control.goto.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.goto.ada",patterns:[{}]},guard:{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/=>/dgv,endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{include:"#expression"}]},handled_sequence_of_statements:{patterns:[{begin:/\bexception\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,name:"meta.handler.exception.ada",patterns:[{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/=>/dgv,endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{captures:{"1":{name:"variable.name.ada"},"2":{name:"punctuation.ada"}},match:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\p{space}*(:)/dgv},{match:/\|/dgv,name:"punctuation.ada"},{match:/\bothers\b/dgiv,name:"keyword.ada"},{match:/(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+/dgv,name:"entity.name.exception.ada"}]},{include:"#statement"}]},{include:"#statement"}]},highest_precedence_operator:{match:/(\*\*|\babs\b|\bnot\b)/dgiv,name:"keyword.operator.highest-precedence.ada"},if_statement:{begin:/\bif\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(if)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"punctuation.ada"}},name:"meta.statement.if.ada",patterns:[{begin:/\belsif\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?<!\p{space}and)\p{space}+(?=then)/dgiv,patterns:[{include:"#expression"}]},{begin:/\belse\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=end)/dgiv,patterns:[{include:"#statement"}]},{begin:/(?<=if)\b/dgiv,end:/(?<!\p{space}and)\p{space}+(?=then)/dgiv,endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{begin:/\bthen\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=(elsif|else|end))/dgiv,patterns:[{include:"#statement"}]}]},integer_type_definition:{name:"meta.declaration.type.definition.integer.ada",patterns:[{include:"#signed_integer_type_definition"},{include:"#modular_type_definition"}]},interface_type_definition:{begin:/\b(?:(limited|task|protected|synchronized)\p{space}+)?(interface)/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"}},end:/(?=(with|;))/dgiv,name:"meta.declaration.type.definition.interface.ada",patterns:[{match:/\band\b/dgiv,name:"storage.modifier.ada"},{include:"#subtype_mark"}]},keyword:{patterns:[{match:/\b(abort|abs|accept|all|and|at|begin|body|declare|delay|end|entry|exception|function|generic|in|is|mod|new|not|null|of|or|others|out|package|pragma|procedure|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|then|type|use|when|with|xor)\b/dgiv,name:"keyword.ada"},{match:/\b(case|do|else|elsif|exit|for|goto|if|loop|raise|return|terminate|until|while)\b/dgiv,name:"keyword.control.ada"},{match:/\b(abstract|access|aliased|array|constant|delta|digits|interface|limited|protected|synchronized|tagged|task)\b/dgiv,name:"storage.modifier.ada"},{match:/\b(private|overriding)\b/dgiv,name:"storage.visibility.ada"},{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{match:/(\+|-|\*|\/)/dgv,name:"keyword.operator.arithmetic.ada"},{match:/:=/dgv,name:"keyword.operator.assignment.ada"},{match:/(=|\/=|<|>|<=|>=)/dgv,name:"keyword.operator.logic.ada"},{match:/&/dgv,name:"keyword.operator.concatenation.ada"}]},known_discriminant_part:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,name:"meta.declaration.type.discriminant.ada",patterns:[{match:/;/dgv,name:"punctuation.ada"},{include:"#discriminant_specification"}]},label:{captures:{"1":{name:"punctuation.label.ada"},"2":{name:"entity.name.label.ada"},"3":{name:"punctuation.label.ada"}},match:/(<<)?((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\p{space}*(:[^\=]|>>)/dgv,name:"meta.label.ada"},library_unit:{name:"meta.library.unit.ada",patterns:[{include:"#package_body"},{include:"#package_specification"},{include:"#subprogram_body"}]},loop_statement:{patterns:[{include:"#simple_loop_statement"},{include:"#while_loop_statement"},{include:"#for_loop_statement"}]},modular_type_definition:{begin:/\b(mod)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"}},end:/(?=(with|;))/dgiv,patterns:[{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{include:"#expression"}]},multiplying_operator:{match:/(\*|\/|\bmod\b|\brem\b)/dgiv,name:"keyword.operator.multiplying.ada"},null_statement:{captures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}},match:/\b(null)\p{space}*(;)/dgiv,name:"meta.statement.null.ada"},object_declaration:{begin:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+(?:\p{space}*,\p{space}*(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)*)\p{space}*(:)/dgv,beginCaptures:{"1":{patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+\b/dgv,name:"variable.name.ada"}]},"2":{name:"punctuation.ada"}},end:/(;)/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.object.ada",patterns:[{begin:/(?<=:)/dgv,end:/(?:(?=;)|(:=)|(\brenames\b))/dgv,endCaptures:{"1":{name:"keyword.operator.new.ada"},"2":{name:"keyword.ada"}},patterns:[{match:/\bconstant\b/dgiv,name:"storage.modifier.ada"},{match:/\baliased\b/dgiv,name:"storage.visibility.ada"},{include:"#aspect_specification"},{include:"#subtype_mark"}]},{begin:/(?<=:=)/dgv,end:/(?=;)/dgv,patterns:[{include:"#aspect_specification"},{include:"#expression"}]},{begin:/(?<=renames)/dgv,end:/(?=;)/dgv,patterns:[{include:"#aspect_specification"}]}]},operator:{patterns:[{include:"#highest_precedence_operator"},{include:"#multiplying_operator"},{include:"#adding_operator"},{include:"#relational_operator"},{include:"#logical_operator"}]},package_body:{begin:/\b(package)\p{space}+(body)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{patterns:[{include:"#package_mark"}]}},end:/\b(end)\p{space}+(\3)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]},"3":{name:"punctuation.ada"}},name:"meta.declaration.package.body.ada",patterns:[{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#handled_sequence_of_statements"}]},{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(\bbegin\b|\bend\b))/dgiv,patterns:[{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},package_declaration:{patterns:[{include:"#package_specification"}]},package_mark:{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+\b/dgv,name:"entity.name.package.ada"},package_specification:{begin:/\b(package)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]}},end:/(?:\b(end)\p{space}+((?!))\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]},"3":{name:"punctuation.ada"}},name:"meta.declaration.package.specification.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(end|;))/dgv,patterns:[{begin:/\bnew\b/dgiv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=;)/dgv,name:"meta.declaration.package.generic.ada",patterns:[{include:"#package_mark"},{include:"#actual_parameter_part"}]},{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#basic_declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},parameter_association:{patterns:[{captures:{"1":{name:"variable.parameter.ada"},"2":{name:"keyword.other.ada"}},match:/((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\p{space}*(=>)/dgv},{include:"#expression"}]},parameter_profile:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,patterns:[{match:/;/dgv,name:"punctuation.ada"},{include:"#parameter_specification"}]},parameter_specification:{patterns:[{begin:/:(?!=)/dgv,beginCaptures:{"0":{name:"punctuation.ada"}},end:/(?=[\:\;\)])/dgv,name:"meta.type.annotation.ada",patterns:[{match:/\b(in|out)\b/dgiv,name:"keyword.ada"},{include:"#subtype_mark"}]},{begin:/:=/dgv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=[\:\;\)])/dgv,patterns:[{include:"#expression"}]},{match:/,/dgv,name:"punctuation.ada"},{match:/\b(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+\b/dgv,name:"variable.parameter.ada"},{include:"#comment"}]},positional_array_aggregate:{name:"meta.definition.array.aggregate.positional.ada",patterns:[{captures:{"1":{name:"keyword.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{include:"#expression"}]}},match:/\b(others)\p{space}*(=>)\p{space}*([^\,\)]+)/dgiv},{include:"#expression"}]},pragma:{begin:/\b(pragma)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.control.directive.ada"}},end:/(;)/dgv,endCaptures:{"1":{name:"punctuation.ada"}},name:"meta.pragma.ada",patterns:[{include:"#expression"}]},preprocessor:{name:"meta.preprocessor.ada",patterns:[{captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional.ada"},"3":{patterns:[{include:"#expression"}]}},match:/^\p{space}*(#)(if|elsif)\p{space}+([^\n]*)(?=\n?$)/dgv},{captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional"},"3":{name:"punctuation.ada"}},match:/^\p{space}*(#)(end if)(;)/dgv},{captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional"}},match:/^\p{space}*(#)(else)/dgv}]},procedure_body:{begin:/\b(overriding\p{space}+)?(procedure)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv,beginCaptures:{"1":{name:"storage.visibility.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.function.ada"}},end:/(?:\b(end)\p{space}+(\3)\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.function.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.procedure.body.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with|begin|;))/dgiv,patterns:[{begin:/\bnew\b/dgiv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=;)/dgv,name:"meta.declaration.package.generic.ada",patterns:[{match:/((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)/dgv,name:"entity.name.function.ada"},{include:"#actual_parameter_part"}]},{match:/\b(null|abstract)\b/dgiv,name:"storage.modifier.ada"},{include:"#declarative_item"}]},{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=\bend\b)/dgiv,patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#subprogram_renaming_declaration"},{include:"#aspect_specification"},{include:"#parameter_profile"},{include:"#comment"}]},procedure_call_statement:{begin:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_|\.)+)\b/dgv,beginCaptures:{"1":{name:"entity.name.function.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.call.ada",patterns:[{include:"#attribute"},{include:"#actual_parameter_part"},{include:"#comment"}]},procedure_specification:{patterns:[{include:"#procedure_body"}]},protected_body:{begin:/\b(protected)\p{space}+(body)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.body.ada"}},end:/\b(end)\p{space}*(\p{space}\3)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.body.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.procedure.body.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#protected_operation_item"}]}]},protected_element_declaration:{patterns:[{include:"#subprogram_specification"},{include:"#aspect_clause"},{include:"#entry_declaration"},{include:"#component_declaration"},{include:"#pragma"}]},protected_operation_item:{patterns:[{include:"#subprogram_specification"},{include:"#subprogram_body"},{include:"#aspect_clause"},{include:"#entry_body"}]},raise_expression:{begin:/\braise\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=;)/dgv,name:"meta.expression.raise.ada",patterns:[{begin:/\bwith\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(;|\)))/dgv,patterns:[{include:"#expression"}]},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+\b/dgv,name:"entity.name.exception.ada"}]},raise_statement:{begin:/\braise\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.raise.ada",patterns:[{begin:/\bwith\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+\b/dgv,name:"entity.name.exception.ada"}]},range_constraint:{begin:/\brange\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/(?=(\bwith\b|;))/dgv,patterns:[{match:/\.\./dgv,name:"keyword.ada"},{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{include:"#expression"}]},real_type_definition:{name:"meta.declaration.type.definition.real-type.ada",patterns:[{include:"#scalar_constraint"}]},record_representation_clause:{begin:/\b(record)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"}},end:/\b(end)\p{space}+(record)\b/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},name:"meta.aspect.clause.record.representation.ada",patterns:[{include:"#component_clause"},{include:"#comment"}]},record_type_definition:{patterns:[{captures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"storage.modifier.ada"},"5":{name:"storage.modifier.ada"}},match:/\b(?:(abstract)\p{space}+)?(?:(tagged)\p{space}+)?(?:(limited)\p{space}+)?(null)\p{space}+(record)\b/dgiv,name:"meta.declaration.type.definition.record.null.ada",patterns:[{include:"#component_item"}]},{begin:/\b(?:(abstract)\p{space}+)?(?:(tagged)\p{space}+)?(?:(limited)\p{space}+)?(record)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"storage.modifier.ada"}},end:/\b(end)\p{space}+(record)\b/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},name:"meta.declaration.type.definition.record.ada",patterns:[{include:"#component_item"}]}]},regular_type_declaration:{begin:/\b(type)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.type.definition.regular.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with(?!\p{space}+(private))|;))/dgiv,patterns:[{include:"#type_definition"}]},{begin:/\b(?<=type)\b/dgiv,end:/(?=(is|;))/dgiv,patterns:[{include:"#known_discriminant_part"},{include:"#subtype_mark"}]},{include:"#aspect_specification"}]},relational_operator:{match:/(=|\/=|<|<=|>|>=)/dgv,name:"keyword.operator.relational.ada"},requeue_statement:{begin:/\brequeue\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.requeue.ada",patterns:[{match:/\b(with|abort)\b/dgiv,name:"keyword.control.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+\b/dgv,name:"entity.name.function.ada"}]},result_profile:{begin:/\breturn\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(is|with|renames|;))/dgv,patterns:[{include:"#subtype_mark"}]},return_statement:{begin:/\breturn\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.return.ada",patterns:[{begin:/\bdo\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(return)\p{space}*(?=;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},patterns:[{include:"#label"},{include:"#statement"}]},{captures:{"1":{name:"variable.name.ada"},"2":{name:"punctuation.ada"},"3":{name:"entity.name.type.ada"}},match:/\b((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\p{space}*(:)\p{space}*((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgv},{match:/:=/dgv,name:"keyword.operator.new.ada"},{include:"#expression"}]},scalar_constraint:{name:"meta.declaration.constraint.scalar.ada",patterns:[{begin:/\b(digits|delta)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"}},end:/(?=\brange\b|\bdigits\b|\bwith\b|;)/dgiv,patterns:[{include:"#expression"}]},{include:"#range_constraint"},{include:"#expression"}]},select_alternative:{patterns:[{begin:/\bterminate\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}}},{include:"#statement"}]},select_statement:{begin:/\bselect\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(select)\b/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},name:"meta.statement.select.ada",patterns:[{begin:/\b(?:(or)|(?<=select))\b/dgiv,beginCaptures:{"1":{name:"keyword.control.ada"}},end:/\b(?=(or|else|end))\b/dgiv,patterns:[{include:"#guard"},{include:"#select_alternative"}]},{begin:/\belse\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#statement"}]}]},signed_integer_type_definition:{patterns:[{include:"#range_constraint"}]},simple_loop_statement:{begin:/\bloop\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(loop)(\p{space}+(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)?\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"entity.name.label.ada"},"4":{name:"punctuation.ada"}},name:"meta.statement.loop.ada",patterns:[{include:"#statement"}]},single_protected_declaration:{begin:/\b(protected)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.protected.ada"}},end:/(?:\b(end)\p{space}*(\p{space}(?!))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.protected.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.protected.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(\bend\b|;))/dgiv,patterns:[{begin:/\bnew\b/dgiv,captures:{"0":{name:"keyword.ada"}},end:/\bwith\b/dgiv,patterns:[{match:/\band\b/dgiv,name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#protected_element_declaration"},{include:"#comment"}]},{include:"#comment"}]},single_task_declaration:{begin:/\b(task)\p{space}+((?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"}},end:/(?:\b(end)\p{space}*(\p{space}(?!))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{begin:/\bnew\b/dgiv,captures:{"0":{name:"keyword.ada"}},end:/\bwith\b/dgiv,patterns:[{match:/\band\b/dgiv,name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},statement:{patterns:[{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(end)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}},patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#label"},{include:"#null_statement"},{include:"#return_statement"},{include:"#assignment_statement"},{include:"#exit_statement"},{include:"#goto_statement"},{include:"#requeue_statement"},{include:"#delay_statement"},{include:"#abort_statement"},{include:"#raise_statement"},{include:"#if_statement"},{include:"#case_statement"},{include:"#loop_statement"},{include:"#block_statement"},{include:"#select_statement"},{include:"#accept_statement"},{include:"#pragma"},{include:"#procedure_call_statement"},{include:"#comment"}]},string_literal:{captures:{"1":{name:"punctuation.definition.string.ada"},"2":{name:"punctuation.definition.string.ada"}},match:/(")[^\n]*?(")/dgv,name:"string.quoted.double.ada"},subprogram_body:{name:"meta.declaration.subprogram.body.ada",patterns:[{include:"#procedure_body"},{include:"#function_body"}]},subprogram_renaming_declaration:{begin:/\brenames\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with|;))/dgv,patterns:[{match:/(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_|\.)+/dgv,name:"entity.name.function.ada"}]},subprogram_specification:{name:"meta.declaration.subprogram.specification.ada",patterns:[{include:"#procedure_specification"},{include:"#function_specification"}]},subtype_declaration:{begin:/\bsubtype\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.subtype.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=;)/dgv,patterns:[{match:/\b(not\p{space}+null)\b/dgiv,name:"storage.modifier.ada"},{include:"#composite_constraint"},{include:"#aspect_specification"},{include:"#subtype_indication"}]},{begin:/(?<=subtype)/dgiv,end:/\b(?=is)\b/dgiv,patterns:[{include:"#subtype_mark"}]}]},subtype_indication:{name:"meta.declaration.indication.subtype.ada",patterns:[{include:"#scalar_constraint"},{include:"#subtype_mark"}]},subtype_mark:{patterns:[{match:/\b(access|aliased|not\p{space}+null|constant)\b/dgiv,name:"storage.visibility.ada"},{include:"#attribute"},{include:"#actual_parameter_part"},{begin:/\b(procedure|function)\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(;|\)))/dgv,patterns:[{include:"#parameter_profile"},{begin:/\breturn\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(;|\)))/dgv,patterns:[{include:"#subtype_mark"}]}]},{captures:{"0":{patterns:[{match:/[_\.]/dgv,name:"punctuation.ada"}]}},match:/\b(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+\b/dgv,name:"entity.name.type.ada"},{include:"#comment"}]},task_body:{begin:/\b(task)\p{space}+(body)\p{space}+(([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.task.ada"}},end:/(?:\b(end)\p{space}*(?:\p{space}(\3))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.task.body.ada",patterns:[{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=end)/dgiv,patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#aspect_specification"},{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with|begin))/dgiv,patterns:[{include:"#declarative_item"}]}]},task_item:{patterns:[{include:"#aspect_clause"},{include:"#entry_declaration"}]},task_type_declaration:{begin:/\b(task)\p{space}+(type)\p{space}+(([\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.|_)+)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.task.ada"}},end:/(?:\b(end)\p{space}*(?:\p{space}(\3))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.type.task.ada",patterns:[{include:"#known_discriminant_part"},{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{begin:/\bnew\b/dgiv,captures:{"0":{name:"keyword.ada"}},end:/\bwith\b/dgiv,patterns:[{match:/\band\b/dgiv,name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},type_declaration:{name:"meta.declaration.type.ada",patterns:[{include:"#full_type_declaration"}]},type_definition:{name:"meta.declaration.type.definition.ada",patterns:[{include:"#enumeration_type_definition"},{include:"#integer_type_definition"},{include:"#real_type_definition"},{include:"#array_type_definition"},{include:"#record_type_definition"},{include:"#access_type_definition"},{include:"#interface_type_definition"},{include:"#derived_type_definition"}]},use_clause:{name:"meta.context.use.ada",patterns:[{include:"#use_type_clause"},{include:"#use_package_clause"}]},use_package_clause:{begin:/\buse\b/dgiv,beginCaptures:{"0":{name:"keyword.other.using.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.context.use.package.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#package_mark"}]},use_type_clause:{begin:/\b(use)\p{space}+(?:(all)\p{space}+)?(type)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.using.ada"},"2":{name:"keyword.modifier.ada"},"3":{name:"keyword.modifier.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.context.use.type.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#subtype_mark"}]},value:{patterns:[{include:"#based_literal"},{include:"#decimal_literal"},{include:"#character_literal"},{include:"#string_literal"}]},variant_part:{begin:/\bcase\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(end)\p{space}+(case);/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.variant.ada",patterns:[{begin:/\b(?<=case)\b/dgiv,end:/\bis\b/dgiv,endCaptures:{"0":{name:"keyword.ada"}},patterns:[{match:/(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+/dgv,name:"variable.name.ada"},{include:"#comment"}]},{begin:/\b(?<=is)\b/dgiv,end:/\b(?=end)\b/dgiv,patterns:[{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/=>/dgv,endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{match:/\|/dgv,name:"punctuation.ada"},{match:/\bothers\b/dgiv,name:"keyword.ada"},{include:"#expression"}]},{include:"#component_item"}]}]},while_loop_statement:{begin:/\bwhile\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(loop)(\p{space}+(?:[\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|_)+)?\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"entity.name.label.ada"},"4":{name:"punctuation.ada"}},name:"meta.statement.loop.while.ada",patterns:[{begin:/(?<=while)\b/dgiv,end:/\bloop\b/dgiv,endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},with_clause:{begin:/\b(?:(limited)\p{space}+)?(?:(private)\p{space}+)?(with)\b/dgiv,beginCaptures:{"1":{name:"keyword.modifier.ada"},"2":{name:"storage.visibility.ada"},"3":{name:"keyword.other.using.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.context.with.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#package_mark"}]}},scopeName:"source.ada",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"Ada",name:"ada",patterns:[{include:"#library_unit"},{include:"#comment"},{include:"#use_clause"},{include:"#with_clause"},{include:"#pragma"},{include:"#keyword"}],repository:{abort_statement:{begin:/\babort\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.abort.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._])+\b/dgv,name:"entity.name.task.ada"}]},accept_statement:{begin:/\b(accept)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"entity.name.accept.ada"}},end:/(?:\b(end)\p{space}*(\p{space}(?!))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"entity.name.accept.ada"},"3":{name:"punctuation.ada"}},name:"meta.statement.accept.ada",patterns:[{begin:/\bdo\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#statement"}]},{include:"#parameter_profile"}]},access_definition:{captures:{"1":{name:"storage.visibility.ada"},"2":{name:"storage.visibility.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"entity.name.type.ada"}},match:/(not\p{space}+null\p{space}+)?(access)\p{space}+(constant\p{space}+)?([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\b/dgiv,name:"meta.declaration.access.definition.ada"},access_type_definition:{begin:/\b(not\p{space}+null\p{space}+)?(access)\b/dgiv,beginCaptures:{"1":{name:"storage.visibility.ada"},"2":{name:"storage.visibility.ada"}},end:/(?=(with|;))/dgiv,name:"meta.declaration.type.definition.access.ada",patterns:[{match:/\ball\b/dgiv,name:"storage.visibility.ada"},{match:/\bconstant\b/dgiv,name:"storage.modifier.ada"},{include:"#subtype_mark"}]},actual_parameter_part:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#parameter_association"}]},adding_operator:{match:/([\+\-\&])/dgv,name:"keyword.operator.adding.ada"},array_aggregate:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,name:"meta.definition.array.aggregate.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#positional_array_aggregate"},{include:"#array_component_association"}]},array_component_association:{captures:{"1":{name:"variable.name.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{include:"#expression"}]}},match:/\b([^\(\=\>\)]*)\p{space}*(=>)\p{space}*([^\,\)]+)/dgv,name:"meta.definition.array.aggregate.component.ada"},array_dimensions:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,name:"meta.declaration.type.definition.array.dimensions.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\brange\b/dgiv,name:"storage.modifier.ada"},{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{match:/\.\./dgv,name:"keyword.ada"},{include:"#expression"},{patterns:[{include:"#subtype_mark"}]}]},array_type_definition:{begin:/\barray\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/(?=(with|;))/dgiv,name:"meta.declaration.type.definition.array.ada",patterns:[{include:"#array_dimensions"},{match:/\bof\b/dgiv,name:"storage.modifier.ada"},{match:/\baliased\b/dgiv,name:"storage.visibility.ada"},{include:"#access_definition"},{include:"#subtype_mark"}]},aspect_clause:{begin:/\b(for)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#subtype_mark"}]},"3":{name:"punctuation.ada"},"5":{name:"keyword.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.aspect.clause.ada",patterns:[{begin:/\buse\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=;)/dgv,endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#record_representation_clause"},{include:"#array_aggregate"},{include:"#expression"}]},{begin:/(?<=for)/dgiv,captures:{"0":{name:"keyword.ada"}},end:/(?=use)/dgiv,patterns:[{captures:{"1":{patterns:[{include:"#subtype_mark"}]},"2":{patterns:[{include:"#attribute"}]}},match:/([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)('([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+))?/dgv}]}]},aspect_definition:{begin:/=>/dgv,beginCaptures:{"0":{name:"keyword.other.ada"}},end:/(?=([\,\;]|\bis\b))/dgiv,name:"meta.aspect.definition.ada",patterns:[{include:"#expression"}]},aspect_mark:{captures:{"1":{name:"keyword.control.directive.ada"},"2":{name:"punctuation.ada"},"3":{name:"entity.other.attribute-name.ada"}},match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)(?:(')(class))?\b/dgiv,name:"meta.aspect.mark.ada"},aspect_specification:{begin:/\bwith\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(;|\bis\b))/dgiv,name:"meta.aspect.specification.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{captures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"}},match:/\b(null)\p{space}+(record)\b/dgiv},{begin:/\brecord\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/\b(end)\p{space}+(record)\b/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},patterns:[{include:"#component_item"}]},{captures:{"0":{name:"storage.visibility.ada"}},match:/\bprivate\b/dgiv},{include:"#aspect_definition"},{include:"#aspect_mark"},{include:"#comment"}]},assignment_statement:{begin:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._\(\)"'\p{space}]+)\p{space}*(:=)/dgv,beginCaptures:{"1":{patterns:[{match:/([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)/dgv,name:"variable.name.ada"},{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,patterns:[{include:"#expression"}]}]},"2":{name:"keyword.operator.new.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.assignment.ada",patterns:[{include:"#expression"},{include:"#comment"}]},attribute:{captures:{"1":{name:"punctuation.ada"},"2":{name:"entity.other.attribute-name.ada"}},match:/(')([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\b/dgv,name:"meta.attribute.ada"},based_literal:{captures:{"1":{name:"constant.numeric.base.ada"},"2":{name:"punctuation.ada"},"3":{name:"punctuation.ada"},"4":{name:"punctuation.radix-point.ada"},"5":{name:"punctuation.ada"},"6":{name:"constant.numeric.base.ada"},"7":{patterns:[{include:"#exponent_part"}]}},match:/(\p{Nd}(?:(_)?\p{Nd})*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE][\+\-]?\p{Nd}(?:_?\p{Nd})*)?/dgiv,name:"constant.numeric.ada"},basic_declaration:{patterns:[{include:"#type_declaration"},{include:"#subtype_declaration"},{include:"#exception_declaration"},{include:"#object_declaration"},{include:"#single_protected_declaration"},{include:"#single_task_declaration"},{include:"#subprogram_specification"},{include:"#package_declaration"},{include:"#pragma"},{include:"#comment"}]},basic_declarative_item:{patterns:[{include:"#basic_declaration"},{include:"#aspect_clause"},{include:"#use_clause"},{include:"#keyword"}]},block_statement:{begin:/\bdeclare\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(end)(\p{space}+[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)?\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.label.ada"},"3":{name:"punctuation.ada"}},name:"meta.statement.block.ada",patterns:[{begin:/(?<=declare)/dgiv,end:/\bbegin\b/dgiv,endCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},{begin:/(?<=begin)/dgiv,end:/(?=end)/dgiv,patterns:[{include:"#statement"}]}]},body:{patterns:[{include:"#subprogram_body"},{include:"#package_body"},{include:"#task_body"},{include:"#protected_body"}]},case_statement:{begin:/\bcase\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(case)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"punctuation.ada"}},name:"meta.statement.case.ada",patterns:[{begin:/(?<=case)\b/dgiv,end:/\bis\b/dgiv,endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/=>/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.case.alternative.ada",patterns:[{match:/\bothers\b/dgiv,name:"keyword.modifier.unknown.ada"},{match:/\|/dgv,name:"punctuation.ada"},{include:"#expression"}]},{include:"#statement"}]},character_literal:{captures:{"0":{patterns:[{match:/'/dgv,name:"punctuation.definition.string.ada"}]}},match:/'[^\n]'/dgv,name:"string.quoted.single.ada"},comment:{patterns:[{include:"#preprocessor"},{include:"#comment-section"},{include:"#comment-doc"},{include:"#comment-line"}]},"comment-doc":{captures:{"1":{name:"comment.line.double-dash.ada"},"2":{name:"punctuation.definition.tag.ada"},"3":{name:"entity.name.tag.ada"},"4":{name:"comment.line.double-dash.ada"}},match:/(--)\p{space}*(@)([\p{L}\p{M}\p{N}\p{Pc}]+)\p{space}+([^\n]*)(?=\n?$)/dgv,name:"comment.block.documentation.ada"},"comment-line":{match:/--[^\n]*(?=\n?$)/dgv,name:"comment.line.double-dash.ada"},"comment-section":{captures:{"1":{name:"entity.name.section.ada"}},match:/--\p{space}*([^\-][^\n]*?[^\-])\p{space}*--\p{space}*(?=\n?$)/dgv,name:"comment.line.double-dash.ada"},component_clause:{begin:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\b/dgv,beginCaptures:{"0":{name:"variable.name.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.aspect.clause.record.representation.component.ada",patterns:[{begin:/\bat\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/\b(?=range)\b/dgiv,patterns:[{include:"#expression"}]},{include:"#range_constraint"}]},component_declaration:{begin:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+(?:\p{space}*,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)?)\p{space}*(:)/dgv,beginCaptures:{"1":{patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_])+\b/dgv,name:"variable.name.ada"}]},"2":{name:"punctuation.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.type.definition.record.component.ada",patterns:[{patterns:[{match:/:=/dgv,name:"keyword.operator.new.ada"},{include:"#expression"}]},{include:"#component_definition"}]},component_definition:{patterns:[{match:/\baliased\b/dgiv,name:"storage.visibility.ada"},{match:/\brange\b/dgiv,name:"storage.modifier.ada"},{match:/\.\./dgv,name:"keyword.ada"},{include:"#access_definition"},{include:"#subtype_mark"}]},component_item:{patterns:[{include:"#component_declaration"},{include:"#variant_part"},{include:"#comment"},{include:"#aspect_clause"},{captures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}},match:/\b(null)\p{space}*(;)/dgiv}]},composite_constraint:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,name:"meta.declaration.constraint.composite.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\.\./dgv,name:"keyword.ada"},{captures:{"1":{name:"variable.name.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{include:"#expression"}]}},match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\p{space}*(=>)\p{space}*([^\,\)])+\b/dgv},{include:"#expression"}]},decimal_literal:{captures:{"1":{name:"punctuation.ada"},"2":{name:"punctuation.radix-point.ada"},"3":{name:"punctuation.ada"},"4":{patterns:[{include:"#exponent_part"}]}},match:/\p{Nd}(?:(_)?\p{Nd})*(?:(\.)\p{Nd}(?:(_)?\p{Nd})*)?([eE][\+\-]?\p{Nd}(?:_?\p{Nd})*)?/dgv,name:"constant.numeric.ada"},declarative_item:{patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},delay_relative_statement:{begin:/\b(delay)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#expression"}]},delay_statement:{patterns:[{include:"#delay_until_statement"},{include:"#delay_relative_statement"}]},delay_until_statement:{begin:/\b(delay)\p{space}+(until)\b/dgiv,beginCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.delay.until.ada",patterns:[{include:"#expression"}]},derived_type_definition:{name:"meta.declaration.type.definition.derived.ada",patterns:[{begin:/\bnew\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/(?=(\bwith\b|;))/dgiv,patterns:[{match:/\band\b/dgiv,name:"storage.modifier.ada"},{include:"#subtype_mark"}]},{match:/\b(abstract|and|limited|tagged)\b/dgiv,name:"storage.modifier.ada"},{match:/\bprivate\b/dgiv,name:"storage.visibility.ada"},{include:"#subtype_mark"}]},discriminant_specification:{begin:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+(?:\p{space}*,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)?)\p{space}*(:)/dgv,beginCaptures:{"1":{patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_])+\b/dgv,name:"variable.name.ada"}]},"2":{name:"punctuation.ada"}},end:/(?=([\;\)]))/dgv,patterns:[{begin:/:=/dgv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=([\;\)]))/dgv,patterns:[{include:"#expression"}]},{captures:{"1":{name:"storage.visibility.ada"},"2":{patterns:[{include:"#subtype_mark"}]}},match:/(not\p{space}+null\p{space}+)?([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\b/dgiv},{include:"#access_definition"}]},entry_body:{begin:/\b(entry)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.entry.ada"}},end:/\b(end)\p{space}*(\p{space}(?!))\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.entry.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=begin)\b/dgiv,patterns:[{include:"#declarative_item"}]},{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#statement"}]},{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=is)\b/dgiv,patterns:[{include:"#expression"}]},{include:"#parameter_profile"}]},entry_declaration:{begin:/\b(?:(not)?\p{space}+(overriding)\p{space}+)?(entry)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"keyword.ada"},"4":{name:"entity.name.entry.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#parameter_profile"}]},enumeration_type_definition:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.type.definition.enumeration.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_])+\b/dgv,name:"variable.name.ada"},{include:"#comment"}]},exception_declaration:{begin:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+(?:\p{space}*,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)?)\p{space}*(:)\p{space}*(exception)/dgiv,beginCaptures:{"1":{patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_])+\b/dgv,name:"entity.name.exception.ada"}]},"2":{name:"punctuation.ada"},"3":{name:"storage.type.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.exception.ada",patterns:[{match:/\b(renames)\p{space}+(([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_\.])+)/dgiv,name:"entity.name.exception.ada"}]},exit_statement:{begin:/\bexit\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.exit.ada",patterns:[{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},{match:/[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+/dgv,name:"entity.name.label.ada"}]},exponent_part:{captures:{"1":{name:"punctuation.exponent-mark.ada"},"2":{name:"keyword.operator.unary.ada"},"3":{name:"punctuation.ada"}},match:/([eE])([\+\-])?\p{Nd}(?:(_)?\p{Nd})*/dgv},expression:{name:"meta.expression.ada",patterns:[{match:/\bnull\b/dgiv,name:"constant.language.ada"},{match:/=>(\+)?/dgv,name:"keyword.other.ada"},{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,patterns:[{include:"#expression"}]},{match:/,/dgv,name:"punctuation.ada"},{match:/\.\./dgv,name:"keyword.ada"},{include:"#value"},{include:"#attribute"},{include:"#comment"},{include:"#operator"},{match:/\b(and|or|xor)\b/dgiv,name:"keyword.ada"},{match:/\b(if|then|else|elsif|in|for|(?<!\.)all|some|\.\.|delta|with)\b/dgiv,name:"keyword.ada"}]},for_loop_statement:{begin:/\bfor\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(loop)(\p{space}+[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)?\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"entity.name.label.ada"},"4":{name:"punctuation.ada"}},name:"meta.statement.loop.for.ada",patterns:[{begin:/(?<=for)/dgiv,end:/\bloop\b/dgiv,endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{captures:{"1":{name:"variable.name.ada"},"2":{name:"keyword.control.ada"},"3":{name:"keyword.control.ada"}},match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\p{space}+(in)(\p{space}+reverse)?\b/dgiv},{captures:{"1":{name:"variable.name.ada"},"2":{name:"punctuation.ada"},"3":{patterns:[{include:"#subtype_mark"}]},"4":{name:"keyword.control.ada"},"5":{name:"keyword.control.ada"}},match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)(?:\p{space}*(:)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+))?\p{space}+(of)(\p{space}+reverse)?\b/dgiv},{include:"#expression"}]},{include:"#statement"}]},full_type_declaration:{patterns:[{include:"#task_type_declaration"},{include:"#regular_type_declaration"}]},function_body:{begin:/\b(overriding\p{space}+)?(function)\p{space}+(?:([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+\b)|("[^\n]+"))/dgiv,beginCaptures:{"1":{name:"storage.visibility.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.function.ada"},"4":{patterns:[{include:"#string_literal"}]}},end:/(?:\b(end)\p{space}+(\3|\4)\p{space}*)?(;)()/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.function.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.function.body.ada",patterns:[{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=end)/dgiv,patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#aspect_specification"},{include:"#result_profile"},{include:"#subprogram_renaming_declaration"},{include:"#parameter_profile"},{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with|begin|;))/dgiv,name:"meta.function.body.spec_part.ada",patterns:[{begin:/\bnew\b/dgiv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=;)/dgv,name:"meta.declaration.package.generic.ada",patterns:[{match:/([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)/dgv,name:"entity.name.function.ada"},{include:"#actual_parameter_part"}]},{captures:{"0":{name:"storage.modifier.ada"}},match:/\babstract\b/dgiv,name:"meta.declaration.function.abstract.ada"},{include:"#declarative_item"},{include:"#subprogram_renaming_declaration"},{include:"#expression"}]}]},function_specification:{patterns:[{include:"#function_body"}]},goto_statement:{begin:/\bgoto\b/dgiv,beginCaptures:{"0":{name:"keyword.control.goto.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.goto.ada",patterns:[{}]},guard:{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/=>/dgv,endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{include:"#expression"}]},handled_sequence_of_statements:{patterns:[{begin:/\bexception\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,name:"meta.handler.exception.ada",patterns:[{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/=>/dgv,endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{captures:{"1":{name:"variable.name.ada"},"2":{name:"punctuation.ada"}},match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\p{space}*(:)/dgv},{match:/\|/dgv,name:"punctuation.ada"},{match:/\bothers\b/dgiv,name:"keyword.ada"},{match:/[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+/dgv,name:"entity.name.exception.ada"}]},{include:"#statement"}]},{include:"#statement"}]},highest_precedence_operator:{match:/(\*\*|\babs\b|\bnot\b)/dgiv,name:"keyword.operator.highest-precedence.ada"},if_statement:{begin:/\bif\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(if)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"punctuation.ada"}},name:"meta.statement.if.ada",patterns:[{begin:/\belsif\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?<!\p{space}and)\p{space}+(?=then)/dgiv,patterns:[{include:"#expression"}]},{begin:/\belse\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=end)/dgiv,patterns:[{include:"#statement"}]},{begin:/(?<=if)\b/dgiv,end:/(?<!\p{space}and)\p{space}+(?=then)/dgiv,endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{begin:/\bthen\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=(e(?:lsif|lse|nd)))/dgiv,patterns:[{include:"#statement"}]}]},integer_type_definition:{name:"meta.declaration.type.definition.integer.ada",patterns:[{include:"#signed_integer_type_definition"},{include:"#modular_type_definition"}]},interface_type_definition:{begin:/\b(?:(limited|task|protected|synchronized)\p{space}+)?(interface)/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"}},end:/(?=(with|;))/dgiv,name:"meta.declaration.type.definition.interface.ada",patterns:[{match:/\band\b/dgiv,name:"storage.modifier.ada"},{include:"#subtype_mark"}]},keyword:{patterns:[{match:/\b(abort|abs|accept|all|and|at|begin|body|declare|delay|end|entry|exception|function|generic|in|is|mod|new|not|null|of|or|others|out|package|pragma|procedure|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|then|type|use|when|with|xor)\b/dgiv,name:"keyword.ada"},{match:/\b(case|do|else|elsif|exit|for|goto|if|loop|raise|return|terminate|until|while)\b/dgiv,name:"keyword.control.ada"},{match:/\b(abstract|access|aliased|array|constant|delta|digits|interface|limited|protected|synchronized|tagged|task)\b/dgiv,name:"storage.modifier.ada"},{match:/\b(private|overriding)\b/dgiv,name:"storage.visibility.ada"},{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{match:/([\+\-\*\/])/dgv,name:"keyword.operator.arithmetic.ada"},{match:/:=/dgv,name:"keyword.operator.assignment.ada"},{match:/(=|\/=|[\<\>]|<=|>=)/dgv,name:"keyword.operator.logic.ada"},{match:/&/dgv,name:"keyword.operator.concatenation.ada"}]},known_discriminant_part:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,name:"meta.declaration.type.discriminant.ada",patterns:[{match:/;/dgv,name:"punctuation.ada"},{include:"#discriminant_specification"}]},label:{captures:{"1":{name:"punctuation.label.ada"},"2":{name:"entity.name.label.ada"},"3":{name:"punctuation.label.ada"}},match:/(<<)?([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\p{space}*(:[^\=]|>>)/dgv,name:"meta.label.ada"},library_unit:{name:"meta.library.unit.ada",patterns:[{include:"#package_body"},{include:"#package_specification"},{include:"#subprogram_body"}]},loop_statement:{patterns:[{include:"#simple_loop_statement"},{include:"#while_loop_statement"},{include:"#for_loop_statement"}]},modular_type_definition:{begin:/\b(mod)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"}},end:/(?=(with|;))/dgiv,patterns:[{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{include:"#expression"}]},multiplying_operator:{match:/([\*\/]|\bmod\b|\brem\b)/dgiv,name:"keyword.operator.multiplying.ada"},null_statement:{captures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}},match:/\b(null)\p{space}*(;)/dgiv,name:"meta.statement.null.ada"},object_declaration:{begin:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+(?:\p{space}*,\p{space}*[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)*)\p{space}*(:)/dgv,beginCaptures:{"1":{patterns:[{match:/,/dgv,name:"punctuation.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_])+\b/dgv,name:"variable.name.ada"}]},"2":{name:"punctuation.ada"}},end:/(;)/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.object.ada",patterns:[{begin:/(?<=:)/dgv,end:/(?:(?=;)|(:=)|(\brenames\b))/dgv,endCaptures:{"1":{name:"keyword.operator.new.ada"},"2":{name:"keyword.ada"}},patterns:[{match:/\bconstant\b/dgiv,name:"storage.modifier.ada"},{match:/\baliased\b/dgiv,name:"storage.visibility.ada"},{include:"#aspect_specification"},{include:"#subtype_mark"}]},{begin:/(?<=:=)/dgv,end:/(?=;)/dgv,patterns:[{include:"#aspect_specification"},{include:"#expression"}]},{begin:/(?<=renames)/dgv,end:/(?=;)/dgv,patterns:[{include:"#aspect_specification"}]}]},operator:{patterns:[{include:"#highest_precedence_operator"},{include:"#multiplying_operator"},{include:"#adding_operator"},{include:"#relational_operator"},{include:"#logical_operator"}]},package_body:{begin:/\b(package)\p{space}+(body)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{patterns:[{include:"#package_mark"}]}},end:/\b(end)\p{space}+(\3)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]},"3":{name:"punctuation.ada"}},name:"meta.declaration.package.body.ada",patterns:[{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#handled_sequence_of_statements"}]},{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(\b(?:begin\b|end\b)))/dgiv,patterns:[{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},package_declaration:{patterns:[{include:"#package_specification"}]},package_mark:{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._])+\b/dgv,name:"entity.name.package.ada"},package_specification:{begin:/\b(package)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]}},end:/(?:\b(end)\p{space}+((?!))\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]},"3":{name:"punctuation.ada"}},name:"meta.declaration.package.specification.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(end|;))/dgv,patterns:[{begin:/\bnew\b/dgiv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=;)/dgv,name:"meta.declaration.package.generic.ada",patterns:[{include:"#package_mark"},{include:"#actual_parameter_part"}]},{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#basic_declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},parameter_association:{patterns:[{captures:{"1":{name:"variable.parameter.ada"},"2":{name:"keyword.other.ada"}},match:/([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\p{space}*(=>)/dgv},{include:"#expression"}]},parameter_profile:{begin:/\(/dgv,captures:{"0":{name:"punctuation.ada"}},end:/\)/dgv,patterns:[{match:/;/dgv,name:"punctuation.ada"},{include:"#parameter_specification"}]},parameter_specification:{patterns:[{begin:/:(?!=)/dgv,beginCaptures:{"0":{name:"punctuation.ada"}},end:/(?=[\:\;\)])/dgv,name:"meta.type.annotation.ada",patterns:[{match:/\b(in|out)\b/dgiv,name:"keyword.ada"},{include:"#subtype_mark"}]},{begin:/:=/dgv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=[\:\;\)])/dgv,patterns:[{include:"#expression"}]},{match:/,/dgv,name:"punctuation.ada"},{match:/\b[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+\b/dgv,name:"variable.parameter.ada"},{include:"#comment"}]},positional_array_aggregate:{name:"meta.definition.array.aggregate.positional.ada",patterns:[{captures:{"1":{name:"keyword.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{include:"#expression"}]}},match:/\b(others)\p{space}*(=>)\p{space}*([^\,\)]+)/dgiv},{include:"#expression"}]},pragma:{begin:/\b(pragma)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.control.directive.ada"}},end:/(;)/dgv,endCaptures:{"1":{name:"punctuation.ada"}},name:"meta.pragma.ada",patterns:[{include:"#expression"}]},preprocessor:{name:"meta.preprocessor.ada",patterns:[{captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional.ada"},"3":{patterns:[{include:"#expression"}]}},match:/^\p{space}*(#)(if|elsif)\p{space}+([^\n]*)(?=\n?$)/dgv},{captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional"},"3":{name:"punctuation.ada"}},match:/^\p{space}*(#)(end if)(;)/dgv},{captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional"}},match:/^\p{space}*(#)(else)/dgv}]},procedure_body:{begin:/\b(overriding\p{space}+)?(procedure)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\b/dgiv,beginCaptures:{"1":{name:"storage.visibility.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.function.ada"}},end:/(?:\b(end)\p{space}+(\3)\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.function.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.procedure.body.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with|begin|;))/dgiv,patterns:[{begin:/\bnew\b/dgiv,beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:/(?=;)/dgv,name:"meta.declaration.package.generic.ada",patterns:[{match:/([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)/dgv,name:"entity.name.function.ada"},{include:"#actual_parameter_part"}]},{match:/\b(null|abstract)\b/dgiv,name:"storage.modifier.ada"},{include:"#declarative_item"}]},{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=\bend\b)/dgiv,patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#subprogram_renaming_declaration"},{include:"#aspect_specification"},{include:"#parameter_profile"},{include:"#comment"}]},procedure_call_statement:{begin:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_\.]+)\b/dgv,beginCaptures:{"1":{name:"entity.name.function.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.call.ada",patterns:[{include:"#attribute"},{include:"#actual_parameter_part"},{include:"#comment"}]},procedure_specification:{patterns:[{include:"#procedure_body"}]},protected_body:{begin:/\b(protected)\p{space}+(body)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.body.ada"}},end:/\b(end)\p{space}*(\p{space}\3)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.body.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.procedure.body.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#protected_operation_item"}]}]},protected_element_declaration:{patterns:[{include:"#subprogram_specification"},{include:"#aspect_clause"},{include:"#entry_declaration"},{include:"#component_declaration"},{include:"#pragma"}]},protected_operation_item:{patterns:[{include:"#subprogram_specification"},{include:"#subprogram_body"},{include:"#aspect_clause"},{include:"#entry_body"}]},raise_expression:{begin:/\braise\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=;)/dgv,name:"meta.expression.raise.ada",patterns:[{begin:/\bwith\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=([\;\)]))/dgv,patterns:[{include:"#expression"}]},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_])+\b/dgv,name:"entity.name.exception.ada"}]},raise_statement:{begin:/\braise\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.raise.ada",patterns:[{begin:/\bwith\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/(?=;)/dgv,patterns:[{include:"#expression"}]},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._])+\b/dgv,name:"entity.name.exception.ada"}]},range_constraint:{begin:/\brange\b/dgiv,beginCaptures:{"0":{name:"storage.modifier.ada"}},end:/(?=(\bwith\b|;))/dgv,patterns:[{match:/\.\./dgv,name:"keyword.ada"},{match:/<>/dgv,name:"keyword.modifier.unknown.ada"},{include:"#expression"}]},real_type_definition:{name:"meta.declaration.type.definition.real-type.ada",patterns:[{include:"#scalar_constraint"}]},record_representation_clause:{begin:/\b(record)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"}},end:/\b(end)\p{space}+(record)\b/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},name:"meta.aspect.clause.record.representation.ada",patterns:[{include:"#component_clause"},{include:"#comment"}]},record_type_definition:{patterns:[{captures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"storage.modifier.ada"},"5":{name:"storage.modifier.ada"}},match:/\b(?:(abstract)\p{space}+)?(?:(tagged)\p{space}+)?(?:(limited)\p{space}+)?(null)\p{space}+(record)\b/dgiv,name:"meta.declaration.type.definition.record.null.ada",patterns:[{include:"#component_item"}]},{begin:/\b(?:(abstract)\p{space}+)?(?:(tagged)\p{space}+)?(?:(limited)\p{space}+)?(record)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"storage.modifier.ada"}},end:/\b(end)\p{space}+(record)\b/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},name:"meta.declaration.type.definition.record.ada",patterns:[{include:"#component_item"}]}]},regular_type_declaration:{begin:/\b(type)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.type.definition.regular.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with(?!\p{space}+(private))|;))/dgiv,patterns:[{include:"#type_definition"}]},{begin:/\b(?<=type)\b/dgiv,end:/(?=(is|;))/dgiv,patterns:[{include:"#known_discriminant_part"},{include:"#subtype_mark"}]},{include:"#aspect_specification"}]},relational_operator:{match:/(=|\/=|<|<=|>|>=)/dgv,name:"keyword.operator.relational.ada"},requeue_statement:{begin:/\brequeue\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.requeue.ada",patterns:[{match:/\b(with|abort)\b/dgiv,name:"keyword.control.ada"},{match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._])+\b/dgv,name:"entity.name.function.ada"}]},result_profile:{begin:/\breturn\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(is|with|renames|;))/dgv,patterns:[{include:"#subtype_mark"}]},return_statement:{begin:/\breturn\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.statement.return.ada",patterns:[{begin:/\bdo\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(return)\p{space}*(?=;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},patterns:[{include:"#label"},{include:"#statement"}]},{captures:{"1":{name:"variable.name.ada"},"2":{name:"punctuation.ada"},"3":{name:"entity.name.type.ada"}},match:/\b([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\p{space}*(:)\p{space}*([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+)\b/dgv},{match:/:=/dgv,name:"keyword.operator.new.ada"},{include:"#expression"}]},scalar_constraint:{name:"meta.declaration.constraint.scalar.ada",patterns:[{begin:/\b(d(?:igits|elta))\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"}},end:/(?=\brange\b|\bdigits\b|\bwith\b|;)/dgiv,patterns:[{include:"#expression"}]},{include:"#range_constraint"},{include:"#expression"}]},select_alternative:{patterns:[{begin:/\bterminate\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}}},{include:"#statement"}]},select_statement:{begin:/\bselect\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(select)\b/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},name:"meta.statement.select.ada",patterns:[{begin:/\b(?:(or)|(?<=select))\b/dgiv,beginCaptures:{"1":{name:"keyword.control.ada"}},end:/\b(?=(or|else|end))\b/dgiv,patterns:[{include:"#guard"},{include:"#select_alternative"}]},{begin:/\belse\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{include:"#statement"}]}]},signed_integer_type_definition:{patterns:[{include:"#range_constraint"}]},simple_loop_statement:{begin:/\bloop\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(loop)(\p{space}+[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)?\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"entity.name.label.ada"},"4":{name:"punctuation.ada"}},name:"meta.statement.loop.ada",patterns:[{include:"#statement"}]},single_protected_declaration:{begin:/\b(protected)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.protected.ada"}},end:/(?:\b(end)\p{space}*(\p{space}(?!))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.protected.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.protected.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(\bend\b|;))/dgiv,patterns:[{begin:/\bnew\b/dgiv,captures:{"0":{name:"keyword.ada"}},end:/\bwith\b/dgiv,patterns:[{match:/\band\b/dgiv,name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#protected_element_declaration"},{include:"#comment"}]},{include:"#comment"}]},single_task_declaration:{begin:/\b(task)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"}},end:/(?:\b(end)\p{space}*(\p{space}(?!))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{begin:/\bnew\b/dgiv,captures:{"0":{name:"keyword.ada"}},end:/\bwith\b/dgiv,patterns:[{match:/\band\b/dgiv,name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},statement:{patterns:[{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(end)\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}},patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#label"},{include:"#null_statement"},{include:"#return_statement"},{include:"#assignment_statement"},{include:"#exit_statement"},{include:"#goto_statement"},{include:"#requeue_statement"},{include:"#delay_statement"},{include:"#abort_statement"},{include:"#raise_statement"},{include:"#if_statement"},{include:"#case_statement"},{include:"#loop_statement"},{include:"#block_statement"},{include:"#select_statement"},{include:"#accept_statement"},{include:"#pragma"},{include:"#procedure_call_statement"},{include:"#comment"}]},string_literal:{captures:{"1":{name:"punctuation.definition.string.ada"},"2":{name:"punctuation.definition.string.ada"}},match:/(")[^\n]*?(")/dgv,name:"string.quoted.double.ada"},subprogram_body:{name:"meta.declaration.subprogram.body.ada",patterns:[{include:"#procedure_body"},{include:"#function_body"}]},subprogram_renaming_declaration:{begin:/\brenames\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with|;))/dgv,patterns:[{match:/[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_\.]+/dgv,name:"entity.name.function.ada"}]},subprogram_specification:{name:"meta.declaration.subprogram.specification.ada",patterns:[{include:"#procedure_specification"},{include:"#function_specification"}]},subtype_declaration:{begin:/\bsubtype\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.declaration.subtype.ada",patterns:[{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=;)/dgv,patterns:[{match:/\b(not\p{space}+null)\b/dgiv,name:"storage.modifier.ada"},{include:"#composite_constraint"},{include:"#aspect_specification"},{include:"#subtype_indication"}]},{begin:/(?<=subtype)/dgiv,end:/\b(?=is)\b/dgiv,patterns:[{include:"#subtype_mark"}]}]},subtype_indication:{name:"meta.declaration.indication.subtype.ada",patterns:[{include:"#scalar_constraint"},{include:"#subtype_mark"}]},subtype_mark:{patterns:[{match:/\b(access|aliased|not\p{space}+null|constant)\b/dgiv,name:"storage.visibility.ada"},{include:"#attribute"},{include:"#actual_parameter_part"},{begin:/\b(procedure|function)\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=([\;\)]))/dgv,patterns:[{include:"#parameter_profile"},{begin:/\breturn\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=([\;\)]))/dgv,patterns:[{include:"#subtype_mark"}]}]},{captures:{"0":{patterns:[{match:/[_\.]/dgv,name:"punctuation.ada"}]}},match:/\b[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._]+\b/dgv,name:"entity.name.type.ada"},{include:"#comment"}]},task_body:{begin:/\b(task)\p{space}+(body)\p{space}+(([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._])+)\b/dgiv,beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.task.ada"}},end:/(?:\b(end)\p{space}*(?:\p{space}(\3))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.task.body.ada",patterns:[{begin:/\bbegin\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=end)/dgiv,patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#aspect_specification"},{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/(?=(with|begin))/dgiv,patterns:[{include:"#declarative_item"}]}]},task_item:{patterns:[{include:"#aspect_clause"},{include:"#entry_declaration"}]},task_type_declaration:{begin:/\b(task)\p{space}+(type)\p{space}+(([\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\._])+)\b/dgiv,beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.task.ada"}},end:/(?:\b(end)\p{space}*(?:\p{space}(\3))?\p{space}*)?(;)/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.type.task.ada",patterns:[{include:"#known_discriminant_part"},{begin:/\bis\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(?=end)\b/dgiv,patterns:[{begin:/\bnew\b/dgiv,captures:{"0":{name:"keyword.ada"}},end:/\bwith\b/dgiv,patterns:[{match:/\band\b/dgiv,name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:/\bprivate\b/dgiv,name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},type_declaration:{name:"meta.declaration.type.ada",patterns:[{include:"#full_type_declaration"}]},type_definition:{name:"meta.declaration.type.definition.ada",patterns:[{include:"#enumeration_type_definition"},{include:"#integer_type_definition"},{include:"#real_type_definition"},{include:"#array_type_definition"},{include:"#record_type_definition"},{include:"#access_type_definition"},{include:"#interface_type_definition"},{include:"#derived_type_definition"}]},use_clause:{name:"meta.context.use.ada",patterns:[{include:"#use_type_clause"},{include:"#use_package_clause"}]},use_package_clause:{begin:/\buse\b/dgiv,beginCaptures:{"0":{name:"keyword.other.using.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.context.use.package.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#package_mark"}]},use_type_clause:{begin:/\b(use)\p{space}+(?:(all)\p{space}+)?(type)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.using.ada"},"2":{name:"keyword.modifier.ada"},"3":{name:"keyword.modifier.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.context.use.type.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#subtype_mark"}]},value:{patterns:[{include:"#based_literal"},{include:"#decimal_literal"},{include:"#character_literal"},{include:"#string_literal"}]},variant_part:{begin:/\bcase\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/\b(end)\p{space}+(case);/dgiv,endCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{name:"punctuation.ada"}},name:"meta.declaration.variant.ada",patterns:[{begin:/\b(?<=case)\b/dgiv,end:/\bis\b/dgiv,endCaptures:{"0":{name:"keyword.ada"}},patterns:[{match:/[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+/dgv,name:"variable.name.ada"},{include:"#comment"}]},{begin:/\b(?<=is)\b/dgiv,end:/\b(?=end)\b/dgiv,patterns:[{begin:/\bwhen\b/dgiv,beginCaptures:{"0":{name:"keyword.ada"}},end:/=>/dgv,endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{match:/\|/dgv,name:"punctuation.ada"},{match:/\bothers\b/dgiv,name:"keyword.ada"},{include:"#expression"}]},{include:"#component_item"}]}]},while_loop_statement:{begin:/\bwhile\b/dgiv,beginCaptures:{"0":{name:"keyword.control.ada"}},end:/\b(end)\p{space}+(loop)(\p{space}+[\p{L}\p{M}\p{N}\p{Pc}\p{Nd}_]+)?\p{space}*(;)/dgiv,endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"entity.name.label.ada"},"4":{name:"punctuation.ada"}},name:"meta.statement.loop.while.ada",patterns:[{begin:/(?<=while)\b/dgiv,end:/\bloop\b/dgiv,endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},with_clause:{begin:/\b(?:(limited)\p{space}+)?(?:(private)\p{space}+)?(with)\b/dgiv,beginCaptures:{"1":{name:"keyword.modifier.ada"},"2":{name:"storage.visibility.ada"},"3":{name:"keyword.other.using.ada"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.ada"}},name:"meta.context.with.ada",patterns:[{match:/,/dgv,name:"punctuation.ada"},{include:"#package_mark"}]}},scopeName:"source.ada",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({injectionSelector:"L:text.html -comment",name:"angular-expression",patterns:[{include:"#ngExpression"}],repository:{arrayLiteral:{begin:/\[/dgv,beginCaptures:{"0":{name:"meta.brace.square.ts"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.brace.square.ts"}},name:"meta.array.literal.ts",patterns:[{include:"#ngExpression"},{include:"#punctuationComma"}]},booleanLiteral:{patterns:[{match:/(?<!\.|\$)\btrue\b(?!\$)/dgv,name:"constant.language.boolean.true.ts"},{match:/(?<!\.|\$)\bfalse\b(?!\$)/dgv,name:"constant.language.boolean.false.ts"}]},expressionOperator:{patterns:[{captures:{"1":{name:"keyword.operator.logical.ts"},"2":{name:"entity.name.function.pipe.ng"}},match:/((?<!\|)\|(?!\|))\p{space}?([a-zA-Z0-9\-_\$]*)/dgv},{match:/(?<!\.|\$)\b(let)\b(?!\$)/dgv,name:"storage.type.ts"},{match:/(?<!\.|\$)\b(await)\b(?!\$)/dgv,name:"keyword.control.flow.ts"},{match:/(?<!\.|\$)\bdelete\b(?!\$)/dgv,name:"keyword.operator.expression.delete.ts"},{match:/(?<!\.|\$)\bin\b(?!\$)/dgv,name:"keyword.operator.expression.in.ts"},{match:/(?<!\.|\$)\bof\b(?!\$)/dgv,name:"keyword.operator.expression.of.ts"},{match:/(?<!\.|\$)\bif\b(?!\$)/dgv,name:"keyword.control.if.ts"},{match:/(?<!\.|\$)\belse\b(?!\$)/dgv,name:"keyword.control.else.ts"},{match:/(?<!\.|\$)\bthen\b(?!\$)/dgv,name:"keyword.control.then.ts"},{match:/(?<!\.|\$)\binstanceof\b(?!\$)/dgv,name:"keyword.operator.expression.instanceof.ts"},{match:/(?<!\.|\$)\bnew\b(?!\$)/dgv,name:"keyword.operator.new.ts"},{match:/(?<!\.|\$)\bvoid\b(?!\$)/dgv,name:"keyword.operator.expression.void.ts"},{begin:/(?<!\.|\$)\bas\b(?!\$)/dgv,beginCaptures:{"0":{name:"storage.type.as.ts"}},end:/(?=(?=\n?$)|"|'|[\;\,\:\}\)\]])/dgv,patterns:[{include:"#type"}]},{match:/\*=|(?<!\()\/=|%=|\+=|-=/dgv,name:"keyword.operator.assignment.compound.ts"},{match:/&=|\^=|<<=|>>=|>>>=|\|=/dgv,name:"keyword.operator.assignment.compound.bitwise.ts"},{match:/<<|>>>|>>/dgv,name:"keyword.operator.bitwise.shift.ts"},{match:/===|!==|==|!=/dgv,name:"keyword.operator.comparison.ts"},{match:/<=|>=|<>|<|>/dgv,name:"keyword.operator.relational.ts"},{match:/!|&&|\?\?|\|\|/dgv,name:"keyword.operator.logical.ts"},{match:/&|~|\^|\|/dgv,name:"keyword.operator.bitwise.ts"},{match:/=/dgv,name:"keyword.operator.assignment.ts"},{match:/--/dgv,name:"keyword.operator.decrement.ts"},{match:/\+\+/dgv,name:"keyword.operator.increment.ts"},{match:/%|\*|\/|-|\+/dgv,name:"keyword.operator.arithmetic.ts"},{captures:{"1":{name:"keyword.operator.arithmetic.ts"}},match:/(?<=[_\$\p{Alpha}\p{Nd}])\p{space}*(\/)(?![\/\*])/dgv},{include:"#typeofOperator"}]},functionCall:{begin:/(?=(\??\.\p{space}*)?([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*(<([^\<\>]|<[^\<\>]+>)+>\p{space}*)?\()/dgv,end:/(?<=\))(?!(\??\.\p{space}*)?([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*(<([^\<\>]|<[^\<\>]+>)+>\p{space}*)?\()/dgv,patterns:[{match:/\?/dgv,name:"punctuation.accessor.ts"},{match:/\./dgv,name:"punctuation.accessor.ts"},{match:/([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)/dgv,name:"entity.name.function.ts"},{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.ts"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#type"},{include:"#punctuationComma"}]},{include:"#parenExpression"}]},functionParameters:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.ts"}},name:"meta.parameters.ts",patterns:[{include:"#decorator"},{include:"#parameterName"},{include:"#variableInitializer"},{match:/,/dgv,name:"punctuation.separator.parameter.ts"}]},identifiers:{patterns:[{match:/([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)(?=\p{space}*\.\p{space}*prototype\b(?!\$))/dgv,name:"support.class.ts"},{captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"constant.other.object.property.ts"},"3":{name:"variable.other.object.property.ts"}},match:/([\?\!]?\.)\p{space}*(?:([\p{Upper}][_\$\p{Nd}\p{Upper}]*)|([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*))(?=\p{space}*\.\p{space}*[_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)/dgv},{captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"entity.name.function.ts"}},match:/(?:([\?\!]?\.)\p{space}*)?([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)(?=\p{space}*=\p{space}*((async\p{space}+)|(function\p{space}*[\(\<])|(function\p{space}+)|([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*\p{space}*=>)|((<([^\<\>]|<[^\<\>]+>)+>\p{space}*)?\(([^\(\)]|\([^\(\)]*\))*\)(\p{space}*:\p{space}*([^\n])*)?\p{space}*=>)))/dgv},{captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"constant.other.property.ts"}},match:/([\?\!]?\.)\p{space}*([\p{Upper}][_\$\p{Nd}\p{Upper}]*)(?![_\$\p{Alpha}\p{Nd}])/dgv},{captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"variable.other.property.ts"}},match:/([\?\!]?\.)\p{space}*([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)/dgv},{captures:{"1":{name:"constant.other.object.ts"},"2":{name:"variable.other.object.ts"}},match:/(?:([\p{Upper}][_\$\p{Nd}\p{Upper}]*)|([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*))(?=\p{space}*\.\p{space}*[_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)/dgv},{match:/([\p{Upper}][_\$\p{Nd}\p{Upper}]*)(?![_\$\p{Alpha}\p{Nd}])/dgv,name:"constant.character.other"},{match:/[_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.readwrite.ts"}]},literal:{name:"literal.ts",patterns:[{include:"#numericLiteral"},{include:"#booleanLiteral"},{include:"#nullLiteral"},{include:"#undefinedLiteral"},{include:"#numericConstantLiteral"},{include:"#arrayLiteral"},{include:"#thisLiteral"}]},ngExpression:{name:"meta.expression.ng",patterns:[{include:"#string"},{include:"#literal"},{include:"#ternaryExpression"},{include:"#expressionOperator"},{include:"#functionCall"},{include:"#identifiers"},{include:"#parenExpression"},{include:"#punctuationComma"},{include:"#punctuationAccessor"}]},nullLiteral:{match:/(?<!\.|\$)\bnull\b(?!\$)/dgv,name:"constant.language.null.ts"},numericConstantLiteral:{patterns:[{match:/(?<!\.|\$)\bNaN\b(?!\$)/dgv,name:"constant.language.nan.ts"},{match:/(?<!\.|\$)\bInfinity\b(?!\$)/dgv,name:"constant.language.infinity.ts"}]},numericLiteral:{patterns:[{match:/\b(?<!\$)0(x|X)[0-9a-fA-F]+\b(?!\$)/dgv,name:"constant.numeric.hex.ts"},{match:/\b(?<!\$)0(b|B)[01]+\b(?!\$)/dgv,name:"constant.numeric.binary.ts"},{match:/\\b(?<!\$)0(o|O)?[0-7]+\b(?!\$)/dgv,name:"constant.numeric.octal.ts"},{captures:{"0":{name:"constant.numeric.decimal.ts"},"1":{name:"meta.delimiter.decimal.period.ts"},"2":{name:"meta.delimiter.decimal.period.ts"},"3":{name:"meta.delimiter.decimal.period.ts"},"4":{name:"meta.delimiter.decimal.period.ts"},"5":{name:"meta.delimiter.decimal.period.ts"},"6":{name:"meta.delimiter.decimal.period.ts"}},match:/(?<!\$)(?:\b[0-9]+(\.)[0-9]+[eE][\+\-]?[0-9]+\b|#1[^\n]1E+3\b[0-9]+(\.)[eE][\+\-]?[0-9]+\b|#1[^\n]E+3\B(\.)[0-9]+[eE][\+\-]?[0-9]+\b|#[^\n]1E+3\b[0-9]+[eE][\+\-]?[0-9]+\b|#1E+3\b[0-9]+(\.)[0-9]+\b|#1[^\n]1\b[0-9]+(\.)\B|#1[^\n]\B(\.)[0-9]+\b|#[^\n]1\b[0-9]+\b(?!\.)#1)(?!\$)/dgv}]},parameterName:{patterns:[{captures:{"1":{name:"storage.modifier.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"keyword.operator.rest.ts"},"4":{name:"entity.name.function.ts"},"5":{name:"keyword.operator.optional.ts"}},match:/(?:\p{space}*\b(readonly)\p{space}+)?(?:\p{space}*\b(public|private|protected)\p{space}+)?(\.\.\.)?\p{space}*(?<!=|:)([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*(\??)(?=\p{space}*(=\p{space}*((async\p{space}+)|(function\p{space}*[\(\<])|(function\p{space}+)|([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*\p{space}*=>)|((<([^\<\>]|<[^\<\>]+>)+>\p{space}*)?\(([^\(\)]|\([^\(\)]*\))*\)(\p{space}*:\p{space}*([^\n])*)?\p{space}*=>)))|(:\p{space}*((<)|([\(]\p{space}*(([\)])|(\.\.\.)|([_\$\p{Alpha}\p{Nd}]+\p{space}*(([\:\,\?\=])|([\)]\p{space}*=>))))))))/dgv},{captures:{"1":{name:"storage.modifier.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"keyword.operator.rest.ts"},"4":{name:"variable.parameter.ts"},"5":{name:"keyword.operator.optional.ts"}},match:/(?:\p{space}*\b(readonly)\p{space}+)?(?:\p{space}*\b(public|private|protected)\p{space}+)?(\.\.\.)?\p{space}*(?<!=|:)([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*(\??)/dgv}]},parenExpression:{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#ngExpression"},{include:"#punctuationComma"}]},punctuationAccessor:{match:/\?\.|!\.|\./dgv,name:"punctuation.accessor.ts"},punctuationComma:{match:/,/dgv,name:"punctuation.separator.comma.ts"},punctuationSemicolon:{match:/;/dgv,name:"punctuation.terminator.statement.ts"},qstringDouble:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ts"}},end:/(")|([^\\\n](?=\n?$))/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"invalid.illegal.newline.ts"}},name:"string.quoted.double.ts",patterns:[{include:"#stringCharacterEscape"}]},qstringSingle:{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ts"}},end:/(')|([^\\\n](?=\n?$))/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"invalid.illegal.newline.ts"}},name:"string.quoted.single.ts",patterns:[{include:"#stringCharacterEscape"}]},string:{patterns:[{include:"#qstringSingle"},{include:"#qstringDouble"}]},stringCharacterEscape:{match:/\\(x\p{AHex}{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|[^\n]|(?=\n?$))/dgv,name:"constant.character.escape.ts"},ternaryExpression:{begin:/(?!\?\.\p{space}*[^\p{Nd}])(\?)(?!\?)/dgv,beginCaptures:{"1":{name:"keyword.operator.ternary.ts"}},end:/\p{space}*(:)/dgv,endCaptures:{"1":{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#ngExpression"}]},thisLiteral:{match:/(?<!\.|\$)\bthis\b(?!\$)/dgv,name:"variable.language.this.ts"},type:{name:"meta.type.ts",patterns:[{include:"#string"},{include:"#numericLiteral"},{include:"#typeBuiltinLiterals"},{include:"#typeTuple"},{include:"#typeObject"},{include:"#typeOperators"},{include:"#typeFnTypeParameters"},{include:"#typeParenOrFunctionParameters"},{include:"#typeName"}]},typeAnnotation:{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.ts"}},end:/(?=(?=\n?$)|[\,\)\;\}\]]|\/\/|")|(?==[^\>])|(?<=[\}\>\]\)]|[_\$\p{Alpha}])\p{space}*(?=\{)/dgv,name:"meta.type.annotation.ts",patterns:[{include:"#type"}]},typeBuiltinLiterals:{match:/(?<!\.|\$)\b(this|true|false|undefined|null)\b(?!\$)/dgv,name:"support.type.builtin.ts"},typeFnTypeParameters:{patterns:[{captures:{"1":{name:"keyword.control.new.ts"}},match:/(?<!\.|\$)\b(new)\b(?=\p{space}*<)/dgv,name:"meta.type.constructor.ts"},{begin:/(?<!\.|\$)\b(new)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.control.new.ts"}},end:/(?<=\))/dgv,name:"meta.type.constructor.ts",patterns:[{include:"#functionParameters"}]},{begin:/(?<=>)\p{space}*(?=\()/dgv,end:/(?<=\))/dgv,include:"#typeofOperator",name:"meta.type.function.ts",patterns:[{include:"#functionParameters"}]},{begin:/((?=[\(]\p{space}*(([\)])|(\.\.\.)|([_\$\p{Alpha}\p{Nd}]+\p{space}*(([\:\,\?\=])|([\)]\p{space}*=>))))))/dgv,end:/(?<=\))/dgv,name:"meta.type.function.ts",patterns:[{include:"#functionParameters"}]}]},typeName:{patterns:[{captures:{"1":{name:"entity.name.type.module.ts"},"2":{name:"punctuation.accessor.ts"}},match:/([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*([\?\!]?\.)/dgv},{match:/[_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.type.ts"}]},typeObject:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.ts"}},name:"meta.object.type.ts",patterns:[{include:"#typeObjectMembers"}]},typeObjectMembers:{patterns:[{include:"#typeAnnotation"},{include:"#punctuationComma"},{include:"#punctuationSemicolon"}]},typeOperators:{patterns:[{include:"#typeofOperator"},{match:/[\&\|]/dgv,name:"keyword.operator.type.ts"},{match:/(?<!\.|\$)\bkeyof\b(?!\$)/dgv,name:"keyword.operator.expression.keyof.ts"}]},typeParenOrFunctionParameters:{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.ts"}},name:"meta.type.paren.cover.ts",patterns:[{include:"#type"},{include:"#functionParameters"}]},typeTuple:{begin:/\[/dgv,beginCaptures:{"0":{name:"meta.brace.square.ts"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.brace.square.ts"}},name:"meta.type.tuple.ts",patterns:[{include:"#type"},{include:"#punctuationComma"}]},typeofOperator:{match:/(?<!\.|\$)\btypeof\b(?!\$)/dgv,name:"keyword.operator.expression.typeof.ts"},undefinedLiteral:{match:/(?<!\.|\$)\bundefined\b(?!\$)/dgv,name:"constant.language.undefined.ts"},variableInitializer:{begin:/(?<!=|!)(=)(?!=)/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.ts"}},end:/(?=(?=\n?$)|[\,\)\;\}\]])/dgv,patterns:[{include:"#ngExpression"}]}},scopeName:"expression.ng",displayName:undefined,embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({injectionSelector:"L:text.html -comment",name:"angular-expression",patterns:[{include:"#ngExpression"}],repository:{arrayLiteral:{begin:/\[/dgv,beginCaptures:{"0":{name:"meta.brace.square.ts"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.brace.square.ts"}},name:"meta.array.literal.ts",patterns:[{include:"#ngExpression"},{include:"#punctuationComma"}]},booleanLiteral:{patterns:[{match:/(?<![\.\$])\btrue\b(?!\$)/dgv,name:"constant.language.boolean.true.ts"},{match:/(?<![\.\$])\bfalse\b(?!\$)/dgv,name:"constant.language.boolean.false.ts"}]},expressionOperator:{patterns:[{captures:{"1":{name:"keyword.operator.logical.ts"},"2":{name:"entity.name.function.pipe.ng"}},match:/((?<!\|)\|(?!\|))\p{space}?([a-zA-Z0-9\-_\$]*)/dgv},{match:/(?<![\.\$])\b(let)\b(?!\$)/dgv,name:"storage.type.ts"},{match:/(?<![\.\$])\b(await)\b(?!\$)/dgv,name:"keyword.control.flow.ts"},{match:/(?<![\.\$])\bdelete\b(?!\$)/dgv,name:"keyword.operator.expression.delete.ts"},{match:/(?<![\.\$])\bin\b(?!\$)/dgv,name:"keyword.operator.expression.in.ts"},{match:/(?<![\.\$])\bof\b(?!\$)/dgv,name:"keyword.operator.expression.of.ts"},{match:/(?<![\.\$])\bif\b(?!\$)/dgv,name:"keyword.control.if.ts"},{match:/(?<![\.\$])\belse\b(?!\$)/dgv,name:"keyword.control.else.ts"},{match:/(?<![\.\$])\bthen\b(?!\$)/dgv,name:"keyword.control.then.ts"},{match:/(?<![\.\$])\binstanceof\b(?!\$)/dgv,name:"keyword.operator.expression.instanceof.ts"},{match:/(?<![\.\$])\bnew\b(?!\$)/dgv,name:"keyword.operator.new.ts"},{match:/(?<![\.\$])\bvoid\b(?!\$)/dgv,name:"keyword.operator.expression.void.ts"},{begin:/(?<![\.\$])\bas\b(?!\$)/dgv,beginCaptures:{"0":{name:"storage.type.as.ts"}},end:/(?=(?=\n?$)|["'\;\,\:\}\)\]])/dgv,patterns:[{include:"#type"}]},{match:/\*=|(?<!\()\/=|%=|\+=|-=/dgv,name:"keyword.operator.assignment.compound.ts"},{match:/&=|\^=|<<=|>>=|>>>=|\|=/dgv,name:"keyword.operator.assignment.compound.bitwise.ts"},{match:/<<|>>>|>>/dgv,name:"keyword.operator.bitwise.shift.ts"},{match:/(?:==|!=)(?:=|)/dgv,name:"keyword.operator.comparison.ts"},{match:/<=|>=|<>|[\<\>]/dgv,name:"keyword.operator.relational.ts"},{match:/!|&&|\?\?|\|\|/dgv,name:"keyword.operator.logical.ts"},{match:/[\&\~\^\|]/dgv,name:"keyword.operator.bitwise.ts"},{match:/=/dgv,name:"keyword.operator.assignment.ts"},{match:/--/dgv,name:"keyword.operator.decrement.ts"},{match:/\+\+/dgv,name:"keyword.operator.increment.ts"},{match:/[\%\*\/\-\+]/dgv,name:"keyword.operator.arithmetic.ts"},{captures:{"1":{name:"keyword.operator.arithmetic.ts"}},match:/(?<=[_\$\p{Alpha}\p{Nd}])\p{space}*(\/)(?![\/\*])/dgv},{include:"#typeofOperator"}]},functionCall:{begin:/(?=(\??\.\p{space}*)?([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*(<([^\<\>]|<[^\<\>]+>)+>\p{space}*)?\()/dgv,end:/(?<=\))(?!(\??\.\p{space}*)?([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*(<([^\<\>]|<[^\<\>]+>)+>\p{space}*)?\()/dgv,patterns:[{match:/\?/dgv,name:"punctuation.accessor.ts"},{match:/\./dgv,name:"punctuation.accessor.ts"},{match:/([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)/dgv,name:"entity.name.function.ts"},{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.ts"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#type"},{include:"#punctuationComma"}]},{include:"#parenExpression"}]},functionParameters:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.ts"}},name:"meta.parameters.ts",patterns:[{include:"#decorator"},{include:"#parameterName"},{include:"#variableInitializer"},{match:/,/dgv,name:"punctuation.separator.parameter.ts"}]},identifiers:{patterns:[{match:/([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)(?=\p{space}*\.\p{space}*prototype\b(?!\$))/dgv,name:"support.class.ts"},{captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"constant.other.object.property.ts"},"3":{name:"variable.other.object.property.ts"}},match:/([\?\!]?\.)\p{space}*(?:(\p{Upper}[_\$\p{Nd}\p{Upper}]*)|([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*))(?=\p{space}*\.\p{space}*[_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)/dgv},{captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"entity.name.function.ts"}},match:/(?:([\?\!]?\.)\p{space}*)?([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)(?=\p{space}*=\p{space}*((async\p{space}+)|(function\p{space}*[\(\<])|(function\p{space}+)|([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*\p{space}*=>)|((<([^\<\>]|<[^\<\>]+>)+>\p{space}*)?\(([^\(\)]|\([^\(\)]*\))*\)(\p{space}*:\p{space}*([^\n])*)?\p{space}*=>)))/dgv},{captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"constant.other.property.ts"}},match:/([\?\!]?\.)\p{space}*(\p{Upper}[_\$\p{Nd}\p{Upper}]*)(?![_\$\p{Alpha}\p{Nd}])/dgv},{captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"variable.other.property.ts"}},match:/([\?\!]?\.)\p{space}*([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)/dgv},{captures:{"1":{name:"constant.other.object.ts"},"2":{name:"variable.other.object.ts"}},match:/(?:(\p{Upper}[_\$\p{Nd}\p{Upper}]*)|([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*))(?=\p{space}*\.\p{space}*[_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)/dgv},{match:/(\p{Upper}[_\$\p{Nd}\p{Upper}]*)(?![_\$\p{Alpha}\p{Nd}])/dgv,name:"constant.character.other"},{match:/[_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.readwrite.ts"}]},literal:{name:"literal.ts",patterns:[{include:"#numericLiteral"},{include:"#booleanLiteral"},{include:"#nullLiteral"},{include:"#undefinedLiteral"},{include:"#numericConstantLiteral"},{include:"#arrayLiteral"},{include:"#thisLiteral"}]},ngExpression:{name:"meta.expression.ng",patterns:[{include:"#string"},{include:"#literal"},{include:"#ternaryExpression"},{include:"#expressionOperator"},{include:"#functionCall"},{include:"#identifiers"},{include:"#parenExpression"},{include:"#punctuationComma"},{include:"#punctuationAccessor"}]},nullLiteral:{match:/(?<![\.\$])\bnull\b(?!\$)/dgv,name:"constant.language.null.ts"},numericConstantLiteral:{patterns:[{match:/(?<![\.\$])\bNaN\b(?!\$)/dgv,name:"constant.language.nan.ts"},{match:/(?<![\.\$])\bInfinity\b(?!\$)/dgv,name:"constant.language.infinity.ts"}]},numericLiteral:{patterns:[{match:/\b(?<!\$)0([xX])\p{AHex}+\b(?!\$)/dgv,name:"constant.numeric.hex.ts"},{match:/\b(?<!\$)0([bB])[01]+\b(?!\$)/dgv,name:"constant.numeric.binary.ts"},{match:/\\b(?<!\$)0([oO])?[0-7]+\b(?!\$)/dgv,name:"constant.numeric.octal.ts"},{captures:{"0":{name:"constant.numeric.decimal.ts"},"1":{name:"meta.delimiter.decimal.period.ts"},"2":{name:"meta.delimiter.decimal.period.ts"},"3":{name:"meta.delimiter.decimal.period.ts"},"4":{name:"meta.delimiter.decimal.period.ts"},"5":{name:"meta.delimiter.decimal.period.ts"},"6":{name:"meta.delimiter.decimal.period.ts"}},match:/(?<!\$)(?:\b[0-9]+(\.)[0-9]+[eE][\+\-]?[0-9]+\b|\b[0-9]+(\.)[eE][\+\-]?[0-9]+\b|\B(\.)[0-9]+[eE][\+\-]?[0-9]+\b|\b[0-9]+[eE][\+\-]?[0-9]+\b|\b[0-9]+(\.)\B|\B(\.)[0-9]+\b|\b[0-9]+\b(?!\.))(?!\$)/dgv}]},parameterName:{patterns:[{captures:{"1":{name:"storage.modifier.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"keyword.operator.rest.ts"},"4":{name:"entity.name.function.ts"},"5":{name:"keyword.operator.optional.ts"}},match:/(?:\p{space}*\b(readonly)\p{space}+)?(?:\p{space}*\b(p(?:ublic|rivate|rotected))\p{space}+)?(\.\.\.)?\p{space}*(?<![\=\:])([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*(\??)(?=\p{space}*(=\p{space}*((async\p{space}+)|(function\p{space}*[\(\<])|(function\p{space}+)|([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*\p{space}*=>)|((<([^\<\>]|<[^\<\>]+>)+>\p{space}*)?\(([^\(\)]|\([^\(\)]*\))*\)(\p{space}*:\p{space}*([^\n])*)?\p{space}*=>)))|(:\p{space}*((<)|(\(\p{space}*((\))|(\.\.\.)|([_\$\p{Alpha}\p{Nd}]+\p{space}*(([\:\,\?\=])|(\)\p{space}*=>))))))))/dgv},{captures:{"1":{name:"storage.modifier.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"keyword.operator.rest.ts"},"4":{name:"variable.parameter.ts"},"5":{name:"keyword.operator.optional.ts"}},match:/(?:\p{space}*\b(readonly)\p{space}+)?(?:\p{space}*\b(p(?:ublic|rivate|rotected))\p{space}+)?(\.\.\.)?\p{space}*(?<![\=\:])([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*(\??)/dgv}]},parenExpression:{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#ngExpression"},{include:"#punctuationComma"}]},punctuationAccessor:{match:/\?\.|!\.|\./dgv,name:"punctuation.accessor.ts"},punctuationComma:{match:/,/dgv,name:"punctuation.separator.comma.ts"},punctuationSemicolon:{match:/;/dgv,name:"punctuation.terminator.statement.ts"},qstringDouble:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ts"}},end:/(")|([^\\\n](?=\n?$))/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"invalid.illegal.newline.ts"}},name:"string.quoted.double.ts",patterns:[{include:"#stringCharacterEscape"}]},qstringSingle:{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ts"}},end:/(')|([^\\\n](?=\n?$))/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"invalid.illegal.newline.ts"}},name:"string.quoted.single.ts",patterns:[{include:"#stringCharacterEscape"}]},string:{patterns:[{include:"#qstringSingle"},{include:"#qstringDouble"}]},stringCharacterEscape:{match:/\\(x\p{AHex}{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|[^\n]|(?=\n?$))/dgv,name:"constant.character.escape.ts"},ternaryExpression:{begin:/(?!\?\.\p{space}*\P{Nd})(\?)(?!\?)/dgv,beginCaptures:{"1":{name:"keyword.operator.ternary.ts"}},end:/\p{space}*(:)/dgv,endCaptures:{"1":{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#ngExpression"}]},thisLiteral:{match:/(?<![\.\$])\bthis\b(?!\$)/dgv,name:"variable.language.this.ts"},type:{name:"meta.type.ts",patterns:[{include:"#string"},{include:"#numericLiteral"},{include:"#typeBuiltinLiterals"},{include:"#typeTuple"},{include:"#typeObject"},{include:"#typeOperators"},{include:"#typeFnTypeParameters"},{include:"#typeParenOrFunctionParameters"},{include:"#typeName"}]},typeAnnotation:{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.type.annotation.ts"}},end:/(?=(?=\n?$)|[\,\)\;\}\]]|\/\/|")|(?==[^\>])|(?<=[\}\>\]\)_\$\p{Alpha}])\p{space}*(?=\{)/dgv,name:"meta.type.annotation.ts",patterns:[{include:"#type"}]},typeBuiltinLiterals:{match:/(?<![\.\$])\b(this|true|false|undefined|null)\b(?!\$)/dgv,name:"support.type.builtin.ts"},typeFnTypeParameters:{patterns:[{captures:{"1":{name:"keyword.control.new.ts"}},match:/(?<![\.\$])\b(new)\b(?=\p{space}*<)/dgv,name:"meta.type.constructor.ts"},{begin:/(?<![\.\$])\b(new)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"keyword.control.new.ts"}},end:/(?<=\))/dgv,name:"meta.type.constructor.ts",patterns:[{include:"#functionParameters"}]},{begin:/(?<=>)\p{space}*(?=\()/dgv,end:/(?<=\))/dgv,include:"#typeofOperator",name:"meta.type.function.ts",patterns:[{include:"#functionParameters"}]},{begin:/((?=\(\p{space}*((\))|(\.\.\.)|([_\$\p{Alpha}\p{Nd}]+\p{space}*(([\:\,\?\=])|(\)\p{space}*=>))))))/dgv,end:/(?<=\))/dgv,name:"meta.type.function.ts",patterns:[{include:"#functionParameters"}]}]},typeName:{patterns:[{captures:{"1":{name:"entity.name.type.module.ts"},"2":{name:"punctuation.accessor.ts"}},match:/([_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*)\p{space}*([\?\!]?\.)/dgv},{match:/[_\$\p{Alpha}][_\$\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.type.ts"}]},typeObject:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.ts"}},name:"meta.object.type.ts",patterns:[{include:"#typeObjectMembers"}]},typeObjectMembers:{patterns:[{include:"#typeAnnotation"},{include:"#punctuationComma"},{include:"#punctuationSemicolon"}]},typeOperators:{patterns:[{include:"#typeofOperator"},{match:/[\&\|]/dgv,name:"keyword.operator.type.ts"},{match:/(?<![\.\$])\bkeyof\b(?!\$)/dgv,name:"keyword.operator.expression.keyof.ts"}]},typeParenOrFunctionParameters:{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.ts"}},name:"meta.type.paren.cover.ts",patterns:[{include:"#type"},{include:"#functionParameters"}]},typeTuple:{begin:/\[/dgv,beginCaptures:{"0":{name:"meta.brace.square.ts"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.brace.square.ts"}},name:"meta.type.tuple.ts",patterns:[{include:"#type"},{include:"#punctuationComma"}]},typeofOperator:{match:/(?<![\.\$])\btypeof\b(?!\$)/dgv,name:"keyword.operator.expression.typeof.ts"},undefinedLiteral:{match:/(?<![\.\$])\bundefined\b(?!\$)/dgv,name:"constant.language.undefined.ts"},variableInitializer:{begin:/(?<![\=\!])(=)(?!=)/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.ts"}},end:/(?=(?=\n?$)|[\,\)\;\}\]])/dgv,patterns:[{include:"#ngExpression"}]}},scopeName:"expression.ng",displayName:undefined,embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
@@ -4,7 +4,7 @@ import angular_let_declaration from './angular-let-declaration.mjs'
4
4
  import angular_template from './angular-template.mjs'
5
5
  import angular_template_blocks from './angular-template-blocks.mjs'
6
6
 
7
- const lang = Object.freeze({displayName:"Angular HTML",injections:{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{comment:"Uses R: to ensure this matches after any other injections.",patterns:[{match:/</dgv,name:"invalid.illegal.bad-angle-bracket.html"}]}},name:"angular-html",patterns:[{include:"text.html.basic#core-minus-invalid"},{begin:/(<\/?)([\p{L}\p{M}\p{N}\p{Pc}][^\p{space}\>]*)(?<!\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:/((?: ?\/)?>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.unrecognized.html.derivative",patterns:[{include:"text.html.basic#attribute"}]}],scopeName:"text.html.derivative.ng",embeddedLangs:["html","angular-expression","angular-let-declaration","angular-template","angular-template-blocks"],aliases:undefined})
7
+ const lang = Object.freeze({displayName:"Angular HTML",injections:{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{patterns:[{match:/</dgv,name:"invalid.illegal.bad-angle-bracket.html"}]}},name:"angular-html",patterns:[{include:"text.html.basic#core-minus-invalid"},{begin:/(<\/?)([\p{L}\p{M}\p{N}\p{Pc}][^\p{space}\>]*)(?<!\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:/((?: ?\/)?>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.unrecognized.html.derivative",patterns:[{include:"text.html.basic#attribute"}]}],scopeName:"text.html.derivative.ng",embeddedLangs:["html","angular-expression","angular-let-declaration","angular-template","angular-template-blocks"],aliases:undefined})
8
8
 
9
9
  export default [
10
10
  ...html,
@@ -1,6 +1,6 @@
1
1
  import scss from './scss.mjs'
2
2
 
3
- const lang = Object.freeze({injectTo:["source.ts.ng"],injectionSelector:"L:source.ts#meta.decorator.ts -comment",name:"angular-inline-style",patterns:[{include:"#inlineStyles"}],repository:{inlineStyles:{begin:/(styles)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"meta.object-literal.key.ts"},"2":{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:/(?=,|\})/dgv,patterns:[{include:"#tsParenExpression"},{include:"#tsBracketExpression"},{include:"#style"}]},style:{begin:/\p{space}*([\`\|'\|"])/dgv,beginCaptures:{"1":{name:"string"}},contentName:"source.css.scss",end:/\1()/dgv,endCaptures:{"0":{name:"string"}},patterns:[{include:"source.css.scss"}]},tsBracketExpression:{begin:/\p{space}*(\[)/dgvy,beginCaptures:{"1":{name:"meta.array.literal.ts meta.brace.square.ts"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.array.literal.ts meta.brace.square.ts"}},patterns:[{include:"#style"}]},tsParenExpression:{begin:/\p{space}*(\()/dgvy,beginCaptures:{"1":{name:"meta.brace.round.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"$self"},{include:"#tsBracketExpression"},{include:"#style"}]}},scopeName:"inline-styles.ng",displayName:undefined,embeddedLangs:["scss"],aliases:undefined})
3
+ const lang = Object.freeze({injectTo:["source.ts.ng"],injectionSelector:"L:source.ts#meta.decorator.ts -comment",name:"angular-inline-style",patterns:[{include:"#inlineStyles"}],repository:{inlineStyles:{begin:/(styles)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"meta.object-literal.key.ts"},"2":{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:/(?=[\,\}])/dgv,patterns:[{include:"#tsParenExpression"},{include:"#tsBracketExpression"},{include:"#style"}]},style:{begin:/\p{space}*([\`\|'"])/dgv,beginCaptures:{"1":{name:"string"}},contentName:"source.css.scss",end:/\1()/dgv,endCaptures:{"0":{name:"string"}},patterns:[{include:"source.css.scss"}]},tsBracketExpression:{begin:/\p{space}*(\[)/dgvy,beginCaptures:{"1":{name:"meta.array.literal.ts meta.brace.square.ts"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.array.literal.ts meta.brace.square.ts"}},patterns:[{include:"#style"}]},tsParenExpression:{begin:/\p{space}*(\()/dgvy,beginCaptures:{"1":{name:"meta.brace.round.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"$self"},{include:"#tsBracketExpression"},{include:"#style"}]}},scopeName:"inline-styles.ng",displayName:undefined,embeddedLangs:["scss"],aliases:undefined})
4
4
 
5
5
  export default [
6
6
  ...scss,
@@ -1,7 +1,7 @@
1
1
  import angular_html from './angular-html.mjs'
2
2
  import angular_template from './angular-template.mjs'
3
3
 
4
- const lang = Object.freeze({injectTo:["source.ts.ng"],injectionSelector:"L:meta.decorator.ts -comment -text.html",name:"angular-inline-template",patterns:[{include:"#inlineTemplate"}],repository:{inlineTemplate:{begin:/(template)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"meta.object-literal.key.ts"},"2":{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:/(?=,|\})/dgv,patterns:[{include:"#tsParenExpression"},{include:"#ngTemplate"}]},ngTemplate:{begin:/\p{space}*([\`\|'\|"])/dgvy,beginCaptures:{"1":{name:"string"}},contentName:"text.html.derivative.ng",end:/\1()/dgv,endCaptures:{"0":{name:"string"}},patterns:[{include:"text.html.derivative.ng"},{include:"template.ng"}]},tsParenExpression:{begin:/\p{space}*(\()/dgvy,beginCaptures:{"1":{name:"meta.brace.round.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#tsParenExpression"},{include:"#ngTemplate"}]}},scopeName:"inline-template.ng",displayName:undefined,embeddedLangs:["angular-html","angular-template"],aliases:undefined})
4
+ const lang = Object.freeze({injectTo:["source.ts.ng"],injectionSelector:"L:meta.decorator.ts -comment -text.html",name:"angular-inline-template",patterns:[{include:"#inlineTemplate"}],repository:{inlineTemplate:{begin:/(template)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"meta.object-literal.key.ts"},"2":{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:/(?=[\,\}])/dgv,patterns:[{include:"#tsParenExpression"},{include:"#ngTemplate"}]},ngTemplate:{begin:/\p{space}*([\`\|'"])/dgvy,beginCaptures:{"1":{name:"string"}},contentName:"text.html.derivative.ng",end:/\1()/dgv,endCaptures:{"0":{name:"string"}},patterns:[{include:"text.html.derivative.ng"},{include:"template.ng"}]},tsParenExpression:{begin:/\p{space}*(\()/dgvy,beginCaptures:{"1":{name:"meta.brace.round.ts"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#tsParenExpression"},{include:"#ngTemplate"}]}},scopeName:"inline-template.ng",displayName:undefined,embeddedLangs:["angular-html","angular-template"],aliases:undefined})
5
5
 
6
6
  export default [
7
7
  ...angular_html,