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.
- package/README.md +3 -4
- package/node_modules/@shikijs/cli/dist/cli.d.mts +13 -6
- package/node_modules/@shikijs/cli/dist/cli.mjs +32 -27
- package/node_modules/@shikijs/cli/dist/{code-to-ansi-BNrZay-4.mjs → code-to-ansi-Dmm_CuZ9.mjs} +15 -7
- package/node_modules/@shikijs/cli/dist/index.d.mts +24 -3
- package/node_modules/@shikijs/cli/dist/index.mjs +1 -1
- package/node_modules/@shikijs/cli/package.json +3 -3
- package/node_modules/@shikijs/core/dist/index.d.mts +28 -28
- package/node_modules/@shikijs/core/dist/index.mjs +15 -12
- package/node_modules/@shikijs/core/package.json +4 -4
- package/node_modules/@shikijs/engine-javascript/dist/{engine-compile-Bdn9ihA2.d.mts → engine-compile-CtqiSkRk.d.mts} +5 -0
- package/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts +1 -1
- package/node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs +2 -4
- package/node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts +2 -3
- package/node_modules/@shikijs/engine-javascript/dist/engine-raw.mjs +2 -4
- package/node_modules/@shikijs/engine-javascript/dist/index.d.mts +1 -1
- package/node_modules/@shikijs/engine-javascript/dist/index.mjs +1 -1
- package/node_modules/@shikijs/engine-javascript/dist/string-TLTPtCPs.mjs +115 -0
- package/node_modules/@shikijs/engine-javascript/package.json +3 -3
- package/node_modules/@shikijs/engine-oniguruma/package.json +3 -3
- package/node_modules/@shikijs/langs/dist/ada.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/ahk.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/beancount.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/csharp.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/css.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/dart.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/dotenv.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/gn.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/handlebars.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/julia.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/latex.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/marko.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nextflow.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/php.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/ruby.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/rust.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/sql.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/svelte.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/twig.mjs +3 -3
- package/node_modules/@shikijs/langs/dist/typespec.mjs +1 -1
- package/node_modules/@shikijs/langs/package.json +3 -3
- package/node_modules/@shikijs/primitive/dist/index.d.mts +31 -32
- package/node_modules/@shikijs/primitive/dist/index.mjs +2 -1
- package/node_modules/@shikijs/primitive/package.json +3 -3
- package/node_modules/@shikijs/themes/dist/monokai.mjs +1 -1
- package/node_modules/@shikijs/themes/dist/one-dark-pro.mjs +1 -1
- package/node_modules/@shikijs/themes/dist/red.mjs +1 -1
- package/node_modules/@shikijs/themes/dist/solarized-dark.mjs +1 -1
- package/node_modules/@shikijs/themes/dist/solarized-light.mjs +1 -1
- package/node_modules/@shikijs/themes/package.json +3 -3
- package/node_modules/@shikijs/types/dist/index.d.mts +76 -76
- package/node_modules/@shikijs/types/package.json +1 -1
- package/node_modules/pi-umbra-copy-chat/README.md +4 -7
- package/node_modules/pi-umbra-copy-chat/extensions/umbra-copy-chat.ts +16 -54
- package/node_modules/pi-umbra-copy-chat/package.json +1 -1
- package/node_modules/pi-umbra-help/checks/umbra-help.check.ts +10 -1
- package/node_modules/pi-umbra-help/extensions/umbra-help.ts +31 -0
- package/node_modules/pi-umbra-help/package.json +1 -1
- package/node_modules/pi-umbra-inputbar/README.md +1 -1
- package/node_modules/pi-umbra-inputbar/extensions/umbra-inputbar.ts +1 -1
- package/node_modules/pi-umbra-inputbar/package.json +2 -2
- package/node_modules/pi-umbra-shimmer/package.json +1 -1
- package/node_modules/pi-umbra-shimmer/patch.mjs +23 -21
- package/node_modules/pi-umbra-skill-matcher/package.json +1 -1
- package/node_modules/pi-umbra-skill-matcher/patch.mjs +7 -0
- package/node_modules/pi-umbra-subagents/README.md +24 -6
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/bar/bar-line.ts +250 -102
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/bar.check.ts +133 -66
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/bar.ts +59 -27
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/index.ts +53 -8
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/spec.ts +24 -14
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/store.check.ts +132 -5
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/store.ts +156 -64
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/fan/worktree.ts +156 -0
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/panel.ts +1 -1
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/skills/delegate/state.ts +19 -0
- package/node_modules/pi-umbra-subagents/extensions/umbra-subagents/skills/fan/SKILL.md +25 -4
- package/node_modules/pi-umbra-subagents/package.json +2 -2
- package/node_modules/pi-umbra-theme/checks/umbra-background.check.ts +7 -1
- package/node_modules/pi-umbra-theme/extensions/umbra-background.ts +2 -1
- package/node_modules/pi-umbra-theme/package.json +3 -3
- package/node_modules/shiki/dist/bundle-full.d.mts +4 -4
- package/node_modules/shiki/dist/bundle-web.d.mts +9 -9
- package/node_modules/shiki/dist/types.d.mts +3 -3
- package/node_modules/shiki/package.json +10 -10
- package/package.json +9 -12
- package/node_modules/@shikijs/engine-javascript/dist/scanner-DX8LRFGE.mjs +0 -77
- package/node_modules/pi-umbra-rename/LICENSE +0 -21
- package/node_modules/pi-umbra-rename/README.md +0 -18
- package/node_modules/pi-umbra-rename/checks/umbra-rename.check.ts +0 -55
- package/node_modules/pi-umbra-rename/extensions/umbra-rename.ts +0 -22
- 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
|
+
"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
|
+
"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/
|
|
36
|
-
"@shikijs/
|
|
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
|