occam-furtle 2.0.342 → 3.0.2

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 (116) hide show
  1. package/example.js +5905 -1786
  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.js +210 -0
  7. package/lib/element/assignment/array.js +116 -14
  8. package/lib/element/assignment/object.js +116 -14
  9. package/lib/element/assignment/variable.js +121 -14
  10. package/lib/element/assignments/variable.js +120 -13
  11. package/lib/element/declaration/procedure.js +120 -12
  12. package/lib/element/error.js +118 -13
  13. package/lib/element/every.js +116 -13
  14. package/lib/element/expression.js +127 -20
  15. package/lib/element/label.js +119 -12
  16. package/lib/element/nodeQuery.js +116 -14
  17. package/lib/element/nodesQuery.js +116 -14
  18. package/lib/element/parameter/named.js +117 -15
  19. package/lib/element/parameter.js +116 -14
  20. package/lib/element/parameters/named.js +116 -14
  21. package/lib/element/parameters.js +115 -13
  22. package/lib/element/primitive.js +115 -13
  23. package/lib/element/procedure/anonymous.js +118 -16
  24. package/lib/element/procedure.js +118 -16
  25. package/lib/element/procedureCall.js +116 -14
  26. package/lib/element/reduce.js +116 -14
  27. package/lib/element/reference.js +119 -12
  28. package/lib/element/returnBlock.js +116 -14
  29. package/lib/element/some.js +115 -13
  30. package/lib/element/statement/return.js +120 -13
  31. package/lib/element/step.js +121 -14
  32. package/lib/element/term/bracketed.js +120 -13
  33. package/lib/element/term/comparison.js +117 -15
  34. package/lib/element/term/logical.js +118 -16
  35. package/lib/element/term/negated.js +116 -14
  36. package/lib/element/term.js +127 -18
  37. package/lib/element/terms.js +125 -14
  38. package/lib/element/ternary.js +117 -15
  39. package/lib/element/variable.js +127 -19
  40. package/lib/element.js +1 -8
  41. package/lib/index.js +5 -5
  42. package/lib/log.js +13 -12
  43. package/lib/metaTypeNames.js +26 -0
  44. package/lib/metaTypes.js +66 -0
  45. package/lib/nodeProperties.js +17 -21
  46. package/lib/nodeProperty.js +4 -7
  47. package/lib/utilities/context.js +8 -37
  48. package/lib/utilities/customGrammar.js +49 -0
  49. package/lib/utilities/element.js +91 -37
  50. package/lib/utilities/lineIndex.js +26 -0
  51. package/lib/utilities/node.js +1 -8
  52. package/lib/utilities/primitive.js +14 -5
  53. package/lib/utilities/string.js +30 -19
  54. package/lib/utilities/term.js +14 -5
  55. package/lib/utilities/terms.js +7 -3
  56. package/package.json +2 -2
  57. package/src/context/block.js +20 -32
  58. package/src/context/file/furtle.js +141 -0
  59. package/src/context/file/nominal.js +946 -0
  60. package/src/context/file.js +32 -209
  61. package/src/context.js +74 -0
  62. package/src/element/assignment/array.js +6 -8
  63. package/src/element/assignment/object.js +6 -8
  64. package/src/element/assignment/variable.js +7 -8
  65. package/src/element/assignments/variable.js +7 -8
  66. package/src/element/declaration/procedure.js +6 -6
  67. package/src/element/error.js +4 -6
  68. package/src/element/every.js +5 -6
  69. package/src/element/expression.js +6 -7
  70. package/src/element/label.js +6 -7
  71. package/src/element/nodeQuery.js +6 -8
  72. package/src/element/nodesQuery.js +6 -8
  73. package/src/element/parameter/named.js +7 -8
  74. package/src/element/parameter.js +6 -8
  75. package/src/element/parameters/named.js +8 -9
  76. package/src/element/parameters.js +6 -8
  77. package/src/element/primitive.js +5 -7
  78. package/src/element/procedure/anonymous.js +7 -9
  79. package/src/element/procedure.js +6 -8
  80. package/src/element/procedureCall.js +6 -8
  81. package/src/element/reduce.js +5 -7
  82. package/src/element/reference.js +6 -7
  83. package/src/element/returnBlock.js +5 -7
  84. package/src/element/some.js +5 -7
  85. package/src/element/statement/return.js +7 -8
  86. package/src/element/step.js +6 -7
  87. package/src/element/term/bracketed.js +7 -8
  88. package/src/element/term/comparison.js +6 -8
  89. package/src/element/term/logical.js +6 -8
  90. package/src/element/term/negated.js +6 -8
  91. package/src/element/term.js +12 -9
  92. package/src/element/terms.js +16 -9
  93. package/src/element/ternary.js +6 -8
  94. package/src/element/variable.js +24 -14
  95. package/src/element.js +0 -8
  96. package/src/index.js +1 -1
  97. package/src/log.js +11 -11
  98. package/src/metaTypeNames.js +5 -0
  99. package/src/metaTypes.js +71 -0
  100. package/src/nodeProperties.js +23 -32
  101. package/src/nodeProperty.js +5 -10
  102. package/src/utilities/context.js +7 -45
  103. package/src/utilities/customGrammar.js +40 -0
  104. package/src/utilities/element.js +158 -64
  105. package/src/utilities/lineIndex.js +21 -0
  106. package/src/utilities/node.js +0 -5
  107. package/src/utilities/primitive.js +22 -5
  108. package/src/utilities/string.js +33 -19
  109. package/src/utilities/term.js +22 -5
  110. package/src/utilities/terms.js +12 -4
  111. package/test/context/release.js +477 -46
  112. package/test/helpers/furtle.js +1 -1
  113. package/test/helpers/nominal.js +2 -3
  114. package/test/main.js +1 -1
  115. package/test/context/file.js +0 -127
  116. package/test/helpers/constants.js +0 -17
