occam-furtle 2.0.78 → 2.0.80
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/lib/dom/every.js +175 -0
- package/lib/dom/procedure/anonymous.js +9 -2
- package/lib/dom/reduce.js +175 -0
- package/lib/dom/value.js +33 -7
- package/lib/dom/variable.js +11 -4
- package/lib/index.js +3 -1
- package/package.json +4 -4
- package/src/dom/every.js +117 -0
- package/src/dom/procedure/anonymous.js +9 -0
- package/src/dom/reduce.js +117 -0
- package/src/dom/value.js +39 -7
- package/src/dom/variable.js +11 -2
- package/src/index.js +2 -0
package/src/dom/every.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import dom from "../dom";
|
|
4
|
+
import Exception from "../exception";
|
|
5
|
+
|
|
6
|
+
import { nodeQuery } from "../utilities/query";
|
|
7
|
+
import { domAssigned } from "../dom";
|
|
8
|
+
import { NODES_TYPE, BOOLEAN_TYPE } from "../types";
|
|
9
|
+
|
|
10
|
+
const variableNodeQuery = nodeQuery("/every/variable"),
|
|
11
|
+
valueEveryNodeQuery = nodeQuery("/value/every"),
|
|
12
|
+
parametersNodeQuery = nodeQuery("/every/anonymousProcedure/parameters");
|
|
13
|
+
|
|
14
|
+
export default domAssigned(class Every {
|
|
15
|
+
constructor(string, variable, anonymousProcedure) {
|
|
16
|
+
this.string = string;
|
|
17
|
+
this.variable = variable;
|
|
18
|
+
this.anonymousProcedure = anonymousProcedure;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
getString() {
|
|
22
|
+
return this.string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getVariable() {
|
|
26
|
+
return this.variable;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
getAnonymousProcedure() {
|
|
30
|
+
return this.anonymousProcedure;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
evaluate(context) {
|
|
34
|
+
let value;
|
|
35
|
+
|
|
36
|
+
const everyString = this.getString();
|
|
37
|
+
|
|
38
|
+
context.trace(`Evaluating the '${everyString}' every...`);
|
|
39
|
+
|
|
40
|
+
value = this.variable.evaluate(context);
|
|
41
|
+
|
|
42
|
+
const valueType = value.getType();
|
|
43
|
+
|
|
44
|
+
if (valueType !== NODES_TYPE) {
|
|
45
|
+
const valueString = value.asString(context),
|
|
46
|
+
message = `The ${valueString} value's '${valueType}' type should be '${NODES_TYPE}'.`,
|
|
47
|
+
exception = Exception.fromMessage(message);
|
|
48
|
+
|
|
49
|
+
throw exception;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const nodes = value.getNodes(),
|
|
53
|
+
boolean = nodes.every((node) => {
|
|
54
|
+
let value;
|
|
55
|
+
|
|
56
|
+
const { Value, Values } = dom;
|
|
57
|
+
|
|
58
|
+
value = Value.fromNode(node, context);
|
|
59
|
+
|
|
60
|
+
const values = Values.fromValue(value, context);
|
|
61
|
+
|
|
62
|
+
value = this.anonymousProcedure.call(values, context);
|
|
63
|
+
|
|
64
|
+
const valueType = value.getType();
|
|
65
|
+
|
|
66
|
+
if (valueType !== BOOLEAN_TYPE) {
|
|
67
|
+
const valueString = value.asString(context),
|
|
68
|
+
message = `The ${valueString} value's type is '${valueType}' when it should be of type '${BOOLEAN_TYPE}'.`,
|
|
69
|
+
exception = Exception.fromMessage(message);
|
|
70
|
+
|
|
71
|
+
throw exception;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const boolean = value.getBoolean();
|
|
75
|
+
|
|
76
|
+
return boolean;
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
const { Value } = dom;
|
|
80
|
+
|
|
81
|
+
value = Value.fromBoolean(boolean, context);
|
|
82
|
+
|
|
83
|
+
context.trace(`...evaluated the '${everyString}' every.`);
|
|
84
|
+
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static name = "Every";
|
|
89
|
+
|
|
90
|
+
static fromValueNode(valueNode, context) {
|
|
91
|
+
let every = null;
|
|
92
|
+
|
|
93
|
+
const valueEveryNode = valueEveryNodeQuery(valueNode);
|
|
94
|
+
|
|
95
|
+
if (valueEveryNode !== null) {
|
|
96
|
+
const { Variable, AnonymousProcedure } = dom,
|
|
97
|
+
everyNode = valueEveryNode, ///
|
|
98
|
+
string = stringFromEveryNode(everyNode, context),
|
|
99
|
+
variable = Variable.fromEveryNode(everyNode, context),
|
|
100
|
+
anonymousProcedure = AnonymousProcedure.fromEveryNode(everyNode, context);
|
|
101
|
+
|
|
102
|
+
every = new Every(string, variable, anonymousProcedure);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return every;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
function stringFromEveryNode(everyNode, context) {
|
|
110
|
+
const variableNode = variableNodeQuery(everyNode),
|
|
111
|
+
parametersNode = parametersNodeQuery(everyNode),
|
|
112
|
+
variableString = context.nodeAsString(variableNode),
|
|
113
|
+
parametersString = context.nodeAsString(parametersNode),
|
|
114
|
+
string = `Every(${variableString}, (${parametersString}) { ... })`;
|
|
115
|
+
|
|
116
|
+
return string;
|
|
117
|
+
}
|
|
@@ -10,6 +10,7 @@ import { variablesFromValuesAndParameters } from "../procedure";
|
|
|
10
10
|
const parametersNodeQuery = nodeQuery("/anonymousProcedure/parameters"),
|
|
11
11
|
typeTerminalNodeQuery = nodeQuery("/anonymousProcedure/@type"),
|
|
12
12
|
someAnonymousProcedureNodeQuery = nodeQuery("/some/anonymousProcedure"),
|
|
13
|
+
everyAnonymousProcedureNodeQuery = nodeQuery("/every/anonymousProcedure"),
|
|
13
14
|
anonymousProcedureCallAnonymousProcedureNodeQuery = nodeQuery("/anonymousProcedureCall/anonymousProcedure");
|
|
14
15
|
|
|
15
16
|
export default domAssigned(class AnonymousProcedure {
|
|
@@ -71,6 +72,14 @@ export default domAssigned(class AnonymousProcedure {
|
|
|
71
72
|
return anonymousProcedure;
|
|
72
73
|
}
|
|
73
74
|
|
|
75
|
+
static fromEveryNode(everyNode, context) {
|
|
76
|
+
const everyAnonymousProcedureNode = everyAnonymousProcedureNodeQuery(everyNode),
|
|
77
|
+
anonymousProcedureNode = everyAnonymousProcedureNode, ///
|
|
78
|
+
anonymousProcedure = anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureNode, context);
|
|
79
|
+
|
|
80
|
+
return anonymousProcedure;
|
|
81
|
+
}
|
|
82
|
+
|
|
74
83
|
static fromAnonymousProcedureCallNode(anonymousProcedureCallNode, context) {
|
|
75
84
|
const anonymousProcedureCallAnonymousProcedureNode = anonymousProcedureCallAnonymousProcedureNodeQuery(anonymousProcedureCallNode),
|
|
76
85
|
anonymousProcedureNode = anonymousProcedureCallAnonymousProcedureNode, ///
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import dom from "../dom";
|
|
4
|
+
import Exception from "../exception";
|
|
5
|
+
|
|
6
|
+
import { nodeQuery } from "../utilities/query";
|
|
7
|
+
import { domAssigned } from "../dom";
|
|
8
|
+
import { NODES_TYPE, BOOLEAN_TYPE } from "../types";
|
|
9
|
+
|
|
10
|
+
const variableNodeQuery = nodeQuery("/some/variable"),
|
|
11
|
+
valueSomeNodeQuery = nodeQuery("/value/some"),
|
|
12
|
+
parametersNodeQuery = nodeQuery("/some/anonymousProcedure/parameters");
|
|
13
|
+
|
|
14
|
+
export default domAssigned(class Some {
|
|
15
|
+
constructor(string, variable, anonymousProcedure) {
|
|
16
|
+
this.string = string;
|
|
17
|
+
this.variable = variable;
|
|
18
|
+
this.anonymousProcedure = anonymousProcedure;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
getString() {
|
|
22
|
+
return this.string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getVariable() {
|
|
26
|
+
return this.variable;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
getAnonymousProcedure() {
|
|
30
|
+
return this.anonymousProcedure;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
evaluate(context) {
|
|
34
|
+
let value;
|
|
35
|
+
|
|
36
|
+
const someString = this.getString();
|
|
37
|
+
|
|
38
|
+
context.trace(`Evaluating the '${someString}' some...`);
|
|
39
|
+
|
|
40
|
+
value = this.variable.evaluate(context);
|
|
41
|
+
|
|
42
|
+
const valueType = value.getType();
|
|
43
|
+
|
|
44
|
+
if (valueType !== NODES_TYPE) {
|
|
45
|
+
const valueString = value.asString(context),
|
|
46
|
+
message = `The ${valueString} value's '${valueType}' type should be '${NODES_TYPE}'.`,
|
|
47
|
+
exception = Exception.fromMessage(message);
|
|
48
|
+
|
|
49
|
+
throw exception;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const nodes = value.getNodes(),
|
|
53
|
+
boolean = nodes.some((node) => {
|
|
54
|
+
let value;
|
|
55
|
+
|
|
56
|
+
const { Value, Values } = dom;
|
|
57
|
+
|
|
58
|
+
value = Value.fromNode(node, context);
|
|
59
|
+
|
|
60
|
+
const values = Values.fromValue(value, context);
|
|
61
|
+
|
|
62
|
+
value = this.anonymousProcedure.call(values, context);
|
|
63
|
+
|
|
64
|
+
const valueType = value.getType();
|
|
65
|
+
|
|
66
|
+
if (valueType !== BOOLEAN_TYPE) {
|
|
67
|
+
const valueString = value.asString(context),
|
|
68
|
+
message = `The ${valueString} value's type is '${valueType}' when it should be of type '${BOOLEAN_TYPE}'.`,
|
|
69
|
+
exception = Exception.fromMessage(message);
|
|
70
|
+
|
|
71
|
+
throw exception;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const boolean = value.getBoolean();
|
|
75
|
+
|
|
76
|
+
return boolean;
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
const { Value } = dom;
|
|
80
|
+
|
|
81
|
+
value = Value.fromBoolean(boolean, context);
|
|
82
|
+
|
|
83
|
+
context.trace(`...evaluated the '${someString}' some.`);
|
|
84
|
+
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static name = "Some";
|
|
89
|
+
|
|
90
|
+
static fromValueNode(valueNode, context) {
|
|
91
|
+
let some = null;
|
|
92
|
+
|
|
93
|
+
const valueSomeNode = valueSomeNodeQuery(valueNode);
|
|
94
|
+
|
|
95
|
+
if (valueSomeNode !== null) {
|
|
96
|
+
const { Variable, AnonymousProcedure } = dom,
|
|
97
|
+
someNode = valueSomeNode, ///
|
|
98
|
+
string = stringFromSomeNode(someNode, context),
|
|
99
|
+
variable = Variable.fromSomeNode(someNode, context),
|
|
100
|
+
anonymousProcedure = AnonymousProcedure.fromSomeNode(someNode, context);
|
|
101
|
+
|
|
102
|
+
some = new Some(string, variable, anonymousProcedure);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return some;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
function stringFromSomeNode(someNode, context) {
|
|
110
|
+
const variableNode = variableNodeQuery(someNode),
|
|
111
|
+
parametersNode = parametersNodeQuery(someNode),
|
|
112
|
+
variableString = context.nodeAsString(variableNode),
|
|
113
|
+
parametersString = context.nodeAsString(parametersNode),
|
|
114
|
+
string = `Some(${variableString}, (${parametersString}) { ... })`;
|
|
115
|
+
|
|
116
|
+
return string;
|
|
117
|
+
}
|
package/src/dom/value.js
CHANGED
|
@@ -22,13 +22,15 @@ const ternaryValueNodeQuery = nodeQuery("/ternary/value"),
|
|
|
22
22
|
variableAssignmentValueNodeQuery = nodeQuery("/variableAssignment/value");
|
|
23
23
|
|
|
24
24
|
export default domAssigned(class Value {
|
|
25
|
-
constructor(node, nodes, number, string, boolean, some, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall) {
|
|
25
|
+
constructor(node, nodes, number, string, boolean, some, every, reduce, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall) {
|
|
26
26
|
this.node = node;
|
|
27
27
|
this.nodes = nodes;
|
|
28
28
|
this.number = number;
|
|
29
29
|
this.string = string;
|
|
30
30
|
this.boolean = boolean;
|
|
31
31
|
this.some = some;
|
|
32
|
+
this.every - every;
|
|
33
|
+
this.reduce = reduce;
|
|
32
34
|
this.ternary = ternary;
|
|
33
35
|
this.variable = variable;
|
|
34
36
|
this.nodeQuery = nodeQuery;
|
|
@@ -65,6 +67,14 @@ export default domAssigned(class Value {
|
|
|
65
67
|
return this.some;
|
|
66
68
|
}
|
|
67
69
|
|
|
70
|
+
getEvery() {
|
|
71
|
+
return this.every;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
getReduce() {
|
|
75
|
+
return this.reduce;
|
|
76
|
+
}
|
|
77
|
+
|
|
68
78
|
getTernary() {
|
|
69
79
|
return this.ternay;
|
|
70
80
|
}
|
|
@@ -122,6 +132,10 @@ export default domAssigned(class Value {
|
|
|
122
132
|
type = BOOLEAN_TYPE;
|
|
123
133
|
} else if (this.some !== null) {
|
|
124
134
|
type = this.some.getType();
|
|
135
|
+
} else if (this.every !== null) {
|
|
136
|
+
type = this.every.getType();
|
|
137
|
+
} else if (this.reduce !== null) {
|
|
138
|
+
type = this.reduce.getType();
|
|
125
139
|
} else if (this.ternary !== null) {
|
|
126
140
|
type = this.ternary.getType();
|
|
127
141
|
} else if (this.variable !== null) {
|
|
@@ -164,6 +178,10 @@ export default domAssigned(class Value {
|
|
|
164
178
|
string = booleanAsString(this.boolean, context)
|
|
165
179
|
} else if (this.some !== null) {
|
|
166
180
|
string = this.some.asString(context);
|
|
181
|
+
} else if (this.every !== null) {
|
|
182
|
+
string = this.every.asString(context);
|
|
183
|
+
} else if (this.reduce !== null) {
|
|
184
|
+
string = this.reduce.asString(context);
|
|
167
185
|
} else if (this.ternary !== null) {
|
|
168
186
|
string = this.ternary.asString(context);
|
|
169
187
|
} else if (this.variable !== null) {
|
|
@@ -202,6 +220,10 @@ export default domAssigned(class Value {
|
|
|
202
220
|
value = this;
|
|
203
221
|
} else if (this.some !== null) {
|
|
204
222
|
value = this.some.evaluate(context);
|
|
223
|
+
} else if (this.every !== null) {
|
|
224
|
+
value = this.every.evaluate(context);
|
|
225
|
+
} else if (this.reduce !== null) {
|
|
226
|
+
value = this.reduce.evaluate(context);
|
|
205
227
|
} else if (this.ternary !== null) {
|
|
206
228
|
value = this.ternary.evaluate(context);
|
|
207
229
|
} else if (this.variable !== null) {
|
|
@@ -287,6 +309,8 @@ export default domAssigned(class Value {
|
|
|
287
309
|
string = null,
|
|
288
310
|
boolean = null,
|
|
289
311
|
some = null,
|
|
312
|
+
every = null,
|
|
313
|
+
reduce = null,
|
|
290
314
|
ternary = null,
|
|
291
315
|
variable = null,
|
|
292
316
|
nodeQuery = null,
|
|
@@ -297,7 +321,7 @@ export default domAssigned(class Value {
|
|
|
297
321
|
bracketedValue = null,
|
|
298
322
|
procedureCall = null,
|
|
299
323
|
anonymousProcedureCall = null,
|
|
300
|
-
value = new Value(node, nodes, number, string, boolean, some, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
324
|
+
value = new Value(node, nodes, number, string, boolean, some, every, reduce, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
301
325
|
|
|
302
326
|
return value;
|
|
303
327
|
}
|
|
@@ -309,6 +333,8 @@ export default domAssigned(class Value {
|
|
|
309
333
|
boolean = null,
|
|
310
334
|
ternary = null,
|
|
311
335
|
some = null,
|
|
336
|
+
every = null,
|
|
337
|
+
reduce = null,
|
|
312
338
|
variable = null,
|
|
313
339
|
nodeQuery = null,
|
|
314
340
|
nodesQuery = null,
|
|
@@ -318,7 +344,7 @@ export default domAssigned(class Value {
|
|
|
318
344
|
bracketedValue = null,
|
|
319
345
|
procedureCall = null,
|
|
320
346
|
anonymousProcedureCall = null,
|
|
321
|
-
value = new Value(node, nodes, number, string, boolean, some, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
347
|
+
value = new Value(node, nodes, number, string, boolean, some, every, reduce, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
322
348
|
|
|
323
349
|
return value;
|
|
324
350
|
}
|
|
@@ -329,6 +355,8 @@ export default domAssigned(class Value {
|
|
|
329
355
|
number = null,
|
|
330
356
|
boolean = null,
|
|
331
357
|
some = null,
|
|
358
|
+
every = null,
|
|
359
|
+
reduce = null,
|
|
332
360
|
ternary = null,
|
|
333
361
|
variable = null,
|
|
334
362
|
nodeQuery = null,
|
|
@@ -339,7 +367,7 @@ export default domAssigned(class Value {
|
|
|
339
367
|
bracketedValue = null,
|
|
340
368
|
procedureCall = null,
|
|
341
369
|
anonymousProcedureCall = null,
|
|
342
|
-
value = new Value(node, nodes, number, string, boolean, some, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
370
|
+
value = new Value(node, nodes, number, string, boolean, some, every, reduce, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
343
371
|
|
|
344
372
|
return value;
|
|
345
373
|
}
|
|
@@ -350,6 +378,8 @@ export default domAssigned(class Value {
|
|
|
350
378
|
number = null,
|
|
351
379
|
string = null,
|
|
352
380
|
some = null,
|
|
381
|
+
every = null,
|
|
382
|
+
reduce = null,
|
|
353
383
|
ternary = null,
|
|
354
384
|
variable = null,
|
|
355
385
|
nodeQuery = null,
|
|
@@ -360,7 +390,7 @@ export default domAssigned(class Value {
|
|
|
360
390
|
bracketedValue = null,
|
|
361
391
|
procedureCall = null,
|
|
362
392
|
anonymousProcedureCall = null,
|
|
363
|
-
value = new Value(node, nodes, number, string, boolean, some, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
393
|
+
value = new Value(node, nodes, number, string, boolean, some, every, reduce, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
364
394
|
|
|
365
395
|
return value;
|
|
366
396
|
}
|
|
@@ -497,13 +527,15 @@ function booleanAsString(boolean, context) {
|
|
|
497
527
|
}
|
|
498
528
|
|
|
499
529
|
function valueFromValueNode(valueNode, context) {
|
|
500
|
-
const { Some, Value, Ternary, Variable, NodeQuery, NodesQuery, Comparison, NegatedValue, BitwiseValue, BracketedValue, ProcedureCall, AnonymousProcedureCall } = dom,
|
|
530
|
+
const { Some, Every, Reduce, Value, Ternary, Variable, NodeQuery, NodesQuery, Comparison, NegatedValue, BitwiseValue, BracketedValue, ProcedureCall, AnonymousProcedureCall } = dom,
|
|
501
531
|
node = nodeFromValueNode(valueNode, context),
|
|
502
532
|
nodes = nodesFromValueNode(valueNode, context),
|
|
503
533
|
number = numberFromValueNode(valueNode, context),
|
|
504
534
|
string = stringFromValueNode(valueNode, context),
|
|
505
535
|
boolean = booleanFromValueNode(valueNode, context),
|
|
506
536
|
some = Some.fromValueNode(valueNode, context),
|
|
537
|
+
every = Every.fromValueNode(valueNode, context),
|
|
538
|
+
reduce = Reduce.fromValueNode(valueNode, context),
|
|
507
539
|
ternary = Ternary.fromValueNode(valueNode, context),
|
|
508
540
|
variable = Variable.fromValueNode(valueNode, context),
|
|
509
541
|
nodeQuery = NodeQuery.fromValueNode(valueNode, context),
|
|
@@ -514,7 +546,7 @@ function valueFromValueNode(valueNode, context) {
|
|
|
514
546
|
bracketedValue = BracketedValue.fromValueNode(valueNode, context),
|
|
515
547
|
procedureCall = ProcedureCall.fromValueNode(valueNode, context),
|
|
516
548
|
anonymousProcedureCall = AnonymousProcedureCall.fromValueNode(valueNode, context),
|
|
517
|
-
value = new Value(node, nodes, number, string, boolean, some, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
549
|
+
value = new Value(node, nodes, number, string, boolean, some, every, reduce, ternary, variable, nodeQuery, nodesQuery, comparison, negatedValue, bitwiseValue, bracketedValue, procedureCall, anonymousProcedureCall);
|
|
518
550
|
|
|
519
551
|
return value;
|
|
520
552
|
}
|
package/src/dom/variable.js
CHANGED
|
@@ -8,6 +8,7 @@ import { domAssigned } from "../dom";
|
|
|
8
8
|
|
|
9
9
|
const someVariableNodeQuery = nodeQuery("/some/variable"),
|
|
10
10
|
valueVariableNodeQuery = nodeQuery("/value/variable"),
|
|
11
|
+
everyVariableNodeQuery = nodeQuery("/every/variable"),
|
|
11
12
|
nodeQueryVariableNodeQuery = nodeQuery("/nodeQuery/variable"),
|
|
12
13
|
nodesQueryVariableNodeQuery = nodeQuery("/nodesQuery/variable"),
|
|
13
14
|
variableNameTerminalNodeQuery = nodeQuery("/variable/@name"),
|
|
@@ -105,8 +106,8 @@ export default domAssigned(class Variable {
|
|
|
105
106
|
|
|
106
107
|
static name = "Variable";
|
|
107
108
|
|
|
108
|
-
static fromSomeNode(
|
|
109
|
-
const someVariableNode = someVariableNodeQuery(
|
|
109
|
+
static fromSomeNode(someNode, context) {
|
|
110
|
+
const someVariableNode = someVariableNodeQuery(someNode),
|
|
110
111
|
variableNode = someVariableNode, ///
|
|
111
112
|
variable = variableFromVariableNode(variableNode, context);
|
|
112
113
|
|
|
@@ -127,6 +128,14 @@ export default domAssigned(class Variable {
|
|
|
127
128
|
return variable;
|
|
128
129
|
}
|
|
129
130
|
|
|
131
|
+
static fromEveryNode(everyNode, context) {
|
|
132
|
+
const everyVariableNode = everyVariableNodeQuery(everyNode),
|
|
133
|
+
variableNode = everyVariableNode, ///
|
|
134
|
+
variable = variableFromVariableNode(variableNode, context);
|
|
135
|
+
|
|
136
|
+
return variable;
|
|
137
|
+
}
|
|
138
|
+
|
|
130
139
|
static fromParameter(parameter, context) {
|
|
131
140
|
const type = parameter.getType(),
|
|
132
141
|
name = parameter.getName(),
|
package/src/index.js
CHANGED
|
@@ -6,7 +6,9 @@ import Label from "./dom/label";
|
|
|
6
6
|
import Block from "./dom/block";
|
|
7
7
|
import Error from "./dom/error";
|
|
8
8
|
import Value from "./dom/value";
|
|
9
|
+
import Every from "./dom/every";
|
|
9
10
|
import Values from "./dom/values";
|
|
11
|
+
import Reduce from "./dom/reduce";
|
|
10
12
|
import Ternary from "./dom/ternary";
|
|
11
13
|
import Variable from "./dom/variable";
|
|
12
14
|
import Reference from "./dom/reference";
|