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.
Files changed (118) hide show
  1. package/example.js +6319 -2036
  2. package/lib/context/block.js +81 -41
  3. package/lib/context/file/furtle.js +260 -0
  4. package/lib/context/file/nominal.js +956 -0
  5. package/lib/context/file.js +146 -271
  6. package/lib/context/release.js +675 -0
  7. package/lib/context.js +210 -0
  8. package/lib/element/assignment/array.js +117 -15
  9. package/lib/element/assignment/object.js +119 -17
  10. package/lib/element/assignment/variable.js +121 -14
  11. package/lib/element/assignments/variable.js +120 -13
  12. package/lib/element/declaration/procedure.js +120 -12
  13. package/lib/element/error.js +118 -13
  14. package/lib/element/every.js +116 -13
  15. package/lib/element/expression.js +134 -68
  16. package/lib/element/label.js +119 -12
  17. package/lib/element/nodeQuery.js +120 -18
  18. package/lib/element/nodesQuery.js +120 -18
  19. package/lib/element/parameter/named.js +117 -15
  20. package/lib/element/parameter.js +116 -14
  21. package/lib/element/parameters/named.js +116 -14
  22. package/lib/element/parameters.js +115 -13
  23. package/lib/element/primitive.js +115 -63
  24. package/lib/element/procedure/anonymous.js +118 -16
  25. package/lib/element/procedure.js +118 -16
  26. package/lib/element/procedureCall.js +116 -14
  27. package/lib/element/reduce.js +116 -14
  28. package/lib/element/reference.js +119 -12
  29. package/lib/element/returnBlock.js +116 -14
  30. package/lib/element/some.js +117 -15
  31. package/lib/element/statement/return.js +120 -13
  32. package/lib/element/step.js +121 -14
  33. package/lib/element/term/bracketed.js +120 -13
  34. package/lib/element/term/comparison.js +117 -15
  35. package/lib/element/term/logical.js +119 -17
  36. package/lib/element/term/negated.js +119 -15
  37. package/lib/element/term.js +131 -45
  38. package/lib/element/terms.js +125 -14
  39. package/lib/element/ternary.js +118 -16
  40. package/lib/element/variable.js +127 -19
  41. package/lib/element.js +1 -8
  42. package/lib/index.js +9 -1
  43. package/lib/log.js +13 -12
  44. package/lib/metaTypeNames.js +26 -0
  45. package/lib/metaTypes.js +66 -0
  46. package/lib/node/expression.js +8 -15
  47. package/lib/nodeProperties.js +17 -21
  48. package/lib/nodeProperty.js +4 -7
  49. package/lib/utilities/context.js +8 -37
  50. package/lib/utilities/customGrammar.js +49 -0
  51. package/lib/utilities/element.js +110 -60
  52. package/lib/utilities/lineIndex.js +26 -0
  53. package/lib/utilities/primitive.js +14 -5
  54. package/lib/utilities/string.js +41 -37
  55. package/lib/utilities/term.js +14 -5
  56. package/lib/utilities/terms.js +7 -3
  57. package/package.json +2 -2
  58. package/src/context/block.js +20 -32
  59. package/src/context/file/furtle.js +141 -0
  60. package/src/context/file/nominal.js +946 -0
  61. package/src/context/file.js +32 -209
  62. package/src/context/release.js +653 -0
  63. package/src/context.js +74 -0
  64. package/src/element/assignment/array.js +8 -9
  65. package/src/element/assignment/object.js +12 -11
  66. package/src/element/assignment/variable.js +7 -8
  67. package/src/element/assignments/variable.js +7 -8
  68. package/src/element/declaration/procedure.js +6 -6
  69. package/src/element/error.js +4 -6
  70. package/src/element/every.js +5 -6
  71. package/src/element/expression.js +13 -33
  72. package/src/element/label.js +6 -7
  73. package/src/element/nodeQuery.js +12 -14
  74. package/src/element/nodesQuery.js +12 -14
  75. package/src/element/parameter/named.js +7 -8
  76. package/src/element/parameter.js +6 -8
  77. package/src/element/parameters/named.js +8 -9
  78. package/src/element/parameters.js +6 -8
  79. package/src/element/primitive.js +5 -57
  80. package/src/element/procedure/anonymous.js +7 -9
  81. package/src/element/procedure.js +6 -8
  82. package/src/element/procedureCall.js +6 -8
  83. package/src/element/reduce.js +5 -7
  84. package/src/element/reference.js +6 -7
  85. package/src/element/returnBlock.js +5 -7
  86. package/src/element/some.js +9 -9
  87. package/src/element/statement/return.js +7 -8
  88. package/src/element/step.js +6 -7
  89. package/src/element/term/bracketed.js +7 -8
  90. package/src/element/term/comparison.js +6 -8
  91. package/src/element/term/logical.js +12 -12
  92. package/src/element/term/negated.js +11 -9
  93. package/src/element/term.js +16 -17
  94. package/src/element/terms.js +16 -9
  95. package/src/element/ternary.js +8 -9
  96. package/src/element/variable.js +24 -14
  97. package/src/element.js +0 -8
  98. package/src/index.js +2 -0
  99. package/src/log.js +11 -11
  100. package/src/metaTypeNames.js +5 -0
  101. package/src/metaTypes.js +71 -0
  102. package/src/node/expression.js +9 -17
  103. package/src/nodeProperties.js +23 -32
  104. package/src/nodeProperty.js +5 -10
  105. package/src/utilities/context.js +7 -45
  106. package/src/utilities/customGrammar.js +40 -0
  107. package/src/utilities/element.js +181 -94
  108. package/src/utilities/lineIndex.js +21 -0
  109. package/src/utilities/primitive.js +22 -5
  110. package/src/utilities/string.js +42 -36
  111. package/src/utilities/term.js +22 -5
  112. package/src/utilities/terms.js +12 -4
  113. package/test/helpers/furtle.js +1 -1
  114. package/test/helpers/nominal.js +2 -3
  115. package/test/main.js +4 -3
  116. package/test/context/file.js +0 -127
  117. package/test/context/release.js +0 -151
  118. 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
