occam-verify-cli 0.0.374 → 0.0.376

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/src/axiom.js CHANGED
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ import Label from "./label";
4
+
3
5
  import { AXIOM_KIND } from "./kinds";
4
6
  import { nodeAsString } from "./utilities/string";
7
+ import { STATEMENT_RULE_NAME } from "occam-custom-grammars/lib/ruleNames";
5
8
 
6
9
  export default class Axiom {
7
10
  constructor(labels, statementNode, suppositionStatementNode, consequentStatementNode) {
@@ -41,28 +44,74 @@ export default class Axiom {
41
44
  }
42
45
 
43
46
  toJSON() {
44
- const statementString = nodeAsString(this.statementNode),
47
+ const labelsJSON = this.labels.map((label) => {
48
+ const labelJSON = label.toJSON();
49
+
50
+ return labelJSON;
51
+ }),
52
+ statementString = nodeAsString(this.statementNode),
45
53
  consequentStatementString = nodeAsString(this.consequentStatementNode),
46
54
  suppositionStatementString = nodeAsString(this.suppositionStatementNode),
47
55
  kind = AXIOM_KIND,
56
+ labels = labelsJSON, ///
48
57
  statement = statementString, ///
49
58
  consequent = consequentStatementString, ///
50
59
  supposition = suppositionStatementString, ///
51
- json = this.labels.map((label) => {
52
- const labelString = label.asString();
60
+ json = {
61
+ kind,
62
+ labels,
63
+ statement,
64
+ consequent,
65
+ supposition
66
+ };
53
67
 
54
- label = labelString; ///
68
+ return json;
69
+ }
55
70
 
56
- return ({
57
- kind,
58
- label,
59
- statement,
60
- consequent,
61
- supposition
62
- });
63
- });
71
+ static fromJSON(json, callback) {
72
+ let { labels } = json;
64
73
 
65
- return json;
74
+ const { statement, consequent, supposition } = json;
75
+
76
+ labels = labels.map((label) => {
77
+ const json = label; ///
78
+
79
+ label = Label.fromJSON(json);
80
+
81
+ return label;
82
+ });
83
+
84
+ let statementNode = null,
85
+ consequentNode = null,
86
+ suppositionNode = null;
87
+
88
+ if (statement !== null) {
89
+ const content = statement, ///
90
+ ruleName = STATEMENT_RULE_NAME,
91
+ node = callback(content, ruleName);
92
+
93
+ statementNode = node; ///
94
+ }
95
+
96
+ if (consequent !== null) {
97
+ const content = consequent, ///
98
+ ruleName = STATEMENT_RULE_NAME,
99
+ node = callback(content, ruleName);
100
+
101
+ consequentNode = node; ///
102
+ }
103
+
104
+ if (supposition !== null) {
105
+ const content = supposition, ///
106
+ ruleName = STATEMENT_RULE_NAME,
107
+ node = callback(content, ruleName);
108
+
109
+ suppositionNode = node; ///
110
+ }
111
+
112
+ const axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
113
+
114
+ return axiom;
66
115
  }
67
116
 
68
117
  static fromStatementNodeAndLabels(statementNode, labels) {
package/src/combinator.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { nodeAsString } from "./utilities/string";
4
4
  import { COMBINATOR_KIND } from "./kinds";
5
+ import { STATEMENT_RULE_NAME } from "./ruleNames";
5
6
 
6
7
  export default class Combinator {
7
8
  constructor(statementNode) {
@@ -22,14 +23,25 @@ export default class Combinator {
22
23
  const statementString = nodeAsString(this.statementNode),
23
24
  kind = COMBINATOR_KIND,
24
25
  statement = statementString, ///
25
- json = [{
26
+ json = {
26
27
  kind,
27
28
  statement
28
- }];
29
+ };
29
30
 
30
31
  return json;
31
32
  }
32
33
 
34
+ static fromJSON(json, callback) {
35
+ const { statement } = json,
36
+ content = statement, ///
37
+ ruleName = STATEMENT_RULE_NAME,
38
+ node = callback(content, ruleName),
39
+ statementNode = node, ///
40
+ combinator = new Combinator(statementNode);
41
+
42
+ return combinator;
43
+ }
44
+
33
45
  static fromStatementNode(statementNode) {
34
46
  const combinator = new Combinator(statementNode);
35
47
 
package/src/conclusion.js CHANGED
@@ -33,6 +33,17 @@ export default class Conclusion {
33
33
  return json;
34
34
  }
35
35
 
36
+ static fromJSON(json, callback) {
37
+ const { metastatement } = json,
38
+ ruleName = METASTATEMENT_RULE_NAME,
39
+ content = metastatement, ///
40
+ node = callback(content, ruleName),
41
+ metastatementNode = node, ///
42
+ conclusion = new Conclusion(metastatementNode);
43
+
44
+ return conclusion;
45
+ }
46
+
36
47
  static fromMetastatementNode(metastatementNode) {
37
48
  const conclusion = new Conclusion(metastatementNode);
38
49
 
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ import Type from "./type";
4
+
3
5
  import { nodeAsString } from "./utilities/string";
6
+ import { TERM_RULE_NAME } from "./ruleNames";
4
7
  import { CONSTRUCTOR_KIND } from "./kinds";
5
8
 
6
9
  export default class Constructor {
@@ -42,15 +45,33 @@ export default class Constructor {
42
45
  kind = CONSTRUCTOR_KIND,
43
46
  term = termString, ///
44
47
  type = typeJSON, ///
45
- json = [{
48
+ json = {
46
49
  kind,
47
50
  term,
48
51
  type
49
- }];
52
+ };
50
53
 
51
54
  return json;
52
55
  }
53
56
 
57
+ static fromJSON(json, callback) {
58
+ let { type } = json;
59
+
60
+ const { term } = json,
61
+ content = term, ///
62
+ ruleName = TERM_RULE_NAME,
63
+ node = callback(content, ruleName),
64
+ termNode = node; ///
65
+
66
+ json = type; ///
67
+
68
+ type = Type.fromJSON(json);
69
+
70
+ const constructor = new Constructor(termNode, type);
71
+
72
+ return constructor;
73
+ }
74
+
54
75
  static fromTermNodeAndType(termNode, type) {
55
76
  const constructor = new Constructor(termNode, type);
56
77
 
@@ -42,27 +42,24 @@ export default class FileContext {
42
42
  getLabels(bubble = true) {
43
43
  const labels = [];
44
44
 
45
- if (bubble) {
46
- const releaseContextLabels = this.releaseContext.getLabels();
47
-
48
- push(labels, releaseContextLabels);
49
- }
50
-
51
- const rules = this.getRules(),
52
- axioms = this.getAxioms();
53
-
54
- rules.forEach((rule) => {
45
+ this.rules.forEach((rule) => {
55
46
  const ruleLabels = rule.getLabels();
56
47
 
57
48
  push(labels, ruleLabels);
58
49
  });
59
50
 
60
- axioms.forEach((axiom) => {
51
+ this.axioms.forEach((axiom) => {
61
52
  const axiomLabels = axiom.getLabels();
62
53
 
63
54
  push(labels, axiomLabels);
64
55
  });
65
56
 
57
+ if (bubble) {
58
+ const releaseContextLabels = this.releaseContext.getLabels();
59
+
60
+ push(labels, releaseContextLabels);
61
+ }
62
+
66
63
  return labels;
67
64
  }
68
65
 
@@ -301,31 +298,31 @@ export default class FileContext {
301
298
  this.rules.forEach((rule) => {
302
299
  const ruleJSON = rule.toJSON();
303
300
 
304
- push(json, ruleJSON);
301
+ json.push(ruleJSON);
305
302
  });
306
303
 
307
304
  this.types.forEach((type) => {
308
305
  const typeJSON = type.toJSON();
309
306
 
310
- push(json, typeJSON);
307
+ json.push(typeJSON);
311
308
  });
312
309
 
313
310
  this.axioms.forEach((axiom) => {
314
311
  const axiomJSON = axiom.toJSON();
315
312
 
316
- push(json, axiomJSON);
313
+ json.push(axiomJSON);
317
314
  });
318
315
 
319
316
  this.combinators.forEach((combinator) => {
320
317
  const combinatorJSON = combinator.toJSON();
321
318
 
322
- push(json, combinatorJSON);
319
+ json.push(combinatorJSON);
323
320
  });
324
321
 
325
322
  this.constructors.forEach((constructor) => {
326
323
  const constructorJSON = constructor.toJSON();
327
324
 
328
- push(json, constructorJSON)
325
+ json.push(constructorJSON)
329
326
  });
330
327
 
331
328
  return json;
@@ -6,8 +6,8 @@ import { push } from "../../utilities/array";
6
6
  import { customGrammarFromNameAndEntries } from "../../utilities/customGrammar";
7
7
 
8
8
  export default class DirectoryReleaseContext extends ReleaseContext {
9
- constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts) {
10
- super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, releaseContexts);
9
+ constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, fileContexts) {
10
+ super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts);
11
11
 
12
12
  this.fileContexts = fileContexts;
13
13
  }
@@ -16,8 +16,8 @@ export default class DirectoryReleaseContext extends ReleaseContext {
16
16
  return this.fileContexts;
17
17
  }
18
18
 
19
- getRules(releaseNames = []) {
20
- const rules = [],
19
+ getTypes(releaseNames = []) {
20
+ const types = [],
21
21
  releaseName = this.getReleaseName(),
22
22
  releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
23
23
 
@@ -27,23 +27,25 @@ export default class DirectoryReleaseContext extends ReleaseContext {
27
27
  const bubble = false;
28
28
 
29
29
  this.fileContexts.forEach((fileContext) => {
30
- const fileContextRules = fileContext.getRules(bubble);
30
+ const fileContextTypes = fileContext.getTypes(bubble);
31
31
 
32
- push(rules, fileContextRules);
32
+ push(types, fileContextTypes);
33
33
  });
34
34
 
35
- this.releaseContexts.forEach((releaseContext) => {
36
- const releaseContextRules = releaseContext.getRules(releaseNames);
35
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
37
36
 
38
- push(rules, releaseContextRules);
37
+ dependencyReleaseContexts.forEach((releaseContext) => {
38
+ const releaseContextTypes = releaseContext.getTypes(releaseNames);
39
+
40
+ push(types, releaseContextTypes);
39
41
  });
40
42
  }
41
43
 
42
- return rules;
44
+ return types;
43
45
  }
44
46
 
45
- getTypes(releaseNames = []) {
46
- const types = [],
47
+ getRules(releaseNames = []) {
48
+ const rules = [],
47
49
  releaseName = this.getReleaseName(),
48
50
  releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
49
51
 
@@ -53,19 +55,21 @@ export default class DirectoryReleaseContext extends ReleaseContext {
53
55
  const bubble = false;
54
56
 
55
57
  this.fileContexts.forEach((fileContext) => {
56
- const fileContextTypes = fileContext.getTypes(bubble);
58
+ const fileContextRules = fileContext.getRules(bubble);
57
59
 
58
- push(types, fileContextTypes);
60
+ push(rules, fileContextRules);
59
61
  });
60
62
 
61
- this.releaseContexts.forEach((releaseContext) => {
62
- const releaseContextTypes = releaseContext.getTypes(releaseNames);
63
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
63
64
 
64
- push(types, releaseContextTypes);
65
+ dependencyReleaseContexts.forEach((releaseContext) => {
66
+ const releaseContextRules = releaseContext.getRules(releaseNames);
67
+
68
+ push(rules, releaseContextRules);
65
69
  });
66
70
  }
67
71
 
68
- return types;
72
+ return rules;
69
73
  }
70
74
 
71
75
  getAxioms(releaseNames = []) {
@@ -84,7 +88,9 @@ export default class DirectoryReleaseContext extends ReleaseContext {
84
88
  push(axioms, fileContextAxioms);
85
89
  });
86
90
 
87
- this.releaseContexts.forEach((releaseContext) => {
91
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
92
+
93
+ dependencyReleaseContexts.forEach((releaseContext) => {
88
94
  const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
89
95
 
90
96
  push(axioms, releaseContextAxioms);
@@ -110,7 +116,9 @@ export default class DirectoryReleaseContext extends ReleaseContext {
110
116
  push(labels, fileContextLabels);
111
117
  });
112
118
 
113
- this.releaseContexts.forEach((releaseContext) => {
119
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
120
+
121
+ dependencyReleaseContexts.forEach((releaseContext) => {
114
122
  const releaseContextLabels = releaseContext.getLabels(releaseNames);
115
123
 
116
124
  push(labels, releaseContextLabels);
@@ -136,7 +144,9 @@ export default class DirectoryReleaseContext extends ReleaseContext {
136
144
  push(combinators, fileContextCombinators);
137
145
  });
138
146
 
139
- this.releaseContexts.forEach((releaseContext) => {
147
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
148
+
149
+ dependencyReleaseContexts.forEach((releaseContext) => {
140
150
  const releaseContextCombinators = releaseContext.getCombinators(releaseNames);
141
151
 
142
152
  push(combinators, releaseContextCombinators);
@@ -162,7 +172,9 @@ export default class DirectoryReleaseContext extends ReleaseContext {
162
172
  push(constructors, fileContextConstructors);
163
173
  });
164
174
 
165
- this.releaseContexts.forEach((releaseContext) => {
175
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
176
+
177
+ dependencyReleaseContexts.forEach((releaseContext) => {
166
178
  const releaseContextConstructors = releaseContext.getConstructors(releaseNames);
167
179
 
168
180
  push(constructors, releaseContextConstructors);
@@ -193,9 +205,9 @@ export default class DirectoryReleaseContext extends ReleaseContext {
193
205
  customGrammar = customGrammarFromNameAndEntries(name, entries),
194
206
  florenceLexer = null,
195
207
  florenceParser = null,
196
- releaseContexts = null,
208
+ dependencyReleaseContexts = null,
197
209
  fileContexts = [],
198
- directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts);
210
+ directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, fileContexts);
199
211
 
200
212
  return directoryReleaseContext;
201
213
  }
@@ -2,17 +2,23 @@
2
2
 
3
3
  import ReleaseContext from "../../context/release";
4
4
 
5
+ import Rule from "../../rule";
6
+ import Type from "../../type";
7
+ import Axiom from "../../axiom";
8
+ import Combinator from "../../combinator";
9
+ import Constructor from "../../constructor";
10
+
5
11
  import { push } from "../../utilities/array";
6
- import {combinedCustomGrammarFromReleaseContexts, customGrammarFromNameAndEntries} from "../../utilities/customGrammar";
12
+ import { customGrammarFromNameAndEntries } from "../../utilities/customGrammar";
13
+ import { RULE_KIND, TYPE_KIND, AXIOM_KIND, COMBINATOR_KIND, CONSTRUCTOR_KIND } from "../../kinds";
7
14
 
8
15
  export default class FileReleaseContext extends ReleaseContext {
9
- constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, releaseContexts, contextJSON, rules, types, axioms, labels, combinators, constructors) {
10
- super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, releaseContexts);
16
+ constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, contextJSON, types, rules, axioms, combinators, constructors) {
17
+ super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts);
11
18
 
12
- this.rules = rules;
13
19
  this.types = types;
20
+ this.rules = rules;
14
21
  this.axioms = axioms;
15
- this.labels = labels;
16
22
  this.combinators = combinators;
17
23
  this.constructors = constructors;
18
24
  this.contextJSON = contextJSON;
@@ -22,57 +28,63 @@ export default class FileReleaseContext extends ReleaseContext {
22
28
  return this.contextJSON;
23
29
  }
24
30
 
25
- getRules(releaseNames = []) {
26
- const rules = [
27
- ...this.rules
28
- ],
31
+ getTypes(releaseNames = []) {
32
+ const types = [],
29
33
  releaseName = this.getReleaseName(),
30
34
  releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
31
35
 
32
36
  if (!releaseNamesIncludesReleaseName) {
33
37
  releaseNames.push(releaseName);
34
38
 
35
- this.releaseContexts.forEach((releaseContext) => {
36
- const releaseContextRules = releaseContext.getRules(releaseNames);
39
+ push(types, this.types);
37
40
 
38
- push(rules, releaseContextRules);
41
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
42
+
43
+ dependencyReleaseContexts.forEach((releaseContext) => {
44
+ const releaseContextTypes = releaseContext.getTypes(releaseNames);
45
+
46
+ push(types, releaseContextTypes);
39
47
  });
40
48
  }
41
49
 
42
- return rules;
50
+ return types;
43
51
  }
44
52
 
45
- getTypes(releaseNames = []) {
46
- const types = [
47
- ...this.types
48
- ],
53
+ getRules(releaseNames = []) {
54
+ const rules = [],
49
55
  releaseName = this.getReleaseName(),
50
56
  releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
51
57
 
52
58
  if (!releaseNamesIncludesReleaseName) {
53
59
  releaseNames.push(releaseName);
54
60
 
55
- this.releaseContexts.forEach((releaseContext) => {
56
- const releaseContextTypes = releaseContext.getTypes(releaseNames);
61
+ push(rules, this.rules);
57
62
 
58
- push(types, releaseContextTypes);
63
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
64
+
65
+ dependencyReleaseContexts.forEach((releaseContext) => {
66
+ const releaseContextRules = releaseContext.getRules(releaseNames);
67
+
68
+ push(rules, releaseContextRules);
59
69
  });
60
70
  }
61
71
 
62
- return types;
72
+ return rules;
63
73
  }
64
74
 
65
75
  getAxioms(releaseNames = []) {
66
- const axioms = [
67
- ...this.axioms
68
- ],
76
+ const axioms = [],
69
77
  releaseName = this.getReleaseName(),
70
78
  releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
71
79
 
72
80
  if (!releaseNamesIncludesReleaseName) {
73
81
  releaseNames.push(releaseName);
74
82
 
75
- this.releaseContexts.forEach((releaseContext) => {
83
+ push(axioms, this.axioms);
84
+
85
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
86
+
87
+ dependencyReleaseContexts.forEach((releaseContext) => {
76
88
  const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
77
89
 
78
90
  push(axioms, releaseContextAxioms);
@@ -83,19 +95,31 @@ export default class FileReleaseContext extends ReleaseContext {
83
95
  }
84
96
 
85
97
  getLabels(releaseNames = []) {
86
- const labels = [
87
- ...this.labels
88
- ],
98
+ const labels = [],
89
99
  releaseName = this.getReleaseName(),
90
100
  releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
91
101
 
92
102
  if (!releaseNamesIncludesReleaseName) {
93
103
  releaseNames.push(releaseName);
94
104
 
95
- this.releaseContexts.forEach((releaseContext) => {
96
- const releaseContextLabels = releaseContext.getLabels(releaseNames);
105
+ this.rules.forEach((rule) => {
106
+ const ruleLabels = rule.getLabels();
107
+
108
+ push(labels, ruleLabels);
109
+ });
110
+
111
+ this.axioms.forEach((axiom) => {
112
+ const axiomLabels = axiom.getLabels();
97
113
 
98
- push(labels, releaseContextLabels);
114
+ push(labels, axiomLabels);
115
+ });
116
+
117
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
118
+
119
+ dependencyReleaseContexts.forEach((releaseContext) => {
120
+ const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
121
+
122
+ push(labels, releaseContextAxioms);
99
123
  });
100
124
  }
101
125
 
@@ -103,16 +127,18 @@ export default class FileReleaseContext extends ReleaseContext {
103
127
  }
104
128
 
105
129
  getCombinators(releaseNames = []) {
106
- const combinators = [
107
- ...this.combinators
108
- ],
130
+ const combinators = [],
109
131
  releaseName = this.getReleaseName(),
110
132
  releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
111
133
 
112
134
  if (!releaseNamesIncludesReleaseName) {
113
135
  releaseNames.push(releaseName);
114
136
 
115
- this.releaseContexts.forEach((releaseContext) => {
137
+ push(combinators, this.combinators);
138
+
139
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
140
+
141
+ dependencyReleaseContexts.forEach((releaseContext) => {
116
142
  const releaseContextCombinators = releaseContext.getCombinators(releaseNames);
117
143
 
118
144
  push(combinators, releaseContextCombinators);
@@ -123,16 +149,18 @@ export default class FileReleaseContext extends ReleaseContext {
123
149
  }
124
150
 
125
151
  getConstructors(releaseNames = []) {
126
- const constructors = [
127
- ...this.constructors
128
- ],
152
+ const constructors = [],
129
153
  releaseName = this.getReleaseName(),
130
154
  releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
131
155
 
132
156
  if (!releaseNamesIncludesReleaseName) {
133
157
  releaseNames.push(releaseName);
134
158
 
135
- this.releaseContexts.forEach((releaseContext) => {
159
+ push(constructors, this.constructors);
160
+
161
+ const dependencyReleaseContexts = this.getDependencyReleaseContexts();
162
+
163
+ dependencyReleaseContexts.forEach((releaseContext) => {
136
164
  const releaseContextConstructors = releaseContext.getConstructors(releaseNames);
137
165
 
138
166
  push(constructors, releaseContextConstructors);
@@ -145,22 +173,75 @@ export default class FileReleaseContext extends ReleaseContext {
145
173
  initialise(dependencyReleaseContexts) {
146
174
  super.initialise(dependencyReleaseContexts);
147
175
 
148
- debugger
176
+ const jsonArray = this.contextJSON, ///
177
+ callback = (content, ruleName) => {
178
+ const ruleMap = this.florenceParser.getRuleMap(),
179
+ tokens = this.florenceLexer.tokenise(content),
180
+ rule = ruleMap[ruleName],
181
+ node = this.florenceParser.parse(tokens, rule);
182
+
183
+ return node;
184
+ };
185
+
186
+ jsonArray.forEach((json) => {
187
+ const { kind } = json;
188
+
189
+ switch (kind) {
190
+ case TYPE_KIND: {
191
+ const type = Type.fromJSON(json);
192
+
193
+ this.types.push(type);
194
+
195
+ break;
196
+ }
197
+
198
+ case RULE_KIND: {
199
+ const rule = Rule.fromJSON(json, callback);
200
+
201
+ this.rules.push(rule);
202
+
203
+ break;
204
+ }
205
+
206
+ case AXIOM_KIND: {
207
+ const axiom = Axiom.fromJSON(json, callback);
208
+
209
+ this.axioms.push(axiom);
210
+
211
+ break;
212
+ }
213
+
214
+ case COMBINATOR_KIND: {
215
+ const combinator = Combinator.fromJSON(json, callback);
216
+
217
+ this.combinators.push(combinator);
218
+
219
+ break;
220
+ }
221
+
222
+ case CONSTRUCTOR_KIND: {
223
+ const constructor = Constructor.fromJSON(json, callback);
224
+
225
+ this.constructors.push(constructor);
226
+
227
+ break;
228
+ }
229
+ }
230
+ });
149
231
  }
150
232
 
151
233
  static fromLogNameEntriesCallbacksAndContextJSON(log, name, entries, callbacks, contextJSON) {
152
- const verified = false, ///
234
+ const verified = true,
153
235
  customGrammar = customGrammarFromNameAndEntries(name, entries),
154
236
  florenceLexer = null,
155
237
  florenceParser = null,
156
- releaseContexts = null,
157
- rules = null,
158
- types = null,
159
- axioms = null,
160
- labels = null,
161
- combinators = null,
162
- constructors = null,
163
- releaseContext = new FileReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, releaseContexts, contextJSON, rules, types, axioms, labels, combinators, constructors);
238
+ dependencyReleaseContexts = null,
239
+ types = [],
240
+ rules = [],
241
+ axioms = [],
242
+ combinators = [],
243
+ constructors = [],
244
+ releaseContext = new FileReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, contextJSON, types, rules, axioms, combinators, constructors);
164
245
 
165
246
  return releaseContext;
166
247
  }