yapp 2.2.49 → 2.2.54

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.
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.default = void 0;
6
+ var _occamLexers = require("occam-lexers");
7
+ function _assertThisInitialized(self) {
8
+ if (self === void 0) {
9
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
10
+ }
11
+ return self;
12
+ }
13
+ function _classCallCheck(instance, Constructor) {
14
+ if (!(instance instanceof Constructor)) {
15
+ throw new TypeError("Cannot call a class as a function");
16
+ }
17
+ }
18
+ function _getPrototypeOf(o) {
19
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
20
+ return o.__proto__ || Object.getPrototypeOf(o);
21
+ };
22
+ return _getPrototypeOf(o);
23
+ }
24
+ function _inherits(subClass, superClass) {
25
+ if (typeof superClass !== "function" && superClass !== null) {
26
+ throw new TypeError("Super expression must either be null or a function");
27
+ }
28
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
29
+ constructor: {
30
+ value: subClass,
31
+ writable: true,
32
+ configurable: true
33
+ }
34
+ });
35
+ if (superClass) _setPrototypeOf(subClass, superClass);
36
+ }
37
+ function _possibleConstructorReturn(self, call) {
38
+ if (call && (_typeof(call) === "object" || typeof call === "function")) {
39
+ return call;
40
+ }
41
+ return _assertThisInitialized(self);
42
+ }
43
+ function _setPrototypeOf(o, p) {
44
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
45
+ o.__proto__ = p;
46
+ return o;
47
+ };
48
+ return _setPrototypeOf(o, p);
49
+ }
50
+ var _typeof = function(obj) {
51
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
52
+ };
53
+ function _isNativeReflectConstruct() {
54
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
55
+ if (Reflect.construct.sham) return false;
56
+ if (typeof Proxy === "function") return true;
57
+ try {
58
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
59
+ return true;
60
+ } catch (e) {
61
+ return false;
62
+ }
63
+ }
64
+ function _createSuper(Derived) {
65
+ var hasNativeReflectConstruct = _isNativeReflectConstruct();
66
+ return function _createSuperInternal() {
67
+ var Super = _getPrototypeOf(Derived), result;
68
+ if (hasNativeReflectConstruct) {
69
+ var NewTarget = _getPrototypeOf(this).constructor;
70
+ result = Reflect.construct(Super, arguments, NewTarget);
71
+ } else {
72
+ result = Super.apply(this, arguments);
73
+ }
74
+ return _possibleConstructorReturn(this, result);
75
+ };
76
+ }
77
+ var YappLexer = /*#__PURE__*/ function(CommonLexer) {
78
+ _inherits(YappLexer, CommonLexer);
79
+ var _super = _createSuper(YappLexer);
80
+ function YappLexer() {
81
+ _classCallCheck(this, YappLexer);
82
+ return _super.apply(this, arguments);
83
+ }
84
+ return YappLexer;
85
+ }(_occamLexers.CommonLexer);
86
+ exports.default = YappLexer;
87
+
88
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sZXhlci95YXBwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0IHsgQ29tbW9uTGV4ZXIgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBZYXBwTGV4ZXIgZXh0ZW5kcyBDb21tb25MZXhlciB7fVxyXG4iXSwibmFtZXMiOlsiWWFwcExleGVyIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVnQixHQUFjLENBQWQsWUFBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFckJBLFNBQVMsaUJBQWYsUUFBUTtjQUFGQSxTQUFTOzhCQUFUQSxTQUFTO2FBQVRBLFNBQVM7OEJBQVRBLFNBQVM7OztXQUFUQSxTQUFTO0VBRkYsWUFBYztrQkFFckJBLFNBQVMifQ==
@@ -3,10 +3,7 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.default = void 0;
6
- var _occamLexers = require("occam-lexers");
7
- var _occamGrammarUtilities = require("occam-grammar-utilities");
8
- var _occamParsers = require("occam-parsers");
9
- var _rules = require("../utilities/rules");
6
+ var _yapp = _interopRequireDefault(require("../parser/yapp"));
10
7
  function _assertThisInitialized(self) {
11
8
  if (self === void 0) {
12
9
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -64,6 +61,11 @@ function _inherits(subClass, superClass) {
64
61
  });
65
62
  if (superClass) _setPrototypeOf(subClass, superClass);
66
63
  }
64
+ function _interopRequireDefault(obj) {
65
+ return obj && obj.__esModule ? obj : {
66
+ default: obj
67
+ };
68
+ }
67
69
  function _possibleConstructorReturn(self, call) {
68
70
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
69
71
  return call;
@@ -104,10 +106,9 @@ function _createSuper(Derived) {
104
106
  return _possibleConstructorReturn(this, result);
105
107
  };
106
108
  }
107
- var bnfLexer = _occamLexers.BNFLexer.fromNothing(), bnfParser = _occamParsers.BNFParser.fromNothing();
108
109
  var bnf = "\n\n document ::= ( preamble ( statement | error )* ) | ( statement | error )+ ;\n\n\n\n preamble ::= ( \"\\\"use strict\\\"\" | \"'use strict'\" ) \";\" ;\n\n\n\n statement ::= class\n\n | function \n\n | generator \n\n | \"export\"? ( ( \"var\" var ( \",\" var )* ) \n \n | ( \"let\" let ( \",\" let )* ) \n \n | ( \"const\" const ( \",\" const )* ) \n \n ) \";\" \n\n | \"export\" \"default\" expression \";\"\n \n | \"export\" \"default\"? ( class | function | generator )\n\n | \"export\" \"default\" ( anonymousClass | anonymousFunction | anonymousGenerator )\n \n | \"export\" ( ( \"export\" \"{\" names \"}\" ( \"from\" [string-literal] )? ) \n \n | ( \"export\" \"const\" \"{\" fields \"}\" \"=\" expression )\n \n | ( \"export\" \"{\" \"default\" \"}\" \"from\" [string-literal] )\n \n | ( \"export\" \"*\" ( \"as\" name )? \"from\" [string-literal] )\n \n ) \";\"\n\n | \"import\" ( [string-literal]\n \n | ( name \"from\" [string-literal] ) \n \n | ( \"{\" names \"}\" \"from\" [string-literal] ) \n \n | ( \"*\" \"as\" name \"from\" [string-literal] ) \n \n ) \";\"\n\n | label \":\" statement\n\n | \"{\" statement* \"}\"\n\n | \"break\" \";\" \n\n | \"continue\" \";\" \n\n | \"if\" \"(\" expression \")\" statement ( \"else\" statement )? \n\n | \"switch\" \"(\" expression \")\" \"{\" case* defaultCase? \"}\" \n\n | \"return\" expression? \";\" \n\n | \"throw\" expression \";\" \n\n | \"delete\" expression \";\" \n\n | expression! \";\"\n\n | try ( ( catch* finally ) | catch+ ) \n\n | \"do\" statement \"while\" \"(\" expression \")\" \";\" \n\n | \"for\" \"(\" initialiser ( \";\" expression )? ( \";\" expression )? \")\" statement \n\n | \"for\" \"(\" variable \"in\" expression \")\" statement \n\n | \"for\" \"await\"? \"(\" variable \"of\" expression \")\" statement \n\n | \"while\" \"(\" expression \")\" statement \n\n | \"debugger\" \";\"?\n\n ;\n\n\n\n class ::= \"class\" name classBody ;\n\n function ::= \"async\"? \"function\" name functionBody ;\n\n generator ::= \"async\"? \"function\" <NO_WHITESPACE>\"*\" name functionBody ;\n\n anonymousClass ::= \"class\" classBody ;\n\n anonymousFunction ::= \"async\"? \"function\" functionBody ;\n\n anonymousGenerator ::= \"async\"? \"function\" <NO_WHITESPACE>\"*\" functionBody ;\n\n constructor ::= \"constructor\" functionBody ;\n\n method ::= \"static\"? name functionBody ;\n\n field ::= \"static\"? name \"=\" expression \";\" ;\n\n\n\n classBody ::= ( \"extends\" name )? \"{\" ( constructor | method | field )* \"}\" ;\n\n functionBody ::= \"(\" arguments? \")\" \"{\" statement* \"}\" ;\n\n\n\n case ::= \"case\" expression \":\" statement ( \"break\" \";\" )? ;\n\n defaultCase ::= \"default\" \":\" statement ( \"break\" \";\" )? ;\n\n try ::= \"try\" \"{\" statement+ \"}\" ;\n\n catch ::= \"catch\" \"(\" [identifier] \")\" \"{\" statement+ \"}\" ;\n\n finally ::= \"finally\" \"{\" statement+ \"}\" ;\n\n initialiser ::= expression | \"var\" var ( \",\" var )* | \"let\" let ( \",\" let )* ;\n\n\n\n var ::= variable ( \"=\" expression )? | destructure \"=\" expression ;\n\n let ::= variable ( \"=\" expression )? | destructure \"=\" expression;\n\n const ::= ( variable | destructure ) \"=\" expression ;\n\n destructure ::= \"[\" variable ( \"=\" expression )? ( \",\" variable ( \"=\" expression )? )* \"]\" \n\n | \"{\" variable ( \"=\" expression )? ( \",\" variable ( \"=\" expression )? )* \"}\"\n\n ; \n\n\n\n expression ::= jsx\n \n | json\n \n | arrowFunction\n\n | templateLiteral\n\n | anonymousFunction\n\n | \"(\" expression \")\"\n\n | \"{\" ( property ( \",\" property )* )? \"}\"\n\n | \"[\" ( expression ( \",\" expression )* \",\"? )? \"]\"\n\n | \"typeof\" ( expression | ( \"(\" expression \")\") ) \n\n | \"void\" ( expression | ( \"(\" expression \")\") ) \n\n | \"new\" name<NO_WHITESPACE>\"(\" arguments? \")\"\n\n | [operator]<NO_WHITESPACE>expression \n\n | expression<NO_WHITESPACE>( ( \".\"<NO_WHITESPACE>name ) \n \n | ( \"[\" expressions \"]\" ) \n \n | ( \"(\" expressions? \")\" ) \n \n | templateLiteral \n \n | [operator] \n \n ) \n\n | expression ( ( [operator] expression ) \n \n | ( \"?\" expression \":\" expression ) \n \n | ( \"instanceof\" expression ) \n \n | ( \"in\" expression ) \n \n ) \n\n | [number]\n\n | variable \n \n | primitive \n \n | importMeta \n\n | [string-literal]\n\n | \"super\" | \"this\" | \"true\" | \"false\" | \"null\" | \"undefined\"\n\n ;\n\n\n\n jsx ::= jsxCompleteTag | jsxStartTag ( jsx | ( \"{\" expression? \"}\" ) | string )* jsxEndTag ;\n\n jsxCompleteTag ::= \"<\"<NO_WHITESPACE>name jsxAttribute* \"/>\" ;\n\n jsxStartTag ::= \"<\"<NO_WHITESPACE>name jsxAttribute* \">\" ;\n\n jsxEndTag ::= \"</\"<NO_WHITESPACE>name \">\" ;\n\n jsxAttribute ::= name ( <NO_WHITESPACE>\"=\" ( ( <NO_WHITESPACE>[string-literal] ) | ( <NO_WHITESPACE>\"{\" expression \"}\" ) ) )? ;\n\n\n\n json ::= jsonArray | jsonObject ;\n\n jsonArray ::= \"[\" ( jsonElement ( \",\" jsonElement )* )? \"]\" ;\n\n jsonObject ::= \"{\" ( [string-literal] \":\" jsonElement ( \",\" [string-literal] \":\" jsonElement )* )? \"}\" ;\n \n jsonElement ::= json | [string-literal] | [number] | \"true\" | \"false\" | \"null\" ;\n \n\n\n arrowFunction ::= simpleArrowFunction | complexArrowFunction ;\n\n arrowFunctionBody ::= expression | ( \"{\" statement* \"}\" ) ;\n\n simpleArrowFunction ::= argument \"=>\" arrowFunctionBody ; \n\n complexArrowFunction ::= \"(\" arguments? \")\" \"=>\" arrowFunctionBody ; \n\n\n\n templateLiteral ::= \"`\" ( ( \"${\" expression? \"}\" ) | string )* \"`\" ; \n\n\n\n string ::= ( [number] | [special] | [operator]| [keyword] | [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;\n\n property ::= ( ( ( name | [string-literal] ) \":\" expression ) | variable ) ;\n\n importMeta ::= \"import\"<NO_WHITESPACE>\".\"<NO_WHITESPACE>\"meta\" ;\n\n\n\n expressions ::= expression ( \",\" expression )* ;\n\n arguments ::= spreadArgument | ( argument ( \",\" argument )* ( \",\" spreadArgument )? ) ;\n\n fields ::= name ( \":\" name )? ( \",\" name ( \":\" name )? )* ;\n\n names ::= name ( \"as\" name )? ( \",\" name ( \"as\" name )? )* ;\n\n\n\n spreadArgument ::= \"...\"<NO_WHITESPACE>[identifier] ;\n\n argument ::= expression | [identifier] ( \"=\" expression )? ;\n\n variable ::= [identifier] ;\n\n label ::= [identifier] ; \n\n name ::= [identifier] ; \n\n\n\n error ::= . ;\n\n";
