occam-furtle 2.0.280 → 2.0.283

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 (138) hide show
  1. package/README.md +0 -11
  2. package/lib/constants.js +29 -1
  3. package/lib/context/block.js +15 -1
  4. package/lib/context/file.js +129 -52
  5. package/lib/element/assignment/array.js +186 -0
  6. package/lib/element/assignment/object.js +244 -0
  7. package/lib/element/assignment/variable.js +144 -0
  8. package/lib/element/assignments/variable.js +158 -0
  9. package/lib/element/block/return.js +198 -0
  10. package/lib/element/comparison.js +179 -0
  11. package/lib/element/declaration/procedure.js +139 -0
  12. package/lib/{dom → element}/error.js +12 -4
  13. package/lib/element/every.js +179 -0
  14. package/lib/element/expression/bitwise.js +186 -0
  15. package/lib/element/expression/bracketed.js +149 -0
  16. package/lib/element/expression/negated.js +166 -0
  17. package/lib/element/expression.js +578 -0
  18. package/lib/element/expressions.js +210 -0
  19. package/lib/{dom → element}/label.js +4 -4
  20. package/lib/element/parameter/named.js +198 -0
  21. package/lib/element/parameter.js +165 -0
  22. package/lib/element/parameters/named.js +220 -0
  23. package/lib/element/parameters.js +198 -0
  24. package/lib/element/procedure/anonymous.js +181 -0
  25. package/lib/element/procedure.js +212 -0
  26. package/lib/element/procedureCall.js +166 -0
  27. package/lib/element/query/node.js +186 -0
  28. package/lib/element/query/nodes.js +179 -0
  29. package/lib/element/reduce.js +181 -0
  30. package/lib/element/reference.js +138 -0
  31. package/lib/element/some.js +179 -0
  32. package/lib/element/statement/return.js +138 -0
  33. package/lib/element/step.js +154 -0
  34. package/lib/element/ternary.js +171 -0
  35. package/lib/element/variable.js +279 -0
  36. package/lib/elements.js +27 -0
  37. package/lib/index.js +13 -5
  38. package/lib/log.js +202 -0
  39. package/lib/preamble.js +32 -32
  40. package/lib/process/verify.js +289 -0
  41. package/lib/utilities/context.js +46 -5
  42. package/lib/utilities/element.js +3 -0
  43. package/lib/utilities/node.js +71 -0
  44. package/package.json +3 -1
  45. package/src/constants.js +16 -0
  46. package/src/context/block.js +10 -0
  47. package/src/context/file.js +97 -55
  48. package/src/{dom → element}/assignment/array.js +6 -6
  49. package/src/{dom → element}/assignment/object.js +8 -8
  50. package/src/{dom → element}/assignment/variable.js +4 -4
  51. package/src/{dom → element}/assignments/variable.js +5 -5
  52. package/src/{dom → element}/block/return.js +5 -5
  53. package/src/{dom → element}/comparison.js +5 -5
  54. package/src/{dom → element}/declaration/procedure.js +22 -4
  55. package/src/{dom → element}/error.js +13 -4
  56. package/src/{dom → element}/every.js +6 -6
  57. package/src/{dom → element}/expression/bitwise.js +5 -5
  58. package/src/{dom → element}/expression/bracketed.js +4 -4
  59. package/src/{dom → element}/expression/negated.js +5 -5
  60. package/src/{dom → element}/expression.js +4 -4
  61. package/src/{dom → element}/expressions.js +6 -6
  62. package/src/{dom → element}/label.js +4 -4
  63. package/src/{dom → element}/parameter/named.js +4 -4
  64. package/src/{dom → element}/parameter.js +4 -4
  65. package/src/{dom → element}/parameters/named.js +5 -5
  66. package/src/{dom → element}/parameters.js +5 -5
  67. package/src/{dom → element}/procedure/anonymous.js +4 -4
  68. package/src/{dom → element}/procedure.js +5 -5
  69. package/src/{dom → element}/procedureCall.js +4 -4
  70. package/src/{dom → element}/query/node.js +5 -5
  71. package/src/{dom → element}/query/nodes.js +5 -5
  72. package/src/{dom → element}/reduce.js +5 -5
  73. package/src/{dom → element}/reference.js +4 -4
  74. package/src/{dom → element}/some.js +6 -6
  75. package/src/{dom → element}/statement/return.js +4 -4
  76. package/src/{dom → element}/step.js +4 -4
  77. package/src/{dom → element}/ternary.js +4 -4
  78. package/src/{dom → element}/variable.js +5 -5
  79. package/src/elements.js +13 -0
  80. package/src/index.js +6 -2
  81. package/src/log.js +139 -0
  82. package/src/preamble.js +31 -31
  83. package/src/process/verify.js +157 -0
  84. package/src/utilities/context.js +45 -2
  85. package/src/utilities/element.js +0 -0
  86. package/src/utilities/{string.js → node.js} +9 -14
  87. package/test/Free and bound variables.ftl +112 -0
  88. package/test/context/file.js +127 -0
  89. package/{src/example → test}/context/release.js +60 -12
  90. package/test/helpers/constants.js +17 -0
  91. package/{src/example/utilities → test/helpers}/expressions.js +8 -4
  92. package/{src/example/utilities → test/helpers}/furtle.js +8 -4
  93. package/{src/example/utilities → test/helpers}/grammar.js +8 -4
  94. package/{src/example/utilities → test/helpers}/nominal.js +10 -5
  95. package/{src/example/utilities → test/helpers}/procedure.js +6 -2
  96. package/test/main.js +55 -0
  97. package/example/Free and bound variables.ftl +0 -75
  98. package/lib/dom/assignment/array.js +0 -186
  99. package/lib/dom/assignment/object.js +0 -244
  100. package/lib/dom/assignment/variable.js +0 -144
  101. package/lib/dom/assignments/variable.js +0 -158
  102. package/lib/dom/block/return.js +0 -198
  103. package/lib/dom/comparison.js +0 -179
  104. package/lib/dom/declaration/procedure.js +0 -125
  105. package/lib/dom/every.js +0 -179
  106. package/lib/dom/expression/bitwise.js +0 -186
  107. package/lib/dom/expression/bracketed.js +0 -149
  108. package/lib/dom/expression/negated.js +0 -166
  109. package/lib/dom/expression.js +0 -578
  110. package/lib/dom/expressions.js +0 -210
  111. package/lib/dom/parameter/named.js +0 -198
  112. package/lib/dom/parameter.js +0 -165
  113. package/lib/dom/parameters/named.js +0 -220
  114. package/lib/dom/parameters.js +0 -198
  115. package/lib/dom/procedure/anonymous.js +0 -181
  116. package/lib/dom/procedure.js +0 -212
  117. package/lib/dom/procedureCall.js +0 -166
  118. package/lib/dom/query/node.js +0 -186
  119. package/lib/dom/query/nodes.js +0 -179
  120. package/lib/dom/reduce.js +0 -181
  121. package/lib/dom/reference.js +0 -138
  122. package/lib/dom/some.js +0 -179
  123. package/lib/dom/statement/return.js +0 -138
  124. package/lib/dom/step.js +0 -154
  125. package/lib/dom/ternary.js +0 -171
  126. package/lib/dom/variable.js +0 -279
  127. package/lib/dom.js +0 -27
  128. package/lib/example/context/file.js +0 -130
  129. package/lib/example/context/release.js +0 -160
  130. package/lib/example/utilities/expressions.js +0 -29
  131. package/lib/example/utilities/furtle.js +0 -19
  132. package/lib/example/utilities/grammar.js +0 -26
  133. package/lib/example/utilities/nominal.js +0 -25
  134. package/lib/example/utilities/procedure.js +0 -18
  135. package/lib/utilities/string.js +0 -78
  136. package/src/dom.js +0 -13
  137. package/src/example/context/file.js +0 -69
  138. /package/{example → test}/customGrammars.json +0 -0
