occam-furtle 2.0.340 → 3.0.1
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/example.js +6319 -2036
- package/lib/context/block.js +81 -41
- package/lib/context/file/furtle.js +260 -0
- package/lib/context/file/nominal.js +956 -0
- package/lib/context/file.js +146 -271
- package/lib/context/release.js +675 -0
- package/lib/context.js +210 -0
- package/lib/element/assignment/array.js +117 -15
- package/lib/element/assignment/object.js +119 -17
- package/lib/element/assignment/variable.js +121 -14
- package/lib/element/assignments/variable.js +120 -13
- package/lib/element/declaration/procedure.js +120 -12
- package/lib/element/error.js +118 -13
- package/lib/element/every.js +116 -13
- package/lib/element/expression.js +134 -68
- package/lib/element/label.js +119 -12
- package/lib/element/nodeQuery.js +120 -18
- package/lib/element/nodesQuery.js +120 -18
- package/lib/element/parameter/named.js +117 -15
- package/lib/element/parameter.js +116 -14
- package/lib/element/parameters/named.js +116 -14
- package/lib/element/parameters.js +115 -13
- package/lib/element/primitive.js +115 -63
- package/lib/element/procedure/anonymous.js +118 -16
- package/lib/element/procedure.js +118 -16
- package/lib/element/procedureCall.js +116 -14
- package/lib/element/reduce.js +116 -14
- package/lib/element/reference.js +119 -12
- package/lib/element/returnBlock.js +116 -14
- package/lib/element/some.js +117 -15
- package/lib/element/statement/return.js +120 -13
- package/lib/element/step.js +121 -14
- package/lib/element/term/bracketed.js +120 -13
- package/lib/element/term/comparison.js +117 -15
- package/lib/element/term/logical.js +119 -17
- package/lib/element/term/negated.js +119 -15
- package/lib/element/term.js +131 -45
- package/lib/element/terms.js +125 -14
- package/lib/element/ternary.js +118 -16
- package/lib/element/variable.js +127 -19
- package/lib/element.js +1 -8
- package/lib/index.js +9 -1
- package/lib/log.js +13 -12
- package/lib/metaTypeNames.js +26 -0
- package/lib/metaTypes.js +66 -0
- package/lib/node/expression.js +8 -15
- package/lib/nodeProperties.js +17 -21
- package/lib/nodeProperty.js +4 -7
- package/lib/utilities/context.js +8 -37
- package/lib/utilities/customGrammar.js +49 -0
- package/lib/utilities/element.js +110 -60
- package/lib/utilities/lineIndex.js +26 -0
- package/lib/utilities/primitive.js +14 -5
- package/lib/utilities/string.js +41 -37
- package/lib/utilities/term.js +14 -5
- package/lib/utilities/terms.js +7 -3
- package/package.json +2 -2
- package/src/context/block.js +20 -32
- package/src/context/file/furtle.js +141 -0
- package/src/context/file/nominal.js +946 -0
- package/src/context/file.js +32 -209
- package/src/context/release.js +653 -0
- package/src/context.js +74 -0
- package/src/element/assignment/array.js +8 -9
- package/src/element/assignment/object.js +12 -11
- package/src/element/assignment/variable.js +7 -8
- package/src/element/assignments/variable.js +7 -8
- package/src/element/declaration/procedure.js +6 -6
- package/src/element/error.js +4 -6
- package/src/element/every.js +5 -6
- package/src/element/expression.js +13 -33
- package/src/element/label.js +6 -7
- package/src/element/nodeQuery.js +12 -14
- package/src/element/nodesQuery.js +12 -14
- package/src/element/parameter/named.js +7 -8
- package/src/element/parameter.js +6 -8
- package/src/element/parameters/named.js +8 -9
- package/src/element/parameters.js +6 -8
- package/src/element/primitive.js +5 -57
- package/src/element/procedure/anonymous.js +7 -9
- package/src/element/procedure.js +6 -8
- package/src/element/procedureCall.js +6 -8
- package/src/element/reduce.js +5 -7
- package/src/element/reference.js +6 -7
- package/src/element/returnBlock.js +5 -7
- package/src/element/some.js +9 -9
- package/src/element/statement/return.js +7 -8
- package/src/element/step.js +6 -7
- package/src/element/term/bracketed.js +7 -8
- package/src/element/term/comparison.js +6 -8
- package/src/element/term/logical.js +12 -12
- package/src/element/term/negated.js +11 -9
- package/src/element/term.js +16 -17
- package/src/element/terms.js +16 -9
- package/src/element/ternary.js +8 -9
- package/src/element/variable.js +24 -14
- package/src/element.js +0 -8
- package/src/index.js +2 -0
- package/src/log.js +11 -11
- package/src/metaTypeNames.js +5 -0
- package/src/metaTypes.js +71 -0
- package/src/node/expression.js +9 -17
- package/src/nodeProperties.js +23 -32
- package/src/nodeProperty.js +5 -10
- package/src/utilities/context.js +7 -45
- package/src/utilities/customGrammar.js +40 -0
- package/src/utilities/element.js +181 -94
- package/src/utilities/lineIndex.js +21 -0
- package/src/utilities/primitive.js +22 -5
- package/src/utilities/string.js +42 -36
- package/src/utilities/term.js +22 -5
- package/src/utilities/terms.js +12 -4
- package/test/helpers/furtle.js +1 -1
- package/test/helpers/nominal.js +2 -3
- package/test/main.js +4 -3
- package/test/context/file.js +0 -127
- package/test/context/release.js +0 -151
- package/test/helpers/constants.js +0 -17
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../../element";
|
|
3
4
|
import elements from "../../elements";
|
|
4
5
|
import Exception from "../../exception";
|
|
5
6
|
|
|
@@ -7,17 +8,14 @@ import { define } from "../../elements";
|
|
|
7
8
|
import { termFromNode } from "../../utilities/term";
|
|
8
9
|
import { NODE_TYPE, NODES_TYPE } from "../../types";
|
|
9
10
|
|
|
10
|
-
export default define(class ArrayAssigment {
|
|
11
|
-
constructor(string, variable, parameters) {
|
|
12
|
-
|
|
11
|
+
export default define(class ArrayAssigment extends Element {
|
|
12
|
+
constructor(context, string, node, variable, parameters) {
|
|
13
|
+
super(context, string, node)
|
|
14
|
+
|
|
13
15
|
this.variable = variable;
|
|
14
16
|
this.parameters = parameters;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
getString() {
|
|
18
|
-
return this.string;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
19
|
getVariable() {
|
|
22
20
|
return this.variable;
|
|
23
21
|
}
|
|
@@ -27,7 +25,7 @@ export default define(class ArrayAssigment {
|
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
evaluate(context) {
|
|
30
|
-
const arrayAssignmentString = this.
|
|
28
|
+
const arrayAssignmentString = this.getString(); ///
|
|
31
29
|
|
|
32
30
|
context.trace(`Evaluating the '${arrayAssignmentString}' array assignment...`);
|
|
33
31
|
|
|
@@ -42,7 +40,8 @@ export default define(class ArrayAssigment {
|
|
|
42
40
|
throw exception;
|
|
43
41
|
}
|
|
44
42
|
|
|
45
|
-
const
|
|
43
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
44
|
+
nodes = primitiveValue, ///
|
|
46
45
|
nodesLength = nodes.length,
|
|
47
46
|
parametersLength = this.parameters.getLength();
|
|
48
47
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../../element";
|
|
3
4
|
import elements from "../../elements";
|
|
4
5
|
import Exception from "../../exception";
|
|
5
6
|
import nodeProperties from "../../nodeProperties";
|
|
@@ -10,17 +11,14 @@ import { NODE_TYPE, NODES_TYPE, STRING_TYPE, BOOLEAN_TYPE } from "../../types";
|
|
|
10
11
|
import { termFromNodes, termFromBoolean, termFromStringLiteral } from "../../utilities/term";
|
|
11
12
|
import { CONTENT_PARAMETER_NAME, TERMINAL_PARAMETER_NAME, CHILD_NODES_PARAMETER_NAME } from "../../parameterNames";
|
|
12
13
|
|
|
13
|
-
export default define(class ObjectAssigment {
|
|
14
|
-
constructor(string, variable, namedParameters) {
|
|
15
|
-
|
|
14
|
+
export default define(class ObjectAssigment extends Element {
|
|
15
|
+
constructor(context, string, node, variable, namedParameters) {
|
|
16
|
+
super(context, string, node)
|
|
17
|
+
|
|
16
18
|
this.variable = variable;
|
|
17
19
|
this.namedParameters = namedParameters;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
getString() {
|
|
21
|
-
return this.string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
22
|
getVariable() {
|
|
25
23
|
return this.variable;
|
|
26
24
|
}
|
|
@@ -30,7 +28,7 @@ export default define(class ObjectAssigment {
|
|
|
30
28
|
}
|
|
31
29
|
|
|
32
30
|
evaluate(context) {
|
|
33
|
-
const objectAssignmentString = this.
|
|
31
|
+
const objectAssignmentString = this.getString(); ///
|
|
34
32
|
|
|
35
33
|
context.trace(`Evaluating the '${objectAssignmentString}' object assignment...`);
|
|
36
34
|
|
|
@@ -104,7 +102,8 @@ export default define(class ObjectAssigment {
|
|
|
104
102
|
throw exception;
|
|
105
103
|
}
|
|
106
104
|
|
|
107
|
-
const
|
|
105
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
106
|
+
node = primitiveValue, ///
|
|
108
107
|
nodeTerminalNode = node.isTerminalNode();
|
|
109
108
|
|
|
110
109
|
if (!nodeTerminalNode) {
|
|
@@ -143,7 +142,8 @@ export default define(class ObjectAssigment {
|
|
|
143
142
|
throw exception;
|
|
144
143
|
}
|
|
145
144
|
|
|
146
|
-
const
|
|
145
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
146
|
+
node = primitiveValue, ///
|
|
147
147
|
nodeTerminalNode = node.isTerminalNode(),
|
|
148
148
|
terminal = nodeTerminalNode; ///
|
|
149
149
|
|
|
@@ -172,7 +172,8 @@ export default define(class ObjectAssigment {
|
|
|
172
172
|
throw exception;
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
const
|
|
175
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
176
|
+
node = primitiveValue, ///
|
|
176
177
|
nodeNonTerminalNode = node.isNonTerminalNode();
|
|
177
178
|
|
|
178
179
|
if (!nodeNonTerminalNode) {
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../../element";
|
|
4
|
+
|
|
3
5
|
import { define } from "../../elements";
|
|
4
6
|
|
|
5
|
-
export default define(class VariableAssignment {
|
|
6
|
-
constructor(string, variable, expression) {
|
|
7
|
-
|
|
7
|
+
export default define(class VariableAssignment extends Element {
|
|
8
|
+
constructor(context, string, node, variable, expression) {
|
|
9
|
+
super(context, string, node)
|
|
10
|
+
|
|
8
11
|
this.variable = variable;
|
|
9
12
|
this.expression = expression;
|
|
10
13
|
}
|
|
11
14
|
|
|
12
|
-
getString() {
|
|
13
|
-
return this.string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
15
|
getVariable() {
|
|
17
16
|
return this.variable;
|
|
18
17
|
}
|
|
@@ -24,7 +23,7 @@ export default define(class VariableAssignment {
|
|
|
24
23
|
evaluate(context) {
|
|
25
24
|
let term;
|
|
26
25
|
|
|
27
|
-
const variableAssignmentString = this.
|
|
26
|
+
const variableAssignmentString = this.getString(); ///
|
|
28
27
|
|
|
29
28
|
context.trace(`Evaluating the '${variableAssignmentString}' variable assignment...`);
|
|
30
29
|
|
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import { define } from "../../elements";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
constructor(string, array) {
|
|
7
|
-
this.string = string;
|
|
8
|
-
this.array = array;
|
|
9
|
-
}
|
|
5
|
+
import Element from "../../element";
|
|
10
6
|
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export default define(class VariableAssignments extends Element {
|
|
8
|
+
constructor(context, string, node, array) {
|
|
9
|
+
super(context, string, node)
|
|
10
|
+
|
|
11
|
+
this.array = array;
|
|
13
12
|
}
|
|
14
13
|
|
|
15
14
|
getArray() {
|
|
@@ -17,7 +16,7 @@ export default define(class VariableAssignments {
|
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
evaluate(context) {
|
|
20
|
-
const variableAssignmentsString = this.
|
|
19
|
+
const variableAssignmentsString = this.getString(); ///
|
|
21
20
|
|
|
22
21
|
context.trace(`Evaluating the '${variableAssignmentsString}' variable assignments...`);
|
|
23
22
|
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
import { define } from "../../elements";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import Element from "../../element";
|
|
6
|
+
|
|
7
|
+
export default define(class ProcedureDeclaration extends Element {
|
|
8
|
+
constructor(context, string, node, procedure) {
|
|
9
|
+
super(context, string, node)
|
|
10
|
+
|
|
7
11
|
this.string = string;
|
|
8
12
|
this.procedure = procedure;
|
|
9
13
|
}
|
|
10
14
|
|
|
11
|
-
getString() {
|
|
12
|
-
return this.string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
15
|
getProcedure() {
|
|
16
16
|
return this.procedure;
|
|
17
17
|
}
|
package/src/element/error.js
CHANGED
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import { define } from "../elements";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
constructor(string) {
|
|
7
|
-
this.string = string;
|
|
8
|
-
}
|
|
5
|
+
import Element from "../element";
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
export default define(class Error extends Element {
|
|
8
|
+
constructor(conterxt, string, node) {
|
|
9
|
+
super(context, string, node)
|
|
12
10
|
}
|
|
13
11
|
|
|
14
12
|
verify(context) {
|
package/src/element/every.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import elements from "../elements";
|
|
4
5
|
import Exception from "../exception";
|
|
5
6
|
|
|
@@ -7,17 +8,15 @@ import { define } from "../elements";
|
|
|
7
8
|
import { NODES_TYPE, BOOLEAN_TYPE } from "../types";
|
|
8
9
|
import { termFromNode, termFromBoolean } from "../utilities/term";
|
|
9
10
|
|
|
10
|
-
export default define(class Every {
|
|
11
|
-
constructor(string, variable, anonymousProcedure) {
|
|
11
|
+
export default define(class Every extends Element {
|
|
12
|
+
constructor(context, string, node, variable, anonymousProcedure) {
|
|
13
|
+
super(context, string, node)
|
|
14
|
+
|
|
12
15
|
this.string = string;
|
|
13
16
|
this.variable = variable;
|
|
14
17
|
this.anonymousProcedure = anonymousProcedure;
|
|
15
18
|
}
|
|
16
19
|
|
|
17
|
-
getString() {
|
|
18
|
-
return this.string;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
20
|
getVariable() {
|
|
22
21
|
return this.variable;
|
|
23
22
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
4
|
+
|
|
3
5
|
import { define } from "../elements";
|
|
4
6
|
|
|
5
|
-
export default define(class Expression {
|
|
6
|
-
constructor(string,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.
|
|
7
|
+
export default define(class Expression extends Element {
|
|
8
|
+
constructor(context, string, node, term, some, every, reduce, ternary, nodeQuery, nodesQuery, returnBlock, procedureCall) {
|
|
9
|
+
super(context, string, node)
|
|
10
|
+
|
|
11
|
+
this.term = term;
|
|
10
12
|
this.some = some;
|
|
11
13
|
this.every = every;
|
|
12
14
|
this.reduce = reduce;
|
|
@@ -17,16 +19,8 @@ export default define(class Expression {
|
|
|
17
19
|
this.procedureCall = procedureCall;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
return this.
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
getVariable() {
|
|
25
|
-
return this.variable;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
getPrimitive() {
|
|
29
|
-
return this.primitive;
|
|
22
|
+
getTerm() {
|
|
23
|
+
return this.term;
|
|
30
24
|
}
|
|
31
25
|
|
|
32
26
|
getSome() {
|
|
@@ -61,25 +55,13 @@ export default define(class Expression {
|
|
|
61
55
|
return this.procedureCall;
|
|
62
56
|
}
|
|
63
57
|
|
|
64
|
-
getNode() { return this.primitive.getNode(); }
|
|
65
|
-
|
|
66
|
-
getNodes() { return this.primitive.getNodes(); }
|
|
67
|
-
|
|
68
|
-
getNumber() { return this.primitive.getNumber(); }
|
|
69
|
-
|
|
70
|
-
getBoolean() { return this.primitive.getBoolean(); }
|
|
71
|
-
|
|
72
|
-
getStringLiteral() { return this.primitive.getStringLiteral(); }
|
|
73
|
-
|
|
74
58
|
getType() {
|
|
75
59
|
let type;
|
|
76
60
|
|
|
77
61
|
if (false) {
|
|
78
62
|
///
|
|
79
|
-
} else if (this.
|
|
80
|
-
type = this.
|
|
81
|
-
} else if (this.primitive !== null) {
|
|
82
|
-
type = this.primitive.getType();
|
|
63
|
+
} else if (this.term !== null) {
|
|
64
|
+
type = this.term.getType();
|
|
83
65
|
} else if (this.some !== null) {
|
|
84
66
|
type = this.some.getType();
|
|
85
67
|
} else if (this.every !== null) {
|
|
@@ -106,10 +88,8 @@ export default define(class Expression {
|
|
|
106
88
|
|
|
107
89
|
if (false) {
|
|
108
90
|
///
|
|
109
|
-
} else if (this.
|
|
110
|
-
term = this.
|
|
111
|
-
} else if (this.primitive !== null) {
|
|
112
|
-
term = this.primitive.evaluate(context);
|
|
91
|
+
} else if (this.term !== null) {
|
|
92
|
+
term = this.term.evaluate(context);
|
|
113
93
|
} else if (this.some !== null) {
|
|
114
94
|
term = this.some.evaluate(context);
|
|
115
95
|
} else if (this.every !== null) {
|
package/src/element/label.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
4
|
+
|
|
3
5
|
import { define } from "../elements";
|
|
4
6
|
|
|
5
|
-
export default define(class Label {
|
|
6
|
-
constructor(string, name) {
|
|
7
|
-
|
|
8
|
-
this.name = name;
|
|
9
|
-
}
|
|
7
|
+
export default define(class Label extends Element {
|
|
8
|
+
constructor(context, string, node, name) {
|
|
9
|
+
super(context, string, node)
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
return this.string;
|
|
11
|
+
this.name = name;
|
|
13
12
|
}
|
|
14
13
|
|
|
15
14
|
getName() {
|
package/src/element/nodeQuery.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
+
import Element from "../element";
|
|
5
6
|
import Exception from "../exception";
|
|
6
7
|
|
|
7
8
|
import { define } from "../elements";
|
|
@@ -10,17 +11,14 @@ import { termFromNode } from "../utilities/term";
|
|
|
10
11
|
|
|
11
12
|
const { first } = arrayUtilities;
|
|
12
13
|
|
|
13
|
-
export default define(class NodeQuery {
|
|
14
|
-
constructor(string, variable, query) {
|
|
15
|
-
|
|
14
|
+
export default define(class NodeQuery extends Element {
|
|
15
|
+
constructor(context, string, node, variable, query) {
|
|
16
|
+
super(context, string, node)
|
|
17
|
+
|
|
16
18
|
this.variable = variable;
|
|
17
19
|
this.query = query;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
getString() {
|
|
21
|
-
return this.string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
22
|
getVariable() {
|
|
25
23
|
return this.variable;
|
|
26
24
|
}
|
|
@@ -32,7 +30,7 @@ export default define(class NodeQuery {
|
|
|
32
30
|
evaluate(context) {
|
|
33
31
|
let term;
|
|
34
32
|
|
|
35
|
-
const nodeQueryString = this.
|
|
33
|
+
const nodeQueryString = this.getString(); ///
|
|
36
34
|
|
|
37
35
|
context.trace(`Evaluating the '${nodeQueryString}' node query...`);
|
|
38
36
|
|
|
@@ -55,9 +53,13 @@ export default define(class NodeQuery {
|
|
|
55
53
|
throw exception;
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
let node;
|
|
57
|
+
|
|
58
|
+
const primitiveValue = term.getPrimitiveValue();
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
node = primitiveValue; ///
|
|
61
|
+
|
|
62
|
+
if (node === null) {
|
|
61
63
|
const termString = term.getString(),
|
|
62
64
|
message = `The '${termString}' term's node is null.`,
|
|
63
65
|
exception = Exception.fromMessage(message);
|
|
@@ -65,10 +67,6 @@ export default define(class NodeQuery {
|
|
|
65
67
|
throw exception;
|
|
66
68
|
}
|
|
67
69
|
|
|
68
|
-
let node;
|
|
69
|
-
|
|
70
|
-
node = termNode; ///
|
|
71
|
-
|
|
72
70
|
const nodes = this.query.execute(node),
|
|
73
71
|
nodesLength = nodes.length;
|
|
74
72
|
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import Exception from "../exception";
|
|
4
5
|
|
|
5
6
|
import { define } from "../elements";
|
|
6
7
|
import { NODE_TYPE } from "../types";
|
|
7
8
|
import { termFromNodes } from "../utilities/term";
|
|
8
9
|
|
|
9
|
-
export default define(class NodesQuery {
|
|
10
|
-
constructor(string, variable, query) {
|
|
11
|
-
|
|
10
|
+
export default define(class NodesQuery extends Element {
|
|
11
|
+
constructor(context, string, node, variable, query) {
|
|
12
|
+
super(context, string, node)
|
|
13
|
+
|
|
12
14
|
this.variable = variable;
|
|
13
15
|
this.query = query;
|
|
14
16
|
}
|
|
15
17
|
|
|
16
|
-
getString() {
|
|
17
|
-
return this.string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
18
|
getVariable() {
|
|
21
19
|
return this.variable;
|
|
22
20
|
}
|
|
@@ -28,7 +26,7 @@ export default define(class NodesQuery {
|
|
|
28
26
|
evaluate(context) {
|
|
29
27
|
let term;
|
|
30
28
|
|
|
31
|
-
const nodesQueryString = this.
|
|
29
|
+
const nodesQueryString = this.getString(); ///
|
|
32
30
|
|
|
33
31
|
context.trace(`Evaluating the '${nodesQueryString}' nodes query...`);
|
|
34
32
|
|
|
@@ -51,9 +49,13 @@ export default define(class NodesQuery {
|
|
|
51
49
|
throw exception;
|
|
52
50
|
}
|
|
53
51
|
|
|
54
|
-
|
|
52
|
+
let node;
|
|
53
|
+
|
|
54
|
+
const primitiveValue = term.getPrimitiveValue();
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
node = primitiveValue; ///
|
|
57
|
+
|
|
58
|
+
if (node === null) {
|
|
57
59
|
const termString = term.getString(),
|
|
58
60
|
message = `The '${termString}' term's node is null.`,
|
|
59
61
|
exception = Exception.fromMessage(message);
|
|
@@ -61,10 +63,6 @@ export default define(class NodesQuery {
|
|
|
61
63
|
throw exception;
|
|
62
64
|
}
|
|
63
65
|
|
|
64
|
-
let node;
|
|
65
|
-
|
|
66
|
-
node = termNode; ///
|
|
67
|
-
|
|
68
66
|
const nodes = this.query.execute(node);
|
|
69
67
|
|
|
70
68
|
term = termFromNodes(nodes, context);
|
|
@@ -4,18 +4,17 @@ import Exception from "../../exception";
|
|
|
4
4
|
|
|
5
5
|
import { define } from "../../elements";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
import Element from "../../element";
|
|
8
|
+
|
|
9
|
+
export default define(class NamedParameter extends Element {
|
|
10
|
+
constructor(context, string, node, type, name, alias) {
|
|
11
|
+
super(context, string, node)
|
|
12
|
+
|
|
10
13
|
this.type = type;
|
|
11
14
|
this.name = name;
|
|
12
15
|
this.alias = alias;
|
|
13
16
|
}
|
|
14
17
|
|
|
15
|
-
getString() {
|
|
16
|
-
return this.string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
18
|
getType() {
|
|
20
19
|
return this.type;
|
|
21
20
|
}
|
|
@@ -45,7 +44,7 @@ export default define(class NamedParameter {
|
|
|
45
44
|
|
|
46
45
|
matchTerm(term, context) {
|
|
47
46
|
const termString = term.getString(),
|
|
48
|
-
namedParameterString = this.
|
|
47
|
+
namedParameterString = this.getString(); ///
|
|
49
48
|
|
|
50
49
|
context.trace(`Matching the '${termString}' term against the '${namedParameterString}' named parameter...`);
|
|
51
50
|
|
package/src/element/parameter.js
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import Exception from "../exception";
|
|
4
5
|
|
|
5
6
|
import { define } from "../elements";
|
|
6
7
|
|
|
7
|
-
export default define(class Parameter {
|
|
8
|
-
constructor(string, type, name) {
|
|
9
|
-
|
|
8
|
+
export default define(class Parameter extends Element {
|
|
9
|
+
constructor(context, string, node, type, name) {
|
|
10
|
+
super(context, string, node)
|
|
11
|
+
|
|
10
12
|
this.type = type;
|
|
11
13
|
this.name = name;
|
|
12
14
|
}
|
|
13
15
|
|
|
14
|
-
getString() {
|
|
15
|
-
return this.string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
16
|
getType() {
|
|
19
17
|
return this.type;
|
|
20
18
|
}
|
|
@@ -25,7 +23,7 @@ export default define(class Parameter {
|
|
|
25
23
|
|
|
26
24
|
matchTerm(term, context) {
|
|
27
25
|
const termString = term.getString(),
|
|
28
|
-
parameterString = this.
|
|
26
|
+
parameterString = this.getString(); ///
|
|
29
27
|
|
|
30
28
|
context.trace(`Matching the '${termString}' term against the '${parameterString}' parameter...`);
|
|
31
29
|
|
|
@@ -4,14 +4,13 @@ import Exception from "../../exception";
|
|
|
4
4
|
|
|
5
5
|
import { define } from "../../elements";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
constructor(string, array) {
|
|
9
|
-
this.string = string;
|
|
10
|
-
this.array = array;
|
|
11
|
-
}
|
|
7
|
+
import Element from "../../element";
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
export default define(class NamedParameters extends Element {
|
|
10
|
+
constructor(context, string, node, array) {
|
|
11
|
+
super(context, string, node)
|
|
12
|
+
|
|
13
|
+
this.array = array;
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
getArray() {
|
|
@@ -36,7 +35,7 @@ export default define(class NamedParameters {
|
|
|
36
35
|
|
|
37
36
|
matchTerms(terms, context) {
|
|
38
37
|
const termsString = terms.getString(),
|
|
39
|
-
namedParametersString = this.
|
|
38
|
+
namedParametersString = this.getString(); ///
|
|
40
39
|
|
|
41
40
|
context.trace(`Matching the '${termsString}' terms against the '${namedParametersString}' named parameters...`);
|
|
42
41
|
|
|
@@ -63,7 +62,7 @@ export default define(class NamedParameters {
|
|
|
63
62
|
|
|
64
63
|
matchNamedParameter(namedParameter, context) {
|
|
65
64
|
const namedParameterString = namedParameter.getString(),
|
|
66
|
-
namedParametersString = this.
|
|
65
|
+
namedParametersString = this.getString(); ///
|
|
67
66
|
|
|
68
67
|
context.trace(`Matching the '${namedParameterString}' namedParameter against the '${namedParametersString}' named parameters...`);
|
|
69
68
|
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Element from "../element";
|
|
3
4
|
import Exception from "../exception";
|
|
4
5
|
|
|
5
6
|
import { define } from "../elements";
|
|
6
7
|
|
|
7
|
-
export default define(class Parameters {
|
|
8
|
-
constructor(string, array) {
|
|
9
|
-
|
|
10
|
-
this.array = array;
|
|
11
|
-
}
|
|
8
|
+
export default define(class Parameters extends Element {
|
|
9
|
+
constructor(context, string, node, array) {
|
|
10
|
+
super(context, string, node)
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
return this.string;
|
|
12
|
+
this.array = array;
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
getArray() {
|
|
@@ -34,7 +32,7 @@ export default define(class Parameters {
|
|
|
34
32
|
|
|
35
33
|
matchTerms(terms, context) {
|
|
36
34
|
const termsString = terms.getString(),
|
|
37
|
-
parametersString = this.
|
|
35
|
+
parametersString = this.getString(); ///
|
|
38
36
|
|
|
39
37
|
context.trace(`Matching the '${termsString}' terms against the '${parametersString}' parameters...`);
|
|
40
38
|
|