pi-umbra 0.3.0 → 0.4.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 (99) hide show
  1. package/README.md +3 -4
  2. package/node_modules/@shikijs/cli/dist/cli.d.mts +13 -6
  3. package/node_modules/@shikijs/cli/dist/cli.mjs +32 -27
  4. package/node_modules/@shikijs/cli/dist/{code-to-ansi-BNrZay-4.mjs → code-to-ansi-Dmm_CuZ9.mjs} +15 -7
  5. package/node_modules/@shikijs/cli/dist/index.d.mts +24 -3
  6. package/node_modules/@shikijs/cli/dist/index.mjs +1 -1
  7. package/node_modules/@shikijs/cli/package.json +3 -3
  8. package/node_modules/@shikijs/core/dist/index.d.mts +28 -28
  9. package/node_modules/@shikijs/core/dist/index.mjs +15 -12
  10. package/node_modules/@shikijs/core/package.json +4 -4
  11. package/node_modules/@shikijs/engine-javascript/dist/{engine-compile-Bdn9ihA2.d.mts → engine-compile-CtqiSkRk.d.mts} +5 -0
  12. package/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts +1 -1
  13. package/node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs +2 -4
  14. package/node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts +2 -3
  15. package/node_modules/@shikijs/engine-javascript/dist/engine-raw.mjs +2 -4
  16. package/node_modules/@shikijs/engine-javascript/dist/index.d.mts +1 -1
  17. package/node_modules/@shikijs/engine-javascript/dist/index.mjs +1 -1
  18. package/node_modules/@shikijs/engine-javascript/dist/string-TLTPtCPs.mjs +115 -0
  19. package/node_modules/@shikijs/engine-javascript/package.json +3 -3
  20. package/node_modules/@shikijs/engine-oniguruma/package.json +3 -3
  21. package/node_modules/@shikijs/langs/dist/ada.mjs +1 -1
  22. package/node_modules/@shikijs/langs/dist/ahk.mjs +1 -1
  23. package/node_modules/@shikijs/langs/dist/beancount.mjs +1 -1
  24. package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
  25. package/node_modules/@shikijs/langs/dist/csharp.mjs +1 -1
  26. package/node_modules/@shikijs/langs/dist/css.mjs +1 -1
  27. package/node_modules/@shikijs/langs/dist/dart.mjs +1 -1
  28. package/node_modules/@shikijs/langs/dist/dotenv.mjs +1 -1
  29. package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
  30. package/node_modules/@shikijs/langs/dist/gn.mjs +1 -1
  31. package/node_modules/@shikijs/langs/dist/handlebars.mjs +1 -1
  32. package/node_modules/@shikijs/langs/dist/julia.mjs +1 -1
  33. package/node_modules/@shikijs/langs/dist/latex.mjs +1 -1
  34. package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
  35. package/node_modules/@shikijs/langs/dist/marko.mjs +1 -1
  36. package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
  37. package/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +1 -1
  38. package/node_modules/@shikijs/langs/dist/nextflow.mjs +1 -1
  39. package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
  40. package/node_modules/@shikijs/langs/dist/php.mjs +1 -1
  41. package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
  42. package/node_modules/@shikijs/langs/dist/ruby.mjs +1 -1
  43. package/node_modules/@shikijs/langs/dist/rust.mjs +1 -1
  44. package/node_modules/@shikijs/langs/dist/sql.mjs +1 -1
  45. package/node_modules/@shikijs/langs/dist/svelte.mjs +1 -1
  46. package/node_modules/@shikijs/langs/dist/twig.mjs +3 -3
  47. package/node_modules/@shikijs/langs/dist/typespec.mjs +1 -1
  48. package/node_modules/@shikijs/langs/package.json +3 -3
  49. package/node_modules/@shikijs/primitive/dist/index.d.mts +31 -32
  50. package/node_modules/@shikijs/primitive/dist/index.mjs +2 -1
  51. package/node_modules/@shikijs/primitive/package.json +3 -3
  52. package/node_modules/@shikijs/themes/dist/monokai.mjs +1 -1
  53. package/node_modules/@shikijs/themes/dist/one-dark-pro.mjs +1 -1
  54. package/node_modules/@shikijs/themes/dist/red.mjs +1 -1
  55. package/node_modules/@shikijs/themes/dist/solarized-dark.mjs +1 -1
  56. package/node_modules/@shikijs/themes/dist/solarized-light.mjs +1 -1
  57. package/node_modules/@shikijs/themes/package.json +3 -3
  58. package/node_modules/@shikijs/types/dist/index.d.mts +76 -76
  59. package/node_modules/@shikijs/types/package.json +1 -1
  60. package/node_modules/pi-umbra-copy-chat/README.md +4 -7
  61. package/node_modules/pi-umbra-copy-chat/extensions/umbra-copy-chat.ts +16 -54
  62. package/node_modules/pi-umbra-copy-chat/package.json +1 -1
  63. package/node_modules/pi-umbra-help/checks/umbra-help.check.ts +10 -1
  64. package/node_modules/pi-umbra-help/extensions/umbra-help.ts +31 -0
  65. package/node_modules/pi-umbra-help/package.json +1 -1
  66. package/node_modules/pi-umbra-inputbar/README.md +1 -1
  67. package/node_modules/pi-umbra-inputbar/extensions/umbra-inputbar.ts +1 -1
  68. package/node_modules/pi-umbra-inputbar/package.json +2 -2
  69. package/node_modules/pi-umbra-shimmer/package.json +1 -1
  70. package/node_modules/pi-umbra-shimmer/patch.mjs +23 -21
  71. package/node_modules/pi-umbra-skill-matcher/package.json +1 -1
  72. package/node_modules/pi-umbra-skill-matcher/patch.mjs +7 -0
  73. package/node_modules/pi-umbra-subagents/README.md +24 -6
  74. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/bar/bar-line.ts +250 -102
  75. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/bar.check.ts +133 -66
  76. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/bar.ts +59 -27
  77. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/index.ts +53 -8
  78. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/spec.ts +24 -14
  79. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/store.check.ts +132 -5
  80. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/store.ts +156 -64
  81. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/worktree.ts +156 -0
  82. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/panel.ts +1 -1
  83. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/skills/delegate/state.ts +19 -0
  84. package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/skills/fan/SKILL.md +25 -4
  85. package/node_modules/pi-umbra-subagents/package.json +2 -2
  86. package/node_modules/pi-umbra-theme/checks/umbra-background.check.ts +7 -1
  87. package/node_modules/pi-umbra-theme/extensions/umbra-background.ts +2 -1
  88. package/node_modules/pi-umbra-theme/package.json +3 -3
  89. package/node_modules/shiki/dist/bundle-full.d.mts +4 -4
  90. package/node_modules/shiki/dist/bundle-web.d.mts +9 -9
  91. package/node_modules/shiki/dist/types.d.mts +3 -3
  92. package/node_modules/shiki/package.json +10 -10
  93. package/package.json +9 -12
  94. package/node_modules/@shikijs/engine-javascript/dist/scanner-DX8LRFGE.mjs +0 -77
  95. package/node_modules/pi-umbra-rename/LICENSE +0 -21
  96. package/node_modules/pi-umbra-rename/README.md +0 -18
  97. package/node_modules/pi-umbra-rename/checks/umbra-rename.check.ts +0 -55
  98. package/node_modules/pi-umbra-rename/extensions/umbra-rename.ts +0 -22
  99. package/node_modules/pi-umbra-rename/package.json +0 -36
