shiki 1.17.6 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/dist/langs/abap.mjs +1 -1
  2. package/dist/langs/actionscript-3.mjs +1 -1
  3. package/dist/langs/ada.mjs +1 -1
  4. package/dist/langs/angular-expression.mjs +1 -1
  5. package/dist/langs/angular-html.mjs +1 -1
  6. package/dist/langs/angular-inline-style.mjs +1 -1
  7. package/dist/langs/angular-inline-template.mjs +1 -1
  8. package/dist/langs/angular-let-declaration.mjs +1 -1
  9. package/dist/langs/angular-template-blocks.mjs +1 -1
  10. package/dist/langs/angular-template.mjs +1 -1
  11. package/dist/langs/angular-ts.mjs +1 -1
  12. package/dist/langs/apache.mjs +1 -1
  13. package/dist/langs/apex.mjs +1 -1
  14. package/dist/langs/apl.mjs +1 -1
  15. package/dist/langs/applescript.mjs +1 -1
  16. package/dist/langs/ara.mjs +1 -1
  17. package/dist/langs/asciidoc.mjs +1 -1
  18. package/dist/langs/asm.mjs +1 -1
  19. package/dist/langs/astro.mjs +1 -1
  20. package/dist/langs/awk.mjs +1 -1
  21. package/dist/langs/ballerina.mjs +1 -1
  22. package/dist/langs/bat.mjs +1 -1
  23. package/dist/langs/beancount.mjs +1 -1
  24. package/dist/langs/berry.mjs +1 -1
  25. package/dist/langs/bibtex.mjs +1 -1
  26. package/dist/langs/bicep.mjs +1 -1
  27. package/dist/langs/blade.mjs +1 -1
  28. package/dist/langs/c.mjs +1 -1
  29. package/dist/langs/cadence.mjs +1 -1
  30. package/dist/langs/clarity.mjs +1 -1
  31. package/dist/langs/clojure.mjs +1 -1
  32. package/dist/langs/cmake.mjs +1 -1
  33. package/dist/langs/cobol.mjs +1 -1
  34. package/dist/langs/codeowners.mjs +1 -1
  35. package/dist/langs/codeql.mjs +1 -1
  36. package/dist/langs/coffee.mjs +1 -1
  37. package/dist/langs/common-lisp.mjs +1 -1
  38. package/dist/langs/coq.mjs +1 -1
  39. package/dist/langs/cpp-macro.mjs +1 -1
  40. package/dist/langs/cpp.mjs +1 -1
  41. package/dist/langs/crystal.mjs +1 -1
  42. package/dist/langs/csharp.mjs +1 -1
  43. package/dist/langs/css.mjs +1 -1
  44. package/dist/langs/csv.mjs +1 -1
  45. package/dist/langs/cue.mjs +1 -1
  46. package/dist/langs/cypher.mjs +1 -1
  47. package/dist/langs/d.mjs +1 -1
  48. package/dist/langs/dart.mjs +1 -1
  49. package/dist/langs/dax.mjs +1 -1
  50. package/dist/langs/desktop.mjs +1 -1
  51. package/dist/langs/diff.mjs +1 -1
  52. package/dist/langs/docker.mjs +1 -1
  53. package/dist/langs/dotenv.mjs +1 -1
  54. package/dist/langs/dream-maker.mjs +1 -1
  55. package/dist/langs/edge.mjs +1 -1
  56. package/dist/langs/elixir.mjs +1 -1
  57. package/dist/langs/elm.mjs +1 -1
  58. package/dist/langs/emacs-lisp.mjs +1 -1
  59. package/dist/langs/erb.mjs +1 -1
  60. package/dist/langs/erlang.mjs +1 -1
  61. package/dist/langs/es-tag-css.mjs +1 -1
  62. package/dist/langs/es-tag-glsl.mjs +1 -1
  63. package/dist/langs/es-tag-html.mjs +1 -1
  64. package/dist/langs/es-tag-sql.mjs +1 -1
  65. package/dist/langs/es-tag-xml.mjs +1 -1
  66. package/dist/langs/fennel.mjs +1 -1
  67. package/dist/langs/fish.mjs +1 -1
  68. package/dist/langs/fluent.mjs +1 -1
  69. package/dist/langs/fortran-fixed-form.mjs +1 -1
  70. package/dist/langs/fortran-free-form.mjs +1 -1
  71. package/dist/langs/fsharp.mjs +1 -1
  72. package/dist/langs/gdresource.mjs +1 -1
  73. package/dist/langs/gdscript.mjs +1 -1
  74. package/dist/langs/gdshader.mjs +1 -1
  75. package/dist/langs/genie.mjs +1 -1
  76. package/dist/langs/gherkin.mjs +1 -1
  77. package/dist/langs/git-commit.mjs +1 -1
  78. package/dist/langs/git-rebase.mjs +1 -1
  79. package/dist/langs/gleam.mjs +1 -1
  80. package/dist/langs/glimmer-js.mjs +1 -1
  81. package/dist/langs/glimmer-ts.mjs +1 -1
  82. package/dist/langs/glsl.mjs +1 -1
  83. package/dist/langs/gnuplot.mjs +1 -1
  84. package/dist/langs/go.mjs +1 -1
  85. package/dist/langs/graphql.mjs +1 -1
  86. package/dist/langs/groovy.mjs +1 -1
  87. package/dist/langs/hack.mjs +1 -5
  88. package/dist/langs/haml.mjs +1 -1
  89. package/dist/langs/handlebars.mjs +1 -1
  90. package/dist/langs/haskell.mjs +1 -1
  91. package/dist/langs/haxe.mjs +1 -1
  92. package/dist/langs/hcl.mjs +1 -1
  93. package/dist/langs/hjson.mjs +1 -1
  94. package/dist/langs/hlsl.mjs +1 -1
  95. package/dist/langs/html-derivative.mjs +1 -1
  96. package/dist/langs/html.mjs +1 -1
  97. package/dist/langs/http.mjs +1 -1
  98. package/dist/langs/hxml.mjs +1 -1
  99. package/dist/langs/hy.mjs +1 -1
  100. package/dist/langs/imba.mjs +1 -1
  101. package/dist/langs/ini.mjs +1 -1
  102. package/dist/langs/java.mjs +1 -1
  103. package/dist/langs/javascript.mjs +1 -1
  104. package/dist/langs/jinja-html.mjs +1 -1
  105. package/dist/langs/jinja.mjs +1 -1
  106. package/dist/langs/jison.mjs +1 -1
  107. package/dist/langs/json.mjs +1 -1
  108. package/dist/langs/json5.mjs +1 -1
  109. package/dist/langs/jsonc.mjs +1 -1
  110. package/dist/langs/jsonl.mjs +1 -1
  111. package/dist/langs/jsonnet.mjs +1 -1
  112. package/dist/langs/jssm.mjs +1 -1
  113. package/dist/langs/jsx.mjs +1 -1
  114. package/dist/langs/julia.mjs +1 -1
  115. package/dist/langs/kotlin.mjs +1 -1
  116. package/dist/langs/kusto.mjs +1 -1
  117. package/dist/langs/latex.mjs +1 -1
  118. package/dist/langs/lean.mjs +1 -1
  119. package/dist/langs/less.mjs +1 -1
  120. package/dist/langs/liquid.mjs +1 -1
  121. package/dist/langs/log.mjs +1 -1
  122. package/dist/langs/logo.mjs +1 -1
  123. package/dist/langs/lua.mjs +1 -1
  124. package/dist/langs/luau.mjs +1 -1
  125. package/dist/langs/make.mjs +1 -1
  126. package/dist/langs/markdown-vue.mjs +1 -1
  127. package/dist/langs/markdown.mjs +1 -1
  128. package/dist/langs/marko.mjs +1 -1
  129. package/dist/langs/matlab.mjs +1 -1
  130. package/dist/langs/mdc.mjs +1 -1
  131. package/dist/langs/mdx.mjs +1 -1
  132. package/dist/langs/mermaid.mjs +1 -1
  133. package/dist/langs/mojo.mjs +1 -1
  134. package/dist/langs/move.mjs +1 -1
  135. package/dist/langs/narrat.mjs +1 -1
  136. package/dist/langs/nextflow.mjs +1 -1
  137. package/dist/langs/nginx.mjs +1 -1
  138. package/dist/langs/nim.mjs +1 -1
  139. package/dist/langs/nix.mjs +1 -1
  140. package/dist/langs/nushell.mjs +1 -1
  141. package/dist/langs/objective-c.mjs +1 -1
  142. package/dist/langs/objective-cpp.mjs +1 -1
  143. package/dist/langs/ocaml.mjs +1 -1
  144. package/dist/langs/pascal.mjs +1 -1
  145. package/dist/langs/perl.mjs +1 -1
  146. package/dist/langs/php.mjs +1 -1
  147. package/dist/langs/plsql.mjs +1 -1
  148. package/dist/langs/po.mjs +1 -1
  149. package/dist/langs/postcss.mjs +1 -1
  150. package/dist/langs/powerquery.mjs +1 -1
  151. package/dist/langs/powershell.mjs +1 -1
  152. package/dist/langs/prisma.mjs +1 -1
  153. package/dist/langs/prolog.mjs +1 -1
  154. package/dist/langs/proto.mjs +1 -1
  155. package/dist/langs/pug.mjs +1 -1
  156. package/dist/langs/puppet.mjs +1 -1
  157. package/dist/langs/purescript.mjs +1 -1
  158. package/dist/langs/python.mjs +1 -1
  159. package/dist/langs/qml.mjs +1 -1
  160. package/dist/langs/qmldir.mjs +1 -1
  161. package/dist/langs/qss.mjs +1 -1
  162. package/dist/langs/r.mjs +1 -1
  163. package/dist/langs/racket.mjs +1 -1
  164. package/dist/langs/raku.mjs +1 -1
  165. package/dist/langs/razor.mjs +1 -1
  166. package/dist/langs/reg.mjs +1 -1
  167. package/dist/langs/regexp.mjs +1 -1
  168. package/dist/langs/rel.mjs +1 -1
  169. package/dist/langs/riscv.mjs +1 -1
  170. package/dist/langs/rst.mjs +1 -1
  171. package/dist/langs/ruby.mjs +1 -1
  172. package/dist/langs/rust.mjs +1 -1
  173. package/dist/langs/sas.mjs +1 -1
  174. package/dist/langs/sass.mjs +1 -1
  175. package/dist/langs/scala.mjs +1 -1
  176. package/dist/langs/scheme.mjs +1 -1
  177. package/dist/langs/scss.mjs +1 -1
  178. package/dist/langs/shaderlab.mjs +1 -1
  179. package/dist/langs/shellscript.mjs +1 -1
  180. package/dist/langs/shellsession.mjs +1 -1
  181. package/dist/langs/smalltalk.mjs +1 -1
  182. package/dist/langs/solidity.mjs +1 -1
  183. package/dist/langs/soy.mjs +1 -1
  184. package/dist/langs/sparql.mjs +1 -1
  185. package/dist/langs/splunk.mjs +1 -1
  186. package/dist/langs/sql.mjs +1 -1
  187. package/dist/langs/ssh-config.mjs +1 -1
  188. package/dist/langs/stata.mjs +1 -3
  189. package/dist/langs/stylus.mjs +1 -1
  190. package/dist/langs/svelte.mjs +1 -1
  191. package/dist/langs/swift.mjs +1 -4
  192. package/dist/langs/system-verilog.mjs +1 -1
  193. package/dist/langs/systemd.mjs +1 -1
  194. package/dist/langs/tasl.mjs +1 -1
  195. package/dist/langs/tcl.mjs +1 -1
  196. package/dist/langs/templ.mjs +1 -1
  197. package/dist/langs/terraform.mjs +1 -1
  198. package/dist/langs/tex.mjs +1 -1
  199. package/dist/langs/toml.mjs +1 -1
  200. package/dist/langs/ts-tags.mjs +1 -1
  201. package/dist/langs/tsv.mjs +1 -1
  202. package/dist/langs/tsx.mjs +1 -1
  203. package/dist/langs/turtle.mjs +1 -1
  204. package/dist/langs/twig.mjs +1 -1
  205. package/dist/langs/typescript.mjs +1 -1
  206. package/dist/langs/typespec.mjs +1 -1
  207. package/dist/langs/typst.mjs +1 -1
  208. package/dist/langs/v.mjs +1 -1
  209. package/dist/langs/vala.mjs +1 -1
  210. package/dist/langs/vb.mjs +1 -1
  211. package/dist/langs/verilog.mjs +1 -1
  212. package/dist/langs/vhdl.mjs +1 -1
  213. package/dist/langs/viml.mjs +1 -1
  214. package/dist/langs/vue-directives.mjs +1 -1
  215. package/dist/langs/vue-html.mjs +1 -1
  216. package/dist/langs/vue-interpolations.mjs +1 -1
  217. package/dist/langs/vue-sfc-style-variable-injection.mjs +1 -1
  218. package/dist/langs/vue.mjs +1 -1
  219. package/dist/langs/vyper.mjs +1 -1
  220. package/dist/langs/wasm.mjs +1 -1
  221. package/dist/langs/wenyan.mjs +1 -1
  222. package/dist/langs/wgsl.mjs +1 -1
  223. package/dist/langs/wikitext.mjs +1 -1
  224. package/dist/langs/wolfram.mjs +1 -1
  225. package/dist/langs/xml.mjs +1 -1
  226. package/dist/langs/xsl.mjs +1 -1
  227. package/dist/langs/yaml.mjs +1 -1
  228. package/dist/langs/zenscript.mjs +1 -1
  229. package/dist/langs/zig.mjs +1 -1
  230. package/dist/themes/andromeeda.mjs +1 -329
  231. package/dist/themes/aurora-x.mjs +1 -671
  232. package/dist/themes/ayu-dark.mjs +1 -788
  233. package/dist/themes/catppuccin-frappe.mjs +1 -2081
  234. package/dist/themes/catppuccin-latte.mjs +1 -2081
  235. package/dist/themes/catppuccin-macchiato.mjs +1 -2081
  236. package/dist/themes/catppuccin-mocha.mjs +1 -2081
  237. package/dist/themes/dark-plus.mjs +1 -584
  238. package/dist/themes/dracula-soft.mjs +1 -1062
  239. package/dist/themes/dracula.mjs +1 -1062
  240. package/dist/themes/everforest-dark.mjs +1 -2157
  241. package/dist/themes/everforest-light.mjs +1 -2157
  242. package/dist/themes/github-dark-default.mjs +1 -652
  243. package/dist/themes/github-dark-dimmed.mjs +1 -652
  244. package/dist/themes/github-dark-high-contrast.mjs +1 -656
  245. package/dist/themes/github-dark.mjs +1 -544
  246. package/dist/themes/github-light-default.mjs +1 -637
  247. package/dist/themes/github-light-high-contrast.mjs +1 -640
  248. package/dist/themes/github-light.mjs +1 -540
  249. package/dist/themes/houston.mjs +1 -1886
  250. package/dist/themes/laserwave.mjs +1 -478
  251. package/dist/themes/light-plus.mjs +1 -612
  252. package/dist/themes/material-theme-darker.mjs +1 -766
  253. package/dist/themes/material-theme-lighter.mjs +1 -766
  254. package/dist/themes/material-theme-ocean.mjs +1 -766
  255. package/dist/themes/material-theme-palenight.mjs +1 -766
  256. package/dist/themes/material-theme.mjs +1 -766
  257. package/dist/themes/min-dark.mjs +1 -306
  258. package/dist/themes/min-light.mjs +1 -325
  259. package/dist/themes/monokai.mjs +1 -442
  260. package/dist/themes/night-owl.mjs +1 -1733
  261. package/dist/themes/nord.mjs +1 -1286
  262. package/dist/themes/one-dark-pro.mjs +1 -1994
  263. package/dist/themes/one-light.mjs +1 -1819
  264. package/dist/themes/plastic.mjs +1 -331
  265. package/dist/themes/poimandres.mjs +1 -1366
  266. package/dist/themes/red.mjs +1 -378
  267. package/dist/themes/rose-pine-dawn.mjs +1 -735
  268. package/dist/themes/rose-pine-moon.mjs +1 -735
  269. package/dist/themes/rose-pine.mjs +1 -735
  270. package/dist/themes/slack-dark.mjs +1 -571
  271. package/dist/themes/slack-ochin.mjs +1 -479
  272. package/dist/themes/snazzy-light.mjs +1 -1446
  273. package/dist/themes/solarized-dark.mjs +1 -387
  274. package/dist/themes/solarized-light.mjs +1 -379
  275. package/dist/themes/synthwave-84.mjs +1 -816
  276. package/dist/themes/tokyo-night.mjs +1 -1422
  277. package/dist/themes/vesper.mjs +1 -635
  278. package/dist/themes/vitesse-black.mjs +1 -693
  279. package/dist/themes/vitesse-dark.mjs +1 -693
  280. package/dist/themes/vitesse-light.mjs +1 -691
  281. package/package.json +7 -7
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({ "displayName": "ABAP", "fileTypes": ["abap", "ABAP"], "foldingStartMarker": "/\\*\\*|\\{\\s*$", "foldingStopMarker": "\\*\\*/|^\\s*\\}", "name": "abap", "patterns": [{ "captures": { "1": { "name": "punctuation.definition.comment.abap" } }, "match": "^\\*.*\\n?", "name": "comment.line.full.abap" }, { "captures": { "1": { "name": "punctuation.definition.comment.abap" } }, "match": '".*\\n?', "name": "comment.line.partial.abap" }, { "match": "(?<![^\\s])##.*?(?=([\\.:,\\s]))", "name": "comment.line.pragma.abap" }, { "match": "(?i)(?<=(?:\\s|~|-))(?<=(?:->|=>))([a-z_\\/][a-z_0-9\\/]*)(?=\\s+(?:=|\\+=|-=|\\*=|\\/=|&&=|&=)\\s+)", "name": "variable.other.abap" }, { "match": "\\b\\d+(\\b|\\.|,)", "name": "constant.numeric.abap" }, { "match": "(?i)(^|\\s+)((PUBLIC|PRIVATE|PROTECTED)\\sSECTION)(?=\\s+|:|\\.)", "name": "storage.modifier.class.abap" }, { "begin": "(?<!\\\\)(\\|)(.*?)", "beginCaptures": { "1": { "name": "constant.character.escape.abap" } }, "end": "(?<!\\\\)(\\||(\\\\\\\\\\|))", "endCaptures": { "1": { "name": "constant.character.escape.abap" } }, "name": "string.interpolated.abap", "patterns": [{ "match": "({ )|( })", "name": "constant.character.escape" }, { "match": "(?<={ ).*?(?= })", "name": "variable.other.abap" }, { "match": "\\\\\\|", "name": "constant.character.escape.abap" }] }, { "begin": "'", "end": "'", "name": "string.quoted.single.abap", "patterns": [{ "match": "''", "name": "constant.character.escape.abap" }] }, { "begin": "`", "end": "`", "name": "string.quoted.single.abap", "patterns": [{ "match": "``", "name": "constant.character.escape.abap" }] }, { "begin": "(?i)^\\s*(class)\\s([a-z_\\/][a-z_0-9\\/]*)", "beginCaptures": { "1": { "name": "storage.type.block.abap" }, "2": { "name": "entity.name.type.block.abap" } }, "end": "\\s*\\.\\s*\\n?", "name": "meta.block.begin.implementation.abap", "patterns": [{ "match": "(?i)(^|\\s+)(definition|implementation|public|inheriting\\s+from|final|deferred|abstract|shared\\s+memory\\s+enabled|(global|local)*\\s*friends|(create\\s+(public|protected|private))|for\\s+behavior\\s+of|for\\s+testing|risk\\s+level\\s+(critical|dangerous|harmless))|duration\\s(short|medium|long)(?=\\s+|\\.)", "name": "storage.modifier.class.abap" }, { "begin": "(?=[A-Za-z_][A-Za-z0-9_]*)", "contentName": "entity.name.type.block.abap", "end": "(?![A-Za-z0-9_])", "patterns": [{ "include": "#generic_names" }] }] }, { "begin": "(?i)^\\s*(method)\\s(?:([a-z_\\/][a-z_0-9\\/]*)~)?([a-z_\\/][a-z_0-9\\/]*)", "beginCaptures": { "1": { "name": "storage.type.block.abap" }, "2": { "name": "entity.name.type.abap" }, "3": { "name": "entity.name.function.abap" } }, "end": "\\s*\\.\\s*\\n?", "patterns": [{ "match": "(?i)(?<=^|\\s)(BY\\s+DATABASE(\\s+PROCEDURE|\\s+FUNCTION|\\s+GRAPH\\s+WORKSPACE)|BY\\s+KERNEL\\s+MODULE)(?=\\s+|\\.)", "name": "storage.modifier.method.abap" }, { "match": "(?i)(?<=^|\\s)(FOR\\s+(HDB|LLANG))(?=\\s+|\\.)", "name": "storage.modifier.method.abap" }, { "match": "(?i)(?<=\\s)(OPTIONS\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\s+SYNTAX\\s+ERRORS))(?=\\s+|\\.)", "name": "storage.modifier.method.abap" }, { "match": "(?i)(?<=^|\\s)(LANGUAGE\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\s+|\\.)", "name": "storage.modifier.method.abap" }, { "captures": { "1": { "name": "storage.modifier.method.abap" } }, "match": "(?i)(?<=\\s)(USING)\\s+([a-z_\\/][a-z_0-9\\/=>]*)+(?=\\s+|\\.)" }, { "begin": "(?=[A-Za-z_][A-Za-z0-9_]*)", "end": "(?![A-Za-z0-9_])", "patterns": [{ "include": "#generic_names" }] }] }, { "begin": "(?i)^\\s*(INTERFACE)\\s([a-z_\\/][a-z_0-9\\/]*)", "beginCaptures": { "1": { "name": "storage.type.block.abap" }, "2": { "name": "entity.name.type.abap" } }, "end": "\\s*\\.\\s*\\n?", "patterns": [{ "match": "(?i)(?<=^|\\s)(DEFERRED|PUBLIC)(?=\\s+|\\.)", "name": "storage.modifier.method.abap" }] }, { "begin": "(?i)^\\s*(FORM)\\s([a-z_\\/][a-z_0-9\\/\\-?]*)", "beginCaptures": { "1": { "name": "storage.type.block.abap" }, "2": { "name": "entity.name.type.abap" } }, "end": "\\s*\\.\\s*\\n?", "patterns": [{ "match": "(?i)(?<=^|\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\s+|\\.)", "name": "storage.modifier.form.abap" }, { "include": "#abaptypes" }, { "include": "#keywords_followed_by_braces" }] }, { "match": "(?i)(endclass|endmethod|endform|endinterface)", "name": "storage.type.block.end.abap" }, { "match": "(?i)(<[A-Za-z_][A-Za-z0-9_]*>)", "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": "(?i)(?<=\\s)(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)(?=\\s|\\.|,)", "name": "constant.language.abap" }, "abaptypes": { "patterns": [{ "match": "(?i)\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\s|\\.|,)", "name": "support.type.abap" }, { "match": "(?i)\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\s|\\.|,)", "name": "keyword.control.simple.abap" }] }, "arithmetic_operator": { "match": "(?i)(?<=\\s)(\\+|-|\\*|\\*\\*|\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\s)", "name": "keyword.control.simple.abap" }, "builtin_functions": { "match": "(?i)(?<=\\s)(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)(?=\\()", "name": "entity.name.function.builtin.abap" }, "comparison_operator": { "match": "(?i)(?<=\\s)(<|>|<=|>=|=|<>|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)(?=\\s)", "name": "keyword.control.simple.abap" }, "control_keywords": { "match": "(?i)(^|\\s)(at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\s|\\.|:)", "name": "keyword.control.flow.abap" }, "generic_names": { "match": "[A-Za-z_][A-Za-z0-9_]*" }, "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": "(?i)\\b(data|value|field-symbol|final|reference|resumable)\\((<?[a-z_\\/][a-z_0-9\\/]*>?)\\)" }, "logical_operator": { "match": "(?i)(?<=\\s)(not|or|and)(?=\\s)", "name": "keyword.control.simple.abap" }, "main_keywords": { "match": "(?i)(?<=^|\\s)(abap-source|abstract|accept|accepting|access|according|action|activation|actual|add|add-corresponding|adjacent|alias|aliases|align|all|allocate|alpha|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|center|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|engineering|enhancement|enhancement-point|enhancement-section|enhancements|entities|entity|entries|entry|enum|environment|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|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|iso|job|join|keep|keeping|kernel|key|keys|keywords|kind|language|last|late|layout|leading|leave|left|left-justified|leftplus|leftspace|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|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|pad|padding|page|parameter|parameter-table|parameters|part|partially|pcre|perform|performing|permissions|pf-status|places|pool|position|pragmas|preceeding|precompiled|preferred|preserving|primary|print|print-control|private|privileged|procedure|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|rightplus|rightspace|rollback|rows|rp-provide-from-last|run|sap|sap-spool|save|saving|scale_preserving|scale_preserving_scientific|scan|scientific|scientific_with_leading_zero|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|sign_as_postfix|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|timestamp|timezone|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|width|window|windows|with|with-heading|with-title|without|word|work|workspace|write|xml|xsd|yes|zero|zone)(?=\\s|\\.|:|,)", "name": "keyword.control.simple.abap" }, "operators": { "patterns": [{ "include": "#other_operator" }, { "include": "#arithmetic_operator" }, { "include": "#comparison_operator" }, { "include": "#logical_operator" }] }, "other_operator": { "match": "(?<=\\s)(&&|&|\\?=|\\+=|-=|\\/=|\\*=|&&=|&=)(?=\\s)", "name": "keyword.control.simple.abap" }, "reserved_names": { "match": "(?i)(?<=\\s)(me|super)(?=\\s|\\.|,|->)", "name": "constant.language.abap" }, "sql_functions": { "match": "(?i)(?<=\\s)(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)(?=\\()", "name": "entity.name.function.sql.abap" }, "sql_types": { "match": "(?i)(?<=\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\s|\\(|\\))", "name": "entity.name.type.sql.abap" }, "system_fields": { "captures": { "1": { "name": "variable.language.abap" }, "2": { "name": "variable.language.abap" } }, "match": "(?i)\\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\\d|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\.|\\s)" }, "text_symbols": { "captures": { "1": { "name": "keyword.control.simple.abap" }, "2": { "name": "constant.numeric.abap" } }, "match": "(?i)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)" } }, "scopeName": "source.abap" });
1
+ const lang = Object.freeze(JSON.parse('{"displayName":"ABAP","fileTypes":["abap","ABAP"],"foldingStartMarker":"/\\\\*\\\\*|\\\\{\\\\s*$","foldingStopMarker":"\\\\*\\\\*/|^\\\\s*\\\\}","name":"abap","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"^\\\\*.*\\\\n?","name":"comment.line.full.abap"},{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"\\".*\\\\n?","name":"comment.line.partial.abap"},{"match":"(?<![^\\\\s])##.*?(?=([\\\\.:,\\\\s]))","name":"comment.line.pragma.abap"},{"match":"(?i)(?<=(?:\\\\s|~|-))(?<=(?:->|=>))([a-z_\\\\/][a-z_0-9\\\\/]*)(?=\\\\s+(?:=|\\\\+=|-=|\\\\*=|\\\\/=|&&=|&=)\\\\s+)","name":"variable.other.abap"},{"match":"\\\\b\\\\d+(\\\\b|\\\\.|,)","name":"constant.numeric.abap"},{"match":"(?i)(^|\\\\s+)((PUBLIC|PRIVATE|PROTECTED)\\\\sSECTION)(?=\\\\s+|:|\\\\.)","name":"storage.modifier.class.abap"},{"begin":"(?<!\\\\\\\\)(\\\\|)(.*?)","beginCaptures":{"1":{"name":"constant.character.escape.abap"}},"end":"(?<!\\\\\\\\)(\\\\||(\\\\\\\\\\\\\\\\\\\\|))","endCaptures":{"1":{"name":"constant.character.escape.abap"}},"name":"string.interpolated.abap","patterns":[{"match":"({ )|( })","name":"constant.character.escape"},{"match":"(?<={ ).*?(?= })","name":"variable.other.abap"},{"match":"\\\\\\\\\\\\|","name":"constant.character.escape.abap"}]},{"begin":"\'","end":"\'","name":"string.quoted.single.abap","patterns":[{"match":"\'\'","name":"constant.character.escape.abap"}]},{"begin":"`","end":"`","name":"string.quoted.single.abap","patterns":[{"match":"``","name":"constant.character.escape.abap"}]},{"begin":"(?i)^\\\\s*(class)\\\\s([a-z_\\\\/][a-z_0-9\\\\/]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.block.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","name":"meta.block.begin.implementation.abap","patterns":[{"match":"(?i)(^|\\\\s+)(definition|implementation|public|inheriting\\\\s+from|final|deferred|abstract|shared\\\\s+memory\\\\s+enabled|(global|local)*\\\\s*friends|(create\\\\s+(public|protected|private))|for\\\\s+behavior\\\\s+of|for\\\\s+testing|risk\\\\s+level\\\\s+(critical|dangerous|harmless))|duration\\\\s(short|medium|long)(?=\\\\s+|\\\\.)","name":"storage.modifier.class.abap"},{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","contentName":"entity.name.type.block.abap","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(method)\\\\s(?:([a-z_\\\\/][a-z_0-9\\\\/]*)~)?([a-z_\\\\/][a-z_0-9\\\\/]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"},"3":{"name":"entity.name.function.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(BY\\\\s+DATABASE(\\\\s+PROCEDURE|\\\\s+FUNCTION|\\\\s+GRAPH\\\\s+WORKSPACE)|BY\\\\s+KERNEL\\\\s+MODULE)(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(FOR\\\\s+(HDB|LLANG))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=\\\\s)(OPTIONS\\\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\\\s+SYNTAX\\\\s+ERRORS))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(LANGUAGE\\\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"captures":{"1":{"name":"storage.modifier.method.abap"}},"match":"(?i)(?<=\\\\s)(USING)\\\\s+([a-z_\\\\/][a-z_0-9\\\\/=>]*)+(?=\\\\s+|\\\\.)"},{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(INTERFACE)\\\\s([a-z_\\\\/][a-z_0-9\\\\/]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(DEFERRED|PUBLIC)(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"}]},{"begin":"(?i)^\\\\s*(FORM)\\\\s([a-z_\\\\/][a-z_0-9\\\\/\\\\-?]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\\\s+|\\\\.)","name":"storage.modifier.form.abap"},{"include":"#abaptypes"},{"include":"#keywords_followed_by_braces"}]},{"match":"(?i)(endclass|endmethod|endform|endinterface)","name":"storage.type.block.end.abap"},{"match":"(?i)(<[A-Za-z_][A-Za-z0-9_]*>)","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":"(?i)(?<=\\\\s)(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)(?=\\\\s|\\\\.|,)","name":"constant.language.abap"},"abaptypes":{"patterns":[{"match":"(?i)\\\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\\\s|\\\\.|,)","name":"support.type.abap"},{"match":"(?i)\\\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\\\s|\\\\.|,)","name":"keyword.control.simple.abap"}]},"arithmetic_operator":{"match":"(?i)(?<=\\\\s)(\\\\+|-|\\\\*|\\\\*\\\\*|\\\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\\\s)","name":"keyword.control.simple.abap"},"builtin_functions":{"match":"(?i)(?<=\\\\s)(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)(?=\\\\()","name":"entity.name.function.builtin.abap"},"comparison_operator":{"match":"(?i)(?<=\\\\s)(<|>|<=|>=|=|<>|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)(?=\\\\s)","name":"keyword.control.simple.abap"},"control_keywords":{"match":"(?i)(^|\\\\s)(at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\\\s|\\\\.|:)","name":"keyword.control.flow.abap"},"generic_names":{"match":"[A-Za-z_][A-Za-z0-9_]*"},"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":"(?i)\\\\b(data|value|field-symbol|final|reference|resumable)\\\\((<?[a-z_\\\\/][a-z_0-9\\\\/]*>?)\\\\)"},"logical_operator":{"match":"(?i)(?<=\\\\s)(not|or|and)(?=\\\\s)","name":"keyword.control.simple.abap"},"main_keywords":{"match":"(?i)(?<=^|\\\\s)(abap-source|abstract|accept|accepting|access|according|action|activation|actual|add|add-corresponding|adjacent|alias|aliases|align|all|allocate|alpha|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|center|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|engineering|enhancement|enhancement-point|enhancement-section|enhancements|entities|entity|entries|entry|enum|environment|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|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|iso|job|join|keep|keeping|kernel|key|keys|keywords|kind|language|last|late|layout|leading|leave|left|left-justified|leftplus|leftspace|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|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|pad|padding|page|parameter|parameter-table|parameters|part|partially|pcre|perform|performing|permissions|pf-status|places|pool|position|pragmas|preceeding|precompiled|preferred|preserving|primary|print|print-control|private|privileged|procedure|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|rightplus|rightspace|rollback|rows|rp-provide-from-last|run|sap|sap-spool|save|saving|scale_preserving|scale_preserving_scientific|scan|scientific|scientific_with_leading_zero|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|sign_as_postfix|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|timestamp|timezone|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|width|window|windows|with|with-heading|with-title|without|word|work|workspace|write|xml|xsd|yes|zero|zone)(?=\\\\s|\\\\.|:|,)","name":"keyword.control.simple.abap"},"operators":{"patterns":[{"include":"#other_operator"},{"include":"#arithmetic_operator"},{"include":"#comparison_operator"},{"include":"#logical_operator"}]},"other_operator":{"match":"(?<=\\\\s)(&&|&|\\\\?=|\\\\+=|-=|\\\\/=|\\\\*=|&&=|&=)(?=\\\\s)","name":"keyword.control.simple.abap"},"reserved_names":{"match":"(?i)(?<=\\\\s)(me|super)(?=\\\\s|\\\\.|,|->)","name":"constant.language.abap"},"sql_functions":{"match":"(?i)(?<=\\\\s)(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)(?=\\\\()","name":"entity.name.function.sql.abap"},"sql_types":{"match":"(?i)(?<=\\\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\\\s|\\\\(|\\\\))","name":"entity.name.type.sql.abap"},"system_fields":{"captures":{"1":{"name":"variable.language.abap"},"2":{"name":"variable.language.abap"}},"match":"(?i)\\\\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\\\\d|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\\\.|\\\\s)"},"text_symbols":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"constant.numeric.abap"}},"match":"(?i)(?<=^|\\\\s)(text)-([A-Z0-9]{1,3})(?=\\\\s|\\\\.|:|,)"}},"scopeName":"source.abap"}'));
2
2
  var abap = [
3
3
  lang
4
4
  ];