@@ -2,10 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "chainContext", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get chainContext () {
8
13
  return chainContext;
14
+ },
15
+ get default () {
16
+ return _default;
17
+ },
18
+ get lineIndexFromNodeAndTokens () {
19
+ return lineIndexFromNodeAndTokens;
9
20
  }
10
21
  });
11
22
  var _constants = require("../constants");
@@ -16,13 +27,43 @@ function _type_of(obj) {
16
27
  function chainContext(context) {
17
28
  return new Proxy(context, {
18
29
  get: function(instance, name, receiver) {
30
+ var levelsIncludeName = _constants.LEVELS.includes(name);
31
+ if (levelsIncludeName) {
32
+ return function(message) {
33
+ var node = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
34
+ var level = name, depth = instance.getDepth(), indent = _constants.DOUBLE_SPACE.repeat(depth);
35
+ message = "".concat(indent).concat(message);
36
+ var fileContext = instance.getFileContext();
37
+ fileContext.writeToLog(level, message, node);
38
+ };
39
+ }
19
40
  if (name in instance) {
20
41
  return Reflect.get(instance, name, receiver);
21
42
  }
22
- var _$context = instance.context, value = _$context[name];
43
+ var _$context = instance.getContext(), value = _$context[name];
23
44
  return (typeof value === "undefined" ? "undefined" : _type_of(value)) === _constants.FUNCTION ? value.bind(_$context) : value;
24
45
  }
25
46
  });
26
47
  }
48
+ function lineIndexFromNodeAndTokens(node, tokens, lineIndex) {
49
+ if (node !== null) {
50
+ lineIndex = 0;
51
+ var firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
52
+ tokens.some(function(token, tokenIndex) {
53
+ var tokenEndOfLineToken = token.isEndOfLineToken();
54
+ if (tokenEndOfLineToken) {
55
+ lineIndex += 1;
56
+ }
57
+ if (tokenIndex === firstSignificantTokenIndex) {
58
+ return true;
59
+ }
60
+ });
61
+ }
62
+ return lineIndex;
63
+ }
64
+ var _default = {
65
+ chainContext: chainContext,
66
+ lineIndexFromNodeAndTokens: lineIndexFromNodeAndTokens
67
+ };
27
68
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRlVOQ1RJT04gfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbkNvbnRleHQoY29udGV4dCkge1xuICByZXR1cm4gbmV3IFByb3h5KGNvbnRleHQsIHtcbiAgICBnZXQ6IChpbnN0YW5jZSwgbmFtZSwgcmVjZWl2ZXIpID0+IHtcbiAgICAgIGlmIChuYW1lIGluIGluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldChpbnN0YW5jZSwgbmFtZSwgcmVjZWl2ZXIpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZXh0ID0gaW5zdGFuY2UuY29udGV4dCxcbiAgICAgICAgICAgIHZhbHVlID0gY29udGV4dFtuYW1lXTtcblxuICAgICAgcmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IEZVTkNUSU9OKSA/XG4gICAgICAgICAgICAgICB2YWx1ZS5iaW5kKGNvbnRleHQpIDpcbiAgICAgICAgICAgICAgICAgdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJjaGFpbkNvbnRleHQiLCJjb250ZXh0IiwiUHJveHkiLCJnZXQiLCJpbnN0YW5jZSIsIm5hbWUiLCJyZWNlaXZlciIsIlJlZmxlY3QiLCJ2YWx1ZSIsIkZVTkNUSU9OIiwiYmluZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSWdCQTs7O2VBQUFBOzs7eUJBRlM7Ozs7O0FBRWxCLFNBQVNBLGFBQWFDLE9BQU87SUFDbEMsT0FBTyxJQUFJQyxNQUFNRCxTQUFTO1FBQ3hCRSxLQUFLLFNBQUNDLFVBQVVDLE1BQU1DO1lBQ3BCLElBQUlELFFBQVFELFVBQVU7Z0JBQ3BCLE9BQU9HLFFBQVFKLEdBQUcsQ0FBQ0MsVUFBVUMsTUFBTUM7WUFDckM7WUFFQSxJQUFNTCxZQUFVRyxTQUFTSCxPQUFPLEVBQzFCTyxRQUFRUCxTQUFPLENBQUNJLEtBQUs7WUFFM0IsT0FBTyxBQUFDLENBQUEsT0FBT0csc0NBQVAsU0FBT0EsTUFBSSxNQUFNQyxtQkFBUSxHQUN4QkQsTUFBTUUsSUFBSSxDQUFDVCxhQUNUTztRQUNiO0lBQ0Y7QUFDRiJ9
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgTEVWRUxTLCBGVU5DVElPTiwgRE9VQkxFX1NQQUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hhaW5Db250ZXh0KGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBQcm94eShjb250ZXh0LCB7XG4gICAgZ2V0OiAoaW5zdGFuY2UsIG5hbWUsIHJlY2VpdmVyKSA9PiB7XG4gICAgICBjb25zdCBsZXZlbHNJbmNsdWRlTmFtZSA9IExFVkVMUy5pbmNsdWRlcyhuYW1lKTtcblxuICAgICAgaWYgKGxldmVsc0luY2x1ZGVOYW1lKSB7XG4gICAgICAgIHJldHVybiAobWVzc2FnZSwgbm9kZSA9IG51bGwpID0+IHtcbiAgICAgICAgICBjb25zdCBsZXZlbCA9IG5hbWUsIC8vL1xuICAgICAgICAgICAgICAgIGRlcHRoID0gaW5zdGFuY2UuZ2V0RGVwdGgoKSxcbiAgICAgICAgICAgICAgICBpbmRlbnQgPSBET1VCTEVfU1BBQ0UucmVwZWF0KGRlcHRoKTtcblxuICAgICAgICAgIG1lc3NhZ2UgPSBgJHtpbmRlbnR9JHttZXNzYWdlfWA7XG5cbiAgICAgICAgICBjb25zdCBmaWxlQ29udGV4dCA9IGluc3RhbmNlLmdldEZpbGVDb250ZXh0KCk7XG5cbiAgICAgICAgICBmaWxlQ29udGV4dC53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlLCBub2RlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobmFtZSBpbiBpbnN0YW5jZSkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQoaW5zdGFuY2UsIG5hbWUsIHJlY2VpdmVyKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGV4dCA9IGluc3RhbmNlLmdldENvbnRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlID0gY29udGV4dFtuYW1lXTtcblxuICAgICAgcmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IEZVTkNUSU9OKSA/XG4gICAgICAgICAgICAgICB2YWx1ZS5iaW5kKGNvbnRleHQpIDpcbiAgICAgICAgICAgICAgICAgdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2VucywgbGluZUluZGV4KSB7XG4gIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgbGluZUluZGV4ID0gMDtcblxuICAgIGNvbnN0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gICAgdG9rZW5zLnNvbWUoKHRva2VuLCB0b2tlbkluZGV4KSA9PiB7XG4gICAgICBjb25zdCB0b2tlbkVuZE9mTGluZVRva2VuID0gdG9rZW4uaXNFbmRPZkxpbmVUb2tlbigpO1xuXG4gICAgICBpZiAodG9rZW5FbmRPZkxpbmVUb2tlbikge1xuICAgICAgICBsaW5lSW5kZXggKz0gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2VuSW5kZXggPT09IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGxpbmVJbmRleDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjaGFpbkNvbnRleHQsXG4gIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zXG59O1xuIl0sIm5hbWVzIjpbImNoYWluQ29udGV4dCIsImxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwiY29udGV4dCIsIlByb3h5IiwiZ2V0IiwiaW5zdGFuY2UiLCJuYW1lIiwicmVjZWl2ZXIiLCJsZXZlbHNJbmNsdWRlTmFtZSIsIkxFVkVMUyIsImluY2x1ZGVzIiwibWVzc2FnZSIsIm5vZGUiLCJsZXZlbCIsImRlcHRoIiwiZ2V0RGVwdGgiLCJpbmRlbnQiLCJET1VCTEVfU1BBQ0UiLCJyZXBlYXQiLCJmaWxlQ29udGV4dCIsImdldEZpbGVDb250ZXh0Iiwid3JpdGVUb0xvZyIsIlJlZmxlY3QiLCJnZXRDb250ZXh0IiwidmFsdWUiLCJGVU5DVElPTiIsImJpbmQiLCJ0b2tlbnMiLCJsaW5lSW5kZXgiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4Iiwic29tZSIsInRva2VuIiwidG9rZW5JbmRleCIsInRva2VuRW5kT2ZMaW5lVG9rZW4iLCJpc0VuZE9mTGluZVRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFJZ0JBO2VBQUFBOztRQXVEaEI7ZUFBQTs7UUF0QmdCQztlQUFBQTs7O3lCQW5DK0I7Ozs7O0FBRXhDLFNBQVNELGFBQWFFLE9BQU87SUFDbEMsT0FBTyxJQUFJQyxNQUFNRCxTQUFTO1FBQ3hCRSxLQUFLLFNBQUNDLFVBQVVDLE1BQU1DO1lBQ3BCLElBQU1DLG9CQUFvQkMsaUJBQU0sQ0FBQ0MsUUFBUSxDQUFDSjtZQUUxQyxJQUFJRSxtQkFBbUI7Z0JBQ3JCLE9BQU8sU0FBQ0c7d0JBQVNDLHdFQUFPO29CQUN0QixJQUFNQyxRQUFRUCxNQUNSUSxRQUFRVCxTQUFTVSxRQUFRLElBQ3pCQyxTQUFTQyx1QkFBWSxDQUFDQyxNQUFNLENBQUNKO29CQUVuQ0gsVUFBVSxBQUFDLEdBQVdBLE9BQVRLLFFBQWlCLE9BQVJMO29CQUV0QixJQUFNUSxjQUFjZCxTQUFTZSxjQUFjO29CQUUzQ0QsWUFBWUUsVUFBVSxDQUFDUixPQUFPRixTQUFTQztnQkFDekM7WUFDRjtZQUVBLElBQUlOLFFBQVFELFVBQVU7Z0JBQ3BCLE9BQU9pQixRQUFRbEIsR0FBRyxDQUFDQyxVQUFVQyxNQUFNQztZQUNyQztZQUVBLElBQU1MLFlBQVVHLFNBQVNrQixVQUFVLElBQzdCQyxRQUFRdEIsU0FBTyxDQUFDSSxLQUFLO1lBRTNCLE9BQU8sQUFBQyxDQUFBLE9BQU9rQixzQ0FBUCxTQUFPQSxNQUFJLE1BQU1DLG1CQUFRLEdBQ3hCRCxNQUFNRSxJQUFJLENBQUN4QixhQUNUc0I7UUFDYjtJQUNGO0FBQ0Y7QUFFTyxTQUFTdkIsMkJBQTJCVyxJQUFJLEVBQUVlLE1BQU0sRUFBRUMsU0FBUztJQUNoRSxJQUFJaEIsU0FBUyxNQUFNO1FBQ2pCZ0IsWUFBWTtRQUVaLElBQU1DLDZCQUE2QmpCLEtBQUtrQiw2QkFBNkIsQ0FBQ0g7UUFFdEVBLE9BQU9JLElBQUksQ0FBQyxTQUFDQyxPQUFPQztZQUNsQixJQUFNQyxzQkFBc0JGLE1BQU1HLGdCQUFnQjtZQUVsRCxJQUFJRCxxQkFBcUI7Z0JBQ3ZCTixhQUFhO1lBQ2Y7WUFFQSxJQUFJSyxlQUFlSiw0QkFBNEI7Z0JBQzdDLE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPRDtBQUNUO0lBRUEsV0FBZTtJQUNiNUIsY0FBQUE7SUFDQUMsNEJBQUFBO0FBQ0YifQ==
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get nodeAsString () {
13
+ return nodeAsString;
14
+ },
15
+ get nodesAsString () {
16
+ return nodesAsString;
17
+ }
18
+ });
19
+ var _constants = require("../constants");
20
+ function nodeAsString(node, tokens) {
21
+ var string;
22
+ tokens = nodeAsTokens(node, tokens); ///
23
+ string = tokensAsString(tokens);
24
+ string = trimString(string); ///
25
+ return string;
26
+ }
27
+ function nodesAsString(nodes, tokens) {
28
+ var string = nodes.reduce(function(string, node) {
29
+ var nodeString = nodeAsString(node, tokens);
30
+ string = string === null ? nodeString : "".concat(string, ", ").concat(nodeString);
31
+ return string;
32
+ }, null);
33
+ return string;
34
+ }
35
+ function trimString(string) {
36
+ string = string.replace(/\s+$/, _constants.EMPTY_STRING); ///
37
+ return string;
38
+ }
39
+ function tokensAsString(tokens) {
40
+ var string = tokens.reduce(function(string, token) {
41
+ var content = token.getContent();
42
+ string = "".concat(string).concat(content);
43
+ return string;
44
+ }, _constants.EMPTY_STRING);
45
+ return string;
46
+ }
47
+ function nodeAsTokens(node, tokens) {
48
+ var nodeTerminalNode = node.isTerminalNode();
49
+ if (nodeTerminalNode) {
50
+ var terminalNode = node; ///
51
+ tokens = terminalNodeAsTokens(terminalNode, tokens);
52
+ } else {
53
+ var nonTerminalNode = node; ///
54
+ tokens = nonTerminalNodeAsTokens(nonTerminalNode, tokens);
55
+ }
56
+ return tokens;
57
+ }
58
+ function terminalNodeAsTokens(terminalNode, tokens) {
59
+ var significantToken = terminalNode.getSignificantToken(), token = significantToken; ///
60
+ tokens = [
61
+ token
62
+ ];
63
+ return tokens;
64
+ }
65
+ function nonTerminalNodeAsTokens(nonTerminalNode, tokens) {
66
+ var lastSignificantTokenIndex = nonTerminalNode.getLastSignificantTokenIndex(tokens), firstSignificantTokenIndex = nonTerminalNode.getFirstSignificantTokenIndex(tokens), start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1;
67
+ tokens = tokens.slice(start, end); ///
68
+ return tokens;
69
+ }
70
+
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9kZUFzU3RyaW5nKG5vZGUsIHRva2Vucykge1xuICBsZXQgc3RyaW5nO1xuXG4gIHRva2VucyA9IG5vZGVBc1Rva2Vucyhub2RlLCB0b2tlbnMpOyAgLy8vXG5cbiAgc3RyaW5nID0gdG9rZW5zQXNTdHJpbmcodG9rZW5zKTtcblxuICBzdHJpbmcgPSB0cmltU3RyaW5nKHN0cmluZyk7ICAvLy9cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZXNBc1N0cmluZyhub2RlcywgdG9rZW5zKSB7XG4gIGNvbnN0IHN0cmluZyA9IG5vZGVzLnJlZHVjZSgoc3RyaW5nLCBub2RlKSA9PiB7XG4gICAgY29uc3Qgbm9kZVN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0b2tlbnMpO1xuXG4gICAgc3RyaW5nID0gKHN0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgbm9kZVN0cmluZyA6XG4gICAgICBgJHtzdHJpbmd9LCAke25vZGVTdHJpbmd9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHRyaW1TdHJpbmcoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC9cXHMrJC8sIEVNUFRZX1NUUklORyk7ICAvLy9cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5mdW5jdGlvbiB0b2tlbnNBc1N0cmluZyh0b2tlbnMpIHtcbiAgY29uc3Qgc3RyaW5nID0gdG9rZW5zLnJlZHVjZSgoc3RyaW5nLCB0b2tlbikgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0b2tlbi5nZXRDb250ZW50KCk7XG5cbiAgICBzdHJpbmcgPSBgJHtzdHJpbmd9JHtjb250ZW50fWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9LCBFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIG5vZGVBc1Rva2Vucyhub2RlLCB0b2tlbnMpIHtcbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHRva2VucyA9IHRlcm1pbmFsTm9kZUFzVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICAgIHRva2VucyA9IG5vblRlcm1pbmFsTm9kZUFzVG9rZW5zKG5vblRlcm1pbmFsTm9kZSwgdG9rZW5zKTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnM7XG59XG5cbmZ1bmN0aW9uIHRlcm1pbmFsTm9kZUFzVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKSB7XG4gIGNvbnN0IHNpZ25pZmljYW50VG9rZW4gPSB0ZXJtaW5hbE5vZGUuZ2V0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICB0b2tlbiA9IHNpZ25pZmljYW50VG9rZW47IC8vL1xuXG4gIHRva2VucyA9IFsgIC8vL1xuICAgIHRva2VuXG4gIF07XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlQXNUb2tlbnMobm9uVGVybWluYWxOb2RlLCB0b2tlbnMpIHtcbiAgY29uc3QgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vblRlcm1pbmFsTm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9uVGVybWluYWxOb2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIHN0YXJ0ID0gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgsIC8vL1xuICAgICAgICBlbmQgPSBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ICsgMTtcblxuICB0b2tlbnMgPSB0b2tlbnMuc2xpY2Uoc3RhcnQsIGVuZCk7ICAvLy9cblxuICByZXR1cm4gdG9rZW5zO1xufVxuIl0sIm5hbWVzIjpbIm5vZGVBc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJub2RlIiwidG9rZW5zIiwic3RyaW5nIiwibm9kZUFzVG9rZW5zIiwidG9rZW5zQXNTdHJpbmciLCJ0cmltU3RyaW5nIiwibm9kZXMiLCJyZWR1Y2UiLCJub2RlU3RyaW5nIiwicmVwbGFjZSIsIkVNUFRZX1NUUklORyIsInRva2VuIiwiY29udGVudCIsImdldENvbnRlbnQiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGVBc1Rva2VucyIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUFzVG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbiIsImdldFNpZ25pZmljYW50VG9rZW4iLCJsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJzdGFydCIsImVuZCIsInNsaWNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFJZ0JBO2VBQUFBOztRQVlBQztlQUFBQTs7O3lCQWRhO0FBRXRCLFNBQVNELGFBQWFFLElBQUksRUFBRUMsTUFBTTtJQUN2QyxJQUFJQztJQUVKRCxTQUFTRSxhQUFhSCxNQUFNQyxTQUFVLEdBQUc7SUFFekNDLFNBQVNFLGVBQWVIO0lBRXhCQyxTQUFTRyxXQUFXSCxTQUFVLEdBQUc7SUFFakMsT0FBT0E7QUFDVDtBQUVPLFNBQVNILGNBQWNPLEtBQUssRUFBRUwsTUFBTTtJQUN6QyxJQUFNQyxTQUFTSSxNQUFNQyxNQUFNLENBQUMsU0FBQ0wsUUFBUUY7UUFDbkMsSUFBTVEsYUFBYVYsYUFBYUUsTUFBTUM7UUFFdENDLFNBQVMsQUFBQ0EsV0FBVyxPQUNuQk0sYUFDQSxBQUFDLEdBQWFBLE9BQVhOLFFBQU8sTUFBZSxPQUFYTTtRQUVoQixPQUFPTjtJQUNULEdBQUc7SUFFSCxPQUFPQTtBQUNUO0FBRUEsU0FBU0csV0FBV0gsTUFBTTtJQUN4QkEsU0FBU0EsT0FBT08sT0FBTyxDQUFDLFFBQVFDLHVCQUFZLEdBQUksR0FBRztJQUVuRCxPQUFPUjtBQUNUO0FBRUEsU0FBU0UsZUFBZUgsTUFBTTtJQUM1QixJQUFNQyxTQUFTRCxPQUFPTSxNQUFNLENBQUMsU0FBQ0wsUUFBUVM7UUFDcEMsSUFBTUMsVUFBVUQsTUFBTUUsVUFBVTtRQUVoQ1gsU0FBUyxBQUFDLEdBQVdVLE9BQVRWLFFBQWlCLE9BQVJVO1FBRXJCLE9BQU9WO0lBQ1QsR0FBR1EsdUJBQVk7SUFFZixPQUFPUjtBQUNUO0FBRUEsU0FBU0MsYUFBYUgsSUFBSSxFQUFFQyxNQUFNO0lBQ2hDLElBQU1hLG1CQUFtQmQsS0FBS2UsY0FBYztJQUU1QyxJQUFJRCxrQkFBa0I7UUFDcEIsSUFBTUUsZUFBZWhCLE1BQU8sR0FBRztRQUUvQkMsU0FBU2dCLHFCQUFxQkQsY0FBY2Y7SUFDOUMsT0FBTztRQUNMLElBQU1pQixrQkFBa0JsQixNQUFNLEdBQUc7UUFFakNDLFNBQVNrQix3QkFBd0JELGlCQUFpQmpCO0lBQ3BEO0lBRUEsT0FBT0E7QUFDVDtBQUVBLFNBQVNnQixxQkFBcUJELFlBQVksRUFBRWYsTUFBTTtJQUNoRCxJQUFNbUIsbUJBQW1CSixhQUFhSyxtQkFBbUIsSUFDbkRWLFFBQVFTLGtCQUFrQixHQUFHO0lBRW5DbkIsU0FBUztRQUNQVTtLQUNEO0lBRUQsT0FBT1Y7QUFDVDtBQUVBLFNBQVNrQix3QkFBd0JELGVBQWUsRUFBRWpCLE1BQU07SUFDdEQsSUFBTXFCLDRCQUE0QkosZ0JBQWdCSyw0QkFBNEIsQ0FBQ3RCLFNBQ3pFdUIsNkJBQTZCTixnQkFBZ0JPLDZCQUE2QixDQUFDeEIsU0FDM0V5QixRQUFRRiw0QkFDUkcsTUFBTUwsNEJBQTRCO0lBRXhDckIsU0FBU0EsT0FBTzJCLEtBQUssQ0FBQ0YsT0FBT0MsTUFBTyxHQUFHO0lBRXZDLE9BQU8xQjtBQUNUIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "2.0.280",
4
+ "version": "2.0.283",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -15,8 +15,10 @@
15
15
  },