109
- var JavaScriptParser = /*#__PURE__*/ function(CommonParser) {
110
- _inherits(JavaScriptParser, CommonParser);
110
+ var JavaScriptParser = /*#__PURE__*/ function(YappParser) {
111
+ _inherits(JavaScriptParser, YappParser);
111
112
  var _super = _createSuper(JavaScriptParser);
112
113
  function JavaScriptParser() {
113
114
  _classCallCheck(this, JavaScriptParser);
@@ -117,24 +118,25 @@ var JavaScriptParser = /*#__PURE__*/ function(CommonParser) {
117
118
  {
118
119
  key: "fromNothing",
119
120
  value: function fromNothing() {
120
- var tokens = bnfLexer.tokensFromBNF(bnf), rules = bnfParser.rulesFromTokens(tokens), javascriptParser = JavaScriptParser.fromRules(rules);
121
- return javascriptParser;
121
+ return _yapp.default.fromNothing(JavaScriptParser);
122
+ }
123
+ },
124
+ {
125
+ key: "fromBNF",
126
+ value: function fromBNF(bnf1) {
127
+ return _yapp.default.fromBNF(JavaScriptParser, bnf1);
122
128
  }
123
129
  },
124
130
  {
125
131
  key: "fromRules",
126
132
  value: function fromRules(rules) {
127
- var ruleMap = (0, _rules).ruleMapFromRules(rules);
128
- var startRule = (0, _rules).startRuleFromRules(rules);
129
- startRule = (0, _occamGrammarUtilities).eliminateLeftRecursion(startRule, ruleMap);
130
- var javascriptParser = new JavaScriptParser(startRule, ruleMap);
131
- return javascriptParser;
133
+ return _yapp.default.fromRules(JavaScriptParser, rules);
132
134
  }
133
135
  }
134
136
  ]);
135
137
  return JavaScriptParser;
136
- }(_occamParsers.CommonParser);
138
+ }(_yapp.default);
137
139
  _defineProperty(JavaScriptParser, "bnf", bnf);
138
140
  exports.default = JavaScriptParser;
