occam-furtle 3.0.461 → 3.0.462

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 (49) hide show
  1. package/lib/element/assignment/list.js +2 -2
  2. package/lib/element/assignment/object.js +6 -5
  3. package/lib/element/binding.js +5 -4
  4. package/lib/element/bindings/named.js +15 -8
  5. package/lib/element/bindings.js +15 -9
  6. package/lib/element/contains.js +4 -4
  7. package/lib/element/endsWith.js +4 -4
  8. package/lib/element/lengthOf.js +4 -4
  9. package/lib/element/nodeQuery.js +7 -7
  10. package/lib/element/nodesQuery.js +6 -6
  11. package/lib/element/primitive.js +3 -3
  12. package/lib/element/returnStatement.js +3 -3
  13. package/lib/element/startsWith.js +4 -4
  14. package/lib/element/term/bracketed.js +3 -3
  15. package/lib/element/term/comparison.js +4 -4
  16. package/lib/element/term/logical.js +5 -5
  17. package/lib/element/term/negated.js +4 -4
  18. package/lib/element/term.js +8 -10
  19. package/lib/element/terms.js +3 -3
  20. package/lib/element/toInteger.js +5 -5
  21. package/lib/element/tryInteger.js +4 -4
  22. package/lib/element/value.js +4 -6
  23. package/lib/element/values.js +3 -3
  24. package/lib/element/variable.js +4 -4
  25. package/package.json +2 -2
  26. package/src/element/assignment/list.js +1 -1
  27. package/src/element/assignment/object.js +6 -6
  28. package/src/element/binding.js +5 -3
  29. package/src/element/bindings/named.js +22 -10
  30. package/src/element/bindings.js +20 -10
  31. package/src/element/contains.js +3 -3
  32. package/src/element/endsWith.js +3 -3
  33. package/src/element/lengthOf.js +3 -3
  34. package/src/element/nodeQuery.js +6 -6
  35. package/src/element/nodesQuery.js +5 -5
  36. package/src/element/primitive.js +2 -2
  37. package/src/element/returnStatement.js +2 -2
  38. package/src/element/startsWith.js +3 -3
  39. package/src/element/term/bracketed.js +2 -2
  40. package/src/element/term/comparison.js +3 -3
  41. package/src/element/term/logical.js +4 -4
  42. package/src/element/term/negated.js +3 -3
  43. package/src/element/term.js +7 -11
  44. package/src/element/terms.js +2 -2
  45. package/src/element/toInteger.js +4 -4
  46. package/src/element/tryInteger.js +3 -3
  47. package/src/element/value.js +3 -7
  48. package/src/element/values.js +2 -2
  49. package/src/element/variable.js +3 -3
