occam-verify-cli 0.0.821 → 0.0.825
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/bin/action/verify.js +9 -2
- package/lib/constructor/bracketed.js +126 -0
- package/lib/node/statement/combinator/bracketed.js +2 -2
- package/lib/node/term/constructor/bracketed.js +21 -0
- package/lib/ocmbinator/bracketed.js +2 -2
- package/lib/tokens/constructorDeclaration/bracketed.js +17 -0
- package/lib/tokens/unqualifiedStatement/combinator/bracketed.js +17 -0
- package/lib/verify/term.js +54 -16
- package/package.json +1 -1
- package/src/constructor/bracketed.js +23 -0
- package/src/node/statement/combinator/bracketed.js +2 -2
- package/src/node/term/constructor/bracketed.js +9 -0
- package/src/ocmbinator/bracketed.js +2 -2
- package/src/tokens/constructorDeclaration/bracketed.js +10 -0
- package/src/tokens/{statement → unqualifiedStatement}/combinator/bracketed.js +2 -2
- package/src/verify/term.js +84 -17
- package/lib/tokens/statement/combinator/bracketed.js +0 -17
package/bin/action/verify.js
CHANGED
|
@@ -28,8 +28,15 @@ function verifyAction(argument, log) {
|
|
|
28
28
|
|
|
29
29
|
const releaseName = name, ///
|
|
30
30
|
dependentName = releaseName, ///
|
|
31
|
-
releaseContext = releaseContextMap[releaseName]
|
|
32
|
-
|
|
31
|
+
releaseContext = releaseContextMap[releaseName] || null;
|
|
32
|
+
|
|
33
|
+
if (releaseContext === null) {
|
|
34
|
+
log.warning(`The '${name}' proiject or package does not exist.`);
|
|
35
|
+
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const released = releaseContext.isReleased();
|
|
33
40
|
|
|
34
41
|
if (released) {
|
|
35
42
|
log.warning(`The '${name}' package does not need to be verified.`);
|
|
@@ -0,0 +1,126 @@
|
|
|
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 _constructor = /*#__PURE__*/ _interop_require_default(require("../constructor"));
|
|
12
|
+
var _bracketed = /*#__PURE__*/ _interop_require_default(require("../node/term/constructor/bracketed"));
|
|
13
|
+
var _bracketed1 = /*#__PURE__*/ _interop_require_default(require("../tokens/constructorDeclaration/bracketed"));
|
|
14
|
+
var _string = require("../utilities/string");
|
|
15
|
+
function _assert_this_initialized(self) {
|
|
16
|
+
if (self === void 0) {
|
|
17
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
18
|
+
}
|
|
19
|
+
return self;
|
|
20
|
+
}
|
|
21
|
+
function _class_call_check(instance, Constructor) {
|
|
22
|
+
if (!(instance instanceof Constructor)) {
|
|
23
|
+
throw new TypeError("Cannot call a class as a function");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function _defineProperties(target, props) {
|
|
27
|
+
for(var i = 0; i < props.length; i++){
|
|
28
|
+
var descriptor = props[i];
|
|
29
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
30
|
+
descriptor.configurable = true;
|
|
31
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
32
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
36
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
37
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
38
|
+
return Constructor;
|
|
39
|
+
}
|
|
40
|
+
function _get_prototype_of(o) {
|
|
41
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
42
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
43
|
+
};
|
|
44
|
+
return _get_prototype_of(o);
|
|
45
|
+
}
|
|
46
|
+
function _inherits(subClass, superClass) {
|
|
47
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
48
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
49
|
+
}
|
|
50
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
51
|
+
constructor: {
|
|
52
|
+
value: subClass,
|
|
53
|
+
writable: true,
|
|
54
|
+
configurable: true
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
58
|
+
}
|
|
59
|
+
function _interop_require_default(obj) {
|
|
60
|
+
return obj && obj.__esModule ? obj : {
|
|
61
|
+
default: obj
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function _possible_constructor_return(self, call) {
|
|
65
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
66
|
+
return call;
|
|
67
|
+
}
|
|
68
|
+
return _assert_this_initialized(self);
|
|
69
|
+
}
|
|
70
|
+
function _set_prototype_of(o, p) {
|
|
71
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
72
|
+
o.__proto__ = p;
|
|
73
|
+
return o;
|
|
74
|
+
};
|
|
75
|
+
return _set_prototype_of(o, p);
|
|
76
|
+
}
|
|
77
|
+
function _type_of(obj) {
|
|
78
|
+
"@swc/helpers - typeof";
|
|
79
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
80
|
+
}
|
|
81
|
+
function _is_native_reflect_construct() {
|
|
82
|
+
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
83
|
+
if (Reflect.construct.sham) return false;
|
|
84
|
+
if (typeof Proxy === "function") return true;
|
|
85
|
+
try {
|
|
86
|
+
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
87
|
+
return true;
|
|
88
|
+
} catch (e) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function _create_super(Derived) {
|
|
93
|
+
var hasNativeReflectConstruct = _is_native_reflect_construct();
|
|
94
|
+
return function _createSuperInternal() {
|
|
95
|
+
var Super = _get_prototype_of(Derived), result;
|
|
96
|
+
if (hasNativeReflectConstruct) {
|
|
97
|
+
var NewTarget = _get_prototype_of(this).constructor;
|
|
98
|
+
result = Reflect.construct(Super, arguments, NewTarget);
|
|
99
|
+
} else {
|
|
100
|
+
result = Super.apply(this, arguments);
|
|
101
|
+
}
|
|
102
|
+
return _possible_constructor_return(this, result);
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
var BracketedConstructor = /*#__PURE__*/ function(Constructor) {
|
|
106
|
+
_inherits(BracketedConstructor, Constructor);
|
|
107
|
+
var _super = _create_super(BracketedConstructor);
|
|
108
|
+
function BracketedConstructor() {
|
|
109
|
+
_class_call_check(this, BracketedConstructor);
|
|
110
|
+
return _super.apply(this, arguments);
|
|
111
|
+
}
|
|
112
|
+
_create_class(BracketedConstructor, null, [
|
|
113
|
+
{
|
|
114
|
+
key: "fromNothing",
|
|
115
|
+
value: function fromNothing() {
|
|
116
|
+
var node = _bracketed.default, tokens = _bracketed1.default, string = (0, _string.nodeAsString)(node, tokens), termNode = node, bracketedConstructor = new BracketedConstructor(termNode, string);
|
|
117
|
+
return bracketedConstructor;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
]);
|
|
121
|
+
return BracketedConstructor;
|
|
122
|
+
}(_constructor.default);
|
|
123
|
+
var bracketedConstructor = BracketedConstructor.fromNothing();
|
|
124
|
+
var _default = bracketedConstructor;
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3Rvci9icmFja2V0ZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb25zdHJ1Y3RvciBmcm9tIFwiLi4vY29uc3RydWN0b3JcIjtcbmltcG9ydCBicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ob2RlIGZyb20gXCIuLi9ub2RlL3Rlcm0vY29uc3RydWN0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgYnJhY2tldGVkQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyBmcm9tIFwiLi4vdG9rZW5zL2NvbnN0cnVjdG9yRGVjbGFyYXRpb24vYnJhY2tldGVkXCI7XG5cbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNsYXNzIEJyYWNrZXRlZENvbnN0cnVjdG9yIGV4dGVuZHMgQ29uc3RydWN0b3Ige1xuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3Qgbm9kZSA9IGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUsICAvLy9cbiAgICAgICAgICB0b2tlbnMgPSBicmFja2V0ZWRDb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zLCAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBub2RlQXNTdHJpbmcobm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgIGJyYWNrZXRlZENvbnN0cnVjdG9yID0gbmV3IEJyYWNrZXRlZENvbnN0cnVjdG9yKHRlcm1Ob2RlLCBzdHJpbmcpO1xuXG4gICAgcmV0dXJuIGJyYWNrZXRlZENvbnN0cnVjdG9yO1xuICB9XG59XG5cbmNvbnN0IGJyYWNrZXRlZENvbnN0cnVjdG9yID0gQnJhY2tldGVkQ29uc3RydWN0b3IuZnJvbU5vdGhpbmcoKTtcblxuZXhwb3J0IGRlZmF1bHQgYnJhY2tldGVkQ29uc3RydWN0b3I7XG4iXSwibmFtZXMiOlsiQnJhY2tldGVkQ29uc3RydWN0b3IiLCJmcm9tTm90aGluZyIsIm5vZGUiLCJicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ob2RlIiwidG9rZW5zIiwiYnJhY2tldGVkQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyIsInN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRlcm1Ob2RlIiwiYnJhY2tldGVkQ29uc3RydWN0b3IiLCJDb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBc0JBOzs7ZUFBQTs7O2tFQXBCd0I7Z0VBQ2lCO2lFQUNTO3NCQUVyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QixJQUFBLEFBQU1BLHFDQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBO2dDQUFBQTs7O2tCQUFBQTs7WUFDR0MsS0FBQUE7bUJBQVAsU0FBT0E7Z0JBQ0wsSUFBTUMsT0FBT0Msa0JBQTRCLEVBQ25DQyxTQUFTQyxtQkFBcUMsRUFDOUNDLFNBQVNDLElBQUFBLG9CQUFZLEVBQUNMLE1BQU1FLFNBQzVCSSxXQUFXTixNQUNYTyx1QkFBdUIsSUFOM0JULHFCQU1vRFEsVUFBVUY7Z0JBRWhFLE9BQU9HO1lBQ1Q7OztXQVRJVDtFQUE2QlUsb0JBQVc7QUFZOUMsSUFBTUQsdUJBQXVCVCxxQkFBcUJDLFdBQVc7SUFFN0QsV0FBZVEifQ==
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var _bracketed = /*#__PURE__*/ _interop_require_default(require("../../../tokens/
|
|
11
|
+
var _bracketed = /*#__PURE__*/ _interop_require_default(require("../../../tokens/unqualifiedStatement/combinator/bracketed"));
|
|
12
12
|
var _node = require("../../../utilities/node");
|
|
13
13
|
function _interop_require_default(obj) {
|
|
14
14
|
return obj && obj.__esModule ? obj : {
|
|
@@ -18,4 +18,4 @@ function _interop_require_default(obj) {
|
|
|
18
18
|
var bracketedCombinatorStatementNode = (0, _node.statementNodeFromUnqualifiedStatementTokens)(_bracketed.default);
|
|
19
19
|
var _default = bracketedCombinatorStatementNode;
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL3N0YXRlbWVudC9jb21iaW5hdG9yL2JyYWNrZXRlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3JVbnF1YWxpZmllZFN0YXRlbWVudFRva2VucyBmcm9tIFwiLi4vLi4vLi4vdG9rZW5zL3VucXVhbGlmaWVkU3RhdGVtZW50L2NvbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5cbmltcG9ydCB7IHN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL25vZGVcIjtcblxuY29uc3QgYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zKGJyYWNrZXRlZENvbWJpbmF0b3JVbnF1YWxpZmllZFN0YXRlbWVudFRva2Vucyk7XG5cbmV4cG9ydCBkZWZhdWx0IGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlO1xuIl0sIm5hbWVzIjpbImJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsImJyYWNrZXRlZENvbWJpbmF0b3JVbnF1YWxpZmllZFN0YXRlbWVudFRva2VucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0VBTjBEO29CQUVFOzs7Ozs7QUFFNUQsSUFBTUEsbUNBQW1DQyxJQUFBQSxpREFBMkMsRUFBQ0Msa0JBQTZDO0lBRWxJLFdBQWVGIn0=
|
|
@@ -0,0 +1,21 @@
|
|
|
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 _bracketed = /*#__PURE__*/ _interop_require_default(require("../../../tokens/constructorDeclaration/bracketed"));
|
|
12
|
+
var _node = require("../../../utilities/node");
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
var bracketedConstructorTermNode = (0, _node.termNodeFromConstructorDeclarationTokens)(_bracketed.default);
|
|
19
|
+
var _default = bracketedConstructorTermNode;
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL3Rlcm0vY29uc3RydWN0b3IvYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgYnJhY2tldGVkQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyBmcm9tIFwiLi4vLi4vLi4vdG9rZW5zL2NvbnN0cnVjdG9yRGVjbGFyYXRpb24vYnJhY2tldGVkXCI7XG5cbmltcG9ydCB7IHRlcm1Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL25vZGVcIjtcblxuY29uc3QgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSA9IHRlcm1Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMoYnJhY2tldGVkQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucyk7XG5cbmV4cG9ydCBkZWZhdWx0IGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGU7XG4iXSwibmFtZXMiOlsiYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSIsInRlcm1Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJicmFja2V0ZWRDb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnRUFOa0Q7b0JBRU87Ozs7OztBQUV6RCxJQUFNQSwrQkFBK0JDLElBQUFBLDhDQUF3QyxFQUFDQyxrQkFBcUM7SUFFbkgsV0FBZUYifQ==
|
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _combinator = /*#__PURE__*/ _interop_require_default(require("../combinator"));
|
|
12
12
|
var _bracketed = /*#__PURE__*/ _interop_require_default(require("../node/statement/combinator/bracketed"));
|
|
13
|
-
var _bracketed1 = /*#__PURE__*/ _interop_require_default(require("../tokens/
|
|
13
|
+
var _bracketed1 = /*#__PURE__*/ _interop_require_default(require("../tokens/unqualifiedStatement/combinator/bracketed"));
|
|
14
14
|
var _string = require("../utilities/string");
|
|
15
15
|
function _assert_this_initialized(self) {
|
|
16
16
|
if (self === void 0) {
|
|
@@ -123,4 +123,4 @@ var BracketedCombinator = /*#__PURE__*/ function(Combinator) {
|
|
|
123
123
|
var bracketedCombinator = BracketedCombinator.fromNothing();
|
|
124
124
|
var _default = bracketedCombinator;
|
|
125
125
|
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vY21iaW5hdG9yL2JyYWNrZXRlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IENvbWJpbmF0b3IgZnJvbSBcIi4uL2NvbWJpbmF0b3JcIjtcbmltcG9ydCBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50Tm9kZSBmcm9tIFwiLi4vbm9kZS9zdGF0ZW1lbnQvY29tYmluYXRvci9icmFja2V0ZWRcIjtcbmltcG9ydCBicmFja2V0ZWRDb21iaW5hdG9yVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMgZnJvbSBcIi4uL3Rva2Vucy91bnF1YWxpZmllZFN0YXRlbWVudC9jb21iaW5hdG9yL2JyYWNrZXRlZFwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5jbGFzcyBCcmFja2V0ZWRDb21iaW5hdG9yIGV4dGVuZHMgQ29tYmluYXRvciB7XG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBub2RlID0gYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICB0b2tlbnMgPSBicmFja2V0ZWRDb21iaW5hdG9yVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIC8vL1xuICAgICAgICAgIHN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0b2tlbnMpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICBicmFja2V0ZWRDb21iaW5hdG9yID0gbmV3IEJyYWNrZXRlZENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgc3RyaW5nKTtcblxuICAgIHJldHVybiBicmFja2V0ZWRDb21iaW5hdG9yO1xuICB9XG59XG5cbmNvbnN0IGJyYWNrZXRlZENvbWJpbmF0b3IgPSBCcmFja2V0ZWRDb21iaW5hdG9yLmZyb21Ob3RoaW5nKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGJyYWNrZXRlZENvbWJpbmF0b3I7XG4iXSwibmFtZXMiOlsiQnJhY2tldGVkQ29tYmluYXRvciIsImZyb21Ob3RoaW5nIiwibm9kZSIsImJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwidG9rZW5zIiwiYnJhY2tldGVkQ29tYmluYXRvclVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwic3RyaW5nIiwibm9kZUFzU3RyaW5nIiwic3RhdGVtZW50Tm9kZSIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJDb21iaW5hdG9yIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzQkE7OztlQUFBOzs7aUVBcEJ1QjtnRUFDc0I7aUVBQ2E7c0JBRTdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdCLElBQUEsQUFBTUEsb0NBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNHQyxLQUFBQTttQkFBUCxTQUFPQTtnQkFDTCxJQUFNQyxPQUFPQyxrQkFBZ0MsRUFDdkNDLFNBQVNDLG1CQUE2QyxFQUN0REMsU0FBU0MsSUFBQUEsb0JBQVksRUFBQ0wsTUFBTUUsU0FDNUJJLGdCQUFnQk4sTUFDaEJPLHNCQUFzQixJQU4xQlQsb0JBTWtEUSxlQUFlRjtnQkFFbkUsT0FBT0c7WUFDVDs7O1dBVElUO0VBQTRCVSxtQkFBVTtBQVk1QyxJQUFNRCxzQkFBc0JULG9CQUFvQkMsV0FBVztJQUUzRCxXQUFlUSJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
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 _typeNames = require("../../typeNames");
|
|
12
|
+
var _tokens = require("../../utilities/tokens");
|
|
13
|
+
var bracketedConstructorTermString = "(".concat(_typeNames.OBJECT_TYPE_NAME, "):").concat(_typeNames.OBJECT_TYPE_NAME);
|
|
14
|
+
var bracketedConstructorDeclarationTokens = (0, _tokens.constructorDeclarationTokensFromTermString)(bracketedConstructorTermString);
|
|
15
|
+
var _default = bracketedConstructorDeclarationTokens;
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbnMvY29uc3RydWN0b3JEZWNsYXJhdGlvbi9icmFja2V0ZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IE9CSkVDVF9UWVBFX05BTUUgfSBmcm9tIFwiLi4vLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbVRlcm1TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3Rva2Vuc1wiO1xuXG5jb25zdCBicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1TdHJpbmcgPSBgKCR7T0JKRUNUX1RZUEVfTkFNRX0pOiR7T0JKRUNUX1RZUEVfTkFNRX1gO1xuXG5jb25zdCBicmFja2V0ZWRDb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zID0gY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vuc0Zyb21UZXJtU3RyaW5nKGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybVN0cmluZylcblxuZXhwb3J0IGRlZmF1bHQgYnJhY2tldGVkQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucztcbiJdLCJuYW1lcyI6WyJicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1TdHJpbmciLCJPQkpFQ1RfVFlQRV9OQU1FIiwiYnJhY2tldGVkQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnNGcm9tVGVybVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7eUJBUGlDO3NCQUMwQjtBQUUzRCxJQUFNQSxpQ0FBaUMsQUFBQyxJQUF3QkMsT0FBckJBLDJCQUFnQixFQUFDLE1BQXFCLE9BQWpCQSwyQkFBZ0I7QUFFaEYsSUFBTUMsd0NBQXdDQyxJQUFBQSxrREFBMEMsRUFBQ0g7SUFFekYsV0FBZUUifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
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 _metaTypeNames = require("../../../metaTypeNames");
|
|
12
|
+
var _tokens = require("../../../utilities/tokens");
|
|
13
|
+
var bracketedCombinatorStatementString = "(".concat(_metaTypeNames.STATEMENT_META_TYPE_NAME, ")");
|
|
14
|
+
var bracketedCombinatorUnqualifiedStatementTokens = (0, _tokens.unqualifiedStatementTokensFromStatementString)(bracketedCombinatorStatementString);
|
|
15
|
+
var _default = bracketedCombinatorUnqualifiedStatementTokens;
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b2tlbnMvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvY29tYmluYXRvci9icmFja2V0ZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFNUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi8uLi9tZXRhVHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21TdGF0ZW1lbnRTdHJpbmcgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL3Rva2Vuc1wiO1xuXG5jb25zdCBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50U3RyaW5nID0gYCgke1NUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRX0pYDtcblxuY29uc3QgYnJhY2tldGVkQ29tYmluYXRvclVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tU3RhdGVtZW50U3RyaW5nKGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnRTdHJpbmcpXG5cbmV4cG9ydCBkZWZhdWx0IGJyYWNrZXRlZENvbWJpbmF0b3JVbnF1YWxpZmllZFN0YXRlbWVudFRva2VucztcbiJdLCJuYW1lcyI6WyJicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50U3RyaW5nIiwiU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FIiwiYnJhY2tldGVkQ29tYmluYXRvclVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tU3RhdGVtZW50U3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7Ozs2QkFQeUM7c0JBQ3FCO0FBRTlELElBQU1BLHFDQUFxQyxBQUFDLElBQTRCLE9BQXpCQyx1Q0FBd0IsRUFBQztBQUV4RSxJQUFNQyxnREFBZ0RDLElBQUFBLHFEQUE2QyxFQUFDSDtJQUVwRyxXQUFlRSJ9
|
package/lib/verify/term.js
CHANGED
|
@@ -19,6 +19,7 @@ _export(exports, {
|
|
|
19
19
|
var _term = /*#__PURE__*/ _interop_require_default(require("../term"));
|
|
20
20
|
var _term1 = /*#__PURE__*/ _interop_require_default(require("../verifier/nodes/term"));
|
|
21
21
|
var _givenVariable = /*#__PURE__*/ _interop_require_default(require("../verify/givenVariable"));
|
|
22
|
+
var _bracketed = /*#__PURE__*/ _interop_require_default(require("../constructor/bracketed"));
|
|
22
23
|
var _array = require("../utilities/array");
|
|
23
24
|
var _query = require("../utilities/query");
|
|
24
25
|
function _interop_require_default(obj) {
|
|
@@ -26,14 +27,15 @@ function _interop_require_default(obj) {
|
|
|
26
27
|
default: obj
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
|
-
var variableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
|
|
30
|
+
var termNodeQuery = (0, _query.nodeQuery)("/term/argument/term"), variableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
|
|
30
31
|
function verifyTerm(termNode, terms, context, verifyAhead) {
|
|
31
32
|
var termVerified;
|
|
32
33
|
var termString = context.nodeAsString(termNode);
|
|
33
34
|
context.trace("Verifying the '".concat(termString, "' term..."), termNode);
|
|
34
35
|
var verifyTermFunctions = [
|
|
35
36
|
verifyTermAsVariable,
|
|
36
|
-
verifyTermAgainstConstructors
|
|
37
|
+
verifyTermAgainstConstructors,
|
|
38
|
+
verifyTermAgainstBracketedConstructor
|
|
37
39
|
];
|
|
38
40
|
termVerified = verifyTermFunctions.some(function(verifyTermFunction) {
|
|
39
41
|
var termVerified = verifyTermFunction(termNode, terms, context, verifyAhead);
|
|
@@ -84,6 +86,26 @@ function verifyTermAsVariable(termNode, terms, context, verifyAhead) {
|
|
|
84
86
|
}
|
|
85
87
|
return termVerifiedAsVariable;
|
|
86
88
|
}
|
|
89
|
+
function verifyTermAgainstConstructor(termNode, terms, constructor, context, verifyAhead) {
|
|
90
|
+
var termVerifiedAgainstConstructor;
|
|
91
|
+
var termString = context.nodeAsString(termNode), constructorString = constructor.getString();
|
|
92
|
+
context.trace("Verifying the '".concat(termString, "' term against the '").concat(constructorString, "' constructor..."), termNode);
|
|
93
|
+
var constructorTermNode = constructor.getTermNode(), nonTerminalNNdeA = termNode, nonTerminalNodeB = constructorTermNode, nodeVerified = _term1.default.verifyNonTerminalNode(nonTerminalNNdeA, nonTerminalNodeB, context, function() {
|
|
94
|
+
var verifiedAhead;
|
|
95
|
+
var type = constructor.getType(), term = _term.default.fromTermNodeAndType(termNode, type);
|
|
96
|
+
terms.push(term);
|
|
97
|
+
verifiedAhead = verifyAhead();
|
|
98
|
+
if (!verifiedAhead) {
|
|
99
|
+
terms.pop();
|
|
100
|
+
}
|
|
101
|
+
return verifiedAhead;
|
|
102
|
+
});
|
|
103
|
+
termVerifiedAgainstConstructor = nodeVerified; ///
|
|
104
|
+
if (termVerifiedAgainstConstructor) {
|
|
105
|
+
context.debug("...verified the '".concat(termString, "' term against the '").concat(constructorString, "' constructor."), termNode);
|
|
106
|
+
}
|
|
107
|
+
return termVerifiedAgainstConstructor;
|
|
108
|
+
}
|
|
87
109
|
function verifyTermAgainstConstructors(termNode, terms, context, verifyAhead) {
|
|
88
110
|
var termVerifiedAgainstConstructors = false;
|
|
89
111
|
var variableNode = variableNodeQuery(termNode);
|
|
@@ -98,25 +120,41 @@ function verifyTermAgainstConstructors(termNode, terms, context, verifyAhead) {
|
|
|
98
120
|
}
|
|
99
121
|
return termVerifiedAgainstConstructors;
|
|
100
122
|
}
|
|
101
|
-
function
|
|
102
|
-
var
|
|
103
|
-
var termString = context.nodeAsString(termNode),
|
|
104
|
-
context.trace("Verifying the '".concat(termString, "' term against the '").concat(
|
|
105
|
-
var
|
|
123
|
+
function verifyTermAgainstBracketedConstructor(termNode, terms, context, verifyAhead) {
|
|
124
|
+
var termVerifiedAgainstBracketedConstructor;
|
|
125
|
+
var termString = context.nodeAsString(termNode), bracketedConstructorString = _bracketed.default.getString();
|
|
126
|
+
context.trace("Verifying the '".concat(termString, "' term against the '").concat(bracketedConstructorString, "' bracketed constructor..."), termNode);
|
|
127
|
+
var bracketedConstructorTermNode = _bracketed.default.getTermNode(), nonTerminalNNdeA = termNode, nonTerminalNodeB = bracketedConstructorTermNode, nodeVerified = _term1.default.verifyNonTerminalNode(nonTerminalNNdeA, nonTerminalNodeB, context, function() {
|
|
106
128
|
var verifiedAhead;
|
|
107
|
-
var
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
129
|
+
var bracketedTermNode = termNode; ///
|
|
130
|
+
termNode = termNodeQuery(termNode); ///
|
|
131
|
+
if (termNode === null) {
|
|
132
|
+
verifiedAhead = false;
|
|
133
|
+
} else {
|
|
134
|
+
var type;
|
|
135
|
+
verifyTerm(termNode, terms, context, function() {
|
|
136
|
+
var verifiedAhead;
|
|
137
|
+
var firstTerm = (0, _array.first)(terms), term = firstTerm; ///
|
|
138
|
+
type = term.getType();
|
|
139
|
+
verifiedAhead = true;
|
|
140
|
+
return verifiedAhead;
|
|
141
|
+
});
|
|
111
142
|
terms.pop();
|
|
143
|
+
termNode = bracketedTermNode; ///
|
|
144
|
+
var term = _term.default.fromTermNodeAndType(termNode, type);
|
|
145
|
+
terms.push(term);
|
|
146
|
+
verifiedAhead = verifyAhead();
|
|
147
|
+
if (!verifiedAhead) {
|
|
148
|
+
terms.pop();
|
|
149
|
+
}
|
|
112
150
|
}
|
|
113
151
|
return verifiedAhead;
|
|
114
152
|
});
|
|
115
|
-
|
|
116
|
-
if (
|
|
117
|
-
context.debug("...verified the '".concat(termString, "' term against the '").concat(
|
|
153
|
+
termVerifiedAgainstBracketedConstructor = nodeVerified; ///
|
|
154
|
+
if (termVerifiedAgainstBracketedConstructor) {
|
|
155
|
+
context.debug("...verified the '".concat(termString, "' term against the '").concat(bracketedConstructorString, "' constructor."), termNode);
|
|
118
156
|
}
|
|
119
|
-
return
|
|
157
|
+
return termVerifiedAgainstBracketedConstructor;
|
|
120
158
|
}
|
|
121
159
|
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRlcm0gZnJvbSBcIi4uL3Rlcm1cIjtcbmltcG9ydCB0ZXJtTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvdGVybVwiO1xuaW1wb3J0IHZlcmlmeUdpdmVuVmFyaWFibGUgZnJvbSBcIi4uL3ZlcmlmeS9naXZlblZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGVybXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWQ7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCwgdGVybU5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeVRlcm1GdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5VGVybUFzVmFyaWFibGUsXG4gICAgdmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvcnNcbiAgXTtcblxuICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtRnVuY3Rpb25zLnNvbWUoKHZlcmlmeVRlcm1GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm1GdW5jdGlvbih0ZXJtTm9kZSwgdGVybXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHRlcm1WZXJpZmllZCkge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhbmRhbG9uZVRlcm0odGVybU5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhbmRhbG9uZVRlcm1WZXJpZmllZDtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgc3RhbmRhbG9uZSB0ZXJtLi4uYCwgdGVybU5vZGUpO1xuXG4gIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgIGNvbnRleHQgPSBmaWxlQ29udGV4dCwgIC8vL1xuICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gIHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQgPSB0ZXJtVmVyaWZpZWQ7ICAvLy9cblxuICBpZiAoc3RhbmRhbG9uZVRlcm1WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHN0YW5kYWxvbmUgdGVybS5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhbmRhbG9uZVRlcm1WZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbih0ZXJtTm9kZXNWZXJpZmllciwge1xuICB2ZXJpZnlUZXJtXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5VGVybTtcblxuZnVuY3Rpb24gdmVyaWZ5VGVybUFzVmFyaWFibGUodGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSB2YXJpYWJsZS4uLmAsIHRlcm1Ob2RlKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgIGdpdmVuVmFyaWFibGVWZXJpZmllZCA9IHZlcmlmeUdpdmVuVmFyaWFibGUodmFyaWFibGVOb2RlLCB2YXJpYWJsZXMsIGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICAgICAgICBjb25zdCBmaXJzdFZhcmlhYmxlID0gZmlyc3QodmFyaWFibGVzKSxcbiAgICAgICAgICAgICAgICAgIHZhcmlhYmxlID0gZmlyc3RWYXJpYWJsZSwgLy8vXG4gICAgICAgICAgICAgICAgICB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlQW5kVHlwZSh0ZXJtTm9kZSwgdHlwZSk7XG5cbiAgICAgICAgICAgIHRlcm1zLnB1c2godGVybSk7XG5cbiAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICAgICAgICBpZiAoIXZlcmlmaWVkQWhlYWQpIHtcbiAgICAgICAgICAgICAgdGVybXMucG9wKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IGdpdmVuVmFyaWFibGVWZXJpZmllZDsgIC8vL1xuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFzVmFyaWFibGUpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIHZhcmlhYmxlLmAsIHRlcm1Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkQXNWYXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvcnModGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyA9IGZhbHNlO1xuXG4gIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICBpZiAodmFyaWFibGVOb2RlID09PSBudWxsKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gY29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTtcblxuICAgIHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMgPSBjb25zdHJ1Y3RvcnMuc29tZSgoY29uc3RydWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvciA9IHZlcmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICBpZiAodGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcnM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcjtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpLFxuICAgICAgICBjb25zdHJ1Y3RvclN0cmluZyA9IGNvbnN0cnVjdG9yLmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYWdhaW5zdCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci4uLmAsIHRlcm1Ob2RlKTtcblxuICBjb25zdCBjb25zdHJ1Y3RvclRlcm1Ob2RlID0gY29uc3RydWN0b3IuZ2V0VGVybU5vZGUoKSxcbiAgICAgICAgbm9uVGVybWluYWxOTmRlQSA9IHRlcm1Ob2RlLCAgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBjb25zdHJ1Y3RvclRlcm1Ob2RlLCAgLy8vXG4gICAgICAgIG5vZGVWZXJpZmllZCA9IHRlcm1Ob2Rlc1ZlcmlmaWVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5OZGVBLCBub25UZXJtaW5hbE5vZGVCLCBjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICAgICAgICBjb25zdCB0eXBlID0gY29uc3RydWN0b3IuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUpO1xuXG4gICAgICAgICAgdGVybXMucHVzaCh0ZXJtKTtcblxuICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICAgICAgaWYgKCF2ZXJpZmllZEFoZWFkKSB7XG4gICAgICAgICAgICB0ZXJtcy5wb3AoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgfSk7XG5cbiAgdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yID0gbm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgaWYgKHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3Rvcikge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhZ2FpbnN0IHRoZSAnJHtjb25zdHJ1Y3RvclN0cmluZ30nIGNvbnN0cnVjdG9yLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3I7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5U3RhbmRhbG9uZVRlcm0iLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZlcmlmeVRlcm0iLCJ0ZXJtTm9kZSIsInRlcm1zIiwiY29udGV4dCIsInZlcmlmeUFoZWFkIiwidGVybVZlcmlmaWVkIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5VGVybUZ1bmN0aW9ucyIsInZlcmlmeVRlcm1Bc1ZhcmlhYmxlIiwidmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvcnMiLCJzb21lIiwidmVyaWZ5VGVybUZ1bmN0aW9uIiwiZGVidWciLCJmaWxlQ29udGV4dCIsInN0YW5kYWxvbmVUZXJtVmVyaWZpZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJ0ZXJtTm9kZXNWZXJpZmllciIsInRlcm1WZXJpZmllZEFzVmFyaWFibGUiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZXMiLCJnaXZlblZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZnlHaXZlblZhcmlhYmxlIiwidmVyaWZpZWRBaGVhZCIsImZpcnN0VmFyaWFibGUiLCJmaXJzdCIsInZhcmlhYmxlIiwidHlwZSIsImdldFR5cGUiLCJ0ZXJtIiwiVGVybSIsImZyb21UZXJtTm9kZUFuZFR5cGUiLCJwdXNoIiwicG9wIiwidGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImdldENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9yIiwidGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yIiwidmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yU3RyaW5nIiwiZ2V0U3RyaW5nIiwiY29uc3RydWN0b3JUZXJtTm9kZSIsImdldFRlcm1Ob2RlIiwibm9uVGVybWluYWxOTmRlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQThEQSxPQUEwQjtlQUExQjs7SUF4QmdCQSxvQkFBb0I7ZUFBcEJBOzs7MkRBcENDOzREQUNhO29FQUNFO3FCQUVWO3FCQUNJOzs7Ozs7QUFFMUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXBDLFNBQVNDLFdBQVdDLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFdBQVc7SUFDdkQsSUFBSUM7SUFFSixJQUFNQyxhQUFhSCxRQUFRSSxZQUFZLENBQUNOO0lBRXhDRSxRQUFRSyxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEYsWUFBVyxjQUFZTDtJQUV2RCxJQUFNUSxzQkFBc0I7UUFDMUJDO1FBQ0FDO0tBQ0Q7SUFFRE4sZUFBZUksb0JBQW9CRyxJQUFJLENBQUMsU0FBQ0M7UUFDdkMsSUFBTVIsZUFBZVEsbUJBQW1CWixVQUFVQyxPQUFPQyxTQUFTQztRQUVsRSxJQUFJQyxjQUFjO1lBQ2hCLE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSUEsY0FBYztRQUNoQkYsUUFBUVcsS0FBSyxDQUFDLEFBQUMsb0JBQThCLE9BQVhSLFlBQVcsWUFBVUw7SUFDekQ7SUFFQSxPQUFPSTtBQUNUO0FBRU8sU0FBU1IscUJBQXFCSSxRQUFRLEVBQUVjLFdBQVcsRUFBRVgsV0FBVztJQUNyRSxJQUFJWTtJQUVKLElBQU1WLGFBQWFTLFlBQVlSLFlBQVksQ0FBQ047SUFFNUNj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
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRlcm0gZnJvbSBcIi4uL3Rlcm1cIjtcbmltcG9ydCB0ZXJtTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvdGVybVwiO1xuaW1wb3J0IHZlcmlmeUdpdmVuVmFyaWFibGUgZnJvbSBcIi4uL3ZlcmlmeS9naXZlblZhcmlhYmxlXCI7XG5pbXBvcnQgYnJhY2tldGVkQ29uc3RydWN0b3IgZnJvbSBcIi4uL2NvbnN0cnVjdG9yL2JyYWNrZXRlZFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL2FyZ3VtZW50L3Rlcm1cIiksXG4gICAgICB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGVybXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWQ7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCwgdGVybU5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeVRlcm1GdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5VGVybUFzVmFyaWFibGUsXG4gICAgdmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvcnMsXG4gICAgdmVyaWZ5VGVybUFnYWluc3RCcmFja2V0ZWRDb25zdHJ1Y3RvclxuICBdO1xuXG4gIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm1GdW5jdGlvbnMuc29tZSgodmVyaWZ5VGVybUZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybUZ1bmN0aW9uKHRlcm1Ob2RlLCB0ZXJtcywgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgaWYgKHRlcm1WZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTdGFuZGFsb25lVGVybSh0ZXJtTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGFuZGFsb25lVGVybVZlcmlmaWVkO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyBzdGFuZGFsb25lIHRlcm0uLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgc3RhbmRhbG9uZVRlcm1WZXJpZmllZCA9IHRlcm1WZXJpZmllZDsgIC8vL1xuXG4gIGlmIChzdGFuZGFsb25lVGVybVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgc3RhbmRhbG9uZSB0ZXJtLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGFuZGFsb25lVGVybVZlcmlmaWVkO1xufVxuXG5PYmplY3QuYXNzaWduKHRlcm1Ob2Rlc1ZlcmlmaWVyLCB7XG4gIHZlcmlmeVRlcm1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB2ZXJpZnlUZXJtO1xuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtQXNWYXJpYWJsZSh0ZXJtTm9kZSwgdGVybXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIHZhcmlhYmxlLi4uYCwgdGVybU5vZGUpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gW10sXG4gICAgICAgICAgZ2l2ZW5WYXJpYWJsZVZlcmlmaWVkID0gdmVyaWZ5R2l2ZW5WYXJpYWJsZSh2YXJpYWJsZU5vZGUsIHZhcmlhYmxlcywgY29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICAgICAgdmFyaWFibGUgPSBmaXJzdFZhcmlhYmxlLCAvLy9cbiAgICAgICAgICAgICAgICAgIHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgICB0ZXJtID0gVGVybS5mcm9tVGVybU5vZGVBbmRUeXBlKHRlcm1Ob2RlLCB0eXBlKTtcblxuICAgICAgICAgICAgdGVybXMucHVzaCh0ZXJtKTtcblxuICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgICB0ZXJtcy5wb3AoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gZ2l2ZW5WYXJpYWJsZVZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgdmFyaWFibGUuYCwgdGVybU5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9yKHRlcm1Ob2RlLCB0ZXJtcywgY29uc3RydWN0b3IsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3I7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKSxcbiAgICAgICAgY29uc3RydWN0b3JTdHJpbmcgPSBjb25zdHJ1Y3Rvci5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFnYWluc3QgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgY29uc3RydWN0b3JUZXJtTm9kZSA9IGNvbnN0cnVjdG9yLmdldFRlcm1Ob2RlKCksXG4gICAgICAgIG5vblRlcm1pbmFsTk5kZUEgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gY29uc3RydWN0b3JUZXJtTm9kZSwgIC8vL1xuICAgICAgICBub2RlVmVyaWZpZWQgPSB0ZXJtTm9kZXNWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOTmRlQSwgbm9uVGVybWluYWxOb2RlQiwgY29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICAgICAgY29uc3QgdHlwZSA9IGNvbnN0cnVjdG9yLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICB0ZXJtID0gVGVybS5mcm9tVGVybU5vZGVBbmRUeXBlKHRlcm1Ob2RlLCB0eXBlKTtcblxuICAgICAgICAgIHRlcm1zLnB1c2godGVybSk7XG5cbiAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgdGVybXMucG9wKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvciA9IG5vZGVWZXJpZmllZDsgIC8vL1xuXG4gIGlmICh0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3IpIHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYWdhaW5zdCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyh0ZXJtTm9kZSwgdGVybXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3JzID0gZmFsc2U7XG5cbiAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gIGlmICh2YXJpYWJsZU5vZGUgPT09IG51bGwpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBjb250ZXh0LmdldENvbnN0cnVjdG9ycygpO1xuXG4gICAgdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyA9IGNvbnN0cnVjdG9ycy5zb21lKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgICAgY29uc3QgdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yID0gdmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdGVybXMsIGNvbnN0cnVjdG9yLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIGlmICh0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3IpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VGVybUFnYWluc3RCcmFja2V0ZWRDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdGVybXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBZ2FpbnN0QnJhY2tldGVkQ29uc3RydWN0b3I7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKSxcbiAgICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3JTdHJpbmcgPSBicmFja2V0ZWRDb25zdHJ1Y3Rvci5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFnYWluc3QgdGhlICcke2JyYWNrZXRlZENvbnN0cnVjdG9yU3RyaW5nfScgYnJhY2tldGVkIGNvbnN0cnVjdG9yLi4uYCwgdGVybU5vZGUpO1xuXG4gIGNvbnN0IGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUgPSBicmFja2V0ZWRDb25zdHJ1Y3Rvci5nZXRUZXJtTm9kZSgpLFxuICAgICAgICBub25UZXJtaW5hbE5OZGVBID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUsICAvLy9cbiAgICAgICAgbm9kZVZlcmlmaWVkID0gdGVybU5vZGVzVmVyaWZpZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTk5kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgICAgIGNvbnN0IGJyYWNrZXRlZFRlcm1Ob2RlID0gdGVybU5vZGU7IC8vL1xuXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHRlcm1Ob2RlKTsgLy8vXG5cbiAgICAgICAgICBpZiAodGVybU5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHR5cGU7XG5cbiAgICAgICAgICAgIHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgICAgICAgICAgICAgdGVybSA9IGZpcnN0VGVybTsgLy8vXG5cbiAgICAgICAgICAgICAgdHlwZSA9IHRlcm0uZ2V0VHlwZSgpO1xuXG4gICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRlcm1zLnBvcCgpO1xuXG4gICAgICAgICAgICB0ZXJtTm9kZSA9IGJyYWNrZXRlZFRlcm1Ob2RlOyAvLy9cblxuICAgICAgICAgICAgY29uc3QgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlQW5kVHlwZSh0ZXJtTm9kZSwgdHlwZSk7XG5cbiAgICAgICAgICAgIHRlcm1zLnB1c2godGVybSk7XG5cbiAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICAgICAgICBpZiAoIXZlcmlmaWVkQWhlYWQpIHtcbiAgICAgICAgICAgICAgdGVybXMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHRlcm1WZXJpZmllZEFnYWluc3RCcmFja2V0ZWRDb25zdHJ1Y3RvciA9IG5vZGVWZXJpZmllZDsgIC8vL1xuXG4gIGlmICh0ZXJtVmVyaWZpZWRBZ2FpbnN0QnJhY2tldGVkQ29uc3RydWN0b3IpIHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYWdhaW5zdCB0aGUgJyR7YnJhY2tldGVkQ29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkQWdhaW5zdEJyYWNrZXRlZENvbnN0cnVjdG9yO1xufVxuXG4iXSwibmFtZXMiOlsidmVyaWZ5U3RhbmRhbG9uZVRlcm0iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJ2ZXJpZnlUZXJtIiwidGVybU5vZGUiLCJ0ZXJtcyIsImNvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsInRlcm1WZXJpZmllZCIsInRlcm1TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVRlcm1GdW5jdGlvbnMiLCJ2ZXJpZnlUZXJtQXNWYXJpYWJsZSIsInZlcmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3JzIiwidmVyaWZ5VGVybUFnYWluc3RCcmFja2V0ZWRDb25zdHJ1Y3RvciIsInNvbWUiLCJ2ZXJpZnlUZXJtRnVuY3Rpb24iLCJkZWJ1ZyIsImZpbGVDb250ZXh0Iiwic3RhbmRhbG9uZVRlcm1WZXJpZmllZCIsIk9iamVjdCIsImFzc2lnbiIsInRlcm1Ob2Rlc1ZlcmlmaWVyIiwidGVybVZlcmlmaWVkQXNWYXJpYWJsZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlcyIsImdpdmVuVmFyaWFibGVWZXJpZmllZCIsInZlcmlmeUdpdmVuVmFyaWFibGUiLCJ2ZXJpZmllZEFoZWFkIiwiZmlyc3RWYXJpYWJsZSIsImZpcnN0IiwidmFyaWFibGUiLCJ0eXBlIiwiZ2V0VHlwZSIsInRlcm0iLCJUZXJtIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsInB1c2giLCJwb3AiLCJ2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9yIiwiY29uc3RydWN0b3IiLCJ0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3IiLCJjb25zdHJ1Y3RvclN0cmluZyIsImdldFN0cmluZyIsImNvbnN0cnVjdG9yVGVybU5vZGUiLCJnZXRUZXJtTm9kZSIsIm5vblRlcm1pbmFsTk5kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwidGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImdldENvbnN0cnVjdG9ycyIsInRlcm1WZXJpZmllZEFnYWluc3RCcmFja2V0ZWRDb25zdHJ1Y3RvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yU3RyaW5nIiwiYnJhY2tldGVkQ29uc3RydWN0b3IiLCJicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ob2RlIiwiYnJhY2tldGVkVGVybU5vZGUiLCJmaXJzdFRlcm0iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQWlFQSxPQUEwQjtlQUExQjs7SUF4QmdCQSxvQkFBb0I7ZUFBcEJBOzs7MkRBdkNDOzREQUNhO29FQUNFO2dFQUNDO3FCQUVYO3FCQUNJ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
|
package/package.json
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Constructor from "../constructor";
|
|
4
|
+
import bracketedConstructorTermNode from "../node/term/constructor/bracketed";
|
|
5
|
+
import bracketedConstructorDeclarationTokens from "../tokens/constructorDeclaration/bracketed";
|
|
6
|
+
|
|
7
|
+
import { nodeAsString } from "../utilities/string";
|
|
8
|
+
|
|
9
|
+
class BracketedConstructor extends Constructor {
|
|
10
|
+
static fromNothing() {
|
|
11
|
+
const node = bracketedConstructorTermNode, ///
|
|
12
|
+
tokens = bracketedConstructorDeclarationTokens, ///
|
|
13
|
+
string = nodeAsString(node, tokens),
|
|
14
|
+
termNode = node, ///
|
|
15
|
+
bracketedConstructor = new BracketedConstructor(termNode, string);
|
|
16
|
+
|
|
17
|
+
return bracketedConstructor;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const bracketedConstructor = BracketedConstructor.fromNothing();
|
|
22
|
+
|
|
23
|
+
export default bracketedConstructor;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import bracketedCombinatorUnqualifiedStatementTokens from "../../../tokens/unqualifiedStatement/combinator/bracketed";
|
|
4
4
|
|
|
5
5
|
import { statementNodeFromUnqualifiedStatementTokens } from "../../../utilities/node";
|
|
6
6
|
|
|
7
|
-
const bracketedCombinatorStatementNode = statementNodeFromUnqualifiedStatementTokens(
|
|
7
|
+
const bracketedCombinatorStatementNode = statementNodeFromUnqualifiedStatementTokens(bracketedCombinatorUnqualifiedStatementTokens);
|
|
8
8
|
|
|
9
9
|
export default bracketedCombinatorStatementNode;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import bracketedConstructorDeclarationTokens from "../../../tokens/constructorDeclaration/bracketed";
|
|
4
|
+
|
|
5
|
+
import { termNodeFromConstructorDeclarationTokens } from "../../../utilities/node";
|
|
6
|
+
|
|
7
|
+
const bracketedConstructorTermNode = termNodeFromConstructorDeclarationTokens(bracketedConstructorDeclarationTokens);
|
|
8
|
+
|
|
9
|
+
export default bracketedConstructorTermNode;
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
import Combinator from "../combinator";
|
|
4
4
|
import bracketedCombinatorStatementNode from "../node/statement/combinator/bracketed";
|
|
5
|
-
import
|
|
5
|
+
import bracketedCombinatorUnqualifiedStatementTokens from "../tokens/unqualifiedStatement/combinator/bracketed";
|
|
6
6
|
|
|
7
7
|
import { nodeAsString } from "../utilities/string";
|
|
8
8
|
|
|
9
9
|
class BracketedCombinator extends Combinator {
|
|
10
10
|
static fromNothing() {
|
|
11
11
|
const node = bracketedCombinatorStatementNode, ///
|
|
12
|
-
tokens =
|
|
12
|
+
tokens = bracketedCombinatorUnqualifiedStatementTokens, ///
|
|
13
13
|
string = nodeAsString(node, tokens),
|
|
14
14
|
statementNode = node, ///
|
|
15
15
|
bracketedCombinator = new BracketedCombinator(statementNode, string);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { OBJECT_TYPE_NAME } from "../../typeNames";
|
|
4
|
+
import { constructorDeclarationTokensFromTermString } from "../../utilities/tokens";
|
|
5
|
+
|
|
6
|
+
const bracketedConstructorTermString = `(${OBJECT_TYPE_NAME}):${OBJECT_TYPE_NAME}`;
|
|
7
|
+
|
|
8
|
+
const bracketedConstructorDeclarationTokens = constructorDeclarationTokensFromTermString(bracketedConstructorTermString)
|
|
9
|
+
|
|
10
|
+
export default bracketedConstructorDeclarationTokens;
|
|
@@ -5,6 +5,6 @@ import { unqualifiedStatementTokensFromStatementString } from "../../../utilitie
|
|
|
5
5
|
|
|
6
6
|
const bracketedCombinatorStatementString = `(${STATEMENT_META_TYPE_NAME})`;
|
|
7
7
|
|
|
8
|
-
const
|
|
8
|
+
const bracketedCombinatorUnqualifiedStatementTokens = unqualifiedStatementTokensFromStatementString(bracketedCombinatorStatementString)
|
|
9
9
|
|
|
10
|
-
export default
|
|
10
|
+
export default bracketedCombinatorUnqualifiedStatementTokens;
|
package/src/verify/term.js
CHANGED
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
import Term from "../term";
|
|
4
4
|
import termNodesVerifier from "../verifier/nodes/term";
|
|
5
5
|
import verifyGivenVariable from "../verify/givenVariable";
|
|
6
|
+
import bracketedConstructor from "../constructor/bracketed";
|
|
6
7
|
|
|
7
8
|
import { first } from "../utilities/array";
|
|
8
9
|
import { nodeQuery } from "../utilities/query";
|
|
9
10
|
|
|
10
|
-
const
|
|
11
|
+
const termNodeQuery = nodeQuery("/term/argument/term"),
|
|
12
|
+
variableNodeQuery = nodeQuery("/term/variable!");
|
|
11
13
|
|
|
12
14
|
function verifyTerm(termNode, terms, context, verifyAhead) {
|
|
13
15
|
let termVerified;
|
|
@@ -18,7 +20,8 @@ function verifyTerm(termNode, terms, context, verifyAhead) {
|
|
|
18
20
|
|
|
19
21
|
const verifyTermFunctions = [
|
|
20
22
|
verifyTermAsVariable,
|
|
21
|
-
verifyTermAgainstConstructors
|
|
23
|
+
verifyTermAgainstConstructors,
|
|
24
|
+
verifyTermAgainstBracketedConstructor
|
|
22
25
|
];
|
|
23
26
|
|
|
24
27
|
termVerified = verifyTermFunctions.some((verifyTermFunction) => {
|
|
@@ -102,6 +105,43 @@ function verifyTermAsVariable(termNode, terms, context, verifyAhead) {
|
|
|
102
105
|
return termVerifiedAsVariable;
|
|
103
106
|
}
|
|
104
107
|
|
|
108
|
+
function verifyTermAgainstConstructor(termNode, terms, constructor, context, verifyAhead) {
|
|
109
|
+
let termVerifiedAgainstConstructor;
|
|
110
|
+
|
|
111
|
+
const termString = context.nodeAsString(termNode),
|
|
112
|
+
constructorString = constructor.getString();
|
|
113
|
+
|
|
114
|
+
context.trace(`Verifying the '${termString}' term against the '${constructorString}' constructor...`, termNode);
|
|
115
|
+
|
|
116
|
+
const constructorTermNode = constructor.getTermNode(),
|
|
117
|
+
nonTerminalNNdeA = termNode, ///
|
|
118
|
+
nonTerminalNodeB = constructorTermNode, ///
|
|
119
|
+
nodeVerified = termNodesVerifier.verifyNonTerminalNode(nonTerminalNNdeA, nonTerminalNodeB, context, () => {
|
|
120
|
+
let verifiedAhead;
|
|
121
|
+
|
|
122
|
+
const type = constructor.getType(),
|
|
123
|
+
term = Term.fromTermNodeAndType(termNode, type);
|
|
124
|
+
|
|
125
|
+
terms.push(term);
|
|
126
|
+
|
|
127
|
+
verifiedAhead = verifyAhead();
|
|
128
|
+
|
|
129
|
+
if (!verifiedAhead) {
|
|
130
|
+
terms.pop();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return verifiedAhead;
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
termVerifiedAgainstConstructor = nodeVerified; ///
|
|
137
|
+
|
|
138
|
+
if (termVerifiedAgainstConstructor) {
|
|
139
|
+
context.debug(`...verified the '${termString}' term against the '${constructorString}' constructor.`, termNode);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return termVerifiedAgainstConstructor;
|
|
143
|
+
}
|
|
144
|
+
|
|
105
145
|
function verifyTermAgainstConstructors(termNode, terms, context, verifyAhead) {
|
|
106
146
|
let termVerifiedAgainstConstructors = false;
|
|
107
147
|
|
|
@@ -122,39 +162,66 @@ function verifyTermAgainstConstructors(termNode, terms, context, verifyAhead) {
|
|
|
122
162
|
return termVerifiedAgainstConstructors;
|
|
123
163
|
}
|
|
124
164
|
|
|
125
|
-
function
|
|
126
|
-
let
|
|
165
|
+
function verifyTermAgainstBracketedConstructor(termNode, terms, context, verifyAhead) {
|
|
166
|
+
let termVerifiedAgainstBracketedConstructor;
|
|
127
167
|
|
|
128
168
|
const termString = context.nodeAsString(termNode),
|
|
129
|
-
|
|
169
|
+
bracketedConstructorString = bracketedConstructor.getString();
|
|
130
170
|
|
|
131
|
-
context.trace(`Verifying the '${termString}' term against the '${
|
|
171
|
+
context.trace(`Verifying the '${termString}' term against the '${bracketedConstructorString}' bracketed constructor...`, termNode);
|
|
132
172
|
|
|
133
|
-
const
|
|
173
|
+
const bracketedConstructorTermNode = bracketedConstructor.getTermNode(),
|
|
134
174
|
nonTerminalNNdeA = termNode, ///
|
|
135
|
-
nonTerminalNodeB =
|
|
175
|
+
nonTerminalNodeB = bracketedConstructorTermNode, ///
|
|
136
176
|
nodeVerified = termNodesVerifier.verifyNonTerminalNode(nonTerminalNNdeA, nonTerminalNodeB, context, () => {
|
|
137
177
|
let verifiedAhead;
|
|
138
178
|
|
|
139
|
-
const
|
|
140
|
-
term = Term.fromTermNodeAndType(termNode, type);
|
|
179
|
+
const bracketedTermNode = termNode; ///
|
|
141
180
|
|
|
142
|
-
|
|
181
|
+
termNode = termNodeQuery(termNode); ///
|
|
143
182
|
|
|
144
|
-
|
|
183
|
+
if (termNode === null) {
|
|
184
|
+
verifiedAhead = false;
|
|
185
|
+
} else {
|
|
186
|
+
let type;
|
|
187
|
+
|
|
188
|
+
verifyTerm(termNode, terms, context, () => {
|
|
189
|
+
let verifiedAhead;
|
|
190
|
+
|
|
191
|
+
const firstTerm = first(terms),
|
|
192
|
+
term = firstTerm; ///
|
|
193
|
+
|
|
194
|
+
type = term.getType();
|
|
195
|
+
|
|
196
|
+
verifiedAhead = true;
|
|
197
|
+
|
|
198
|
+
return verifiedAhead;
|
|
199
|
+
});
|
|
145
200
|
|
|
146
|
-
if (!verifiedAhead) {
|
|
147
201
|
terms.pop();
|
|
202
|
+
|
|
203
|
+
termNode = bracketedTermNode; ///
|
|
204
|
+
|
|
205
|
+
const term = Term.fromTermNodeAndType(termNode, type);
|
|
206
|
+
|
|
207
|
+
terms.push(term);
|
|
208
|
+
|
|
209
|
+
verifiedAhead = verifyAhead();
|
|
210
|
+
|
|
211
|
+
if (!verifiedAhead) {
|
|
212
|
+
terms.pop();
|
|
213
|
+
}
|
|
148
214
|
}
|
|
149
215
|
|
|
150
216
|
return verifiedAhead;
|
|
151
217
|
});
|
|
152
218
|
|
|
153
|
-
|
|
219
|
+
termVerifiedAgainstBracketedConstructor = nodeVerified; ///
|
|
154
220
|
|
|
155
|
-
if (
|
|
156
|
-
context.debug(`...verified the '${termString}' term against the '${
|
|
221
|
+
if (termVerifiedAgainstBracketedConstructor) {
|
|
222
|
+
context.debug(`...verified the '${termString}' term against the '${bracketedConstructorString}' constructor.`, termNode);
|
|
157
223
|
}
|
|
158
224
|
|
|
159
|
-
return
|
|
225
|
+
return termVerifiedAgainstBracketedConstructor;
|
|
160
226
|
}
|
|
227
|
+
|
|
@@ -1,17 +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 _metaTypeNames = require("../../../metaTypeNames");
|
|
12
|
-
var _tokens = require("../../../utilities/tokens");
|
|
13
|
-
var bracketedCombinatorStatementString = "(".concat(_metaTypeNames.STATEMENT_META_TYPE_NAME, ")");
|
|
14
|
-
var unqualifiedBracketedCombinatorStatementTokens = (0, _tokens.unqualifiedStatementTokensFromStatementString)(bracketedCombinatorStatementString);
|
|
15
|
-
var _default = unqualifiedBracketedCombinatorStatementTokens;
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b2tlbnMvc3RhdGVtZW50L2NvbWJpbmF0b3IvYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vLi4vLi4vbWV0YVR5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tU3RhdGVtZW50U3RyaW5nIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxpdGllcy90b2tlbnNcIjtcblxuY29uc3QgYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudFN0cmluZyA9IGAoJHtTVEFURU1FTlRfTUVUQV9UWVBFX05BTUV9KWA7XG5cbmNvbnN0IHVucXVhbGlmaWVkQnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudFRva2VucyA9IHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyhicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50U3RyaW5nKVxuXG5leHBvcnQgZGVmYXVsdCB1bnF1YWxpZmllZEJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnM7XG4iXSwibmFtZXMiOlsiYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudFN0cmluZyIsIlNUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRSIsInVucXVhbGlmaWVkQnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudFRva2VucyIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7NkJBUHlDO3NCQUNxQjtBQUU5RCxJQUFNQSxxQ0FBcUMsQUFBQyxJQUE0QixPQUF6QkMsdUNBQXdCLEVBQUM7QUFFeEUsSUFBTUMsZ0RBQWdEQyxJQUFBQSxxREFBNkMsRUFBQ0g7SUFFcEcsV0FBZUUifQ==
|