139
141
 
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQk5GTGV4ZXIgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5pbXBvcnQgeyBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXItdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBCTkZQYXJzZXIsIENvbW1vblBhcnNlciB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5cbmltcG9ydCB7IHN0YXJ0UnVsZUZyb21SdWxlcywgcnVsZU1hcEZyb21SdWxlcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvcnVsZXNcIjtcblxuY29uc3QgYm5mTGV4ZXIgPSBCTkZMZXhlci5mcm9tTm90aGluZygpLFxuICAgICAgYm5mUGFyc2VyID0gQk5GUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAgKCBwcmVhbWJsZSAoIHN0YXRlbWVudCB8IGVycm9yICkqICkgfCAoIHN0YXRlbWVudCB8IGVycm9yICkrIDtcblxuXG5cbiAgICBwcmVhbWJsZSAgICAgICAgICAgICAgICAgICA6Oj0gICggXCJcXFxcXCJ1c2Ugc3RyaWN0XFxcXFwiXCIgfCBcIid1c2Ugc3RyaWN0J1wiICkgXCI7XCIgO1xuXG5cblxuICAgIHN0YXRlbWVudCAgICAgICAgICAgICAgICAgIDo6PSAgY2xhc3NcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZnVuY3Rpb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGdlbmVyYXRvciBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIj8gKCAoIFwidmFyXCIgdmFyICggXCIsXCIgdmFyICkqICkgXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwibGV0XCIgbGV0ICggXCIsXCIgbGV0ICkqICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiY29uc3RcIiBjb25zdCAoIFwiLFwiIGNvbnN0ICkqICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIiBcImRlZmF1bHRcIiBleHByZXNzaW9uIFwiO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCI/ICggY2xhc3MgfCBmdW5jdGlvbiB8IGdlbmVyYXRvciApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCIgKCBhbm9ueW1vdXNDbGFzcyB8IGFub255bW91c0Z1bmN0aW9uIHwgYW5vbnltb3VzR2VuZXJhdG9yIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIiAoICggXCJleHBvcnRcIiBcIntcIiBuYW1lcyBcIn1cIiAoIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKT8gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiZXhwb3J0XCIgXCJjb25zdFwiIFwie1wiIGZpZWxkcyBcIn1cIiBcIj1cIiBleHByZXNzaW9uIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiZXhwb3J0XCIgXCJ7XCIgXCJkZWZhdWx0XCIgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImV4cG9ydFwiIFwiKlwiICggXCJhc1wiIG5hbWUgKT8gXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgXCI7XCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJpbXBvcnRcIiAoIFtzdHJpbmctbGl0ZXJhbF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIG5hbWUgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJ7XCIgbmFtZXMgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCIqXCIgXCJhc1wiIG5hbWUgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFwiO1wiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxhYmVsIFwiOlwiIHN0YXRlbWVudFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIntcIiBzdGF0ZW1lbnQqIFwifVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiYnJlYWtcIiBcIjtcIiAgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiY29udGludWVcIiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJpZlwiIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgc3RhdGVtZW50ICggXCJlbHNlXCIgc3RhdGVtZW50ICk/IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInN3aXRjaFwiIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgXCJ7XCIgY2FzZSogZGVmYXVsdENhc2U/IFwifVwiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInJldHVyblwiIGV4cHJlc3Npb24/IFwiO1wiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInRocm93XCIgZXhwcmVzc2lvbiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkZWxldGVcIiBleHByZXNzaW9uIFwiO1wiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBleHByZXNzaW9uISBcIjtcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0cnkgKCAoIGNhdGNoKiBmaW5hbGx5ICkgfCBjYXRjaCsgKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkb1wiIHN0YXRlbWVudCBcIndoaWxlXCIgXCIoXCIgZXhwcmVzc2lvbiBcIilcIiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJmb3JcIiBcIihcIiBpbml0aWFsaXNlciAoIFwiO1wiIGV4cHJlc3Npb24gKT8gKCBcIjtcIiBleHByZXNzaW9uICk/IFwiKVwiIHN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJmb3JcIiBcIihcIiB2YXJpYWJsZSBcImluXCIgZXhwcmVzc2lvbiBcIilcIiBzdGF0ZW1lbnQgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZm9yXCIgXCJhd2FpdFwiPyBcIihcIiB2YXJpYWJsZSBcIm9mXCIgZXhwcmVzc2lvbiBcIilcIiBzdGF0ZW1lbnQgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwid2hpbGVcIiBcIihcIiBleHByZXNzaW9uIFwiKVwiIHN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkZWJ1Z2dlclwiIFwiO1wiP1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG4gICAgY2xhc3MgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcImNsYXNzXCIgbmFtZSBjbGFzc0JvZHkgO1xuXG4gICAgZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgOjo9ICBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiBuYW1lIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBnZW5lcmF0b3IgICAgICAgICAgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIDxOT19XSElURVNQQUNFPlwiKlwiIG5hbWUgZnVuY3Rpb25Cb2R5IDtcblxuICAgIGFub255bW91c0NsYXNzICAgICAgICAgICAgIDo6PSAgXCJjbGFzc1wiIGNsYXNzQm9keSA7XG5cbiAgICBhbm9ueW1vdXNGdW5jdGlvbiAgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBhbm9ueW1vdXNHZW5lcmF0b3IgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIDxOT19XSElURVNQQUNFPlwiKlwiIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBjb25zdHJ1Y3RvciAgICAgICAgICAgICAgICA6Oj0gIFwiY29uc3RydWN0b3JcIiBmdW5jdGlvbkJvZHkgO1xuXG4gICAgbWV0aG9kICAgICAgICAgICAgICAgICAgICAgOjo9ICBcInN0YXRpY1wiPyBuYW1lIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBmaWVsZCAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwic3RhdGljXCI/IG5hbWUgXCI9XCIgZXhwcmVzc2lvbiBcIjtcIiA7XG5cblxuXG4gICAgY2xhc3NCb2R5ICAgICAgICAgICAgICAgICAgOjo9ICAoIFwiZXh0ZW5kc1wiIG5hbWUgKT8gXCJ7XCIgKCBjb25zdHJ1Y3RvciB8IG1ldGhvZCB8IGZpZWxkICkqIFwifVwiIDtcblxuICAgIGZ1bmN0aW9uQm9keSAgICAgICAgICAgICAgIDo6PSAgXCIoXCIgYXJndW1lbnRzPyBcIilcIiBcIntcIiBzdGF0ZW1lbnQqIFwifVwiIDtcblxuXG5cbiAgICBjYXNlICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiY2FzZVwiIGV4cHJlc3Npb24gXCI6XCIgc3RhdGVtZW50ICggXCJicmVha1wiIFwiO1wiICk/IDtcblxuICAgIGRlZmF1bHRDYXNlICAgICAgICAgICAgICAgIDo6PSAgXCJkZWZhdWx0XCIgXCI6XCIgc3RhdGVtZW50ICggXCJicmVha1wiIFwiO1wiICk/IDtcblxuICAgIHRyeSAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJ0cnlcIiBcIntcIiBzdGF0ZW1lbnQrIFwifVwiIDtcblxuICAgIGNhdGNoICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJjYXRjaFwiIFwiKFwiIFtpZGVudGlmaWVyXSBcIilcIiBcIntcIiBzdGF0ZW1lbnQrIFwifVwiIDtcblxuICAgIGZpbmFsbHkgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJmaW5hbGx5XCIgXCJ7XCIgc3RhdGVtZW50KyBcIn1cIiA7XG5cbiAgICBpbml0aWFsaXNlciAgICAgICAgICAgICAgICA6Oj0gIGV4cHJlc3Npb24gfCBcInZhclwiIHZhciAoIFwiLFwiIHZhciApKiB8IFwibGV0XCIgbGV0ICggXCIsXCIgbGV0ICkqIDtcblxuXG5cbiAgICB2YXIgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyB8IGRlc3RydWN0dXJlIFwiPVwiIGV4cHJlc3Npb24gO1xuXG4gICAgbGV0ICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gfCBkZXN0cnVjdHVyZSBcIj1cIiBleHByZXNzaW9uO1xuXG4gICAgY29uc3QgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIHZhcmlhYmxlIHwgZGVzdHJ1Y3R1cmUgKSBcIj1cIiBleHByZXNzaW9uIDtcblxuICAgIGRlc3RydWN0dXJlICAgICAgICAgICAgICAgIDo6PSAgXCJbXCIgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/ICggXCIsXCIgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/ICkqIFwiXVwiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIntcIiB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gKCBcIixcIiB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gKSogXCJ9XCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBcblxuXG5cbiAgICBleHByZXNzaW9uICAgICAgICAgICAgICAgICA6Oj0gIGpzeFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAganNvblxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYXJyb3dGdW5jdGlvblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0ZW1wbGF0ZUxpdGVyYWxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYW5vbnltb3VzRnVuY3Rpb25cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCIoXCIgZXhwcmVzc2lvbiBcIilcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIntcIiAoIHByb3BlcnR5ICggXCIsXCIgcHJvcGVydHkgKSogKT8gXCJ9XCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJbXCIgKCBleHByZXNzaW9uICggXCIsXCIgZXhwcmVzc2lvbiApKiBcIixcIj8gKT8gXCJdXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJ0eXBlb2ZcIiAoIGV4cHJlc3Npb24gfCAoIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIpICkgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwidm9pZFwiICggZXhwcmVzc2lvbiB8ICggXCIoXCIgZXhwcmVzc2lvbiBcIilcIikgKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJuZXdcIiBuYW1lPE5PX1dISVRFU1BBQ0U+XCIoXCIgYXJndW1lbnRzPyBcIilcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbb3BlcmF0b3JdPE5PX1dISVRFU1BBQ0U+ZXhwcmVzc2lvbiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZXhwcmVzc2lvbjxOT19XSElURVNQQUNFPiggKCBcIi5cIjxOT19XSElURVNQQUNFPm5hbWUgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJbXCIgZXhwcmVzc2lvbnMgXCJdXCIgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCIoXCIgZXhwcmVzc2lvbnM/IFwiKVwiICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ZW1wbGF0ZUxpdGVyYWwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbb3BlcmF0b3JdIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBleHByZXNzaW9uICggKCBbb3BlcmF0b3JdIGV4cHJlc3Npb24gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCI/XCIgZXhwcmVzc2lvbiBcIjpcIiBleHByZXNzaW9uICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJpbnN0YW5jZW9mXCIgZXhwcmVzc2lvbiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiaW5cIiBleHByZXNzaW9uICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbbnVtYmVyXVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB2YXJpYWJsZSBcbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHByaW1pdGl2ZSBcbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGltcG9ydE1ldGEgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFtzdHJpbmctbGl0ZXJhbF1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJzdXBlclwiIHwgXCJ0aGlzXCIgfCBcInRydWVcIiB8IFwiZmFsc2VcIiB8IFwibnVsbFwiIHwgXCJ1bmRlZmluZWRcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG4gICAganN4ICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBqc3hDb21wbGV0ZVRhZyB8IGpzeFN0YXJ0VGFnICgganN4IHwgKCBcIntcIiBleHByZXNzaW9uPyBcIn1cIiApIHwgc3RyaW5nICkqIGpzeEVuZFRhZyA7XG5cbiAgICBqc3hDb21wbGV0ZVRhZyAgICAgICAgICAgICA6Oj0gIFwiPFwiPE5PX1dISVRFU1BBQ0U+bmFtZSBqc3hBdHRyaWJ1dGUqIFwiLz5cIiA7XG5cbiAgICBqc3hTdGFydFRhZyAgICAgICAgICAgICAgICA6Oj0gIFwiPFwiPE5PX1dISVRFU1BBQ0U+bmFtZSBqc3hBdHRyaWJ1dGUqIFwiPlwiIDtcblxuICAgIGpzeEVuZFRhZyAgICAgICAgICAgICAgICAgIDo6PSAgXCI8L1wiPE5PX1dISVRFU1BBQ0U+bmFtZSBcIj5cIiA7XG5cbiAgICBqc3hBdHRyaWJ1dGUgICAgICAgICAgICAgICA6Oj0gIG5hbWUgKCA8Tk9fV0hJVEVTUEFDRT5cIj1cIiAoICggPE5PX1dISVRFU1BBQ0U+W3N0cmluZy1saXRlcmFsXSApIHwgKCA8Tk9fV0hJVEVTUEFDRT5cIntcIiBleHByZXNzaW9uIFwifVwiICkgKSApPyA7XG5cblxuXG4gICAganNvbiAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBqc29uQXJyYXkgfCBqc29uT2JqZWN0IDtcblxuICAgIGpzb25BcnJheSAgICAgICAgICAgICAgICAgIDo6PSAgXCJbXCIgKCBqc29uRWxlbWVudCAoIFwiLFwiIGpzb25FbGVtZW50ICkqICk/IFwiXVwiIDtcblxuICAgIGpzb25PYmplY3QgICAgICAgICAgICAgICAgIDo6PSAgXCJ7XCIgKCBbc3RyaW5nLWxpdGVyYWxdIFwiOlwiIGpzb25FbGVtZW50ICggXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIjpcIiBqc29uRWxlbWVudCApKiApPyBcIn1cIiA7XG4gICAgXG4gICAganNvbkVsZW1lbnQgICAgICAgICAgICAgICAgOjo9ICBqc29uIHwgW3N0cmluZy1saXRlcmFsXSB8IFtudW1iZXJdIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCIgfCBcIm51bGxcIiA7XG4gICAgXG5cblxuICAgIGFycm93RnVuY3Rpb24gICAgICAgICAgICAgIDo6PSAgc2ltcGxlQXJyb3dGdW5jdGlvbiB8IGNvbXBsZXhBcnJvd0Z1bmN0aW9uIDtcblxuICAgIGFycm93RnVuY3Rpb25Cb2R5ICAgICAgICAgIDo6PSAgZXhwcmVzc2lvbiB8ICggXCJ7XCIgc3RhdGVtZW50KiBcIn1cIiApIDtcblxuICAgIHNpbXBsZUFycm93RnVuY3Rpb24gICAgICAgIDo6PSAgYXJndW1lbnQgXCI9PlwiIGFycm93RnVuY3Rpb25Cb2R5IDsgXG5cbiAgICBjb21wbGV4QXJyb3dGdW5jdGlvbiAgICAgICA6Oj0gIFwiKFwiIGFyZ3VtZW50cz8gXCIpXCIgXCI9PlwiIGFycm93RnVuY3Rpb25Cb2R5IDsgXG5cblxuXG4gICAgdGVtcGxhdGVMaXRlcmFsICAgICAgICAgICAgOjo9ICBcIlxcYFwiICggKCBcIlxcJHtcIiBleHByZXNzaW9uPyBcIn1cIiApIHwgc3RyaW5nICkqIFwiXFxgXCIgOyBcblxuXG5cbiAgICBzdHJpbmcgICAgICAgICAgICAgICAgICAgICA6Oj0gICggW251bWJlcl0gfCBbc3BlY2lhbF0gfCBbb3BlcmF0b3JdfCBba2V5d29yZF0gfCBbaWRlbnRpZmllcl0gfCBbc3RyaW5nLWxpdGVyYWxdfCBbYnJva2VuLXN0cmluZy1saXRlcmFsXSB8IFt1bmFzc2lnbmVkXSApKyA7XG5cbiAgICBwcm9wZXJ0eSAgICAgICAgICAgICAgICAgICA6Oj0gICggKCAoIG5hbWUgfCBbc3RyaW5nLWxpdGVyYWxdICkgXCI6XCIgZXhwcmVzc2lvbiApIHwgdmFyaWFibGUgKSA7XG5cbiAgICBpbXBvcnRNZXRhICAgICAgICAgICAgICAgICA6Oj0gIFwiaW1wb3J0XCI8Tk9fV0hJVEVTUEFDRT5cIi5cIjxOT19XSElURVNQQUNFPlwibWV0YVwiIDtcblxuXG5cbiAgICBleHByZXNzaW9ucyAgICAgICAgICAgICAgICA6Oj0gIGV4cHJlc3Npb24gKCBcIixcIiBleHByZXNzaW9uICkqIDtcblxuICAgIGFyZ3VtZW50cyAgICAgICAgICAgICAgICAgIDo6PSAgc3ByZWFkQXJndW1lbnQgfCAoIGFyZ3VtZW50ICggXCIsXCIgYXJndW1lbnQgKSogKCBcIixcIiBzcHJlYWRBcmd1bWVudCApPyApIDtcblxuICAgIGZpZWxkcyAgICAgICAgICAgICAgICAgICAgIDo6PSAgbmFtZSAoIFwiOlwiIG5hbWUgKT8gKCBcIixcIiBuYW1lICggXCI6XCIgbmFtZSApPyApKiA7XG5cbiAgICBuYW1lcyAgICAgICAgICAgICAgICAgICAgICA6Oj0gIG5hbWUgKCBcImFzXCIgbmFtZSApPyAoIFwiLFwiIG5hbWUgKCBcImFzXCIgbmFtZSApPyApKiA7XG5cblxuXG4gICAgc3ByZWFkQXJndW1lbnQgICAgICAgICAgICAgOjo9ICBcIi4uLlwiPE5PX1dISVRFU1BBQ0U+W2lkZW50aWZpZXJdIDtcblxuICAgIGFyZ3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAgZXhwcmVzc2lvbiB8IFtpZGVudGlmaWVyXSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gO1xuXG4gICAgdmFyaWFibGUgICAgICAgICAgICAgICAgICAgOjo9ICBbaWRlbnRpZmllcl0gO1xuXG4gICAgbGFiZWwgICAgICAgICAgICAgICAgICAgICAgOjo9ICBbaWRlbnRpZmllcl0gOyBcblxuICAgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDsgXG5cblxuXG4gICAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgOjo9ICAuIDtcblxuYDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSmF2YVNjcmlwdFBhcnNlciBleHRlbmRzIENvbW1vblBhcnNlciB7XG4gIHN0YXRpYyBibmYgPSBibmY7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IHRva2VucyA9IGJuZkxleGVyLnRva2Vuc0Zyb21CTkYoYm5mKSxcbiAgICAgICAgICBydWxlcyA9IGJuZlBhcnNlci5ydWxlc0Zyb21Ub2tlbnModG9rZW5zKSxcbiAgICAgICAgICBqYXZhc2NyaXB0UGFyc2VyID0gSmF2YVNjcmlwdFBhcnNlci5mcm9tUnVsZXMocnVsZXMpO1xuXG4gICAgcmV0dXJuIGphdmFzY3JpcHRQYXJzZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVzKHJ1bGVzKSB7XG4gICAgY29uc3QgcnVsZU1hcCA9IHJ1bGVNYXBGcm9tUnVsZXMocnVsZXMpO1xuXG4gICAgbGV0IHN0YXJ0UnVsZSA9IHN0YXJ0UnVsZUZyb21SdWxlcyhydWxlcyk7XG5cbiAgICBzdGFydFJ1bGUgPSBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uKHN0YXJ0UnVsZSwgcnVsZU1hcCk7XG5cbiAgICBjb25zdCBqYXZhc2NyaXB0UGFyc2VyID0gbmV3IEphdmFTY3JpcHRQYXJzZXIoc3RhcnRSdWxlLCBydWxlTWFwKTtcblxuICAgIHJldHVybiBqYXZhc2NyaXB0UGFyc2VyO1xuICB9XG59XG4iXSwibmFtZXMiOlsiYm5mTGV4ZXIiLCJmcm9tTm90aGluZyIsImJuZlBhcnNlciIsImJuZiIsIkphdmFTY3JpcHRQYXJzZXIiLCJ0b2tlbnMiLCJ0b2tlbnNGcm9tQk5GIiwicnVsZXMiLCJydWxlc0Zyb21Ub2tlbnMiLCJqYXZhc2NyaXB0UGFyc2VyIiwiZnJvbVJ1bGVzIiwicnVsZU1hcCIsInN0YXJ0UnVsZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFYSxHQUFjLENBQWQsWUFBYztBQUNBLEdBQXlCLENBQXpCLHNCQUF5QjtBQUN4QixHQUFlLENBQWYsYUFBZTtBQUVGLEdBQW9CLENBQXBCLE1BQW9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6RSxHQUFLLENBQUNBLFFBQVEsR0FOVyxZQUFjLFVBTWJDLFdBQVcsSUFDL0JDLFNBQVMsR0FMeUIsYUFBZSxXQUszQkQsV0FBVztBQUV2QyxHQUFLLENBQUNFLEdBQUcsR0FBSSxDQWdSYjtJQUVxQkMsZ0JBQWdCLGlCQUF0QixRQUFRO2NBQUZBLGdCQUFnQjs4QkFBaEJBLGdCQUFnQjthQUFoQkEsZ0JBQWdCOzhCQUFoQkEsZ0JBQWdCOzs7aUJBQWhCQSxnQkFBZ0I7O1lBRzVCSCxHQUFXLEVBQVhBLENBQVc7bUJBQWxCLFFBQVEsQ0FBREEsV0FBVyxHQUFHLENBQUM7Z0JBQ3BCLEdBQUssQ0FBQ0ksTUFBTSxHQUFHTCxRQUFRLENBQUNNLGFBQWEsQ0FBQ0gsR0FBRyxHQUNuQ0ksS0FBSyxHQUFHTCxTQUFTLENBQUNNLGVBQWUsQ0FBQ0gsTUFBTSxHQUN4Q0ksZ0JBQWdCLEdBQUdMLGdCQUFnQixDQUFDTSxTQUFTLENBQUNILEtBQUs7Z0JBRXpELE1BQU0sQ0FBQ0UsZ0JBQWdCO1lBQ3pCLENBQUM7OztZQUVNQyxHQUFTLEVBQVRBLENBQVM7bUJBQWhCLFFBQVEsQ0FBREEsU0FBUyxDQUFDSCxLQUFLLEVBQUUsQ0FBQztnQkFDdkIsR0FBSyxDQUFDSSxPQUFPLE9BblNvQyxNQUFvQixtQkFtU3BDSixLQUFLO2dCQUV0QyxHQUFHLENBQUNLLFNBQVMsT0FyU29DLE1BQW9CLHFCQXFTbENMLEtBQUs7Z0JBRXhDSyxTQUFTLE9BMVMwQixzQkFBeUIseUJBMFN6QkEsU0FBUyxFQUFFRCxPQUFPO2dCQUVyRCxHQUFLLENBQUNGLGdCQUFnQixHQUFHLEdBQUcsQ0FBQ0wsZ0JBQWdCLENBQUNRLFNBQVMsRUFBRUQsT0FBTztnQkFFaEUsTUFBTSxDQUFDRixnQkFBZ0I7WUFDekIsQ0FBQzs7O1dBckJrQkwsZ0JBQWdCO0VBelJHLGFBQWU7Z0JBeVJsQ0EsZ0JBQWdCLEVBQzVCRCxDQUFHLE1BQUdBLEdBQUc7a0JBREdDLGdCQUFnQiJ9
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFlhcHBQYXJzZXIgIGZyb20gXCIuLi9wYXJzZXIveWFwcFwiO1xuXG5jb25zdCBibmYgPSBgXG5cbiAgICBkb2N1bWVudCAgICAgICAgICAgICAgICAgICA6Oj0gICggcHJlYW1ibGUgKCBzdGF0ZW1lbnQgfCBlcnJvciApKiApIHwgKCBzdGF0ZW1lbnQgfCBlcnJvciApKyA7XG5cblxuXG4gICAgcHJlYW1ibGUgICAgICAgICAgICAgICAgICAgOjo9ICAoIFwiXFxcXFwidXNlIHN0cmljdFxcXFxcIlwiIHwgXCIndXNlIHN0cmljdCdcIiApIFwiO1wiIDtcblxuXG5cbiAgICBzdGF0ZW1lbnQgICAgICAgICAgICAgICAgICA6Oj0gIGNsYXNzXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGZ1bmN0aW9uIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBnZW5lcmF0b3IgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCI/ICggKCBcInZhclwiIHZhciAoIFwiLFwiIHZhciApKiApIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImxldFwiIGxldCAoIFwiLFwiIGxldCApKiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImNvbnN0XCIgY29uc3QgKCBcIixcIiBjb25zdCApKiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgXCI7XCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCIgZXhwcmVzc2lvbiBcIjtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcImV4cG9ydFwiIFwiZGVmYXVsdFwiPyAoIGNsYXNzIHwgZnVuY3Rpb24gfCBnZW5lcmF0b3IgKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcImV4cG9ydFwiIFwiZGVmYXVsdFwiICggYW5vbnltb3VzQ2xhc3MgfCBhbm9ueW1vdXNGdW5jdGlvbiB8IGFub255bW91c0dlbmVyYXRvciApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgKCAoIFwiZXhwb3J0XCIgXCJ7XCIgbmFtZXMgXCJ9XCIgKCBcImZyb21cIiBbc3RyaW5nLWxpdGVyYWxdICk/ICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImV4cG9ydFwiIFwiY29uc3RcIiBcIntcIiBmaWVsZHMgXCJ9XCIgXCI9XCIgZXhwcmVzc2lvbiApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImV4cG9ydFwiIFwie1wiIFwiZGVmYXVsdFwiIFwifVwiIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJleHBvcnRcIiBcIipcIiAoIFwiYXNcIiBuYW1lICk/IFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFwiO1wiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiaW1wb3J0XCIgKCBbc3RyaW5nLWxpdGVyYWxdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBuYW1lIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwie1wiIG5hbWVzIFwifVwiIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiKlwiIFwiYXNcIiBuYW1lIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBcIjtcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBsYWJlbCBcIjpcIiBzdGF0ZW1lbnRcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJ7XCIgc3RhdGVtZW50KiBcIn1cIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcImJyZWFrXCIgXCI7XCIgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcImNvbnRpbnVlXCIgXCI7XCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiaWZcIiBcIihcIiBleHByZXNzaW9uIFwiKVwiIHN0YXRlbWVudCAoIFwiZWxzZVwiIHN0YXRlbWVudCApPyBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJzd2l0Y2hcIiBcIihcIiBleHByZXNzaW9uIFwiKVwiIFwie1wiIGNhc2UqIGRlZmF1bHRDYXNlPyBcIn1cIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJyZXR1cm5cIiBleHByZXNzaW9uPyBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJ0aHJvd1wiIGV4cHJlc3Npb24gXCI7XCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZGVsZXRlXCIgZXhwcmVzc2lvbiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZXhwcmVzc2lvbiEgXCI7XCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdHJ5ICggKCBjYXRjaCogZmluYWxseSApIHwgY2F0Y2grICkgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZG9cIiBzdGF0ZW1lbnQgXCJ3aGlsZVwiIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgXCI7XCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZm9yXCIgXCIoXCIgaW5pdGlhbGlzZXIgKCBcIjtcIiBleHByZXNzaW9uICk/ICggXCI7XCIgZXhwcmVzc2lvbiApPyBcIilcIiBzdGF0ZW1lbnQgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZm9yXCIgXCIoXCIgdmFyaWFibGUgXCJpblwiIGV4cHJlc3Npb24gXCIpXCIgc3RhdGVtZW50IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcImZvclwiIFwiYXdhaXRcIj8gXCIoXCIgdmFyaWFibGUgXCJvZlwiIGV4cHJlc3Npb24gXCIpXCIgc3RhdGVtZW50IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIndoaWxlXCIgXCIoXCIgZXhwcmVzc2lvbiBcIilcIiBzdGF0ZW1lbnQgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZGVidWdnZXJcIiBcIjtcIj9cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxuICAgIGNsYXNzICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJjbGFzc1wiIG5hbWUgY2xhc3NCb2R5IDtcblxuICAgIGZ1bmN0aW9uICAgICAgICAgICAgICAgICAgIDo6PSAgXCJhc3luY1wiPyBcImZ1bmN0aW9uXCIgbmFtZSBmdW5jdGlvbkJvZHkgO1xuXG4gICAgZ2VuZXJhdG9yICAgICAgICAgICAgICAgICAgOjo9ICBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiA8Tk9fV0hJVEVTUEFDRT5cIipcIiBuYW1lIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBhbm9ueW1vdXNDbGFzcyAgICAgICAgICAgICA6Oj0gIFwiY2xhc3NcIiBjbGFzc0JvZHkgO1xuXG4gICAgYW5vbnltb3VzRnVuY3Rpb24gICAgICAgICAgOjo9ICBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiBmdW5jdGlvbkJvZHkgO1xuXG4gICAgYW5vbnltb3VzR2VuZXJhdG9yICAgICAgICAgOjo9ICBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiA8Tk9fV0hJVEVTUEFDRT5cIipcIiBmdW5jdGlvbkJvZHkgO1xuXG4gICAgY29uc3RydWN0b3IgICAgICAgICAgICAgICAgOjo9ICBcImNvbnN0cnVjdG9yXCIgZnVuY3Rpb25Cb2R5IDtcblxuICAgIG1ldGhvZCAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJzdGF0aWNcIj8gbmFtZSBmdW5jdGlvbkJvZHkgO1xuXG4gICAgZmllbGQgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcInN0YXRpY1wiPyBuYW1lIFwiPVwiIGV4cHJlc3Npb24gXCI7XCIgO1xuXG5cblxuICAgIGNsYXNzQm9keSAgICAgICAgICAgICAgICAgIDo6PSAgKCBcImV4dGVuZHNcIiBuYW1lICk/IFwie1wiICggY29uc3RydWN0b3IgfCBtZXRob2QgfCBmaWVsZCApKiBcIn1cIiA7XG5cbiAgICBmdW5jdGlvbkJvZHkgICAgICAgICAgICAgICA6Oj0gIFwiKFwiIGFyZ3VtZW50cz8gXCIpXCIgXCJ7XCIgc3RhdGVtZW50KiBcIn1cIiA7XG5cblxuXG4gICAgY2FzZSAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcImNhc2VcIiBleHByZXNzaW9uIFwiOlwiIHN0YXRlbWVudCAoIFwiYnJlYWtcIiBcIjtcIiApPyA7XG5cbiAgICBkZWZhdWx0Q2FzZSAgICAgICAgICAgICAgICA6Oj0gIFwiZGVmYXVsdFwiIFwiOlwiIHN0YXRlbWVudCAoIFwiYnJlYWtcIiBcIjtcIiApPyA7XG5cbiAgICB0cnkgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwidHJ5XCIgXCJ7XCIgc3RhdGVtZW50KyBcIn1cIiA7XG5cbiAgICBjYXRjaCAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiY2F0Y2hcIiBcIihcIiBbaWRlbnRpZmllcl0gXCIpXCIgXCJ7XCIgc3RhdGVtZW50KyBcIn1cIiA7XG5cbiAgICBmaW5hbGx5ICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiZmluYWxseVwiIFwie1wiIHN0YXRlbWVudCsgXCJ9XCIgO1xuXG4gICAgaW5pdGlhbGlzZXIgICAgICAgICAgICAgICAgOjo9ICBleHByZXNzaW9uIHwgXCJ2YXJcIiB2YXIgKCBcIixcIiB2YXIgKSogfCBcImxldFwiIGxldCAoIFwiLFwiIGxldCApKiA7XG5cblxuXG4gICAgdmFyICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gfCBkZXN0cnVjdHVyZSBcIj1cIiBleHByZXNzaW9uIDtcblxuICAgIGxldCAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/IHwgZGVzdHJ1Y3R1cmUgXCI9XCIgZXhwcmVzc2lvbjtcblxuICAgIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCB2YXJpYWJsZSB8IGRlc3RydWN0dXJlICkgXCI9XCIgZXhwcmVzc2lvbiA7XG5cbiAgICBkZXN0cnVjdHVyZSAgICAgICAgICAgICAgICA6Oj0gIFwiW1wiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyAoIFwiLFwiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyApKiBcIl1cIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJ7XCIgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/ICggXCIsXCIgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/ICkqIFwifVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgXG5cblxuXG4gICAgZXhwcmVzc2lvbiAgICAgICAgICAgICAgICAgOjo9ICBqc3hcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGpzb25cbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGFycm93RnVuY3Rpb25cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdGVtcGxhdGVMaXRlcmFsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGFub255bW91c0Z1bmN0aW9uXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiKFwiIGV4cHJlc3Npb24gXCIpXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJ7XCIgKCBwcm9wZXJ0eSAoIFwiLFwiIHByb3BlcnR5ICkqICk/IFwifVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiW1wiICggZXhwcmVzc2lvbiAoIFwiLFwiIGV4cHJlc3Npb24gKSogXCIsXCI/ICk/IFwiXVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwidHlwZW9mXCIgKCBleHByZXNzaW9uIHwgKCBcIihcIiBleHByZXNzaW9uIFwiKVwiKSApIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInZvaWRcIiAoIGV4cHJlc3Npb24gfCAoIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIpICkgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwibmV3XCIgbmFtZTxOT19XSElURVNQQUNFPlwiKFwiIGFyZ3VtZW50cz8gXCIpXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW29wZXJhdG9yXTxOT19XSElURVNQQUNFPmV4cHJlc3Npb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGV4cHJlc3Npb248Tk9fV0hJVEVTUEFDRT4oICggXCIuXCI8Tk9fV0hJVEVTUEFDRT5uYW1lICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiW1wiIGV4cHJlc3Npb25zIFwiXVwiICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiKFwiIGV4cHJlc3Npb25zPyBcIilcIiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdGVtcGxhdGVMaXRlcmFsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW29wZXJhdG9yXSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgICBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZXhwcmVzc2lvbiAoICggW29wZXJhdG9yXSBleHByZXNzaW9uICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiP1wiIGV4cHJlc3Npb24gXCI6XCIgZXhwcmVzc2lvbiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiaW5zdGFuY2VvZlwiIGV4cHJlc3Npb24gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImluXCIgZXhwcmVzc2lvbiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW251bWJlcl1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGUgXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBwcmltaXRpdmUgXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBpbXBvcnRNZXRhIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbc3RyaW5nLWxpdGVyYWxdXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwic3VwZXJcIiB8IFwidGhpc1wiIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCIgfCBcIm51bGxcIiB8IFwidW5kZWZpbmVkXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxuICAgIGpzeCAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAganN4Q29tcGxldGVUYWcgfCBqc3hTdGFydFRhZyAoIGpzeCB8ICggXCJ7XCIgZXhwcmVzc2lvbj8gXCJ9XCIgKSB8IHN0cmluZyApKiBqc3hFbmRUYWcgO1xuXG4gICAganN4Q29tcGxldGVUYWcgICAgICAgICAgICAgOjo9ICBcIjxcIjxOT19XSElURVNQQUNFPm5hbWUganN4QXR0cmlidXRlKiBcIi8+XCIgO1xuXG4gICAganN4U3RhcnRUYWcgICAgICAgICAgICAgICAgOjo9ICBcIjxcIjxOT19XSElURVNQQUNFPm5hbWUganN4QXR0cmlidXRlKiBcIj5cIiA7XG5cbiAgICBqc3hFbmRUYWcgICAgICAgICAgICAgICAgICA6Oj0gIFwiPC9cIjxOT19XSElURVNQQUNFPm5hbWUgXCI+XCIgO1xuXG4gICAganN4QXR0cmlidXRlICAgICAgICAgICAgICAgOjo9ICBuYW1lICggPE5PX1dISVRFU1BBQ0U+XCI9XCIgKCAoIDxOT19XSElURVNQQUNFPltzdHJpbmctbGl0ZXJhbF0gKSB8ICggPE5PX1dISVRFU1BBQ0U+XCJ7XCIgZXhwcmVzc2lvbiBcIn1cIiApICkgKT8gO1xuXG5cblxuICAgIGpzb24gICAgICAgICAgICAgICAgICAgICAgIDo6PSAganNvbkFycmF5IHwganNvbk9iamVjdCA7XG5cbiAgICBqc29uQXJyYXkgICAgICAgICAgICAgICAgICA6Oj0gIFwiW1wiICgganNvbkVsZW1lbnQgKCBcIixcIiBqc29uRWxlbWVudCApKiApPyBcIl1cIiA7XG5cbiAgICBqc29uT2JqZWN0ICAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggW3N0cmluZy1saXRlcmFsXSBcIjpcIiBqc29uRWxlbWVudCAoIFwiLFwiIFtzdHJpbmctbGl0ZXJhbF0gXCI6XCIganNvbkVsZW1lbnQgKSogKT8gXCJ9XCIgO1xuICAgIFxuICAgIGpzb25FbGVtZW50ICAgICAgICAgICAgICAgIDo6PSAganNvbiB8IFtzdHJpbmctbGl0ZXJhbF0gfCBbbnVtYmVyXSB8IFwidHJ1ZVwiIHwgXCJmYWxzZVwiIHwgXCJudWxsXCIgO1xuICAgIFxuXG5cbiAgICBhcnJvd0Z1bmN0aW9uICAgICAgICAgICAgICA6Oj0gIHNpbXBsZUFycm93RnVuY3Rpb24gfCBjb21wbGV4QXJyb3dGdW5jdGlvbiA7XG5cbiAgICBhcnJvd0Z1bmN0aW9uQm9keSAgICAgICAgICA6Oj0gIGV4cHJlc3Npb24gfCAoIFwie1wiIHN0YXRlbWVudCogXCJ9XCIgKSA7XG5cbiAgICBzaW1wbGVBcnJvd0Z1bmN0aW9uICAgICAgICA6Oj0gIGFyZ3VtZW50IFwiPT5cIiBhcnJvd0Z1bmN0aW9uQm9keSA7IFxuXG4gICAgY29tcGxleEFycm93RnVuY3Rpb24gICAgICAgOjo9ICBcIihcIiBhcmd1bWVudHM/IFwiKVwiIFwiPT5cIiBhcnJvd0Z1bmN0aW9uQm9keSA7IFxuXG5cblxuICAgIHRlbXBsYXRlTGl0ZXJhbCAgICAgICAgICAgIDo6PSAgXCJcXGBcIiAoICggXCJcXCR7XCIgZXhwcmVzc2lvbj8gXCJ9XCIgKSB8IHN0cmluZyApKiBcIlxcYFwiIDsgXG5cblxuXG4gICAgc3RyaW5nICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIFtudW1iZXJdIHwgW3NwZWNpYWxdIHwgW29wZXJhdG9yXXwgW2tleXdvcmRdIHwgW2lkZW50aWZpZXJdIHwgW3N0cmluZy1saXRlcmFsXXwgW2Jyb2tlbi1zdHJpbmctbGl0ZXJhbF0gfCBbdW5hc3NpZ25lZF0gKSsgO1xuXG4gICAgcHJvcGVydHkgICAgICAgICAgICAgICAgICAgOjo9ICAoICggKCBuYW1lIHwgW3N0cmluZy1saXRlcmFsXSApIFwiOlwiIGV4cHJlc3Npb24gKSB8IHZhcmlhYmxlICkgO1xuXG4gICAgaW1wb3J0TWV0YSAgICAgICAgICAgICAgICAgOjo9ICBcImltcG9ydFwiPE5PX1dISVRFU1BBQ0U+XCIuXCI8Tk9fV0hJVEVTUEFDRT5cIm1ldGFcIiA7XG5cblxuXG4gICAgZXhwcmVzc2lvbnMgICAgICAgICAgICAgICAgOjo9ICBleHByZXNzaW9uICggXCIsXCIgZXhwcmVzc2lvbiApKiA7XG5cbiAgICBhcmd1bWVudHMgICAgICAgICAgICAgICAgICA6Oj0gIHNwcmVhZEFyZ3VtZW50IHwgKCBhcmd1bWVudCAoIFwiLFwiIGFyZ3VtZW50ICkqICggXCIsXCIgc3ByZWFkQXJndW1lbnQgKT8gKSA7XG5cbiAgICBmaWVsZHMgICAgICAgICAgICAgICAgICAgICA6Oj0gIG5hbWUgKCBcIjpcIiBuYW1lICk/ICggXCIsXCIgbmFtZSAoIFwiOlwiIG5hbWUgKT8gKSogO1xuXG4gICAgbmFtZXMgICAgICAgICAgICAgICAgICAgICAgOjo9ICBuYW1lICggXCJhc1wiIG5hbWUgKT8gKCBcIixcIiBuYW1lICggXCJhc1wiIG5hbWUgKT8gKSogO1xuXG5cblxuICAgIHNwcmVhZEFyZ3VtZW50ICAgICAgICAgICAgIDo6PSAgXCIuLi5cIjxOT19XSElURVNQQUNFPltpZGVudGlmaWVyXSA7XG5cbiAgICBhcmd1bWVudCAgICAgICAgICAgICAgICAgICA6Oj0gIGV4cHJlc3Npb24gfCBbaWRlbnRpZmllcl0gKCBcIj1cIiBleHByZXNzaW9uICk/IDtcblxuICAgIHZhcmlhYmxlICAgICAgICAgICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDtcblxuICAgIGxhYmVsICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDsgXG5cbiAgICBuYW1lICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFtpZGVudGlmaWVyXSA7IFxuXG5cblxuICAgIGVycm9yICAgICAgICAgICAgICAgICAgICAgIDo6PSAgLiA7XG5cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEphdmFTY3JpcHRQYXJzZXIgZXh0ZW5kcyBZYXBwUGFyc2VyIHtcbiAgc3RhdGljIGJuZiA9IGJuZjtcblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7IHJldHVybiBZYXBwUGFyc2VyLmZyb21Ob3RoaW5nKEphdmFTY3JpcHRQYXJzZXIpOyB9XG5cbiAgc3RhdGljIGZyb21CTkYoYm5mKSB7IHJldHVybiBZYXBwUGFyc2VyLmZyb21CTkYoSmF2YVNjcmlwdFBhcnNlciwgYm5mKTsgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZXMocnVsZXMpIHsgcmV0dXJuIFlhcHBQYXJzZXIuZnJvbVJ1bGVzKEphdmFTY3JpcHRQYXJzZXIsIHJ1bGVzKTsgfVxufVxuIl0sIm5hbWVzIjpbImJuZiIsIkphdmFTY3JpcHRQYXJzZXIiLCJmcm9tTm90aGluZyIsImZyb21CTkYiLCJmcm9tUnVsZXMiLCJydWxlcyJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFWSxHQUFnQixDQUFoQixLQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4QyxHQUFLLENBQUNBLEdBQUcsR0FBSSxDQWdSYjtJQUVxQkMsZ0JBQWdCLGlCQUF0QixRQUFRO2NBQUZBLGdCQUFnQjs4QkFBaEJBLGdCQUFnQjthQUFoQkEsZ0JBQWdCOzhCQUFoQkEsZ0JBQWdCOzs7aUJBQWhCQSxnQkFBZ0I7O1lBRzVCQyxHQUFXLEVBQVhBLENBQVc7bUJBQWxCLFFBQVEsQ0FBREEsV0FBVyxHQUFHLENBQUM7Z0JBQUMsTUFBTSxDQXZSUCxLQUFnQixTQXVSR0EsV0FBVyxDQUFDRCxnQkFBZ0I7WUFBRyxDQUFDOzs7WUFFbEVFLEdBQU8sRUFBUEEsQ0FBTzttQkFBZCxRQUFRLENBQURBLE9BQU8sQ0FBQ0gsSUFBRyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxDQXpSTixLQUFnQixTQXlSRUcsT0FBTyxDQUFDRixnQkFBZ0IsRUFBRUQsSUFBRztZQUFHLENBQUM7OztZQUVsRUksR0FBUyxFQUFUQSxDQUFTO21CQUFoQixRQUFRLENBQURBLFNBQVMsQ0FBQ0MsS0FBSyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxDQTNSVixLQUFnQixTQTJSTUQsU0FBUyxDQUFDSCxnQkFBZ0IsRUFBRUksS0FBSztZQUFHLENBQUM7OztXQVA5REosZ0JBQWdCO0VBcFJiLEtBQWdCO2dCQW9SbkJBLGdCQUFnQixFQUM1QkQsQ0FBRyxNQUFHQSxHQUFHO2tCQURHQyxnQkFBZ0IifQ==
@@ -3,10 +3,7 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.default = void 0;
6
- var _occamLexers = require("occam-lexers");
7
- var _occamGrammarUtilities = require("occam-grammar-utilities");
8
- var _occamParsers = require("occam-parsers");
9
- var _rules = require("../utilities/rules");
6
+ var _yapp = _interopRequireDefault(require("../parser/yapp"));
10
7
  function _assertThisInitialized(self) {
11
8
  if (self === void 0) {
12
9
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -64,6 +61,11 @@ function _inherits(subClass, superClass) {
64
61
  });
65
62
  if (superClass) _setPrototypeOf(subClass, superClass);
66
63
  }
