occam-furtle 2.0.64 → 2.0.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/_occam-grammars/furtle/bnf.js +2 -2
- package/lib/dom/block.js +2 -9
- package/lib/dom/comparison.js +22 -6
- package/lib/dom/parameters.js +11 -11
- package/lib/dom/procedure/anonymous.js +16 -15
- package/lib/dom/some.js +162 -0
- package/lib/dom/step.js +3 -12
- package/lib/dom/value.js +33 -7
- package/lib/dom/variable.js +9 -9
- package/lib/index.js +2 -2
- package/package.json +4 -4
- package/src/_occam-grammars/furtle/bnf.js +6 -4
- package/src/dom/block.js +1 -14
- package/src/dom/comparison.js +35 -13
- package/src/dom/parameters.js +12 -11
- package/src/dom/procedure/anonymous.js +20 -18
- package/src/dom/{forEachLoop.js → some.js} +25 -22
- package/src/dom/step.js +3 -11
- package/src/dom/value.js +38 -7
- package/src/dom/variable.js +10 -10
- package/src/index.js +1 -1
- package/lib/dom/forEachLoop.js +0 -161
package/lib/dom/forEachLoop.js
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
|
|
12
|
-
var _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
|
|
13
|
-
var _query = require("../utilities/query");
|
|
14
|
-
var _types = require("../types");
|
|
15
|
-
function _class_call_check(instance, Constructor) {
|
|
16
|
-
if (!(instance instanceof Constructor)) {
|
|
17
|
-
throw new TypeError("Cannot call a class as a function");
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
function _defineProperties(target, props) {
|
|
21
|
-
for(var i = 0; i < props.length; i++){
|
|
22
|
-
var descriptor = props[i];
|
|
23
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
24
|
-
descriptor.configurable = true;
|
|
25
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
26
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
30
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
31
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
32
|
-
return Constructor;
|
|
33
|
-
}
|
|
34
|
-
function _define_property(obj, key, value) {
|
|
35
|
-
if (key in obj) {
|
|
36
|
-
Object.defineProperty(obj, key, {
|
|
37
|
-
value: value,
|
|
38
|
-
enumerable: true,
|
|
39
|
-
configurable: true,
|
|
40
|
-
writable: true
|
|
41
|
-
});
|
|
42
|
-
} else {
|
|
43
|
-
obj[key] = value;
|
|
44
|
-
}
|
|
45
|
-
return obj;
|
|
46
|
-
}
|
|
47
|
-
function _interop_require_default(obj) {
|
|
48
|
-
return obj && obj.__esModule ? obj : {
|
|
49
|
-
default: obj
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
53
|
-
if (typeof WeakMap !== "function") return null;
|
|
54
|
-
var cacheBabelInterop = new WeakMap();
|
|
55
|
-
var cacheNodeInterop = new WeakMap();
|
|
56
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
57
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
58
|
-
})(nodeInterop);
|
|
59
|
-
}
|
|
60
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
61
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
62
|
-
return obj;
|
|
63
|
-
}
|
|
64
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
65
|
-
return {
|
|
66
|
-
default: obj
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
70
|
-
if (cache && cache.has(obj)) {
|
|
71
|
-
return cache.get(obj);
|
|
72
|
-
}
|
|
73
|
-
var newObj = {
|
|
74
|
-
__proto__: null
|
|
75
|
-
};
|
|
76
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
77
|
-
for(var key in obj){
|
|
78
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
79
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
80
|
-
if (desc && (desc.get || desc.set)) {
|
|
81
|
-
Object.defineProperty(newObj, key, desc);
|
|
82
|
-
} else {
|
|
83
|
-
newObj[key] = obj[key];
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
newObj.default = obj;
|
|
88
|
-
if (cache) {
|
|
89
|
-
cache.set(obj, newObj);
|
|
90
|
-
}
|
|
91
|
-
return newObj;
|
|
92
|
-
}
|
|
93
|
-
var _ForEachLoop;
|
|
94
|
-
var variableNodeQuery = (0, _query.nodeQuery)("/forEachLoop/variable"), parametersNodeQuery = (0, _query.nodeQuery)("/forEachLoop/anonymousProcedure/parameters"), forEachLoopNodeQuery = (0, _query.nodeQuery)("/step/forEachLoop");
|
|
95
|
-
var _default = (0, _dom.domAssigned)((_ForEachLoop = /*#__PURE__*/ function() {
|
|
96
|
-
function ForEachLoop(string, variable, anonymousProcedure) {
|
|
97
|
-
_class_call_check(this, ForEachLoop);
|
|
98
|
-
this.string = string;
|
|
99
|
-
this.variable = variable;
|
|
100
|
-
this.anonymousProcedure = anonymousProcedure;
|
|
101
|
-
}
|
|
102
|
-
_create_class(ForEachLoop, [
|
|
103
|
-
{
|
|
104
|
-
key: "getString",
|
|
105
|
-
value: function getString() {
|
|
106
|
-
return this.string;
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
key: "getVariable",
|
|
111
|
-
value: function getVariable() {
|
|
112
|
-
return this.variable;
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
key: "getAnonymousProcedure",
|
|
117
|
-
value: function getAnonymousProcedure() {
|
|
118
|
-
return this.anonymousProcedure;
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
key: "evaluate",
|
|
123
|
-
value: function evaluate(context) {
|
|
124
|
-
var _this = this;
|
|
125
|
-
var forEachLoopString = this.getString();
|
|
126
|
-
context.trace("Evaluating the '".concat(forEachLoopString, "' for-each loop..."));
|
|
127
|
-
var value = this.variable.evaluate(context), valueType = value.getType();
|
|
128
|
-
if (valueType !== _types.NODES_TYPE) {
|
|
129
|
-
var valueString = value.asString(context), message = "The ".concat(valueString, " value's '").concat(valueType, "' type should be '").concat(_types.NODES_TYPE, "'."), exception = _exception.default.fromMessage(message);
|
|
130
|
-
throw exception;
|
|
131
|
-
}
|
|
132
|
-
var nodes = value.getNodes();
|
|
133
|
-
nodes.forEach(function(node) {
|
|
134
|
-
var Value = _dom.default.Value, Values = _dom.default.Values, value = Value.fromNode(node, context), values = Values.fromValue(value, context);
|
|
135
|
-
_this.anonymousProcedure.call(values, context);
|
|
136
|
-
});
|
|
137
|
-
context.trace("...evaluated the '".concat(forEachLoopString, "' for-each loop."));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
], [
|
|
141
|
-
{
|
|
142
|
-
key: "fromStepNode",
|
|
143
|
-
value: function fromStepNode(stepNode, context) {
|
|
144
|
-
var forEachLoop = null;
|
|
145
|
-
var forEachLoopNode = forEachLoopNodeQuery(stepNode);
|
|
146
|
-
if (forEachLoopNode !== null) {
|
|
147
|
-
var Variable = _dom.default.Variable, AnonymousProcedure = _dom.default.AnonymousProcedure, string = stringFromForEachLoopNode(forEachLoopNode, context), variable = Variable.fromForEachLoopNode(forEachLoopNode, context), anonymousProcedure = AnonymousProcedure.fromForEachLoopNode(forEachLoopNode, context);
|
|
148
|
-
forEachLoop = new ForEachLoop(string, variable, anonymousProcedure);
|
|
149
|
-
}
|
|
150
|
-
return forEachLoop;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
]);
|
|
154
|
-
return ForEachLoop;
|
|
155
|
-
}(), _define_property(_ForEachLoop, "name", "ForEachLoop"), _ForEachLoop));
|
|
156
|
-
function stringFromForEachLoopNode(forEachLoopNode, context) {
|
|
157
|
-
var variableNode = variableNodeQuery(forEachLoopNode), parametersNode = parametersNodeQuery(forEachLoopNode), variableString = context.nodeAsString(variableNode), parametersString = context.nodeAsString(parametersNode), string = "ForEach(".concat(variableString, ", (").concat(parametersString, ") { ... })");
|
|
158
|
-
return string;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vZm9yRWFjaExvb3AuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IE5PREVTX1RZUEUgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9mb3JFYWNoTG9vcC92YXJpYWJsZVwiKSxcbiAgICAgIHBhcmFtZXRlcnNOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZm9yRWFjaExvb3AvYW5vbnltb3VzUHJvY2VkdXJlL3BhcmFtZXRlcnNcIiksXG4gICAgICBmb3JFYWNoTG9vcE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGVwL2ZvckVhY2hMb29wXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBGb3JFYWNoTG9vcCB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldEFub255bW91c1Byb2NlZHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgZm9yRWFjaExvb3BTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7Zm9yRWFjaExvb3BTdHJpbmd9JyBmb3ItZWFjaCBsb29wLi4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpO1xuXG4gICAgaWYgKHZhbHVlVHlwZSAhPT0gTk9ERVNfVFlQRSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICR7dmFsdWVTdHJpbmd9IHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Tk9ERVNfVFlQRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlcyA9IHZhbHVlLmdldE5vZGVzKCk7XG5cbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBjb25zdCB7IFZhbHVlLCBWYWx1ZXMgfSA9IGRvbSxcbiAgICAgICAgICAgIHZhbHVlID0gVmFsdWUuZnJvbU5vZGUobm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICB2YWx1ZXMgPSBWYWx1ZXMuZnJvbVZhbHVlKHZhbHVlLCBjb250ZXh0KTtcblxuICAgICAgdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmUuY2FsbCh2YWx1ZXMsIGNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgY29udGV4dC50cmFjZShgLi4uZXZhbHVhdGVkIHRoZSAnJHtmb3JFYWNoTG9vcFN0cmluZ30nIGZvci1lYWNoIGxvb3AuYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRm9yRWFjaExvb3BcIjtcblxuICBzdGF0aWMgZnJvbVN0ZXBOb2RlKHN0ZXBOb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGZvckVhY2hMb29wID0gbnVsbDtcblxuICAgIGNvbnN0IGZvckVhY2hMb29wTm9kZSA9IGZvckVhY2hMb29wTm9kZVF1ZXJ5KHN0ZXBOb2RlKTtcblxuICAgIGlmIChmb3JFYWNoTG9vcE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgVmFyaWFibGUsIEFub255bW91c1Byb2NlZHVyZSB9ID0gZG9tLFxuICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbUZvckVhY2hMb29wTm9kZShmb3JFYWNoTG9vcE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tRm9yRWFjaExvb3BOb2RlKGZvckVhY2hMb29wTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmUgPSBBbm9ueW1vdXNQcm9jZWR1cmUuZnJvbUZvckVhY2hMb29wTm9kZShmb3JFYWNoTG9vcE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBmb3JFYWNoTG9vcCA9IG5ldyBGb3JFYWNoTG9vcChzdHJpbmcsIHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JFYWNoTG9vcDtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21Gb3JFYWNoTG9vcE5vZGUoZm9yRWFjaExvb3BOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KGZvckVhY2hMb29wTm9kZSksXG4gICAgICAgIHBhcmFtZXRlcnNOb2RlID0gcGFyYW1ldGVyc05vZGVRdWVyeShmb3JFYWNoTG9vcE5vZGUpLFxuICAgICAgICB2YXJpYWJsZVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhwYXJhbWV0ZXJzTm9kZSksXG4gICAgICAgIHN0cmluZyA9IGBGb3JFYWNoKCR7dmFyaWFibGVTdHJpbmd9LCAoJHtwYXJhbWV0ZXJzU3RyaW5nfSkgeyAuLi4gfSlgO1xuXG4gIHJldHVybiBzdHJpbmc7XG59Il0sIm5hbWVzIjpbInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicGFyYW1ldGVyc05vZGVRdWVyeSIsImZvckVhY2hMb29wTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJGb3JFYWNoTG9vcCIsInN0cmluZyIsInZhcmlhYmxlIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiZ2V0U3RyaW5nIiwiZ2V0VmFyaWFibGUiLCJnZXRBbm9ueW1vdXNQcm9jZWR1cmUiLCJldmFsdWF0ZSIsImNvbnRleHQiLCJmb3JFYWNoTG9vcFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwiTk9ERVNfVFlQRSIsInZhbHVlU3RyaW5nIiwiYXNTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJub2RlcyIsImdldE5vZGVzIiwiZm9yRWFjaCIsIm5vZGUiLCJWYWx1ZSIsImRvbSIsIlZhbHVlcyIsImZyb21Ob2RlIiwidmFsdWVzIiwiZnJvbVZhbHVlIiwiY2FsbCIsImZyb21TdGVwTm9kZSIsInN0ZXBOb2RlIiwiZm9yRWFjaExvb3AiLCJmb3JFYWNoTG9vcE5vZGUiLCJWYXJpYWJsZSIsIkFub255bW91c1Byb2NlZHVyZSIsInN0cmluZ0Zyb21Gb3JFYWNoTG9vcE5vZGUiLCJmcm9tRm9yRWFjaExvb3BOb2RlIiwibmFtZSIsInZhcmlhYmxlTm9kZSIsInBhcmFtZXRlcnNOb2RlIiwidmFyaWFibGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7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
|