occam-verify-cli 0.0.369 → 0.0.371
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/bin/utilities/fileSystem.js +14 -5
- package/lib/context/release/directory.js +314 -0
- package/lib/context/release.js +6 -251
- package/lib/index.js +13 -5
- package/lib/utilities/customGrammar.js +12 -5
- package/package.json +2 -2
- package/src/context/release/directory.js +224 -0
- package/src/context/release.js +5 -216
- package/src/index.js +4 -1
- package/src/utilities/customGrammar.js +14 -9
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import ReleaseContext from "../../context/release";
|
|
4
|
+
|
|
5
|
+
import { push } from "../../utilities/array";
|
|
6
|
+
import { customGrammarFromEntries } from "../../utilities/customGrammar";
|
|
7
|
+
|
|
8
|
+
export default class DirectoryReleaseContext extends ReleaseContext {
|
|
9
|
+
constructor(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts, release) {
|
|
10
|
+
super(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts);
|
|
11
|
+
|
|
12
|
+
this.fileContexts = fileContexts;
|
|
13
|
+
this.release = release;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
getFileContexts() {
|
|
17
|
+
return this.fileContexts;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getRelease() {
|
|
21
|
+
return this.release;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getReleaseName() {
|
|
25
|
+
const releaseName = this.release.getName();
|
|
26
|
+
|
|
27
|
+
return releaseName;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
getFile(filePath) { return this.release.getFile(filePath); }
|
|
31
|
+
|
|
32
|
+
getVersion() { return this.release.getVersion(); }
|
|
33
|
+
|
|
34
|
+
getFilePaths() { return this.release.getFilePaths(); }
|
|
35
|
+
|
|
36
|
+
getDependencies() { return this.release.getDependencies(); }
|
|
37
|
+
|
|
38
|
+
matchShortenedVersion(shortenedVersion) { return this.release.matchShortenedVersion(shortenedVersion); }
|
|
39
|
+
|
|
40
|
+
getRules(releaseNames = []) {
|
|
41
|
+
const rules = [],
|
|
42
|
+
releaseName = this.getReleaseName(),
|
|
43
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
44
|
+
|
|
45
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
46
|
+
releaseNames.push(releaseName);
|
|
47
|
+
|
|
48
|
+
const bubble = false;
|
|
49
|
+
|
|
50
|
+
this.fileContexts.forEach((fileContext) => {
|
|
51
|
+
const fileContextRules = fileContext.getRules(bubble);
|
|
52
|
+
|
|
53
|
+
push(rules, fileContextRules);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
57
|
+
const releaseContextRules = releaseContext.getRules(releaseNames);
|
|
58
|
+
|
|
59
|
+
push(rules, releaseContextRules);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return rules;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
getTypes(releaseNames = []) {
|
|
67
|
+
const types = [],
|
|
68
|
+
releaseName = this.getReleaseName(),
|
|
69
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
70
|
+
|
|
71
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
72
|
+
releaseNames.push(releaseName);
|
|
73
|
+
|
|
74
|
+
const bubble = false;
|
|
75
|
+
|
|
76
|
+
this.fileContexts.forEach((fileContext) => {
|
|
77
|
+
const fileContextTypes = fileContext.getTypes(bubble);
|
|
78
|
+
|
|
79
|
+
push(types, fileContextTypes);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
83
|
+
const releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
84
|
+
|
|
85
|
+
push(types, releaseContextTypes);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return types;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
getAxioms(releaseNames = []) {
|
|
93
|
+
const axioms = [],
|
|
94
|
+
releaseName = this.getReleaseName(),
|
|
95
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
96
|
+
|
|
97
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
98
|
+
releaseNames.push(releaseName);
|
|
99
|
+
|
|
100
|
+
const bubble = false;
|
|
101
|
+
|
|
102
|
+
this.fileContexts.forEach((fileContext) => {
|
|
103
|
+
const fileContextAxioms = fileContext.getAxioms(bubble);
|
|
104
|
+
|
|
105
|
+
push(axioms, fileContextAxioms);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
109
|
+
const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
110
|
+
|
|
111
|
+
push(axioms, releaseContextAxioms);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return axioms;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
getLabels(releaseNames = []) {
|
|
119
|
+
const labels = [],
|
|
120
|
+
releaseName = this.getReleaseName(),
|
|
121
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
122
|
+
|
|
123
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
124
|
+
releaseNames.push(releaseName);
|
|
125
|
+
|
|
126
|
+
const bubble = false;
|
|
127
|
+
|
|
128
|
+
this.fileContexts.forEach((fileContext) => {
|
|
129
|
+
const fileContextLabels = fileContext.getLabels(bubble);
|
|
130
|
+
|
|
131
|
+
push(labels, fileContextLabels);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
135
|
+
const releaseContextLabels = releaseContext.getLabels(releaseNames);
|
|
136
|
+
|
|
137
|
+
push(labels, releaseContextLabels);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return labels;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
getCombinators(releaseNames = []) {
|
|
145
|
+
const combinators = [],
|
|
146
|
+
releaseName = this.getReleaseName(),
|
|
147
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
148
|
+
|
|
149
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
150
|
+
releaseNames.push(releaseName);
|
|
151
|
+
|
|
152
|
+
const bubble = false;
|
|
153
|
+
|
|
154
|
+
this.fileContexts.forEach((fileContext) => {
|
|
155
|
+
const fileContextCombinators = fileContext.getCombinators(bubble);
|
|
156
|
+
|
|
157
|
+
push(combinators, fileContextCombinators);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
161
|
+
const releaseContextCombinators = releaseContext.getCombinators(releaseNames);
|
|
162
|
+
|
|
163
|
+
push(combinators, releaseContextCombinators);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return combinators;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
getConstructors(releaseNames = []) {
|
|
171
|
+
const constructors = [],
|
|
172
|
+
releaseName = this.getReleaseName(),
|
|
173
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
174
|
+
|
|
175
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
176
|
+
releaseNames.push(releaseName);
|
|
177
|
+
|
|
178
|
+
const bubble = false;
|
|
179
|
+
|
|
180
|
+
this.fileContexts.forEach((fileContext) => {
|
|
181
|
+
const fileContextConstructors = fileContext.getConstructors(bubble);
|
|
182
|
+
|
|
183
|
+
push(constructors, fileContextConstructors);
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
187
|
+
const releaseContextConstructors = releaseContext.getConstructors(releaseNames);
|
|
188
|
+
|
|
189
|
+
push(constructors, releaseContextConstructors);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return constructors;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
addFileContext(fileContext) {
|
|
197
|
+
this.fileContexts.push(fileContext);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
toJSON() {
|
|
201
|
+
const json = [];
|
|
202
|
+
|
|
203
|
+
this.fileContexts.forEach((fileContext) => {
|
|
204
|
+
const fileContextJSON = fileContext.toJSON();
|
|
205
|
+
|
|
206
|
+
push(json, fileContextJSON);
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
return json;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
static fromLogReleaseAndCallbacks(log, release, callbacks) {
|
|
213
|
+
const entries = release.getEntries(),
|
|
214
|
+
verified = false,
|
|
215
|
+
customGrammar = customGrammarFromEntries(entries),
|
|
216
|
+
florenceLexer = null,
|
|
217
|
+
florenceParser = null,
|
|
218
|
+
releaseContexts = null,
|
|
219
|
+
fileContexts = [],
|
|
220
|
+
releaseContext = new DirectoryReleaseContext(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts, release);
|
|
221
|
+
|
|
222
|
+
return releaseContext;
|
|
223
|
+
}
|
|
224
|
+
}
|
package/src/context/release.js
CHANGED
|
@@ -2,20 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import { customGrammarFromRelease, combinedCustomGrammarFromReleaseContexts } from "../utilities/customGrammar";
|
|
5
|
+
import { combinedCustomGrammarFromReleaseContexts } from "../utilities/customGrammar";
|
|
7
6
|
|
|
8
7
|
const { florenceLexerFromCombinedCustomGrammar } = lexersUtilities,
|
|
9
8
|
{ florenceParserFromCombinedCustomGrammar } = parsersUtilities;
|
|
10
9
|
|
|
11
10
|
export default class ReleaseContext {
|
|
12
|
-
constructor(log,
|
|
11
|
+
constructor(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts) {
|
|
13
12
|
this.log = log;
|
|
14
|
-
this.release = release;
|
|
15
|
-
this.callbacks = callbacks;
|
|
16
13
|
this.verified = verified;
|
|
14
|
+
this.callbacks = callbacks;
|
|
17
15
|
this.customGrammar = customGrammar;
|
|
18
|
-
this.fileContexts = fileContexts;
|
|
19
16
|
this.florenceLexer = florenceLexer;
|
|
20
17
|
this.florenceParser = florenceParser;
|
|
21
18
|
this.releaseContexts = releaseContexts;
|
|
@@ -25,26 +22,18 @@ export default class ReleaseContext {
|
|
|
25
22
|
return this.log;
|
|
26
23
|
}
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
return this.
|
|
25
|
+
isVerified() {
|
|
26
|
+
return this.verified;
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
getCallbacks() {
|
|
33
30
|
return this.callbacks;
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
isVerified() {
|
|
37
|
-
return this.verified;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
33
|
getCustomGrammar() {
|
|
41
34
|
return this.customGrammar;
|
|
42
35
|
}
|
|
43
36
|
|
|
44
|
-
getFileContexts() {
|
|
45
|
-
return this.fileContexts;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
37
|
getFlorenceLexer() {
|
|
49
38
|
return this.florenceLexer;
|
|
50
39
|
}
|
|
@@ -57,182 +46,6 @@ export default class ReleaseContext {
|
|
|
57
46
|
return this.releaseContexts;
|
|
58
47
|
}
|
|
59
48
|
|
|
60
|
-
getFile(filePath) { return this.release.getFile(filePath); }
|
|
61
|
-
|
|
62
|
-
getVersion() { return this.release.getVersion(); }
|
|
63
|
-
|
|
64
|
-
getFilePaths() { return this.release.getFilePaths(); }
|
|
65
|
-
|
|
66
|
-
getDependencies() { return this.release.getDependencies(); }
|
|
67
|
-
|
|
68
|
-
matchShortenedVersion(shortenedVersion) { return this.release.matchShortenedVersion(shortenedVersion); }
|
|
69
|
-
|
|
70
|
-
getReleaseName() {
|
|
71
|
-
const releaseName = this.release.getName();
|
|
72
|
-
|
|
73
|
-
return releaseName;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
getRules(releaseNames = []) {
|
|
77
|
-
const rules = [],
|
|
78
|
-
releaseName = this.getReleaseName(),
|
|
79
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
80
|
-
|
|
81
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
82
|
-
releaseNames.push(releaseName);
|
|
83
|
-
|
|
84
|
-
const bubble = false;
|
|
85
|
-
|
|
86
|
-
this.fileContexts.forEach((fileContext) => {
|
|
87
|
-
const fileContextRules = fileContext.getRules(bubble);
|
|
88
|
-
|
|
89
|
-
push(rules, fileContextRules);
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
93
|
-
const releaseContextRules = releaseContext.getRules(releaseNames);
|
|
94
|
-
|
|
95
|
-
push(rules, releaseContextRules);
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
return rules;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
getTypes(releaseNames = []) {
|
|
103
|
-
const types = [],
|
|
104
|
-
releaseName = this.getReleaseName(),
|
|
105
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
106
|
-
|
|
107
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
108
|
-
releaseNames.push(releaseName);
|
|
109
|
-
|
|
110
|
-
const bubble = false;
|
|
111
|
-
|
|
112
|
-
this.fileContexts.forEach((fileContext) => {
|
|
113
|
-
const fileContextTypes = fileContext.getTypes(bubble);
|
|
114
|
-
|
|
115
|
-
push(types, fileContextTypes);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
119
|
-
const releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
120
|
-
|
|
121
|
-
push(types, releaseContextTypes);
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return types;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
getAxioms(releaseNames = []) {
|
|
129
|
-
const axioms = [],
|
|
130
|
-
releaseName = this.getReleaseName(),
|
|
131
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
132
|
-
|
|
133
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
134
|
-
releaseNames.push(releaseName);
|
|
135
|
-
|
|
136
|
-
const bubble = false;
|
|
137
|
-
|
|
138
|
-
this.fileContexts.forEach((fileContext) => {
|
|
139
|
-
const fileContextAxioms = fileContext.getAxioms(bubble);
|
|
140
|
-
|
|
141
|
-
push(axioms, fileContextAxioms);
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
145
|
-
const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
146
|
-
|
|
147
|
-
push(axioms, releaseContextAxioms);
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return axioms;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
getLabels(releaseNames = []) {
|
|
155
|
-
const labels = [],
|
|
156
|
-
releaseName = this.getReleaseName(),
|
|
157
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
158
|
-
|
|
159
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
160
|
-
releaseNames.push(releaseName);
|
|
161
|
-
|
|
162
|
-
const bubble = false;
|
|
163
|
-
|
|
164
|
-
this.fileContexts.forEach((fileContext) => {
|
|
165
|
-
const fileContextLabels = fileContext.getLabels(bubble);
|
|
166
|
-
|
|
167
|
-
push(labels, fileContextLabels);
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
171
|
-
const releaseContextLabels = releaseContext.getLabels(releaseNames);
|
|
172
|
-
|
|
173
|
-
push(labels, releaseContextLabels);
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return labels;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
getCombinators(releaseNames = []) {
|
|
181
|
-
const combinators = [],
|
|
182
|
-
releaseName = this.getReleaseName(),
|
|
183
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
184
|
-
|
|
185
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
186
|
-
releaseNames.push(releaseName);
|
|
187
|
-
|
|
188
|
-
const bubble = false;
|
|
189
|
-
|
|
190
|
-
this.fileContexts.forEach((fileContext) => {
|
|
191
|
-
const fileContextCombinators = fileContext.getCombinators(bubble);
|
|
192
|
-
|
|
193
|
-
push(combinators, fileContextCombinators);
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
197
|
-
const releaseContextCombinators = releaseContext.getCombinators(releaseNames);
|
|
198
|
-
|
|
199
|
-
push(combinators, releaseContextCombinators);
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
return combinators;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
getConstructors(releaseNames = []) {
|
|
207
|
-
const constructors = [],
|
|
208
|
-
releaseName = this.getReleaseName(),
|
|
209
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
210
|
-
|
|
211
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
212
|
-
releaseNames.push(releaseName);
|
|
213
|
-
|
|
214
|
-
const bubble = false;
|
|
215
|
-
|
|
216
|
-
this.fileContexts.forEach((fileContext) => {
|
|
217
|
-
const fileContextConstructors = fileContext.getConstructors(bubble);
|
|
218
|
-
|
|
219
|
-
push(constructors, fileContextConstructors);
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
223
|
-
const releaseContextConstructors = releaseContext.getConstructors(releaseNames);
|
|
224
|
-
|
|
225
|
-
push(constructors, releaseContextConstructors);
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
return constructors;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
addFileContext(fileContext) {
|
|
233
|
-
this.fileContexts.push(fileContext);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
49
|
setVerified(verified) {
|
|
237
50
|
this.verified = verified;
|
|
238
51
|
}
|
|
@@ -272,28 +85,4 @@ export default class ReleaseContext {
|
|
|
272
85
|
|
|
273
86
|
this.releaseContexts = releaseContexts;
|
|
274
87
|
}
|
|
275
|
-
|
|
276
|
-
toJSON() {
|
|
277
|
-
const json = [];
|
|
278
|
-
|
|
279
|
-
this.fileContexts.forEach((fileContext) => {
|
|
280
|
-
const fileContextJSON = fileContext.toJSON();
|
|
281
|
-
|
|
282
|
-
push(json, fileContextJSON);
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
return json;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
static fromLogReleaseAndCallbacks(log, release, callbacks, ...remainingArguments) {
|
|
289
|
-
const verified = false,
|
|
290
|
-
customGrammar = customGrammarFromRelease(release),
|
|
291
|
-
fileContexts = [],
|
|
292
|
-
florenceLexer = null,
|
|
293
|
-
florenceParser = null,
|
|
294
|
-
releaseContexts = [],
|
|
295
|
-
releaseContext = new ReleaseContext(log, release, callbacks, verified, customGrammar, fileContexts, florenceLexer, florenceParser, releaseContexts, ...remainingArguments);
|
|
296
|
-
|
|
297
|
-
return releaseContext;
|
|
298
|
-
}
|
|
299
88
|
}
|
package/src/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export { default as Callbacks } from "./callbacks";
|
|
4
|
-
export { default as jsonUtilities } from "./utilities/json";
|
|
5
4
|
export { default as verifyRelease } from "./verify/release";
|
|
6
5
|
export { default as ReleaseContext } from "./context/release";
|
|
7
6
|
export { default as versionChanges } from "./versionChanges";
|
|
7
|
+
export { default as DirectoryReleaseContext } from "./context/release/directory";
|
|
8
|
+
|
|
9
|
+
export { default as jsonUtilities } from "./utilities/json";
|
|
8
10
|
export { default as versionUtilities } from "./utilities/version";
|
|
11
|
+
export { default as customGrammarUtilities } from "./utilities/customGrammar";
|
|
9
12
|
export { default as releaseContextUtilities } from "./utilities/releaseContext";
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
import { CustomGrammar, CombinedCustomGrammar } from "occam-custom-grammars";
|
|
4
4
|
|
|
5
|
-
export function
|
|
6
|
-
const name =
|
|
7
|
-
termBNF =
|
|
8
|
-
statementBNF =
|
|
9
|
-
metastatementBNF =
|
|
10
|
-
typePattern =
|
|
11
|
-
symbolPattern =
|
|
12
|
-
operatorPattern =
|
|
5
|
+
export function customGrammarFromEntries(entries) {
|
|
6
|
+
const name = entries.getName(),
|
|
7
|
+
termBNF = entries.getTermBNF(),
|
|
8
|
+
statementBNF = entries.getStatementBNF(),
|
|
9
|
+
metastatementBNF = entries.getMetastatementBNF(),
|
|
10
|
+
typePattern = entries.getTypePattern(),
|
|
11
|
+
symbolPattern = entries.getSymbolPattern(),
|
|
12
|
+
operatorPattern = entries.getOperatorPattern(),
|
|
13
13
|
customGrammar = CustomGrammar.fromNameTermBNFStatementBNFMetastatementBNFTypePatternSymbolPatternAndOperatorPattern(name, termBNF, statementBNF, metastatementBNF, typePattern, symbolPattern, operatorPattern);
|
|
14
14
|
|
|
15
15
|
return customGrammar;
|
|
@@ -24,4 +24,9 @@ export function combinedCustomGrammarFromReleaseContexts(releaseContexts) {
|
|
|
24
24
|
combinedCustomGrammar = CombinedCustomGrammar.fromCustomGrammars(customGrammars);
|
|
25
25
|
|
|
26
26
|
return combinedCustomGrammar;
|
|
27
|
-
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export default {
|
|
30
|
+
customGrammarFromEntries,
|
|
31
|
+
combinedCustomGrammarFromReleaseContexts
|
|
32
|
+
};
|