64
+ function _interopRequireDefault(obj) {
65
+ return obj && obj.__esModule ? obj : {
66
+ default: obj
67
+ };
68
+ }
67
69
  function _possibleConstructorReturn(self, call) {
68
70
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
69
71
  return call;
@@ -104,10 +106,9 @@ function _createSuper(Derived) {
104
106
  return _possibleConstructorReturn(this, result);
105
107
  };
106
108
  }
107
- var bnfLexer = _occamLexers.BNFLexer.fromNothing(), bnfParser = _occamParsers.BNFParser.fromNothing();
108
109
  var bnf = "\n\n document ::= json error* | error+ ;\n\n\n json ::= array | object ;\n\n\n array ::= \"[\" ( element ( \",\" element )* )? \"]\" ;\n\n\n object ::= \"{\" ( [string-literal] \":\" element ( \",\" [string-literal] \":\" element )* )? \"}\" ;\n\n \n element ::= json | [string-literal] | [number] | \"true\" | \"false\" | \"null\" ;\n\n\n error ::= . ;\n\n";
109
- var JSONParser = /*#__PURE__*/ function(CommonParser) {
110
- _inherits(JSONParser, CommonParser);
110
+ var JSONParser = /*#__PURE__*/ function(YappParser) {
111
+ _inherits(JSONParser, YappParser);
111
112
  var _super = _createSuper(JSONParser);
112
113
  function JSONParser() {
113
114
  _classCallCheck(this, JSONParser);
@@ -117,24 +118,25 @@ var JSONParser = /*#__PURE__*/ function(CommonParser) {
117
118
  {
118
119
  key: "fromNothing",
119
120
  value: function fromNothing() {
120
- var tokens = bnfLexer.tokensFromBNF(bnf), rules = bnfParser.rulesFromTokens(tokens), jsonParser = JSONParser.fromRules(rules);
121
- return jsonParser;
121
+ return _yapp.default.fromNothing(JSONParser);
122
+ }
123
+ },
124
+ {
125
+ key: "fromBNF",
126
+ value: function fromBNF(bnf1) {
127
+ return _yapp.default.fromBNF(JSONParser, bnf1);
122
128
  }
123
129
  },
124
130
  {
125
131
  key: "fromRules",
126
132
  value: function fromRules(rules) {
127
- var ruleMap = (0, _rules).ruleMapFromRules(rules);
128
- var startRule = (0, _rules).startRuleFromRules(rules);
129
- startRule = (0, _occamGrammarUtilities).eliminateLeftRecursion(startRule, ruleMap);
130
- var jsonParser = new JSONParser(startRule, ruleMap);
131
- return jsonParser;
133
+ return _yapp.default.fromRules(JSONParser, rules);
132
134
  }
133
135
  }
134
136
  ]);
135
137
  return JSONParser;
136
- }(_occamParsers.CommonParser);
138
+ }(_yapp.default);
137
139
  _defineProperty(JSONParser, "bnf", bnf);
