occam-verify-cli 0.0.1002 → 0.0.1005
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/README.md +0 -2
- package/bin/abbreviations.js +1 -3
- package/bin/action/help.js +0 -2
- package/bin/action/verify.js +4 -24
- package/bin/defaults.js +0 -2
- package/bin/main.js +3 -4
- package/bin/options.js +0 -2
- package/lib/assertion/subproof.js +106 -0
- package/lib/assignment/metavariable.js +2 -2
- package/lib/combinator.js +50 -16
- package/lib/conclusion.js +73 -14
- package/lib/context/file.js +191 -31
- package/lib/context/local.js +37 -49
- package/lib/context/release.js +42 -35
- package/lib/context/release.other.js +605 -0
- package/lib/declaration/combinator.js +83 -0
- package/lib/derivation.js +86 -0
- package/lib/equality.js +3 -11
- package/lib/index.js +1 -1
- package/lib/judgement.js +3 -10
- package/lib/label.js +58 -16
- package/lib/log.js +3 -11
- package/lib/metaType.js +31 -19
- package/lib/metavariable.js +39 -12
- package/lib/mixins/statement/qualified/unify.js +118 -0
- package/lib/mixins/statement/unify.js +57 -0
- package/lib/mixins/statement/verify.js +184 -0
- package/lib/node/statement/combinator/bracketed.js +15 -11
- package/lib/ocmbinator/bracketed.js +52 -8
- package/lib/premise.js +109 -56
- package/lib/proof.js +91 -0
- package/lib/proofStep.js +78 -25
- package/lib/reference.js +62 -16
- package/lib/rule.js +146 -26
- package/lib/ruleNames.js +5 -5
- package/lib/statement/qualified.js +127 -0
- package/lib/statement/unqualified.js +89 -0
- package/lib/statement.js +176 -0
- package/lib/subDerivation.js +86 -0
- package/lib/subproof.js +155 -0
- package/lib/substitution/frameForMetavariable.js +14 -15
- package/lib/substitution/statementForMetavariable.js +23 -24
- package/lib/substitution/termForVariable.js +11 -12
- package/lib/substitution.js +9 -2
- package/lib/substitutions.js +14 -14
- package/lib/supposition.js +92 -60
- package/lib/unifier/statementWithCombinator.js +3 -3
- package/lib/unify/metavariableWithFrame.js +2 -2
- package/lib/unify/metavariableWithStatement.js +2 -2
- package/lib/unify/metavariableWithStatementGivenSubstitution.js +2 -2
- package/lib/unify/variableWithTerm.js +2 -2
- package/lib/utilities/node.js +13 -11
- package/lib/utilities/releaseContext.js +3 -3
- package/lib/utilities/string.js +8 -2
- package/lib/utilities/subproof.js +5 -5
- package/lib/utilities/tokens.js +10 -10
- package/lib/variable.js +1 -10
- package/lib/verifier/metaLevel.js +2 -2
- package/lib/verifier/topLevel.js +5 -5
- package/lib/verify/axiom.js +3 -5
- package/lib/verify/conjecture.js +4 -7
- package/lib/verify/consequent.js +2 -3
- package/lib/verify/declaration/combinator.js +2 -14
- package/lib/verify/declaration/metavariable.js +9 -10
- package/lib/verify/files.js +4 -4
- package/lib/verify/frame.js +12 -12
- package/lib/verify/lemma.js +4 -7
- package/lib/verify/metaLemma.js +4 -7
- package/lib/verify/metatheorem.js +4 -7
- package/lib/verify/proofStep.js +2 -31
- package/lib/verify/theorem.js +4 -7
- package/package.json +4 -4
- package/src/assertion/subproof.js +84 -0
- package/src/assignment/metavariable.js +2 -2
- package/src/combinator.js +45 -15
- package/src/conclusion.js +83 -13
- package/src/context/file.js +223 -11
- package/src/context/local.js +12 -16
- package/src/context/release.js +57 -39
- package/src/context/release.other.js +547 -0
- package/src/declaration/combinator.js +44 -0
- package/src/derivation.js +50 -0
- package/src/equality.js +2 -9
- package/src/index.js +0 -1
- package/src/judgement.js +2 -8
- package/src/label.js +56 -13
- package/src/log.js +2 -9
- package/src/metaType.js +26 -14
- package/src/metavariable.js +57 -9
- package/src/mixins/statement/qualified/unify.js +186 -0
- package/src/mixins/statement/unify.js +70 -0
- package/src/mixins/statement/verify.js +274 -0
- package/src/node/statement/combinator/bracketed.js +4 -3
- package/src/ocmbinator/bracketed.js +15 -12
- package/src/premise.js +136 -44
- package/src/proof.js +58 -0
- package/src/proofStep.js +92 -22
- package/src/reference.js +58 -12
- package/src/rule.js +199 -30
- package/src/ruleNames.js +1 -1
- package/src/statement/qualified.js +104 -0
- package/src/statement/unqualified.js +60 -0
- package/src/statement.js +179 -0
- package/src/subDerivation.js +52 -0
- package/src/subproof.js +99 -0
- package/src/substitution/frameForMetavariable.js +20 -17
- package/src/substitution/statementForMetavariable.js +31 -29
- package/src/substitution/termForVariable.js +15 -14
- package/src/substitution.js +8 -0
- package/src/substitutions.js +12 -13
- package/src/supposition.js +94 -44
- package/src/unifier/statementWithCombinator.js +6 -3
- package/src/unify/metavariableWithFrame.js +1 -1
- package/src/unify/metavariableWithStatement.js +1 -1
- package/src/unify/metavariableWithStatementGivenSubstitution.js +1 -1
- package/src/unify/variableWithTerm.js +1 -1
- package/src/utilities/node.js +18 -12
- package/src/utilities/releaseContext.js +2 -2
- package/src/utilities/string.js +6 -2
- package/src/utilities/subproof.js +2 -2
- package/src/utilities/tokens.js +7 -7
- package/src/variable.js +0 -10
- package/src/verifier/metaLevel.js +3 -2
- package/src/verifier/topLevel.js +6 -4
- package/src/verify/axiom.js +1 -2
- package/src/verify/conjecture.js +2 -3
- package/src/verify/consequent.js +1 -1
- package/src/verify/declaration/combinator.js +0 -20
- package/src/verify/declaration/metavariable.js +8 -12
- package/src/verify/files.js +3 -3
- package/src/verify/frame.js +11 -11
- package/src/verify/lemma.js +2 -3
- package/src/verify/metaLemma.js +2 -3
- package/src/verify/metatheorem.js +2 -3
- package/src/verify/proofStep.js +0 -41
- package/src/verify/theorem.js +2 -3
- package/lib/tokens/combinatorStatement/bracketed.js +0 -17
- package/lib/unify/premiseWithProofStep.js +0 -41
- package/lib/unify/premisesWithProofSteps.js +0 -31
- package/lib/unify/qualifiedStatement.js +0 -136
- package/lib/unify/statementWithBracketedCombinator.js +0 -30
- package/lib/unify/statementWithCombinator.js +0 -29
- package/lib/unify/statementWithCombinators.js +0 -31
- package/lib/unify/statementWithMetaType.js +0 -24
- package/lib/verify/conclusion.js +0 -39
- package/lib/verify/derivation.js +0 -31
- package/lib/verify/label.js +0 -37
- package/lib/verify/labels.js +0 -28
- package/lib/verify/premise.js +0 -45
- package/lib/verify/premises.js +0 -28
- package/lib/verify/proof.js +0 -34
- package/lib/verify/rule.js +0 -56
- package/lib/verify/statement/qualified.js +0 -41
- package/lib/verify/statement/unqualified.js +0 -45
- package/lib/verify/statement.js +0 -219
- package/lib/verify/statementAsCombinator.js +0 -33
- package/lib/verify/statementGivenMetaType.js +0 -52
- package/lib/verify/subproof.js +0 -34
- package/lib/verify/supposition.js +0 -45
- package/lib/verify/suppositions.js +0 -28
- package/src/tokens/combinatorStatement/bracketed.js +0 -10
- package/src/unify/premiseWithProofStep.js +0 -54
- package/src/unify/premisesWithProofSteps.js +0 -23
- package/src/unify/qualifiedStatement.js +0 -208
- package/src/unify/statementWithBracketedCombinator.js +0 -22
- package/src/unify/statementWithCombinator.js +0 -22
- package/src/unify/statementWithCombinators.js +0 -23
- package/src/unify/statementWithMetaType.js +0 -14
- package/src/verify/conclusion.js +0 -40
- package/src/verify/derivation.js +0 -23
- package/src/verify/label.js +0 -34
- package/src/verify/labels.js +0 -17
- package/src/verify/premise.js +0 -49
- package/src/verify/premises.js +0 -17
- package/src/verify/proof.js +0 -31
- package/src/verify/rule.js +0 -71
- package/src/verify/statement/qualified.js +0 -40
- package/src/verify/statement/unqualified.js +0 -49
- package/src/verify/statement.js +0 -312
- package/src/verify/statementAsCombinator.js +0 -27
- package/src/verify/statementGivenMetaType.js +0 -52
- package/src/verify/subproof.js +0 -32
- package/src/verify/supposition.js +0 -49
- package/src/verify/suppositions.js +0 -17
package/README.md
CHANGED
|
@@ -46,8 +46,6 @@ Options:
|
|
|
46
46
|
--tail|-t Sets the size of the tail of the log messages. The default is ten.
|
|
47
47
|
|
|
48
48
|
--follow|-f Show the log messages immediately instead of tailing them. The default is false.
|
|
49
|
-
|
|
50
|
-
--verbose|-x Verbose output. This shows the output for the dependency as well as the project verification.
|
|
51
49
|
```
|
|
52
50
|
|
|
53
51
|
## Building
|
package/bin/abbreviations.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const { HELP_OPTION, TAIL_OPTION, FOLLOW_OPTION,
|
|
3
|
+
const { HELP_OPTION, TAIL_OPTION, FOLLOW_OPTION, VERSION_OPTION, LOG_LEVEL_OPTION } = require("./options");
|
|
4
4
|
|
|
5
5
|
const h = HELP_OPTION,
|
|
6
6
|
t = TAIL_OPTION,
|
|
7
7
|
f = FOLLOW_OPTION,
|
|
8
|
-
x = VERBOSE_OPTION,
|
|
9
8
|
v = VERSION_OPTION,
|
|
10
9
|
l = LOG_LEVEL_OPTION
|
|
11
10
|
|
|
@@ -13,7 +12,6 @@ module.exports = {
|
|
|
13
12
|
h,
|
|
14
13
|
t,
|
|
15
14
|
f,
|
|
16
|
-
x,
|
|
17
15
|
v,
|
|
18
16
|
l
|
|
19
17
|
};
|
package/bin/action/help.js
CHANGED
|
@@ -21,8 +21,6 @@ Options:
|
|
|
21
21
|
|
|
22
22
|
--follow|-f Show the log messages immediately instead of tailing them. The default is false.
|
|
23
23
|
|
|
24
|
-
--verbose|-x Verbose output. This shows the output for the dependency as well as the project verification.
|
|
25
|
-
|
|
26
24
|
Further information:
|
|
27
25
|
|
|
28
26
|
Please see the readme file on GitHub:
|
package/bin/action/verify.js
CHANGED
|
@@ -8,7 +8,7 @@ const { trimTrailingSlash } = require("../utilities/string"),
|
|
|
8
8
|
|
|
9
9
|
const { createReleaseContext, initialiseReleaseContext } = releaseContextUtilities;
|
|
10
10
|
|
|
11
|
-
function verifyAction(argument,
|
|
11
|
+
function verifyAction(argument, log) {
|
|
12
12
|
const name = trimTrailingSlash(argument), ///
|
|
13
13
|
context = {},
|
|
14
14
|
dependency = Dependency.fromName(name),
|
|
@@ -17,7 +17,6 @@ function verifyAction(argument, verbose, log) {
|
|
|
17
17
|
|
|
18
18
|
Object.assign(context, {
|
|
19
19
|
log,
|
|
20
|
-
verbose,
|
|
21
20
|
releaseContextMap,
|
|
22
21
|
releaseContextFromDependency
|
|
23
22
|
});
|
|
@@ -41,29 +40,10 @@ function verifyAction(argument, verbose, log) {
|
|
|
41
40
|
return;
|
|
42
41
|
}
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
releaseContext = releaseContextMap[releaseName],
|
|
46
|
-
releaseContextInitialised = initialiseReleaseContext(dependency, context);
|
|
47
|
-
|
|
48
|
-
if (!releaseContextInitialised) {
|
|
49
|
-
log.warning(`The '${name}' project or package context cannot be initialised.`);
|
|
50
|
-
|
|
51
|
-
stopClock(now, log);
|
|
52
|
-
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const releaseContextVerified = releaseContext.isVerified();
|
|
43
|
+
initialiseReleaseContext(dependency, context);
|
|
57
44
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
stopClock(now, log);
|
|
62
|
-
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const releaseVerified = verifyRelease(releaseName, releaseContextMap);
|
|
45
|
+
const releaseName = name, ///
|
|
46
|
+
releaseVerified = verifyRelease(releaseName, releaseContextMap);
|
|
67
47
|
|
|
68
48
|
if (!releaseVerified) {
|
|
69
49
|
log.warning(`The '${name}' project or package context cannot be verified.`);
|
package/bin/defaults.js
CHANGED
|
@@ -7,7 +7,6 @@ const { INFO_LEVEL } = levels;
|
|
|
7
7
|
const DEFAULT_HELP = false,
|
|
8
8
|
DEFAULT_TAIL = 10,
|
|
9
9
|
DEFAULT_FOLLOW = false,
|
|
10
|
-
DEFAULT_VERBOSE = false,
|
|
11
10
|
DEFAULT_VERSION = false,
|
|
12
11
|
DEFAULT_LOG_LEVEL = INFO_LEVEL;
|
|
13
12
|
|
|
@@ -15,7 +14,6 @@ module.exports = {
|
|
|
15
14
|
DEFAULT_HELP,
|
|
16
15
|
DEFAULT_TAIL,
|
|
17
16
|
DEFAULT_FOLLOW,
|
|
18
|
-
DEFAULT_VERBOSE,
|
|
19
17
|
DEFAULT_VERSION,
|
|
20
18
|
DEFAULT_LOG_LEVEL
|
|
21
19
|
};
|
package/bin/main.js
CHANGED
|
@@ -8,12 +8,11 @@ const helpAction = require("./action/help"),
|
|
|
8
8
|
|
|
9
9
|
const { NO_COMMAND_GIVEN_MESSAGE } = require("./messages"),
|
|
10
10
|
{ HELP_COMMAND, VERIFY_COMMAND, VERSION_COMMAND } = require("./commands"),
|
|
11
|
-
{ DEFAULT_TAIL, DEFAULT_FOLLOW,
|
|
11
|
+
{ DEFAULT_TAIL, DEFAULT_FOLLOW, DEFAULT_LOG_LEVEL } = require("./defaults");
|
|
12
12
|
|
|
13
13
|
function main(command, argument, options) {
|
|
14
14
|
const { tail = DEFAULT_TAIL,
|
|
15
15
|
follow = DEFAULT_FOLLOW,
|
|
16
|
-
verbose = DEFAULT_VERBOSE,
|
|
17
16
|
logLevel = DEFAULT_LOG_LEVEL } = options;
|
|
18
17
|
|
|
19
18
|
const log = Log.fromFollowAndLogLevel(follow, logLevel);
|
|
@@ -32,7 +31,7 @@ function main(command, argument, options) {
|
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
case VERIFY_COMMAND: {
|
|
35
|
-
verifyAction(argument,
|
|
34
|
+
verifyAction(argument, log);
|
|
36
35
|
|
|
37
36
|
break;
|
|
38
37
|
}
|
|
@@ -46,7 +45,7 @@ function main(command, argument, options) {
|
|
|
46
45
|
default: {
|
|
47
46
|
argument = command; ///
|
|
48
47
|
|
|
49
|
-
verifyAction(argument,
|
|
48
|
+
verifyAction(argument, log);
|
|
50
49
|
|
|
51
50
|
break;
|
|
52
51
|
}
|
package/bin/options.js
CHANGED
|
@@ -4,7 +4,6 @@ const HELP_OPTION = "help",
|
|
|
4
4
|
TAIL_OPTION = "tail",
|
|
5
5
|
FOLLOW_OPTION = "follow",
|
|
6
6
|
VERSION_OPTION = "version",
|
|
7
|
-
VERBOSE_OPTION = "verbose",
|
|
8
7
|
LOG_LEVEL_OPTION = "log-level";
|
|
9
8
|
|
|
10
9
|
module.exports = {
|
|
@@ -12,6 +11,5 @@ module.exports = {
|
|
|
12
11
|
TAIL_OPTION,
|
|
13
12
|
FOLLOW_OPTION,
|
|
14
13
|
VERSION_OPTION,
|
|
15
|
-
VERBOSE_OPTION,
|
|
16
14
|
LOG_LEVEL_OPTION
|
|
17
15
|
};
|
|
@@ -0,0 +1,106 @@
|
|
|
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 SubproofAssertion;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _statement = /*#__PURE__*/ _interop_require_default(require("../statement"));
|
|
12
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
13
|
+
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/metaLevel"));
|
|
14
|
+
var _array = require("../utilities/array");
|
|
15
|
+
var _query = require("../utilities/query");
|
|
16
|
+
function _class_call_check(instance, Constructor) {
|
|
17
|
+
if (!(instance instanceof Constructor)) {
|
|
18
|
+
throw new TypeError("Cannot call a class as a function");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function _defineProperties(target, props) {
|
|
22
|
+
for(var i = 0; i < props.length; i++){
|
|
23
|
+
var descriptor = props[i];
|
|
24
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
25
|
+
descriptor.configurable = true;
|
|
26
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
27
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
31
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
32
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
33
|
+
return Constructor;
|
|
34
|
+
}
|
|
35
|
+
function _interop_require_default(obj) {
|
|
36
|
+
return obj && obj.__esModule ? obj : {
|
|
37
|
+
default: obj
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
var statementNodesQuery = (0, _query.nodesQuery)("/subproofAssertion/statement"), subproofAssertionNodeQuery = (0, _query.nodeQuery)("/statement/subproofAssertion");
|
|
41
|
+
var SubproofAssertion = /*#__PURE__*/ function() {
|
|
42
|
+
function SubproofAssertion(fileContext, string, statements) {
|
|
43
|
+
_class_call_check(this, SubproofAssertion);
|
|
44
|
+
this.fileContext = fileContext;
|
|
45
|
+
this.string = string;
|
|
46
|
+
this.statements = statements;
|
|
47
|
+
}
|
|
48
|
+
_create_class(SubproofAssertion, [
|
|
49
|
+
{
|
|
50
|
+
key: "getFileContext",
|
|
51
|
+
value: function getFileContext() {
|
|
52
|
+
return this.fileContext;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
key: "getString",
|
|
57
|
+
value: function getString() {
|
|
58
|
+
return this.string;
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
key: "getStatements",
|
|
63
|
+
value: function getStatements() {
|
|
64
|
+
return this.statements;
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
key: "unifySubproof",
|
|
69
|
+
value: function unifySubproof(subproof, substitutions, localContext) {
|
|
70
|
+
var _this = this;
|
|
71
|
+
var subproofUnified;
|
|
72
|
+
var subproofString = subproof.getString(), subproofStatements = subproof.getStatements(), subproofAssertionString = this.string; ///
|
|
73
|
+
localContext.trace("Unifying the '".concat(subproofString, "' subproof with the '").concat(subproofAssertionString, "' subproof assertion..."));
|
|
74
|
+
subproofUnified = (0, _array.match)(this.statements, subproofStatements, function(statement, subproofStatement) {
|
|
75
|
+
var statementNode = statement.getNode(), subproofStatementNode = subproofStatement.getNode(), nodeA = statementNode, nodeB = subproofStatementNode, fileContextA = _this.fileContext, localContextA = _local.default.fromFileContext(fileContextA), localContextB = localContext, unified = _metaLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
|
|
76
|
+
if (unified) {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
if (subproofUnified) {
|
|
81
|
+
localContext.debug("...unified the '".concat(subproofString, "' subproof with the '").concat(subproofAssertionString, "' subproof assertion."));
|
|
82
|
+
}
|
|
83
|
+
return subproofUnified;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
], [
|
|
87
|
+
{
|
|
88
|
+
key: "fromStatementNode",
|
|
89
|
+
value: function fromStatementNode(statementNode, fileContext) {
|
|
90
|
+
var subproofAssertion = null;
|
|
91
|
+
var subproofAssertionNode = subproofAssertionNodeQuery(statementNode);
|
|
92
|
+
if (subproofAssertionNode !== null) {
|
|
93
|
+
var node = subproofAssertionNode, string = fileContext.nodeAsString(node), localContext = _local.default.fromFileContext(fileContext), statementNodes = statementNodesQuery(subproofAssertionNode), statements = statementNodes.map(function(statementNode) {
|
|
94
|
+
var statement = _statement.default.fromStatementNode(statementNode, localContext);
|
|
95
|
+
return statement;
|
|
96
|
+
});
|
|
97
|
+
subproofAssertion = new SubproofAssertion(fileContext, string, statements);
|
|
98
|
+
}
|
|
99
|
+
return subproofAssertion;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
]);
|
|
103
|
+
return SubproofAssertion;
|
|
104
|
+
}();
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3NlcnRpb24vc3VicHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBTdGF0ZW1lbnQgZnJvbSBcIi4uL3N0YXRlbWVudFwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IG1ldGFMZXZlbFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YUxldmVsXCI7XG5cbmltcG9ydCB7IG1hdGNoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9zdWJwcm9vZkFzc2VydGlvbi9zdGF0ZW1lbnRcIiksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvc3VicHJvb2ZBc3NlcnRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1YnByb29mQXNzZXJ0aW9uIHtcbiAgY29uc3RydWN0b3IoZmlsZUNvbnRleHQsIHN0cmluZywgc3RhdGVtZW50cykge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnN0YXRlbWVudHMgPSBzdGF0ZW1lbnRzO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnRzO1xuICB9XG5cbiAgdW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN1YnByb29mVW5pZmllZDtcblxuICAgIGNvbnN0IHN1YnByb29mU3RyaW5nID0gc3VicHJvb2YuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3VicHJvb2ZTdGF0ZW1lbnRzID0gc3VicHJvb2YuZ2V0U3RhdGVtZW50cygpLFxuICAgICAgICAgIHN1YnByb29mQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgJyR7c3VicHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBhc3NlcnRpb24uLi5gKTtcblxuICAgIHN1YnByb29mVW5pZmllZCA9IG1hdGNoKHRoaXMuc3RhdGVtZW50cywgc3VicHJvb2ZTdGF0ZW1lbnRzLCAoc3RhdGVtZW50LCBzdWJwcm9vZlN0YXRlbWVudCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgICBzdWJwcm9vZlN0YXRlbWVudE5vZGUgPSBzdWJwcm9vZlN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgICBub2RlQSA9IHN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIG5vZGVCID0gc3VicHJvb2ZTdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICBmaWxlQ29udGV4dEEgPSB0aGlzLmZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgICAgICBsb2NhbENvbnRleHRBID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dEEpLFxuICAgICAgICAgICAgbG9jYWxDb250ZXh0QiA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgICB1bmlmaWVkID0gbWV0YUxldmVsVW5pZmllci51bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICBpZiAodW5pZmllZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzdWJwcm9vZlVuaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VicHJvb2ZTdHJpbmd9JyBzdWJwcm9vZiB3aXRoIHRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VicHJvb2ZVbmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHN1YnByb29mQXNzZXJ0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IHN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IHN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKHN1YnByb29mQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IHN1YnByb29mQXNzZXJ0aW9uTm9kZSwgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGVzID0gc3RhdGVtZW50Tm9kZXNRdWVyeShzdWJwcm9vZkFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgICAgc3RhdGVtZW50cyA9IHN0YXRlbWVudE5vZGVzLm1hcCgoc3RhdGVtZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzdGF0ZW1lbnQgPSBTdGF0ZW1lbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgICAgICByZXR1cm4gc3RhdGVtZW50O1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gbmV3IFN1YnByb29mQXNzZXJ0aW9uKGZpbGVDb250ZXh0LCBzdHJpbmcsIHN0YXRlbWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJwcm9vZkFzc2VydGlvbjtcbiAgfVxufSJdLCJuYW1lcyI6WyJTdWJwcm9vZkFzc2VydGlvbiIsInN0YXRlbWVudE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5Iiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJmaWxlQ29udGV4dCIsInN0cmluZyIsInN0YXRlbWVudHMiLCJnZXRGaWxlQ29udGV4dCIsImdldFN0cmluZyIsImdldFN0YXRlbWVudHMiLCJ1bmlmeVN1YnByb29mIiwic3VicHJvb2YiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0Iiwic3VicHJvb2ZVbmlmaWVkIiwic3VicHJvb2ZTdHJpbmciLCJzdWJwcm9vZlN0YXRlbWVudHMiLCJzdWJwcm9vZkFzc2VydGlvblN0cmluZyIsInRyYWNlIiwibWF0Y2giLCJzdGF0ZW1lbnQiLCJzdWJwcm9vZlN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJnZXROb2RlIiwic3VicHJvb2ZTdGF0ZW1lbnROb2RlIiwibm9kZUEiLCJub2RlQiIsImZpbGVDb250ZXh0QSIsImxvY2FsQ29udGV4dEEiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJsb2NhbENvbnRleHRCIiwidW5pZmllZCIsIm1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeSIsImRlYnVnIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJzdWJwcm9vZkFzc2VydGlvbiIsInN1YnByb29mQXNzZXJ0aW9uTm9kZSIsIm5vZGUiLCJub2RlQXNTdHJpbmciLCJzdGF0ZW1lbnROb2RlcyIsIm1hcCIsIlN0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
|
|
@@ -43,7 +43,7 @@ var MetavariableAssignment = /*#__PURE__*/ function() {
|
|
|
43
43
|
key: "assign",
|
|
44
44
|
value: function assign(fileContext) {
|
|
45
45
|
var metavariableAdded = fileContext.addMetavariable(this.metavariable), metavariableNode = this.metavariable.getNode(), metavariableString = fileContext.nodeAsString(metavariableNode), metavariableAssigned = metavariableAdded; ///
|
|
46
|
-
metavariableAssigned ? fileContext.trace("Assigned the '".concat(metavariableString, "' metavariable.")
|
|
46
|
+
metavariableAssigned ? fileContext.trace("Assigned the '".concat(metavariableString, "' metavariable.")) : fileContext.debug("Unable to assign the '".concat(metavariableString, "' metavariable."));
|
|
47
47
|
return metavariableAssigned;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -59,4 +59,4 @@ var MetavariableAssignment = /*#__PURE__*/ function() {
|
|
|
59
59
|
return MetavariableAssignment;
|
|
60
60
|
}();
|
|
61
61
|
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3NpZ25tZW50L21ldGF2YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YXZhcmlhYmxlQXNzaWdubWVudCB7XG4gIGNvbnN0cnVjdG9yKG1ldGF2YXJpYWJsZSkge1xuICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGFzc2lnbihmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZUFkZGVkID0gZmlsZUNvbnRleHQuYWRkTWV0YXZhcmlhYmxlKHRoaXMubWV0YXZhcmlhYmxlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gdGhpcy5tZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVBc3NpZ25lZCA9IG1ldGF2YXJpYWJsZUFkZGVkOyAvLy9cblxuICAgIG1ldGF2YXJpYWJsZUFzc2lnbmVkID9cbiAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGBBc3NpZ25lZCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLmApIDpcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFVuYWJsZSB0byBhc3NpZ24gdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gKTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVBc3NpZ25lZDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZUFzc2lnbm1lbnQgPSBuZXcgTWV0YXZhcmlhYmxlQXNzaWdubWVudChtZXRhdmFyaWFibGUpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZUFzc2lnbm1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJNZXRhdmFyaWFibGVBc3NpZ25tZW50IiwibWV0YXZhcmlhYmxlIiwiZ2V0TWV0YXZhcmlhYmxlIiwiYXNzaWduIiwiZmlsZUNvbnRleHQiLCJtZXRhdmFyaWFibGVBZGRlZCIsImFkZE1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJnZXROb2RlIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibWV0YXZhcmlhYmxlQXNzaWduZWQiLCJ0cmFjZSIsImRlYnVnIiwiZnJvbU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUFzc2lnbm1lbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFOLElBQUEsQUFBTUEsdUNBQU47YUFBTUEsdUJBQ1BDLFlBQVk7Z0NBRExEO1FBRWpCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTs7a0JBRkhEOztZQUtuQkUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxZQUFZO1lBQzFCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9DLFdBQVc7Z0JBQ2hCLElBQU1DLG9CQUFvQkQsWUFBWUUsZUFBZSxDQUFDLElBQUksQ0FBQ0wsWUFBWSxHQUNqRU0sbUJBQW1CLElBQUksQ0FBQ04sWUFBWSxDQUFDTyxPQUFPLElBQzVDQyxxQkFBcUJMLFlBQVlNLFlBQVksQ0FBQ0gsbUJBQzlDSSx1QkFBdUJOLG1CQUFtQixHQUFHO2dCQUVuRE0sdUJBQ0VQLFlBQVlRLEtBQUssQ0FBQyxBQUFDLGlCQUFtQyxPQUFuQkgsb0JBQW1CLHNCQUNwREwsWUFBWVMsS0FBSyxDQUFDLEFBQUMseUJBQTJDLE9BQW5CSixvQkFBbUI7Z0JBRWxFLE9BQU9FO1lBQ1Q7Ozs7WUFFT0csS0FBQUE7bUJBQVAsU0FBT0EsaUJBQWlCYixZQUFZO2dCQUNsQyxJQUFNYyx5QkFBeUIsSUF2QmRmLHVCQXVCeUNDO2dCQUUxRCxPQUFPYztZQUNUOzs7V0ExQm1CZiJ9
|
package/lib/combinator.js
CHANGED
|
@@ -8,7 +8,9 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return Combinator;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var
|
|
11
|
+
var _shim = /*#__PURE__*/ _interop_require_default(require("./shim"));
|
|
12
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
|
|
13
|
+
var _query = require("./utilities/query");
|
|
12
14
|
function _class_call_check(instance, Constructor) {
|
|
13
15
|
if (!(instance instanceof Constructor)) {
|
|
14
16
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -28,39 +30,71 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
28
30
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
31
|
return Constructor;
|
|
30
32
|
}
|
|
33
|
+
function _interop_require_default(obj) {
|
|
34
|
+
return obj && obj.__esModule ? obj : {
|
|
35
|
+
default: obj
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
var statementNodeQuery = (0, _query.nodeQuery)("/combinatorDeclaration/statement");
|
|
31
39
|
var Combinator = /*#__PURE__*/ function() {
|
|
32
|
-
function Combinator(
|
|
40
|
+
function Combinator(statement) {
|
|
33
41
|
_class_call_check(this, Combinator);
|
|
34
|
-
this.
|
|
35
|
-
this.string = string;
|
|
42
|
+
this.statement = statement;
|
|
36
43
|
}
|
|
37
44
|
_create_class(Combinator, [
|
|
38
45
|
{
|
|
39
|
-
key: "
|
|
40
|
-
value: function
|
|
41
|
-
return this.
|
|
46
|
+
key: "getStatement",
|
|
47
|
+
value: function getStatement() {
|
|
48
|
+
return this.statement;
|
|
42
49
|
}
|
|
43
50
|
},
|
|
44
51
|
{
|
|
45
52
|
key: "getString",
|
|
46
53
|
value: function getString() {
|
|
47
|
-
return this.
|
|
54
|
+
return this.statement.getString();
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
key: "getStatementNode",
|
|
59
|
+
value: function getStatementNode() {
|
|
60
|
+
var statementNode = this.statement.getNode();
|
|
61
|
+
return statementNode;
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
key: "verify",
|
|
66
|
+
value: function verify(fileContext) {
|
|
67
|
+
var localContext = _local.default.fromFileContext(fileContext), statementVerifiedAsCombinator = this.statement.verifyAsCombinator(localContext), verified = statementVerifiedAsCombinator; ///
|
|
68
|
+
return verified;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
key: "toJSON",
|
|
73
|
+
value: function toJSON() {
|
|
74
|
+
var statementString = this.statement.getString(), statement = statementString, json = {
|
|
75
|
+
statement: statement
|
|
76
|
+
};
|
|
77
|
+
return json;
|
|
48
78
|
}
|
|
49
79
|
}
|
|
50
80
|
], [
|
|
51
81
|
{
|
|
52
|
-
key: "
|
|
53
|
-
value: function
|
|
54
|
-
var
|
|
82
|
+
key: "fromJSON",
|
|
83
|
+
value: function fromJSON(json, fileContext) {
|
|
84
|
+
var combinator = null;
|
|
85
|
+
debugger;
|
|
86
|
+
return combinator;
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
key: "fromCombinatorDeclarationNode",
|
|
91
|
+
value: function fromCombinatorDeclarationNode(combinatorDeclarationNode, fileContext) {
|
|
92
|
+
var Statement = _shim.default.Statement, statementNode = statementNodeQuery(combinatorDeclarationNode), localContext = _local.default.fromFileContext(fileContext), statement = Statement.fromStatementNode(statementNode, localContext), combinator = new Combinator(statement);
|
|
55
93
|
return combinator;
|
|
56
94
|
}
|
|
57
95
|
}
|
|
58
96
|
]);
|
|
59
97
|
return Combinator;
|
|
60
98
|
}();
|
|
61
|
-
function stringFromStatementNodeAndTokens(statementNode, tokens) {
|
|
62
|
-
var statementString = (0, _string.nodeAsString)(statementNode, tokens), string = statementString; ///
|
|
63
|
-
return string;
|
|
64
|
-
}
|
|
65
99
|
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi9zaGltXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuL2NvbnRleHQvbG9jYWxcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21iaW5hdG9yRGVjbGFyYXRpb24vc3RhdGVtZW50XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21iaW5hdG9yIHtcbiAgY29uc3RydWN0b3Ioc3RhdGVtZW50KSB7XG4gICAgdGhpcy5zdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkgeyByZXR1cm4gdGhpcy5zdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7IH1cblxuICBnZXRTdGF0ZW1lbnROb2RlKCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSB0aGlzLnN0YXRlbWVudC5nZXROb2RlKCk7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIHZlcmlmeShmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQXNDb21iaW5hdG9yID0gdGhpcy5zdGF0ZW1lbnQudmVyaWZ5QXNDb21iaW5hdG9yKGxvY2FsQ29udGV4dCksXG4gICAgICAgICAgdmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvcjsgLy8vXG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gdGhpcy5zdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50U3RyaW5nLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCBjb21iaW5hdG9yID0gbnVsbDtcblxuICAgIGRlYnVnZ2VyXG5cbiAgICByZXR1cm4gY29tYmluYXRvcjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZShjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgU3RhdGVtZW50IH0gPSBzaGltLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCksXG4gICAgICAgICAgY29tYmluYXRvciA9IG5ldyBDb21iaW5hdG9yKHN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gY29tYmluYXRvcjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbWJpbmF0b3IiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJnZXRTdHJpbmciLCJnZXRTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJ2ZXJpZnkiLCJmaWxlQ29udGV4dCIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInN0YXRlbWVudFZlcmlmaWVkQXNDb21iaW5hdG9yIiwidmVyaWZ5QXNDb21iaW5hdG9yIiwidmVyaWZpZWQiLCJ0b0pTT04iLCJzdGF0ZW1lbnRTdHJpbmciLCJqc29uIiwiZnJvbUpTT04iLCJjb21iaW5hdG9yIiwiZnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiU3RhdGVtZW50Iiwic2hpbSIsImZyb21TdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVNxQkE7OzsyREFQSjs0REFDUTtxQkFFQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsSUFBQSxBQUFNRiwyQkFBTjthQUFNQSxXQUNQRyxTQUFTO2dDQURGSDtRQUVqQixJQUFJLENBQUNHLFNBQVMsR0FBR0E7O2tCQUZBSDs7WUFLbkJJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0QsU0FBUztZQUN2Qjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBYyxPQUFPLElBQUksQ0FBQ0YsU0FBUyxDQUFDRSxTQUFTO1lBQUk7OztZQUVqREMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGdCQUFnQixJQUFJLENBQUNKLFNBQVMsQ0FBQ0ssT0FBTztnQkFFNUMsT0FBT0Q7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPQyxXQUFXO2dCQUNoQixJQUFNQyxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ0gsY0FDNUNJLGdDQUFnQyxJQUFJLENBQUNYLFNBQVMsQ0FBQ1ksa0JBQWtCLENBQUNKLGVBQ2xFSyxXQUFXRiwrQkFBK0IsR0FBRztnQkFFbkQsT0FBT0U7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxrQkFBa0IsSUFBSSxDQUFDZixTQUFTLENBQUNFLFNBQVMsSUFDMUNGLFlBQVllLGlCQUNaQyxPQUFPO29CQUNMaEIsV0FBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT2dCO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU0QsSUFBSSxFQUFFVCxXQUFXO2dCQUMvQixJQUFJVyxhQUFhO2dCQUVqQixRQUFRO2dCQUVSLE9BQU9BO1lBQ1Q7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSw4QkFBOEJDLHlCQUF5QixFQUFFYixXQUFXO2dCQUN6RSxJQUFNLEFBQUVjLFlBQWNDLGFBQUksQ0FBbEJELFdBQ0ZqQixnQkFBZ0JOLG1CQUFtQnNCLDRCQUNuQ1osZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNILGNBQzVDUCxZQUFZcUIsVUFBVUUsaUJBQWlCLENBQUNuQixlQUFlSSxlQUN2RFUsYUFBYSxJQWhERnJCLFdBZ0RpQkc7Z0JBRWxDLE9BQU9rQjtZQUNUOzs7V0FuRG1CckIifQ==
|
package/lib/conclusion.js
CHANGED
|
@@ -9,6 +9,9 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("./unifier/metaLevel"));
|
|
12
|
+
var _unqualified = /*#__PURE__*/ _interop_require_default(require("./statement/unqualified"));
|
|
13
|
+
var _query = require("./utilities/query");
|
|
14
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
|
|
12
15
|
function _class_call_check(instance, Constructor) {
|
|
13
16
|
if (!(instance instanceof Constructor)) {
|
|
14
17
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -33,34 +36,90 @@ function _interop_require_default(obj) {
|
|
|
33
36
|
default: obj
|
|
34
37
|
};
|
|
35
38
|
}
|
|
39
|
+
var unqualifiedStatementNodeQuery = (0, _query.nodeQuery)("/conclusion/unqualifiedStatement");
|
|
36
40
|
var Conclusion = /*#__PURE__*/ function() {
|
|
37
|
-
function Conclusion(
|
|
41
|
+
function Conclusion(fileContext, unqualifiedStatement) {
|
|
38
42
|
_class_call_check(this, Conclusion);
|
|
39
|
-
this.
|
|
43
|
+
this.fileContext = fileContext;
|
|
44
|
+
this.unqualifiedStatement = unqualifiedStatement;
|
|
40
45
|
}
|
|
41
46
|
_create_class(Conclusion, [
|
|
42
47
|
{
|
|
43
|
-
key: "
|
|
44
|
-
value: function
|
|
45
|
-
return this.
|
|
48
|
+
key: "getFileContext",
|
|
49
|
+
value: function getFileContext() {
|
|
50
|
+
return this.fileContext;
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
key: "getUnqualifiedStatement",
|
|
55
|
+
value: function getUnqualifiedStatement() {
|
|
56
|
+
return this.unqualifiedStatement;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
key: "getString",
|
|
61
|
+
value: function getString() {
|
|
62
|
+
return this.unqualifiedStatement.getString();
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
key: "getStatement",
|
|
67
|
+
value: function getStatement() {
|
|
68
|
+
return this.unqualifiedStatement.getStatement();
|
|
46
69
|
}
|
|
47
70
|
},
|
|
48
71
|
{
|
|
49
72
|
key: "unifyStatement",
|
|
50
|
-
value: function unifyStatement(
|
|
51
|
-
var statementUnified
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
73
|
+
value: function unifyStatement(statement, substitutions, localContext) {
|
|
74
|
+
var statementUnified;
|
|
75
|
+
var conclusion = this, statementString = statement.getString(), conclusionStatement = conclusion.getStatement(), conclusionStatementString = conclusionStatement.getString();
|
|
76
|
+
localContext.trace("Unifying the '".concat(statementString, "' statement with the conclusion's '").concat(conclusionStatementString, "' statement..."));
|
|
77
|
+
var statementNode = statement.getNode(), conclusionStatementNode = conclusionStatement.getNode(), nodeA = conclusionStatementNode, nodeB = statementNode, fileContextA = this.fileContext, localContextA = _local.default.fromFileContext(fileContextA), localContextB = localContext, unified = _metaLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
|
|
78
|
+
statementUnified = unified; ///
|
|
79
|
+
if (statementUnified) {
|
|
80
|
+
localContext.debug("...unified the '".concat(statementString, "' statement with the conclusion's '").concat(conclusionStatementString, "' statement."));
|
|
55
81
|
}
|
|
56
82
|
return statementUnified;
|
|
57
83
|
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
key: "verify",
|
|
87
|
+
value: function verify(localContext) {
|
|
88
|
+
var verified = false;
|
|
89
|
+
var conclusionString = this.getString(); ///
|
|
90
|
+
localContext.trace("Verifying the '".concat(conclusionString, "' conclusion..."));
|
|
91
|
+
var stated = true, assignments = [], unqualifiedStatementVerified = this.unqualifiedStatement.verify(assignments, stated, localContext);
|
|
92
|
+
if (unqualifiedStatementVerified) {
|
|
93
|
+
verified = true;
|
|
94
|
+
}
|
|
95
|
+
if (verified) {
|
|
96
|
+
localContext.debug("...verified the '".concat(conclusionString, "' conclusion."));
|
|
97
|
+
}
|
|
98
|
+
return verified;
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
key: "toJSON",
|
|
103
|
+
value: function toJSON() {
|
|
104
|
+
var unqualifiedStatementString = this.unqualifiedStatement.getString(), unqualifiedStatement = unqualifiedStatementString, json = {
|
|
105
|
+
unqualifiedStatement: unqualifiedStatement
|
|
106
|
+
};
|
|
107
|
+
return json;
|
|
108
|
+
}
|
|
58
109
|
}
|
|
59
110
|
], [
|
|
60
111
|
{
|
|
61
|
-
key: "
|
|
62
|
-
value: function
|
|
63
|
-
var conclusion =
|
|
112
|
+
key: "fromJSON",
|
|
113
|
+
value: function fromJSON(json, fileContext) {
|
|
114
|
+
var conclusion = null;
|
|
115
|
+
debugger;
|
|
116
|
+
return conclusion;
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
key: "fromConclusionNode",
|
|
121
|
+
value: function fromConclusionNode(conclusionNode, fileContext) {
|
|
122
|
+
var unqualifiedStatementNode = unqualifiedStatementNodeQuery(conclusionNode), unqualifiedStatement = _unqualified.default.fromUnqualifiedStatementNode(unqualifiedStatementNode, fileContext), conclusion = new Conclusion(fileContext, unqualifiedStatement);
|
|
64
123
|
return conclusion;
|
|
65
124
|
}
|
|
66
125
|
}
|
|
@@ -68,4 +127,4 @@ var Conclusion = /*#__PURE__*/ function() {
|
|
|
68
127
|
return Conclusion;
|
|
69
128
|
}();
|
|
70
129
|
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25jbHVzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IFVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuL3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4vY29udGV4dC9sb2NhbFwiO1xuXG5jb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25jbHVzaW9uL3VucXVhbGlmaWVkU3RhdGVtZW50XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25jbHVzaW9uIHtcbiAgY29uc3RydWN0b3IoZmlsZUNvbnRleHQsIHVucXVhbGlmaWVkU3RhdGVtZW50KSB7XG4gICAgdGhpcy5maWxlQ29udGV4dCA9IGZpbGVDb250ZXh0O1xuICAgIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQgPSB1bnF1YWxpZmllZFN0YXRlbWVudDtcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0O1xuICB9XG5cbiAgZ2V0VW5xdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7IHJldHVybiB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0cmluZygpOyB9XG5cbiAgZ2V0U3RhdGVtZW50KCkgeyByZXR1cm4gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC5nZXRTdGF0ZW1lbnQoKTsgfVxuXG4gIHVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgICBjb25zdCBjb25jbHVzaW9uID0gdGhpcywgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIGNvbmNsdXNpb25TdGF0ZW1lbnQgPSBjb25jbHVzaW9uLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIGNvbmNsdXNpb25TdGF0ZW1lbnRTdHJpbmcgPSBjb25jbHVzaW9uU3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIGNvbmNsdXNpb24ncyAnJHtjb25jbHVzaW9uU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICBjb25jbHVzaW9uU3RhdGVtZW50Tm9kZSA9IGNvbmNsdXNpb25TdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVBID0gY29uY2x1c2lvblN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBub2RlQiA9IHN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBmaWxlQ29udGV4dEEgPSB0aGlzLmZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgICAgbG9jYWxDb250ZXh0QSA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHRBKSxcbiAgICAgICAgICBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICB1bmlmaWVkID0gbWV0YUxldmVsVW5pZmllci51bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgc3RhdGVtZW50VW5pZmllZCA9IHVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIGNvbmNsdXNpb24ncyAnJHtjb25jbHVzaW9uU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5KGxvY2FsQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29uY2x1c2lvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb25jbHVzaW9uU3RyaW5nfScgY29uY2x1c2lvbi4uLmApO1xuXG4gICAgY29uc3Qgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbmNsdXNpb25TdHJpbmd9JyBjb25jbHVzaW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgPSB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZywgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCBjb25jbHVzaW9uID0gbnVsbDtcblxuICAgIGRlYnVnZ2VyXG5cbiAgICByZXR1cm4gY29uY2x1c2lvbjtcbiAgfVxuICBzdGF0aWMgZnJvbUNvbmNsdXNpb25Ob2RlKGNvbmNsdXNpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KGNvbmNsdXNpb25Ob2RlKSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IFVucXVhbGlmaWVkU3RhdGVtZW50LmZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29uY2x1c2lvbiA9IG5ldyBDb25jbHVzaW9uKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gY29uY2x1c2lvbjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbmNsdXNpb24iLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImZpbGVDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRGaWxlQ29udGV4dCIsImdldFVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50IiwidW5pZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnQiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50VW5pZmllZCIsImNvbmNsdXNpb24iLCJzdGF0ZW1lbnRTdHJpbmciLCJjb25jbHVzaW9uU3RhdGVtZW50IiwiY29uY2x1c2lvblN0YXRlbWVudFN0cmluZyIsInRyYWNlIiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJjb25jbHVzaW9uU3RhdGVtZW50Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJmaWxlQ29udGV4dEEiLCJsb2NhbENvbnRleHRBIiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwibG9jYWxDb250ZXh0QiIsInVuaWZpZWQiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJkZWJ1ZyIsInZlcmlmeSIsInZlcmlmaWVkIiwiY29uY2x1c2lvblN0cmluZyIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInRvSlNPTiIsInVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwianNvbiIsImZyb21KU09OIiwiZnJvbUNvbmNsdXNpb25Ob2RlIiwiY29uY2x1c2lvbk5vZGUiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJVbnF1YWxpZmllZFN0YXRlbWVudCIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBVXFCQTs7O2dFQVJRO2tFQUNJO3FCQUVQOzREQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpCLElBQU1DLGdDQUFnQ0MsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxJQUFBLEFBQU1GLDJCQUFOO2FBQU1BLFdBQ1BHLFdBQVcsRUFBRUMsb0JBQW9CO2dDQUQxQko7UUFFakIsSUFBSSxDQUFDRyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0Msb0JBQW9CLEdBQUdBOztrQkFIWEo7O1lBTW5CSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLFdBQVc7WUFDekI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLG9CQUFvQjtZQUNsQzs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBYyxPQUFPLElBQUksQ0FBQ0gsb0JBQW9CLENBQUNHLFNBQVM7WUFBSTs7O1lBRTVEQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQWlCLE9BQU8sSUFBSSxDQUFDSixvQkFBb0IsQ0FBQ0ksWUFBWTtZQUFJOzs7WUFFbEVDLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlQyxTQUFTLEVBQUVDLGFBQWEsRUFBRUMsWUFBWTtnQkFDbkQsSUFBSUM7Z0JBRUosSUFBTUMsYUFBYSxJQUFJLEVBQ2pCQyxrQkFBa0JMLFVBQVVILFNBQVMsSUFDckNTLHNCQUFzQkYsV0FBV04sWUFBWSxJQUM3Q1MsNEJBQTRCRCxvQkFBb0JULFNBQVM7Z0JBRS9ESyxhQUFhTSxLQUFLLENBQUMsQUFBQyxpQkFBcUVELE9BQXJERixpQkFBZ0IsdUNBQStELE9BQTFCRSwyQkFBMEI7Z0JBRW5ILElBQU1FLGdCQUFnQlQsVUFBVVUsT0FBTyxJQUNqQ0MsMEJBQTBCTCxvQkFBb0JJLE9BQU8sSUFDckRFLFFBQVFELHlCQUNSRSxRQUFRSixlQUNSSyxlQUFlLElBQUksQ0FBQ3JCLFdBQVcsRUFDL0JzQixnQkFBZ0JDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDSCxlQUM3Q0ksZ0JBQWdCaEIsY0FDaEJpQixVQUFVQyxrQkFBZ0IsQ0FBQ0MsS0FBSyxDQUFDVCxPQUFPQyxPQUFPWixlQUFlYyxlQUFlRztnQkFFbkZmLG1CQUFtQmdCLFNBQVMsR0FBRztnQkFFL0IsSUFBSWhCLGtCQUFrQjtvQkFDcEJELGFBQWFvQixLQUFLLENBQUMsQUFBQyxtQkFBdUVmLE9BQXJERixpQkFBZ0IsdUNBQStELE9BQTFCRSwyQkFBMEI7Z0JBQ3ZIO2dCQUVBLE9BQU9KO1lBQ1Q7OztZQUVBb0IsS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9yQixZQUFZO2dCQUNqQixJQUFJc0IsV0FBVztnQkFFZixJQUFNQyxtQkFBbUIsSUFBSSxDQUFDNUIsU0FBUyxJQUFLLEdBQUc7Z0JBRS9DSyxhQUFhTSxLQUFLLENBQUMsQUFBQyxrQkFBa0MsT0FBakJpQixrQkFBaUI7Z0JBRXRELElBQU1DLFNBQVMsTUFDVEMsY0FBYyxFQUFFLEVBQ2hCQywrQkFBK0IsSUFBSSxDQUFDbEMsb0JBQW9CLENBQUM2QixNQUFNLENBQUNJLGFBQWFELFFBQVF4QjtnQkFFM0YsSUFBSTBCLDhCQUE4QjtvQkFDaENKLFdBQVc7Z0JBQ2I7Z0JBRUEsSUFBSUEsVUFBVTtvQkFDWnRCLGFBQWFvQixLQUFLLENBQUMsQUFBQyxvQkFBb0MsT0FBakJHLGtCQUFpQjtnQkFDMUQ7Z0JBRUEsT0FBT0Q7WUFDVDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyw2QkFBNkIsSUFBSSxDQUFDcEMsb0JBQW9CLENBQUNHLFNBQVMsSUFDaEVILHVCQUF1Qm9DLDRCQUN2QkMsT0FBTztvQkFDTHJDLHNCQUFBQTtnQkFDRjtnQkFFTixPQUFPcUM7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUV0QyxXQUFXO2dCQUMvQixJQUFJVyxhQUFhO2dCQUVqQixRQUFRO2dCQUVSLE9BQU9BO1lBQ1Q7OztZQUNPNkIsS0FBQUE7bUJBQVAsU0FBT0EsbUJBQW1CQyxjQUFjLEVBQUV6QyxXQUFXO2dCQUNuRCxJQUFNMEMsMkJBQTJCNUMsOEJBQThCMkMsaUJBQ3pEeEMsdUJBQXVCMEMsb0JBQW9CLENBQUNDLDRCQUE0QixDQUFDRiwwQkFBMEIxQyxjQUNuR1csYUFBYSxJQXhGRmQsV0F3RmlCRyxhQUFhQztnQkFFL0MsT0FBT1U7WUFDVDs7O1dBM0ZtQmQifQ==
|