16
16
  "devDependencies": {
17
17
  "@swc/core": "1.13.20",
18
+ "chai": "^4.1.0",
18
19
  "express": "^5.1.0",
19
20
  "lively-cli": "^2.0.77",
21
+ "mocha": "^6.0.2",
20
22
  "occam-custom-grammars": "^5.0.1340",
21
23
  "occam-entities": "^1.0.444",
22
24
  "occam-query": "^4.1.142",
package/src/constants.js CHANGED
@@ -1,5 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ import { levels } from "necessary";
4
+
5
+ const { TRACE_LEVEL, DEBUG_LEVEL, INFO_LEVEL, WARNING_LEVEL, ERROR_LEVEL } = levels;
6
+
7
+ export const LEVELS = [
8
+ TRACE_LEVEL,
9
+ DEBUG_LEVEL,
10
+ INFO_LEVEL,
11
+ WARNING_LEVEL,
12
+ ERROR_LEVEL
13
+ ];
14
+
3
15
  export const NULL = "null";
4
16
  export const TRUE = "true";
5
17
  export const FALSE = "false";
@@ -9,4 +21,8 @@ export const UNDERSCORE = "_";
9
21
  export const CONJUNCTION = "&&";
10
22
  export const DISJUNCTION = "||";
11
23
  export const EMPTY_STRING = "";
24
+ export const SINGLE_SPACE = " ";
25
+ export const DOUBLE_SPACE = " ";
12
26
  export const NOT_EQUAL_TO = "!=";
27
+ export const LEVEL_MAXIMUM_LENGTH = 7;
28
+ export const LINE_INDEX_MAXIMUM_LENGTH = 4;
@@ -74,6 +74,16 @@ export default class BlockContext {
74
74
  this.variables.push(variable);
75
75
  }
76
76
 
77
+ getFileContext() { return this.context.getFileContext(); }
78
+
79
+ getDepth() {
80
+ let depth = this.context.getDepth();
81
+
82
+ depth++;
83
+
84
+ return depth;
85
+ }
86
+
77
87
  static fromVariables(variables, context) {
78
88
  const blockContext = new BlockContext(context, variables);
79
89
 
@@ -3,26 +3,24 @@
3
3
  import { arrayUtilities } from "necessary";
4
4
  import { lexersUtilities, parsersUtilities } from "occam-grammars";
5
5
 
6
- import dom from "../dom";
7
-
8
- import { nodesQuery } from "../utilities/query";
9
- import { chainContext } from "../utilities/context";
10
- import { nodeAsString, nodesAsString } from "../utilities/string";
6
+ import { LEVELS } from "../constants";
7
+ import { verifyFile } from "../process/verify";
8
+ import { nodeAsString, nodesAsString } from "../utilities/node";
9
+ import { chainContext, lineIndexFromNodeAndTokens } from "../utilities/context";
11
10
 
12
11
  const { push } = arrayUtilities,
13
12
  { furtleLexerFromNothing } = lexersUtilities,
14
- { furtleParserFromNothing } = parsersUtilities;
13
+ { furtleParserFromNothing } = parsersUtilities,
14
+ [ TRACE_LEVEL, DEBUG_LEVEL, INFO_LEVEL, WARNING_LEVEL, ERROR_LEVEL ] = LEVELS;
15
15
 
16
16
  const furtleLexer = furtleLexerFromNothing(),
17
17
  furtleParser = furtleParserFromNothing();
18
18
 
19
- const errorNodesQuery = nodesQuery("/document/error"),
20
- procedureDeclarationNodesQuery = nodesQuery("/document/procedureDeclaration");
21
-
22
19
  export default class FileContext {
23
- constructor(context, filePath, node, tokens, procedures) {
20
+ constructor(context, filePath, lineIndex, node, tokens, procedures) {
24
21
  this.context = context;
25
22
  this.filePath = filePath;
23
+ this.lineIndex = lineIndex;
26
24
  this.node = node;
27
25
  this.tokens = tokens;
28
26
  this.procedures = procedures;
@@ -38,6 +36,10 @@ export default class FileContext {
38
36
  return this.filePath;
39
37
  }
40
38
 
39
+ getLineIndex() {
40
+ return this.lineIndex;
41
+ }
42
+
41
43
  getNode() {
42
44
  return this.node;
43
45
  }
@@ -150,27 +152,18 @@ export default class FileContext {
150
152
  return metavariables;
151
153
  }
152
154
 
153
- getVariables() {
154
- const variables = [];
155
+ addProcedure(procedure) {
156
+ const procedureString = procedure.getString();
155
157
 
156
- return variables;
157
- }
158
-
159
- addProcedures() {
160
- const context = this; ///
161
-
162
- const { ProcedureDeclaration } = dom,
163
- procedureDeclarationNodes = procedureDeclarationNodesQuery(this.node);
158
+ this.procedures.push(procedure);
164
159
 
165
- procedureDeclarationNodes.forEach((procedureDeclarationNode) => {
166
- const procedureDeclaration = ProcedureDeclaration.fromProcedureDeclarationNode(procedureDeclarationNode, context),
167
- procedure = procedureDeclaration.getProcedure(),
168
- procedureString = procedure.getString();
160
+ this.debug(`Added the '${procedureString}' procedure to the context.`);
161
+ }
169
162
 
170
- this.debug(`Adding the '${procedureString}' procedure.`);
163
+ getVariables() {
164
+ const variables = [];
171
165
 
172
- this.procedures.push(procedure);
173
- });
166
+ return variables;
174
167
  }
175
168
 
176
169
  nodeAsString(node) {
@@ -185,49 +178,86 @@ export default class FileContext {
185
178
  return string;
186
179
  }
187
180
 
188
- trace(message) { this.context.trace(message, this.filePath); }
181
+ trace(message, node = null) {
182
+ const level = TRACE_LEVEL;
189
183
 
190
- debug(message) { this.context.debug(message, this.filePath); }
184
+ this.writeToLog(level, message, node);
185
+ }
191
186
 
192
- info(message) { this.context.info(message, this.filePath); }
187
+ debug(message, node = null) {
188
+ const level = DEBUG_LEVEL;
193
189
 
194
- warning(message) { this.context.warning(message, this.filePath); }
190
+ this.writeToLog(level, message, node);
191
+ }
195
192
 
196
- error(message) { this.context.error(message, this.filePath); }
193
+ info(message, node = null) {
194
+ const level = INFO_LEVEL;
197
195
 
198
- verify() {
199
- let verified = false;
196
+ this.writeToLog(level, message, node);
197
+ }
198
+
199
+ warning(message, node = null) {
200
+ const level = WARNING_LEVEL;
201
+
202
+ this.writeToLog(level, message, node);
203
+ }
204
+
205
+ error(message, node = null) {
206
+ const level = ERROR_LEVEL;
207
+
208
+ this.writeToLog(level, message, node);
209
+ }
210
+
211
+ writeToLog(level, message, node) {
212
+ const lineIndex = lineIndexFromNodeAndTokens(node, this.tokens, this.lineIndex),
213
+ filePath = (lineIndex === null) ?
214
+ this.filePath :
215
+ null;
216
+
217
+ this.context.writeToLog(level, message, filePath, lineIndex);
200
218
 
201
- this.debug(`Verifying the '${this.filePath}' file...`);
219
+ this.lineIndex = lineIndex;
220
+ }
221
+
222
+ getFileContext() {
223
+ const fileContext = this; ///
224
+
225
+ return fileContext;
226
+ }
227
+
228
+ getDepth() {
229
+ let depth = this.context.getDepth();
230
+
231
+ depth++;
232
+
233
+ return depth;
234
+ }
235
+
236
+ verify() {
237
+ let verifies = false;
202
238
 
203
239
  this.prepare();
204
240
 
205
241
  if (this.node === null) {
206
242
  this.warning(`Unable to verify the '${this.filePath}' file because it cannot be parsed.`);
207
243
  } else {
208
- const errorNodes = errorNodesQuery(this.node),
209
- errorNodesLength = errorNodes.length;
244
+ this.debug(`Verifying the '${this.filePath}' file...`);
210
245
 
211
- if (errorNodesLength === 0) {
212
- this.addProcedures();
246
+ const context = this, ///
247
+ fileNode = this.node; ///
213
248
 
214
- verified = true;
215
- } else {
216
- this.warning(`The '${this.filePath}' file cannot be verified because there are errors.`);
249
+ verifies = verifyFile(fileNode, context);
217
250
 
218
- this.clear();
219
- }
220
- }
251
+ verifies ?
252
+ this.complete() :
253
+ this.clear();
221
254
 
222
- if (verified) {
223
- this.info(`...verified the '${this.filePath}' file.`);
255
+ if (verifies) {
256
+ this.info(`...verified the '${this.filePath}' file.`);
257
+ }
224
258
  }
225
259
 
226
- return verified;
227
- }
228
-
229
- clear() {
230
- this.procedures = [];
260
+ return verifies;
231
261
  }
232
262
 
233
263
  prepare() {
@@ -245,6 +275,16 @@ export default class FileContext {
245
275
  this.node = parser.parse(this.tokens);
246
276
  }
247
277
 
278
+ clear() {
279
+ this.lineIndex = null;
280
+
281
+ this.procedures = [];
282
+ }
283
+
284
+ complete() {
285
+ this.lineIndex = null;
286
+ }
287
+
248
288
  initialise(json) {
249
289
  const { content } = json,
250
290
  lexer = this.getLexer(),
@@ -273,19 +313,21 @@ export default class FileContext {
273
313
 
274
314
  static fromFile(file, context) {
275
315
  const filePath = file.getPath(),
316
+ lineIndex = null,
276
317
  tokens = null,
277
318
  node = null,
278
319
  procedures = [],
279
- fileContext = new FileContext(context, filePath, node, tokens, procedures);
320
+ fileContext = new FileContext(context, filePath, lineIndex, node, tokens, procedures);
280
321
 
281
322
  return fileContext;
282
323
  }
283
324
 
284
325
  static fromFilePath(filePath, context) {
285
- const tokens = null,
326
+ const lineIndex = null,
327
+ tokens = null,
286
328
  node = null,
287
329
  procedures = null,
288
- fileContext = new FileContext(context, filePath, node, tokens, procedures);
330
+ fileContext = new FileContext(context, filePath, lineIndex, node, tokens, procedures);
289
331
 
290
332
  return fileContext;
291
333
  }
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import dom from "../../dom";
3
+ import elements from "../../elements";
4
4
  import Exception from "../../exception";
5
5
 
6
+ import { define } from "../../elements";
6
7
  import { nodeQuery } from "../../utilities/query";
7
- import { domAssigned } from "../../dom";
8
8
  import { NODE_TYPE, NODES_TYPE } from "../../types";
9
9
 
10
10
  const stepArrayAssignmentNodeQuery = nodeQuery("/step/arrayAssignment");
11
11
 
12
- export default domAssigned(class ArrayAssigment {
12
+ export default define(class ArrayAssigment {
13
13
  constructor(string, variable, parameters) {
14
14
  this.string = string;
15
15
  this.variable = variable;
@@ -59,7 +59,7 @@ export default domAssigned(class ArrayAssigment {
59
59
 
60
60
  this.parameters.forEachParameter((parameter, index) => {
61
61
  if (parameter !== null) {
62
- const { Expression } = dom,
62
+ const { Expression } = elements,
63
63
  node = nodes[index],
64
64
  expression = Expression.fromNode(node, context);
65
65
 
@@ -85,7 +85,7 @@ export default domAssigned(class ArrayAssigment {
85
85
  throw exception;
86
86
  }
87
87
 
88
- const { Variable } = dom,
88
+ const { Variable } = elements,
89
89
  variable = Variable.fromParameter(parameter, context);
90
90
 
91
91
  variable.assign(expression, context);
@@ -111,7 +111,7 @@ export default domAssigned(class ArrayAssigment {
111
111
  });
112
112
 
113
113
  function arrayAssignmentFromArrayAssignmentNode(arrayAssignmentNode, context) {
114
- const { Variable, Parameters, ArrayAssignment } = dom,
114
+ const { Variable, Parameters, ArrayAssignment } = elements,
115
115
  parameters = Parameters.fromArrayAssignmentNode(arrayAssignmentNode, context),
116
116
  variable = Variable.fromArrayAssignmentNode(arrayAssignmentNode, context),
117
117
  string = stringFromVariableAndParameters(variable, parameters, context),
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
 
3
- import dom from "../../dom";
3
+ import elements from "../../elements";
4
4
  import Exception from "../../exception";
5
5
  import nodeProperties from "../../nodeProperties";
6
6
 
7
+ import { define } from "../../elements";
7
8
  import { nodeQuery } from "../../utilities/query";
8
- import { domAssigned } from "../../dom";
9
9
  import { NODE_TYPE, NODES_TYPE, STRING_TYPE, BOOLEAN_TYPE } from "../../types";
10
10
  import { CONTENT_PARAMETER_NAME, TERMINAL_PARAMETER_NAME, CHILD_NODES_PARAMETER_NAME } from "../../parameterNames";
11
11
 
12
12
  const stepObjectAssignmentNodeQuery = nodeQuery("/step/objectAssignment");
13
13
 
14
- export default domAssigned(class ObjectAssigment {
14
+ export default define(class ObjectAssigment {
15
15
  constructor(string, variable, namedParameters) {
16
16
  this.string = string;
17
17
  this.variable = variable;
@@ -83,7 +83,7 @@ export default domAssigned(class ObjectAssigment {
83
83
  }
84
84
  }
85
85
 
86
- const { Variable } = dom,
86
+ const { Variable } = elements,
87
87
  variable = Variable.fromNamedParameter(namedParameter, context);
88
88
 
89
89
  variable.assign(expression, context);
@@ -113,7 +113,7 @@ export default domAssigned(class ObjectAssigment {
113
113
  throw exception;
114
114
  }
115
115
 
116
- const { Expression } = dom,
116
+ const { Expression } = elements,
117
117
  terminalNode = node, ///
118
118
  content = terminalNode.getContent(),
119
119
  string = content; ///
@@ -138,7 +138,7 @@ export default domAssigned(class ObjectAssigment {
138
138
  nodeTerminalNode = node.isTerminalNode(),
139
139
  terminal = nodeTerminalNode; ///
140
140
 
141
- const { Expression } = dom,
141
+ const { Expression } = elements,
142
142
  boolean = terminal; ///
143
143
 
144
144
  expression = Expression.fromBoolean(boolean, context); ///
@@ -168,7 +168,7 @@ export default domAssigned(class ObjectAssigment {
168
168
  throw exception;
169
169
  }
170
170
 
171
- const { Expression } = dom,
171
+ const { Expression } = elements,
172
172
  nonTerminalNode = node, ///
173
173
  childNodes = nonTerminalNode.getChildNodes(),
174
174
  nodes = childNodes; ///
@@ -196,7 +196,7 @@ export default domAssigned(class ObjectAssigment {
196
196
  });
197
197
 
198
198
  function objectAssignmentFromObjectAssignmentNode(objectAssignmentNode, context) {
199
- const { Variable, NamedParameters, ObjectAssigment } = dom,
199
+ const { Variable, NamedParameters, ObjectAssigment } = elements,
200
200
  namedParameters = NamedParameters.fromObjectAssignmentNode(objectAssignmentNode, context),
201
201
  variable = Variable.fromObjectAssignmentNode(objectAssignmentNode, context),
202
202
  string = stringFromVariableAndNamesParameters(variable, namedParameters, context),
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import dom from "../../dom";
3
+ import elements from "../../elements";
4
4
 
5
- import { domAssigned } from "../../dom";
5
+ import { define } from "../../elements";
6
6
 
7
- export default domAssigned(class VariableAssignment {
7
+ export default define(class VariableAssignment {
8
8
  constructor(string, variable, expression) {
9
9
  this.string = string;
10
10
  this.variable = variable;
@@ -49,7 +49,7 @@ export default domAssigned(class VariableAssignment {
49
49
  });
50
50
 
51
51
  function variableAssignmentFromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context) {
52
- const { Variable, Expression, VariableAssignment } = dom,
52
+ const { Variable, Expression, VariableAssignment } = elements,
53
53
  expression = Expression.fromVariableAssignmentNode(variableAssignmentNode, context),
54
54
  variable = Variable.fromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context),
55
55
  string = stringFromExpressionAndVariable(expression, variable, context),
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import dom from "../../dom";
3
+ import elements from "../../elements";
4
4
 
5
- import { domAssigned } from "../../dom";
5
+ import { define } from "../../elements";
6
6
  import { nodeQuery, nodesQuery } from "../../utilities/query";
7
7
 
8
8
  const typeTerminalNodeQuery = nodeQuery("/variableAssignments/@type"),
9
9
  variableAssignmentNodesQuery = nodesQuery("/variableAssignments/variableAssignment"),
10
10
  stepVariableAssignmentsNodeQuery = nodeQuery("/step/variableAssignments");
11
11
 
12
- export default domAssigned(class VariableAssignments {
12
+ export default define(class VariableAssignments {
13
13
  constructor(string, array) {
14
14
  this.string = string;
15
15
  this.array = array;
@@ -53,7 +53,7 @@ export default domAssigned(class VariableAssignments {
53
53
  });
54
54
 
55
55
  function variableAssignmentsFromVariableAssignmentsNode(variableAssignmentsNode, context) {
56
- const { VariableAssignments } = dom,
56
+ const { VariableAssignments } = elements,
57
57
  type = typeFromVariableAssignmentsNode(variableAssignmentsNode, context),
58
58
  array = arrayFromTypeAndVariableAssignmentsNode(type, variableAssignmentsNode, context),
59
59
  string = stringFromArray(array, context),
@@ -88,7 +88,7 @@ function typeFromVariableAssignmentsNode(variableAssignmentsNode, context) {
88
88
  function arrayFromTypeAndVariableAssignmentsNode(type, variableAssignmentsNode, context) {
89
89
  const variableAssignmentNodes = variableAssignmentNodesQuery(variableAssignmentsNode),
90
90
  array = variableAssignmentNodes.map((variableAssignmentNode) => {
91
- const { VariableAssignment } = dom,
91
+ const { VariableAssignment } = elements,
92
92
  variableAssignment = VariableAssignment.fromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context);
93
93
 
94
94
  return variableAssignment;