138
140
  exports.default = JSONParser;
139
141
 
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQk5GTGV4ZXIgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5pbXBvcnQgeyBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXItdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBCTkZQYXJzZXIsIENvbW1vblBhcnNlciB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5cbmltcG9ydCB7IHJ1bGVNYXBGcm9tUnVsZXMsIHN0YXJ0UnVsZUZyb21SdWxlcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvcnVsZXNcIjtcblxuY29uc3QgYm5mTGV4ZXIgPSBCTkZMZXhlci5mcm9tTm90aGluZygpLFxuICAgICAgYm5mUGFyc2VyID0gQk5GUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAganNvbiBlcnJvciogfCBlcnJvcisgO1xuXG5cbiAgICBqc29uICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIGFycmF5IHwgb2JqZWN0IDtcblxuXG4gICAgYXJyYXkgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIltcIiAoIGVsZW1lbnQgKCBcIixcIiBlbGVtZW50ICkqICk/IFwiXVwiIDtcblxuXG4gICAgb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIntcIiAoIFtzdHJpbmctbGl0ZXJhbF0gXCI6XCIgZWxlbWVudCAoIFwiLFwiIFtzdHJpbmctbGl0ZXJhbF0gXCI6XCIgZWxlbWVudCApKiApPyBcIn1cIiA7XG5cbiAgICBcbiAgICBlbGVtZW50ICAgICAgICAgICAgICAgICAgICA6Oj0gIGpzb24gfCAgW3N0cmluZy1saXRlcmFsXSB8IFtudW1iZXJdIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCIgfCBcIm51bGxcIiA7XG5cblxuICAgIGVycm9yICAgICAgICAgICAgICAgICAgICAgIDo6PSAgLiA7XG5cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEpTT05QYXJzZXIgZXh0ZW5kcyBDb21tb25QYXJzZXIge1xuICBzdGF0aWMgYm5mID0gYm5mO1xuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCB0b2tlbnMgPSBibmZMZXhlci50b2tlbnNGcm9tQk5GKGJuZiksXG4gICAgICAgICAgcnVsZXMgPSBibmZQYXJzZXIucnVsZXNGcm9tVG9rZW5zKHRva2VucyksXG4gICAgICAgICAganNvblBhcnNlciA9IEpTT05QYXJzZXIuZnJvbVJ1bGVzKHJ1bGVzKTtcblxuICAgIHJldHVybiBqc29uUGFyc2VyO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlcyhydWxlcykge1xuICAgIGNvbnN0IHJ1bGVNYXAgPSBydWxlTWFwRnJvbVJ1bGVzKHJ1bGVzKTtcblxuICAgIGxldCBzdGFydFJ1bGUgPSBzdGFydFJ1bGVGcm9tUnVsZXMocnVsZXMpO1xuXG4gICAgc3RhcnRSdWxlID0gZWxpbWluYXRlTGVmdFJlY3Vyc2lvbihzdGFydFJ1bGUsIHJ1bGVNYXApO1xuXG4gICAgY29uc3QganNvblBhcnNlciA9IG5ldyBKU09OUGFyc2VyKHN0YXJ0UnVsZSwgcnVsZU1hcCk7XG5cbiAgICByZXR1cm4ganNvblBhcnNlcjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImJuZkxleGVyIiwiZnJvbU5vdGhpbmciLCJibmZQYXJzZXIiLCJibmYiLCJKU09OUGFyc2VyIiwidG9rZW5zIiwidG9rZW5zRnJvbUJORiIsInJ1bGVzIiwicnVsZXNGcm9tVG9rZW5zIiwianNvblBhcnNlciIsImZyb21SdWxlcyIsInJ1bGVNYXAiLCJzdGFydFJ1bGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRWEsR0FBYyxDQUFkLFlBQWM7QUFDQSxHQUF5QixDQUF6QixzQkFBeUI7QUFDeEIsR0FBZSxDQUFmLGFBQWU7QUFFRixHQUFvQixDQUFwQixNQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekUsR0FBSyxDQUFDQSxRQUFRLEdBTlcsWUFBYyxVQU1iQyxXQUFXLElBQy9CQyxTQUFTLEdBTHlCLGFBQWUsV0FLM0JELFdBQVc7QUFFdkMsR0FBSyxDQUFDRSxHQUFHLEdBQUksQ0FtQmI7SUFFcUJDLFVBQVUsaUJBQWhCLFFBQVE7Y0FBRkEsVUFBVTs4QkFBVkEsVUFBVTthQUFWQSxVQUFVOzhCQUFWQSxVQUFVOzs7aUJBQVZBLFVBQVU7O1lBR3RCSCxHQUFXLEVBQVhBLENBQVc7bUJBQWxCLFFBQVEsQ0FBREEsV0FBVyxHQUFHLENBQUM7Z0JBQ3BCLEdBQUssQ0FBQ0ksTUFBTSxHQUFHTCxRQUFRLENBQUNNLGFBQWEsQ0FBQ0gsR0FBRyxHQUNuQ0ksS0FBSyxHQUFHTCxTQUFTLENBQUNNLGVBQWUsQ0FBQ0gsTUFBTSxHQUN4Q0ksVUFBVSxHQUFHTCxVQUFVLENBQUNNLFNBQVMsQ0FBQ0gsS0FBSztnQkFFN0MsTUFBTSxDQUFDRSxVQUFVO1lBQ25CLENBQUM7OztZQUVNQyxHQUFTLEVBQVRBLENBQVM7bUJBQWhCLFFBQVEsQ0FBREEsU0FBUyxDQUFDSCxLQUFLLEVBQUUsQ0FBQztnQkFDdkIsR0FBSyxDQUFDSSxPQUFPLE9BdENvQyxNQUFvQixtQkFzQ3BDSixLQUFLO2dCQUV0QyxHQUFHLENBQUNLLFNBQVMsT0F4Q29DLE1BQW9CLHFCQXdDbENMLEtBQUs7Z0JBRXhDSyxTQUFTLE9BN0MwQixzQkFBeUIseUJBNkN6QkEsU0FBUyxFQUFFRCxPQUFPO2dCQUVyRCxHQUFLLENBQUNGLFVBQVUsR0FBRyxHQUFHLENBQUNMLFVBQVUsQ0FBQ1EsU0FBUyxFQUFFRCxPQUFPO2dCQUVwRCxNQUFNLENBQUNGLFVBQVU7WUFDbkIsQ0FBQzs7O1dBckJrQkwsVUFBVTtFQTVCUyxhQUFlO2dCQTRCbENBLFVBQVUsRUFDdEJELENBQUcsTUFBR0EsR0FBRztrQkFER0MsVUFBVSJ9
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFlhcHBQYXJzZXIgZnJvbSBcIi4uL3BhcnNlci95YXBwXCI7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAganNvbiBlcnJvciogfCBlcnJvcisgO1xuXG5cbiAgICBqc29uICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIGFycmF5IHwgb2JqZWN0IDtcblxuXG4gICAgYXJyYXkgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIltcIiAoIGVsZW1lbnQgKCBcIixcIiBlbGVtZW50ICkqICk/IFwiXVwiIDtcblxuXG4gICAgb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIntcIiAoIFtzdHJpbmctbGl0ZXJhbF0gXCI6XCIgZWxlbWVudCAoIFwiLFwiIFtzdHJpbmctbGl0ZXJhbF0gXCI6XCIgZWxlbWVudCApKiApPyBcIn1cIiA7XG5cbiAgICBcbiAgICBlbGVtZW50ICAgICAgICAgICAgICAgICAgICA6Oj0gIGpzb24gfCAgW3N0cmluZy1saXRlcmFsXSB8IFtudW1iZXJdIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCIgfCBcIm51bGxcIiA7XG5cblxuICAgIGVycm9yICAgICAgICAgICAgICAgICAgICAgIDo6PSAgLiA7XG5cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEpTT05QYXJzZXIgZXh0ZW5kcyBZYXBwUGFyc2VyIHtcbiAgc3RhdGljIGJuZiA9IGJuZjtcblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7IHJldHVybiBZYXBwUGFyc2VyLmZyb21Ob3RoaW5nKEpTT05QYXJzZXIpOyB9XG5cbiAgc3RhdGljIGZyb21CTkYoYm5mKSB7IHJldHVybiBZYXBwUGFyc2VyLmZyb21CTkYoSlNPTlBhcnNlciwgYm5mKTsgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZXMocnVsZXMpIHsgcmV0dXJuIFlhcHBQYXJzZXIuZnJvbVJ1bGVzKEpTT05QYXJzZXIsIHJ1bGVzKTsgfVxufVxuIl0sIm5hbWVzIjpbImJuZiIsIkpTT05QYXJzZXIiLCJmcm9tTm90aGluZyIsImZyb21CTkYiLCJmcm9tUnVsZXMiLCJydWxlcyJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFVyxHQUFnQixDQUFoQixLQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2QyxHQUFLLENBQUNBLEdBQUcsR0FBSSxDQW1CYjtJQUVxQkMsVUFBVSxpQkFBaEIsUUFBUTtjQUFGQSxVQUFVOzhCQUFWQSxVQUFVO2FBQVZBLFVBQVU7OEJBQVZBLFVBQVU7OztpQkFBVkEsVUFBVTs7WUFHdEJDLEdBQVcsRUFBWEEsQ0FBVzttQkFBbEIsUUFBUSxDQUFEQSxXQUFXLEdBQUcsQ0FBQztnQkFBQyxNQUFNLENBMUJSLEtBQWdCLFNBMEJJQSxXQUFXLENBQUNELFVBQVU7WUFBRyxDQUFDOzs7WUFFNURFLEdBQU8sRUFBUEEsQ0FBTzttQkFBZCxRQUFRLENBQURBLE9BQU8sQ0FBQ0gsSUFBRyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxDQTVCUCxLQUFnQixTQTRCR0csT0FBTyxDQUFDRixVQUFVLEVBQUVELElBQUc7WUFBRyxDQUFDOzs7WUFFNURJLEdBQVMsRUFBVEEsQ0FBUzttQkFBaEIsUUFBUSxDQUFEQSxTQUFTLENBQUNDLEtBQUssRUFBRSxDQUFDO2dCQUFDLE1BQU0sQ0E5QlgsS0FBZ0IsU0E4Qk9ELFNBQVMsQ0FBQ0gsVUFBVSxFQUFFSSxLQUFLO1lBQUcsQ0FBQzs7O1dBUHhESixVQUFVO0VBdkJSLEtBQWdCO2dCQXVCbEJBLFVBQVUsRUFDdEJELENBQUcsTUFBR0EsR0FBRztrQkFER0MsVUFBVSJ9
@@ -3,10 +3,7 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.default = void 0;
6
- var _occamLexers = require("occam-lexers");
7
- var _occamGrammarUtilities = require("occam-grammar-utilities");
8
- var _occamParsers = require("occam-parsers");
9
- var _rules = require("../utilities/rules");
6
+ var _yapp = _interopRequireDefault(require("./yapp"));
10
7
  function _assertThisInitialized(self) {
11
8
  if (self === void 0) {
12
9
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -64,6 +61,11 @@ function _inherits(subClass, superClass) {
64
61
  });
65
62
  if (superClass) _setPrototypeOf(subClass, superClass);
66
63
  }