@@ -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": "(\\+|-|/|%|(?<!:)\\*)", "name": "keyword.operator.actionscript.3" }, "array_access_operators": { "match": "(\\[|\\])", "name": "keyword.operator.actionscript.3" }, "class": { "begin": "(^|\\s+|;)(\\b(dynamic|final|abstract)\\b\\s+)?(\\b(internal|public)\\b\\s+)?(\\b(dynamic|final|abstract)\\b\\s+)?(?=\\bclass\\b)", "beginCaptures": { "3": { "name": "storage.modifier.actionscript.3" }, "5": { "name": "storage.modifier.actionscript.3" }, "7": { "name": "storage.modifier.actionscript.3" } }, "end": "\\}", "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\\s+([\\.\\w]+|\\*)", "beginCaptures": { "1": { "name": "storage.type.class.actionscript.3" }, "2": { "name": "entity.name.class.actionscript.3" } }, "end": "\\{", "name": "meta.class_declaration.actionscript.3", "patterns": [{ "include": "#extends" }, { "include": "#implements" }, { "include": "#comments" }] }, "code_block": { "begin": "\\{", "end": "\\}", "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": "/\\*\\*(?!/)", "end": "\\*/", "name": "comment.block.documentation.actionscript.3", "patterns": [{ "match": "@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\\b", "name": "keyword.other.documentation.actionscript.3.asdoc" }] }, { "begin": "/\\*", "end": "\\*/", "name": "comment.block.actionscript.3" }, { "match": "//.*", "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", "name": "keyword.control.actionscript.3" }, "dynamic_type": { "captures": { "1": { "name": "support.type.actionscript.3" } }, "match": "(?<=:)\\s*(\\*)" }, "escapes": { "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", "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\\s+([\\.\\w]+)\\s*(?:,\\s*([\\.\\w]+))*\\s*", "name": "meta.extends.actionscript.3" }, "function_arguments": { "begin": "\\(", "end": "\\)", "name": "meta.function_arguments.actionscript.3", "patterns": [{ "include": "#parameters" }, { "include": "#comments" }] }, "functions": { "begin": "\\b(function)\\b(?:\\s+\\b(get|set)\\b\\s+)?\\s*([a-zA-Z0-9_$]+\\b)?", "beginCaptures": { "1": { "name": "storage.type.function.actionscript.3" }, "2": { "name": "storage.modifier.actionscript.3" }, "3": { "name": "entity.name.function.actionscript.3" } }, "end": "($|;|(?=\\{))", "name": "meta.function.actionscript.3", "patterns": [{ "include": "#function_arguments" }, { "include": "#return_type" }, { "include": "#comments" }] }, "guess_constant": { "captures": { "1": { "name": "constant.other.actionscript.3" } }, "comment": "Following convention, let's guess that anything in all caps/digits (possible underscores) is a constant.", "match": "\\b([A-Z$][A-Z0-9_]+)\\b" }, "guess_type": { "captures": { "1": { "name": "support.type.actionscript.3" } }, "comment": "Following convention, let's guess that any word starting with one or more capital letters (that contains at least some lower-case letters so that constants aren't detected) refers to a class/type. May be fully-qualified.", "match": "\\b((?:[A-Za-z0-9_$]+\\.)*[A-Z][A-Z0-9]*[a-z]+[A-Za-z0-9_$]*)\\b" }, "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\\s+([\\.\\w]+)\\s*(?:,\\s*([\\.\\w]+))*\\s*", "name": "meta.implements.actionscript.3" }, "import": { "captures": { "2": { "name": "keyword.control.import.actionscript.3" }, "3": { "name": "support.type.actionscript.3" } }, "match": "(^|\\s+|;)\\b(import)\\b\\s+([A-Za-z0-9$_\\.]+(?:\\.\\*)?)\\s*(?=;|$)", "name": "meta.import.actionscript.3" }, "interface": { "begin": "(^|\\s+|;)(\\b(internal|public)\\b\\s+)?(?=\\binterface\\b)", "beginCaptures": { "3": { "name": "storage.modifier.actionscript.3" } }, "end": "\\}", "name": "meta.interface.actionscript.3", "patterns": [{ "include": "#interface_declaration" }, { "include": "#metadata" }, { "include": "#functions" }, { "include": "#comments" }] }, "interface_declaration": { "begin": "\\b(interface)\\b\\s+([\\.\\w]+)", "beginCaptures": { "1": { "name": "storage.type.interface.actionscript.3" }, "2": { "name": "entity.name.class.actionscript.3" } }, "end": "\\{", "name": "meta.class_declaration.actionscript.3", "patterns": [{ "include": "#extends" }, { "include": "#comments" }] }, "language_constants": { "match": "\\b(true|false|null|Infinity|-Infinity|NaN|undefined)\\b", "name": "constant.language.actionscript.3" }, "language_variables": { "match": "\\b(super|this|arguments)\\b", "name": "variable.language.actionscript.3" }, "logical_operators": { "match": "(&|<|~|\\||>|\\^|!|\\?)", "name": "keyword.operator.actionscript.3" }, "metadata": { "begin": "\\[\\s*\\b(\\w+)\\b", "beginCaptures": { "1": { "name": "keyword.other.actionscript.3" } }, "end": "\\]", "name": "meta.metadata_info.actionscript.3", "patterns": [{ "include": "#metadata_info" }] }, "metadata_info": { "begin": "\\(", "end": "\\)", "patterns": [{ "include": "#strings" }, { "captures": { "1": { "name": "variable.parameter.actionscript.3" }, "2": { "name": "keyword.operator.actionscript.3" } }, "match": "(\\w+)\\s*(=)" }] }, "method": { "begin": "(^|\\s+)((\\w+)\\s+)?((\\w+)\\s+)?((\\w+)\\s+)?((\\w+)\\s+)?(?=\\bfunction\\b)", "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": "(?<=(;|\\}))", "name": "meta.method.actionscript.3", "patterns": [{ "include": "#functions" }, { "include": "#code_block" }] }, "mxml": { "begin": "<!\\[CDATA\\[", "end": "\\]\\]>", "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": "((\\w+)\\s+)?(namespace)\\s+(?:[A-Za-z0-9_$]+)", "name": "meta.namespace_declaration.actionscript.3" }, "numbers": { "match": "\\b((0(x|X)[0-9a-fA-F]*)|((\\d+\\.?\\d*)|(\\.\\d+))((e|E)(\\+|-)?\\d+)?)(L|l|UL|ul|u|U|F|f)?\\b", "name": "constant.numeric.actionscript.3" }, "object_literal": { "begin": "\\{", "end": "\\}", "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", "name": "keyword.other.actionscript.3" }, "other_operators": { "match": "(\\.|=)", "name": "keyword.operator.actionscript.3" }, "package": { "begin": "(^|\\s+)(package)\\b", "beginCaptures": { "2": { "name": "keyword.other.actionscript.3" } }, "end": "\\}", "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)\\s+([\\w\\._]*)\\b", "end": "\\{", "name": "meta.package_name.actionscript.3" }, "parameters": { "begin": "(\\.\\.\\.)?\\s*([A-Za-z_$][A-Za-z0-9_$]*)(?:\\s*(:)\\s*(?:(?:([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_$]+)*)>)?)|(\\*)))?(?:\\s*(=))?", "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": ",|(?=\\))", "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" }, "primitive_functions": { "captures": { "1": { "name": "support.function.actionscript.3" } }, "match": "\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\s*\\()" }, "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" }, "regexp": { "begin": "(?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])", "end": "$|(/)[igm]*", "name": "string.regex.actionscript.3", "patterns": [{ "match": "\\\\.", "name": "constant.character.escape.actionscript.3" }, { "match": "\\[(\\\\\\]|[^\\]])*\\]", "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": "(:)\\s*(?:([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_$]+)*)>)?)|(\\*)" }, "strings": { "patterns": [{ "begin": '@"', "end": '"', "name": "string.quoted.verbatim.actionscript.3" }, { "begin": '"', "end": '"', "name": "string.quoted.double.actionscript.3", "patterns": [{ "include": "#escapes" }] }, { "begin": "'", "end": "'", "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": "(^|\\s+|;)(use\\s+)?(namespace)\\s+(\\w+)\\s*(;|$)" }, "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)\\s+)?((\\w+)\\s+)?((static)\\s+)?(const|var)\\s+(?:[A-Za-z0-9_$]+)(?:\\s*(:))?", "name": "meta.variable_declaration.actionscript.3" }, "vector_creation_operators": { "match": "(<|>)", "name": "keyword.operator.actionscript.3" } }, "scopeName": "source.actionscript.3" });
1
+ const lang = Object.freeze(JSON.parse(`{"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":"(\\\\+|-|/|%|(?<!:)\\\\*)","name":"keyword.operator.actionscript.3"},"array_access_operators":{"match":"(\\\\[|\\\\])","name":"keyword.operator.actionscript.3"},"class":{"begin":"(^|\\\\s+|;)(\\\\b(dynamic|final|abstract)\\\\b\\\\s+)?(\\\\b(internal|public)\\\\b\\\\s+)?(\\\\b(dynamic|final|abstract)\\\\b\\\\s+)?(?=\\\\bclass\\\\b)","beginCaptures":{"3":{"name":"storage.modifier.actionscript.3"},"5":{"name":"storage.modifier.actionscript.3"},"7":{"name":"storage.modifier.actionscript.3"}},"end":"\\\\}","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\\\\s+([\\\\.\\\\w]+|\\\\*)","beginCaptures":{"1":{"name":"storage.type.class.actionscript.3"},"2":{"name":"entity.name.class.actionscript.3"}},"end":"\\\\{","name":"meta.class_declaration.actionscript.3","patterns":[{"include":"#extends"},{"include":"#implements"},{"include":"#comments"}]},"code_block":{"begin":"\\\\{","end":"\\\\}","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":"/\\\\*\\\\*(?!/)","end":"\\\\*/","name":"comment.block.documentation.actionscript.3","patterns":[{"match":"@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\\\\b","name":"keyword.other.documentation.actionscript.3.asdoc"}]},{"begin":"/\\\\*","end":"\\\\*/","name":"comment.block.actionscript.3"},{"match":"//.*","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","name":"keyword.control.actionscript.3"},"dynamic_type":{"captures":{"1":{"name":"support.type.actionscript.3"}},"match":"(?<=:)\\\\s*(\\\\*)"},"escapes":{"match":"\\\\\\\\(x\\\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)","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\\\\s+([\\\\.\\\\w]+)\\\\s*(?:,\\\\s*([\\\\.\\\\w]+))*\\\\s*","name":"meta.extends.actionscript.3"},"function_arguments":{"begin":"\\\\(","end":"\\\\)","name":"meta.function_arguments.actionscript.3","patterns":[{"include":"#parameters"},{"include":"#comments"}]},"functions":{"begin":"\\\\b(function)\\\\b(?:\\\\s+\\\\b(get|set)\\\\b\\\\s+)?\\\\s*([a-zA-Z0-9_$]+\\\\b)?","beginCaptures":{"1":{"name":"storage.type.function.actionscript.3"},"2":{"name":"storage.modifier.actionscript.3"},"3":{"name":"entity.name.function.actionscript.3"}},"end":"($|;|(?=\\\\{))","name":"meta.function.actionscript.3","patterns":[{"include":"#function_arguments"},{"include":"#return_type"},{"include":"#comments"}]},"guess_constant":{"captures":{"1":{"name":"constant.other.actionscript.3"}},"comment":"Following convention, let's guess that anything in all caps/digits (possible underscores) is a constant.","match":"\\\\b([A-Z$][A-Z0-9_]+)\\\\b"},"guess_type":{"captures":{"1":{"name":"support.type.actionscript.3"}},"comment":"Following convention, let's guess that any word starting with one or more capital letters (that contains at least some lower-case letters so that constants aren't detected) refers to a class/type. May be fully-qualified.","match":"\\\\b((?:[A-Za-z0-9_$]+\\\\.)*[A-Z][A-Z0-9]*[a-z]+[A-Za-z0-9_$]*)\\\\b"},"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\\\\s+([\\\\.\\\\w]+)\\\\s*(?:,\\\\s*([\\\\.\\\\w]+))*\\\\s*","name":"meta.implements.actionscript.3"},"import":{"captures":{"2":{"name":"keyword.control.import.actionscript.3"},"3":{"name":"support.type.actionscript.3"}},"match":"(^|\\\\s+|;)\\\\b(import)\\\\b\\\\s+([A-Za-z0-9$_\\\\.]+(?:\\\\.\\\\*)?)\\\\s*(?=;|$)","name":"meta.import.actionscript.3"},"interface":{"begin":"(^|\\\\s+|;)(\\\\b(internal|public)\\\\b\\\\s+)?(?=\\\\binterface\\\\b)","beginCaptures":{"3":{"name":"storage.modifier.actionscript.3"}},"end":"\\\\}","name":"meta.interface.actionscript.3","patterns":[{"include":"#interface_declaration"},{"include":"#metadata"},{"include":"#functions"},{"include":"#comments"}]},"interface_declaration":{"begin":"\\\\b(interface)\\\\b\\\\s+([\\\\.\\\\w]+)","beginCaptures":{"1":{"name":"storage.type.interface.actionscript.3"},"2":{"name":"entity.name.class.actionscript.3"}},"end":"\\\\{","name":"meta.class_declaration.actionscript.3","patterns":[{"include":"#extends"},{"include":"#comments"}]},"language_constants":{"match":"\\\\b(true|false|null|Infinity|-Infinity|NaN|undefined)\\\\b","name":"constant.language.actionscript.3"},"language_variables":{"match":"\\\\b(super|this|arguments)\\\\b","name":"variable.language.actionscript.3"},"logical_operators":{"match":"(&|<|~|\\\\||>|\\\\^|!|\\\\?)","name":"keyword.operator.actionscript.3"},"metadata":{"begin":"\\\\[\\\\s*\\\\b(\\\\w+)\\\\b","beginCaptures":{"1":{"name":"keyword.other.actionscript.3"}},"end":"\\\\]","name":"meta.metadata_info.actionscript.3","patterns":[{"include":"#metadata_info"}]},"metadata_info":{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"#strings"},{"captures":{"1":{"name":"variable.parameter.actionscript.3"},"2":{"name":"keyword.operator.actionscript.3"}},"match":"(\\\\w+)\\\\s*(=)"}]},"method":{"begin":"(^|\\\\s+)((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?(?=\\\\bfunction\\\\b)","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":"(?<=(;|\\\\}))","name":"meta.method.actionscript.3","patterns":[{"include":"#functions"},{"include":"#code_block"}]},"mxml":{"begin":"<!\\\\[CDATA\\\\[","end":"\\\\]\\\\]>","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":"((\\\\w+)\\\\s+)?(namespace)\\\\s+(?:[A-Za-z0-9_$]+)","name":"meta.namespace_declaration.actionscript.3"},"numbers":{"match":"\\\\b((0(x|X)[0-9a-fA-F]*)|((\\\\d+\\\\.?\\\\d*)|(\\\\.\\\\d+))((e|E)(\\\\+|-)?\\\\d+)?)(L|l|UL|ul|u|U|F|f)?\\\\b","name":"constant.numeric.actionscript.3"},"object_literal":{"begin":"\\\\{","end":"\\\\}","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","name":"keyword.other.actionscript.3"},"other_operators":{"match":"(\\\\.|=)","name":"keyword.operator.actionscript.3"},"package":{"begin":"(^|\\\\s+)(package)\\\\b","beginCaptures":{"2":{"name":"keyword.other.actionscript.3"}},"end":"\\\\}","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)\\\\s+([\\\\w\\\\._]*)\\\\b","end":"\\\\{","name":"meta.package_name.actionscript.3"},"parameters":{"begin":"(\\\\.\\\\.\\\\.)?\\\\s*([A-Za-z_$][A-Za-z0-9_$]*)(?:\\\\s*(:)\\\\s*(?:(?:([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_$]+)*)>)?)|(\\\\*)))?(?:\\\\s*(=))?","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":",|(?=\\\\))","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"},"primitive_functions":{"captures":{"1":{"name":"support.function.actionscript.3"}},"match":"\\\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\\\s*\\\\()"},"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"},"regexp":{"begin":"(?<=[=(:,\\\\[]|^|return|&&|\\\\|\\\\||!)\\\\s*(/)(?![/*+{}?])","end":"$|(/)[igm]*","name":"string.regex.actionscript.3","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.actionscript.3"},{"match":"\\\\[(\\\\\\\\\\\\]|[^\\\\]])*\\\\]","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":"(:)\\\\s*(?:([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_$]+)*)>)?)|(\\\\*)"},"strings":{"patterns":[{"begin":"@\\"","end":"\\"","name":"string.quoted.verbatim.actionscript.3"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.actionscript.3","patterns":[{"include":"#escapes"}]},{"begin":"'","end":"'","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":"(^|\\\\s+|;)(use\\\\s+)?(namespace)\\\\s+(\\\\w+)\\\\s*(;|$)"},"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)\\\\s+)?((\\\\w+)\\\\s+)?((static)\\\\s+)?(const|var)\\\\s+(?:[A-Za-z0-9_$]+)(?:\\\\s*(:))?","name":"meta.variable_declaration.actionscript.3"},"vector_creation_operators":{"match":"(<|>)","name":"keyword.operator.actionscript.3"}},"scopeName":"source.actionscript.3"}`));
2
2
  var actionscript3 = [
3
3
  lang
4
4
  ];
@@ -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": "(?i)\\babort\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.statement.abort.ada", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "match": "\\b(\\w|\\d|\\.|_)+\\b", "name": "entity.name.task.ada" }] }, "accept_statement": { "begin": "(?i)\\b(accept)\\s+((?:\\w|\\d|\\.|_)+)\\b", "beginCaptures": { "1": { "name": "keyword.control.ada" }, "2": { "name": "entity.name.accept.ada" } }, "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", "endCaptures": { "1": { "name": "keyword.control.ada" }, "2": { "name": "entity.name.accept.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.statement.accept.ada", "patterns": [{ "begin": "(?i)\\bdo\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(?=end)\\b", "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": "(?i)(not\\s+null\\s+)?(access)\\s+(constant\\s+)?((?:\\w|\\d|\\.|_)+)\\b", "name": "meta.declaration.access.definition.ada" }, "access_type_definition": { "begin": "(?i)\\b(not\\s+null\\s+)?(access)\\b", "beginCaptures": { "1": { "name": "storage.visibility.ada" }, "2": { "name": "storage.visibility.ada" } }, "end": "(?i)(?=(with|;))", "name": "meta.declaration.type.definition.access.ada", "patterns": [{ "match": "(?i)\\ball\\b", "name": "storage.visibility.ada" }, { "match": "(?i)\\bconstant\\b", "name": "storage.modifier.ada" }, { "include": "#subtype_mark" }] }, "actual_parameter_part": { "begin": "\\(", "captures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "include": "#parameter_association" }] }, "adding_operator": { "match": "(\\+|-|\\&)", "name": "keyword.operator.adding.ada" }, "array_aggregate": { "begin": "\\(", "captures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "name": "meta.definition.array.aggregate.ada", "patterns": [{ "match": ",", "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": "<>", "name": "keyword.modifier.unknown.ada" }, { "include": "#expression" }] } }, "match": "(?i)\\b([^(=>)]*)\\s*(=>)\\s*([^,)]+)", "name": "meta.definition.array.aggregate.component.ada" }, "array_dimensions": { "begin": "\\(", "captures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "name": "meta.declaration.type.definition.array.dimensions.ada", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "match": "(?i)\\brange\\b", "name": "storage.modifier.ada" }, { "match": "<>", "name": "keyword.modifier.unknown.ada" }, { "match": "\\.\\.", "name": "keyword.ada" }, { "include": "#expression" }, { "patterns": [{ "include": "#subtype_mark" }] }] }, "array_type_definition": { "begin": "(?i)\\barray\\b", "beginCaptures": { "0": { "name": "storage.modifier.ada" } }, "end": "(?i)(?=(with|;))", "name": "meta.declaration.type.definition.array.ada", "patterns": [{ "include": "#array_dimensions" }, { "match": "(?i)\\bof\\b", "name": "storage.modifier.ada" }, { "match": "(?i)\\baliased\\b", "name": "storage.visibility.ada" }, { "include": "#access_definition" }, { "include": "#subtype_mark" }] }, "aspect_clause": { "begin": "(?i)\\b(for)\\b", "beginCaptures": { "1": { "name": "keyword.ada" }, "2": { "patterns": [{ "include": "#subtype_mark" }] }, "3": { "name": "punctuation.ada" }, "5": { "name": "keyword.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.aspect.clause.ada", "patterns": [{ "begin": "(?i)\\buse\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?=;)", "endCaptures": { "0": { "name": "punctuation.ada" } }, "patterns": [{ "include": "#record_representation_clause" }, { "include": "#array_aggregate" }, { "include": "#expression" }] }, { "begin": "(?i)(?<=for)", "captures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=use)", "patterns": [{ "captures": { "1": { "patterns": [{ "include": "#subtype_mark" }] }, "2": { "patterns": [{ "include": "#attribute" }] } }, "match": "((?:\\w|\\d|_)+)('((?:\\w|\\d|_)+))?" }] }] }, "aspect_definition": { "begin": "=>", "beginCaptures": { "0": { "name": "keyword.other.ada" } }, "end": "(?i)(?=(,|;|\\bis\\b))", "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": "(?i)\\b((?:\\w|\\d|\\.|_)+)(?:(')(class))?\\b", "name": "meta.aspect.mark.ada" }, "aspect_specification": { "begin": "(?i)\\bwith\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=(;|\\bis\\b))", "name": "meta.aspect.specification.ada", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "captures": { "1": { "name": "storage.modifier.ada" }, "2": { "name": "storage.modifier.ada" } }, "match": "(?i)\\b(null)\\s+(record)\\b" }, { "begin": "(?i)\\brecord\\b", "beginCaptures": { "0": { "name": "storage.modifier.ada" } }, "end": "(?i)\\b(end)\\s+(record)\\b", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "storage.modifier.ada" } }, "patterns": [{ "include": "#component_item" }] }, { "captures": { "0": { "name": "storage.visibility.ada" } }, "match": "(?i)\\bprivate\\b" }, { "include": "#aspect_definition" }, { "include": "#aspect_mark" }, { "include": "#comment" }] }, "assignment_statement": { "begin": `\\b((?:\\w|\\d|\\.|_|\\(|\\)|"|'|\\s)+)\\s*(:=)`, "beginCaptures": { "1": { "patterns": [{ "match": "((?:\\w|\\d|\\.|_)+)", "name": "variable.name.ada" }, { "begin": "\\(", "captures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "patterns": [{ "include": "#expression" }] }] }, "2": { "name": "keyword.operator.new.ada" } }, "end": ";", "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": "(')((?:\\w|\\d|_)+)\\b", "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": "(?i)(\\d(?:(_)?\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\+|-)?\\d(?:_?\\d)*)?", "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": "(?i)\\bdeclare\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(end)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.label.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.statement.block.ada", "patterns": [{ "begin": "(?i)(?<=declare)", "end": "(?i)\\bbegin\\b", "endCaptures": { "0": { "name": "keyword.ada" } }, "patterns": [{ "include": "#body" }, { "include": "#basic_declarative_item" }] }, { "begin": "(?i)(?<=begin)", "end": "(?i)(?=end)", "patterns": [{ "include": "#statement" }] }] }, "body": { "patterns": [{ "include": "#subprogram_body" }, { "include": "#package_body" }, { "include": "#task_body" }, { "include": "#protected_body" }] }, "case_statement": { "begin": "(?i)\\bcase\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(end)\\s+(case)\\s*(;)", "endCaptures": { "1": { "name": "keyword.control.ada" }, "2": { "name": "keyword.control.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.statement.case.ada", "patterns": [{ "begin": "(?i)(?<=case)\\b", "end": "(?i)\\bis\\b", "endCaptures": { "0": { "name": "keyword.control.ada" } }, "patterns": [{ "include": "#expression" }] }, { "begin": "(?i)\\bwhen\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "=>", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.statement.case.alternative.ada", "patterns": [{ "match": "(?i)\\bothers\\b", "name": "keyword.modifier.unknown.ada" }, { "match": "\\|", "name": "punctuation.ada" }, { "include": "#expression" }] }, { "include": "#statement" }] }, "character_literal": { "captures": { "0": { "patterns": [{ "match": "'", "name": "punctuation.definition.string.ada" }] } }, "match": "'.'", "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": "(--)\\s*(@)(\\w+)\\s+(.*)$", "name": "comment.block.documentation.ada" }, "comment-line": { "match": "--.*$", "name": "comment.line.double-dash.ada" }, "comment-section": { "captures": { "1": { "name": "entity.name.section.ada" } }, "match": "--\\s*([^-].*?[^-])\\s*--\\s*$", "name": "comment.line.double-dash.ada" }, "component_clause": { "begin": "(?i)\\b((?:\\w|\\d|_)+)\\b", "beginCaptures": { "0": { "name": "variable.name.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.aspect.clause.record.representation.component.ada", "patterns": [{ "begin": "(?i)\\bat\\b", "beginCaptures": { "0": { "name": "storage.modifier.ada" } }, "end": "(?i)\\b(?=range)\\b", "patterns": [{ "include": "#expression" }] }, { "include": "#range_constraint" }] }, "component_declaration": { "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)", "beginCaptures": { "1": { "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "match": "\\b(\\w|\\d|_)+\\b", "name": "variable.name.ada" }] }, "2": { "name": "punctuation.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.declaration.type.definition.record.component.ada", "patterns": [{ "patterns": [{ "match": ":=", "name": "keyword.operator.new.ada" }, { "include": "#expression" }] }, { "include": "#component_definition" }] }, "component_definition": { "patterns": [{ "match": "(?i)\\baliased\\b", "name": "storage.visibility.ada" }, { "match": "(?i)\\brange\\b", "name": "storage.modifier.ada" }, { "match": "\\.\\.", "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": "(?i)\\b(null)\\s*(;)" }] }, "composite_constraint": { "begin": "\\(", "captures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "name": "meta.declaration.constraint.composite.ada", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "match": "\\.\\.", "name": "keyword.ada" }, { "captures": { "1": { "name": "variable.name.ada" }, "2": { "name": "keyword.other.ada" }, "3": { "patterns": [{ "include": "#expression" }] } }, "match": "(?i)\\b((?:\\w|\\d|_)+)\\s*(=>)\\s*([^,)])+\\b" }, { "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": "\\d(?:(_)?\\d)*(?:(\\.)\\d(?:(_)?\\d)*)?([eE](?:\\+|-)?\\d(?:_?\\d)*)?", "name": "constant.numeric.ada" }, "declarative_item": { "patterns": [{ "include": "#body" }, { "include": "#basic_declarative_item" }] }, "delay_relative_statement": { "begin": "(?i)\\b(delay)\\b", "beginCaptures": { "1": { "name": "keyword.control.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "patterns": [{ "include": "#expression" }] }, "delay_statement": { "patterns": [{ "include": "#delay_until_statement" }, { "include": "#delay_relative_statement" }] }, "delay_until_statement": { "begin": "(?i)\\b(delay)\\s+(until)\\b", "beginCaptures": { "1": { "name": "keyword.control.ada" }, "2": { "name": "keyword.control.ada" } }, "end": ";", "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": "(?i)\\bnew\\b", "beginCaptures": { "0": { "name": "storage.modifier.ada" } }, "end": "(?i)(?=(\\bwith\\b|;))", "patterns": [{ "match": "(?i)\\band\\b", "name": "storage.modifier.ada" }, { "include": "#subtype_mark" }] }, { "match": "(?i)\\b(abstract|and|limited|tagged)\\b", "name": "storage.modifier.ada" }, { "match": "(?i)\\bprivate\\b", "name": "storage.visibility.ada" }, { "include": "#subtype_mark" }] }, "discriminant_specification": { "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)", "beginCaptures": { "1": { "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "match": "\\b(\\w|\\d|_)+\\b", "name": "variable.name.ada" }] }, "2": { "name": "punctuation.ada" } }, "end": "(?=(;|\\)))", "patterns": [{ "begin": ":=", "beginCaptures": { "0": { "name": "keyword.operator.new.ada" } }, "end": "(?=(;|\\)))", "patterns": [{ "include": "#expression" }] }, { "captures": { "1": { "name": "storage.visibility.ada" }, "2": { "patterns": [{ "include": "#subtype_mark" }] } }, "match": "(?i)(not\\s+null\\s+)?((?:\\w|\\d|\\.|_)+)\\b" }, { "include": "#access_definition" }] }, "entry_body": { "begin": "(?i)\\b(entry)\\s+((?:\\w|\\d|_)+)\\b", "beginCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.entry.ada" } }, "end": "(?i)\\b(end)\\s*(\\s\\2)\\s*(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.entry.ada" }, "3": { "name": "punctuation.ada" } }, "patterns": [{ "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(?=begin)\\b", "patterns": [{ "include": "#declarative_item" }] }, { "begin": "(?i)\\bbegin\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(?=end)\\b", "patterns": [{ "include": "#statement" }] }, { "begin": "(?i)\\bwhen\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(?=is)\\b", "patterns": [{ "include": "#expression" }] }, { "include": "#parameter_profile" }] }, "entry_declaration": { "begin": "(?i)\\b(?:(not)?\\s+(overriding)\\s+)?(entry)\\s+((?:\\w|\\d|_)+)\\b", "beginCaptures": { "1": { "name": "storage.modifier.ada" }, "2": { "name": "storage.modifier.ada" }, "3": { "name": "keyword.ada" }, "4": { "name": "entity.name.entry.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "patterns": [{ "include": "#parameter_profile" }] }, "enumeration_type_definition": { "begin": "\\(", "beginCaptures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.declaration.type.definition.enumeration.ada", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "match": "\\b(\\w|\\d|_)+\\b", "name": "variable.name.ada" }, { "include": "#comment" }] }, "exception_declaration": { "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)\\s*(exception)", "beginCaptures": { "1": { "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "match": "\\b(\\w|\\d|_)+\\b", "name": "entity.name.exception.ada" }] }, "2": { "name": "punctuation.ada" }, "3": { "name": "storage.type.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.declaration.exception.ada", "patterns": [{ "match": "(?i)\\b(renames)\\s+((\\w|\\d|_|\\.)+)", "name": "entity.name.exception.ada" }] }, "exit_statement": { "begin": "(?i)\\bexit\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.statement.exit.ada", "patterns": [{ "begin": "(?i)\\bwhen\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?=;)", "patterns": [{ "include": "#expression" }] }, { "match": "(?:\\w|\\d|_)+", "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])(\\+|-)?\\d(?:(_)?\\d)*" }, "expression": { "name": "meta.expression.ada", "patterns": [{ "match": "(?i)\\bnull\\b", "name": "constant.language.ada" }, { "match": "=>(\\+)?", "name": "keyword.other.ada" }, { "begin": "\\(", "captures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "patterns": [{ "include": "#expression" }] }, { "match": ",", "name": "punctuation.ada" }, { "match": "\\.\\.", "name": "keyword.ada" }, { "include": "#value" }, { "include": "#attribute" }, { "include": "#comment" }, { "include": "#operator" }, { "match": "(?i)\\b(and|or|xor)\\b", "name": "keyword.ada" }, { "match": "(?i)\\b(if|then|else|elsif|in|for|(?<!\\.)all|some|\\.\\.|delta|with)\\b", "name": "keyword.ada" }] }, "for_loop_statement": { "begin": "(?i)\\bfor\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", "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": "(?i)(?<=for)", "end": "(?i)\\bloop\\b", "endCaptures": { "0": { "name": "keyword.control.ada" } }, "patterns": [{ "captures": { "1": { "name": "variable.name.ada" }, "2": { "name": "keyword.control.ada" }, "3": { "name": "keyword.control.ada" } }, "match": "(?i)\\b((?:\\w|\\d|_)+)\\s+(in)(\\s+reverse)?\\b" }, { "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": "(?i)\\b((?:\\w|\\d|_)+)(?:\\s*(:)\\s*((?:\\w|\\d|\\.|_)+))?\\s+(of)(\\s+reverse)?\\b" }, { "include": "#expression" }] }, { "include": "#statement" }] }, "full_type_declaration": { "patterns": [{ "include": "#task_type_declaration" }, { "include": "#regular_type_declaration" }] }, "function_body": { "begin": '(?i)\\b(overriding\\s+)?(function)\\s+(?:((?:\\w|\\d|\\.|_)+\\b)|(".+"))', "beginCaptures": { "1": { "name": "storage.visibility.ada" }, "2": { "name": "keyword.ada" }, "3": { "name": "entity.name.function.ada" }, "4": { "patterns": [{ "include": "#string_literal" }] } }, "end": "(?i)(?:\\b(end)\\s+(\\3|\\4)\\s*)?(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.function.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.declaration.function.body.ada", "patterns": [{ "begin": "(?i)\\bbegin\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=end)", "patterns": [{ "include": "#handled_sequence_of_statements" }] }, { "include": "#aspect_specification" }, { "include": "#result_profile" }, { "include": "#subprogram_renaming_declaration" }, { "include": "#parameter_profile" }, { "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=(with|begin|;))", "name": "meta.function.body.spec_part.ada", "patterns": [{ "begin": "(?i)\\bnew\\b", "beginCaptures": { "0": { "name": "keyword.operator.new.ada" } }, "end": "(?=;)", "name": "meta.declaration.package.generic.ada", "patterns": [{ "match": "((?:\\w|\\d|\\.|_)+)", "name": "entity.name.function.ada" }, { "include": "#actual_parameter_part" }] }, { "captures": { "0": { "name": "storage.modifier.ada" } }, "match": "(?i)\\babstract\\b", "name": "meta.declaration.function.abstract.ada" }, { "include": "#declarative_item" }, { "include": "#subprogram_renaming_declaration" }, { "include": "#expression" }] }] }, "function_specification": { "patterns": [{ "include": "#function_body" }] }, "goto_statement": { "begin": "(?i)\\bgoto\\b", "beginCaptures": { "0": { "name": "keyword.control.goto.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.statement.goto.ada", "patterns": [{}] }, "guard": { "begin": "(?i)\\bwhen\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "=>", "endCaptures": { "0": { "name": "keyword.other.ada" } }, "patterns": [{ "include": "#expression" }] }, "handled_sequence_of_statements": { "patterns": [{ "begin": "(?i)\\bexception\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(?=end)\\b", "name": "meta.handler.exception.ada", "patterns": [{ "begin": "(?i)\\bwhen\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "=>", "endCaptures": { "0": { "name": "keyword.other.ada" } }, "patterns": [{ "captures": { "1": { "name": "variable.name.ada" }, "2": { "name": "punctuation.ada" } }, "match": "\\b((?:\\w|\\d|\\.|_)+)\\s*(:)" }, { "match": "\\|", "name": "punctuation.ada" }, { "match": "(?i)\\bothers\\b", "name": "keyword.ada" }, { "match": "(?:\\w|\\d|\\.|_)+", "name": "entity.name.exception.ada" }] }, { "include": "#statement" }] }, { "include": "#statement" }] }, "highest_precedence_operator": { "match": "(?i)(\\*\\*|\\babs\\b|\\bnot\\b)", "name": "keyword.operator.highest-precedence.ada" }, "if_statement": { "begin": "(?i)\\bif\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(end)\\s+(if)\\s*(;)", "endCaptures": { "1": { "name": "keyword.control.ada" }, "2": { "name": "keyword.control.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.statement.if.ada", "patterns": [{ "begin": "(?i)\\belsif\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)(?:(?<!\\sand)\\s+(?=then))", "patterns": [{ "include": "#expression" }] }, { "begin": "(?i)\\belse\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)(?=end)", "patterns": [{ "include": "#statement" }] }, { "begin": "(?i)(?<=if)\\b", "end": "(?i)(?:(?<!\\sand)\\s+(?=then))", "endCaptures": { "0": { "name": "keyword.control.ada" } }, "patterns": [{ "include": "#expression" }] }, { "begin": "(?i)\\bthen\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)(?=(elsif|else|end))", "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": "(?i)\\b(?:(limited|task|protected|synchronized)\\s+)?(interface)", "beginCaptures": { "1": { "name": "storage.modifier.ada" }, "2": { "name": "storage.modifier.ada" } }, "end": "(?i)(?=(with|;))", "name": "meta.declaration.type.definition.interface.ada", "patterns": [{ "match": "(?i)\\band\\b", "name": "storage.modifier.ada" }, { "include": "#subtype_mark" }] }, "keyword": { "patterns": [{ "match": "(?i)\\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", "name": "keyword.ada" }, { "match": "(?i)\\b(case|do|else|elsif|exit|for|goto|if|loop|raise|return|terminate|until|while)\\b", "name": "keyword.control.ada" }, { "match": "(?i)\\b(abstract|access|aliased|array|constant|delta|digits|interface|limited|protected|synchronized|tagged|task)\\b", "name": "storage.modifier.ada" }, { "match": "(?i)\\b(private|overriding)\\b", "name": "storage.visibility.ada" }, { "match": "<>", "name": "keyword.modifier.unknown.ada" }, { "match": "(\\+|-|\\*|/)", "name": "keyword.operator.arithmetic.ada" }, { "match": ":=", "name": "keyword.operator.assignment.ada" }, { "match": "(=|/=|<|>|<=|>=)", "name": "keyword.operator.logic.ada" }, { "match": "\\&", "name": "keyword.operator.concatenation.ada" }] }, "known_discriminant_part": { "begin": "\\(", "captures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "name": "meta.declaration.type.discriminant.ada", "patterns": [{ "match": ";", "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": "(<<)?((?:\\w|\\d|_)+)\\s*(:[^=]|>>)", "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": "(?i)\\b(mod)\\b", "beginCaptures": { "1": { "name": "storage.modifier.ada" } }, "end": "(?i)(?=(with|;))", "patterns": [{ "match": "<>", "name": "keyword.modifier.unknown.ada" }, { "include": "#expression" }] }, "multiplying_operator": { "match": "(?i)(\\*|/|\\bmod\\b|\\brem\\b)", "name": "keyword.operator.multiplying.ada" }, "null_statement": { "captures": { "1": { "name": "keyword.ada" }, "2": { "name": "punctuation.ada" } }, "match": "(?i)\\b(null)\\s*(;)", "name": "meta.statement.null.ada" }, "object_declaration": { "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)*)\\s*(:)", "beginCaptures": { "1": { "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "match": "\\b(\\w|\\d|_)+\\b", "name": "variable.name.ada" }] }, "2": { "name": "punctuation.ada" } }, "end": "(;)", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.declaration.object.ada", "patterns": [{ "begin": "(?<=:)", "end": "(?:(?=;)|(:=)|(\\brenames\\b))", "endCaptures": { "1": { "name": "keyword.operator.new.ada" }, "2": { "name": "keyword.ada" } }, "patterns": [{ "match": "(?i)\\bconstant\\b", "name": "storage.modifier.ada" }, { "match": "(?i)\\baliased\\b", "name": "storage.visibility.ada" }, { "include": "#aspect_specification" }, { "include": "#subtype_mark" }] }, { "begin": "(?<=:=)", "end": "(?=;)", "patterns": [{ "include": "#aspect_specification" }, { "include": "#expression" }] }, { "begin": "(?<=renames)", "end": "(?=;)", "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": "(?i)\\b(package)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b", "beginCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "keyword.ada" }, "3": { "patterns": [{ "include": "#package_mark" }] } }, "end": "(?i)\\b(end)\\s+(\\3)\\s*(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "patterns": [{ "include": "#package_mark" }] }, "3": { "name": "punctuation.ada" } }, "name": "meta.declaration.package.body.ada", "patterns": [{ "begin": "(?i)\\bbegin\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(?=end)\\b", "patterns": [{ "include": "#handled_sequence_of_statements" }] }, { "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=(\\bbegin\\b|\\bend\\b))", "patterns": [{ "match": "(?i)\\bprivate\\b", "name": "keyword.ada" }, { "include": "#declarative_item" }, { "include": "#comment" }] }, { "include": "#aspect_specification" }] }, "package_declaration": { "patterns": [{ "include": "#package_specification" }] }, "package_mark": { "match": "\\b(\\w|\\d|\\.|_)+\\b", "name": "entity.name.package.ada" }, "package_specification": { "begin": "(?i)\\b(package)\\s+((?:\\w|\\d|\\.|_)+)\\b", "beginCaptures": { "1": { "name": "keyword.ada" }, "2": { "patterns": [{ "include": "#package_mark" }] } }, "end": "(?i)(?:\\b(end)\\s+(\\2)\\s*)?(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "patterns": [{ "include": "#package_mark" }] }, "3": { "name": "punctuation.ada" } }, "name": "meta.declaration.package.specification.ada", "patterns": [{ "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?=(end|;))", "patterns": [{ "begin": "(?i)\\bnew\\b", "beginCaptures": { "0": { "name": "keyword.operator.new.ada" } }, "end": "(?=;)", "name": "meta.declaration.package.generic.ada", "patterns": [{ "include": "#package_mark" }, { "include": "#actual_parameter_part" }] }, { "match": "(?i)\\bprivate\\b", "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": "((?:\\w|\\d|_)+)\\s*(=>)" }, { "include": "#expression" }] }, "parameter_profile": { "begin": "\\(", "captures": { "0": { "name": "punctuation.ada" } }, "end": "\\)", "patterns": [{ "match": ";", "name": "punctuation.ada" }, { "include": "#parameter_specification" }] }, "parameter_specification": { "patterns": [{ "begin": ":(?!=)", "beginCaptures": { "0": { "name": "punctuation.ada" } }, "end": "(?=[:;)])", "name": "meta.type.annotation.ada", "patterns": [{ "match": "(?i)\\b(in|out)\\b", "name": "keyword.ada" }, { "include": "#subtype_mark" }] }, { "begin": ":=", "beginCaptures": { "0": { "name": "keyword.operator.new.ada" } }, "end": "(?=[:;)])", "patterns": [{ "include": "#expression" }] }, { "match": ",", "name": "punctuation.ada" }, { "match": "\\b(?:\\w|\\d|\\.|_)+\\b", "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": "<>", "name": "keyword.modifier.unknown.ada" }, { "include": "#expression" }] } }, "match": "(?i)\\b(others)\\s*(=>)\\s*([^,)]+)" }, { "include": "#expression" }] }, "pragma": { "begin": "(?i)\\b(pragma)\\s+((?:\\w|\\d|_)+)\\b", "beginCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "keyword.control.directive.ada" } }, "end": "(;)", "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": "^\\s*(#)(if|elsif)\\s+(.*)$" }, { "captures": { "1": { "name": "punctuation.definition.directive.ada" }, "2": { "name": "keyword.control.directive.conditional" }, "3": { "name": "punctuation.ada" } }, "match": "^\\s*(#)(end if)(;)" }, { "captures": { "1": { "name": "punctuation.definition.directive.ada" }, "2": { "name": "keyword.control.directive.conditional" } }, "match": "^\\s*(#)(else)" }] }, "procedure_body": { "begin": "(?i)\\b(overriding\\s+)?(procedure)\\s+((?:\\w|\\d|\\.|_)+)\\b", "beginCaptures": { "1": { "name": "storage.visibility.ada" }, "2": { "name": "keyword.ada" }, "3": { "name": "entity.name.function.ada" } }, "end": "(?i)(?:\\b(end)\\s+(\\3)\\s*)?(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.function.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.declaration.procedure.body.ada", "patterns": [{ "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=(with|begin|;))", "patterns": [{ "begin": "(?i)\\bnew\\b", "beginCaptures": { "0": { "name": "keyword.operator.new.ada" } }, "end": "(?=;)", "name": "meta.declaration.package.generic.ada", "patterns": [{ "match": "((?:\\w|\\d|\\.|_)+)", "name": "entity.name.function.ada" }, { "include": "#actual_parameter_part" }] }, { "match": "(?i)\\b(null|abstract)\\b", "name": "storage.modifier.ada" }, { "include": "#declarative_item" }] }, { "begin": "(?i)\\bbegin\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=\\bend\\b)", "patterns": [{ "include": "#handled_sequence_of_statements" }] }, { "include": "#subprogram_renaming_declaration" }, { "include": "#aspect_specification" }, { "include": "#parameter_profile" }, { "include": "#comment" }] }, "procedure_call_statement": { "begin": "(?i)\\b((?:\\w|\\d|_|\\.)+)\\b", "beginCaptures": { "1": { "name": "entity.name.function.ada" } }, "end": ";", "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": "(?i)\\b(protected)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b", "beginCaptures": { "1": { "name": "storage.modifier.ada" }, "2": { "name": "keyword.ada" }, "3": { "name": "entity.name.body.ada" } }, "end": "(?i)(?:\\b(end)\\s*(\\s\\3)\\s*)(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.body.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.declaration.procedure.body.ada", "patterns": [{ "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(?=end)\\b", "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": "(?i)\\braise\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?=;)", "name": "meta.expression.raise.ada", "patterns": [{ "begin": "(?i)\\bwith\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?=(;|\\))", "patterns": [{ "include": "#expression" }] }, { "match": "\\b(\\w|\\d|_)+\\b", "name": "entity.name.exception.ada" }] }, "raise_statement": { "begin": "(?i)\\braise\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.statement.raise.ada", "patterns": [{ "begin": "(?i)\\bwith\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?=;)", "patterns": [{ "include": "#expression" }] }, { "match": "\\b(\\w|\\d|\\.|_)+\\b", "name": "entity.name.exception.ada" }] }, "range_constraint": { "begin": "(?i)\\brange\\b", "beginCaptures": { "0": { "name": "storage.modifier.ada" } }, "end": "(?=(\\bwith\\b|;))", "patterns": [{ "match": "\\.\\.", "name": "keyword.ada" }, { "match": "<>", "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": "(?i)\\b(record)\\b", "beginCaptures": { "1": { "name": "storage.modifier.ada" } }, "end": "(?i)\\b(end)\\s+(record)\\b", "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": "(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(null)\\s+(record)\\b", "name": "meta.declaration.type.definition.record.null.ada", "patterns": [{ "include": "#component_item" }] }, { "begin": "(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(record)\\b", "beginCaptures": { "1": { "name": "storage.modifier.ada" }, "2": { "name": "storage.modifier.ada" }, "3": { "name": "storage.modifier.ada" }, "4": { "name": "storage.modifier.ada" } }, "end": "(?i)\\b(end)\\s+(record)\\b", "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": "(?i)\\b(type)\\b", "beginCaptures": { "1": { "name": "keyword.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.declaration.type.definition.regular.ada", "patterns": [{ "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=(with(?!\\s+(private))|;))", "patterns": [{ "include": "#type_definition" }] }, { "begin": "(?i)\\b(?<=type)\\b", "end": "(?i)(?=(is|;))", "patterns": [{ "include": "#known_discriminant_part" }, { "include": "#subtype_mark" }] }, { "include": "#aspect_specification" }] }, "relational_operator": { "match": "(=|/=|<|<=|>|>=)", "name": "keyword.operator.relational.ada" }, "requeue_statement": { "begin": "(?i)\\brequeue\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.statement.requeue.ada", "patterns": [{ "match": "(?i)\\b(with|abort)\\b", "name": "keyword.control.ada" }, { "match": "\\b(\\w|\\d|\\.|_)+\\b", "name": "entity.name.function.ada" }] }, "result_profile": { "begin": "(?i)\\breturn\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?=(is|with|renames|;))", "patterns": [{ "include": "#subtype_mark" }] }, "return_statement": { "begin": "(?i)\\breturn\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.statement.return.ada", "patterns": [{ "begin": "(?i)\\bdo\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(end)\\s+(return)\\s*(?=;)", "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((?:\\w|\\d|_)+)\\s*(:)\\s*((?:\\w|\\d|\\.|_)+)\\b" }, { "match": ":=", "name": "keyword.operator.new.ada" }, { "include": "#expression" }] }, "scalar_constraint": { "name": "meta.declaration.constraint.scalar.ada", "patterns": [{ "begin": "(?i)\\b(digits|delta)\\b", "beginCaptures": { "1": { "name": "storage.modifier.ada" } }, "end": "(?i)(?=\\brange\\b|\\bdigits\\b|\\bwith\\b|;)", "patterns": [{ "include": "#expression" }] }, { "include": "#range_constraint" }, { "include": "#expression" }] }, "select_alternative": { "patterns": [{ "begin": "(?i)\\bterminate\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } } }, { "include": "#statement" }] }, "select_statement": { "begin": "(?i)\\bselect\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(end)\\s+(select)\\b", "endCaptures": { "1": { "name": "keyword.control.ada" }, "2": { "name": "keyword.control.ada" } }, "name": "meta.statement.select.ada", "patterns": [{ "begin": "(?i)\\b(?:(or)|(?<=select))\\b", "beginCaptures": { "1": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(?=(or|else|end))\\b", "patterns": [{ "include": "#guard" }, { "include": "#select_alternative" }] }, { "begin": "(?i)\\belse\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(?=end)\\b", "patterns": [{ "include": "#statement" }] }] }, "signed_integer_type_definition": { "patterns": [{ "include": "#range_constraint" }] }, "simple_loop_statement": { "begin": "(?i)\\bloop\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", "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": "(?i)\\b(protected)\\s+((?:\\w|\\d|_)+)\\b", "beginCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.protected.ada" } }, "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.protected.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.declaration.protected.ada", "patterns": [{ "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=(\\bend\\b|;))", "patterns": [{ "begin": "(?i)\\bnew\\b", "captures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\bwith\\b", "patterns": [{ "match": "(?i)\\band\\b", "name": "keyword.ada" }, { "include": "#subtype_mark" }, { "include": "#comment" }] }, { "match": "(?i)\\bprivate\\b", "name": "keyword.ada" }, { "include": "#protected_element_declaration" }, { "include": "#comment" }] }, { "include": "#comment" }] }, "single_task_declaration": { "begin": "(?i)\\b(task)\\s+((?:\\w|\\d|_)+)\\b", "beginCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.task.ada" } }, "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.task.ada" }, "3": { "name": "punctuation.ada" } }, "patterns": [{ "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(?=end)\\b", "patterns": [{ "begin": "(?i)\\bnew\\b", "captures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\bwith\\b", "patterns": [{ "match": "(?i)\\band\\b", "name": "keyword.ada" }, { "include": "#subtype_mark" }, { "include": "#comment" }] }, { "match": "(?i)\\bprivate\\b", "name": "keyword.ada" }, { "include": "#task_item" }, { "include": "#comment" }] }, { "include": "#comment" }] }, "statement": { "patterns": [{ "begin": "(?i)\\bbegin\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(end)\\s*(;)", "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": '(").*?(")', "name": "string.quoted.double.ada" }, "subprogram_body": { "name": "meta.declaration.subprogram.body.ada", "patterns": [{ "include": "#procedure_body" }, { "include": "#function_body" }] }, "subprogram_renaming_declaration": { "begin": "(?i)\\brenames\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?=(with|;))", "patterns": [{ "match": "(?:\\w|\\d|_|\\.)+", "name": "entity.name.function.ada" }] }, "subprogram_specification": { "name": "meta.declaration.subprogram.specification.ada", "patterns": [{ "include": "#procedure_specification" }, { "include": "#function_specification" }] }, "subtype_declaration": { "begin": "(?i)\\bsubtype\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.declaration.subtype.ada", "patterns": [{ "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?=;)", "patterns": [{ "match": "(?i)\\b(not\\s+null)\\b", "name": "storage.modifier.ada" }, { "include": "#composite_constraint" }, { "include": "#aspect_specification" }, { "include": "#subtype_indication" }] }, { "begin": "(?i)(?<=subtype)", "end": "(?i)\\b(?=is)\\b", "patterns": [{ "include": "#subtype_mark" }] }] }, "subtype_indication": { "name": "meta.declaration.indication.subtype.ada", "patterns": [{ "include": "#scalar_constraint" }, { "include": "#subtype_mark" }] }, "subtype_mark": { "patterns": [{ "match": "(?i)\\b(access|aliased|not\\s+null|constant)\\b", "name": "storage.visibility.ada" }, { "include": "#attribute" }, { "include": "#actual_parameter_part" }, { "begin": "(?i)\\b(procedure|function)\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?=(;|\\)))", "patterns": [{ "include": "#parameter_profile" }, { "begin": "(?i)\\breturn\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?=(;|\\)))", "patterns": [{ "include": "#subtype_mark" }] }] }, { "captures": { "0": { "patterns": [{ "match": "[_.]", "name": "punctuation.ada" }] } }, "match": "\\b(?:\\w|\\d|\\.|_)+\\b", "name": "entity.name.type.ada" }, { "include": "#comment" }] }, "task_body": { "begin": "(?i)\\b(task)\\s+(body)\\s+((\\w|\\d|\\.|_)+)\\b", "beginCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "keyword.ada" }, "3": { "name": "entity.name.task.ada" } }, "end": "(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "entity.name.task.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.declaration.task.body.ada", "patterns": [{ "begin": "(?i)\\bbegin\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=end)", "patterns": [{ "include": "#handled_sequence_of_statements" }] }, { "include": "#aspect_specification" }, { "begin": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)(?=(with|begin))", "patterns": [{ "include": "#declarative_item" }] }] }, "task_item": { "patterns": [{ "include": "#aspect_clause" }, { "include": "#entry_declaration" }] }, "task_type_declaration": { "begin": "(?i)\\b(task)\\s+(type)\\s+((\\w|\\d|\\.|_)+)\\b", "beginCaptures": { "1": { "name": "storage.modifier.ada" }, "2": { "name": "keyword.ada" }, "3": { "name": "entity.name.task.ada" } }, "end": "(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)", "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": "(?i)\\bis\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(?=end)\\b", "patterns": [{ "begin": "(?i)\\bnew\\b", "captures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\bwith\\b", "patterns": [{ "match": "(?i)\\band\\b", "name": "keyword.ada" }, { "include": "#subtype_mark" }, { "include": "#comment" }] }, { "match": "(?i)\\bprivate\\b", "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": "(?i)\\buse\\b", "beginCaptures": { "0": { "name": "keyword.other.using.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.context.use.package.ada", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "include": "#package_mark" }] }, "use_type_clause": { "begin": "(?i)\\b(use)\\s+(?:(all)\\s+)?(type)\\b", "beginCaptures": { "1": { "name": "keyword.other.using.ada" }, "2": { "name": "keyword.modifier.ada" }, "3": { "name": "keyword.modifier.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.context.use.type.ada", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "include": "#subtype_mark" }] }, "value": { "patterns": [{ "include": "#based_literal" }, { "include": "#decimal_literal" }, { "include": "#character_literal" }, { "include": "#string_literal" }] }, "variant_part": { "begin": "(?i)\\bcase\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "(?i)\\b(end)\\s+(case);", "endCaptures": { "1": { "name": "keyword.ada" }, "2": { "name": "keyword.ada" }, "3": { "name": "punctuation.ada" } }, "name": "meta.declaration.variant.ada", "patterns": [{ "begin": "(?i)\\b(?<=case)\\b", "end": "(?i)\\bis\\b", "endCaptures": { "0": { "name": "keyword.ada" } }, "patterns": [{ "match": "(?:\\w|\\d|_)+", "name": "variable.name.ada" }, { "include": "#comment" }] }, { "begin": "(?i)\\b(?<=is)\\b", "end": "(?i)\\b(?=end)\\b", "patterns": [{ "begin": "(?i)\\bwhen\\b", "beginCaptures": { "0": { "name": "keyword.ada" } }, "end": "=>", "endCaptures": { "0": { "name": "keyword.other.ada" } }, "patterns": [{ "match": "\\|", "name": "punctuation.ada" }, { "match": "(?i)\\bothers\\b", "name": "keyword.ada" }, { "include": "#expression" }] }, { "include": "#component_item" }] }] }, "while_loop_statement": { "begin": "(?i)\\bwhile\\b", "beginCaptures": { "0": { "name": "keyword.control.ada" } }, "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", "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": "(?i)(?<=while)\\b", "end": "(?i)\\bloop\\b", "endCaptures": { "0": { "name": "keyword.control.ada" } }, "patterns": [{ "include": "#expression" }] }, { "include": "#statement" }] }, "with_clause": { "begin": "(?i)\\b(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\b", "beginCaptures": { "1": { "name": "keyword.modifier.ada" }, "2": { "name": "storage.visibility.ada" }, "3": { "name": "keyword.other.using.ada" } }, "end": ";", "endCaptures": { "0": { "name": "punctuation.ada" } }, "name": "meta.context.with.ada", "patterns": [{ "match": ",", "name": "punctuation.ada" }, { "include": "#package_mark" }] } }, "scopeName": "source.ada" });
1
+ const lang = Object.freeze(JSON.parse(`{"displayName":"Ada","name":"ada","patterns":[{"include":"#library_unit"},{"include":"#comment"},{"include":"#use_clause"},{"include":"#with_clause"},{"include":"#pragma"},{"include":"#keyword"}],"repository":{"abort_statement":{"begin":"(?i)\\\\babort\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.abort.ada","patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.task.ada"}]},"accept_statement":{"begin":"(?i)\\\\b(accept)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"entity.name.accept.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(\\\\s\\\\2)?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"entity.name.accept.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.statement.accept.ada","patterns":[{"begin":"(?i)\\\\bdo\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","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":"(?i)(not\\\\s+null\\\\s+)?(access)\\\\s+(constant\\\\s+)?((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","name":"meta.declaration.access.definition.ada"},"access_type_definition":{"begin":"(?i)\\\\b(not\\\\s+null\\\\s+)?(access)\\\\b","beginCaptures":{"1":{"name":"storage.visibility.ada"},"2":{"name":"storage.visibility.ada"}},"end":"(?i)(?=(with|;))","name":"meta.declaration.type.definition.access.ada","patterns":[{"match":"(?i)\\\\ball\\\\b","name":"storage.visibility.ada"},{"match":"(?i)\\\\bconstant\\\\b","name":"storage.modifier.ada"},{"include":"#subtype_mark"}]},"actual_parameter_part":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#parameter_association"}]},"adding_operator":{"match":"(\\\\+|-|\\\\&)","name":"keyword.operator.adding.ada"},"array_aggregate":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","name":"meta.definition.array.aggregate.ada","patterns":[{"match":",","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":"<>","name":"keyword.modifier.unknown.ada"},{"include":"#expression"}]}},"match":"(?i)\\\\b([^(=>)]*)\\\\s*(=>)\\\\s*([^,)]+)","name":"meta.definition.array.aggregate.component.ada"},"array_dimensions":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","name":"meta.declaration.type.definition.array.dimensions.ada","patterns":[{"match":",","name":"punctuation.ada"},{"match":"(?i)\\\\brange\\\\b","name":"storage.modifier.ada"},{"match":"<>","name":"keyword.modifier.unknown.ada"},{"match":"\\\\.\\\\.","name":"keyword.ada"},{"include":"#expression"},{"patterns":[{"include":"#subtype_mark"}]}]},"array_type_definition":{"begin":"(?i)\\\\barray\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?i)(?=(with|;))","name":"meta.declaration.type.definition.array.ada","patterns":[{"include":"#array_dimensions"},{"match":"(?i)\\\\bof\\\\b","name":"storage.modifier.ada"},{"match":"(?i)\\\\baliased\\\\b","name":"storage.visibility.ada"},{"include":"#access_definition"},{"include":"#subtype_mark"}]},"aspect_clause":{"begin":"(?i)\\\\b(for)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"patterns":[{"include":"#subtype_mark"}]},"3":{"name":"punctuation.ada"},"5":{"name":"keyword.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.aspect.clause.ada","patterns":[{"begin":"(?i)\\\\buse\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=;)","endCaptures":{"0":{"name":"punctuation.ada"}},"patterns":[{"include":"#record_representation_clause"},{"include":"#array_aggregate"},{"include":"#expression"}]},{"begin":"(?i)(?<=for)","captures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=use)","patterns":[{"captures":{"1":{"patterns":[{"include":"#subtype_mark"}]},"2":{"patterns":[{"include":"#attribute"}]}},"match":"((?:\\\\w|\\\\d|_)+)('((?:\\\\w|\\\\d|_)+))?"}]}]},"aspect_definition":{"begin":"=>","beginCaptures":{"0":{"name":"keyword.other.ada"}},"end":"(?i)(?=(,|;|\\\\bis\\\\b))","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":"(?i)\\\\b((?:\\\\w|\\\\d|\\\\.|_)+)(?:(')(class))?\\\\b","name":"meta.aspect.mark.ada"},"aspect_specification":{"begin":"(?i)\\\\bwith\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(;|\\\\bis\\\\b))","name":"meta.aspect.specification.ada","patterns":[{"match":",","name":"punctuation.ada"},{"captures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"storage.modifier.ada"}},"match":"(?i)\\\\b(null)\\\\s+(record)\\\\b"},{"begin":"(?i)\\\\brecord\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?i)\\\\b(end)\\\\s+(record)\\\\b","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"storage.modifier.ada"}},"patterns":[{"include":"#component_item"}]},{"captures":{"0":{"name":"storage.visibility.ada"}},"match":"(?i)\\\\bprivate\\\\b"},{"include":"#aspect_definition"},{"include":"#aspect_mark"},{"include":"#comment"}]},"assignment_statement":{"begin":"\\\\b((?:\\\\w|\\\\d|\\\\.|_|\\\\(|\\\\)|\\"|'|\\\\s)+)\\\\s*(:=)","beginCaptures":{"1":{"patterns":[{"match":"((?:\\\\w|\\\\d|\\\\.|_)+)","name":"variable.name.ada"},{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","patterns":[{"include":"#expression"}]}]},"2":{"name":"keyword.operator.new.ada"}},"end":";","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":"(')((?:\\\\w|\\\\d|_)+)\\\\b","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":"(?i)(\\\\d(?:(_)?\\\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\\\+|-)?\\\\d(?:_?\\\\d)*)?","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":"(?i)\\\\bdeclare\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(end)(\\\\s+(?:\\\\w|\\\\d|_)+)?\\\\s*(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.label.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.statement.block.ada","patterns":[{"begin":"(?i)(?<=declare)","end":"(?i)\\\\bbegin\\\\b","endCaptures":{"0":{"name":"keyword.ada"}},"patterns":[{"include":"#body"},{"include":"#basic_declarative_item"}]},{"begin":"(?i)(?<=begin)","end":"(?i)(?=end)","patterns":[{"include":"#statement"}]}]},"body":{"patterns":[{"include":"#subprogram_body"},{"include":"#package_body"},{"include":"#task_body"},{"include":"#protected_body"}]},"case_statement":{"begin":"(?i)\\\\bcase\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(case)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.statement.case.ada","patterns":[{"begin":"(?i)(?<=case)\\\\b","end":"(?i)\\\\bis\\\\b","endCaptures":{"0":{"name":"keyword.control.ada"}},"patterns":[{"include":"#expression"}]},{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"=>","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.case.alternative.ada","patterns":[{"match":"(?i)\\\\bothers\\\\b","name":"keyword.modifier.unknown.ada"},{"match":"\\\\|","name":"punctuation.ada"},{"include":"#expression"}]},{"include":"#statement"}]},"character_literal":{"captures":{"0":{"patterns":[{"match":"'","name":"punctuation.definition.string.ada"}]}},"match":"'.'","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":"(--)\\\\s*(@)(\\\\w+)\\\\s+(.*)$","name":"comment.block.documentation.ada"},"comment-line":{"match":"--.*$","name":"comment.line.double-dash.ada"},"comment-section":{"captures":{"1":{"name":"entity.name.section.ada"}},"match":"--\\\\s*([^-].*?[^-])\\\\s*--\\\\s*$","name":"comment.line.double-dash.ada"},"component_clause":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"0":{"name":"variable.name.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.aspect.clause.record.representation.component.ada","patterns":[{"begin":"(?i)\\\\bat\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?i)\\\\b(?=range)\\\\b","patterns":[{"include":"#expression"}]},{"include":"#range_constraint"}]},"component_declaration":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+(?:\\\\s*,\\\\s*(?:\\\\w|\\\\d|_)+)?)\\\\s*(:)","beginCaptures":{"1":{"patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"variable.name.ada"}]},"2":{"name":"punctuation.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.type.definition.record.component.ada","patterns":[{"patterns":[{"match":":=","name":"keyword.operator.new.ada"},{"include":"#expression"}]},{"include":"#component_definition"}]},"component_definition":{"patterns":[{"match":"(?i)\\\\baliased\\\\b","name":"storage.visibility.ada"},{"match":"(?i)\\\\brange\\\\b","name":"storage.modifier.ada"},{"match":"\\\\.\\\\.","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":"(?i)\\\\b(null)\\\\s*(;)"}]},"composite_constraint":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","name":"meta.declaration.constraint.composite.ada","patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\.\\\\.","name":"keyword.ada"},{"captures":{"1":{"name":"variable.name.ada"},"2":{"name":"keyword.other.ada"},"3":{"patterns":[{"include":"#expression"}]}},"match":"(?i)\\\\b((?:\\\\w|\\\\d|_)+)\\\\s*(=>)\\\\s*([^,)])+\\\\b"},{"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":"\\\\d(?:(_)?\\\\d)*(?:(\\\\.)\\\\d(?:(_)?\\\\d)*)?([eE](?:\\\\+|-)?\\\\d(?:_?\\\\d)*)?","name":"constant.numeric.ada"},"declarative_item":{"patterns":[{"include":"#body"},{"include":"#basic_declarative_item"}]},"delay_relative_statement":{"begin":"(?i)\\\\b(delay)\\\\b","beginCaptures":{"1":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"patterns":[{"include":"#expression"}]},"delay_statement":{"patterns":[{"include":"#delay_until_statement"},{"include":"#delay_relative_statement"}]},"delay_until_statement":{"begin":"(?i)\\\\b(delay)\\\\s+(until)\\\\b","beginCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"}},"end":";","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":"(?i)\\\\bnew\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?i)(?=(\\\\bwith\\\\b|;))","patterns":[{"match":"(?i)\\\\band\\\\b","name":"storage.modifier.ada"},{"include":"#subtype_mark"}]},{"match":"(?i)\\\\b(abstract|and|limited|tagged)\\\\b","name":"storage.modifier.ada"},{"match":"(?i)\\\\bprivate\\\\b","name":"storage.visibility.ada"},{"include":"#subtype_mark"}]},"discriminant_specification":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+(?:\\\\s*,\\\\s*(?:\\\\w|\\\\d|_)+)?)\\\\s*(:)","beginCaptures":{"1":{"patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"variable.name.ada"}]},"2":{"name":"punctuation.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"begin":":=","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"include":"#expression"}]},{"captures":{"1":{"name":"storage.visibility.ada"},"2":{"patterns":[{"include":"#subtype_mark"}]}},"match":"(?i)(not\\\\s+null\\\\s+)?((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b"},{"include":"#access_definition"}]},"entry_body":{"begin":"(?i)\\\\b(entry)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.entry.ada"}},"end":"(?i)\\\\b(end)\\\\s*(\\\\s\\\\2)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.entry.ada"},"3":{"name":"punctuation.ada"}},"patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=begin)\\\\b","patterns":[{"include":"#declarative_item"}]},{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"include":"#statement"}]},{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=is)\\\\b","patterns":[{"include":"#expression"}]},{"include":"#parameter_profile"}]},"entry_declaration":{"begin":"(?i)\\\\b(?:(not)?\\\\s+(overriding)\\\\s+)?(entry)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"storage.modifier.ada"},"3":{"name":"keyword.ada"},"4":{"name":"entity.name.entry.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"patterns":[{"include":"#parameter_profile"}]},"enumeration_type_definition":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.type.definition.enumeration.ada","patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"variable.name.ada"},{"include":"#comment"}]},"exception_declaration":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+(?:\\\\s*,\\\\s*(?:\\\\w|\\\\d|_)+)?)\\\\s*(:)\\\\s*(exception)","beginCaptures":{"1":{"patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"entity.name.exception.ada"}]},"2":{"name":"punctuation.ada"},"3":{"name":"storage.type.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.exception.ada","patterns":[{"match":"(?i)\\\\b(renames)\\\\s+((\\\\w|\\\\d|_|\\\\.)+)","name":"entity.name.exception.ada"}]},"exit_statement":{"begin":"(?i)\\\\bexit\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.exit.ada","patterns":[{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?=;)","patterns":[{"include":"#expression"}]},{"match":"(?:\\\\w|\\\\d|_)+","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])(\\\\+|-)?\\\\d(?:(_)?\\\\d)*"},"expression":{"name":"meta.expression.ada","patterns":[{"match":"(?i)\\\\bnull\\\\b","name":"constant.language.ada"},{"match":"=>(\\\\+)?","name":"keyword.other.ada"},{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","patterns":[{"include":"#expression"}]},{"match":",","name":"punctuation.ada"},{"match":"\\\\.\\\\.","name":"keyword.ada"},{"include":"#value"},{"include":"#attribute"},{"include":"#comment"},{"include":"#operator"},{"match":"(?i)\\\\b(and|or|xor)\\\\b","name":"keyword.ada"},{"match":"(?i)\\\\b(if|then|else|elsif|in|for|(?<!\\\\.)all|some|\\\\.\\\\.|delta|with)\\\\b","name":"keyword.ada"}]},"for_loop_statement":{"begin":"(?i)\\\\bfor\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(loop)(\\\\s+(?:\\\\w|\\\\d|_)+)?\\\\s*(;)","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":"(?i)(?<=for)","end":"(?i)\\\\bloop\\\\b","endCaptures":{"0":{"name":"keyword.control.ada"}},"patterns":[{"captures":{"1":{"name":"variable.name.ada"},"2":{"name":"keyword.control.ada"},"3":{"name":"keyword.control.ada"}},"match":"(?i)\\\\b((?:\\\\w|\\\\d|_)+)\\\\s+(in)(\\\\s+reverse)?\\\\b"},{"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":"(?i)\\\\b((?:\\\\w|\\\\d|_)+)(?:\\\\s*(:)\\\\s*((?:\\\\w|\\\\d|\\\\.|_)+))?\\\\s+(of)(\\\\s+reverse)?\\\\b"},{"include":"#expression"}]},{"include":"#statement"}]},"full_type_declaration":{"patterns":[{"include":"#task_type_declaration"},{"include":"#regular_type_declaration"}]},"function_body":{"begin":"(?i)\\\\b(overriding\\\\s+)?(function)\\\\s+(?:((?:\\\\w|\\\\d|\\\\.|_)+\\\\b)|(\\".+\\"))","beginCaptures":{"1":{"name":"storage.visibility.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.function.ada"},"4":{"patterns":[{"include":"#string_literal"}]}},"end":"(?i)(?:\\\\b(end)\\\\s+(\\\\3|\\\\4)\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.function.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.function.body.ada","patterns":[{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=end)","patterns":[{"include":"#handled_sequence_of_statements"}]},{"include":"#aspect_specification"},{"include":"#result_profile"},{"include":"#subprogram_renaming_declaration"},{"include":"#parameter_profile"},{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(with|begin|;))","name":"meta.function.body.spec_part.ada","patterns":[{"begin":"(?i)\\\\bnew\\\\b","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=;)","name":"meta.declaration.package.generic.ada","patterns":[{"match":"((?:\\\\w|\\\\d|\\\\.|_)+)","name":"entity.name.function.ada"},{"include":"#actual_parameter_part"}]},{"captures":{"0":{"name":"storage.modifier.ada"}},"match":"(?i)\\\\babstract\\\\b","name":"meta.declaration.function.abstract.ada"},{"include":"#declarative_item"},{"include":"#subprogram_renaming_declaration"},{"include":"#expression"}]}]},"function_specification":{"patterns":[{"include":"#function_body"}]},"goto_statement":{"begin":"(?i)\\\\bgoto\\\\b","beginCaptures":{"0":{"name":"keyword.control.goto.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.goto.ada","patterns":[{}]},"guard":{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"=>","endCaptures":{"0":{"name":"keyword.other.ada"}},"patterns":[{"include":"#expression"}]},"handled_sequence_of_statements":{"patterns":[{"begin":"(?i)\\\\bexception\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","name":"meta.handler.exception.ada","patterns":[{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"=>","endCaptures":{"0":{"name":"keyword.other.ada"}},"patterns":[{"captures":{"1":{"name":"variable.name.ada"},"2":{"name":"punctuation.ada"}},"match":"\\\\b((?:\\\\w|\\\\d|\\\\.|_)+)\\\\s*(:)"},{"match":"\\\\|","name":"punctuation.ada"},{"match":"(?i)\\\\bothers\\\\b","name":"keyword.ada"},{"match":"(?:\\\\w|\\\\d|\\\\.|_)+","name":"entity.name.exception.ada"}]},{"include":"#statement"}]},{"include":"#statement"}]},"highest_precedence_operator":{"match":"(?i)(\\\\*\\\\*|\\\\babs\\\\b|\\\\bnot\\\\b)","name":"keyword.operator.highest-precedence.ada"},"if_statement":{"begin":"(?i)\\\\bif\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(if)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.statement.if.ada","patterns":[{"begin":"(?i)\\\\belsif\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)(?:(?<!\\\\sand)\\\\s+(?=then))","patterns":[{"include":"#expression"}]},{"begin":"(?i)\\\\belse\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)(?=end)","patterns":[{"include":"#statement"}]},{"begin":"(?i)(?<=if)\\\\b","end":"(?i)(?:(?<!\\\\sand)\\\\s+(?=then))","endCaptures":{"0":{"name":"keyword.control.ada"}},"patterns":[{"include":"#expression"}]},{"begin":"(?i)\\\\bthen\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)(?=(elsif|else|end))","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":"(?i)\\\\b(?:(limited|task|protected|synchronized)\\\\s+)?(interface)","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"storage.modifier.ada"}},"end":"(?i)(?=(with|;))","name":"meta.declaration.type.definition.interface.ada","patterns":[{"match":"(?i)\\\\band\\\\b","name":"storage.modifier.ada"},{"include":"#subtype_mark"}]},"keyword":{"patterns":[{"match":"(?i)\\\\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","name":"keyword.ada"},{"match":"(?i)\\\\b(case|do|else|elsif|exit|for|goto|if|loop|raise|return|terminate|until|while)\\\\b","name":"keyword.control.ada"},{"match":"(?i)\\\\b(abstract|access|aliased|array|constant|delta|digits|interface|limited|protected|synchronized|tagged|task)\\\\b","name":"storage.modifier.ada"},{"match":"(?i)\\\\b(private|overriding)\\\\b","name":"storage.visibility.ada"},{"match":"<>","name":"keyword.modifier.unknown.ada"},{"match":"(\\\\+|-|\\\\*|/)","name":"keyword.operator.arithmetic.ada"},{"match":":=","name":"keyword.operator.assignment.ada"},{"match":"(=|/=|<|>|<=|>=)","name":"keyword.operator.logic.ada"},{"match":"\\\\&","name":"keyword.operator.concatenation.ada"}]},"known_discriminant_part":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","name":"meta.declaration.type.discriminant.ada","patterns":[{"match":";","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":"(<<)?((?:\\\\w|\\\\d|_)+)\\\\s*(:[^=]|>>)","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":"(?i)\\\\b(mod)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"}},"end":"(?i)(?=(with|;))","patterns":[{"match":"<>","name":"keyword.modifier.unknown.ada"},{"include":"#expression"}]},"multiplying_operator":{"match":"(?i)(\\\\*|/|\\\\bmod\\\\b|\\\\brem\\\\b)","name":"keyword.operator.multiplying.ada"},"null_statement":{"captures":{"1":{"name":"keyword.ada"},"2":{"name":"punctuation.ada"}},"match":"(?i)\\\\b(null)\\\\s*(;)","name":"meta.statement.null.ada"},"object_declaration":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+(?:\\\\s*,\\\\s*(?:\\\\w|\\\\d|_)+)*)\\\\s*(:)","beginCaptures":{"1":{"patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"variable.name.ada"}]},"2":{"name":"punctuation.ada"}},"end":"(;)","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.object.ada","patterns":[{"begin":"(?<=:)","end":"(?:(?=;)|(:=)|(\\\\brenames\\\\b))","endCaptures":{"1":{"name":"keyword.operator.new.ada"},"2":{"name":"keyword.ada"}},"patterns":[{"match":"(?i)\\\\bconstant\\\\b","name":"storage.modifier.ada"},{"match":"(?i)\\\\baliased\\\\b","name":"storage.visibility.ada"},{"include":"#aspect_specification"},{"include":"#subtype_mark"}]},{"begin":"(?<=:=)","end":"(?=;)","patterns":[{"include":"#aspect_specification"},{"include":"#expression"}]},{"begin":"(?<=renames)","end":"(?=;)","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":"(?i)\\\\b(package)\\\\s+(body)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.ada"},"3":{"patterns":[{"include":"#package_mark"}]}},"end":"(?i)\\\\b(end)\\\\s+(\\\\3)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"patterns":[{"include":"#package_mark"}]},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.package.body.ada","patterns":[{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"include":"#handled_sequence_of_statements"}]},{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(\\\\bbegin\\\\b|\\\\bend\\\\b))","patterns":[{"match":"(?i)\\\\bprivate\\\\b","name":"keyword.ada"},{"include":"#declarative_item"},{"include":"#comment"}]},{"include":"#aspect_specification"}]},"package_declaration":{"patterns":[{"include":"#package_specification"}]},"package_mark":{"match":"\\\\b(\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.package.ada"},"package_specification":{"begin":"(?i)\\\\b(package)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"patterns":[{"include":"#package_mark"}]}},"end":"(?i)(?:\\\\b(end)\\\\s+(\\\\2)\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"patterns":[{"include":"#package_mark"}]},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.package.specification.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(end|;))","patterns":[{"begin":"(?i)\\\\bnew\\\\b","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=;)","name":"meta.declaration.package.generic.ada","patterns":[{"include":"#package_mark"},{"include":"#actual_parameter_part"}]},{"match":"(?i)\\\\bprivate\\\\b","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":"((?:\\\\w|\\\\d|_)+)\\\\s*(=>)"},{"include":"#expression"}]},"parameter_profile":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","patterns":[{"match":";","name":"punctuation.ada"},{"include":"#parameter_specification"}]},"parameter_specification":{"patterns":[{"begin":":(?!=)","beginCaptures":{"0":{"name":"punctuation.ada"}},"end":"(?=[:;)])","name":"meta.type.annotation.ada","patterns":[{"match":"(?i)\\\\b(in|out)\\\\b","name":"keyword.ada"},{"include":"#subtype_mark"}]},{"begin":":=","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=[:;)])","patterns":[{"include":"#expression"}]},{"match":",","name":"punctuation.ada"},{"match":"\\\\b(?:\\\\w|\\\\d|\\\\.|_)+\\\\b","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":"<>","name":"keyword.modifier.unknown.ada"},{"include":"#expression"}]}},"match":"(?i)\\\\b(others)\\\\s*(=>)\\\\s*([^,)]+)"},{"include":"#expression"}]},"pragma":{"begin":"(?i)\\\\b(pragma)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.control.directive.ada"}},"end":"(;)","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":"^\\\\s*(#)(if|elsif)\\\\s+(.*)$"},{"captures":{"1":{"name":"punctuation.definition.directive.ada"},"2":{"name":"keyword.control.directive.conditional"},"3":{"name":"punctuation.ada"}},"match":"^\\\\s*(#)(end if)(;)"},{"captures":{"1":{"name":"punctuation.definition.directive.ada"},"2":{"name":"keyword.control.directive.conditional"}},"match":"^\\\\s*(#)(else)"}]},"procedure_body":{"begin":"(?i)\\\\b(overriding\\\\s+)?(procedure)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"storage.visibility.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.function.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s+(\\\\3)\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.function.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.procedure.body.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(with|begin|;))","patterns":[{"begin":"(?i)\\\\bnew\\\\b","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=;)","name":"meta.declaration.package.generic.ada","patterns":[{"match":"((?:\\\\w|\\\\d|\\\\.|_)+)","name":"entity.name.function.ada"},{"include":"#actual_parameter_part"}]},{"match":"(?i)\\\\b(null|abstract)\\\\b","name":"storage.modifier.ada"},{"include":"#declarative_item"}]},{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=\\\\bend\\\\b)","patterns":[{"include":"#handled_sequence_of_statements"}]},{"include":"#subprogram_renaming_declaration"},{"include":"#aspect_specification"},{"include":"#parameter_profile"},{"include":"#comment"}]},"procedure_call_statement":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_|\\\\.)+)\\\\b","beginCaptures":{"1":{"name":"entity.name.function.ada"}},"end":";","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":"(?i)\\\\b(protected)\\\\s+(body)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.body.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(\\\\s\\\\3)\\\\s*)(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.body.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.procedure.body.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","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":"(?i)\\\\braise\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?=;)","name":"meta.expression.raise.ada","patterns":[{"begin":"(?i)\\\\bwith\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(;|\\\\))","patterns":[{"include":"#expression"}]},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"entity.name.exception.ada"}]},"raise_statement":{"begin":"(?i)\\\\braise\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.raise.ada","patterns":[{"begin":"(?i)\\\\bwith\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?=;)","patterns":[{"include":"#expression"}]},{"match":"\\\\b(\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.exception.ada"}]},"range_constraint":{"begin":"(?i)\\\\brange\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?=(\\\\bwith\\\\b|;))","patterns":[{"match":"\\\\.\\\\.","name":"keyword.ada"},{"match":"<>","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":"(?i)\\\\b(record)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"}},"end":"(?i)\\\\b(end)\\\\s+(record)\\\\b","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":"(?i)\\\\b(?:(abstract)\\\\s+)?(?:(tagged)\\\\s+)?(?:(limited)\\\\s+)?(null)\\\\s+(record)\\\\b","name":"meta.declaration.type.definition.record.null.ada","patterns":[{"include":"#component_item"}]},{"begin":"(?i)\\\\b(?:(abstract)\\\\s+)?(?:(tagged)\\\\s+)?(?:(limited)\\\\s+)?(record)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"storage.modifier.ada"},"3":{"name":"storage.modifier.ada"},"4":{"name":"storage.modifier.ada"}},"end":"(?i)\\\\b(end)\\\\s+(record)\\\\b","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":"(?i)\\\\b(type)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.type.definition.regular.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(with(?!\\\\s+(private))|;))","patterns":[{"include":"#type_definition"}]},{"begin":"(?i)\\\\b(?<=type)\\\\b","end":"(?i)(?=(is|;))","patterns":[{"include":"#known_discriminant_part"},{"include":"#subtype_mark"}]},{"include":"#aspect_specification"}]},"relational_operator":{"match":"(=|/=|<|<=|>|>=)","name":"keyword.operator.relational.ada"},"requeue_statement":{"begin":"(?i)\\\\brequeue\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.requeue.ada","patterns":[{"match":"(?i)\\\\b(with|abort)\\\\b","name":"keyword.control.ada"},{"match":"\\\\b(\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.function.ada"}]},"result_profile":{"begin":"(?i)\\\\breturn\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(is|with|renames|;))","patterns":[{"include":"#subtype_mark"}]},"return_statement":{"begin":"(?i)\\\\breturn\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.return.ada","patterns":[{"begin":"(?i)\\\\bdo\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(return)\\\\s*(?=;)","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((?:\\\\w|\\\\d|_)+)\\\\s*(:)\\\\s*((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b"},{"match":":=","name":"keyword.operator.new.ada"},{"include":"#expression"}]},"scalar_constraint":{"name":"meta.declaration.constraint.scalar.ada","patterns":[{"begin":"(?i)\\\\b(digits|delta)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"}},"end":"(?i)(?=\\\\brange\\\\b|\\\\bdigits\\\\b|\\\\bwith\\\\b|;)","patterns":[{"include":"#expression"}]},{"include":"#range_constraint"},{"include":"#expression"}]},"select_alternative":{"patterns":[{"begin":"(?i)\\\\bterminate\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}}},{"include":"#statement"}]},"select_statement":{"begin":"(?i)\\\\bselect\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(select)\\\\b","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"}},"name":"meta.statement.select.ada","patterns":[{"begin":"(?i)\\\\b(?:(or)|(?<=select))\\\\b","beginCaptures":{"1":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(?=(or|else|end))\\\\b","patterns":[{"include":"#guard"},{"include":"#select_alternative"}]},{"begin":"(?i)\\\\belse\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"include":"#statement"}]}]},"signed_integer_type_definition":{"patterns":[{"include":"#range_constraint"}]},"simple_loop_statement":{"begin":"(?i)\\\\bloop\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(loop)(\\\\s+(?:\\\\w|\\\\d|_)+)?\\\\s*(;)","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":"(?i)\\\\b(protected)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.protected.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(\\\\s\\\\2)?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.protected.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.protected.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(\\\\bend\\\\b|;))","patterns":[{"begin":"(?i)\\\\bnew\\\\b","captures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\bwith\\\\b","patterns":[{"match":"(?i)\\\\band\\\\b","name":"keyword.ada"},{"include":"#subtype_mark"},{"include":"#comment"}]},{"match":"(?i)\\\\bprivate\\\\b","name":"keyword.ada"},{"include":"#protected_element_declaration"},{"include":"#comment"}]},{"include":"#comment"}]},"single_task_declaration":{"begin":"(?i)\\\\b(task)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.task.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(\\\\s\\\\2)?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.task.ada"},"3":{"name":"punctuation.ada"}},"patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"begin":"(?i)\\\\bnew\\\\b","captures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\bwith\\\\b","patterns":[{"match":"(?i)\\\\band\\\\b","name":"keyword.ada"},{"include":"#subtype_mark"},{"include":"#comment"}]},{"match":"(?i)\\\\bprivate\\\\b","name":"keyword.ada"},{"include":"#task_item"},{"include":"#comment"}]},{"include":"#comment"}]},"statement":{"patterns":[{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(end)\\\\s*(;)","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":"(\\").*?(\\")","name":"string.quoted.double.ada"},"subprogram_body":{"name":"meta.declaration.subprogram.body.ada","patterns":[{"include":"#procedure_body"},{"include":"#function_body"}]},"subprogram_renaming_declaration":{"begin":"(?i)\\\\brenames\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(with|;))","patterns":[{"match":"(?:\\\\w|\\\\d|_|\\\\.)+","name":"entity.name.function.ada"}]},"subprogram_specification":{"name":"meta.declaration.subprogram.specification.ada","patterns":[{"include":"#procedure_specification"},{"include":"#function_specification"}]},"subtype_declaration":{"begin":"(?i)\\\\bsubtype\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.subtype.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=;)","patterns":[{"match":"(?i)\\\\b(not\\\\s+null)\\\\b","name":"storage.modifier.ada"},{"include":"#composite_constraint"},{"include":"#aspect_specification"},{"include":"#subtype_indication"}]},{"begin":"(?i)(?<=subtype)","end":"(?i)\\\\b(?=is)\\\\b","patterns":[{"include":"#subtype_mark"}]}]},"subtype_indication":{"name":"meta.declaration.indication.subtype.ada","patterns":[{"include":"#scalar_constraint"},{"include":"#subtype_mark"}]},"subtype_mark":{"patterns":[{"match":"(?i)\\\\b(access|aliased|not\\\\s+null|constant)\\\\b","name":"storage.visibility.ada"},{"include":"#attribute"},{"include":"#actual_parameter_part"},{"begin":"(?i)\\\\b(procedure|function)\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"include":"#parameter_profile"},{"begin":"(?i)\\\\breturn\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"include":"#subtype_mark"}]}]},{"captures":{"0":{"patterns":[{"match":"[_.]","name":"punctuation.ada"}]}},"match":"\\\\b(?:\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.type.ada"},{"include":"#comment"}]},"task_body":{"begin":"(?i)\\\\b(task)\\\\s+(body)\\\\s+((\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.task.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(?:\\\\s(\\\\3))?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.task.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.task.body.ada","patterns":[{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=end)","patterns":[{"include":"#handled_sequence_of_statements"}]},{"include":"#aspect_specification"},{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(with|begin))","patterns":[{"include":"#declarative_item"}]}]},"task_item":{"patterns":[{"include":"#aspect_clause"},{"include":"#entry_declaration"}]},"task_type_declaration":{"begin":"(?i)\\\\b(task)\\\\s+(type)\\\\s+((\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.task.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(?:\\\\s(\\\\3))?\\\\s*)?(;)","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":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"begin":"(?i)\\\\bnew\\\\b","captures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\bwith\\\\b","patterns":[{"match":"(?i)\\\\band\\\\b","name":"keyword.ada"},{"include":"#subtype_mark"},{"include":"#comment"}]},{"match":"(?i)\\\\bprivate\\\\b","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":"(?i)\\\\buse\\\\b","beginCaptures":{"0":{"name":"keyword.other.using.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.context.use.package.ada","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#package_mark"}]},"use_type_clause":{"begin":"(?i)\\\\b(use)\\\\s+(?:(all)\\\\s+)?(type)\\\\b","beginCaptures":{"1":{"name":"keyword.other.using.ada"},"2":{"name":"keyword.modifier.ada"},"3":{"name":"keyword.modifier.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.context.use.type.ada","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#subtype_mark"}]},"value":{"patterns":[{"include":"#based_literal"},{"include":"#decimal_literal"},{"include":"#character_literal"},{"include":"#string_literal"}]},"variant_part":{"begin":"(?i)\\\\bcase\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(end)\\\\s+(case);","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.variant.ada","patterns":[{"begin":"(?i)\\\\b(?<=case)\\\\b","end":"(?i)\\\\bis\\\\b","endCaptures":{"0":{"name":"keyword.ada"}},"patterns":[{"match":"(?:\\\\w|\\\\d|_)+","name":"variable.name.ada"},{"include":"#comment"}]},{"begin":"(?i)\\\\b(?<=is)\\\\b","end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"=>","endCaptures":{"0":{"name":"keyword.other.ada"}},"patterns":[{"match":"\\\\|","name":"punctuation.ada"},{"match":"(?i)\\\\bothers\\\\b","name":"keyword.ada"},{"include":"#expression"}]},{"include":"#component_item"}]}]},"while_loop_statement":{"begin":"(?i)\\\\bwhile\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(loop)(\\\\s+(?:\\\\w|\\\\d|_)+)?\\\\s*(;)","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":"(?i)(?<=while)\\\\b","end":"(?i)\\\\bloop\\\\b","endCaptures":{"0":{"name":"keyword.control.ada"}},"patterns":[{"include":"#expression"}]},{"include":"#statement"}]},"with_clause":{"begin":"(?i)\\\\b(?:(limited)\\\\s+)?(?:(private)\\\\s+)?(with)\\\\b","beginCaptures":{"1":{"name":"keyword.modifier.ada"},"2":{"name":"storage.visibility.ada"},"3":{"name":"keyword.other.using.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.context.with.ada","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#package_mark"}]}},"scopeName":"source.ada"}`));
2
2
  var ada = [
3
3
  lang
4
4
  ];