occam-verify-cli 1.0.383 → 1.0.385
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/action/verify.js +2 -1
- package/lib/context/file.js +2 -2
- package/lib/context/release.js +2 -2
- package/lib/mixins/statement/verify.js +3 -3
- package/lib/mixins/step/unify.js +4 -4
- package/lib/mixins/term/verify.js +4 -4
- package/lib/ontology/assertion/contained.js +316 -0
- package/lib/ontology/assertion/defined.js +290 -0
- package/lib/ontology/assertion/property.js +271 -0
- package/lib/ontology/assertion/satisfies.js +254 -0
- package/lib/ontology/assertion/subproof.js +186 -0
- package/lib/ontology/assertion/type.js +252 -0
- package/lib/{dom → ontology}/axiom.js +3 -3
- package/lib/{dom → ontology}/combinator/bracketed.js +4 -4
- package/lib/ontology/combinator.js +141 -0
- package/lib/ontology/conclusion.js +172 -0
- package/lib/{dom → ontology}/conjecture.js +3 -3
- package/lib/{dom → ontology}/constructor/bracketed.js +5 -5
- package/lib/ontology/constructor.js +171 -0
- package/lib/ontology/declaration/combinator.js +168 -0
- package/lib/ontology/declaration/complexType.js +346 -0
- package/lib/ontology/declaration/constructor.js +199 -0
- package/lib/ontology/declaration/metavariable.js +209 -0
- package/lib/ontology/declaration/simpleType.js +243 -0
- package/lib/ontology/declaration/typePrefix.js +181 -0
- package/lib/ontology/declaration/variable.js +197 -0
- package/lib/ontology/declaration.js +360 -0
- package/lib/ontology/deduction.js +186 -0
- package/lib/ontology/derivation.js +155 -0
- package/lib/ontology/equality.js +288 -0
- package/lib/{dom → ontology}/error.js +3 -3
- package/lib/ontology/frame.js +362 -0
- package/lib/ontology/hypothesis.js +190 -0
- package/lib/ontology/judgement.js +241 -0
- package/lib/ontology/label.js +199 -0
- package/lib/{dom → ontology}/lemma.js +3 -3
- package/lib/{dom → ontology}/metaLemma.js +3 -3
- package/lib/{dom → ontology}/metaType.js +3 -3
- package/lib/{dom → ontology}/metatheorem.js +3 -3
- package/lib/ontology/metavariable.js +504 -0
- package/lib/{dom → ontology}/parameter.js +3 -3
- package/lib/ontology/premise.js +271 -0
- package/lib/ontology/procedureCall.js +243 -0
- package/lib/{dom → ontology}/procedureReference.js +3 -3
- package/lib/{dom → ontology}/proof.js +4 -4
- package/lib/ontology/property.js +166 -0
- package/lib/ontology/propertyRelation.js +202 -0
- package/lib/ontology/reference.js +293 -0
- package/lib/ontology/rule.js +375 -0
- package/lib/ontology/section.js +255 -0
- package/lib/ontology/signature.js +220 -0
- package/lib/{dom → ontology}/statement.js +3 -3
- package/lib/ontology/step.js +283 -0
- package/lib/ontology/subDerivation.js +147 -0
- package/lib/ontology/subproof.js +266 -0
- package/lib/ontology/substitution/frame.js +216 -0
- package/lib/{dom → ontology}/substitution/reference.js +3 -3
- package/lib/{dom → ontology}/substitution/statement.js +3 -3
- package/lib/ontology/substitution/term.js +230 -0
- package/lib/ontology/substitution.js +207 -0
- package/lib/ontology/supposition.js +283 -0
- package/lib/ontology/term.js +339 -0
- package/lib/{dom → ontology}/theorem.js +3 -3
- package/lib/ontology/topLevelAssertion.js +432 -0
- package/lib/ontology/topLevelMetaAssertion.js +235 -0
- package/lib/ontology/type.js +556 -0
- package/lib/ontology/typePrefix.js +99 -0
- package/lib/ontology/variable.js +331 -0
- package/lib/ontology.js +27 -0
- package/lib/preamble.js +60 -60
- package/lib/unifier/intrinsicLevel.js +3 -3
- package/lib/unifier/metaLevel.js +7 -7
- package/lib/unifier/metavariable.js +3 -3
- package/lib/unifier/statementWithCombinator.js +5 -5
- package/lib/unifier/termWithConstructor.js +3 -3
- package/lib/utilities/brackets.js +5 -5
- package/lib/utilities/context.js +12 -12
- package/lib/utilities/fileSystem.js +2 -2
- package/lib/utilities/json.js +30 -30
- package/lib/utilities/node.js +7 -7
- package/lib/utilities/release.js +12 -4
- package/lib/utilities/releaseContext.js +1 -1
- package/lib/utilities/substitutions.js +6 -6
- package/lib/utilities/type.js +2 -2
- package/lib/verifier/combinator.js +4 -4
- package/lib/verifier/constructor.js +3 -3
- package/lib/verifier/topLevel.js +18 -18
- package/package.json +1 -1
- package/src/action/verify.js +2 -0
- package/src/context/file.js +1 -1
- package/src/context/release.js +1 -1
- package/src/mixins/statement/verify.js +2 -2
- package/src/mixins/step/unify.js +3 -3
- package/src/mixins/term/verify.js +3 -3
- package/src/{dom → ontology}/assertion/contained.js +4 -4
- package/src/{dom → ontology}/assertion/defined.js +6 -6
- package/src/{dom → ontology}/assertion/property.js +5 -5
- package/src/{dom → ontology}/assertion/satisfies.js +5 -5
- package/src/{dom → ontology}/assertion/subproof.js +4 -4
- package/src/{dom → ontology}/assertion/type.js +5 -5
- package/src/{dom → ontology}/axiom.js +2 -2
- package/src/{dom → ontology}/combinator/bracketed.js +4 -4
- package/src/{dom → ontology}/combinator.js +4 -4
- package/src/{dom → ontology}/conclusion.js +4 -4
- package/src/{dom → ontology}/conjecture.js +2 -2
- package/src/{dom → ontology}/constructor/bracketed.js +5 -5
- package/src/{dom → ontology}/constructor.js +5 -5
- package/src/{dom → ontology}/declaration/combinator.js +4 -4
- package/src/{dom → ontology}/declaration/complexType.js +4 -4
- package/src/{dom → ontology}/declaration/constructor.js +4 -4
- package/src/{dom → ontology}/declaration/metavariable.js +5 -5
- package/src/{dom → ontology}/declaration/simpleType.js +4 -4
- package/src/{dom → ontology}/declaration/typePrefix.js +4 -4
- package/src/{dom → ontology}/declaration/variable.js +4 -4
- package/src/{dom → ontology}/declaration.js +5 -5
- package/src/{dom → ontology}/deduction.js +4 -4
- package/src/{dom → ontology}/derivation.js +4 -4
- package/src/{dom → ontology}/equality.js +6 -6
- package/src/{dom → ontology}/error.js +2 -2
- package/src/{dom → ontology}/frame.js +6 -6
- package/src/{dom → ontology}/hypothesis.js +5 -6
- package/src/{dom → ontology}/judgement.js +5 -5
- package/src/{dom → ontology}/label.js +4 -4
- package/src/{dom → ontology}/lemma.js +2 -2
- package/src/{dom → ontology}/metaLemma.js +2 -2
- package/src/{dom → ontology}/metaType.js +2 -2
- package/src/{dom → ontology}/metatheorem.js +2 -2
- package/src/{dom → ontology}/metavariable.js +8 -8
- package/src/{dom → ontology}/parameter.js +2 -2
- package/src/{dom → ontology}/premise.js +5 -5
- package/src/{dom → ontology}/procedureCall.js +5 -5
- package/src/{dom → ontology}/procedureReference.js +2 -2
- package/src/{dom → ontology}/proof.js +4 -4
- package/src/{dom → ontology}/property.js +4 -4
- package/src/{dom → ontology}/propertyRelation.js +4 -4
- package/src/{dom → ontology}/reference.js +6 -6
- package/src/{dom → ontology}/rule.js +7 -7
- package/src/{dom → ontology}/section.js +8 -8
- package/src/{dom → ontology}/signature.js +4 -4
- package/src/{dom → ontology}/statement.js +2 -2
- package/src/{dom → ontology}/step.js +4 -4
- package/src/{dom → ontology}/subDerivation.js +4 -4
- package/src/{dom → ontology}/subproof.js +5 -5
- package/src/{dom → ontology}/substitution/frame.js +4 -4
- package/src/{dom → ontology}/substitution/reference.js +2 -2
- package/src/{dom → ontology}/substitution/statement.js +2 -2
- package/src/{dom → ontology}/substitution/term.js +5 -5
- package/src/{dom → ontology}/supposition.js +5 -5
- package/src/{dom → ontology}/term.js +6 -6
- package/src/{dom → ontology}/theorem.js +2 -2
- package/src/{dom → ontology}/topLevelAssertion.js +6 -6
- package/src/{dom → ontology}/topLevelMetaAssertion.js +2 -2
- package/src/{dom → ontology}/type.js +4 -4
- package/src/{dom → ontology}/typePrefix.js +3 -5
- package/src/{dom → ontology}/variable.js +6 -6
- package/src/ontology.js +13 -0
- package/src/preamble.js +59 -59
- package/src/unifier/intrinsicLevel.js +2 -2
- package/src/unifier/metaLevel.js +6 -6
- package/src/unifier/metavariable.js +2 -2
- package/src/unifier/statementWithCombinator.js +4 -4
- package/src/unifier/termWithConstructor.js +2 -2
- package/src/utilities/brackets.js +4 -4
- package/src/utilities/context.js +11 -11
- package/src/utilities/fileSystem.js +1 -1
- package/src/utilities/json.js +29 -29
- package/src/utilities/node.js +6 -6
- package/src/utilities/release.js +1 -1
- package/src/utilities/releaseContext.js +3 -3
- package/src/utilities/substitutions.js +5 -5
- package/src/utilities/type.js +1 -1
- package/src/verifier/combinator.js +3 -3
- package/src/verifier/constructor.js +2 -2
- package/src/verifier/topLevel.js +17 -17
- package/lib/dom/assertion/contained.js +0 -316
- package/lib/dom/assertion/defined.js +0 -290
- package/lib/dom/assertion/property.js +0 -271
- package/lib/dom/assertion/satisfies.js +0 -254
- package/lib/dom/assertion/subproof.js +0 -186
- package/lib/dom/assertion/type.js +0 -252
- package/lib/dom/combinator.js +0 -141
- package/lib/dom/conclusion.js +0 -172
- package/lib/dom/constructor.js +0 -171
- package/lib/dom/declaration/combinator.js +0 -168
- package/lib/dom/declaration/complexType.js +0 -346
- package/lib/dom/declaration/constructor.js +0 -199
- package/lib/dom/declaration/metavariable.js +0 -209
- package/lib/dom/declaration/simpleType.js +0 -243
- package/lib/dom/declaration/typePrefix.js +0 -181
- package/lib/dom/declaration/variable.js +0 -197
- package/lib/dom/declaration.js +0 -360
- package/lib/dom/deduction.js +0 -186
- package/lib/dom/derivation.js +0 -155
- package/lib/dom/equality.js +0 -288
- package/lib/dom/frame.js +0 -362
- package/lib/dom/hypothesis.js +0 -191
- package/lib/dom/judgement.js +0 -241
- package/lib/dom/label.js +0 -199
- package/lib/dom/metavariable.js +0 -504
- package/lib/dom/premise.js +0 -271
- package/lib/dom/procedureCall.js +0 -243
- package/lib/dom/property.js +0 -166
- package/lib/dom/propertyRelation.js +0 -202
- package/lib/dom/reference.js +0 -293
- package/lib/dom/rule.js +0 -375
- package/lib/dom/section.js +0 -255
- package/lib/dom/signature.js +0 -220
- package/lib/dom/step.js +0 -283
- package/lib/dom/subDerivation.js +0 -147
- package/lib/dom/subproof.js +0 -266
- package/lib/dom/substitution/frame.js +0 -216
- package/lib/dom/substitution/term.js +0 -230
- package/lib/dom/substitution.js +0 -207
- package/lib/dom/supposition.js +0 -283
- package/lib/dom/term.js +0 -339
- package/lib/dom/topLevelAssertion.js +0 -432
- package/lib/dom/topLevelMetaAssertion.js +0 -235
- package/lib/dom/type.js +0 -556
- package/lib/dom/typePrefix.js +0 -100
- package/lib/dom/variable.js +0 -331
- package/lib/dom.js +0 -27
- package/src/dom.js +0 -13
- /package/src/{dom → ontology}/substitution.js +0 -0
package/lib/dom/frame.js
DELETED
|
@@ -1,362 +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 _necessary = require("necessary");
|
|
12
|
-
var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
|
|
13
|
-
var _constants = require("../constants");
|
|
14
|
-
var _metaTypeNames = require("../metaTypeNames");
|
|
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 _getRequireWildcardCache(nodeInterop) {
|
|
48
|
-
if (typeof WeakMap !== "function") return null;
|
|
49
|
-
var cacheBabelInterop = new WeakMap();
|
|
50
|
-
var cacheNodeInterop = new WeakMap();
|
|
51
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
52
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
53
|
-
})(nodeInterop);
|
|
54
|
-
}
|
|
55
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
56
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
57
|
-
return obj;
|
|
58
|
-
}
|
|
59
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
60
|
-
return {
|
|
61
|
-
default: obj
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
65
|
-
if (cache && cache.has(obj)) {
|
|
66
|
-
return cache.get(obj);
|
|
67
|
-
}
|
|
68
|
-
var newObj = {
|
|
69
|
-
__proto__: null
|
|
70
|
-
};
|
|
71
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
72
|
-
for(var key in obj){
|
|
73
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
74
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
75
|
-
if (desc && (desc.get || desc.set)) {
|
|
76
|
-
Object.defineProperty(newObj, key, desc);
|
|
77
|
-
} else {
|
|
78
|
-
newObj[key] = obj[key];
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
newObj.default = obj;
|
|
83
|
-
if (cache) {
|
|
84
|
-
cache.set(obj, newObj);
|
|
85
|
-
}
|
|
86
|
-
return newObj;
|
|
87
|
-
}
|
|
88
|
-
var _Frame;
|
|
89
|
-
var first = _necessary.arrayUtilities.first;
|
|
90
|
-
var _default = (0, _dom.domAssigned)((_Frame = /*#__PURE__*/ function() {
|
|
91
|
-
function Frame(string, node, tokens, declarations) {
|
|
92
|
-
_class_call_check(this, Frame);
|
|
93
|
-
this.string = string;
|
|
94
|
-
this.node = node;
|
|
95
|
-
this.tokens = tokens;
|
|
96
|
-
this.declarations = declarations;
|
|
97
|
-
}
|
|
98
|
-
_create_class(Frame, [
|
|
99
|
-
{
|
|
100
|
-
key: "getString",
|
|
101
|
-
value: function getString() {
|
|
102
|
-
return this.string;
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
key: "getNode",
|
|
107
|
-
value: function getNode() {
|
|
108
|
-
return this.node;
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
key: "getTokens",
|
|
113
|
-
value: function getTokens() {
|
|
114
|
-
return this.tokens;
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
key: "getDeclarations",
|
|
119
|
-
value: function getDeclarations() {
|
|
120
|
-
return this.declarations;
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
key: "getLength",
|
|
125
|
-
value: function getLength() {
|
|
126
|
-
return this.declarations.length;
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
key: "getMetavariable",
|
|
131
|
-
value: function getMetavariable() {
|
|
132
|
-
var metavariable = null;
|
|
133
|
-
var simple = this.isSimple();
|
|
134
|
-
if (simple) {
|
|
135
|
-
var firstDeclaration = first(this.declarations), declaration = firstDeclaration; ///
|
|
136
|
-
metavariable = declaration.getMetavariable();
|
|
137
|
-
}
|
|
138
|
-
return metavariable;
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
key: "isSimple",
|
|
143
|
-
value: function isSimple() {
|
|
144
|
-
var simple = false;
|
|
145
|
-
var length = this.getLength();
|
|
146
|
-
if (length === 1) {
|
|
147
|
-
var firstDeclaration = first(this.declarations), declaration = firstDeclaration; ///
|
|
148
|
-
simple = declaration.isSimple();
|
|
149
|
-
}
|
|
150
|
-
return simple;
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
key: "isEqualTo",
|
|
155
|
-
value: function isEqualTo(frame) {
|
|
156
|
-
var frameString = frame.getString(), equalTo = frameString === this.string;
|
|
157
|
-
return equalTo;
|
|
158
|
-
}
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
key: "matchSubstitution",
|
|
162
|
-
value: function matchSubstitution(substitution, context) {
|
|
163
|
-
var substitutionMatches = false;
|
|
164
|
-
var frameString = this.string, substitutionString = substitution.getString();
|
|
165
|
-
context.trace("Matching the '".concat(substitutionString, "' substitution against the '").concat(frameString, "' frame..."));
|
|
166
|
-
if (!substitutionMatches) {
|
|
167
|
-
substitutionMatches = this.declarations.some(function(declaration) {
|
|
168
|
-
var substitutionMatchesDeclaration = declaration.matchSubstitution(substitution, context);
|
|
169
|
-
if (substitutionMatchesDeclaration) {
|
|
170
|
-
return true;
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
if (substitutionMatches) {
|
|
175
|
-
context.debug("...matched the '".concat(substitutionString, "' substitutions against the '").concat(frameString, "' frame."));
|
|
176
|
-
}
|
|
177
|
-
return substitutionMatches;
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
key: "matchSubstitutions",
|
|
182
|
-
value: function matchSubstitutions(substitutions, context) {
|
|
183
|
-
var _this = this;
|
|
184
|
-
var substitutionsMatch;
|
|
185
|
-
var frameString = this.string, substitutionsString = substitutions.asString();
|
|
186
|
-
context.trace("Matching the '".concat(substitutionsString, "' substitutions against the '").concat(frameString, "' frame..."));
|
|
187
|
-
substitutionsMatch = substitutions.everySubstitution(function(substitution) {
|
|
188
|
-
var substitutionMatches = _this.matchSubstitution(substitution, context);
|
|
189
|
-
if (substitutionMatches) {
|
|
190
|
-
return true;
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
if (substitutionsMatch) {
|
|
194
|
-
context.debug("...matched the '".concat(substitutionsString, "' substitutions against the '").concat(frameString, "' frame."));
|
|
195
|
-
}
|
|
196
|
-
return substitutionsMatch;
|
|
197
|
-
}
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
key: "verify",
|
|
201
|
-
value: function verify(assignments, stated, context) {
|
|
202
|
-
var verifies = false;
|
|
203
|
-
var frameString = this.string; ///
|
|
204
|
-
context.trace("Verifying the '".concat(frameString, "' frame..."));
|
|
205
|
-
var declarationsVerify = this.verifyDeclarations(assignments, stated, context);
|
|
206
|
-
if (declarationsVerify) {
|
|
207
|
-
var verifiesWhenStated = false, verifiesWhenDerived = false;
|
|
208
|
-
if (stated) {
|
|
209
|
-
verifiesWhenStated = this.verifyWhenStated(assignments, context);
|
|
210
|
-
} else {
|
|
211
|
-
verifiesWhenDerived = this.verifyWhenDerived(context);
|
|
212
|
-
}
|
|
213
|
-
if (verifiesWhenStated || verifiesWhenDerived) {
|
|
214
|
-
verifies = true;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
if (verifies) {
|
|
218
|
-
context.debug("...verified the '".concat(frameString, "' frame."));
|
|
219
|
-
}
|
|
220
|
-
return verifies;
|
|
221
|
-
}
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
key: "verifyWhenStated",
|
|
225
|
-
value: function verifyWhenStated(assignments, context) {
|
|
226
|
-
var verifiesWhenStated = false;
|
|
227
|
-
var frameString = this.string; ///
|
|
228
|
-
context.trace("Verifying the '".concat(frameString, "' stated frame..."));
|
|
229
|
-
var simple = this.isSimple();
|
|
230
|
-
if (!simple) {
|
|
231
|
-
context.trace("The '".concat(frameString, "' stated frame must be simple."));
|
|
232
|
-
} else {
|
|
233
|
-
verifiesWhenStated = true;
|
|
234
|
-
}
|
|
235
|
-
if (verifiesWhenStated) {
|
|
236
|
-
context.debug("...verified the '".concat(frameString, "' stated frame."));
|
|
237
|
-
}
|
|
238
|
-
return verifiesWhenStated;
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
key: "verifyWhenDerived",
|
|
243
|
-
value: function verifyWhenDerived(context) {
|
|
244
|
-
var verifiesWhenDerived;
|
|
245
|
-
var frameString = this.string; ///
|
|
246
|
-
context.trace("Verifying the '".concat(frameString, "' derived frame..."));
|
|
247
|
-
verifiesWhenDerived = true;
|
|
248
|
-
if (verifiesWhenDerived) {
|
|
249
|
-
context.debug("...verified the '".concat(frameString, "' derived frame."));
|
|
250
|
-
}
|
|
251
|
-
return verifiesWhenDerived;
|
|
252
|
-
}
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
key: "verifyDeclarations",
|
|
256
|
-
value: function verifyDeclarations(assignments, stated, context) {
|
|
257
|
-
var declarationsVerify = true; ///
|
|
258
|
-
var length = this.getLength();
|
|
259
|
-
if (length > 0) {
|
|
260
|
-
var sOrNothing = length > 1 ? _constants.S : _constants.NOTHING, declarationsString = declarationsStringFromDeclarations(this.declarations);
|
|
261
|
-
context.trace("Verifying the '".concat(declarationsString, "' declaration").concat(sOrNothing, "..."));
|
|
262
|
-
stated = true; ///
|
|
263
|
-
assignments = null; ///
|
|
264
|
-
declarationsVerify = this.declarations.every(function(declaration) {
|
|
265
|
-
var declarationVerifies = declaration.verify(assignments, stated, context);
|
|
266
|
-
return declarationVerifies;
|
|
267
|
-
});
|
|
268
|
-
if (declarationsVerify) {
|
|
269
|
-
context.debug("...verified the '".concat(declarationsString, "' declaration").concat(sOrNothing, "."));
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
return declarationsVerify;
|
|
273
|
-
}
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
key: "verifyGivenMetaType",
|
|
277
|
-
value: function verifyGivenMetaType(metaType, assignments, stated, context) {
|
|
278
|
-
var verifiesGivenMetaType = false;
|
|
279
|
-
var frameString = this.string, metaTypeString = metaType.getString();
|
|
280
|
-
context.trace("Verifying the '".concat(frameString, "' frame given the '").concat(metaTypeString, "' meta-type..."));
|
|
281
|
-
var metaTypeName = metaType.getName();
|
|
282
|
-
if (metaTypeName === _metaTypeNames.FRAME_META_TYPE_NAME) {
|
|
283
|
-
var verifies = this.verify(assignments, stated, context);
|
|
284
|
-
verifiesGivenMetaType = verifies; ///
|
|
285
|
-
}
|
|
286
|
-
if (verifiesGivenMetaType) {
|
|
287
|
-
context.debug("...verified the '".concat(frameString, "' frame given the '").concat(metaTypeString, "' meta-type."));
|
|
288
|
-
}
|
|
289
|
-
return verifiesGivenMetaType;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
], [
|
|
293
|
-
{
|
|
294
|
-
key: "fromFrameNode",
|
|
295
|
-
value: function fromFrameNode(frameNode, context) {
|
|
296
|
-
var frame = null;
|
|
297
|
-
if (frameNode !== null) {
|
|
298
|
-
frame = frameFromFrameNode(frameNode, context);
|
|
299
|
-
}
|
|
300
|
-
return frame;
|
|
301
|
-
}
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
key: "fromJudgementNode",
|
|
305
|
-
value: function fromJudgementNode(judgementNode, context) {
|
|
306
|
-
var frameNode = judgementNode.getFrameNode(), frame = frameFromFrameNode(frameNode, context);
|
|
307
|
-
return frame;
|
|
308
|
-
}
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
key: "fromDefinedAssertionNode",
|
|
312
|
-
value: function fromDefinedAssertionNode(definedAssertionNode, context) {
|
|
313
|
-
var frame = null;
|
|
314
|
-
var frameNode = definedAssertionNode.getFrameNode();
|
|
315
|
-
if (frameNode !== null) {
|
|
316
|
-
frame = frameFromFrameNode(frameNode, context);
|
|
317
|
-
}
|
|
318
|
-
return frame;
|
|
319
|
-
}
|
|
320
|
-
},
|
|
321
|
-
{
|
|
322
|
-
key: "fromContainedAssertionNode",
|
|
323
|
-
value: function fromContainedAssertionNode(containedAssertionNode, context) {
|
|
324
|
-
var frame = null;
|
|
325
|
-
var frameNode = containedAssertionNode.getFrameNode();
|
|
326
|
-
if (frameNode !== null) {
|
|
327
|
-
frame = frameFromFrameNode(frameNode, context);
|
|
328
|
-
}
|
|
329
|
-
return frame;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
]);
|
|
333
|
-
return Frame;
|
|
334
|
-
}(), _define_property(_Frame, "name", "Frame"), _Frame));
|
|
335
|
-
function frameFromFrameNode(frameNode, context) {
|
|
336
|
-
var Frame = _dom.default.Frame, node = frameNode, string = context.nodeAsString(node), tokens = context.nodeAsTokens(node), declarations = declarationsFromFrameNode(frameNode, context), metavariables = metavariablesFromFrameNode(frameNode, context), frame = new Frame(string, node, tokens, declarations, metavariables);
|
|
337
|
-
return frame;
|
|
338
|
-
}
|
|
339
|
-
function declarationsFromFrameNode(frameNode, context) {
|
|
340
|
-
var Declaration = _dom.default.Declaration, declarationNodes = frameNode.getDeclarationNodes(), declarations = declarationNodes.map(function(declarationNode) {
|
|
341
|
-
var declaration = Declaration.fromDeclarationNode(declarationNode, context);
|
|
342
|
-
return declaration;
|
|
343
|
-
});
|
|
344
|
-
return declarations;
|
|
345
|
-
}
|
|
346
|
-
function metavariablesFromFrameNode(frameNode, context) {
|
|
347
|
-
var Metavariable = _dom.default.Metavariable, metavariableNodes = frameNode.getMetavariableNodes(), metavariables = metavariableNodes.map(function(metavariableNode) {
|
|
348
|
-
var metavariable = Metavariable.fromMetavariableNode(metavariableNode, context);
|
|
349
|
-
return metavariable;
|
|
350
|
-
});
|
|
351
|
-
return metavariables;
|
|
352
|
-
}
|
|
353
|
-
function declarationsStringFromDeclarations(declarations) {
|
|
354
|
-
var declarationsString = declarations.reduce(function(declarationsString, declaration) {
|
|
355
|
-
var declarationString = declaration.getString();
|
|
356
|
-
declarationsString = declarationsString === null ? declarationString : "".concat(declarationsString, ", ").concat(declarationString);
|
|
357
|
-
return declarationsString;
|
|
358
|
-
}, null);
|
|
359
|
-
return declarationsString;
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vZnJhbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi9kb21cIjtcblxuaW1wb3J0IHsgUywgTk9USElORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgRlJBTUVfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vbWV0YVR5cGVOYW1lc1wiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgRnJhbWUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHRva2VucywgZGVjbGFyYXRpb25zKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9ucztcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0RGVjbGFyYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmRlY2xhcmF0aW9ucztcbiAgfVxuXG4gIGdldExlbmd0aCgpIHsgcmV0dXJuIHRoaXMuZGVjbGFyYXRpb25zLmxlbmd0aDsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnN0IHNpbXBsZSA9IHRoaXMuaXNTaW1wbGUoKTtcblxuICAgIGlmIChzaW1wbGUpIHtcbiAgICAgIGNvbnN0IGZpcnN0RGVjbGFyYXRpb24gPSBmaXJzdCh0aGlzLmRlY2xhcmF0aW9ucyksXG4gICAgICAgICAgICBkZWNsYXJhdGlvbiA9IGZpcnN0RGVjbGFyYXRpb247IC8vL1xuXG4gICAgICBtZXRhdmFyaWFibGUgPSBkZWNsYXJhdGlvbi5nZXRNZXRhdmFyaWFibGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgaXNTaW1wbGUoKSB7XG4gICAgbGV0IHNpbXBsZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmIChsZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0RGVjbGFyYXRpb24gPSBmaXJzdCh0aGlzLmRlY2xhcmF0aW9ucyksXG4gICAgICAgICAgICBkZWNsYXJhdGlvbiA9IGZpcnN0RGVjbGFyYXRpb247IC8vL1xuXG4gICAgICBzaW1wbGUgPSBkZWNsYXJhdGlvbi5pc1NpbXBsZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBzaW1wbGU7XG4gIH1cblxuICBpc0VxdWFsVG8oZnJhbWUpIHtcbiAgICBjb25zdCBmcmFtZVN0cmluZyA9IGZyYW1lLmdldFN0cmluZygpLFxuICAgICAgICAgIGVxdWFsVG8gPSAoZnJhbWVTdHJpbmcgPT09IHRoaXMuc3RyaW5nKTtcblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgbWF0Y2hTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IHN1YnN0aXR1dGlvbk1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGZyYW1lU3RyaW5nID0gdGhpcy5zdHJpbmcsICAvLy9cbiAgICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBNYXRjaGluZyB0aGUgJyR7c3Vic3RpdHV0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9uIGFnYWluc3QgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUuLi5gKTtcblxuICAgIGlmICghc3Vic3RpdHV0aW9uTWF0Y2hlcykge1xuICAgICAgc3Vic3RpdHV0aW9uTWF0Y2hlcyA9IHRoaXMuZGVjbGFyYXRpb25zLnNvbWUoKGRlY2xhcmF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1hdGNoZXNEZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uLm1hdGNoU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvbk1hdGNoZXNEZWNsYXJhdGlvbikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4ubWF0Y2hlZCB0aGUgJyR7c3Vic3RpdHV0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9ucyBhZ2FpbnN0IHRoZSAnJHtmcmFtZVN0cmluZ30nIGZyYW1lLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25NYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3Vic3RpdHV0aW9uc01hdGNoO1xuXG4gICAgY29uc3QgZnJhbWVTdHJpbmcgPSB0aGlzLnN0cmluZywgIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbnNTdHJpbmcgPSBzdWJzdGl0dXRpb25zLmFzU3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBNYXRjaGluZyB0aGUgJyR7c3Vic3RpdHV0aW9uc1N0cmluZ30nIHN1YnN0aXR1dGlvbnMgYWdhaW5zdCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBmcmFtZS4uLmApO1xuXG4gICAgc3Vic3RpdHV0aW9uc01hdGNoID0gc3Vic3RpdHV0aW9ucy5ldmVyeVN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25NYXRjaGVzID0gdGhpcy5tYXRjaFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzdWJzdGl0dXRpb25zTWF0Y2gpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLm1hdGNoZWQgdGhlICcke3N1YnN0aXR1dGlvbnNTdHJpbmd9JyBzdWJzdGl0dXRpb25zIGFnYWluc3QgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnNNYXRjaDtcbiAgfVxuXG4gIHZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBmcmFtZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUuLi5gKTtcblxuICAgIGNvbnN0IGRlY2xhcmF0aW9uc1ZlcmlmeSA9IHRoaXMudmVyaWZ5RGVjbGFyYXRpb25zKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGRlY2xhcmF0aW9uc1ZlcmlmeSkge1xuICAgICAgbGV0IHZlcmlmaWVzV2hlblN0YXRlZCA9IGZhbHNlLFxuICAgICAgICAgIHZlcmlmaWVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgICAgaWYgKHN0YXRlZCkge1xuICAgICAgICB2ZXJpZmllc1doZW5TdGF0ZWQgPSB0aGlzLnZlcmlmeVdoZW5TdGF0ZWQoYXNzaWdubWVudHMsIGNvbnRleHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmVyaWZpZXNXaGVuRGVyaXZlZCA9IHRoaXMudmVyaWZ5V2hlbkRlcml2ZWQoY29udGV4dCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllc1doZW5TdGF0ZWQgfHwgdmVyaWZpZXNXaGVuRGVyaXZlZCkge1xuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBmcmFtZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICB2ZXJpZnlXaGVuU3RhdGVkKGFzc2lnbm1lbnRzLCBjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzV2hlblN0YXRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZnJhbWVTdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtmcmFtZVN0cmluZ30nIHN0YXRlZCBmcmFtZS4uLmApO1xuXG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKCFzaW1wbGUpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHtmcmFtZVN0cmluZ30nIHN0YXRlZCBmcmFtZSBtdXN0IGJlIHNpbXBsZS5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmVyaWZpZXNXaGVuU3RhdGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXNXaGVuU3RhdGVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBzdGF0ZWQgZnJhbWUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzV2hlblN0YXRlZDtcbiAgfVxuXG4gIHZlcmlmeVdoZW5EZXJpdmVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXNXaGVuRGVyaXZlZDtcblxuICAgIGNvbnN0IGZyYW1lU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBkZXJpdmVkIGZyYW1lLi4uYCk7XG5cbiAgICB2ZXJpZmllc1doZW5EZXJpdmVkID0gdHJ1ZTtcblxuICAgIGlmICh2ZXJpZmllc1doZW5EZXJpdmVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBkZXJpdmVkIGZyYW1lLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgdmVyaWZ5RGVjbGFyYXRpb25zKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBsZXQgZGVjbGFyYXRpb25zVmVyaWZ5ID0gdHJ1ZTsgIC8vL1xuXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzT3JOb3RoaW5nID0gKGxlbmd0aCA+IDEpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1RISU5HLFxuICAgICAgICAgICAgZGVjbGFyYXRpb25zU3RyaW5nID0gZGVjbGFyYXRpb25zU3RyaW5nRnJvbURlY2xhcmF0aW9ucyh0aGlzLmRlY2xhcmF0aW9ucyk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZGVjbGFyYXRpb25zU3RyaW5nfScgZGVjbGFyYXRpb24ke3NPck5vdGhpbmd9Li4uYCk7XG5cbiAgICAgIHN0YXRlZCA9IHRydWU7ICAvLy9cblxuICAgICAgYXNzaWdubWVudHMgPSBudWxsOyAvLy9cblxuICAgICAgZGVjbGFyYXRpb25zVmVyaWZ5ID0gdGhpcy5kZWNsYXJhdGlvbnMuZXZlcnkoKGRlY2xhcmF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uVmVyaWZpZXMgPSBkZWNsYXJhdGlvbi52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGRlY2xhcmF0aW9uc1ZlcmlmeSkge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVjbGFyYXRpb25zU3RyaW5nfScgZGVjbGFyYXRpb24ke3NPck5vdGhpbmd9LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZWNsYXJhdGlvbnNWZXJpZnk7XG4gIH1cblxuICB2ZXJpZnlHaXZlbk1ldGFUeXBlKG1ldGFUeXBlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzR2l2ZW5NZXRhVHlwZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZnJhbWVTdHJpbmcgPSB0aGlzLnN0cmluZywgIC8vL1xuICAgICAgICAgIG1ldGFUeXBlU3RyaW5nID0gbWV0YVR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUgZ2l2ZW4gdGhlICcke21ldGFUeXBlU3RyaW5nfScgbWV0YS10eXBlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZS5nZXROYW1lKCk7XG5cbiAgICBpZiAobWV0YVR5cGVOYW1lID09PSBGUkFNRV9NRVRBX1RZUEVfTkFNRSkge1xuICAgICAgY29uc3QgdmVyaWZpZXMgPSB0aGlzLnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KVxuXG4gICAgICB2ZXJpZmllc0dpdmVuTWV0YVR5cGUgPSB2ZXJpZmllczsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzR2l2ZW5NZXRhVHlwZSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUgZ2l2ZW4gdGhlICcke21ldGFUeXBlU3RyaW5nfScgbWV0YS10eXBlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllc0dpdmVuTWV0YVR5cGU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRnJhbWVcIjtcblxuICBzdGF0aWMgZnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgZnJhbWUgPSBudWxsO1xuXG4gICAgaWYgKGZyYW1lTm9kZSAhPT0gbnVsbCkge1xuICAgICAgZnJhbWUgPSBmcmFtZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGZyYW1lTm9kZSA9IGp1ZGdlbWVudE5vZGUuZ2V0RnJhbWVOb2RlKCksXG4gICAgICAgICAgZnJhbWUgPSBmcmFtZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRGVmaW5lZEFzc2VydGlvbk5vZGUoZGVmaW5lZEFzc2VydGlvbk5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgZnJhbWUgPSBudWxsO1xuXG4gICAgY29uc3QgZnJhbWVOb2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGUuZ2V0RnJhbWVOb2RlKCk7XG5cbiAgICBpZiAoZnJhbWVOb2RlICE9PSBudWxsKSB7XG4gICAgICBmcmFtZSA9IGZyYW1lRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGZyYW1lID0gbnVsbDtcblxuICAgIGNvbnN0IGZyYW1lTm9kZSA9IGNvbnRhaW5lZEFzc2VydGlvbk5vZGUuZ2V0RnJhbWVOb2RlKCk7XG5cbiAgICBpZiAoZnJhbWVOb2RlICE9PSBudWxsKSB7XG4gICAgICBmcmFtZSA9IGZyYW1lRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG59KTtcblxuZnVuY3Rpb24gZnJhbWVGcm9tRnJhbWVOb2RlKGZyYW1lTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IEZyYW1lIH0gPSBkb20sXG4gICAgICAgIG5vZGUgPSBmcmFtZU5vZGUsIC8vL1xuICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgdG9rZW5zID0gY29udGV4dC5ub2RlQXNUb2tlbnMobm9kZSksXG4gICAgICAgIGRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9uc0Zyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgbWV0YXZhcmlhYmxlcyA9IG1ldGF2YXJpYWJsZXNGcm9tRnJhbWVOb2RlKGZyYW1lTm9kZSwgY29udGV4dCksXG4gICAgICAgIGZyYW1lID0gbmV3IEZyYW1lKHN0cmluZywgbm9kZSwgdG9rZW5zLCBkZWNsYXJhdGlvbnMsIG1ldGF2YXJpYWJsZXMpO1xuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuZnVuY3Rpb24gZGVjbGFyYXRpb25zRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICBkZWNsYXJhdGlvbk5vZGVzID0gZnJhbWVOb2RlLmdldERlY2xhcmF0aW9uTm9kZXMoKSxcbiAgICAgICAgZGVjbGFyYXRpb25zID0gZGVjbGFyYXRpb25Ob2Rlcy5tYXAoKGRlY2xhcmF0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gRGVjbGFyYXRpb24uZnJvbURlY2xhcmF0aW9uTm9kZShkZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gZGVjbGFyYXRpb25zO1xufVxuXG5mdW5jdGlvbiBtZXRhdmFyaWFibGVzRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBNZXRhdmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZXMgPSBmcmFtZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTm9kZXMoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlcyA9IG1ldGF2YXJpYWJsZU5vZGVzLm1hcCgobWV0YXZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICAgIHJldHVybiBtZXRhdmFyaWFibGU7XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVzO1xufVxuXG5mdW5jdGlvbiBkZWNsYXJhdGlvbnNTdHJpbmdGcm9tRGVjbGFyYXRpb25zKGRlY2xhcmF0aW9ucykge1xuICBjb25zdCBkZWNsYXJhdGlvbnNTdHJpbmcgPSBkZWNsYXJhdGlvbnMucmVkdWNlKChkZWNsYXJhdGlvbnNTdHJpbmcsIGRlY2xhcmF0aW9uKSA9PiB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBkZWNsYXJhdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGRlY2xhcmF0aW9uc1N0cmluZyA9IChkZWNsYXJhdGlvbnNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uU3RyaW5nIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtkZWNsYXJhdGlvbnNTdHJpbmd9LCAke2RlY2xhcmF0aW9uU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gZGVjbGFyYXRpb25zU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gZGVjbGFyYXRpb25zU3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJkb21Bc3NpZ25lZCIsIkZyYW1lIiwic3RyaW5nIiwibm9kZSIsInRva2VucyIsImRlY2xhcmF0aW9ucyIsImdldFN0cmluZyIsImdldE5vZGUiLCJnZXRUb2tlbnMiLCJnZXREZWNsYXJhdGlvbnMiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGUiLCJzaW1wbGUiLCJpc1NpbXBsZSIsImZpcnN0RGVjbGFyYXRpb24iLCJkZWNsYXJhdGlvbiIsImlzRXF1YWxUbyIsImZyYW1lIiwiZnJhbWVTdHJpbmciLCJlcXVhbFRvIiwibWF0Y2hTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJjb250ZXh0Iiwic3Vic3RpdHV0aW9uTWF0Y2hlcyIsInN1YnN0aXR1dGlvblN0cmluZyIsInRyYWNlIiwic29tZSIsInN1YnN0aXR1dGlvbk1hdGNoZXNEZWNsYXJhdGlvbiIsImRlYnVnIiwibWF0Y2hTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnNNYXRjaCIsInN1YnN0aXR1dGlvbnNTdHJpbmciLCJhc1N0cmluZyIsImV2ZXJ5U3Vic3RpdHV0aW9uIiwidmVyaWZ5IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJ2ZXJpZmllcyIsImRlY2xhcmF0aW9uc1ZlcmlmeSIsInZlcmlmeURlY2xhcmF0aW9ucyIsInZlcmlmaWVzV2hlblN0YXRlZCIsInZlcmlmaWVzV2hlbkRlcml2ZWQiLCJ2ZXJpZnlXaGVuU3RhdGVkIiwidmVyaWZ5V2hlbkRlcml2ZWQiLCJzT3JOb3RoaW5nIiwiUyIsIk5PVEhJTkciLCJkZWNsYXJhdGlvbnNTdHJpbmciLCJkZWNsYXJhdGlvbnNTdHJpbmdGcm9tRGVjbGFyYXRpb25zIiwiZXZlcnkiLCJkZWNsYXJhdGlvblZlcmlmaWVzIiwidmVyaWZ5R2l2ZW5NZXRhVHlwZSIsIm1ldGFUeXBlIiwidmVyaWZpZXNHaXZlbk1ldGFUeXBlIiwibWV0YVR5cGVTdHJpbmciLCJtZXRhVHlwZU5hbWUiLCJnZXROYW1lIiwiRlJBTUVfTUVUQV9UWVBFX05BTUUiLCJmcm9tRnJhbWVOb2RlIiwiZnJhbWVOb2RlIiwiZnJhbWVGcm9tRnJhbWVOb2RlIiwiZnJvbUp1ZGdlbWVudE5vZGUiLCJqdWRnZW1lbnROb2RlIiwiZ2V0RnJhbWVOb2RlIiwiZnJvbURlZmluZWRBc3NlcnRpb25Ob2RlIiwiZGVmaW5lZEFzc2VydGlvbk5vZGUiLCJmcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJuYW1lIiwiZG9tIiwibm9kZUFzU3RyaW5nIiwibm9kZUFzVG9rZW5zIiwiZGVjbGFyYXRpb25zRnJvbUZyYW1lTm9kZSIsIm1ldGF2YXJpYWJsZXMiLCJtZXRhdmFyaWFibGVzRnJvbUZyYW1lTm9kZSIsIkRlY2xhcmF0aW9uIiwiZGVjbGFyYXRpb25Ob2RlcyIsImdldERlY2xhcmF0aW9uTm9kZXMiLCJtYXAiLCJkZWNsYXJhdGlvbk5vZGUiLCJmcm9tRGVjbGFyYXRpb25Ob2RlIiwiTWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlTm9kZXMiLCJnZXRNZXRhdmFyaWFibGVOb2RlcyIsIm1ldGF2YXJpYWJsZU5vZGUiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZSIsInJlZHVjZSIsImRlY2xhcmF0aW9uU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7Ozt5QkFWK0I7MkRBRWY7eUJBRVc7NkJBRVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyQyxJQUFNLEFB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
|
package/lib/dom/hypothesis.js
DELETED
|
@@ -1,191 +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 _assignments = require("../utilities/assignments");
|
|
13
|
-
var _context = require("../utilities/context");
|
|
14
|
-
var _json = require("../utilities/json");
|
|
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 _getRequireWildcardCache(nodeInterop) {
|
|
48
|
-
if (typeof WeakMap !== "function") return null;
|
|
49
|
-
var cacheBabelInterop = new WeakMap();
|
|
50
|
-
var cacheNodeInterop = new WeakMap();
|
|
51
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
52
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
53
|
-
})(nodeInterop);
|
|
54
|
-
}
|
|
55
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
56
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
57
|
-
return obj;
|
|
58
|
-
}
|
|
59
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
60
|
-
return {
|
|
61
|
-
default: obj
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
65
|
-
if (cache && cache.has(obj)) {
|
|
66
|
-
return cache.get(obj);
|
|
67
|
-
}
|
|
68
|
-
var newObj = {
|
|
69
|
-
__proto__: null
|
|
70
|
-
};
|
|
71
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
72
|
-
for(var key in obj){
|
|
73
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
74
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
75
|
-
if (desc && (desc.get || desc.set)) {
|
|
76
|
-
Object.defineProperty(newObj, key, desc);
|
|
77
|
-
} else {
|
|
78
|
-
newObj[key] = obj[key];
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
newObj.default = obj;
|
|
83
|
-
if (cache) {
|
|
84
|
-
cache.set(obj, newObj);
|
|
85
|
-
}
|
|
86
|
-
return newObj;
|
|
87
|
-
}
|
|
88
|
-
var _Hypothesis;
|
|
89
|
-
var _default = (0, _dom.domAssigned)((_Hypothesis = /*#__PURE__*/ function() {
|
|
90
|
-
function Hypothesis(node, string, statement) {
|
|
91
|
-
_class_call_check(this, Hypothesis);
|
|
92
|
-
this.node = node;
|
|
93
|
-
this.string = string;
|
|
94
|
-
this.statement = statement;
|
|
95
|
-
}
|
|
96
|
-
_create_class(Hypothesis, [
|
|
97
|
-
{
|
|
98
|
-
key: "getNode",
|
|
99
|
-
value: function getNode() {
|
|
100
|
-
return this.node;
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
key: "getString",
|
|
105
|
-
value: function getString() {
|
|
106
|
-
return this.string;
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
key: "getStatement",
|
|
111
|
-
value: function getStatement() {
|
|
112
|
-
return this.statement;
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
key: "verify",
|
|
117
|
-
value: function verify(context) {
|
|
118
|
-
var verifies = false;
|
|
119
|
-
var hypothesisString = this.string; ///
|
|
120
|
-
context.trace("Verifying the '".concat(hypothesisString, "' hypothesis..."), this.node);
|
|
121
|
-
if (false) {
|
|
122
|
-
///
|
|
123
|
-
} else if (this.statement !== null) {
|
|
124
|
-
var stated = true, assignments = [], statementVerifies = this.statement.verify(assignments, stated, context);
|
|
125
|
-
if (statementVerifies) {
|
|
126
|
-
var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments, context);
|
|
127
|
-
if (assignmentsAssigned) {
|
|
128
|
-
var Step = _dom.default.Step, step = Step.fromStatement(this.statement, context), stepOrSubproof = step; ///
|
|
129
|
-
context.addStepOrSubproof(stepOrSubproof);
|
|
130
|
-
verifies = true;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
} else {
|
|
134
|
-
context.debug("Unable to verify the '".concat(hypothesisString, "' hypothesis because it is nonsense."), this.node);
|
|
135
|
-
}
|
|
136
|
-
if (verifies) {
|
|
137
|
-
context.debug("...verified the '".concat(hypothesisString, "' hypothesis."), this.node);
|
|
138
|
-
}
|
|
139
|
-
return verifies;
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
key: "isEqualToStep",
|
|
144
|
-
value: function isEqualToStep(step, context) {
|
|
145
|
-
var equalToStep = false;
|
|
146
|
-
var stepString = step.getString(), hypothesisString = this.string; ///
|
|
147
|
-
context.trace("Is the '".concat(hypothesisString, "' hypothesis equal to the '").concat(stepString, "' step..."), this.node);
|
|
148
|
-
var stepStatement = step.getStatement(), statementEqualToStepStatement = this.statement.isEqualTo(stepStatement);
|
|
149
|
-
if (statementEqualToStepStatement) {
|
|
150
|
-
equalToStep = true;
|
|
151
|
-
}
|
|
152
|
-
if (equalToStep) {
|
|
153
|
-
context.trace("...the '".concat(hypothesisString, "' hypothesis is equal to the '").concat(stepString, "' step."), this.node);
|
|
154
|
-
}
|
|
155
|
-
return equalToStep;
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
key: "toJSON",
|
|
160
|
-
value: function toJSON() {
|
|
161
|
-
var statementJSON = (0, _json.statementToStatementJSON)(this.statement), statement = statementJSON, json = {
|
|
162
|
-
statement: statement
|
|
163
|
-
};
|
|
164
|
-
return json;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
], [
|
|
168
|
-
{
|
|
169
|
-
key: "fromJSON",
|
|
170
|
-
value: function fromJSON(json, context) {
|
|
171
|
-
var statement = (0, _json.statementFromJSON)(json, context);
|
|
172
|
-
var string;
|
|
173
|
-
if (statement !== null) {
|
|
174
|
-
string = statement.getString();
|
|
175
|
-
}
|
|
176
|
-
var node = null, hypothesis = new Hypothesis(node, string, statement);
|
|
177
|
-
return hypothesis;
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
key: "fromHypothesisNode",
|
|
182
|
-
value: function fromHypothesisNode(hypothesisNode, context) {
|
|
183
|
-
var Statement = _dom.default.Statement, node = hypothesisNode, string = context.nodeAsString(node), statement = Statement.fromHypothesisNode(hypothesisNode, context), hypothesis = new Hypothesis(node, string, statement);
|
|
184
|
-
return hypothesis;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
]);
|
|
188
|
-
return Hypothesis;
|
|
189
|
-
}(), _define_property(_Hypothesis, "name", "Hypothesis"), _Hypothesis));
|
|
190
|
-
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vaHlwb3RoZXNpcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5cbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgYXNzaWduQXNzaWdubWVudHMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2Fzc2lnbm1lbnRzXCI7XG5pbXBvcnQgeyBzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHN0YXRlbWVudEZyb21KU09OLCBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgSHlwb3RoZXNpcyB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHN0cmluZywgc3RhdGVtZW50KSB7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50O1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGh5cG90aGVzaXNTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzLi4uYCwgdGhpcy5ub2RlKTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllcyA9IHRoaXMuc3RhdGVtZW50LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnRzQXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50cyhhc3NpZ25tZW50cywgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGFzc2lnbm1lbnRzQXNzaWduZWQpIHtcbiAgICAgICAgICBjb25zdCB7IFN0ZXAgfSA9IGRvbSxcbiAgICAgICAgICAgICAgICBzdGVwID0gU3RlcC5mcm9tU3RhdGVtZW50KHRoaXMuc3RhdGVtZW50LCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICBzdGVwT3JTdWJwcm9vZiA9IHN0ZXA7ICAvLy9cblxuICAgICAgICAgIGNvbnRleHQuYWRkU3RlcE9yU3VicHJvb2Yoc3RlcE9yU3VicHJvb2YpO1xuXG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzIGJlY2F1c2UgaXQgaXMgbm9uc2Vuc2UuYCwgdGhpcy5ub2RlKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcy5gLCB0aGlzLm5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIGlzRXF1YWxUb1N0ZXAoc3RlcCwgY29udGV4dCkge1xuICAgIGxldCBlcXVhbFRvU3RlcCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3RlcFN0cmluZyA9IHN0ZXAuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgaHlwb3RoZXNpc1N0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYElzIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcyBlcXVhbCB0byB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAuLi5gLCB0aGlzLm5vZGUpO1xuXG4gICAgY29uc3Qgc3RlcFN0YXRlbWVudCA9IHN0ZXAuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50RXF1YWxUb1N0ZXBTdGF0ZW1lbnQgPSB0aGlzLnN0YXRlbWVudC5pc0VxdWFsVG8oc3RlcFN0YXRlbWVudCk7XG5cbiAgICBpZiAoc3RhdGVtZW50RXF1YWxUb1N0ZXBTdGF0ZW1lbnQpIHtcbiAgICAgIGVxdWFsVG9TdGVwID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZXF1YWxUb1N0ZXApIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLnRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcyBpcyBlcXVhbCB0byB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAuYCwgdGhpcy5ub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXF1YWxUb1N0ZXA7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50SlNPTiA9IHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTih0aGlzLnN0YXRlbWVudCksXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBzdGF0ZW1lbnRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSHlwb3RoZXNpc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgc3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBudWxsLFxuICAgICAgICAgIGh5cG90aGVzaXMgPSBuZXcgSHlwb3RoZXNpcyhub2RlLCBzdHJpbmcsIHN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gaHlwb3RoZXNpcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSHlwb3RoZXNpc05vZGUoaHlwb3RoZXNpc05vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IFN0YXRlbWVudCB9ID0gZG9tLFxuICAgICAgICAgIG5vZGUgPSBoeXBvdGhlc2lzTm9kZSwgLy8vXG4gICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21IeXBvdGhlc2lzTm9kZShoeXBvdGhlc2lzTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgaHlwb3RoZXNpcyA9IG5ldyBIeXBvdGhlc2lzKG5vZGUsIHN0cmluZywgc3RhdGVtZW50KTtcblxuICAgIHJldHVybiBoeXBvdGhlc2lzXG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRvbUFzc2lnbmVkIiwiSHlwb3RoZXNpcyIsIm5vZGUiLCJzdHJpbmciLCJzdGF0ZW1lbnQiLCJnZXROb2RlIiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50IiwidmVyaWZ5IiwiY29udGV4dCIsInZlcmlmaWVzIiwiaHlwb3RoZXNpc1N0cmluZyIsInRyYWNlIiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnRWZXJpZmllcyIsImFzc2lnbm1lbnRzQXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50cyIsIlN0ZXAiLCJkb20iLCJzdGVwIiwiZnJvbVN0YXRlbWVudCIsInN0ZXBPclN1YnByb29mIiwiYWRkU3RlcE9yU3VicHJvb2YiLCJkZWJ1ZyIsImlzRXF1YWxUb1N0ZXAiLCJlcXVhbFRvU3RlcCIsInN0ZXBTdHJpbmciLCJzdGVwU3RhdGVtZW50Iiwic3RhdGVtZW50RXF1YWxUb1N0ZXBTdGF0ZW1lbnQiLCJpc0VxdWFsVG8iLCJ0b0pTT04iLCJzdGF0ZW1lbnRKU09OIiwic3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OIiwianNvbiIsImZyb21KU09OIiwic3RhdGVtZW50RnJvbUpTT04iLCJoeXBvdGhlc2lzIiwiZnJvbUh5cG90aGVzaXNOb2RlIiwiaHlwb3RoZXNpc05vZGUiLCJTdGF0ZW1lbnQiLCJub2RlQXNTdHJpbmciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OzsyREFQZ0I7MkJBR2tCO3VCQUNhO29CQUNhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFNUQsV0FBZUEsSUFBQUEsZ0JBQVcsK0JBQUM7YUFBTUMsV0FDbkJDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxTQUFTO2dDQURKSDtRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFNBQVMsR0FBR0E7Ozs7WUFHbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsU0FBUztZQUN2Qjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPQyxPQUFPO2dC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
|