@@ -0,0 +1,115 @@
1
+ //#region src/scanner.ts
2
+ const MAX = 4294967295;
3
+ function isSearchCacheable(regexp) {
4
+ return !regexp.sticky && !regexp.rawOptions?.strategy;
5
+ }
6
+ function toResult(index, indices) {
7
+ return {
8
+ index,
9
+ captureIndices: indices.map((indice) => {
10
+ if (indice == null) return {
11
+ start: MAX,
12
+ end: MAX,
13
+ length: 0
14
+ };
15
+ return {
16
+ start: indice[0],
17
+ end: indice[1],
18
+ length: indice[1] - indice[0]
19
+ };
20
+ })
21
+ };
22
+ }
23
+ var JavaScriptScanner = class {
24
+ patterns;
25
+ options;
26
+ regexps;
27
+ /**
28
+ * Last search of each regexp on the current string, reused the way `vscode-oniguruma` does.
29
+ * `null` for regexps whose searches can't be reused.
30
+ */
31
+ lastSearches;
32
+ constructor(patterns, options = {}) {
33
+ this.patterns = patterns;
34
+ this.options = options;
35
+ const { forgiving = false, cache, regexConstructor } = options;
36
+ if (!regexConstructor) throw new Error("Option `regexConstructor` is not provided");
37
+ this.regexps = patterns.map((p) => {
38
+ if (typeof p !== "string") return p;
39
+ const cached = cache?.get(p);
40
+ if (cached) {
41
+ if (cached instanceof RegExp) return cached;
42
+ if (forgiving) return null;
43
+ throw cached;
44
+ }
45
+ try {
46
+ const regex = regexConstructor(p);
47
+ cache?.set(p, regex);
48
+ return regex;
49
+ } catch (e) {
50
+ cache?.set(p, e);
51
+ if (forgiving) return null;
52
+ throw e;
53
+ }
54
+ });
55
+ this.lastSearches = this.regexps.map((regexp) => regexp && isSearchCacheable(regexp) ? {
56
+ strId: 0,
57
+ searchedFrom: 0,
58
+ matchIndex: -1,
59
+ indices: null
60
+ } : null);
61
+ }
62
+ findNextMatchSync(string, startPosition, _options) {
63
+ const str = typeof string === "string" ? string : string.content;
64
+ const strId = typeof string === "string" ? 0 : string.id || 0;
65
+ let bestIndex = -1;
66
+ let bestMatchIndex = 0;
67
+ let bestIndices = null;
68
+ for (let i = 0; i < this.regexps.length; i++) {
69
+ const regexp = this.regexps[i];
70
+ if (!regexp) continue;
71
+ try {
72
+ const last = strId ? this.lastSearches[i] : null;
73
+ let matchIndex;
74
+ let indices;
75
+ if (last && last.strId === strId && last.searchedFrom <= startPosition && (last.matchIndex === -1 || last.matchIndex >= startPosition)) {
76
+ matchIndex = last.matchIndex;
77
+ indices = last.indices;
78
+ } else {
79
+ regexp.lastIndex = startPosition;
80
+ const match = regexp.exec(str);
81
+ matchIndex = match ? match.index : -1;
82
+ indices = match ? match.indices : null;
83
+ if (last) {
84
+ last.strId = strId;
85
+ last.searchedFrom = startPosition;
86
+ last.matchIndex = matchIndex;
87
+ last.indices = indices;
88
+ }
89
+ }
90
+ if (matchIndex === -1) continue;
91
+ if (matchIndex === startPosition) return toResult(i, indices);
92
+ if (bestIndex === -1 || matchIndex < bestMatchIndex) {
93
+ bestIndex = i;
94
+ bestMatchIndex = matchIndex;
95
+ bestIndices = indices;
96
+ }
97
+ } catch (e) {
98
+ if (this.options.forgiving) continue;
99
+ throw e;
100
+ }
101
+ }
102
+ return bestIndex === -1 ? null : toResult(bestIndex, bestIndices);
103
+ }
104
+ };
105
+ //#endregion
106
+ //#region src/string.ts
107
+ let lastStringId = 0;
108
+ function createJavaScriptEngineString(content) {
109
+ return {
110
+ content,
111
+ id: ++lastStringId
112
+ };
113
+ }
114
+ //#endregion
115
+ export { JavaScriptScanner as n, createJavaScriptEngineString as t };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shikijs/engine-javascript",
3
3
  "type": "module",