64
+ function _interopRequireDefault(obj) {
65
+ return obj && obj.__esModule ? obj : {
66
+ default: obj
67
+ };
68
+ }
67
69
  function _possibleConstructorReturn(self, call) {
68
70
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
69
71
  return call;
@@ -104,10 +106,9 @@ function _createSuper(Derived) {
104
106
  return _possibleConstructorReturn(this, result);
105
107
  };
106
108
  }
107
- var bnfLexer = _occamLexers.BNFLexer.fromNothing(), bnfParser = _occamParsers.BNFParser.fromNothing();
108
109
  var bnf = "\n\n document ::= .+ ;\n\n";
109
- var PlainTextParser = /*#__PURE__*/ function(CommonParser) {
110
- _inherits(PlainTextParser, CommonParser);
110
+ var PlainTextParser = /*#__PURE__*/ function(YappParser) {
111
+ _inherits(PlainTextParser, YappParser);
111
112
  var _super = _createSuper(PlainTextParser);
112
113
  function PlainTextParser() {
113
114
  _classCallCheck(this, PlainTextParser);
@@ -117,24 +118,25 @@ var PlainTextParser = /*#__PURE__*/ function(CommonParser) {
117
118
  {
118
119
  key: "fromNothing",
119
120
  value: function fromNothing() {
120
- var tokens = bnfLexer.tokensFromBNF(bnf), rules = bnfParser.rulesFromTokens(tokens), plainTextParser = PlainTextParser.fromRules(rules);
121
- return plainTextParser;
121
+ return _yapp.default.fromNothing(PlainTextParser);
122
+ }
123
+ },
124
+ {
125
+ key: "fromBNF",
126
+ value: function fromBNF(bnf1) {
127
+ return _yapp.default.fromBNF(PlainTextParser, bnf1);
122
128
  }
123
129
  },
124
130
  {
125
131
  key: "fromRules",
126
132
  value: function fromRules(rules) {
127
- var ruleMap = (0, _rules).ruleMapFromRules(rules);
128
- var startRule = (0, _rules).startRuleFromRules(rules);
129
- startRule = (0, _occamGrammarUtilities).eliminateLeftRecursion(startRule, ruleMap);
130
- var plainTextParser = new PlainTextParser(startRule, ruleMap);
131
- return plainTextParser;
133
+ return _yapp.default.fromRules(PlainTextParser, rules);
132
134
  }
133
135
  }
134
136
  ]);
135
137
  return PlainTextParser;
136
- }(_occamParsers.CommonParser);
138
+ }(_yapp.default);
137
139
  _defineProperty(PlainTextParser, "bnf", bnf);
138
140
  exports.default = PlainTextParser;
