occam-verify-cli 0.0.1065 → 0.0.1066

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.
Files changed (47) hide show
  1. package/lib/combinator/bracketed.js +135 -0
  2. package/lib/constants.js +3 -3
  3. package/lib/constructor/bracketed.js +30 -11
  4. package/lib/context/file.js +39 -3
  5. package/lib/context/local.js +59 -7
  6. package/lib/mixins/statement/unify.js +2 -2
  7. package/lib/mixins/statement/verify.js +6 -6
  8. package/lib/ruleNames.js +1 -5
  9. package/lib/statement.js +28 -20
  10. package/lib/substitution/frameForMetavariable.js +17 -2
  11. package/lib/substitution/termForVariable.js +20 -2
  12. package/lib/unifier/metaLevel.js +3 -4
  13. package/lib/utilities/brackets.js +5 -10
  14. package/lib/utilities/node.js +29 -15
  15. package/lib/utilities/string.js +34 -16
  16. package/lib/utilities/tokens.js +16 -8
  17. package/package.json +1 -1
  18. package/src/combinator/bracketed.js +49 -0
  19. package/src/constants.js +2 -2
  20. package/src/constructor/bracketed.js +32 -9
  21. package/src/context/file.js +35 -5
  22. package/src/context/local.js +64 -7
  23. package/src/mixins/statement/unify.js +1 -1
  24. package/src/mixins/statement/verify.js +7 -6
  25. package/src/ruleNames.js +0 -1
  26. package/src/statement.js +52 -37
  27. package/src/substitution/frameForMetavariable.js +26 -1
  28. package/src/substitution/termForVariable.js +30 -1
  29. package/src/unifier/metaLevel.js +2 -3
  30. package/src/utilities/brackets.js +2 -3
  31. package/src/utilities/node.js +30 -22
  32. package/src/utilities/string.js +39 -23
  33. package/src/utilities/tokens.js +17 -8
  34. package/lib/node/statement/bracketed.js +0 -16
  35. package/lib/node/statement/combinator/bracketed.js +0 -25
  36. package/lib/node/term/bracketed.js +0 -16
  37. package/lib/node/term/constructor/bracketed.js +0 -25
  38. package/lib/ocmbinator/bracketed.js +0 -157
  39. package/lib/substitution/statement.js +0 -163
  40. package/lib/verifier/substitution.js +0 -161
  41. package/src/node/statement/bracketed.js +0 -9
  42. package/src/node/statement/combinator/bracketed.js +0 -10
  43. package/src/node/term/bracketed.js +0 -9
  44. package/src/node/term/constructor/bracketed.js +0 -10
  45. package/src/ocmbinator/bracketed.js +0 -26
  46. package/src/substitution/statement.js +0 -81
  47. package/src/verifier/substitution.js +0 -75