- this.string = string;
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.string; ///
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 nodes = term.getNodes(),
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
- this.string = string;
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.string; ///
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 node = term.getNode(),
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 node = term.getNode(),
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 node = term.getNode(),
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
- this.string = string;
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.string; ///
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
- export default define(class VariableAssignments {
6
- constructor(string, array) {
7
- this.string = string;
8
- this.array = array;
9
- }
5
+ import Element from "../../element";
10
6
 
11
- getString() {
12
- return this.string;
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.string; ///
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
- export default define(class ProcedureDeclaration {
6
- constructor(string, procedure) {
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
  }
@@ -2,13 +2,11 @@
2
2
 
3
3
  import { define } from "../elements";
4
4
 
5
- export default define(class Error {
6
- constructor(string) {
7
- this.string = string;
8
- }
5
+ import Element from "../element";
9
6
 
10
- getString() {
11
- return this.string;
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) {
@@ -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, variable, primitive, some, every, reduce, ternary, nodeQuery, nodesQuery, returnBlock, procedureCall) {
7
- this.string = string;
8
- this.variable = variable;
9
- this.primitive = primitive;
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
- getString() {
21
- return this.string;
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.variable !== null) {
80
- type = this.variable.getType();
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.variable !== null) {
110
- term = this.variable.evaluate(context);
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) {
@@ -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
- this.string = string;
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
- getString() {
12
- return this.string;
11
+ this.name = name;
13
12
  }
14
13
 
15
14
  getName() {
@@ -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
- this.string = string;
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.string; ///
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
- const termNode = term.getNode();
56
+ let node;
57
+
58
+ const primitiveValue = term.getPrimitiveValue();
59
59
 
60
- if (termNode === null) {
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
- this.string = string;
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.string; ///
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
- const termNode = term.getNode();
52
+ let node;
53
+
54
+ const primitiveValue = term.getPrimitiveValue();
55
55
 
56
- if (termNode === null) {
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
- export default define(class NamedParameter {
8
- constructor(string, type, name, alias) {
9
- this.string = string;
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.string; ///
47
+ namedParameterString = this.getString(); ///
49
48
 
50
49
  context.trace(`Matching the '${termString}' term against the '${namedParameterString}' named parameter...`);
51
50
 
@@ -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
- this.string = string;
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.string; ///
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
- export default define(class NamedParameters {
8
- constructor(string, array) {
9
- this.string = string;
10
- this.array = array;
11
- }
7
+ import Element from "../../element";
12
8
 
13
- getString() {
14
- return this.string;
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.string; ///
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.string; ///
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
- this.string = string;
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
- getString() {
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.string; ///
35
+ parametersString = this.getString(); ///
38
36
 
39
37
  context.trace(`Matching the '${termsString}' terms against the '${parametersString}' parameters...`);
40
38