139
141
 
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvcGxhaW5UZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBCTkZMZXhlciB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcbmltcG9ydCB7IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24gfSBmcm9tIFwib2NjYW0tZ3JhbW1hci11dGlsaXRpZXNcIjtcbmltcG9ydCB7IEJORlBhcnNlciwgQ29tbW9uUGFyc2VyIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcblxuaW1wb3J0IHsgcnVsZU1hcEZyb21SdWxlcywgc3RhcnRSdWxlRnJvbVJ1bGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ydWxlc1wiO1xuXG5jb25zdCBibmZMZXhlciA9IEJORkxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBibmZQYXJzZXIgPSBCTkZQYXJzZXIuZnJvbU5vdGhpbmcoKTtcblxuY29uc3QgYm5mID0gYFxuXG4gICAgZG9jdW1lbnQgICAgICAgICAgICAgICAgICAgOjo9ICAuKyA7XG5cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsYWluVGV4dFBhcnNlciBleHRlbmRzIENvbW1vblBhcnNlciB7XG4gIHN0YXRpYyBibmYgPSBibmY7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IHRva2VucyA9IGJuZkxleGVyLnRva2Vuc0Zyb21CTkYoYm5mKSxcbiAgICAgICAgICBydWxlcyA9IGJuZlBhcnNlci5ydWxlc0Zyb21Ub2tlbnModG9rZW5zKSxcbiAgICAgICAgICBwbGFpblRleHRQYXJzZXIgPSBQbGFpblRleHRQYXJzZXIuZnJvbVJ1bGVzKHJ1bGVzKTtcblxuICAgIHJldHVybiBwbGFpblRleHRQYXJzZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVzKHJ1bGVzKSB7XG4gICAgY29uc3QgcnVsZU1hcCA9IHJ1bGVNYXBGcm9tUnVsZXMocnVsZXMpO1xuXG4gICAgbGV0IHN0YXJ0UnVsZSA9IHN0YXJ0UnVsZUZyb21SdWxlcyhydWxlcyk7XG5cbiAgICBzdGFydFJ1bGUgPSBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uKHN0YXJ0UnVsZSwgcnVsZU1hcCk7XG5cbiAgICBjb25zdCBwbGFpblRleHRQYXJzZXIgPSBuZXcgUGxhaW5UZXh0UGFyc2VyKHN0YXJ0UnVsZSwgcnVsZU1hcCk7XG5cbiAgICByZXR1cm4gcGxhaW5UZXh0UGFyc2VyO1xuICB9XG59XG4iXSwibmFtZXMiOlsiYm5mTGV4ZXIiLCJmcm9tTm90aGluZyIsImJuZlBhcnNlciIsImJuZiIsIlBsYWluVGV4dFBhcnNlciIsInRva2VucyIsInRva2Vuc0Zyb21CTkYiLCJydWxlcyIsInJ1bGVzRnJvbVRva2VucyIsInBsYWluVGV4dFBhcnNlciIsImZyb21SdWxlcyIsInJ1bGVNYXAiLCJzdGFydFJ1bGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRWEsR0FBYyxDQUFkLFlBQWM7QUFDQSxHQUF5QixDQUF6QixzQkFBeUI7QUFDeEIsR0FBZSxDQUFmLGFBQWU7QUFFRixHQUFvQixDQUFwQixNQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekUsR0FBSyxDQUFDQSxRQUFRLEdBTlcsWUFBYyxVQU1iQyxXQUFXLElBQy9CQyxTQUFTLEdBTHlCLGFBQWUsV0FLM0JELFdBQVc7QUFFdkMsR0FBSyxDQUFDRSxHQUFHLEdBQUksQ0FJYjtJQUVxQkMsZUFBZSxpQkFBckIsUUFBUTtjQUFGQSxlQUFlOzhCQUFmQSxlQUFlO2FBQWZBLGVBQWU7OEJBQWZBLGVBQWU7OztpQkFBZkEsZUFBZTs7WUFHM0JILEdBQVcsRUFBWEEsQ0FBVzttQkFBbEIsUUFBUSxDQUFEQSxXQUFXLEdBQUcsQ0FBQztnQkFDcEIsR0FBSyxDQUFDSSxNQUFNLEdBQUdMLFFBQVEsQ0FBQ00sYUFBYSxDQUFDSCxHQUFHLEdBQ25DSSxLQUFLLEdBQUdMLFNBQVMsQ0FBQ00sZUFBZSxDQUFDSCxNQUFNLEdBQ3hDSSxlQUFlLEdBQUdMLGVBQWUsQ0FBQ00sU0FBUyxDQUFDSCxLQUFLO2dCQUV2RCxNQUFNLENBQUNFLGVBQWU7WUFDeEIsQ0FBQzs7O1lBRU1DLEdBQVMsRUFBVEEsQ0FBUzttQkFBaEIsUUFBUSxDQUFEQSxTQUFTLENBQUNILEtBQUssRUFBRSxDQUFDO2dCQUN2QixHQUFLLENBQUNJLE9BQU8sT0F2Qm9DLE1BQW9CLG1CQXVCcENKLEtBQUs7Z0JBRXRDLEdBQUcsQ0FBQ0ssU0FBUyxPQXpCb0MsTUFBb0IscUJBeUJsQ0wsS0FBSztnQkFFeENLLFNBQVMsT0E5QjBCLHNCQUF5Qix5QkE4QnpCQSxTQUFTLEVBQUVELE9BQU87Z0JBRXJELEdBQUssQ0FBQ0YsZUFBZSxHQUFHLEdBQUcsQ0FBQ0wsZUFBZSxDQUFDUSxTQUFTLEVBQUVELE9BQU87Z0JBRTlELE1BQU0sQ0FBQ0YsZUFBZTtZQUN4QixDQUFDOzs7V0FyQmtCTCxlQUFlO0VBYkksYUFBZTtnQkFhbENBLGVBQWUsRUFDM0JELENBQUcsTUFBR0EsR0FBRztrQkFER0MsZUFBZSJ9
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvcGxhaW5UZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgWWFwcFBhcnNlciBmcm9tIFwiLi95YXBwXCI7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAgLisgO1xuXG5gO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQbGFpblRleHRQYXJzZXIgZXh0ZW5kcyBZYXBwUGFyc2VyIHtcbiAgc3RhdGljIGJuZiA9IGJuZjtcblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7IHJldHVybiBZYXBwUGFyc2VyLmZyb21Ob3RoaW5nKFBsYWluVGV4dFBhcnNlcik7IH1cblxuICBzdGF0aWMgZnJvbUJORihibmYpIHsgcmV0dXJuIFlhcHBQYXJzZXIuZnJvbUJORihQbGFpblRleHRQYXJzZXIsIGJuZik7IH1cblxuICBzdGF0aWMgZnJvbVJ1bGVzKHJ1bGVzKSB7IHJldHVybiBZYXBwUGFyc2VyLmZyb21SdWxlcyhQbGFpblRleHRQYXJzZXIsIHJ1bGVzKTsgfVxufVxuIl0sIm5hbWVzIjpbImJuZiIsIlBsYWluVGV4dFBhcnNlciIsImZyb21Ob3RoaW5nIiwiZnJvbUJORiIsImZyb21SdWxlcyIsInJ1bGVzIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVXLEdBQVEsQ0FBUixLQUFROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9CLEdBQUssQ0FBQ0EsR0FBRyxHQUFJLENBSWI7SUFFcUJDLGVBQWUsaUJBQXJCLFFBQVE7Y0FBRkEsZUFBZTs4QkFBZkEsZUFBZTthQUFmQSxlQUFlOzhCQUFmQSxlQUFlOzs7aUJBQWZBLGVBQWU7O1lBRzNCQyxHQUFXLEVBQVhBLENBQVc7bUJBQWxCLFFBQVEsQ0FBREEsV0FBVyxHQUFHLENBQUM7Z0JBQUMsTUFBTSxDQVhSLEtBQVEsU0FXWUEsV0FBVyxDQUFDRCxlQUFlO1lBQUcsQ0FBQzs7O1lBRWpFRSxHQUFPLEVBQVBBLENBQU87bUJBQWQsUUFBUSxDQUFEQSxPQUFPLENBQUNILElBQUcsRUFBRSxDQUFDO2dCQUFDLE1BQU0sQ0FiUCxLQUFRLFNBYVdHLE9BQU8sQ0FBQ0YsZUFBZSxFQUFFRCxJQUFHO1lBQUcsQ0FBQzs7O1lBRWpFSSxHQUFTLEVBQVRBLENBQVM7bUJBQWhCLFFBQVEsQ0FBREEsU0FBUyxDQUFDQyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxNQUFNLENBZlgsS0FBUSxTQWVlRCxTQUFTLENBQUNILGVBQWUsRUFBRUksS0FBSztZQUFHLENBQUM7OztXQVA3REosZUFBZTtFQVJiLEtBQVE7Z0JBUVZBLGVBQWUsRUFDM0JELENBQUcsTUFBR0EsR0FBRztrQkFER0MsZUFBZSJ9
package/lib/parser/xml.js CHANGED
@@ -3,10 +3,7 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.default = void 0;
6
- var _occamLexers = require("occam-lexers");
7
- var _occamGrammarUtilities = require("occam-grammar-utilities");
8
- var _occamParsers = require("occam-parsers");
9
- var _rules = require("../utilities/rules");
6
+ var _yapp = _interopRequireDefault(require("./yapp"));
10
7
  function _assertThisInitialized(self) {
11
8
  if (self === void 0) {
12
9
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -64,6 +61,11 @@ function _inherits(subClass, superClass) {
64
61
  });
65
62
  if (superClass) _setPrototypeOf(subClass, superClass);
66
63
  }
64
+ function _interopRequireDefault(obj) {
65
+ return obj && obj.__esModule ? obj : {
66
+ default: obj
67
+ };
68
+ }
67
69
  function _possibleConstructorReturn(self, call) {
68
70
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
69
71
  return call;
@@ -104,10 +106,9 @@ function _createSuper(Derived) {
104
106
  return _possibleConstructorReturn(this, result);
105
107
  };
106
108
  }
107
- var bnfLexer = _occamLexers.BNFLexer.fromNothing(), bnfParser = _occamParsers.BNFParser.fromNothing();
108
109
  var bnf = "\n\n document ::= xml error* | error+ ;\n\n\n xml ::= ( preamble element* ) | element+ ;\n\n\n preamble ::= \"<?\"<NO_WHITESPACE>\"xml\" attribute* \"?>\" ;\n\n\n element ::= comment | completeTag | startTag ( element | text )* endTag ;\n\n\n comment ::= \"<!--\" text* \"-->\" ;\n\n\n completeTag ::= \"<\"<NO_WHITESPACE>name attribute* \"/>\" ;\n\n\n startTag ::= \"<\"<NO_WHITESPACE>name attribute* \">\" ;\n\n\n endTag ::= \"</\"<NO_WHITESPACE>name \">\" ;\n \n\n attribute ::= [identifier]<NO_WHITESPACE>\"=\"<NO_WHITESPACE>[string-literal] ;\n\n\n text ::= ( [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;\n \n \n name ::= [identifier] ;\n\n\n error ::= . ;\n\n";
109
- var XMLParser = /*#__PURE__*/ function(CommonParser) {
110
- _inherits(XMLParser, CommonParser);
110
+ var XMLParser = /*#__PURE__*/ function(YappParser) {
111
+ _inherits(XMLParser, YappParser);
111
112
  var _super = _createSuper(XMLParser);
112
113
  function XMLParser() {
113
114
  _classCallCheck(this, XMLParser);
@@ -117,24 +118,25 @@ var XMLParser = /*#__PURE__*/ function(CommonParser) {
117
118
  {
118
119
  key: "fromNothing",
119
120
  value: function fromNothing() {
120
- var tokens = bnfLexer.tokensFromBNF(bnf), rules = bnfParser.rulesFromTokens(tokens), xmlParser = XMLParser.fromRules(rules);
121
- return xmlParser;
121
+ return _yapp.default.fromNothing(XMLParser);
122
+ }
123
+ },
124
+ {
125
+ key: "fromBNF",
126
+ value: function fromBNF(bnf1) {
127
+ return _yapp.default.fromBNF(XMLParser, bnf1);
122
128
  }
123
129
  },
124
130
  {
125
131
  key: "fromRules",
126
132
  value: function fromRules(rules) {
127
- var ruleMap = (0, _rules).ruleMapFromRules(rules);
128
- var startRule = (0, _rules).startRuleFromRules(rules);
129
- startRule = (0, _occamGrammarUtilities).eliminateLeftRecursion(startRule, ruleMap);
130
- var xmlParser = new XMLParser(startRule, ruleMap);
131
- return xmlParser;
133
+ return _yapp.default.fromRules(XMLParser, rules);
132
134
  }
133
135
  }
134
136
  ]);
135
137
  return XMLParser;
136
- }(_occamParsers.CommonParser);
138
+ }(_yapp.default);
137
139
  _defineProperty(XMLParser, "bnf", bnf);
138
140
  exports.default = XMLParser;