@@ -12,6 +12,9 @@ _export(exports, {
12
12
  constructorDeclarationNodeFromConstructorDeclarationTokens: function() {
13
13
  return constructorDeclarationNodeFromConstructorDeclarationTokens;
14
14
  },
15
+ constructorDeclarationStringFromTermString: function() {
16
+ return constructorDeclarationStringFromTermString;
17
+ },
15
18
  metavariableNodeFromMetavariableString: function() {
16
19
  return metavariableNodeFromMetavariableString;
17
20
  },
@@ -21,11 +24,11 @@ _export(exports, {
21
24
  statementNodeFromStatementString: function() {
22
25
  return statementNodeFromStatementString;
23
26
  },
24
- substitutionNodeFromSubstitutionString: function() {
25
- return substitutionNodeFromSubstitutionString;
27
+ statementNodeFromUnqualifiedStatementNode: function() {
28
+ return statementNodeFromUnqualifiedStatementNode;
26
29
  },
27
- substitutionNodeFromSubstitutionTokens: function() {
28
- return substitutionNodeFromSubstitutionTokens;
30
+ termNodeFromConstructorDeclarationNode: function() {
31
+ return termNodeFromConstructorDeclarationNode;
29
32
  },
30
33
  termNodeFromTermString: function() {
31
34
  return termNodeFromTermString;
@@ -33,6 +36,9 @@ _export(exports, {
33
36
  unqualifiedStatementNodeFromUnqualifiedStatementTokens: function() {
34
37
  return unqualifiedStatementNodeFromUnqualifiedStatementTokens;
35
38
  },
39
+ unqualifiedStatementStringFromStatementString: function() {
40
+ return unqualifiedStatementStringFromStatementString;
41
+ },
36
42
  variableNodeFromVariableString: function() {
37
43
  return variableNodeFromVariableString;
38
44
  },
@@ -49,7 +55,7 @@ var nominalParserFromCombinedCustomGrammar = _occamcustomgrammars.parsersUtiliti
49
55
  var combinedCustomGrammar = (0, _customGrammar.combinedCustomGrammarFromNothing)(), nominalParser = nominalParserFromCombinedCustomGrammar(combinedCustomGrammar);
50
56
  var termNodeQuery = (0, _query.nodeQuery)("/constructorDeclaration/term"), statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement");
51
57
  function termNodeFromTermString(termString, lexer, parser) {
52
- var constructorDeclarationString = "Constructor ".concat(termString, "\n"), constructorDeclarationTokens = (0, _tokens.constructorDeclarationTokensFromConstructorDeclarationString)(constructorDeclarationString, lexer), constructorDeclarationNode = constructorDeclarationNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser), termNode = termNodeQuery(constructorDeclarationNode, constructorDeclarationNode);
58
+ var constructorDeclarationString = constructorDeclarationStringFromTermString(termString), constructorDeclarationTokens = (0, _tokens.constructorDeclarationTokensFromConstructorDeclarationString)(constructorDeclarationString, lexer), constructorDeclarationNode = constructorDeclarationNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser), termNode = termNodeFromConstructorDeclarationNode(constructorDeclarationNode);
53
59
  return termNode;
54
60
  }
55
61
  function variableNodeFromVariableString(variableString, lexer, parser) {
@@ -57,17 +63,29 @@ function variableNodeFromVariableString(variableString, lexer, parser) {
57
63
  return variableNode;
58
64
  }
59
65
  function statementNodeFromStatementString(statementString, lexer, parser) {
60
- var unqualifiedStatementString = "".concat(statementString, "\n"), unqualifiedStatementTokens = (0, _tokens.unqualifiedStatementTokensFromUnqualifiedStatementString)(unqualifiedStatementString, lexer), unqualifiedStatementNode = unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser), statementNode = statementNodeQuery(unqualifiedStatementNode);
66
+ var unqualifiedStatementString = unqualifiedStatementStringFromStatementString(statementString), unqualifiedStatementTokens = (0, _tokens.unqualifiedStatementTokensFromUnqualifiedStatementString)(unqualifiedStatementString, lexer), unqualifiedStatementNode = unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser), statementNode = statementNodeFromUnqualifiedStatementNode(unqualifiedStatementNode);
67
+ return statementNode;
68
+ }
69
+ function termNodeFromConstructorDeclarationNode(constructorDeclarationNode) {
70
+ var termNode = termNodeQuery(constructorDeclarationNode, constructorDeclarationNode);
71
+ return termNode;
72
+ }
73
+ function statementNodeFromUnqualifiedStatementNode(unqualifiedStatementNode) {
74
+ var statementNode = statementNodeQuery(unqualifiedStatementNode);
61
75
  return statementNode;
62
76
  }
77
+ function constructorDeclarationStringFromTermString(termString) {
78
+ var constructorDeclarationString = "Constructor ".concat(termString, "\n");
79
+ return constructorDeclarationString;
80
+ }
81
+ function unqualifiedStatementStringFromStatementString(statementString) {
82
+ var unqualifiedStatementString = "".concat(statementString, "\n");
83
+ return unqualifiedStatementString;
84
+ }
63
85
  function metavariableNodeFromMetavariableString(metavariableString, lexer, parser) {
64
86
  var metavariableTokens = (0, _tokens.metavariableTokensFromMetavariableString)(metavariableString, lexer), metavariableNode = metavariableNodeFromMetavariableTokens(metavariableTokens, parser);
65
87
  return metavariableNode;
66
88
  }
67
- function substitutionNodeFromSubstitutionString(substitutionString, lexer, parser) {
68
- var substitutionTokens = (0, _tokens.substitutionTokensFromSubstitutionString)(substitutionString, lexer), substitutionNode = substitutionNodeFromSubstitutionTokens(substitutionTokens, parser);
69
- return substitutionNode;
70
- }
71
89
  function variableNodeFromVariableTokens(variableTokens, parser) {
72
90
  var ruleName = _ruleNames.VARIABLE_RULE_NAME, variableNode = nodeFromTokensRuleNameAndParser(variableTokens, ruleName, parser);
73
91
  return variableNode;
@@ -76,10 +94,6 @@ function metavariableNodeFromMetavariableTokens(metavariableTokens, parser) {
76
94
  var ruleName = _ruleNames.METAVARIABLE_RULE_NAME, metavariableNode = nodeFromTokensRuleNameAndParser(metavariableTokens, ruleName, parser);
77
95
  return metavariableNode;
78
96
  }
79
- function substitutionNodeFromSubstitutionTokens(substitutionTokens, parser) {
80
- var ruleName = _ruleNames.SUBSTITUTION_RULE_NAME, substitutionNode = nodeFromTokensRuleNameAndParser(substitutionTokens, ruleName, parser);
81
- return substitutionNode;
82
- }
83
97
  function unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser) {
84
98
  var tokens = unqualifiedStatementTokens, ruleName = _ruleNames.UNQUALIFIED_STATEMENT_RULE_NAME, unqualifiedStatementNode = nodeFromTokensRuleNameAndParser(tokens, ruleName, parser);
85
99
  return unqualifiedStatementNode;
@@ -94,4 +108,4 @@ function nodeFromTokensRuleNameAndParser(tokens, ruleName) {
94
108
  return node;
95
109
  }
96
110
 
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFVOUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyB2YXJpYWJsZVRva2Vuc0Zyb21WYXJpYWJsZVN0cmluZyxcbiAgICAgICAgIG1ldGF2YXJpYWJsZVRva2Vuc0Zyb21NZXRhdmFyaWFibGVTdHJpbmcsXG4gICAgICAgICBzdWJzdGl0dXRpb25Ub2tlbnNGcm9tU3Vic3RpdHV0aW9uU3RyaW5nLFxuICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcsXG4gICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Rva2Vuc1wiO1xuXG5jb25zdCB7IG5vbWluYWxQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBwYXJzZXJzVXRpbGl0aWVzO1xuXG5jb25zdCBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZygpLFxuICAgICAgbm9taW5hbFBhcnNlciA9IG5vbWluYWxQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyKGNvbWJpbmVkQ3VzdG9tR3JhbW1hcik7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uc3RydWN0b3JEZWNsYXJhdGlvbi90ZXJtXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudFwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Ob2RlRnJvbVRlcm1TdHJpbmcodGVybVN0cmluZywgbGV4ZXIsIHBhcnNlcikge1xuICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nID0gYENvbnN0cnVjdG9yICR7dGVybVN0cmluZ31cbmAsXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmcoY29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZywgbGV4ZXIpLFxuICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMoY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSxcbiAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgcmV0dXJuIHRlcm1Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlciwgcGFyc2VyKSB7XG4gIGNvbnN0IHZhcmlhYmxlVG9rZW5zID0gdmFyaWFibGVUb2tlbnNGcm9tVmFyaWFibGVTdHJpbmcodmFyaWFibGVTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlVG9rZW5zKHZhcmlhYmxlVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiB2YXJpYWJsZU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnROb2RlRnJvbVN0YXRlbWVudFN0cmluZyhzdGF0ZW1lbnRTdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBgJHtzdGF0ZW1lbnRTdHJpbmd9XG5gLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyA9IHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nKHVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nLCBsZXhlciksXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZFN0YXRlbWVudFRva2Vucyh1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucywgcGFyc2VyKSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnROb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlTm9kZUZyb21NZXRhdmFyaWFibGVTdHJpbmcobWV0YXZhcmlhYmxlU3RyaW5nLCBsZXhlciwgcGFyc2VyKSB7XG4gIGNvbnN0IG1ldGF2YXJpYWJsZVRva2VucyA9IG1ldGF2YXJpYWJsZVRva2Vuc0Zyb21NZXRhdmFyaWFibGVTdHJpbmcobWV0YXZhcmlhYmxlU3RyaW5nLCBsZXhlciksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZVRva2VucyhtZXRhdmFyaWFibGVUb2tlbnMsIHBhcnNlcik7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJzdGl0dXRpb25Ob2RlRnJvbVN1YnN0aXR1dGlvblN0cmluZyhzdWJzdGl0dXRpb25TdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3Qgc3Vic3RpdHV0aW9uVG9rZW5zID0gc3Vic3RpdHV0aW9uVG9rZW5zRnJvbVN1YnN0aXR1dGlvblN0cmluZyhzdWJzdGl0dXRpb25TdHJpbmcsIGxleGVyKSxcbiAgICAgICAgc3Vic3RpdHV0aW9uTm9kZSA9IHN1YnN0aXR1dGlvbk5vZGVGcm9tU3Vic3RpdHV0aW9uVG9rZW5zKHN1YnN0aXR1dGlvblRva2VucywgcGFyc2VyKTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9uTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVRva2Vucyh2YXJpYWJsZVRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVOYW1lID0gVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKHZhcmlhYmxlVG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gdmFyaWFibGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlTm9kZUZyb21NZXRhdmFyaWFibGVUb2tlbnMobWV0YXZhcmlhYmxlVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgcnVsZU5hbWUgPSBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcihtZXRhdmFyaWFibGVUb2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RpdHV0aW9uTm9kZUZyb21TdWJzdGl0dXRpb25Ub2tlbnMoc3Vic3RpdHV0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgcnVsZU5hbWUgPSBTVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICBzdWJzdGl0dXRpb25Ob2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcihzdWJzdGl0dXRpb25Ub2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiBzdWJzdGl0dXRpb25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgdG9rZW5zID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsICAvLy9cbiAgICAgICAgcnVsZU5hbWUgPSBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKHRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMoY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHRva2VucyA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMsICAvLy9cbiAgICAgICAgcnVsZU5hbWUgPSBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcih0b2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZTtcbn1cblxuZnVuY3Rpb24gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcih0b2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIgPSBub21pbmFsUGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVNYXAgPSBwYXJzZXIuZ2V0UnVsZU1hcCgpLFxuICAgICAgICBydWxlID0gcnVsZU1hcFtydWxlTmFtZV0sXG4gICAgICAgIG5vZGUgPSBwYXJzZXIucGFyc2UodG9rZW5zLCBydWxlKTtcblxuICByZXR1cm4gbm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZUZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zIiwibWV0YXZhcmlhYmxlTm9kZUZyb21NZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZVRva2VucyIsInN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50U3RyaW5nIiwic3Vic3RpdHV0aW9uTm9kZUZyb21TdWJzdGl0dXRpb25TdHJpbmciLCJzdWJzdGl0dXRpb25Ob2RlRnJvbVN1YnN0aXR1dGlvblRva2VucyIsInRlcm1Ob2RlRnJvbVRlcm1TdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMiLCJ2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVUb2tlbnMiLCJub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsInBhcnNlcnNVdGlsaXRpZXMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZyIsIm5vbWluYWxQYXJzZXIiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidGVybVN0cmluZyIsImxleGVyIiwicGFyc2VyIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmciLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsInRlcm1Ob2RlIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZVRva2VucyIsInZhcmlhYmxlVG9rZW5zRnJvbVZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVOb2RlIiwic3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZSIsIm1ldGF2YXJpYWJsZVN0cmluZyIsIm1ldGF2YXJpYWJsZVRva2VucyIsIm1ldGF2YXJpYWJsZVRva2Vuc0Zyb21NZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9uU3RyaW5nIiwic3Vic3RpdHV0aW9uVG9rZW5zIiwic3Vic3RpdHV0aW9uVG9rZW5zRnJvbVN1YnN0aXR1dGlvblN0cmluZyIsInN1YnN0aXR1dGlvbk5vZGUiLCJydWxlTmFtZSIsIlZBUklBQkxFX1JVTEVfTkFNRSIsIm5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInRva2VucyIsIlVOUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUiLCJDT05TVFJVQ1RPUl9ERUNMQVJB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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcbmltcG9ydCB7IHZhcmlhYmxlVG9rZW5zRnJvbVZhcmlhYmxlU3RyaW5nLFxuICAgICAgICAgbWV0YXZhcmlhYmxlVG9rZW5zRnJvbU1ldGF2YXJpYWJsZVN0cmluZyxcbiAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nLFxuICAgICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vuc0Zyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy90b2tlbnNcIjtcblxuY29uc3QgeyBub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcztcblxuY29uc3QgY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcoKSxcbiAgICAgIG5vbWluYWxQYXJzZXIgPSBub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hcihjb21iaW5lZEN1c3RvbUdyYW1tYXIpO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnN0cnVjdG9yRGVjbGFyYXRpb24vdGVybVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi91bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnRcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtTm9kZUZyb21UZXJtU3RyaW5nKHRlcm1TdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3QgY29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZyA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmdGcm9tVGVybVN0cmluZyh0ZXJtU3RyaW5nKSxcbiAgICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnNGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZyhjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nLCBsZXhlciksXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlID0gY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucyhjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpLFxuICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKTtcblxuICByZXR1cm4gdGVybU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcodmFyaWFibGVTdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3QgdmFyaWFibGVUb2tlbnMgPSB2YXJpYWJsZVRva2Vuc0Zyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgbGV4ZXIpLFxuICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVUb2tlbnModmFyaWFibGVUb2tlbnMsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHZhcmlhYmxlTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50U3RyaW5nKHN0YXRlbWVudFN0cmluZywgbGV4ZXIsIHBhcnNlcikge1xuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9dW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmdGcm9tU3RhdGVtZW50U3RyaW5nKHN0YXRlbWVudFN0cmluZyksXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcodW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUpO1xuXG4gIHJldHVybiB0ZXJtTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSkge1xuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nRnJvbVRlcm1TdHJpbmcodGVybVN0cmluZykge1xuICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nID0gYENvbnN0cnVjdG9yICR7dGVybVN0cmluZ31cbmA7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZ0Zyb21TdGF0ZW1lbnRTdHJpbmcoc3RhdGVtZW50U3RyaW5nKSB7XG4gIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gYCR7c3RhdGVtZW50U3RyaW5nfVxuYDtcblxuICByZXR1cm4gdW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZVN0cmluZyhtZXRhdmFyaWFibGVTdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3QgbWV0YXZhcmlhYmxlVG9rZW5zID0gbWV0YXZhcmlhYmxlVG9rZW5zRnJvbU1ldGF2YXJpYWJsZVN0cmluZyhtZXRhdmFyaWFibGVTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVGcm9tTWV0YXZhcmlhYmxlVG9rZW5zKG1ldGF2YXJpYWJsZVRva2VucywgcGFyc2VyKTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVRva2Vucyh2YXJpYWJsZVRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVOYW1lID0gVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKHZhcmlhYmxlVG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gdmFyaWFibGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlTm9kZUZyb21NZXRhdmFyaWFibGVUb2tlbnMobWV0YXZhcmlhYmxlVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgcnVsZU5hbWUgPSBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcihtZXRhdmFyaWFibGVUb2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgdG9rZW5zID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsICAvLy9cbiAgICAgICAgcnVsZU5hbWUgPSBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKHRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMoY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHRva2VucyA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMsICAvLy9cbiAgICAgICAgcnVsZU5hbWUgPSBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcih0b2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZTtcbn1cblxuZnVuY3Rpb24gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcih0b2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIgPSBub21pbmFsUGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVNYXAgPSBwYXJzZXIuZ2V0UnVsZU1hcCgpLFxuICAgICAgICBydWxlID0gcnVsZU1hcFtydWxlTmFtZV0sXG4gICAgICAgIG5vZGUgPSBwYXJzZXIucGFyc2UodG9rZW5zLCBydWxlKTtcblxuICByZXR1cm4gbm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZUZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZ0Zyb21UZXJtU3RyaW5nIiwibWV0YXZhcmlhYmxlTm9kZUZyb21NZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZVRva2VucyIsInN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50U3RyaW5nIiwic3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJ0ZXJtTm9kZUZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsInRlcm1Ob2RlRnJvbVRlcm1TdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZ0Zyb21TdGF0ZW1lbnRTdHJpbmciLCJ2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVUb2tlbnMiLCJub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsInBhcnNlcnNVdGlsaXRpZXMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZyIsIm5vbWluYWxQYXJzZXIiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidGVybVN0cmluZyIsImxleGVyIiwicGFyc2VyIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmciLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsInRlcm1Ob2RlIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZVRva2VucyIsInZhcmlhYmxlVG9rZW5zRnJvbVZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVOb2RlIiwic3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZSIsIm1ldGF2YXJpYWJsZVN0cmluZyIsIm1ldGF2YXJpYWJsZVRva2VucyIsIm1ldGF2YXJpYWJsZVRva2Vuc0Zyb21NZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVOb2RlIiwicnVsZU5hbWUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyIiwiTUVUQVZBUklBQkxFX1JVTEVfTkFNRSIsInRva2VucyIsIlVOUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUiLCJDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJydWxlTWFwIiwiZ2V0UnVsZU1hcCIsInJ1bGUiLCJub2RlIiwicGFyc2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXVHZ0JBLDBEQUEwRDtlQUExREE7O0lBM0NBQywwQ0FBMEM7ZUFBMUNBOztJQWNBQyxzQ0FBc0M7ZUFBdENBOztJQWNBQyxzQ0FBc0M7ZUFBdENBOztJQWpEQUMsZ0NBQWdDO2VBQWhDQTs7SUFlQUMseUNBQXlDO2VBQXpDQTs7SUFOQUMsc0NBQXNDO2VBQXRDQTs7SUF6QkFDLHNCQUFzQjtlQUF0QkE7O0lBd0VBQyxzREFBc0Q7ZUFBdERBOztJQTVCQUMsNkNBQTZDO2VBQTdDQTs7SUFuQ0FDLDhCQUE4QjtlQUE5QkE7O0lBaURBQyw4QkFBOEI7ZUFBOUJBOzs7bUNBL0VpQjtxQkFFUDs2QkFDdUI7eUJBSUM7c0JBSTJCO0FBRTdFLElBQU0sQUFBRUMseUNBQTJDQyxxQ0FBZ0IsQ0FBM0REO0FBRVIsSUFBTUUsd0JBQXdCQyxJQUFBQSwrQ0FBZ0MsS0FDeERDLGdCQUFnQkosdUNBQXVDRTtBQUU3RCxJQUFNRyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsaUNBQzFCQyxxQkFBcUJELElBQUFBLGdCQUFTLEVBQUM7QUFFOUIsU0FBU1gsdUJBQXVCYSxVQUFVLEVBQUVDLEtBQUssRUFBRUMsTUFBTTtJQUM5RCxJQUFNQywrQkFBK0J0QiwyQ0FBMkNtQixhQUMxRUksK0JBQStCQyxJQUFBQSxvRUFBNEQsRUFBQ0YsOEJBQThCRixRQUMxSEssNkJBQTZCMUIsMkRBQTJEd0IsOEJBQThCRixTQUN0SEssV0FBV3JCLHVDQUF1Q29CO0lBRXhELE9BQU9DO0FBQ1Q7QUFFTyxTQUFTakIsK0JBQStCa0IsY0FBYyxFQUFFUCxLQUFLLEVBQUVDLE1BQU07SUFDMUUsSUFBTU8saUJBQWlCQyxJQUFBQSx3Q0FBZ0MsRUFBQ0YsZ0JBQWdCUCxRQUNsRVUsZUFBZXBCLCtCQUErQmtCLGdCQUFnQlA7SUFFcEUsT0FBT1M7QUFDVDtBQUVPLFNBQVMzQixpQ0FBaUM0QixlQUFlLEVBQUVYLEtBQUssRUFBRUMsTUFBTTtJQUM3RSxJQUFNVyw2QkFBNEJ4Qiw4Q0FBOEN1QixrQkFDMUVFLDZCQUE2QkMsSUFBQUEsZ0VBQXdELEVBQUNGLDRCQUE0QlosUUFDbEhlLDJCQUEyQjVCLHVEQUF1RDBCLDRCQUE0QlosU0FDOUdlLGdCQUFnQmhDLDBDQUEwQytCO0lBRWhFLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTL0IsdUNBQXVDb0IsMEJBQTBCO0lBQy9FLElBQU1DLFdBQVdWLGNBQWNTLDRCQUE0QkE7SUFFM0QsT0FBT0M7QUFDVDtBQUVPLFNBQVN0QiwwQ0FBMEMrQix3QkFBd0I7SUFDaEYsSUFBTUMsZ0JBQWdCbEIsbUJBQW1CaUI7SUFFekMsT0FBT0M7QUFDVDtBQUVPLFNBQVNwQywyQ0FBMkNtQixVQUFVO0lBQ25FLElBQU1HLCtCQUErQixBQUFDLGVBQXlCLE9BQVhILFlBQVc7SUFHL0QsT0FBT0c7QUFDVDtBQUVPLFNBQVNkLDhDQUE4Q3VCLGVBQWU7SUFDM0UsSUFBTUMsNkJBQTZCLEFBQUMsR0FBa0IsT0FBaEJELGlCQUFnQjtJQUd0RCxPQUFPQztBQUNUO0FBRU8sU0FBUy9CLHVDQUF1Q29DLGtCQUFrQixFQUFFakIsS0FBSyxFQUFFQyxNQUFNO0lBQ3RGLElBQU1pQixxQkFBcUJDLElBQUFBLGdEQUF3QyxFQUFDRixvQkFBb0JqQixRQUNsRm9CLG1CQUFtQnRDLHVDQUF1Q29DLG9CQUFvQmpCO0lBRXBGLE9BQU9tQjtBQUNUO0FBRU8sU0FBUzlCLCtCQUErQmtCLGNBQWMsRUFBRVAsTUFBTTtJQUNuRSxJQUFNb0IsV0FBV0MsNkJBQWtCLEVBQzdCWixlQUFlYSxnQ0FBZ0NmLGdCQUFnQmEsVUFBVXBCO0lBRS9FLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTNUIsdUNBQXVDb0Msa0JBQWtCLEVBQUVqQixNQUFNO0lBQy9FLElBQU1vQixXQUFXRyxpQ0FBc0IsRUFDakNKLG1CQUFtQkcsZ0NBQWdDTCxvQkFBb0JHLFVBQVVwQjtJQUV2RixPQUFPbUI7QUFDVDtBQUVPLFNBQVNqQyx1REFBdUQwQiwwQkFBMEIsRUFBRVosTUFBTTtJQUN2RyxJQUFNd0IsU0FBU1osNEJBQ1RRLFdBQVdLLDBDQUErQixFQUMxQ1gsMkJBQTJCUSxnQ0FBZ0NFLFFBQVFKLFVBQVVwQjtJQUVuRixPQUFPYztBQUNUO0FBRU8sU0FBU3BDLDJEQUEyRHdCLDRCQUE0QixFQUFFRixNQUFNO0lBQzdHLElBQU13QixTQUFTdEIsOEJBQ1RrQixXQUFXTSw0Q0FBaUMsRUFDNUN0Qiw2QkFBNkJrQixnQ0FBZ0NFLFFBQVFKLFVBQVVwQjtJQUVyRixPQUFPSTtBQUNUO0FBRUEsU0FBU2tCLGdDQUFnQ0UsTUFBTSxFQUFFSixRQUFRO1FBQUVwQixTQUFBQSxpRUFBU047SUFDbEUsSUFBTWlDLFVBQVUzQixPQUFPNEIsVUFBVSxJQUMzQkMsT0FBT0YsT0FBTyxDQUFDUCxTQUFTLEVBQ3hCVSxPQUFPOUIsT0FBTytCLEtBQUssQ0FBQ1AsUUFBUUs7SUFFbEMsT0FBT0M7QUFDVCJ9
@@ -12,9 +12,15 @@ _export(exports, {
12
12
  nodeAsString: function() {
13
13
  return nodeAsString;
14
14
  },
15
+ nodeAsTokens: function() {
16
+ return nodeAsTokens;
17
+ },
15
18
  nodesAsString: function() {
16
19
  return nodesAsString;
17
20
  },
21
+ tokensAsString: function() {
22
+ return tokensAsString;
23
+ },
18
24
  trim: function() {
19
25
  return trim;
20
26
  }
@@ -26,14 +32,8 @@ function trim(string) {
26
32
  }
27
33
  function nodeAsString(node, tokens) {
28
34
  var string;
29
- var nodeTerminalNode = node.isTerminalNode();
30
- if (nodeTerminalNode) {
31
- var terminalNode = node; ///
32
- string = terminalNodeAsString(terminalNode);
33
- } else {
34
- var nonTerminalNode = node; ///
35
- string = nonTerminalNodeAsString(nonTerminalNode, tokens);
36
- }
35
+ tokens = nodeAsTokens(node, tokens); ///
36
+ string = tokensAsString(tokens);
37
37
  return string;
38
38
  }
39
39
  function nodesAsString(nodes, tokens) {
@@ -44,13 +44,7 @@ function nodesAsString(nodes, tokens) {
44
44
  }, _constants.EMPTY_STRING);
45
45
  return string;
46
46
  }
47
- function terminalNodeAsString(terminalNode) {
48
- var content = terminalNode.getContent(), string = content; ///
49
- return string;
50
- }
51
- function nonTerminalNodeAsString(nonTerminalNode, tokens) {
52
- var lastSignificantTokenIndex = nonTerminalNode.getLastSignificantTokenIndex(tokens), firstSignificantTokenIndex = nonTerminalNode.getFirstSignificantTokenIndex(tokens), start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1;
53
- tokens = tokens.slice(start, end); ///
47
+ function tokensAsString(tokens) {
54
48
  var string = tokens.reduce(function(string, token) {
55
49
  var content = token.getContent();
56
50
  string = "".concat(string).concat(content);
@@ -58,5 +52,29 @@ function nonTerminalNodeAsString(nonTerminalNode, tokens) {
58
52
  }, _constants.EMPTY_STRING);
59
53
  return string;
60
54
  }
55
+ function nodeAsTokens(node, tokens) {
56
+ var nodeTerminalNode = node.isTerminalNode();
57
+ if (nodeTerminalNode) {
58
+ z;
59
+ var terminalNode = node; ///
60
+ tokens = terminalNodeAsTokens(terminalNode, tokens);
61
+ } else {
62
+ var nonTerminalNode = node; ///
63
+ tokens = nonTerminalNodeAsTokens(nonTerminalNode, tokens);
64
+ }
65
+ return tokens;
66
+ }
67
+ function terminalNodeAsTokens(terminalNode, tokens) {
68
+ var significantToken = terminalNode.getSignificantToken(), token = significantToken; ///
69
+ tokens = [
70
+ token
71
+ ];
72
+ return tokens;
73
+ }
74
+ function nonTerminalNodeAsTokens(nonTerminalNode, tokens) {
75
+ var lastSignificantTokenIndex = nonTerminalNode.getLastSignificantTokenIndex(tokens), firstSignificantTokenIndex = nonTerminalNode.getFirstSignificantTokenIndex(tokens), start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1;
76
+ tokens = tokens.slice(start, end); ///
77
+ return tokens;
78
+ }
61
79
 
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDT01NQSwgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJpbShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xccyskLywgRU1QVFlfU1RSSU5HKTsgIC8vL1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2RlQXNTdHJpbmcobm9kZSwgdG9rZW5zKSB7XG4gIGxldCBzdHJpbmc7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHN0cmluZyA9IHRlcm1pbmFsTm9kZUFzU3RyaW5nKHRlcm1pbmFsTm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgLy8vXG5cbiAgICBzdHJpbmcgPSBub25UZXJtaW5hbE5vZGVBc1N0cmluZyhub25UZXJtaW5hbE5vZGUsIHRva2Vucyk7XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZXNBc1N0cmluZyhub2RlcywgdG9rZW5zKSB7XG4gIGNvbnN0IHN0cmluZyA9IG5vZGVzLnJlZHVjZSgoc3RyaW5nLCBub2RlKSA9PiB7XG4gICAgY29uc3Qgbm9kZVN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0b2tlbnMpO1xuXG4gICAgc3RyaW5nID0gKHN0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgICAgICAgICAgICBub2RlU3RyaW5nIDpcbiAgICAgICAgICAgICAgICBgJHtzdHJpbmd9JHtDT01NQX0ke25vZGVTdHJpbmd9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH0sIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZnVuY3Rpb24gdGVybWluYWxOb2RlQXNTdHJpbmcodGVybWluYWxOb2RlKSB7XG4gIGNvbnN0IGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBzdHJpbmcgPSBjb250ZW50OyAvLy9cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBub25UZXJtaW5hbE5vZGVBc1N0cmluZyhub25UZXJtaW5hbE5vZGUsIHRva2Vucykge1xuICBjb25zdCBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9uVGVybWluYWxOb2RlLmdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub25UZXJtaW5hbE5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgc3RhcnQgPSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCwgLy8vXG4gICAgICAgIGVuZCA9IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggKyAxO1xuXG4gIHRva2VucyA9IHRva2Vucy5zbGljZShzdGFydCwgZW5kKTsgIC8vL1xuXG4gIGNvbnN0IHN0cmluZyA9IHRva2Vucy5yZWR1Y2UoKHN0cmluZywgdG9rZW4pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gdG9rZW4uZ2V0Q29udGVudCgpO1xuXG4gICAgc3RyaW5nID0gYCR7c3RyaW5nfSR7Y29udGVudH1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gc3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbIm5vZGVBc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJ0cmltIiwic3RyaW5nIiwicmVwbGFjZSIsIkVNUFRZX1NUUklORyIsIm5vZGUiLCJ0b2tlbnMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGVBc1N0cmluZyIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUFzU3RyaW5nIiwibm9kZXMiLCJyZWR1Y2UiLCJub2RlU3RyaW5nIiwiQ09NTUEiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImxhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsInN0YXJ0IiwiZW5kIiwic2xpY2UiLCJ0b2tlbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVWdCQSxZQUFZO2VBQVpBOztJQWtCQUMsYUFBYTtlQUFiQTs7SUF4QkFDLElBQUk7ZUFBSkE7Ozt5QkFGb0I7QUFFN0IsU0FBU0EsS0FBS0MsTUFBTTtJQUN6QkEsU0FBU0EsT0FBT0MsT0FBTyxDQUFDLFFBQVFDLHVCQUFZLEdBQUksR0FBRztJQUVuRCxPQUFPRjtBQUNUO0FBRU8sU0FBU0gsYUFBYU0sSUFBSSxFQUFFQyxNQUFNO0lBQ3ZDLElBQUlKO0lBRUosSUFBTUssbUJBQW1CRixLQUFLRyxjQUFjO0lBRTVDLElBQUlELGtCQUFrQjtRQUNwQixJQUFNRSxlQUFlSixNQUFPLEdBQUc7UUFFL0JILFNBQVNRLHFCQUFxQkQ7SUFDaEMsT0FBTztRQUNMLElBQU1FLGtCQUFrQk4sTUFBTSxHQUFHO1FBRWpDSCxTQUFTVSx3QkFBd0JELGlCQUFpQkw7SUFDcEQ7SUFFQSxPQUFPSjtBQUNUO0FBRU8sU0FBU0YsY0FBY2EsS0FBSyxFQUFFUCxNQUFNO0lBQ3pDLElBQU1KLFNBQVNXLE1BQU1DLE1BQU0sQ0FBQyxTQUFDWixRQUFRRztRQUNuQyxJQUFNVSxhQUFhaEIsYUFBYU0sTUFBTUM7UUFFdENKLFNBQVMsQUFBQ0EsV0FBV0UsdUJBQVksR0FDdEJXLGFBQ0MsQUFBQyxHQUFXQyxPQUFUZCxRQUFpQmEsT0FBUkMsZ0JBQUssRUFBYyxPQUFYRDtRQUVoQyxPQUFPYjtJQUNULEdBQUdFLHVCQUFZO0lBRWYsT0FBT0Y7QUFDVDtBQUVBLFNBQVNRLHFCQUFxQkQsWUFBWTtJQUN4QyxJQUFNUSxVQUFVUixhQUFhUyxVQUFVLElBQ2pDaEIsU0FBU2UsU0FBUyxHQUFHO0lBRTNCLE9BQU9mO0FBQ1Q7QUFFQSxTQUFTVSx3QkFBd0JELGVBQWUsRUFBRUwsTUFBTTtJQUN0RCxJQUFNYSw0QkFBNEJSLGdCQUFnQlMsNEJBQTRCLENBQUNkLFNBQ3pFZSw2QkFBNkJWLGdCQUFnQlcsNkJBQTZCLENBQUNoQixTQUMzRWlCLFFBQVFGLDRCQUNSRyxNQUFNTCw0QkFBNEI7SUFFeENiLFNBQVNBLE9BQU9tQixLQUFLLENBQUNGLE9BQU9DLE1BQU8sR0FBRztJQUV2QyxJQUFNdEIsU0FBU0ksT0FBT1EsTUFBTSxDQUFDLFNBQUNaLFFBQVF3QjtRQUNwQyxJQUFNVCxVQUFVUyxNQUFNUixVQUFVO1FBRWhDaEIsU0FBUyxBQUFDLEdBQVdlLE9BQVRmLFFBQWlCLE9BQVJlO1FBRXJCLE9BQU9mO0lBQ1QsR0FBR0UsdUJBQVk7SUFFZixPQUFPRjtBQUNUIn0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDT01NQSwgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJpbShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xccyskLywgRU1QVFlfU1RSSU5HKTsgIC8vL1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2RlQXNTdHJpbmcobm9kZSwgdG9rZW5zKSB7XG4gIGxldCBzdHJpbmc7XG5cbiAgdG9rZW5zID0gbm9kZUFzVG9rZW5zKG5vZGUsIHRva2Vucyk7ICAvLy9cblxuICBzdHJpbmcgPSB0b2tlbnNBc1N0cmluZyh0b2tlbnMpO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2Rlc0FzU3RyaW5nKG5vZGVzLCB0b2tlbnMpIHtcbiAgY29uc3Qgc3RyaW5nID0gbm9kZXMucmVkdWNlKChzdHJpbmcsIG5vZGUpID0+IHtcbiAgICBjb25zdCBub2RlU3RyaW5nID0gbm9kZUFzU3RyaW5nKG5vZGUsIHRva2Vucyk7XG5cbiAgICBzdHJpbmcgPSAoc3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgICAgICAgICAgIG5vZGVTdHJpbmcgOlxuICAgICAgICAgICAgICAgIGAke3N0cmluZ30ke0NPTU1BfSR7bm9kZVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5zQXNTdHJpbmcodG9rZW5zKSB7XG4gIGNvbnN0IHN0cmluZyA9IHRva2Vucy5yZWR1Y2UoKHN0cmluZywgdG9rZW4pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gdG9rZW4uZ2V0Q29udGVudCgpO1xuXG4gICAgc3RyaW5nID0gYCR7c3RyaW5nfSR7Y29udGVudH1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfSwgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZUFzVG9rZW5zKG5vZGUsIHRva2Vucykge1xuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlKSB7elxuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHRva2VucyA9IHRlcm1pbmFsTm9kZUFzVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICAgIHRva2VucyA9IG5vblRlcm1pbmFsTm9kZUFzVG9rZW5zKG5vblRlcm1pbmFsTm9kZSwgdG9rZW5zKTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnM7XG59XG5cbmZ1bmN0aW9uIHRlcm1pbmFsTm9kZUFzVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKSB7XG4gIGNvbnN0IHNpZ25pZmljYW50VG9rZW4gPSB0ZXJtaW5hbE5vZGUuZ2V0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICB0b2tlbiA9IHNpZ25pZmljYW50VG9rZW47IC8vL1xuXG4gIHRva2VucyA9IFsgIC8vL1xuICAgIHRva2VuXG4gIF07XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlQXNUb2tlbnMobm9uVGVybWluYWxOb2RlLCB0b2tlbnMpIHtcbiAgY29uc3QgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vblRlcm1pbmFsTm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9uVGVybWluYWxOb2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIHN0YXJ0ID0gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgsIC8vL1xuICAgICAgICBlbmQgPSBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ICsgMTtcblxuICB0b2tlbnMgPSB0b2tlbnMuc2xpY2Uoc3RhcnQsIGVuZCk7ICAvLy9cblxuICByZXR1cm4gdG9rZW5zO1xufVxuIl0sIm5hbWVzIjpbIm5vZGVBc1N0cmluZyIsIm5vZGVBc1Rva2VucyIsIm5vZGVzQXNTdHJpbmciLCJ0b2tlbnNBc1N0cmluZyIsInRyaW0iLCJzdHJpbmciLCJyZXBsYWNlIiwiRU1QVFlfU1RSSU5HIiwibm9kZSIsInRva2VucyIsIm5vZGVzIiwicmVkdWNlIiwibm9kZVN0cmluZyIsIkNPTU1BIiwidG9rZW4iLCJjb250ZW50IiwiZ2V0Q29udGVudCIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInoiLCJ0ZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGVBc1Rva2VucyIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUFzVG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbiIsImdldFNpZ25pZmljYW50VG9rZW4iLCJsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJzdGFydCIsImVuZCIsInNsaWNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFVZ0JBLFlBQVk7ZUFBWkE7O0lBb0NBQyxZQUFZO2VBQVpBOztJQTFCQUMsYUFBYTtlQUFiQTs7SUFjQUMsY0FBYztlQUFkQTs7SUE5QkFDLElBQUk7ZUFBSkE7Ozt5QkFGb0I7QUFFN0IsU0FBU0EsS0FBS0MsTUFBTTtJQUN6QkEsU0FBU0EsT0FBT0MsT0FBTyxDQUFDLFFBQVFDLHVCQUFZLEdBQUksR0FBRztJQUVuRCxPQUFPRjtBQUNUO0FBRU8sU0FBU0wsYUFBYVEsSUFBSSxFQUFFQyxNQUFNO0lBQ3ZDLElBQUlKO0lBRUpJLFNBQVNSLGFBQWFPLE1BQU1DLFNBQVUsR0FBRztJQUV6Q0osU0FBU0YsZUFBZU07SUFFeEIsT0FBT0o7QUFDVDtBQUVPLFNBQVNILGNBQWNRLEtBQUssRUFBRUQsTUFBTTtJQUN6QyxJQUFNSixTQUFTSyxNQUFNQyxNQUFNLENBQUMsU0FBQ04sUUFBUUc7UUFDbkMsSUFBTUksYUFBYVosYUFBYVEsTUFBTUM7UUFFdENKLFNBQVMsQUFBQ0EsV0FBV0UsdUJBQVksR0FDdEJLLGFBQ0MsQUFBQyxHQUFXQyxPQUFUUixRQUFpQk8sT0FBUkMsZ0JBQUssRUFBYyxPQUFYRDtRQUVoQyxPQUFPUDtJQUNULEdBQUdFLHVCQUFZO0lBRWYsT0FBT0Y7QUFDVDtBQUVPLFNBQVNGLGVBQWVNLE1BQU07SUFDbkMsSUFBTUosU0FBU0ksT0FBT0UsTUFBTSxDQUFDLFNBQUNOLFFBQVFTO1FBQ3BDLElBQU1DLFVBQVVELE1BQU1FLFVBQVU7UUFFaENYLFNBQVMsQUFBQyxHQUFXVSxPQUFUVixRQUFpQixPQUFSVTtRQUVyQixPQUFPVjtJQUNULEdBQUdFLHVCQUFZO0lBRWYsT0FBT0Y7QUFDVDtBQUVPLFNBQVNKLGFBQWFPLElBQUksRUFBRUMsTUFBTTtJQUN2QyxJQUFNUSxtQkFBbUJULEtBQUtVLGNBQWM7SUFFNUMsSUFBSUQsa0JBQWtCO1FBQUNFO1FBQ3JCLElBQU1DLGVBQWVaLE1BQU8sR0FBRztRQUUvQkMsU0FBU1kscUJBQXFCRCxjQUFjWDtJQUM5QyxPQUFPO1FBQ0wsSUFBTWEsa0JBQWtCZCxNQUFNLEdBQUc7UUFFakNDLFNBQVNjLHdCQUF3QkQsaUJBQWlCYjtJQUNwRDtJQUVBLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTWSxxQkFBcUJELFlBQVksRUFBRVgsTUFBTTtJQUNoRCxJQUFNZSxtQkFBbUJKLGFBQWFLLG1CQUFtQixJQUNuRFgsUUFBUVUsa0JBQWtCLEdBQUc7SUFFbkNmLFNBQVM7UUFDUEs7S0FDRDtJQUVELE9BQU9MO0FBQ1Q7QUFFQSxTQUFTYyx3QkFBd0JELGVBQWUsRUFBRWIsTUFBTTtJQUN0RCxJQUFNaUIsNEJBQTRCSixnQkFBZ0JLLDRCQUE0QixDQUFDbEIsU0FDekVtQiw2QkFBNkJOLGdCQUFnQk8sNkJBQTZCLENBQUNwQixTQUMzRXFCLFFBQVFGLDRCQUNSRyxNQUFNTCw0QkFBNEI7SUFFeENqQixTQUFTQSxPQUFPdUIsS0FBSyxDQUFDRixPQUFPQyxNQUFPLEdBQUc7SUFFdkMsT0FBT3RCO0FBQ1QifQ==
@@ -15,8 +15,11 @@ _export(exports, {
15
15
  metavariableTokensFromMetavariableString: function() {
16
16
  return metavariableTokensFromMetavariableString;
17
17
  },
18
- substitutionTokensFromSubstitutionString: function() {
19
- return substitutionTokensFromSubstitutionString;
18
+ statementTokensFromUnqualifiedStatementTokens: function() {
19
+ return statementTokensFromUnqualifiedStatementTokens;
20
+ },
21
+ termTokensFromConstructorDeclarationTokens: function() {
22
+ return termTokensFromConstructorDeclarationTokens;
20
23
  },
21
24
  unqualifiedStatementTokensFromUnqualifiedStatementString: function() {
22
25
  return unqualifiedStatementTokensFromUnqualifiedStatementString;
@@ -25,9 +28,10 @@ _export(exports, {
25
28
  return variableTokensFromVariableString;
26
29
  }
27
30
  });
31
+ var _necessary = require("necessary");
28
32
  var _occamcustomgrammars = require("occam-custom-grammars");
29
33
  var _customGrammar = require("./customGrammar");
30
- var nominalLexerFromCombinedCustomGrammar = _occamcustomgrammars.lexersUtilities.nominalLexerFromCombinedCustomGrammar;
34
+ var front = _necessary.arrayUtilities.front, nominalLexerFromCombinedCustomGrammar = _occamcustomgrammars.lexersUtilities.nominalLexerFromCombinedCustomGrammar;
31
35
  var combinedCustomGrammar = (0, _customGrammar.combinedCustomGrammarFromNothing)(), nominalLexer = nominalLexerFromCombinedCustomGrammar(combinedCustomGrammar);
32
36
  function variableTokensFromVariableString(variableString, lexer) {
33
37
  var variableContent = "".concat(variableString), variableTokens = tokensFromContentAndLexer(variableContent, lexer);
@@ -37,10 +41,6 @@ function metavariableTokensFromMetavariableString(metavariableString, lexer) {
37
41
  var metavariableContent = "".concat(metavariableString), metavariableTokens = tokensFromContentAndLexer(metavariableContent, lexer);
38
42
  return metavariableTokens;
39
43
  }
40
- function substitutionTokensFromSubstitutionString(substitutionString, lexer) {
41
- var substitutionContent = "".concat(substitutionString), substitutionTokens = tokensFromContentAndLexer(substitutionContent, lexer);
42
- return substitutionTokens;
43
- }
44
44
  function unqualifiedStatementTokensFromUnqualifiedStatementString(unqualifiedStatementString, lexer) {
45
45
  var content = unqualifiedStatementString, unqualifiedStatementTokens = tokensFromContentAndLexer(content, lexer);
46
46
  return unqualifiedStatementTokens;
@@ -49,10 +49,18 @@ function constructorDeclarationTokensFromConstructorDeclarationString(constructo
49
49
  var content = constructorDeclarationString, constructorDeclarationTokens = tokensFromContentAndLexer(content, lexer);
50
50
  return constructorDeclarationTokens;
51
51
  }
52
+ function termTokensFromConstructorDeclarationTokens(constructorDeclarationTokens) {
53
+ var frontConstructorDeclarationTokens = front(constructorDeclarationTokens), termTokens = frontConstructorDeclarationTokens; ///
54
+ return termTokens;
55
+ }
56
+ function statementTokensFromUnqualifiedStatementTokens(unqualifiedStatementTokens) {
57
+ var frontUnqualifiedStatementTokens = front(unqualifiedStatementTokens), statementTokens = frontUnqualifiedStatementTokens; ///
58
+ return statementTokens;
59
+ }
52
60
  function tokensFromContentAndLexer(content) {
53
61
  var lexer = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : nominalLexer;
54
62
  var tokens = lexer.tokenise(content);
55
63
  return tokens;
56
64
  }
57
65
 
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tY3VzdG9tLWdyYW1tYXJzXCI7XG5cbmltcG9ydCB7IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hclwiO1xuXG5jb25zdCB7IG5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIgfSA9IGxleGVyc1V0aWxpdGllcztcblxuY29uc3QgY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcoKSxcbiAgICAgIG5vbWluYWxMZXhlciA9IG5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlVG9rZW5zRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCB2YXJpYWJsZUNvbnRlbnQgPSBgJHt2YXJpYWJsZVN0cmluZ31gLFxuICAgICAgICB2YXJpYWJsZVRva2VucyA9IHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIodmFyaWFibGVDb250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIHZhcmlhYmxlVG9rZW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlVG9rZW5zRnJvbU1ldGF2YXJpYWJsZVN0cmluZyhtZXRhdmFyaWFibGVTdHJpbmcsIGxleGVyKSB7XG4gIGNvbnN0IG1ldGF2YXJpYWJsZUNvbnRlbnQgPSBgJHttZXRhdmFyaWFibGVTdHJpbmd9YCxcbiAgICAgICAgbWV0YXZhcmlhYmxlVG9rZW5zID0gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcihtZXRhdmFyaWFibGVDb250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVRva2Vucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnN0aXR1dGlvblRva2Vuc0Zyb21TdWJzdGl0dXRpb25TdHJpbmcoc3Vic3RpdHV0aW9uU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCBzdWJzdGl0dXRpb25Db250ZW50ID0gYCR7c3Vic3RpdHV0aW9uU3RyaW5nfWAsXG4gICAgICAgIHN1YnN0aXR1dGlvblRva2VucyA9IHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIoc3Vic3RpdHV0aW9uQ29udGVudCwgbGV4ZXIpO1xuXG4gIHJldHVybiBzdWJzdGl0dXRpb25Ub2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21VbnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyh1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZywgbGV4ZXIpIHtcbiAgY29uc3QgY29udGVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nLCAgLy8vXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zID0gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcihjb250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vuc0Zyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmcsIGxleGVyKSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nLCAgLy8vXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKGNvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucztcbn1cblxuZnVuY3Rpb24gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcihjb250ZW50LCBsZXhlciA9IG5vbWluYWxMZXhlcikge1xuICBjb25zdCB0b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KTtcblxuICByZXR1cm4gdG9rZW5zO1xufVxuIl0sIm5hbWVzIjpbImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnNGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZyIsIm1ldGF2YXJpYWJsZVRva2Vuc0Zyb21NZXRhdmFyaWFibGVTdHJpbmciLCJzdWJzdGl0dXRpb25Ub2tlbnNGcm9tU3Vic3RpdHV0aW9uU3RyaW5nIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJ2YXJpYWJsZVRva2Vuc0Zyb21WYXJpYWJsZVN0cmluZyIsIm5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIiLCJsZXhlcnNVdGlsaXRpZXMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZyIsIm5vbWluYWxMZXhlciIsInZhcmlhYmxlU3RyaW5nIiwibGV4ZXIiLCJ2YXJpYWJsZUNvbnRlbnQiLCJ2YXJpYWJsZVRva2VucyIsInRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVDb250ZW50IiwibWV0YXZhcmlhYmxlVG9rZW5zIiwic3Vic3RpdHV0aW9uU3RyaW5nIiwic3Vic3RpdHV0aW9uQ29udGVudCIsInN1YnN0aXR1dGlvblRva2VucyIsInVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwiY29udGVudCIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJ0b2tlbnMiLCJ0b2tlbmlzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBdUNnQkEsNERBQTREO2VBQTVEQTs7SUFyQkFDLHdDQUF3QztlQUF4Q0E7O0lBT0FDLHdDQUF3QztlQUF4Q0E7O0lBT0FDLHdEQUF3RDtlQUF4REE7O0lBckJBQyxnQ0FBZ0M7ZUFBaENBOzs7bUNBVGdCOzZCQUVpQjtBQUVqRCxJQUFNLEFBQUVDLHdDQUEwQ0Msb0NBQWUsQ0FBekREO0FBRVIsSUFBTUUsd0JBQXdCQyxJQUFBQSwrQ0FBZ0MsS0FDeERDLGVBQWVKLHNDQUFzQ0U7QUFFcEQsU0FBU0gsaUNBQWlDTSxjQUFjLEVBQUVDLEtBQUs7SUFDcEUsSUFBTUMsa0JBQWtCLEFBQUMsR0FBaUIsT0FBZkYsaUJBQ3JCRyxpQkFBaUJDLDBCQUEwQkYsaUJBQWlCRDtJQUVsRSxPQUFPRTtBQUNUO0FBRU8sU0FBU1oseUNBQXlDYyxrQkFBa0IsRUFBRUosS0FBSztJQUNoRixJQUFNSyxzQkFBc0IsQUFBQyxHQUFxQixPQUFuQkQscUJBQ3pCRSxxQkFBcUJILDBCQUEwQkUscUJBQXFCTDtJQUUxRSxPQUFPTTtBQUNUO0FBRU8sU0FBU2YseUNBQXlDZ0Isa0JBQWtCLEVBQUVQLEtBQUs7SUFDaEYsSUFBTVEsc0JBQXNCLEFBQUMsR0FBcUIsT0FBbkJELHFCQUN6QkUscUJBQXFCTiwwQkFBMEJLLHFCQUFxQlI7SUFFMUUsT0FBT1M7QUFDVDtBQUVPLFNBQVNqQix5REFBeURrQiwwQkFBMEIsRUFBRVYsS0FBSztJQUN4RyxJQUFNVyxVQUFVRCw0QkFDVkUsNkJBQTZCVCwwQkFBMEJRLFNBQVNYO0lBRXRFLE9BQU9ZO0FBQ1Q7QUFFTyxTQUFTdkIsNkRBQTZEd0IsNEJBQTRCLEVBQUViLEtBQUs7SUFDOUcsSUFBTVcsVUFBVUUsOEJBQ1ZDLCtCQUErQlgsMEJBQTBCUSxTQUFTWDtJQUV4RSxPQUFPYztBQUNUO0FBRUEsU0FBU1gsMEJBQTBCUSxPQUFPO1FBQUVYLFFBQUFBLGlFQUFRRjtJQUNsRCxJQUFNaUIsU0FBU2YsTUFBTWdCLFFBQVEsQ0FBQ0w7SUFFOUIsT0FBT0k7QUFDVCJ9
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IGxleGVyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5cbmNvbnN0IHsgZnJvbnQgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBub21pbmFsTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBsZXhlcnNVdGlsaXRpZXM7XG5cbmNvbnN0IGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nKCksXG4gICAgICBub21pbmFsTGV4ZXIgPSBub21pbmFsTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyKGNvbWJpbmVkQ3VzdG9tR3JhbW1hcik7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVRva2Vuc0Zyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgbGV4ZXIpIHtcbiAgY29uc3QgdmFyaWFibGVDb250ZW50ID0gYCR7dmFyaWFibGVTdHJpbmd9YCxcbiAgICAgICAgdmFyaWFibGVUb2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKHZhcmlhYmxlQ29udGVudCwgbGV4ZXIpO1xuXG4gIHJldHVybiB2YXJpYWJsZVRva2Vucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZVRva2Vuc0Zyb21NZXRhdmFyaWFibGVTdHJpbmcobWV0YXZhcmlhYmxlU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCBtZXRhdmFyaWFibGVDb250ZW50ID0gYCR7bWV0YXZhcmlhYmxlU3RyaW5nfWAsXG4gICAgICAgIG1ldGF2YXJpYWJsZVRva2VucyA9IHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIobWV0YXZhcmlhYmxlQ29udGVudCwgbGV4ZXIpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVUb2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21VbnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyh1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZywgbGV4ZXIpIHtcbiAgY29uc3QgY29udGVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nLCAgLy8vXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zID0gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcihjb250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vuc0Zyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmcsIGxleGVyKSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nLCAgLy8vXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKGNvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Ub2tlbnNGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucyhjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zKSB7XG4gIGNvbnN0IGZyb250Q29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyA9IGZyb250KGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMpLFxuICAgICAgICB0ZXJtVG9rZW5zID0gZnJvbnRDb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zOyAgLy8vXG5cbiAgcmV0dXJuIHRlcm1Ub2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRUb2tlbnNGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMpIHtcbiAgY29uc3QgZnJvbnRVbnF1YWxpZmllZFN0YXRlbWVudFRva2VucyA9IGZyb250KHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zKSxcbiAgICAgICAgc3RhdGVtZW50VG9rZW5zID0gZnJvbnRVbnF1YWxpZmllZFN0YXRlbWVudFRva2VuczsgIC8vL1xuXG4gIHJldHVybiBzdGF0ZW1lbnRUb2tlbnM7XG59XG5cbmZ1bmN0aW9uIHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIoY29udGVudCwgbGV4ZXIgPSBub21pbmFsTGV4ZXIpIHtcbiAgY29uc3QgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cbiJdLCJuYW1lcyI6WyJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmciLCJtZXRhdmFyaWFibGVUb2tlbnNGcm9tTWV0YXZhcmlhYmxlU3RyaW5nIiwic3RhdGVtZW50VG9rZW5zRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwidGVybVRva2Vuc0Zyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJ2YXJpYWJsZVRva2Vuc0Zyb21WYXJpYWJsZVN0cmluZyIsImZyb250IiwiYXJyYXlVdGlsaXRpZXMiLCJub21pbmFsTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwibGV4ZXJzVXRpbGl0aWVzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmciLCJub21pbmFsTGV4ZXIiLCJ2YXJpYWJsZVN0cmluZyIsImxleGVyIiwidmFyaWFibGVDb250ZW50IiwidmFyaWFibGVUb2tlbnMiLCJ0b2tlbnNGcm9tQ29udGVudEFuZExleGVyIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibWV0YXZhcmlhYmxlQ29udGVudCIsIm1ldGF2YXJpYWJsZVRva2VucyIsInVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwiY29udGVudCIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJmcm9udENvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJ0ZXJtVG9rZW5zIiwiZnJvbnRVbnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsInN0YXRlbWVudFRva2VucyIsInRva2VucyIsInRva2VuaXNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFrQ2dCQSw0REFBNEQ7ZUFBNURBOztJQWRBQyx3Q0FBd0M7ZUFBeENBOztJQTRCQUMsNkNBQTZDO2VBQTdDQTs7SUFQQUMsMENBQTBDO2VBQTFDQTs7SUFkQUMsd0RBQXdEO2VBQXhEQTs7SUFkQUMsZ0NBQWdDO2VBQWhDQTs7O3lCQVhlO21DQUNDOzZCQUVpQjtBQUVqRCxJQUFNLEFBQUVDLFFBQVVDLHlCQUFjLENBQXhCRCxPQUNGLEFBQUVFLHdDQUEwQ0Msb0NBQWUsQ0FBekREO0FBRVIsSUFBTUUsd0JBQXdCQyxJQUFBQSwrQ0FBZ0MsS0FDeERDLGVBQWVKLHNDQUFzQ0U7QUFFcEQsU0FBU0wsaUNBQWlDUSxjQUFjLEVBQUVDLEtBQUs7SUFDcEUsSUFBTUMsa0JBQWtCLEFBQUMsR0FBaUIsT0FBZkYsaUJBQ3JCRyxpQkFBaUJDLDBCQUEwQkYsaUJBQWlCRDtJQUVsRSxPQUFPRTtBQUNUO0FBRU8sU0FBU2YseUNBQXlDaUIsa0JBQWtCLEVBQUVKLEtBQUs7SUFDaEYsSUFBTUssc0JBQXNCLEFBQUMsR0FBcUIsT0FBbkJELHFCQUN6QkUscUJBQXFCSCwwQkFBMEJFLHFCQUFxQkw7SUFFMUUsT0FBT007QUFDVDtBQUVPLFNBQVNoQix5REFBeURpQiwwQkFBMEIsRUFBRVAsS0FBSztJQUN4RyxJQUFNUSxVQUFVRCw0QkFDVkUsNkJBQTZCTiwwQkFBMEJLLFNBQVNSO0lBRXRFLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTdkIsNkRBQTZEd0IsNEJBQTRCLEVBQUVWLEtBQUs7SUFDOUcsSUFBTVEsVUFBVUUsOEJBQ1ZDLCtCQUErQlIsMEJBQTBCSyxTQUFTUjtJQUV4RSxPQUFPVztBQUNUO0FBRU8sU0FBU3RCLDJDQUEyQ3NCLDRCQUE0QjtJQUNyRixJQUFNQyxvQ0FBb0NwQixNQUFNbUIsK0JBQzFDRSxhQUFhRCxtQ0FBb0MsR0FBRztJQUUxRCxPQUFPQztBQUNUO0FBRU8sU0FBU3pCLDhDQUE4Q3FCLDBCQUEwQjtJQUN0RixJQUFNSyxrQ0FBa0N0QixNQUFNaUIsNkJBQ3hDTSxrQkFBa0JELGlDQUFrQyxHQUFHO0lBRTdELE9BQU9DO0FBQ1Q7QUFFQSxTQUFTWiwwQkFBMEJLLE9BQU87UUFBRVIsUUFBQUEsaUVBQVFGO0lBQ2xELElBQU1rQixTQUFTaEIsTUFBTWlCLFFBQVEsQ0FBQ1Q7SUFFOUIsT0FBT1E7QUFDVCJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.1065",
4
+ "version": "0.0.1066",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ import shim from "../shim";
4
+ import Combinator from "../combinator";
5
+
6
+ import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
7
+ import { statementTokensFromUnqualifiedStatementTokens, unqualifiedStatementTokensFromUnqualifiedStatementString } from "../utilities/tokens";
8
+ import { statementNodeFromUnqualifiedStatementNode,
9
+ unqualifiedStatementStringFromStatementString,
10
+ unqualifiedStatementNodeFromUnqualifiedStatementTokens } from "../utilities/node";
11
+
12
+ const statementString = `(${STATEMENT_META_TYPE_NAME})`,
13
+ unqualifiedStatementString = unqualifiedStatementStringFromStatementString(statementString),
14
+ unqualifiedStatementTokens = unqualifiedStatementTokensFromUnqualifiedStatementString(unqualifiedStatementString),
15
+ unqualifiedStatementNode = unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens),
16
+ statementTokens = statementTokensFromUnqualifiedStatementTokens(unqualifiedStatementTokens),
17
+ statementNode = statementNodeFromUnqualifiedStatementNode(unqualifiedStatementNode),
18
+ nodeAsTokens = (node) => {
19
+ const tokens = statementTokens; ///
20
+
21
+ return tokens;
22
+ },
23
+ nodeAsString = (node) => {
24
+ const string = statementString; ///
25
+
26
+ return string;
27
+ },
28
+ tokensAsString = (tokens) => {
29
+ const string = statementNode; ///
30
+
31
+ return string;
32
+ },
33
+ localContext = {
34
+ nodeAsTokens,
35
+ nodeAsString,
36
+ tokensAsString
37
+ };
38
+
39
+ export const bracketedStatementNode = statementNode; ///
40
+
41
+ export default class BracketedCombinator extends Combinator {
42
+ static fromNothing() {
43
+ const { Statement } = shim,
44
+ statement = Statement.fromStatementNode(statementNode, localContext),
45
+ bracketedCombinator = new BracketedCombinator(statement);
46
+
47
+ return bracketedCombinator;
48
+ }
49
+ }
package/src/constants.js CHANGED
@@ -4,5 +4,5 @@ export const NOT = "not";
4
4
  export const COMMA = ",";
5
5
  export const FUNCTION = "function";
6
6
  export const EMPTY_STRING = "";
7
- export const BRACKETED_TERM_DEPTH = 3;
8
- export const BRACKETED_STATEMENT_DEPTH = 3;
7
+ export const BRACKETED_TERM_DEPTH = 2;
8
+ export const BRACKETED_STATEMENT_DEPTH = 2;
@@ -2,23 +2,46 @@
2
2
 
3
3
  import shim from "../shim";
4
4
  import Constructor from "../constructor";
5
- import bracketedConstructorTermNode from "../node/term/constructor/bracketed";
6
5
 
6
+ import { OBJECT_TYPE_NAME } from "../typeNames";
7
7
  import { stringFromTermAndType } from "../constructor";
8
- import { bracketedConstructorTermString } from "../node/term/constructor/bracketed";
8
+ import { termTokensFromConstructorDeclarationTokens, constructorDeclarationTokensFromConstructorDeclarationString } from "../utilities/tokens";
9
+ import { termNodeFromConstructorDeclarationNode,
10
+ constructorDeclarationStringFromTermString,
11
+ constructorDeclarationNodeFromConstructorDeclarationTokens } from "../utilities/node";
9
12
 
10
- const localContext = {
11
- nodeAsString: (node) => {
12
- const string = bracketedConstructorTermString; ///
13
+ const termString = `(${OBJECT_TYPE_NAME})`, ///
14
+ constructorDeclarationString = constructorDeclarationStringFromTermString(termString),
15
+ constructorDeclarationTokens = constructorDeclarationTokensFromConstructorDeclarationString(constructorDeclarationString),
16
+ constructorDeclarationNode = constructorDeclarationNodeFromConstructorDeclarationTokens(constructorDeclarationTokens),
17
+ termNode = termNodeFromConstructorDeclarationNode(constructorDeclarationNode),
18
+ termTokens = termTokensFromConstructorDeclarationTokens(constructorDeclarationTokens),
19
+ nodeAsTokens = (node) => {
20
+ const tokens = termTokens; ///
13
21
 
14
- return string;
15
- }
16
- };
22
+ return tokens;
23
+ },
24
+ nodeAsString = (node) => {
25
+ const string = termString; ///
26
+
27
+ return string;
28
+ },
29
+ tokensAsString = (tokens) => {
30
+ const string = termNode; ///
31
+
32
+ return string;
33
+ },
34
+ localContext = {
35
+ nodeAsTokens,
36
+ nodeAsString,
37
+ tokensAsString
38
+ };
39
+
40
+ export const bracketedTermNode = termNode; ///
17
41
 
18
42
  export default class BracketedConstructor extends Constructor {
19
43
  static fromNothing() {
20
44
  const { Term } = shim,
21
- termNode = bracketedConstructorTermNode, ///
22
45
  term = Term.fromTermNode(termNode, localContext),
23
46
  type = null,
24
47
  string = stringFromTermAndType(term, type),
@@ -17,7 +17,7 @@ import Metatheorem from "../metatheorem";
17
17
  import Metavariable from "../metavariable";
18
18
 
19
19
  import { objectType } from "../type";
20
- import { nodeAsString, nodesAsString } from "../utilities/string";
20
+ import { nodeAsTokens, nodeAsString, nodesAsString, tokensAsString } from "../utilities/string";
21
21
 
22
22
  const { push } = arrayUtilities;
23
23
 
@@ -560,18 +560,48 @@ export default class FileContext {
560
560
  return metavariable;
561
561
  }
562
562
 
563
- nodeAsString(node) {
564
- const string = nodeAsString(node, this.tokens);
563
+ nodeAsString(node, tokens = null) {
564
+ if (tokens === null) {
565
+ tokens = this.tokens;
566
+ }
567
+
568
+ const string = nodeAsString(node, tokens);
565
569
 
566
570
  return string;
567
571
  }
568
572
 
569
- nodesAsString(node) {
570
- const string = nodesAsString(node, this.tokens);
573
+ nodesAsString(node, tokens = null) {
574
+ if (tokens === null) {
575
+ tokens = this.tokens;
576
+ }
577
+
578
+ const string = nodesAsString(node, tokens);
571
579
 
572
580
  return string;
573
581
  }
574
582
 
583
+ nodeAsTokens(node, tokens = null) {
584
+ if (tokens === null) {
585
+ tokens = this.tokens;
586
+ }
587
+
588
+ tokens = nodeAsTokens(node, tokens); ///
589
+
590
+ return tokens;
591
+ }
592
+
593
+ nodesAsTokens(node, tokens = null) {
594
+ if (tokens === null) {
595
+ tokens = this.tokens;
596
+ }
597
+
598
+ tokens = nodesAsTokens(node, tokens); ///
599
+
600
+ return tokens;
601
+ }
602
+
603
+ tokensAsString(tokens) { return tokensAsString(tokens); }
604
+
575
605
  addType(type) {
576
606
  this.types.push(type);
577
607
  }
@@ -10,8 +10,9 @@ import { mergeEquivalences, findEquivalenceByTerm, groundedTermsAndDefinedVariab
10
10
  const { last, reverse } = arrayUtilities;
11
11
 
12
12
  class LocalContext {
13
- constructor(context, variables, proofSteps, judgements, equivalences, metavariables) {
13
+ constructor(context, tokens, variables, proofSteps, judgements, equivalences, metavariables) {
14
14
  this.context = context;
15
+ this.tokens = tokens;
15
16
  this.variables = variables;
16
17
  this.proofSteps = proofSteps;
17
18
  this.judgements = judgements;
@@ -23,6 +24,10 @@ class LocalContext {
23
24
  return this.context;
24
25
  }
25
26
 
27
+ getTokens() {
28
+ return this.tokens;
29
+ }
30
+
26
31
  getVariables() {
27
32
  let variables = this.context.getVariables();
28
33
 
@@ -394,9 +399,47 @@ class LocalContext {
394
399
 
395
400
  findMetatheoremByReference(reference) { return this.context.findMetatheoremByReference(reference); }
396
401
 
397
- nodeAsString(node) { return this.context.nodeAsString(node); }
402
+ nodeAsString(node, tokens = null) {
403
+ if (tokens === null) {
404
+ tokens = this.tokens;
405
+ }
406
+
407
+ const string = this.context.nodeAsString(node, tokens);
408
+
409
+ return string;
410
+ }
411
+
412
+ nodesAsString(node, tokens = null) {
413
+ if (tokens === null) {
414
+ tokens = this.tokens;
415
+ }
416
+
417
+ const string = this.context.nodesAsString(node, tokens);
418
+
419
+ return string;
420
+ }
421
+
422
+ nodeAsTokens(node, tokens = null) {
423
+ if (tokens === null) {
424
+ tokens = this.tokens;
425
+ }
426
+
427
+ tokens = this.context.nodeAsTokens(node, tokens); ///
428
+
429
+ return tokens;
430
+ }
431
+
432
+ nodesAsTokens(node, tokens = null) {
433
+ if (tokens === null) {
434
+ tokens = this.tokens;
435
+ }
398
436
 
399
- nodesAsString(node) { return this.context.nodesAsString(node); }
437
+ tokens = this.context.nodesAsTokens(node, tokens); ///
438
+
439
+ return tokens;
440
+ }
441
+
442
+ tokensAsString(tokens) { return this.context.tokensAsString(tokens); }
400
443
 
401
444
  trace(message, node) { this.context.trace(message, node); }
402
445
 
@@ -410,25 +453,39 @@ class LocalContext {
410
453
 
411
454
  static fromFileContext(fileContext) {
412
455
  const context = fileContext, ///
456
+ tokens = null,
413
457
  variables = [],
414
458
  proofSteps = [],
415
- equivalences = [],
416
459
  judgements = [],
460
+ equivalences = [],
417
461
  metavariables = [],
418
- localContext = new LocalContext(context, variables, proofSteps, judgements, equivalences, metavariables);
462
+ localContext = new LocalContext(context, tokens, variables, proofSteps, judgements, equivalences, metavariables);
419
463
 
420
464
  return localContext;
421
465
  }
422
466
 
423
467
  static fromLocalContext(localContext) {
424
468
  const context = localContext, ///
469
+ tokens = null,
425
470
  variables = [],
426
471
  proofSteps = [],
427
- equivalences = [],
428
472
  judgements = [],
473
+ equivalences = [],
429
474
  metavariables = [];
430
475
 
431
- localContext = new LocalContext(context, variables, proofSteps, judgements, equivalences, metavariables); ///
476
+ localContext = new LocalContext(context, tokens, variables, proofSteps, judgements, equivalences, metavariables); ///
477
+
478
+ return localContext;
479
+ }
480
+
481
+ static fromFileContextAndTokens(fileContext, tokens) {
482
+ const context = fileContext, ///
483
+ variables = [],
484
+ proofSteps = [],
485
+ judgements = [],
486
+ equivalences = [],
487
+ metavariables = [],
488
+ localContext = new LocalContext(context, tokens, variables, proofSteps, judgements, equivalences, metavariables); ///
432
489
 
433
490
  return localContext;
434
491
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import BracketedCombinator from "../../ocmbinator/bracketed";
3
+ import BracketedCombinator from "../../combinator/bracketed";
4
4
  import statementWithCombinatorUnifier from "../../unifier/statementWithCombinator";
5
5
 
6
6
  function unifyWithBracketedCombinator(statement, assignments, stated, localContext) {