@@ -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
 
@@ -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
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
+ import Element from "../element";
5
6
  import elements from "../elements";
6
7
  import nullNode from "../nullNode";
7
8
 
@@ -10,17 +11,14 @@ import { NODE_TYPE, NODES_TYPE, STRING_TYPE, NUMBER_TYPE, BOOLEAN_TYPE } from "
10
11
 
11
12
  const { match } = arrayUtilities;
12
13
 
13
- export default define(class Primitive {
14
- constructor(string, type, value) {
15
- this.string = string;
14
+ export default define(class Primitive extends Element {
15
+ constructor(context, string, node, type, value) {
16
+ super(context, string, node)
17
+
16
18
  this.type = type;
17
19
  this.value = value;
18
20
  }
19
21
 
20
- getString() {
21
- return this.string;
22
- }
23
-
24
22
  getType() {
25
23
  return this.type;
26
24
  }
@@ -1,28 +1,26 @@
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 { variablesFromTermsAndParameters } from "../procedure";
7
8
 
8
- export default define(class AnonymousProcedure {
9
- constructor(string, type, parameters, returnBlock) {
10
- this.string = string;
9
+ export default define(class AnonymousProcedure extends Element {
10
+ constructor(context, string, node, type, parameters, returnBlock) {
11
+ super(context, string, node)
12
+
11
13
  this.type = type;
12
14
  this.parameters = parameters;
13
15
  this.returnBlock = returnBlock;
14
16
  }
15
17
 
16
- getString() {
17
- return this.string;
18
- }
19
-
20
18
  getType() {
21
19
  return this.type;
22
20
  }
23
21
 
24
22
  getParameters() {
25
- return this.paramters;
23
+ return this.parameters;
26
24
  }
27
25
 
28
26
  getReturnBlock() {
@@ -30,7 +28,7 @@ export default define(class AnonymousProcedure {
30
28
  }
31
29
 
32
30
  call(terms, context) {
33
- const anonymousProcedureString = this.string; ///
31
+ const anonymousProcedureString = this.getString(); ///
34
32
 
35
33
  context.trace(`Calling the '${anonymousProcedureString}' anonymous procedure...`);
36
34
 
@@ -1,24 +1,22 @@
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
 
6
7
  import { define } from "../elements";
7
8
  import { BOOLEAN_TYPE } from "../types";
8
9
 
9
- export default define(class Procedure {
10
- constructor(string, type, label, parameters, returnBlock) {
11
- this.string = string;
10
+ export default define(class Procedure extends Element {
11
+ constructor(context, string, node, type, label, parameters, returnBlock) {
12
+ super(context, string, node)
13
+
12
14
  this.type = type;
13
15
  this.label = label;
14
16
  this.parameters = parameters;
15
17
  this.returnBlock = returnBlock;
16
18
  }
17
19
 
18
- getString() {
19
- return this.string;
20
- }
21
-
22
20
  getType() {
23
21
  return this.type;
24
22
  }
@@ -49,7 +47,7 @@ export default define(class Procedure {
49
47
  matchName(name) { return this.label.matchName(name); }
50
48
 
51
49
  call(terms, context) {
52
- const procedureString = this.string; ///
50
+ const procedureString = this.getString(); ///
53
51
 
54
52
  context.trace(`Calling the '${procedureString}' procedure...`);
55
53
 
@@ -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 ProcedureCall {
8
- constructor(string, reference, terms) {
9
- this.string = string;
8
+ export default define(class ProcedureCall extends Element {
9
+ constructor(context, string, node, reference, terms) {
10
+ super(context, string, node)
11
+
10
12
  this.reference = reference;
11
13
  this.terms = terms;
12
14
  }
13
15
 
14
- getString() {
15
- return this.string;
16
- }
17
-
18
16
  getReference() {
19
17
  return this.reference;
20
18
  }
@@ -26,7 +24,7 @@ export default define(class ProcedureCall {
26
24
  getName() { return this.reference.getName(); }
27
25
 
28
26
  evaluate(context) {
29
- const procedureCallString = this.string; ///
27
+ const procedureCallString = this.getString(); ///
30
28
 
31
29
  context.trace(`Evaluating the '${procedureCallString}' procedure call...`);
32
30
 
@@ -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,18 +8,15 @@ import { define } from "../elements";
7
8
  import { NODES_TYPE } from "../types";
8
9
  import { termFromNode } from "../utilities/term";
9
10
 
10
- export default define(class Reduce {
11
- constructor(string, variable, initialExpression, anonymousProcedure) {
12
- this.string = string;
11
+ export default define(class Reduce extends Element {
12
+ constructor(context, string, node, variable, initialExpression, anonymousProcedure) {
13
+ super(context, string, node)
14
+
13
15
  this.variable = variable;
14
16
  this.initialExpression = initialExpression;
15
17
  this.anonymousProcedure = anonymousProcedure;
16
18
  }
17
19
 
18
- getString() {
19
- return this.string;
20
- }
21
-
22
20
  getVariable() {
23
21
  return this.variable;
24
22
  }
@@ -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 Reference {
6
- constructor(string, name) {
7
- this.string = string;
8
- this.name = name;
9
- }
7
+ export default define(class Reference 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() {
@@ -1,22 +1,20 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import Exception from "../exception";
4
5
  import BlockContext from "../context/block";
5
6
 
6
7
  import { define } from "../elements";
7
8
 
8
- export default define(class ReturnBlock {
9
- constructor(string, steps, nonsensical, returnStatement) {
10
- this.string = string;
9
+ export default define(class ReturnBlock extends Element {
10
+ constructor(context, string, node, steps, nonsensical, returnStatement) {
11
+ super(context, string, node)
12
+
11
13
  this.steps = steps;
12
14
  this.nonsensical = nonsensical;
13
15
  this.returnStatement = returnStatement;
14
16
  }
15
17
 
16
- getString() {
17
- return this.string;
18
- }
19
-
20
18
  getSteps() {
21
19
  return this.steps;
22
20
  }
@@ -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 { NODES_TYPE, BOOLEAN_TYPE } from "../types";
8
9
  import { termFromNode, termFromBoolean } from "../utilities/term";
9
10
 
10
- export default define(class Some {
11
- constructor(string, variable, anonymousProcedure) {
12
- this.string = string;
11
+ export default define(class Some extends Element {
12
+ constructor(context, string, node, variable, anonymousProcedure) {
13
+ super(context, string, node)
14
+
13
15
  this.variable = variable;
14
16
  this.anonymousProcedure = anonymousProcedure;
15
17
  }
16
18
 
17
- getString() {
18
- return this.string;
19
- }
20
-
21
19
  getVariable() {
22
20
  return this.variable;
23
21
  }
@@ -2,14 +2,13 @@
2
2
 
3
3
  import { define } from "../../elements";
4
4
 
5
- export default define(class ReturnStatement {
6
- constructor(string, term) {
7
- this.string = string;
8
- this.term = term;
9
- }
5
+ import Element from "../../element";
10
6
 
11
- getString() {
12
- return this.string;
7
+ export default define(class ReturnStatement extends Element {
8
+ constructor(context, string, node, term) {
9
+ super(context, string, node)
10
+
11
+ this.term = term;
13
12
  }
14
13
 
15
14
  getExpression() {
@@ -19,7 +18,7 @@ export default define(class ReturnStatement {
19
18
  evaluate(context) {
20
19
  let term;
21
20
 
22
- const returnStatementString = this.string; ///
21
+ const returnStatementString = this.getString(); ///
23
22
 
24
23
  context.trace(`Evaluating the '${returnStatementString}' return statement...`);
25
24
 
@@ -1,19 +1,18 @@
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 Step {
6
- constructor(string, arrayAssignment, objectAssigment, variablessAssignment) {
7
- this.string = string;
7
+ export default define(class Step extends Element {
8
+ constructor(context, string, node, arrayAssignment, objectAssigment, variablessAssignment) {
9
+ super(context, string, node)
10
+
8
11
  this.arrayAssignment = arrayAssignment;
9
12
  this.objectAssigment = objectAssigment;
10
13
  this.variablessAssignment = variablessAssignment;
11
14
  }
12
15
 
13
- getString() {
14
- return this.string;
15
- }
16
-
17
16
  getArrayAssignment() {
18
17
  return this.arrayAssignment;
19
18
  }
@@ -2,14 +2,13 @@
2
2
 
3
3
  import { define } from "../../elements";
4
4
 
5
- export default define(class BracketedTerm {
6
- constructor(string, term) {
7
- this.string = string;
8
- this.term = term;
9
- }
5
+ import Element from "../../element";
10
6
 
11
- getString() {
12
- return this.string;
7
+ export default define(class BracketedTerm extends Element {
8
+ constructor(context, string, node, term) {
9
+ super(context, string, node)
10
+
11
+ this.term = term;
13
12
  }
14
13
 
15
14
  getTerm() {
@@ -21,7 +20,7 @@ export default define(class BracketedTerm {
21
20
  evaluate(context) {
22
21
  let term;
23
22
 
24
- const bracketedTermString = this.string; ///
23
+ const bracketedTermString = this.getString(); ///
25
24
 
26
25
  context.trace(`Evaluating the '${bracketedTermString}' bracketed term...`);
27
26
 
@@ -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 { termFromBoolean } from "../../utilities/term";
7
8
 
8
- export default define(class ComparisonTerm {
9
- constructor(string, negated, leftTerm, rightTerm) {
10
- this.string = string;
9
+ export default define(class ComparisonTerm extends Element {
10
+ constructor(context, string, node, negated, leftTerm, rightTerm) {
11
+ super(context, string, node)
12
+
11
13
  this.negated = negated;
12
14
  this.leftTerm = leftTerm;
13
15
  this.rightTerm = rightTerm;
14
16
  }
15
17
 
16
- getString() {
17
- return this.string;
18
- }
19
-
20
18
  isNegated() {
21
19
  return this.negated;
22
20
  }
@@ -32,7 +30,7 @@ export default define(class ComparisonTerm {
32
30
  evaluate(context) {
33
31
  let term;
34
32
 
35
- const comparisonTermString = this.string; ///
33
+ const comparisonTermString = this.getString(); ///
36
34
 
37
35
  context.trace(`Evaluating the '${comparisonTermString}' comparison term...`);
38
36
 
@@ -1,24 +1,22 @@
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 { BOOLEAN_TYPE } from "../../types";
7
8
  import { termFromBoolean } from "../../utilities/term";
8
9
 
9
- export default define(class LogicalTerm {
10
- constructor(string, type, disjunction, leftTerm, rightTerm) {
11
- this.string = string;
10
+ export default define(class LogicalTerm extends Element {
11
+ constructor(context, string, node, type, disjunction, leftTerm, rightTerm) {
12
+ super(context, string, node)
13
+
12
14
  this.type = type;
13
15
  this.disjunction = disjunction;
14
16
  this.leftTerm = leftTerm;
15
17
  this.rightTerm = rightTerm;
16
18
  }
17
19
 
18
- getString() {
19
- return this.string;
20
- }
21
-
22
20
  getType() {
23
21
  return this.type;
24
22
  }
@@ -38,7 +36,7 @@ export default define(class LogicalTerm {
38
36
  evaluate(context) {
39
37
  let term;
40
38
 
41
- const logicalTermString = this.string; ///
39
+ const logicalTermString = this.getString(); ///
42
40
 
43
41
  context.trace(`Evaluating the '${logicalTermString}' logical term...`);
44
42
 
@@ -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 { BOOLEAN_TYPE } from "../../types";
7
8
  import { termFromBoolean } from "../../utilities/term";
8
9
 
9
- export default define(class NegatedTerm {
10
- constructor(string, type, term) {
11
- this.string = string;
10
+ export default define(class NegatedTerm extends Element {
11
+ constructor(context, string, node, type, term) {
12
+ super(context, string, node)
13
+
12
14
  this.type = type;
13
15
  this.term = term;
14
16
  }
15
17
 
16
- getString() {
17
- return this.string;
18
- }
19
-
20
18
  getType() {
21
19
  return this.type;
22
20
  }
@@ -28,7 +26,7 @@ export default define(class NegatedTerm {
28
26
  evaluate(context) {
29
27
  let term;
30
28
 
31
- const negatedTermString = this.string; ///
29
+ const negatedTermString = this.getString(); ///
32
30
 
33
31
  context.trace(`Evaluating the '${negatedTermString}' negated term...`);
34
32