139
141
 
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIveG1sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBCTkZMZXhlciB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcbmltcG9ydCB7IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24gfSBmcm9tIFwib2NjYW0tZ3JhbW1hci11dGlsaXRpZXNcIjtcbmltcG9ydCB7IEJORlBhcnNlciwgQ29tbW9uUGFyc2VyIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcblxuaW1wb3J0IHsgcnVsZU1hcEZyb21SdWxlcywgc3RhcnRSdWxlRnJvbVJ1bGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ydWxlc1wiO1xuXG5jb25zdCBibmZMZXhlciA9IEJORkxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBibmZQYXJzZXIgPSBCTkZQYXJzZXIuZnJvbU5vdGhpbmcoKTtcblxuY29uc3QgYm5mID0gYFxuXG4gICAgZG9jdW1lbnQgICAgICAgICAgICAgICAgICAgOjo9ICB4bWwgZXJyb3IqIHwgZXJyb3IrIDtcblxuXG4gICAgeG1sICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIHByZWFtYmxlIGVsZW1lbnQqICkgfCBlbGVtZW50KyA7XG5cblxuICAgIHByZWFtYmxlICAgICAgICAgICAgICAgICAgIDo6PSAgXCI8P1wiPE5PX1dISVRFU1BBQ0U+XCJ4bWxcIiBhdHRyaWJ1dGUqIFwiPz5cIiA7XG5cblxuICAgIGVsZW1lbnQgICAgICAgICAgICAgICAgICAgIDo6PSAgY29tbWVudCB8IGNvbXBsZXRlVGFnIHwgc3RhcnRUYWcgKCBlbGVtZW50IHwgdGV4dCApKiBlbmRUYWcgO1xuXG5cbiAgICBjb21tZW50ICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiPCEtLVwiIHRleHQqIFwiLS0+XCIgO1xuXG5cbiAgICBjb21wbGV0ZVRhZyAgICAgICAgICAgICAgICA6Oj0gIFwiPFwiPE5PX1dISVRFU1BBQ0U+bmFtZSBhdHRyaWJ1dGUqIFwiLz5cIiA7XG5cblxuICAgIHN0YXJ0VGFnICAgICAgICAgICAgICAgICAgIDo6PSAgXCI8XCI8Tk9fV0hJVEVTUEFDRT5uYW1lIGF0dHJpYnV0ZSogXCI+XCIgO1xuXG5cbiAgICBlbmRUYWcgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiPC9cIjxOT19XSElURVNQQUNFPm5hbWUgXCI+XCIgO1xuICAgIFxuXG4gICAgYXR0cmlidXRlICAgICAgICAgICAgICAgICAgOjo9ICBbaWRlbnRpZmllcl08Tk9fV0hJVEVTUEFDRT5cIj1cIjxOT19XSElURVNQQUNFPltzdHJpbmctbGl0ZXJhbF0gO1xuXG5cbiAgICB0ZXh0ICAgICAgICAgICAgICAgICAgICAgICA6Oj0gICggW2lkZW50aWZpZXJdIHwgW3N0cmluZy1saXRlcmFsXXwgW2Jyb2tlbi1zdHJpbmctbGl0ZXJhbF0gfCBbdW5hc3NpZ25lZF0gKSsgO1xuICAgIFxuICAgIFxuICAgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDtcblxuXG4gICAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgOjo9ICAuIDtcblxuYDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgWE1MUGFyc2VyIGV4dGVuZHMgQ29tbW9uUGFyc2VyIHtcbiAgc3RhdGljIGJuZiA9IGJuZjtcblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgdG9rZW5zID0gYm5mTGV4ZXIudG9rZW5zRnJvbUJORihibmYpLFxuICAgICAgICAgIHJ1bGVzID0gYm5mUGFyc2VyLnJ1bGVzRnJvbVRva2Vucyh0b2tlbnMpLFxuICAgICAgICAgIHhtbFBhcnNlciA9IFhNTFBhcnNlci5mcm9tUnVsZXMocnVsZXMpO1xuXG4gICAgcmV0dXJuIHhtbFBhcnNlcjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZXMocnVsZXMpIHtcbiAgICBjb25zdCBydWxlTWFwID0gcnVsZU1hcEZyb21SdWxlcyhydWxlcyk7XG5cbiAgICBsZXQgc3RhcnRSdWxlID0gc3RhcnRSdWxlRnJvbVJ1bGVzKHJ1bGVzKTtcblxuICAgIHN0YXJ0UnVsZSA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24oc3RhcnRSdWxlLCBydWxlTWFwKTtcblxuICAgIGNvbnN0IHhtbFBhcnNlciA9IG5ldyBYTUxQYXJzZXIoc3RhcnRSdWxlLCBydWxlTWFwKTtcblxuICAgIHJldHVybiB4bWxQYXJzZXI7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJibmZMZXhlciIsImZyb21Ob3RoaW5nIiwiYm5mUGFyc2VyIiwiYm5mIiwiWE1MUGFyc2VyIiwidG9rZW5zIiwidG9rZW5zRnJvbUJORiIsInJ1bGVzIiwicnVsZXNGcm9tVG9rZW5zIiwieG1sUGFyc2VyIiwiZnJvbVJ1bGVzIiwicnVsZU1hcCIsInN0YXJ0UnVsZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFYSxHQUFjLENBQWQsWUFBYztBQUNBLEdBQXlCLENBQXpCLHNCQUF5QjtBQUN4QixHQUFlLENBQWYsYUFBZTtBQUVGLEdBQW9CLENBQXBCLE1BQW9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6RSxHQUFLLENBQUNBLFFBQVEsR0FOVyxZQUFjLFVBTWJDLFdBQVcsSUFDL0JDLFNBQVMsR0FMeUIsYUFBZSxXQUszQkQsV0FBVztBQUV2QyxHQUFLLENBQUNFLEdBQUcsR0FBSSxDQXFDYjtJQUVxQkMsU0FBUyxpQkFBZixRQUFRO2NBQUZBLFNBQVM7OEJBQVRBLFNBQVM7YUFBVEEsU0FBUzs4QkFBVEEsU0FBUzs7O2lCQUFUQSxTQUFTOztZQUdyQkgsR0FBVyxFQUFYQSxDQUFXO21CQUFsQixRQUFRLENBQURBLFdBQVcsR0FBRyxDQUFDO2dCQUNwQixHQUFLLENBQUNJLE1BQU0sR0FBR0wsUUFBUSxDQUFDTSxhQUFhLENBQUNILEdBQUcsR0FDbkNJLEtBQUssR0FBR0wsU0FBUyxDQUFDTSxlQUFlLENBQUNILE1BQU0sR0FDeENJLFNBQVMsR0FBR0wsU0FBUyxDQUFDTSxTQUFTLENBQUNILEtBQUs7Z0JBRTNDLE1BQU0sQ0FBQ0UsU0FBUztZQUNsQixDQUFDOzs7WUFFTUMsR0FBUyxFQUFUQSxDQUFTO21CQUFoQixRQUFRLENBQURBLFNBQVMsQ0FBQ0gsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLEdBQUssQ0FBQ0ksT0FBTyxPQXhEb0MsTUFBb0IsbUJBd0RwQ0osS0FBSztnQkFFdEMsR0FBRyxDQUFDSyxTQUFTLE9BMURvQyxNQUFvQixxQkEwRGxDTCxLQUFLO2dCQUV4Q0ssU0FBUyxPQS9EMEIsc0JBQXlCLHlCQStEekJBLFNBQVMsRUFBRUQsT0FBTztnQkFFckQsR0FBSyxDQUFDRixTQUFTLEdBQUcsR0FBRyxDQUFDTCxTQUFTLENBQUNRLFNBQVMsRUFBRUQsT0FBTztnQkFFbEQsTUFBTSxDQUFDRixTQUFTO1lBQ2xCLENBQUM7OztXQXJCa0JMLFNBQVM7RUE5Q1UsYUFBZTtnQkE4Q2xDQSxTQUFTLEVBQ3JCRCxDQUFHLE1BQUdBLEdBQUc7a0JBREdDLFNBQVMifQ==
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIveG1sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgWWFwcFBhcnNlciBmcm9tIFwiLi95YXBwXCI7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAgeG1sIGVycm9yKiB8IGVycm9yKyA7XG5cblxuICAgIHhtbCAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBwcmVhbWJsZSBlbGVtZW50KiApIHwgZWxlbWVudCsgO1xuXG5cbiAgICBwcmVhbWJsZSAgICAgICAgICAgICAgICAgICA6Oj0gIFwiPD9cIjxOT19XSElURVNQQUNFPlwieG1sXCIgYXR0cmlidXRlKiBcIj8+XCIgO1xuXG5cbiAgICBlbGVtZW50ICAgICAgICAgICAgICAgICAgICA6Oj0gIGNvbW1lbnQgfCBjb21wbGV0ZVRhZyB8IHN0YXJ0VGFnICggZWxlbWVudCB8IHRleHQgKSogZW5kVGFnIDtcblxuXG4gICAgY29tbWVudCAgICAgICAgICAgICAgICAgICAgOjo9ICBcIjwhLS1cIiB0ZXh0KiBcIi0tPlwiIDtcblxuXG4gICAgY29tcGxldGVUYWcgICAgICAgICAgICAgICAgOjo9ICBcIjxcIjxOT19XSElURVNQQUNFPm5hbWUgYXR0cmlidXRlKiBcIi8+XCIgO1xuXG5cbiAgICBzdGFydFRhZyAgICAgICAgICAgICAgICAgICA6Oj0gIFwiPFwiPE5PX1dISVRFU1BBQ0U+bmFtZSBhdHRyaWJ1dGUqIFwiPlwiIDtcblxuXG4gICAgZW5kVGFnICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIjwvXCI8Tk9fV0hJVEVTUEFDRT5uYW1lIFwiPlwiIDtcbiAgICBcblxuICAgIGF0dHJpYnV0ZSAgICAgICAgICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdPE5PX1dISVRFU1BBQ0U+XCI9XCI8Tk9fV0hJVEVTUEFDRT5bc3RyaW5nLWxpdGVyYWxdIDtcblxuXG4gICAgdGV4dCAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIFtpZGVudGlmaWVyXSB8IFtzdHJpbmctbGl0ZXJhbF18IFticm9rZW4tc3RyaW5nLWxpdGVyYWxdIHwgW3VuYXNzaWduZWRdICkrIDtcbiAgICBcbiAgICBcbiAgICBuYW1lICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFtpZGVudGlmaWVyXSA7XG5cblxuICAgIGVycm9yICAgICAgICAgICAgICAgICAgICAgIDo6PSAgLiA7XG5cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFhNTFBhcnNlciBleHRlbmRzIFlhcHBQYXJzZXIge1xuICBzdGF0aWMgYm5mID0gYm5mO1xuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHsgcmV0dXJuIFlhcHBQYXJzZXIuZnJvbU5vdGhpbmcoWE1MUGFyc2VyKTsgfVxuXG4gIHN0YXRpYyBmcm9tQk5GKGJuZikgeyByZXR1cm4gWWFwcFBhcnNlci5mcm9tQk5GKFhNTFBhcnNlciwgYm5mKTsgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZXMocnVsZXMpIHsgcmV0dXJuIFlhcHBQYXJzZXIuZnJvbVJ1bGVzKFhNTFBhcnNlciwgcnVsZXMpOyB9XG59XG4iXSwibmFtZXMiOlsiYm5mIiwiWE1MUGFyc2VyIiwiZnJvbU5vdGhpbmciLCJmcm9tQk5GIiwiZnJvbVJ1bGVzIiwicnVsZXMiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVcsR0FBUSxDQUFSLEtBQVE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0IsR0FBSyxDQUFDQSxHQUFHLEdBQUksQ0FxQ2I7SUFFcUJDLFNBQVMsaUJBQWYsUUFBUTtjQUFGQSxTQUFTOzhCQUFUQSxTQUFTO2FBQVRBLFNBQVM7OEJBQVRBLFNBQVM7OztpQkFBVEEsU0FBUzs7WUFHckJDLEdBQVcsRUFBWEEsQ0FBVzttQkFBbEIsUUFBUSxDQUFEQSxXQUFXLEdBQUcsQ0FBQztnQkFBQyxNQUFNLENBNUNSLEtBQVEsU0E0Q1lBLFdBQVcsQ0FBQ0QsU0FBUztZQUFHLENBQUM7OztZQUUzREUsR0FBTyxFQUFQQSxDQUFPO21CQUFkLFFBQVEsQ0FBREEsT0FBTyxDQUFDSCxJQUFHLEVBQUUsQ0FBQztnQkFBQyxNQUFNLENBOUNQLEtBQVEsU0E4Q1dHLE9BQU8sQ0FBQ0YsU0FBUyxFQUFFRCxJQUFHO1lBQUcsQ0FBQzs7O1lBRTNESSxHQUFTLEVBQVRBLENBQVM7bUJBQWhCLFFBQVEsQ0FBREEsU0FBUyxDQUFDQyxLQUFLLEVBQUUsQ0FBQztnQkFBQyxNQUFNLENBaERYLEtBQVEsU0FnRGVELFNBQVMsQ0FBQ0gsU0FBUyxFQUFFSSxLQUFLO1lBQUcsQ0FBQzs7O1dBUHZESixTQUFTO0VBekNQLEtBQVE7Z0JBeUNWQSxTQUFTLEVBQ3JCRCxDQUFHLE1BQUdBLEdBQUc7a0JBREdDLFNBQVMifQ==