4
- "version": "4.4.3",
4
+ "version": "4.5.0",
5
5
  "description": "Engine for Shiki using JavaScript's native RegExp",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -31,9 +31,9 @@
31
31
  "node": ">=20"
32
32
  },
33
33
  "dependencies": {
34
+ "@shikijs/types": "4.5.0",
34
35
  "@shikijs/vscode-textmate": "^10.0.2",
35
- "oniguruma-to-es": "^4.3.6",
36
- "@shikijs/types": "4.4.3"
36
+ "oniguruma-to-es": "^4.3.6"
37
37
  },
38
38
  "scripts": {
39
39
  "build": "tsdown",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shikijs/engine-oniguruma",
3
3
  "type": "module",
4
- "version": "4.4.3",
4
+ "version": "4.5.0",
5
5
  "description": "Engine for Shiki using Oniguruma RegExp engine in WebAssembly",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -32,8 +32,8 @@
32
32
  "node": ">=20"
33
33
  },
34
34
  "dependencies": {
35
- "@shikijs/vscode-textmate": "^10.0.2",
36
- "@shikijs/types": "4.4.3"
35
+ "@shikijs/types": "4.5.0",
36
+ "@shikijs/vscode-textmate": "^10.0.2"
37
37
  },
38
38
  "devDependencies": {
39
39
  "vscode-oniguruma": "1.7.0"
@@ -1,4 +1,4 @@
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)(?=(e(?:lsif|lse|nd)))\",\"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\":\"(?=;)|(:=)|\\\\b(renames)\\\\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)(?=\\\\b(begin|end)\\\\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(d(?:igits|elta))\\\\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)(?=(e(?:lsif|lse|nd)))\",\"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\":\"(?=;)|(:=)|\\\\b(renames)\\\\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)(?=\\\\b(begin|end)\\\\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(d(?:igits|elta))\\\\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\":\"#record_type_definition\"},{\"include\":\"#real_type_definition\"},{\"include\":\"#array_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
 
3
3
  export default [
4
4
  lang