@@ -24,7 +24,7 @@ export default define(class StartsWith extends Element {
24
24
  return this.substring;
25
25
  }
26
26
 
27
- evaluate(context) {
27
+ evaluate(context, back, forward) {
28
28
  let value;
29
29
 
30
30
  const startsWithString = this.getString(); ///
@@ -41,7 +41,7 @@ export default define(class StartsWith extends Element {
41
41
  message = `The '${valueString}' value's '${valueType}' type should be '${STRING_TYPE_NAME}'.`,
42
42
  exception = Exception.fromMessage(message);
43
43
 
44
- throw exception;
44
+ return back(exception);
45
45
  }
46
46
 
47
47
  const string = value.getString(),
@@ -53,7 +53,7 @@ export default define(class StartsWith extends Element {
53
53
 
54
54
  context.debug(`...evaluated the '${startsWithString}' function as '${valueString}'.`);
55
55
 
56
- return value;
56
+ return forward(value);
57
57
  }
58
58
 
59
59
  static name = "StartsWith";
@@ -17,7 +17,7 @@ export default define(class BracketedTerm extends Element {
17
17
 
18
18
  getType() { return this.term.getType(); }
19
19
 
20
- evaluate(context) {
20
+ evaluate(context, back, forward) {
21
21
  let value;
22
22
 
23
23
  const bracketedTermString = this.getString(); ///
@@ -30,7 +30,7 @@ export default define(class BracketedTerm extends Element {
30
30
 
31
31
  context.debug(`...evaluated the '${bracketedTermString}' bracketed term as '${valueString}'.`);
32
32
 
33
- return value;
33
+ return forward(value);
34
34
  }
35
35
 
36
36
  static name = "BracketedTerm";
@@ -28,7 +28,7 @@ export default define(class ComparisonTerm extends Element {
28
28
  return this.rightTerm;
29
29
  }
30
30
 
31
- evaluate(context) {
31
+ evaluate(context, back, forward) {
32
32
  let value;
33
33
 
34
34
  const comparisonTermString = this.getString(); ///
@@ -49,7 +49,7 @@ export default define(class ComparisonTerm extends Element {
49
49
  message = `The '${leftValueString}' left term's type is '${leftValueTypeString}' whereas the '${rightValueString}' right term's type is '${rightValueTypeString}'.`,
50
50
  exception = Exception.fromMessage(message);
51
51
 
52
- throw exception;
52
+ return back(exception);
53
53
  }
54
54
 
55
55
  const leftValueEqualToRightValue = leftValue.isEqualTo(rightValue);
@@ -66,7 +66,7 @@ export default define(class ComparisonTerm extends Element {
66
66
 
67
67
  context.debug(`...evaluated the '${comparisonTermString}' comparison value as '${valueString}'.`);
68
68
 
69
- return value;
69
+ return forward(value);
70
70
  }
71
71
 
72
72
  static name = "ComparisonTerm";
@@ -34,7 +34,7 @@ export default define(class LogicalTerm extends Element {
34
34
  return this.rightTerm;
35
35
  }
36
36
 
37
- evaluate(context) {
37
+ evaluate(context, back, forward) {
38
38
  let value;
39
39
 
40
40
  const logicalTermString = this.getString(); ///
@@ -53,7 +53,7 @@ export default define(class LogicalTerm extends Element {
53
53
  message = `The '${leftValueString}' left term's type is '${leftValueType}' when it should be of type '${BOOLEAN_TYPE_NAME}'.`,
54
54
  exception = Exception.fromMessage(message);
55
55
 
56
- throw exception;
56
+ return back(exception);
57
57
  }
58
58
 
59
59
  if (!rightValueTypeBooleanType) {
@@ -61,7 +61,7 @@ export default define(class LogicalTerm extends Element {
61
61
  message = `The '${rightValueString}' right term's type is '${rightValueType}' when it should be of type '${BOOLEAN_TYPE_NAME}'.`,
62
62
  exception = Exception.fromMessage(message);
63
63
 
64
- throw exception;
64
+ return back(exception);
65
65
  }
66
66
 
67
67
  const leftValuePrimitiveValue = leftValue.getPrimitiveValue(),
@@ -78,7 +78,7 @@ export default define(class LogicalTerm extends Element {
78
78
 
79
79
  context.debug(`...evaluated the '${logicalTermString}' logical value as '${valueString}'.`);
80
80
 
81
- return value;
81
+ return forward(value);
82
82
  }
83
83
 
84
84
  static name = "LogicalTerm";
@@ -24,7 +24,7 @@ export default define(class NegatedTerm extends Element {
24
24
  return this.term;
25
25
  }
26
26
 
27
- evaluate(context) {
27
+ evaluate(context, back, forward) {
28
28
  let value;
29
29
 
30
30
  const negatedTermString = this.getString(); ///
@@ -41,7 +41,7 @@ export default define(class NegatedTerm extends Element {
41
41
  message = `The '${valueString}' left value's type is '${valueType}' when it should be of type '${BOOLEAN_TYPE_NAME}'.`,
42
42
  exception = Exception.fromMessage(message);
43
43
 
44
- throw exception;
44
+ return back(exception);
45
45
  }
46
46
 
47
47
  let boolean;
@@ -58,7 +58,7 @@ export default define(class NegatedTerm extends Element {
58
58
 
59
59
  context.debug(`...evaluated the '${negatedTermString}' negated value as '${valueString}'.`);
60
60
 
61
- return value;
61
+ return forward(value);
62
62
  }
63
63
 
64
64
  static name = "NegatedTerm";
@@ -76,26 +76,22 @@ export default define(class Term extends Element {
76
76
  return boolean;
77
77
  }
78
78
 
79
- evaluate(context) {
80
- let value;
81
-
79
+ evaluate(context, back, forward) {
82
80
  if (false) {
83
81
  ///
84
82
  } else if (this.variable !== null) {
85
- value = this.variable.evaluate(context);
83
+ return this.variable.evaluate(context, back, forward);
86
84
  } else if (this.primitive !== null) {
87
- value = this.primitive.evaluate(context);
85
+ return this.primitive.evaluate(context, back, forward);
88
86
  } else if (this.negatedTerm !== null) {
89
- value = this.negatedTerm.evaluate(context);
87
+ return this.negatedTerm.evaluate(context, back, forward);
90
88
  } else if (this.logicalTerm !== null) {
91
- value = this.logicalTerm.evaluate(context);
89
+ return this.logicalTerm.evaluate(context, back, forward);
92
90
  } else if (this.bracketedTerm !== null) {
93
- value = this.bracketedTerm.evaluate(context);
91
+ return this.bracketedTerm.evaluate(context, back, forward);
94
92
  } else if (this.comparisonTerm !== null) {
95
- value = this.comparisonTerm.evaluate(context);
93
+ return this.comparisonTerm.evaluate(context, back, forward);
96
94
  }
97
-
98
- return value;
99
95
  }
100
96
 
101
97
  isEqualTo(term) {
@@ -38,7 +38,7 @@ export default define(class Terms extends Element {
38
38
 
39
39
  forEachTerm(callback) { this.array.forEach(callback); }
40
40
 
41
- evaluate(context) {
41
+ evaluate(context, back, forwarsd) {
42
42
  const valuesArray = this.mapTerm((term) => {
43
43
  const value = term.evaluate(context);
44
44
 
@@ -55,7 +55,7 @@ export default define(class Terms extends Element {
55
55
  const { Values } = elements,
56
56
  values = new Values(context, string, node, breakPoint, array);
57
57
 
58
- return values;
58
+ return forwarsd(values);
59
59
  }
60
60
 
61
61
  static name = "Terms";
@@ -20,7 +20,7 @@ export default define(class ToInteger extends Element {
20
20
  return this.variable;
21
21
  }
22
22
 
23
- evaluate(context) {
23
+ evaluate(context, back, forward) {
24
24
  let value;
25
25
 
26
26
  const toIntegerString = this.getString(); ///
@@ -41,7 +41,7 @@ export default define(class ToInteger extends Element {
41
41
  const message = `Cannot evaluate the '${toIntegerString}' function because the '${valueTypeName}' type of its argument is not supported.`,
42
42
  exception = Exception.fromMessage(message);
43
43
 
44
- throw exception;
44
+ return back(exception);
45
45
  }
46
46
 
47
47
  case STRING_TYPE_NAME:
@@ -53,7 +53,7 @@ export default define(class ToInteger extends Element {
53
53
  const message = `Cannot evaluate the '${toIntegerString}' function because the '${valueTypeName}' value is not an integer.`,
54
54
  exception = Exception.fromMessage(message);
55
55
 
56
- throw exception;
56
+ return back(exception);
57
57
  }
58
58
 
59
59
  integer = Number(valueString);
@@ -68,7 +68,7 @@ export default define(class ToInteger extends Element {
68
68
 
69
69
  context.debug(`...evaluated the '${toIntegerString}' function as '${valueString}'.`);
70
70
 
71
- return value;
71
+ return forward(value);
72
72
  }
73
73
 
74
74
  static name = "ToInteger";
@@ -21,7 +21,7 @@ export default define(class TryInteger extends Element {
21
21
  return this.variable;
22
22
  }
23
23
 
24
- evaluate(context) {
24
+ evaluate(context, back, forward) {
25
25
  let value;
26
26
 
27
27
  const tryIntegerString = this.getString(); ///
@@ -42,7 +42,7 @@ export default define(class TryInteger extends Element {
42
42
  const message = `Cannot evaluate the '${tryIntegerString}' function because the '${valueTypeName}' type of its argument is not supported.`,
43
43
  exception = Exception.fromMessage(message);
44
44
 
45
- throw exception;
45
+ return back(exception);
46
46
  }
47
47
 
48
48
  case STRING_TYPE_NAME:
@@ -61,7 +61,7 @@ export default define(class TryInteger extends Element {
61
61
 
62
62
  context.debug(`...evaluated the '${tryIntegerString}' function as '${valueString}'.`);
63
63
 
64
- return value;
64
+ return forward(value);
65
65
  }
66
66
 
67
67
  static name = "TryInteger";
@@ -50,18 +50,14 @@ export default define(class Value extends Element {
50
50
  return boolean;
51
51
  }
52
52
 
53
- evaluate(context) {
54
- let value;
55
-
53
+ evaluate(context, back, forward) {
56
54
  if (false) {
57
55
  ///
58
56
  } else if (this.variable !== null) {
59
- value = this.variable.evaluate(context);
57
+ return this.variable.evaluate(context, back, forward);
60
58
  } else if (this.primitive !== null) {
61
- value = this.primitive.evaluate(context);
59
+ return this.primitive.evaluate(context, back, forward);
62
60
  }
63
-
64
- return value;
65
61
  }
66
62
 
67
63
  isEqualTo(value) {
@@ -36,7 +36,7 @@ export default define(class Values extends Element {
36
36
 
37
37
  forEachValue(callback) { this.array.forEach(callback); }
38
38
 
39
- evaluate(context) {
39
+ evaluate(context, back, forward) {
40
40
  const valuesArray = this.mapValue((value) => {
41
41
  value = value.evaluate(context);
42
42
 
@@ -52,7 +52,7 @@ export default define(class Values extends Element {
52
52
 
53
53
  const values = new Values(context, string, node, breakPoint, array);
54
54
 
55
- return values;
55
+ return forward(values);
56
56
  }
57
57
 
58
58
  static name = "Values";
@@ -34,7 +34,7 @@ export default define(class Variable extends Element {
34
34
  return comparesToVariableName;
35
35
  }
36
36
 
37
- evaluate(context) {
37
+ evaluate(context, back, forward) {
38
38
  const variableString = this.getString(); ///
39
39
 
40
40
  context.trace(`Evaluating the '${variableString}' variable...`);
@@ -47,7 +47,7 @@ export default define(class Variable extends Element {
47
47
  const message = `The '${variableString}' variable is not present.'`,
48
48
  exception = Exception.fromMessage(message);
49
49
 
50
- throw exception;
50
+ return back(exception);
51
51
  }
52
52
 
53
53
  const variable = context.findVariableByVariableName(variableName),
@@ -56,7 +56,7 @@ export default define(class Variable extends Element {
56
56
 
57
57
  context.debug(`...evaluated the '${variableString}' variable as the '${valueString}' value.`);
58
58
 
59
- return value;
59
+ return forward(value);
60
60
  }
61
61
 
62
62
  assign(value, context, back, forward) {