occam-languages 0.0.78 → 0.0.80
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/pass/forward.js +26 -61
- package/package.json +1 -1
- package/src/pass/forward.js +26 -58
package/lib/pass/forward.js
CHANGED
|
@@ -74,33 +74,33 @@ var ForwardPass = /*#__PURE__*/ function() {
|
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
key: "descend",
|
|
77
|
-
value: function descend(childNodes) {
|
|
77
|
+
value: function descend(index, childNodes) {
|
|
78
78
|
var _this = this;
|
|
79
|
-
for(var _len = arguments.length, remainingArguments = new Array(_len >
|
|
80
|
-
remainingArguments[_key -
|
|
79
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
80
|
+
remainingArguments[_key - 2] = arguments[_key];
|
|
81
81
|
}
|
|
82
|
-
var
|
|
83
|
-
var
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
descended = this.descendForward.apply(this, [
|
|
87
|
-
index,
|
|
88
|
-
childNodes
|
|
89
|
-
].concat(_to_consumable_array(remainingArguments))); ///
|
|
82
|
+
var descendedForward = false;
|
|
83
|
+
var descendForward = remainingArguments.pop(), childNodesLength = childNodes.length;
|
|
84
|
+
if (index === childNodesLength) {
|
|
85
|
+
descendedForward = descendForward();
|
|
90
86
|
} else {
|
|
91
|
-
var visited =
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
var childNode = childNodes[index], node = childNode, visited = this.visitNode.apply(this, [
|
|
88
|
+
node
|
|
89
|
+
].concat(_to_consumable_array(remainingArguments), [
|
|
90
|
+
function() {
|
|
91
|
+
remainingArguments.push(descendForward);
|
|
92
|
+
var aheadIndex = index + 1, descendedForward = _this.descend.apply(_this, [
|
|
93
|
+
aheadIndex,
|
|
94
|
+
childNodes
|
|
95
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
96
|
+
return descendedForward;
|
|
97
97
|
}
|
|
98
|
-
|
|
98
|
+
]));
|
|
99
99
|
if (visited) {
|
|
100
|
-
|
|
100
|
+
descendedForward = true;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
return
|
|
103
|
+
return descendedForward;
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
106
|
{
|
|
@@ -125,37 +125,6 @@ var ForwardPass = /*#__PURE__*/ function() {
|
|
|
125
125
|
return visited;
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
|
-
{
|
|
129
|
-
key: "descendForward",
|
|
130
|
-
value: function descendForward(index, childNodes) {
|
|
131
|
-
var _this = this;
|
|
132
|
-
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
133
|
-
remainingArguments[_key - 2] = arguments[_key];
|
|
134
|
-
}
|
|
135
|
-
var descendedForward = false;
|
|
136
|
-
var descendForward = remainingArguments.pop(), childNodesLength = childNodes.length;
|
|
137
|
-
if (index === childNodesLength) {
|
|
138
|
-
descendedForward = descendForward();
|
|
139
|
-
} else {
|
|
140
|
-
var childNode = childNodes[index], node = childNode, visited = this.visitNode.apply(this, [
|
|
141
|
-
node
|
|
142
|
-
].concat(_to_consumable_array(remainingArguments), [
|
|
143
|
-
function() {
|
|
144
|
-
remainingArguments.push(descendForward);
|
|
145
|
-
var aheadIndex = index + 1, descendedForward = _this.descendForward.apply(_this, [
|
|
146
|
-
aheadIndex,
|
|
147
|
-
childNodes
|
|
148
|
-
].concat(_to_consumable_array(remainingArguments)));
|
|
149
|
-
return descendedForward;
|
|
150
|
-
}
|
|
151
|
-
]));
|
|
152
|
-
if (visited) {
|
|
153
|
-
descendedForward = true;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return descendedForward;
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
128
|
{
|
|
160
129
|
key: "visitTerminalNode",
|
|
161
130
|
value: function visitTerminalNode(terminalNode) {
|
|
@@ -163,16 +132,11 @@ var ForwardPass = /*#__PURE__*/ function() {
|
|
|
163
132
|
remainingArguments[_key - 1] = arguments[_key];
|
|
164
133
|
}
|
|
165
134
|
var visited = false;
|
|
166
|
-
var
|
|
167
|
-
if (
|
|
168
|
-
var descendForward = remainingArguments.pop(), descendedForward = descendForward();
|
|
169
|
-
if (descendedForward) {
|
|
170
|
-
visited = true;
|
|
171
|
-
}
|
|
172
|
-
remainingArguments.push(descendForward);
|
|
173
|
-
} else {
|
|
135
|
+
var descendForward = remainingArguments.pop(), descendedForward = descendForward();
|
|
136
|
+
if (descendedForward) {
|
|
174
137
|
visited = true;
|
|
175
138
|
}
|
|
139
|
+
remainingArguments.push(descendForward);
|
|
176
140
|
return visited;
|
|
177
141
|
}
|
|
178
142
|
},
|
|
@@ -193,7 +157,8 @@ var ForwardPass = /*#__PURE__*/ function() {
|
|
|
193
157
|
remainingArguments[_key - 1] = arguments[_key];
|
|
194
158
|
}
|
|
195
159
|
var visited = false;
|
|
196
|
-
var childNodes = nonTerminalNode.getChildNodes(), descended = _this.descend.apply(_this, [
|
|
160
|
+
var index = 0, childNodes = nonTerminalNode.getChildNodes(), descended = _this.descend.apply(_this, [
|
|
161
|
+
index,
|
|
197
162
|
childNodes
|
|
198
163
|
].concat(_to_consumable_array(remainingArguments)));
|
|
199
164
|
if (descended) {
|
|
@@ -221,4 +186,4 @@ var ForwardPass = /*#__PURE__*/ function() {
|
|
|
221
186
|
return ForwardPass;
|
|
222
187
|
}();
|
|
223
188
|
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2ZvcndhcmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LCBpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wYXNzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcndhcmRQYXNzIHtcbiAgcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzO1xuXG4gICAgY29uc3QgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBzdWNjZXNzID0gdmlzaXRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBkZXNjZW5kKGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBkZXNjZW5kZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uID0gaXNMYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbihyZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgaWYgKGxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKSB7XG4gICAgICBjb25zdCBpbmRleCA9IDA7XG5cbiAgICAgIGRlc2NlbmRlZCA9IHRoaXMuZGVzY2VuZEZvcndhcmQoaW5kZXgsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7IC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2aXNpdGVkID0gY2hpbGROb2Rlcy5ldmVyeSgoY2hpbGROb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgICB2aXNpdGVkID0gdGhpcy52aXNpdE5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHZpc2l0ZWQpIHtcbiAgICAgICAgZGVzY2VuZGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVzY2VuZGVkO1xuICB9XG5cbiAgdmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCB2aXNpdGVkO1xuXG4gICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgICB2aXNpdGVkID0gdGhpcy52aXNpdE5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICBkZXNjZW5kRm9yd2FyZChpbmRleCwgY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlc2NlbmRlZEZvcndhcmQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGRlc2NlbmRGb3J3YXJkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBjaGlsZE5vZGVzTGVuZ3RoID0gY2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAoaW5kZXggPT09IGNoaWxkTm9kZXNMZW5ndGgpIHtcbiAgICAgIGRlc2NlbmRlZEZvcndhcmQgPSBkZXNjZW5kRm9yd2FyZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGUgPSBjaGlsZE5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgIG5vZGUgPSBjaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgICAgICAgICByZW1haW5pbmdBcmd1bWVudHMucHVzaChkZXNjZW5kRm9yd2FyZCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYWhlYWRJbmRleCA9IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY2VuZGVkRm9yd2FyZCA9IHRoaXMuZGVzY2VuZEZvcndhcmQoYWhlYWRJbmRleCwgY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgICAgICByZXR1cm4gZGVzY2VuZGVkRm9yd2FyZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICBkZXNjZW5kZWRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVzY2VuZGVkRm9yd2FyZDtcbiAgfVxuXG4gIHZpc2l0VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uID0gaXNMYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbihyZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgaWYgKGxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKSB7XG4gICAgICBjb25zdCBkZXNjZW5kRm9yd2FyZCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSwgLy8vXG4gICAgICAgICAgICBkZXNjZW5kZWRGb3J3YXJkID0gZGVzY2VuZEZvcndhcmQoKTtcblxuICAgICAgaWYgKGRlc2NlbmRlZEZvcndhcmQpIHtcbiAgICAgICAgdmlzaXRlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJlbWFpbmluZ0FyZ3VtZW50cy5wdXNoKGRlc2NlbmRGb3J3YXJkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmlzaXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICB2aXNpdE5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICBsZXQgeyBtYXBzIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgbWFwcyA9IFsgLy8vXG4gICAgICAuLi5tYXBzLFxuICAgICAge1xuICAgICAgICBub2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBydW46IChub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpID0+IHtcbiAgICAgICAgICBsZXQgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksIC8vL1xuICAgICAgICAgICAgICAgIGRlc2NlbmRlZCA9IHRoaXMuZGVzY2VuZChjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgICAgaWYgKGRlc2NlbmRlZCkge1xuICAgICAgICAgICAgdmlzaXRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZpc2l0ZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG5cbiAgICBtYXBzLnNvbWUoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgeyBub2RlUXVlcnksIHJ1biB9ID0gbWFwO1xuXG4gICAgICBjb25zdCBub2RlID0gbm9kZVF1ZXJ5KG5vblRlcm1pbmFsTm9kZSk7XG5cbiAgICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBydW4obm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICB2aXNpdGVkID0gc3VjY2VzcztcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG59XG4iXSwibmFtZXMiOlsiRm9yd2FyZFBhc3MiLCJydW4iLCJub2RlIiwicmVtYWluaW5nQXJndW1lbnRzIiwic3VjY2VzcyIsInZpc2l0ZWQiLCJ2aXNpdE5vZGUiLCJkZXNjZW5kIiwiY2hpbGROb2RlcyIsImRlc2NlbmRlZCIsImxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uIiwiaXNMYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbiIsImluZGV4IiwiZGVzY2VuZEZvcndhcmQiLCJldmVyeSIsImNoaWxkTm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJkZXNjZW5kZWRGb3J3YXJkIiwicG9wIiwiY2hpbGROb2Rlc0xlbmd0aCIsImxlbmd0aCIsInB1c2giLCJhaGVhZEluZGV4IiwibWFwcyIsIm5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5IiwiZ2V0Q2hpbGROb2RlcyIsInNvbWUiLCJtYXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7O29CQUZpRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZELElBQUEsQUFBTUEsNEJBQU47YUFBTUE7Z0NBQUFBOztrQkFBQUE7O1lBQ25CQyxLQUFBQTttQkFBQUEsU0FBQUEsSUFBSUMsSUFBSTtnQkFBRSxJQUFBLElBQUEsT0FBQSxVQUFBLFFBQUEsQUFBR0MscUJBQUgsVUFBQSxPQUFB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
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2ZvcndhcmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vblRlcm1pbmFsTm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wYXNzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcndhcmRQYXNzIHtcbiAgcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzO1xuXG4gICAgY29uc3QgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBzdWNjZXNzID0gdmlzaXRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBkZXNjZW5kKGluZGV4LCBjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgZGVzY2VuZGVkRm9yd2FyZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZGVzY2VuZEZvcndhcmQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXNMZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChpbmRleCA9PT0gY2hpbGROb2Rlc0xlbmd0aCkge1xuICAgICAgZGVzY2VuZGVkRm9yd2FyZCA9IGRlc2NlbmRGb3J3YXJkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZSA9IGNoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgbm9kZSA9IGNoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICB2aXNpdGVkID0gdGhpcy52aXNpdE5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICAgICAgICAgIHJlbWFpbmluZ0FyZ3VtZW50cy5wdXNoKGRlc2NlbmRGb3J3YXJkKTtcblxuICAgICAgICAgICAgICBjb25zdCBhaGVhZEluZGV4ID0gaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBkZXNjZW5kZWRGb3J3YXJkID0gdGhpcy5kZXNjZW5kKGFoZWFkSW5kZXgsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGRlc2NlbmRlZEZvcndhcmQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgaWYgKHZpc2l0ZWQpIHtcbiAgICAgICAgZGVzY2VuZGVkRm9yd2FyZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NlbmRlZEZvcndhcmQ7XG4gIH1cblxuICB2aXNpdE5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQ7XG5cbiAgICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXRUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxuXG4gIHZpc2l0VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGRlc2NlbmRGb3J3YXJkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBkZXNjZW5kZWRGb3J3YXJkID0gZGVzY2VuZEZvcndhcmQoKTtcblxuICAgIGlmIChkZXNjZW5kZWRGb3J3YXJkKSB7XG4gICAgICB2aXNpdGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZW1haW5pbmdBcmd1bWVudHMucHVzaChkZXNjZW5kRm9yd2FyZCk7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxuXG4gIHZpc2l0Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIG5vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBpbmRleCA9IDAsXG4gICAgICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksIC8vL1xuICAgICAgICAgICAgICAgIGRlc2NlbmRlZCA9IHRoaXMuZGVzY2VuZChpbmRleCwgY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgIGlmIChkZXNjZW5kZWQpIHtcbiAgICAgICAgICAgIHZpc2l0ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2aXNpdGVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuXG4gICAgbWFwcy5zb21lKChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgbm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVRdWVyeShub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzID0gcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgdmlzaXRlZCA9IHN1Y2Nlc3M7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmlzaXRlZDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZvcndhcmRQYXNzIiwicnVuIiwibm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJ2aXNpdGVkIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImluZGV4IiwiY2hpbGROb2RlcyIsImRlc2NlbmRlZEZvcndhcmQiLCJkZXNjZW5kRm9yd2FyZCIsInBvcCIsImNoaWxkTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJjaGlsZE5vZGUiLCJwdXNoIiwiYWhlYWRJbmRleCIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJtYXBzIiwibm9kZVF1ZXJ5Iiwibm9uVGVybWluYWxOb2RlUXVlcnkiLCJnZXRDaGlsZE5vZGVzIiwiZGVzY2VuZGVkIiwic29tZSIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFJcUJBOzs7b0JBRmdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEIsSUFBQSxBQUFNQSw0QkFBTjthQUFNQTtnQ0FBQUE7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQSxJQUFJQyxJQUFJO2dCQUFFLElBQUEsSUFBQSxPQUFBLFVBQUEsUUFBQSxBQUFHQyxxQkFBSCxVQUFBLE9BQUEsSUFBQSxPQUFBLFFBQUEsT0FBQSxHQUFBLE9BQUEsTUFBQTtvQkFBR0EsbUJBQUgsT0FBQSxLQUFBLFNB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
|
package/package.json
CHANGED
package/src/pass/forward.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { nonTerminalNodeQuery
|
|
3
|
+
import { nonTerminalNodeQuery } from "../utilities/pass";
|
|
4
4
|
|
|
5
5
|
export default class ForwardPass {
|
|
6
6
|
run(node, ...remainingArguments) {
|
|
@@ -13,31 +13,32 @@ export default class ForwardPass {
|
|
|
13
13
|
return success;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
descend(childNodes, ...remainingArguments) {
|
|
17
|
-
let
|
|
18
|
-
|
|
19
|
-
const lastRemainingArgumentFunction = isLastRemainingArgumentFunction(remainingArguments);
|
|
16
|
+
descend(index, childNodes, ...remainingArguments) {
|
|
17
|
+
let descendedForward = false;
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
const descendForward = remainingArguments.pop(), ///
|
|
20
|
+
childNodesLength = childNodes.length;
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
if (index === childNodesLength) {
|
|
23
|
+
descendedForward = descendForward();
|
|
25
24
|
} else {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
const childNode = childNodes[index],
|
|
26
|
+
node = childNode, ///
|
|
27
|
+
visited = this.visitNode(node, ...remainingArguments, () => {
|
|
28
|
+
remainingArguments.push(descendForward);
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
const aheadIndex = index + 1,
|
|
31
|
+
descendedForward = this.descend(aheadIndex, childNodes, ...remainingArguments);
|
|
32
|
+
|
|
33
|
+
return descendedForward;
|
|
34
|
+
});
|
|
34
35
|
|
|
35
36
|
if (visited) {
|
|
36
|
-
|
|
37
|
+
descendedForward = true;
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
|
|
40
|
-
return
|
|
41
|
+
return descendedForward;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
visitNode(node, ...remainingArguments) {
|
|
@@ -58,52 +59,18 @@ export default class ForwardPass {
|
|
|
58
59
|
return visited;
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
descendForward(index, childNodes, ...remainingArguments) {
|
|
62
|
-
let descendedForward = false;
|
|
63
|
-
|
|
64
|
-
const descendForward = remainingArguments.pop(), ///
|
|
65
|
-
childNodesLength = childNodes.length;
|
|
66
|
-
|
|
67
|
-
if (index === childNodesLength) {
|
|
68
|
-
descendedForward = descendForward();
|
|
69
|
-
} else {
|
|
70
|
-
const childNode = childNodes[index],
|
|
71
|
-
node = childNode, ///
|
|
72
|
-
visited = this.visitNode(node, ...remainingArguments, () => {
|
|
73
|
-
remainingArguments.push(descendForward);
|
|
74
|
-
|
|
75
|
-
const aheadIndex = index + 1,
|
|
76
|
-
descendedForward = this.descendForward(aheadIndex, childNodes, ...remainingArguments);
|
|
77
|
-
|
|
78
|
-
return descendedForward;
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
if (visited) {
|
|
82
|
-
descendedForward = true;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return descendedForward;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
62
|
visitTerminalNode(terminalNode, ...remainingArguments) {
|
|
90
63
|
let visited = false;
|
|
91
64
|
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
if (lastRemainingArgumentFunction) {
|
|
95
|
-
const descendForward = remainingArguments.pop(), ///
|
|
96
|
-
descendedForward = descendForward();
|
|
97
|
-
|
|
98
|
-
if (descendedForward) {
|
|
99
|
-
visited = true;
|
|
100
|
-
}
|
|
65
|
+
const descendForward = remainingArguments.pop(), ///
|
|
66
|
+
descendedForward = descendForward();
|
|
101
67
|
|
|
102
|
-
|
|
103
|
-
} else {
|
|
68
|
+
if (descendedForward) {
|
|
104
69
|
visited = true;
|
|
105
70
|
}
|
|
106
71
|
|
|
72
|
+
remainingArguments.push(descendForward);
|
|
73
|
+
|
|
107
74
|
return visited;
|
|
108
75
|
}
|
|
109
76
|
|
|
@@ -119,8 +86,9 @@ export default class ForwardPass {
|
|
|
119
86
|
run: (node, ...remainingArguments) => {
|
|
120
87
|
let visited = false;
|
|
121
88
|
|
|
122
|
-
const
|
|
123
|
-
|
|
89
|
+
const index = 0,
|
|
90
|
+
childNodes = nonTerminalNode.getChildNodes(), ///
|
|
91
|
+
descended = this.descend(index, childNodes, ...remainingArguments);
|
|
124
92
|
|
|
125
93
|
if (descended) {
|
|
126
94
|
visited = true;
|