occam-custom-grammars 5.0.1227 → 5.0.1228

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 (36) hide show
  1. package/example.js +654 -467
  2. package/lib/constants.js +9 -1
  3. package/lib/customGrammar/combined.js +15 -17
  4. package/lib/customGrammar/default.js +9 -9
  5. package/lib/customGrammar.js +55 -47
  6. package/lib/example/customGrammar/userDefined1.js +4 -4
  7. package/lib/example/customGrammar/userDefined2.js +4 -4
  8. package/lib/example/grammarNames.js +3 -3
  9. package/lib/example/select/{patternName.js → vocabularyName.js} +23 -23
  10. package/lib/example/{input/pattern.js → textarea/vocabulary.js} +23 -23
  11. package/lib/example/view.js +11 -11
  12. package/lib/index.js +5 -5
  13. package/lib/utilities/bnf.js +18 -0
  14. package/lib/utilities/query.js +36 -0
  15. package/lib/utilities/vocabulary.js +69 -0
  16. package/lib/vocabularyNames.js +29 -0
  17. package/package.json +4 -3
  18. package/src/constants.js +2 -0
  19. package/src/customGrammar/combined.js +18 -22
  20. package/src/customGrammar/default.js +5 -4
  21. package/src/customGrammar.js +48 -41
  22. package/src/example/customGrammar/userDefined1.js +6 -6
  23. package/src/example/customGrammar/userDefined2.js +6 -6
  24. package/src/example/grammarNames.js +1 -1
  25. package/src/example/select/vocabularyName.js +52 -0
  26. package/src/example/textarea/vocabulary.js +33 -0
  27. package/src/example/view.js +14 -14
  28. package/src/index.js +1 -1
  29. package/src/utilities/bnf.js +12 -0
  30. package/src/utilities/query.js +25 -0
  31. package/src/utilities/vocabulary.js +91 -0
  32. package/src/vocabularyNames.js +9 -0
  33. package/lib/patternNames.js +0 -29
  34. package/src/example/input/pattern.js +0 -33
  35. package/src/example/select/patternName.js +0 -52
  36. package/src/patternNames.js +0 -9
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, "default", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return PatternInput;
8
+ return VocabularyTextarea;
9
9
  }
10
10
  });
11
- var _input = /*#__PURE__*/ _interop_require_default(require("../input"));
11
+ var _textarea = /*#__PURE__*/ _interop_require_default(require("../textarea"));
12
12
  function _assert_this_initialized(self) {
13
13
  if (self === void 0) {
14
14
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -100,43 +100,43 @@ function _is_native_reflect_construct() {
100
100
  return !!result;
101
101
  })();
102
102
  }
103
- var PatternInput = /*#__PURE__*/ function(Input) {
104
- _inherits(PatternInput, Input);
105
- function PatternInput() {
106
- _class_call_check(this, PatternInput);
107
- return _call_super(this, PatternInput, arguments);
103
+ var VocabularyTextarea = /*#__PURE__*/ function(Textarea) {
104
+ _inherits(VocabularyTextarea, Textarea);
105
+ function VocabularyTextarea() {
106
+ _class_call_check(this, VocabularyTextarea);
107
+ return _call_super(this, VocabularyTextarea, arguments);
108
108
  }
109
- _create_class(PatternInput, [
109
+ _create_class(VocabularyTextarea, [
110
110
  {
111
- key: "getPattern",
112
- value: function getPattern() {
113
- var value = this.getValue(), pattern = value; ///
114
- return pattern;
111
+ key: "getVocabulary",
112
+ value: function getVocabulary() {
113
+ var value = this.getValue(), vocabulary = value; ///
114
+ return vocabulary;
115
115
  }
116
116
  },
117
117
  {
118
- key: "setPattern",
119
- value: function setPattern(pattern) {
120
- var value = pattern; ///
118
+ key: "setVocabulary",
119
+ value: function setVocabulary(vocabulary) {
120
+ var value = vocabulary; ///
121
121
  this.setValue(value);
122
122
  }
123
123
  },
124
124
  {
125
125
  key: "parentContext",
126
126
  value: function parentContext() {
127
- var getPattern = this.getPattern.bind(this), setPattern = this.setPattern.bind(this);
127
+ var getVocabulary = this.getVocabulary.bind(this), setVocabulary = this.setVocabulary.bind(this);
128
128
  return {
129
- getPattern: getPattern,
130
- setPattern: setPattern
129
+ getVocabulary: getVocabulary,
130
+ setVocabulary: setVocabulary
131
131
  };
132
132
  }
133
133
  }
134
134
  ]);
135
- return PatternInput;
136
- }(_input.default);
137
- _define_property(PatternInput, "defaultProperties", {
138
- className: "pattern",
135
+ return VocabularyTextarea;
136
+ }(_textarea.default);
137
+ _define_property(VocabularyTextarea, "defaultProperties", {
138
+ className: "vocabulary",
139
139
  spellCheck: "false"
140
140
  });
141
141
 
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2lucHV0L3BhdHRlcm4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBJbnB1dCBmcm9tIFwiLi4vaW5wdXRcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGF0dGVybklucHV0IGV4dGVuZHMgSW5wdXQge1xuICBnZXRQYXR0ZXJuKCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHBhdHRlcm4gPSB2YWx1ZTsgLy8vXG5cbiAgICByZXR1cm4gcGF0dGVybjtcbiAgfVxuXG4gIHNldFBhdHRlcm4ocGF0dGVybikge1xuICAgIGNvbnN0IHZhbHVlID0gcGF0dGVybjsgLy8vXG5cbiAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgZ2V0UGF0dGVybiA9IHRoaXMuZ2V0UGF0dGVybi5iaW5kKHRoaXMpLFxuICAgICAgICAgIHNldFBhdHRlcm4gPSB0aGlzLnNldFBhdHRlcm4uYmluZCh0aGlzKTtcblxuICAgIHJldHVybiAoe1xuICAgICAgZ2V0UGF0dGVybixcbiAgICAgIHNldFBhdHRlcm5cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwicGF0dGVyblwiLFxuICAgIHNwZWxsQ2hlY2s6IFwiZmFsc2VcIlxuICB9O1xufVxuIl0sIm5hbWVzIjpbIlBhdHRlcm5JbnB1dCIsImdldFBhdHRlcm4iLCJ2YWx1ZSIsImdldFZhbHVlIiwicGF0dGVybiIsInNldFBhdHRlcm4iLCJzZXRWYWx1ZSIsInBhcmVudENvbnRleHQiLCJiaW5kIiwiSW5wdXQiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsInNwZWxsQ2hlY2siXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7OzREQUZIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILElBQUEsQUFBTUEsNkJBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxRQUFRLElBQUksQ0FBQ0MsUUFBUSxJQUNyQkMsVUFBVUYsT0FBTyxHQUFHO2dCQUUxQixPQUFPRTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdELE9BQU87Z0JBQ2hCLElBQU1GLFFBQVFFLFNBQVMsR0FBRztnQkFFMUIsSUFBSSxDQUFDRSxRQUFRLENBQUNKO1lBQ2hCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1OLGFBQWEsSUFBSSxDQUFDQSxVQUFVLENBQUNPLElBQUksQ0FBQyxJQUFJLEdBQ3RDSCxhQUFhLElBQUksQ0FBQ0EsVUFBVSxDQUFDRyxJQUFJLENBQUMsSUFBSTtnQkFFNUMsT0FBUTtvQkFDTlAsWUFBQUE7b0JBQ0FJLFlBQUFBO2dCQUNGO1lBQ0Y7OztXQXRCbUJMO0VBQXFCUyxjQUFLO0FBd0I3QyxpQkF4Qm1CVCxjQXdCWlUscUJBQW9CO0lBQ3pCQyxXQUFXO0lBQ1hDLFlBQVk7QUFDZCJ9
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3RleHRhcmVhL3ZvY2FidWxhcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXh0YXJlYSBmcm9tIFwiLi4vdGV4dGFyZWFcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVm9jYWJ1bGFyeVRleHRhcmVhIGV4dGVuZHMgVGV4dGFyZWEge1xuICBnZXRWb2NhYnVsYXJ5KCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHZvY2FidWxhcnkgPSB2YWx1ZTsgLy8vXG5cbiAgICByZXR1cm4gdm9jYWJ1bGFyeTtcbiAgfVxuXG4gIHNldFZvY2FidWxhcnkodm9jYWJ1bGFyeSkge1xuICAgIGNvbnN0IHZhbHVlID0gdm9jYWJ1bGFyeTsgLy8vXG5cbiAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgZ2V0Vm9jYWJ1bGFyeSA9IHRoaXMuZ2V0Vm9jYWJ1bGFyeS5iaW5kKHRoaXMpLFxuICAgICAgICAgIHNldFZvY2FidWxhcnkgPSB0aGlzLnNldFZvY2FidWxhcnkuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiAoe1xuICAgICAgZ2V0Vm9jYWJ1bGFyeSxcbiAgICAgIHNldFZvY2FidWxhcnlcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwidm9jYWJ1bGFyeVwiLFxuICAgIHNwZWxsQ2hlY2s6IFwiZmFsc2VcIlxuICB9O1xufVxuIl0sIm5hbWVzIjpbIlZvY2FidWxhcnlUZXh0YXJlYSIsImdldFZvY2FidWxhcnkiLCJ2YWx1ZSIsImdldFZhbHVlIiwidm9jYWJ1bGFyeSIsInNldFZvY2FidWxhcnkiLCJzZXRWYWx1ZSIsInBhcmVudENvbnRleHQiLCJiaW5kIiwiVGV4dGFyZWEiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsInNwZWxsQ2hlY2siXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7OytEQUZBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVOLElBQUEsQUFBTUEsbUNBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxRQUFRLElBQUksQ0FBQ0MsUUFBUSxJQUNyQkMsYUFBYUYsT0FBTyxHQUFHO2dCQUU3QixPQUFPRTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNELFVBQVU7Z0JBQ3RCLElBQU1GLFFBQVFFLFlBQVksR0FBRztnQkFFN0IsSUFBSSxDQUFDRSxRQUFRLENBQUNKO1lBQ2hCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1OLGdCQUFnQixJQUFJLENBQUNBLGFBQWEsQ0FBQ08sSUFBSSxDQUFDLElBQUksR0FDNUNILGdCQUFnQixJQUFJLENBQUNBLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLElBQUk7Z0JBRWxELE9BQVE7b0JBQ05QLGVBQUFBO29CQUNBSSxlQUFBQTtnQkFDRjtZQUNGOzs7V0F0Qm1CTDtFQUEyQlMsaUJBQVE7QUF3QnRELGlCQXhCbUJULG9CQXdCWlUscUJBQW9CO0lBQ3pCQyxXQUFXO0lBQ1hDLFlBQVk7QUFDZCJ9
@@ -17,13 +17,13 @@ var _subHeading = /*#__PURE__*/ _interop_require_default(require("./subHeading")
17
17
  var _name = /*#__PURE__*/ _interop_require_default(require("./select/name"));
18
18
  var _sizeable = /*#__PURE__*/ _interop_require_default(require("./div/sizeable"));
19
19
  var _bnf = /*#__PURE__*/ _interop_require_default(require("./textarea/bnf"));
20
- var _pattern = /*#__PURE__*/ _interop_require_default(require("./input/pattern"));
21
20
  var _ruleName = /*#__PURE__*/ _interop_require_default(require("./select/ruleName"));
22
21
  var _content = /*#__PURE__*/ _interop_require_default(require("./textarea/content"));
23
- var _patternName = /*#__PURE__*/ _interop_require_default(require("./select/patternName"));
24
22
  var _parseTree = /*#__PURE__*/ _interop_require_default(require("./textarea/parseTree"));
25
23
  var _startRuleName = /*#__PURE__*/ _interop_require_default(require("./input/startRuleName"));
26
24
  var _nominalBNF = /*#__PURE__*/ _interop_require_default(require("./textarea/nominalBNF"));
25
+ var _vocabulary = /*#__PURE__*/ _interop_require_default(require("./textarea/vocabulary"));
26
+ var _vocabularyName = /*#__PURE__*/ _interop_require_default(require("./select/vocabularyName"));
27
27
  var _userDefined1 = /*#__PURE__*/ _interop_require_default(require("./customGrammar/userDefined1"));
28
28
  var _userDefined2 = /*#__PURE__*/ _interop_require_default(require("./customGrammar/userDefined2"));
29
29
  var _rules = require("./utilities/rules");
@@ -192,14 +192,14 @@ var View = /*#__PURE__*/ function(Element) {
192
192
  var _this;
193
193
  _this = _call_super(this, View, arguments), _define_property(_this, "keyUpHandler", function(event, element) {
194
194
  try {
195
- var name = _this.getName(), bnf = _this.getBNF(), pattern = _this.getPattern(), ruleName = _this.getRuleName(), patternName = _this.getPatternName();
195
+ var bnf = _this.getBNF(), name = _this.getName(), ruleName = _this.getRuleName(), vocabulary = _this.getVocabulary(), vocabularyName = _this.getVocabularyName();
196
196
  if (name === _grammarNames.USER_DEFINED_CUSTOM_GRAMMAR_NAME_1) {
197
197
  _userDefined1.default.setBNF(ruleName, bnf);
198
- _userDefined1.default.setPattern(patternName, pattern);
198
+ _userDefined1.default.setVocabulary(vocabularyName, vocabulary);
199
199
  }
200
200
  if (name === _grammarNames.USER_DEFINED_CUSTOM_GRAMMAR_NAME_2) {
201
201
  _userDefined2.default.setBNF(ruleName, bnf);
202
- _userDefined2.default.setPattern(patternName, pattern);
202
+ _userDefined2.default.setVocabulary(vocabularyName, vocabulary);
203
203
  }
204
204
  var customGrammars = [
205
205
  _userDefined1.default,
@@ -220,7 +220,7 @@ var View = /*#__PURE__*/ function(Element) {
220
220
  }
221
221
  }), _define_property(_this, "changeHandler", function(event, element) {
222
222
  var customGrammar;
223
- var name = _this.getName(), ruleName = _this.getRuleName(), patternName = _this.getPatternName();
223
+ var name = _this.getName(), ruleName = _this.getRuleName(), vocabularyName = _this.getVocabularyName();
224
224
  switch(name){
225
225
  case _grammarNames.DEFAULT_CUSTOM_GRAMMAR_NAME:
226
226
  customGrammar = _index.defaultCustomGrammar;
@@ -232,9 +232,9 @@ var View = /*#__PURE__*/ function(Element) {
232
232
  customGrammar = _userDefined2.default;
233
233
  break;
234
234
  }
235
- var bnf = customGrammar.getBNF(ruleName), pattern = customGrammar.getPattern(patternName);
235
+ var bnf = customGrammar.getBNF(ruleName), vocabulary = customGrammar.getVocabulary(vocabularyName);
236
236
  _this.setBNF(bnf);
237
- _this.setPattern(pattern);
237
+ _this.setVocabulary(vocabulary);
238
238
  });
239
239
  return _this;
240
240
  }
@@ -250,9 +250,9 @@ var View = /*#__PURE__*/ function(Element) {
250
250
  onChange: changeHandler
251
251
  }), /*#__PURE__*/ React.createElement(_bnf.default, {
252
252
  onKeyUp: keyUpHandler
253
- }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "Pattern"), /*#__PURE__*/ React.createElement(_patternName.default, {
253
+ }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "Vocabulary"), /*#__PURE__*/ React.createElement(_vocabularyName.default, {
254
254
  onChange: changeHandler
255
- }), /*#__PURE__*/ React.createElement(_pattern.default, {
255
+ }), /*#__PURE__*/ React.createElement(_vocabulary.default, {
256
256
  onKeyUp: keyUpHandler
257
257
  }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "Start rule"), /*#__PURE__*/ React.createElement(_startRuleName.default, {
258
258
  onKeyUp: keyUpHandler
@@ -285,4 +285,4 @@ _define_property(View, "defaultProperties", {
285
285
  });
286
286
  var _default = (0, _easywithstyle.default)(View)(_templateObject());
287
287
 
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgcnVsZXNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcGFyc2Vyc1wiO1xuaW1wb3J0IHsgUm93c0RpdiwgQ29sdW1uRGl2LCBDb2x1bW5zRGl2LCBWZXJ0aWNhbFNwbGl0dGVyRGl2IH0gZnJvbSBcImVhc3ktbGF5b3V0XCI7XG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMsIGRlZmF1bHRDdXN0b21HcmFtbWFyLCBDb21iaW5lZEN1c3RvbUdyYW1tYXIgfSBmcm9tIFwiLi4vaW5kZXhcIjsgIC8vL1xuXG5pbXBvcnQgU3ViSGVhZGluZyBmcm9tIFwiLi9zdWJIZWFkaW5nXCI7XG5pbXBvcnQgTmFtZVNlbGVjdCBmcm9tIFwiLi9zZWxlY3QvbmFtZVwiO1xuaW1wb3J0IFNpemVhYmxlRGl2IGZyb20gXCIuL2Rpdi9zaXplYWJsZVwiO1xuaW1wb3J0IEJORlRleHRhcmVhIGZyb20gXCIuL3RleHRhcmVhL2JuZlwiO1xuaW1wb3J0IFBhdHRlcm5JbnB1dCBmcm9tIFwiLi9pbnB1dC9wYXR0ZXJuXCI7XG5pbXBvcnQgUnVsZU5hbWVTZWxlY3QgZnJvbSBcIi4vc2VsZWN0L3J1bGVOYW1lXCI7XG5pbXBvcnQgQ29udGVudFRleHRhcmVhIGZyb20gXCIuL3RleHRhcmVhL2NvbnRlbnRcIjtcbmltcG9ydCBQYXR0ZXJuTmFtZVNlbGVjdCBmcm9tIFwiLi9zZWxlY3QvcGF0dGVybk5hbWVcIjtcbmltcG9ydCBQYXJzZVRyZWVUZXh0YXJlYSBmcm9tIFwiLi90ZXh0YXJlYS9wYXJzZVRyZWVcIjtcbmltcG9ydCBTdGFydFJ1bGVOYW1lSW5wdXQgZnJvbSBcIi4vaW5wdXQvc3RhcnRSdWxlTmFtZVwiO1xuaW1wb3J0IE5vbWluYWxCTkZUZXh0YXJlYSBmcm9tIFwiLi90ZXh0YXJlYS9ub21pbmFsQk5GXCI7XG5pbXBvcnQgdXNlckRlZmluZWRDdXN0b21HcmFtbWFyMSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyL3VzZXJEZWZpbmVkMVwiO1xuaW1wb3J0IHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjIgZnJvbSBcIi4vY3VzdG9tR3JhbW1hci91c2VyRGVmaW5lZDJcIjtcblxuaW1wb3J0IHsgcnVsZXNGcm9tUGFyc2VyIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3J1bGVzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0NVU1RPTV9HUkFNTUFSX05BTUUsIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FXzEsIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FXzIgfSBmcm9tIFwiLi9ncmFtbWFyTmFtZXNcIjtcblxuY29uc3QgeyBydWxlc0FzU3RyaW5nIH0gPSBydWxlc1V0aWxpdGllcyxcbiAgICAgIHsgbm9taW5hbExleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gbGV4ZXJzVXRpbGl0aWVzLFxuICAgICAgeyBub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcztcblxuY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBrZXlVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgYm5mID0gdGhpcy5nZXRCTkYoKSxcbiAgICAgICAgICAgIHBhdHRlcm4gPSB0aGlzLmdldFBhdHRlcm4oKSxcbiAgICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgcGF0dGVybk5hbWUgPSB0aGlzLmdldFBhdHRlcm5OYW1lKCk7XG5cbiAgICAgIGlmIChuYW1lID09PSBVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRV8xKSB7XG4gICAgICAgIHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjEuc2V0Qk5GKHJ1bGVOYW1lLCBibmYpO1xuXG4gICAgICAgIHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjEuc2V0UGF0dGVybihwYXR0ZXJuTmFtZSwgcGF0dGVybik7XG4gICAgICB9XG5cbiAgICAgIGlmIChuYW1lID09PSBVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRV8yKSB7XG4gICAgICAgIHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjIuc2V0Qk5GKHJ1bGVOYW1lLCBibmYpO1xuXG4gICAgICAgIHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjIuc2V0UGF0dGVybihwYXR0ZXJuTmFtZSwgcGF0dGVybik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1c3RvbUdyYW1tYXJzID0gW1xuICAgICAgICAgICAgICB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIxLFxuICAgICAgICAgICAgICB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIyXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgY29tYmluZWRDdXN0b21HcmFtbWFyID0gQ29tYmluZWRDdXN0b21HcmFtbWFyLmZyb21DdXN0b21HcmFtbWFycyhjdXN0b21HcmFtbWFycyksXG4gICAgICAgICAgICBub21pbmFsTGV4ZXIgPSBub21pbmFsTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyKGNvbWJpbmVkQ3VzdG9tR3JhbW1hciksXG4gICAgICAgICAgICBub21pbmFsUGFyc2VyID0gbm9taW5hbFBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuICAgICAgY29uc3QgcnVsZU1hcCA9IG5vbWluYWxQYXJzZXIuZ2V0UnVsZU1hcCgpLFxuICAgICAgICAgICAgc3RhcnRSdWxlTmFtZSA9IHRoaXMuZ2V0U3RhcnRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgc3RhcnRSdWxlID0gcnVsZU1hcFtzdGFydFJ1bGVOYW1lXSwgLy8vXG4gICAgICAgICAgICBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgICB0b2tlbnMgPSBub21pbmFsTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgICBub2RlID0gbm9taW5hbFBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSk7XG5cbiAgICAgIGxldCBwYXJzZVRyZWUgPSBudWxsO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2Vucyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0UGFyc2VUcmVlKHBhcnNlVHJlZSk7XG5cbiAgICAgIGNvbnN0IG5vbWluYWxSdWxlcyA9IHJ1bGVzRnJvbVBhcnNlcihub21pbmFsUGFyc2VyKSxcbiAgICAgICAgICAgIG11bHRpTGluZSA9IHRydWUsXG4gICAgICAgICAgICBydWxlc1N0cmluZyA9IHJ1bGVzQXNTdHJpbmcobm9taW5hbFJ1bGVzLCBtdWx0aUxpbmUpLFxuICAgICAgICAgICAgbm9taW5hbEJORiA9IHJ1bGVzU3RyaW5nOyAgLy8vXG5cbiAgICAgIHRoaXMuc2V0Tm9taW5hbEJORihub21pbmFsQk5GKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuXG4gICAgICB0aGlzLmNsZWFyUGFyc2VUcmVlKCk7XG5cbiAgICAgIHRoaXMuY2xlYXJOb21pbmFsQk5GKCk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIGxldCBjdXN0b21HcmFtbWFyO1xuXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIHBhdHRlcm5OYW1lID0gdGhpcy5nZXRQYXR0ZXJuTmFtZSgpO1xuXG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlIERFRkFVTFRfQ1VTVE9NX0dSQU1NQVJfTkFNRTpcbiAgICAgICAgY3VzdG9tR3JhbW1hciA9IGRlZmF1bHRDdXN0b21HcmFtbWFyO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FXzE6XG4gICAgICAgIGN1c3RvbUdyYW1tYXIgPSB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIxO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FXzI6XG4gICAgICAgIGN1c3RvbUdyYW1tYXIgPSB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIyO1xuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGJuZiA9IGN1c3RvbUdyYW1tYXIuZ2V0Qk5GKHJ1bGVOYW1lKSxcbiAgICAgICAgICBwYXR0ZXJuID0gY3VzdG9tR3JhbW1hci5nZXRQYXR0ZXJuKHBhdHRlcm5OYW1lKTtcblxuICAgIHRoaXMuc2V0Qk5GKGJuZik7XG5cbiAgICB0aGlzLnNldFBhdHRlcm4ocGF0dGVybik7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IGtleVVwSGFuZGxlciA9IHRoaXMua2V5VXBIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IHRoaXMuY2hhbmdlSGFuZGxlci5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuIChbXG5cbiAgICAgIDxDb2x1bW5zRGl2PlxuICAgICAgICA8U2l6ZWFibGVEaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ3VzdG9tIGdyYW1tYXJcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxOYW1lU2VsZWN0IG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIEJORlxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFJ1bGVOYW1lU2VsZWN0IG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPEJORlRleHRhcmVhIG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBQYXR0ZXJuXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8UGF0dGVybk5hbWVTZWxlY3Qgb25DaGFuZ2U9e2NoYW5nZUhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8UGF0dGVybklucHV0IG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBTdGFydCBydWxlXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8U3RhcnRSdWxlTmFtZUlucHV0IG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvU2l6ZWFibGVEaXY+XG4gICAgICAgIDxWZXJ0aWNhbFNwbGl0dGVyRGl2IC8+XG4gICAgICAgIDxDb2x1bW5EaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ29udGVudFxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPENvbnRlbnRUZXh0YXJlYSBvbktleVVwPXtrZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgUGFyc2UgdHJlZVxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFBhcnNlVHJlZVRleHRhcmVhIC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgTm9taW5hbCBCTkZcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxOb21pbmFsQk5GVGV4dGFyZWEgLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvQ29sdW1uRGl2PlxuICAgICAgPC9Db2x1bW5zRGl2PlxuXG4gICAgXSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBpbml0aWFsQ29udGVudCwgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBjb25zdCBjb250ZW50ID0gaW5pdGlhbENvbnRlbnQsIC8vL1xuICAgICAgICAgIHN0YXJ0UnVsZU5hbWUgPSBpbml0aWFsU3RhcnRSdWxlTmFtZTsgLy8vXG5cbiAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCk7XG5cbiAgICB0aGlzLnNldFN0YXJ0UnVsZU5hbWUoc3RhcnRSdWxlTmFtZSk7XG5cbiAgICB0aGlzLmNoYW5nZUhhbmRsZXIoKTtcblxuICAgIHRoaXMua2V5VXBIYW5kbGVyKCk7XG4gIH1cblxuICBzdGF0aWMgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgPSBcIlwiO1xuXG4gIHN0YXRpYyBpbml0aWFsQ29udGVudCA9IGBSdWxlIChHcm91cHMpXG4gIENvbmNsdXNpb25cbiAgICBBXG5gO1xuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInZpZXdcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoVmlldylgXG5cbiAgcGFkZGluZzogMXJlbTtcbiAgXG5gO1xuIl0sIm5hbWVzIjpbInJ1bGVzQXNTdHJpbmciLCJydWxlc1V0aWxpdGllcyIsIm5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIiLCJsZXhlcnNVdGlsaXRpZXMiLCJub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsInBhcnNlcnNVdGlsaXRpZXMiLCJWaWV3Iiwia2V5VXBIYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwibmFtZSIsImdldE5hbWUiLCJibmYiLCJnZXRCTkYiLCJwYXR0ZXJuIiwiZ2V0UGF0dGVybiIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJwYXR0ZXJuTmFtZSIsImdldFBhdHRlcm5OYW1lIiwiVVNFUl9ERUZJTkVEX0NVU1RPTV9HUkFNTUFSX05BTUVfMSIsInVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjEiLCJzZXRCTkYiLCJzZXRQYXR0ZXJuIiwiVVNFUl9ERUZJTkVEX0NVU1RPTV9HUkFNTUFSX05BTUVfMiIsInVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjIiLCJjdXN0b21HcmFtbWFycyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsIkNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImZyb21DdXN0b21HcmFtbWFycyIsIm5vbWluYWxMZXhlciIsIm5vbWluYWxQYXJzZXIiLCJydWxlTWFwIiwiZ2V0UnVsZU1hcCIsInN0YXJ0UnVsZU5hbWUiLCJnZXRTdGFydFJ1bGVOYW1lIiwic3RhcnRSdWxlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsIm5vZGUiLCJwYXJzZSIsInBhcnNlVHJlZSIsImFzUGFyc2VUcmVlIiwic2V0UGFyc2VUcmVlIiwibm9taW5hbFJ1bGVzIiwicnVsZXNGcm9tUGFyc2VyIiwibXVsdGlMaW5lIiwicnVsZXNTdHJpbmciLCJub21pbmFsQk5GIiwic2V0Tm9taW5hbEJORiIsImVycm9yIiwiY29uc29sZSIsImxvZyIsImNsZWFyUGFyc2VUcmVlIiwiY2xlYXJOb21pbmFsQk5GIiwiY2hhbmdlSGFuZGxlciIsImN1c3RvbUdyYW1tYXIiLCJERUZBVUxUX0NVU1RPTV9HUkFNTUFSX05BTUUiLCJkZWZhdWx0Q3VzdG9tR3JhbW1hciIsImNoaWxkRWxlbWVudHMiLCJiaW5kIiwiQ29sdW1uc0RpdiIsIlNpemVhYmxlRGl2IiwiUm93c0RpdiIsIlN1YkhlYWRpbmciLCJOYW1lU2VsZWN0Iiwib25DaGFuZ2UiLCJSdWxlTmFtZVNlbGVjdCIsIkJORlRleHRhcmVhIiwib25LZXlVcCIsIlBhdHRlcm5OYW1lU2VsZWN0IiwiUGF0dGVybklucHV0IiwiU3RhcnRSdWxlTmFtZUlucHV0IiwiVmVydGljYWxTcGxpdHRlckRpdiIsIkNvbHVtbkRpdiIsIkNvbnRlbnRUZXh0YXJlYSIsIlBhcnNlVHJlZVRleHRhcmVhIiwiTm9taW5hbEJORlRleHRhcmVhIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJpbml0aWFsQ29udGVudCIsImluaXRpYWxTdGFydFJ1bGVOYW1lIiwic2V0Q29udGVudCIsInNldFN0YXJ0UnVsZU5hbWUiLCJFbGVtZW50IiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwid2l0aFN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEyTUE7OztlQUFBOzs7b0VBek1zQjtvQkFFRTs0QkFDTzswQkFDcUM7cUJBQzJCO2lFQUV4RTsyREFDQTsrREFDQzswREFDQTs4REFDQzsrREFDRTs4REFDQztrRUFDRTtnRUFDQTtvRUFDQztpRUFDQTttRUFDTzttRUFDQTtxQkFFTjs0QkFDb0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEgsSUFBTSxBQUFFQSxnQkFBa0JDLDRCQUFjLENBQWhDRCxlQUNGLEFBQUVFLHdDQUEwQ0Msc0JBQWUsQ0FBekRELHVDQUNGLEFBQUVFLHlDQUEyQ0MsdUJB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
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgcnVsZXNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcGFyc2Vyc1wiO1xuaW1wb3J0IHsgUm93c0RpdiwgQ29sdW1uRGl2LCBDb2x1bW5zRGl2LCBWZXJ0aWNhbFNwbGl0dGVyRGl2IH0gZnJvbSBcImVhc3ktbGF5b3V0XCI7XG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMsIGRlZmF1bHRDdXN0b21HcmFtbWFyLCBDb21iaW5lZEN1c3RvbUdyYW1tYXIgfSBmcm9tIFwiLi4vaW5kZXhcIjsgIC8vL1xuXG5pbXBvcnQgU3ViSGVhZGluZyBmcm9tIFwiLi9zdWJIZWFkaW5nXCI7XG5pbXBvcnQgTmFtZVNlbGVjdCBmcm9tIFwiLi9zZWxlY3QvbmFtZVwiO1xuaW1wb3J0IFNpemVhYmxlRGl2IGZyb20gXCIuL2Rpdi9zaXplYWJsZVwiO1xuaW1wb3J0IEJORlRleHRhcmVhIGZyb20gXCIuL3RleHRhcmVhL2JuZlwiO1xuaW1wb3J0IFJ1bGVOYW1lU2VsZWN0IGZyb20gXCIuL3NlbGVjdC9ydWxlTmFtZVwiO1xuaW1wb3J0IENvbnRlbnRUZXh0YXJlYSBmcm9tIFwiLi90ZXh0YXJlYS9jb250ZW50XCI7XG5pbXBvcnQgUGFyc2VUcmVlVGV4dGFyZWEgZnJvbSBcIi4vdGV4dGFyZWEvcGFyc2VUcmVlXCI7XG5pbXBvcnQgU3RhcnRSdWxlTmFtZUlucHV0IGZyb20gXCIuL2lucHV0L3N0YXJ0UnVsZU5hbWVcIjtcbmltcG9ydCBOb21pbmFsQk5GVGV4dGFyZWEgZnJvbSBcIi4vdGV4dGFyZWEvbm9taW5hbEJORlwiO1xuaW1wb3J0IFZvY2FidWxhcnlUZXh0YXJlYSBmcm9tIFwiLi90ZXh0YXJlYS92b2NhYnVsYXJ5XCI7XG5pbXBvcnQgVm9jYWJ1bGFyeU5hbWVTZWxlY3QgZnJvbSBcIi4vc2VsZWN0L3ZvY2FidWxhcnlOYW1lXCI7XG5pbXBvcnQgdXNlckRlZmluZWRDdXN0b21HcmFtbWFyMSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyL3VzZXJEZWZpbmVkMVwiO1xuaW1wb3J0IHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjIgZnJvbSBcIi4vY3VzdG9tR3JhbW1hci91c2VyRGVmaW5lZDJcIjtcblxuaW1wb3J0IHsgcnVsZXNGcm9tUGFyc2VyIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3J1bGVzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0NVU1RPTV9HUkFNTUFSX05BTUUsIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FXzEsIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FXzIgfSBmcm9tIFwiLi9ncmFtbWFyTmFtZXNcIjtcblxuY29uc3QgeyBydWxlc0FzU3RyaW5nIH0gPSBydWxlc1V0aWxpdGllcyxcbiAgICAgIHsgbm9taW5hbExleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gbGV4ZXJzVXRpbGl0aWVzLFxuICAgICAgeyBub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcztcblxuY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBrZXlVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm5mID0gdGhpcy5nZXRCTkYoKSxcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgdm9jYWJ1bGFyeSA9IHRoaXMuZ2V0Vm9jYWJ1bGFyeSgpLFxuICAgICAgICAgICAgdm9jYWJ1bGFyeU5hbWUgPSB0aGlzLmdldFZvY2FidWxhcnlOYW1lKCk7XG5cbiAgICAgIGlmIChuYW1lID09PSBVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRV8xKSB7XG4gICAgICAgIHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjEuc2V0Qk5GKHJ1bGVOYW1lLCBibmYpO1xuXG4gICAgICAgIHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjEuc2V0Vm9jYWJ1bGFyeSh2b2NhYnVsYXJ5TmFtZSwgdm9jYWJ1bGFyeSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuYW1lID09PSBVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRV8yKSB7XG4gICAgICAgIHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjIuc2V0Qk5GKHJ1bGVOYW1lLCBibmYpO1xuXG4gICAgICAgIHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjIuc2V0Vm9jYWJ1bGFyeSh2b2NhYnVsYXJ5TmFtZSwgdm9jYWJ1bGFyeSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1c3RvbUdyYW1tYXJzID0gW1xuICAgICAgICAgICAgICB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIxLFxuICAgICAgICAgICAgICB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIyXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgY29tYmluZWRDdXN0b21HcmFtbWFyID0gQ29tYmluZWRDdXN0b21HcmFtbWFyLmZyb21DdXN0b21HcmFtbWFycyhjdXN0b21HcmFtbWFycyksXG4gICAgICAgICAgICBub21pbmFsTGV4ZXIgPSBub21pbmFsTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyKGNvbWJpbmVkQ3VzdG9tR3JhbW1hciksXG4gICAgICAgICAgICBub21pbmFsUGFyc2VyID0gbm9taW5hbFBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuICAgICAgY29uc3QgcnVsZU1hcCA9IG5vbWluYWxQYXJzZXIuZ2V0UnVsZU1hcCgpLFxuICAgICAgICAgICAgc3RhcnRSdWxlTmFtZSA9IHRoaXMuZ2V0U3RhcnRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgc3RhcnRSdWxlID0gcnVsZU1hcFtzdGFydFJ1bGVOYW1lXSwgLy8vXG4gICAgICAgICAgICBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgICB0b2tlbnMgPSBub21pbmFsTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgICBub2RlID0gbm9taW5hbFBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSk7XG5cbiAgICAgIGxldCBwYXJzZVRyZWUgPSBudWxsO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2Vucyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0UGFyc2VUcmVlKHBhcnNlVHJlZSk7XG5cbiAgICAgIGNvbnN0IG5vbWluYWxSdWxlcyA9IHJ1bGVzRnJvbVBhcnNlcihub21pbmFsUGFyc2VyKSxcbiAgICAgICAgICAgIG11bHRpTGluZSA9IHRydWUsXG4gICAgICAgICAgICBydWxlc1N0cmluZyA9IHJ1bGVzQXNTdHJpbmcobm9taW5hbFJ1bGVzLCBtdWx0aUxpbmUpLFxuICAgICAgICAgICAgbm9taW5hbEJORiA9IHJ1bGVzU3RyaW5nOyAgLy8vXG5cbiAgICAgIHRoaXMuc2V0Tm9taW5hbEJORihub21pbmFsQk5GKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuXG4gICAgICB0aGlzLmNsZWFyUGFyc2VUcmVlKCk7XG5cbiAgICAgIHRoaXMuY2xlYXJOb21pbmFsQk5GKCk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIGxldCBjdXN0b21HcmFtbWFyO1xuXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIHZvY2FidWxhcnlOYW1lID0gdGhpcy5nZXRWb2NhYnVsYXJ5TmFtZSgpO1xuXG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlIERFRkFVTFRfQ1VTVE9NX0dSQU1NQVJfTkFNRTpcbiAgICAgICAgY3VzdG9tR3JhbW1hciA9IGRlZmF1bHRDdXN0b21HcmFtbWFyO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FXzE6XG4gICAgICAgIGN1c3RvbUdyYW1tYXIgPSB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIxO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FXzI6XG4gICAgICAgIGN1c3RvbUdyYW1tYXIgPSB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIyO1xuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGJuZiA9IGN1c3RvbUdyYW1tYXIuZ2V0Qk5GKHJ1bGVOYW1lKSxcbiAgICAgICAgICB2b2NhYnVsYXJ5ID0gY3VzdG9tR3JhbW1hci5nZXRWb2NhYnVsYXJ5KHZvY2FidWxhcnlOYW1lKTtcblxuICAgIHRoaXMuc2V0Qk5GKGJuZik7XG5cbiAgICB0aGlzLnNldFZvY2FidWxhcnkodm9jYWJ1bGFyeSk7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IGtleVVwSGFuZGxlciA9IHRoaXMua2V5VXBIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IHRoaXMuY2hhbmdlSGFuZGxlci5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuIChbXG5cbiAgICAgIDxDb2x1bW5zRGl2PlxuICAgICAgICA8U2l6ZWFibGVEaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ3VzdG9tIGdyYW1tYXJcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxOYW1lU2VsZWN0IG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIEJORlxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFJ1bGVOYW1lU2VsZWN0IG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPEJORlRleHRhcmVhIG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBWb2NhYnVsYXJ5XG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8Vm9jYWJ1bGFyeU5hbWVTZWxlY3Qgb25DaGFuZ2U9e2NoYW5nZUhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8Vm9jYWJ1bGFyeVRleHRhcmVhIG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBTdGFydCBydWxlXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8U3RhcnRSdWxlTmFtZUlucHV0IG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvU2l6ZWFibGVEaXY+XG4gICAgICAgIDxWZXJ0aWNhbFNwbGl0dGVyRGl2IC8+XG4gICAgICAgIDxDb2x1bW5EaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ29udGVudFxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPENvbnRlbnRUZXh0YXJlYSBvbktleVVwPXtrZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgUGFyc2UgdHJlZVxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFBhcnNlVHJlZVRleHRhcmVhIC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgTm9taW5hbCBCTkZcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxOb21pbmFsQk5GVGV4dGFyZWEgLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvQ29sdW1uRGl2PlxuICAgICAgPC9Db2x1bW5zRGl2PlxuXG4gICAgXSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBpbml0aWFsQ29udGVudCwgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBjb25zdCBjb250ZW50ID0gaW5pdGlhbENvbnRlbnQsIC8vL1xuICAgICAgICAgIHN0YXJ0UnVsZU5hbWUgPSBpbml0aWFsU3RhcnRSdWxlTmFtZTsgLy8vXG5cbiAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCk7XG5cbiAgICB0aGlzLnNldFN0YXJ0UnVsZU5hbWUoc3RhcnRSdWxlTmFtZSk7XG5cbiAgICB0aGlzLmNoYW5nZUhhbmRsZXIoKTtcblxuICAgIHRoaXMua2V5VXBIYW5kbGVyKCk7XG4gIH1cblxuICBzdGF0aWMgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgPSBcIlwiO1xuXG4gIHN0YXRpYyBpbml0aWFsQ29udGVudCA9IGBSdWxlIChHcm91cHMpXG4gIENvbmNsdXNpb25cbiAgICBBXG5gO1xuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInZpZXdcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoVmlldylgXG5cbiAgcGFkZGluZzogMXJlbTtcbiAgXG5gO1xuIl0sIm5hbWVzIjpbInJ1bGVzQXNTdHJpbmciLCJydWxlc1V0aWxpdGllcyIsIm5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIiLCJsZXhlcnNVdGlsaXRpZXMiLCJub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsInBhcnNlcnNVdGlsaXRpZXMiLCJWaWV3Iiwia2V5VXBIYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwiYm5mIiwiZ2V0Qk5GIiwibmFtZSIsImdldE5hbWUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwidm9jYWJ1bGFyeSIsImdldFZvY2FidWxhcnkiLCJ2b2NhYnVsYXJ5TmFtZSIsImdldFZvY2FidWxhcnlOYW1lIiwiVVNFUl9ERUZJTkVEX0NVU1RPTV9HUkFNTUFSX05BTUVfMSIsInVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjEiLCJzZXRCTkYiLCJzZXRWb2NhYnVsYXJ5IiwiVVNFUl9ERUZJTkVEX0NVU1RPTV9HUkFNTUFSX05BTUVfMiIsInVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hcjIiLCJjdXN0b21HcmFtbWFycyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsIkNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImZyb21DdXN0b21HcmFtbWFycyIsIm5vbWluYWxMZXhlciIsIm5vbWluYWxQYXJzZXIiLCJydWxlTWFwIiwiZ2V0UnVsZU1hcCIsInN0YXJ0UnVsZU5hbWUiLCJnZXRTdGFydFJ1bGVOYW1lIiwic3RhcnRSdWxlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsIm5vZGUiLCJwYXJzZSIsInBhcnNlVHJlZSIsImFzUGFyc2VUcmVlIiwic2V0UGFyc2VUcmVlIiwibm9taW5hbFJ1bGVzIiwicnVsZXNGcm9tUGFyc2VyIiwibXVsdGlMaW5lIiwicnVsZXNTdHJpbmciLCJub21pbmFsQk5GIiwic2V0Tm9taW5hbEJORiIsImVycm9yIiwiY29uc29sZSIsImxvZyIsImNsZWFyUGFyc2VUcmVlIiwiY2xlYXJOb21pbmFsQk5GIiwiY2hhbmdlSGFuZGxlciIsImN1c3RvbUdyYW1tYXIiLCJERUZBVUxUX0NVU1RPTV9HUkFNTUFSX05BTUUiLCJkZWZhdWx0Q3VzdG9tR3JhbW1hciIsImNoaWxkRWxlbWVudHMiLCJiaW5kIiwiQ29sdW1uc0RpdiIsIlNpemVhYmxlRGl2IiwiUm93c0RpdiIsIlN1YkhlYWRpbmciLCJOYW1lU2VsZWN0Iiwib25DaGFuZ2UiLCJSdWxlTmFtZVNlbGVjdCIsIkJORlRleHRhcmVhIiwib25LZXlVcCIsIlZvY2FidWxhcnlOYW1lU2VsZWN0IiwiVm9jYWJ1bGFyeVRleHRhcmVhIiwiU3RhcnRSdWxlTmFtZUlucHV0IiwiVmVydGljYWxTcGxpdHRlckRpdiIsIkNvbHVtbkRpdiIsIkNvbnRlbnRUZXh0YXJlYSIsIlBhcnNlVHJlZVRleHRhcmVhIiwiTm9taW5hbEJORlRleHRhcmVhIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJpbml0aWFsQ29udGVudCIsImluaXRpYWxTdGFydFJ1bGVOYW1lIiwic2V0Q29udGVudCIsInNldFN0YXJ0UnVsZU5hbWUiLCJFbGVtZW50IiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwid2l0aFN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEyTUE7OztlQUFBOzs7b0VBek1zQjtvQkFFRTs0QkFDTzswQkFDcUM7cUJBQzJCO2lFQUV4RTsyREFDQTsrREFDQzswREFDQTsrREFDRzs4REFDQztnRUFDRTtvRUFDQztpRUFDQTtpRUFDQTtxRUFDRTttRUFDSzttRUFDQTtxQkFFTjs0QkFDb0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
package/lib/index.js CHANGED
@@ -27,16 +27,16 @@ _export(exports, {
27
27
  get parsersUtilities () {
28
28
  return _parsers.default;
29
29
  },
30
- get patternNames () {
31
- return _patternNames.default;
32
- },
33
30
  get ruleNames () {
34
31
  return _ruleNames.default;
32
+ },
33
+ get vocabularyNames () {
34
+ return _vocabularyNames.default;
35
35
  }
36
36
  });
37
37
  var _grammarNames = require("./grammarNames");
38
38
  var _ruleNames = /*#__PURE__*/ _interop_require_default(require("./ruleNames"));
39
- var _patternNames = /*#__PURE__*/ _interop_require_default(require("./patternNames"));
39
+ var _vocabularyNames = /*#__PURE__*/ _interop_require_default(require("./vocabularyNames"));
40
40
  var _customGrammar = /*#__PURE__*/ _interop_require_default(require("./customGrammar"));
41
41
  var _lexers = /*#__PURE__*/ _interop_require_default(require("./utilities/lexers"));
42
42
  var _parsers = /*#__PURE__*/ _interop_require_default(require("./utilities/parsers"));
@@ -48,4 +48,4 @@ function _interop_require_default(obj) {
48
48
  };
49
49
  }
50
50
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgREVGQVVMVF9DVVNUT01fR1JBTU1BUl9OQU1FIH0gZnJvbSBcIi4vZ3JhbW1hck5hbWVzXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgcnVsZU5hbWVzIH0gZnJvbSBcIi4vcnVsZU5hbWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhdHRlcm5OYW1lcyB9IGZyb20gXCIuL3BhdHRlcm5OYW1lc1wiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEN1c3RvbUdyYW1tYXIgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGxleGVyc1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9sZXhlcnNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXJzZXJzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRlZmF1bHRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hci9kZWZhdWx0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbWJpbmVkQ3VzdG9tR3JhbW1hciB9IGZyb20gXCIuL2N1c3RvbUdyYW1tYXIvY29tYmluZWRcIjtcbiJdLCJuYW1lcyI6WyJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJDdXN0b21HcmFtbWFyIiwiREVGQVVMVF9DVVNUT01fR1JBTU1BUl9OQU1FIiwiZGVmYXVsdEN1c3RvbUdyYW1tYXIiLCJsZXhlcnNVdGlsaXRpZXMiLCJwYXJzZXJzVXRpbGl0aWVzIiwicGF0dGVybk5hbWVzIiwicnVsZU5hbWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFXb0JBO2VBQUFBLGlCQUFxQjs7UUFKckJDO2VBQUFBLHNCQUFhOztRQUx4QkM7ZUFBQUEseUNBQTJCOztRQVFoQkM7ZUFBQUEsZ0JBQW9COztRQUZwQkM7ZUFBQUEsZUFBZTs7UUFDZkM7ZUFBQUEsZ0JBQWdCOztRQUpoQkM7ZUFBQUEscUJBQVk7O1FBRFpDO2VBQUFBLGtCQUFTOzs7NEJBRmU7Z0VBRVA7bUVBQ0c7b0VBRUM7NkRBQ0U7OERBQ0M7OERBQ0k7K0RBQ0MifQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgREVGQVVMVF9DVVNUT01fR1JBTU1BUl9OQU1FIH0gZnJvbSBcIi4vZ3JhbW1hck5hbWVzXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgcnVsZU5hbWVzIH0gZnJvbSBcIi4vcnVsZU5hbWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZvY2FidWxhcnlOYW1lcyB9IGZyb20gXCIuL3ZvY2FidWxhcnlOYW1lc1wiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEN1c3RvbUdyYW1tYXIgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGxleGVyc1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9sZXhlcnNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXJzZXJzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRlZmF1bHRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hci9kZWZhdWx0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbWJpbmVkQ3VzdG9tR3JhbW1hciB9IGZyb20gXCIuL2N1c3RvbUdyYW1tYXIvY29tYmluZWRcIjtcbiJdLCJuYW1lcyI6WyJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJDdXN0b21HcmFtbWFyIiwiREVGQVVMVF9DVVNUT01fR1JBTU1BUl9OQU1FIiwiZGVmYXVsdEN1c3RvbUdyYW1tYXIiLCJsZXhlcnNVdGlsaXRpZXMiLCJwYXJzZXJzVXRpbGl0aWVzIiwicnVsZU5hbWVzIiwidm9jYWJ1bGFyeU5hbWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFXb0JBO2VBQUFBLGlCQUFxQjs7UUFKckJDO2VBQUFBLHNCQUFhOztRQUx4QkM7ZUFBQUEseUNBQTJCOztRQVFoQkM7ZUFBQUEsZ0JBQW9COztRQUZwQkM7ZUFBQUEsZUFBZTs7UUFDZkM7ZUFBQUEsZ0JBQWdCOztRQUxoQkM7ZUFBQUEsa0JBQVM7O1FBQ1RDO2VBQUFBLHdCQUFlOzs7NEJBSFM7Z0VBRVA7c0VBQ007b0VBRUY7NkRBQ0U7OERBQ0M7OERBQ0k7K0RBQ0MifQ==
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "validateBNf", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return validateBNf;
9
+ }
10
+ });
11
+ var _constants = require("../constants");
12
+ function validateBNf(buf) {
13
+ if (buf === null || buf === _constants.EMPTY_STRING) {
14
+ return;
15
+ }
16
+ }
17
+
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQk5mKGJ1Zikge1xuICBpZiAoKGJ1ZiA9PT0gbnVsbCkgfHwgKGJ1ZiA9PT0gRU1QVFlfU1RSSU5HKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG5cbn1cbiJdLCJuYW1lcyI6WyJ2YWxpZGF0ZUJOZiIsImJ1ZiIsIkVNUFRZX1NUUklORyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS2dCQTs7O2VBQUFBOzs7eUJBRmE7QUFFdEIsU0FBU0EsWUFBWUMsR0FBRztJQUM3QixJQUFJLEFBQUNBLFFBQVEsUUFBVUEsUUFBUUMsdUJBQVksRUFBRztRQUM1QztJQUNGO0FBR0YifQ==
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get nodeQuery () {
13
+ return nodeQuery;
14
+ },
15
+ get nodesQuery () {
16
+ return nodesQuery;
17
+ }
18
+ });
19
+ var _occamquery = require("occam-query");
20
+ function nodeQuery(expressionString) {
21
+ var query = _occamquery.Query.fromExpressionString(expressionString);
22
+ return function(node) {
23
+ var nodes = query.execute(node);
24
+ node = nodes.shift() || null; ///
25
+ return node;
26
+ };
27
+ }
28
+ function nodesQuery(expressionString) {
29
+ var query = _occamquery.Query.fromExpressionString(expressionString);
30
+ return function(node) {
31
+ var nodes = query.execute(node);
32
+ return nodes;
33
+ };
34
+ }
35
+
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBub2RlUXVlcnkoZXhwcmVzc2lvblN0cmluZykge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcpO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgbm9kZSA9IG5vZGVzLnNoaWZ0KCkgfHwgbnVsbDsgLy8vXG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzUXVlcnkoZXhwcmVzc2lvblN0cmluZykge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcpO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9O1xufVxuIl0sIm5hbWVzIjpbIm5vZGVRdWVyeSIsIm5vZGVzUXVlcnkiLCJleHByZXNzaW9uU3RyaW5nIiwicXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwibm9kZSIsIm5vZGVzIiwiZXhlY3V0ZSIsInNoaWZ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFJZ0JBO2VBQUFBOztRQVlBQztlQUFBQTs7OzBCQWRNO0FBRWYsU0FBU0QsVUFBVUUsZ0JBQWdCO0lBQ3hDLElBQU1DLFFBQVFDLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDSDtJQUV6QyxPQUFPLFNBQVNJLElBQUk7UUFDbEIsSUFBTUMsUUFBUUosTUFBTUssT0FBTyxDQUFDRjtRQUU1QkEsT0FBT0MsTUFBTUUsS0FBSyxNQUFNLE1BQU0sR0FBRztRQUVqQyxPQUFPSDtJQUNUO0FBQ0Y7QUFFTyxTQUFTTCxXQUFXQyxnQkFBZ0I7SUFDekMsSUFBTUMsUUFBUUMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUNIO0lBRXpDLE9BQU8sU0FBU0ksSUFBSTtRQUNsQixJQUFNQyxRQUFRSixNQUFNSyxPQUFPLENBQUNGO1FBRTVCLE9BQU9DO0lBQ1Q7QUFDRiJ9
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get expressionsFromVocabulary () {
13
+ return expressionsFromVocabulary;
14
+ },
15
+ get validateVocabulary () {
16
+ return validateVocabulary;
17
+ }
18
+ });
19
+ var _occamlexers = require("occam-lexers");
20
+ var _occamgrammars = require("occam-grammars");
21
+ var _necessary = require("necessary");
22
+ var _query = require("../utilities/query");
23
+ var _constants = require("../constants");
24
+ var errorNodesQuery = (0, _query.nodesQuery)("//error"), expressionNodesQuery = (0, _query.nodesQuery)("//expression");
25
+ var nominalLexer = _occamlexers.CommonLexer.fromNothing(_occamgrammars.NominalLexer), customGrammarVocabularyLexer = _occamgrammars.CustomGrammarVocabularyLexer.fromNothing(), customGrammarVocabularyParser = _occamgrammars.CustomGrammarVocabularyParser.fromNothing();
26
+ var first = _necessary.arrayUtilities.first, second = _necessary.arrayUtilities.second;
27
+ function validateVocabulary(vocabulary) {
28
+ if (vocabulary === null || vocabulary === _constants.EMPTY_STRING) {
29
+ return;
30
+ }
31
+ var content = vocabulary, tokens = customGrammarVocabularyLexer.tokenise(content), node = customGrammarVocabularyParser.parse(tokens);
32
+ if (node === null) {
33
+ throw new Error("The vocabulary cannot be parsed.");
34
+ }
35
+ var errorNodes = errorNodesQuery(node), errorNodesLength = errorNodes.length;
36
+ if (errorNodesLength > 0) {
37
+ throw new Error("The vocabulary contains errors.");
38
+ }
39
+ var expressionNodes = expressionNodesQuery(node);
40
+ expressionNodes.forEach(function(expressionNode) {
41
+ var content = contentFromExpressionNode(expressionNode), tokens = nominalLexer.tokenise(content), tokensLength = tokens.length;
42
+ if (tokensLength > 1) {
43
+ throw new Error("Tokenising '".concat(content, "' results in more than one token."));
44
+ }
45
+ var firstToken = first(tokens), token = firstToken, type = token.getType();
46
+ if (type !== _constants.UNASSIGNED_TYPE) {
47
+ throw new Error("The '".concat(type, "' type of the '").concat(content, "' token is not 'unassigned'."));
48
+ }
49
+ if (content === _constants.UNDERSCORE_CHARACTER) {
50
+ throw new Error("The '".concat(content, "' token cannot be an underscore."));
51
+ }
52
+ });
53
+ }
54
+ function expressionsFromVocabulary(vocabulary, expressions) {
55
+ if (vocabulary === null || vocabulary === _constants.EMPTY_STRING) {
56
+ return;
57
+ }
58
+ var content = vocabulary, tokens = customGrammarVocabularyLexer.tokenise(content), node = customGrammarVocabularyParser.parse(tokens), expressionNodes = expressionNodesQuery(node);
59
+ expressionNodes.forEach(function(expressionNode) {
60
+ var content = contentFromExpressionNode(expressionNode), expression = content; ///
61
+ expressions.push(expression);
62
+ });
63
+ }
64
+ function contentFromExpressionNode(expressionNode) {
65
+ var nonTerminalNode = expressionNode, childNodes = nonTerminalNode.getChildNodes(), secondChildNode = second(childNodes), unassignedTerminalNode = secondChildNode, content = unassignedTerminalNode.getContent();
66
+ return content;
67
+ }
68
+
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdm9jYWJ1bGFyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQ29tbW9uTGV4ZXIgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5pbXBvcnQgeyBOb21pbmFsTGV4ZXIgfSBmcm9tIFwib2NjYW0tZ3JhbW1hcnNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgQ3VzdG9tR3JhbW1hclZvY2FidWxhcnlMZXhlciwgQ3VzdG9tR3JhbW1hclZvY2FidWxhcnlQYXJzZXIgfSBmcm9tIFwib2NjYW0tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORywgVU5BU1NJR05FRF9UWVBFLCBVTkRFUlNDT1JFX0NIQVJBQ1RFUiB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuY29uc3QgZXJyb3JOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi8vZXJyb3JcIiksXG4gICAgICBleHByZXNzaW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvL2V4cHJlc3Npb25cIilcblxuY29uc3Qgbm9taW5hbExleGVyID0gQ29tbW9uTGV4ZXIuZnJvbU5vdGhpbmcoTm9taW5hbExleGVyKSxcbiAgICAgIGN1c3RvbUdyYW1tYXJWb2NhYnVsYXJ5TGV4ZXIgPSBDdXN0b21HcmFtbWFyVm9jYWJ1bGFyeUxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBjdXN0b21HcmFtbWFyVm9jYWJ1bGFyeVBhcnNlciA9IEN1c3RvbUdyYW1tYXJWb2NhYnVsYXJ5UGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IHsgZmlyc3QsIHNlY29uZCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVZvY2FidWxhcnkodm9jYWJ1bGFyeSkge1xuICBpZiAoKHZvY2FidWxhcnkgPT09IG51bGwpIHx8ICh2b2NhYnVsYXJ5ID09PSBFTVBUWV9TVFJJTkcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29udGVudCA9IHZvY2FidWxhcnksIC8vL1xuICAgICAgICB0b2tlbnMgPSBjdXN0b21HcmFtbWFyVm9jYWJ1bGFyeUxleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICBub2RlID0gY3VzdG9tR3JhbW1hclZvY2FidWxhcnlQYXJzZXIucGFyc2UodG9rZW5zKTtcblxuICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSB2b2NhYnVsYXJ5IGNhbm5vdCBiZSBwYXJzZWQuXCIpO1xuICB9XG5cbiAgY29uc3QgZXJyb3JOb2RlcyA9IGVycm9yTm9kZXNRdWVyeShub2RlKSxcbiAgICAgICAgZXJyb3JOb2Rlc0xlbmd0aCA9IGVycm9yTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChlcnJvck5vZGVzTGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSB2b2NhYnVsYXJ5IGNvbnRhaW5zIGVycm9ycy5cIik7XG4gIH1cblxuICBjb25zdCBleHByZXNzaW9uTm9kZXMgPSBleHByZXNzaW9uTm9kZXNRdWVyeShub2RlKTtcblxuICBleHByZXNzaW9uTm9kZXMuZm9yRWFjaCgoZXhwcmVzc2lvbk5vZGUpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gY29udGVudEZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSksXG4gICAgICAgICAgdG9rZW5zID0gbm9taW5hbExleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICAgIHRva2Vuc0xlbmd0aCA9IHRva2Vucy5sZW5ndGg7XG5cbiAgICBpZiAodG9rZW5zTGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUb2tlbmlzaW5nICcke2NvbnRlbnR9JyByZXN1bHRzIGluIG1vcmUgdGhhbiBvbmUgdG9rZW4uYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RUb2tlbiA9IGZpcnN0KHRva2VucyksXG4gICAgICAgICAgdG9rZW4gPSBmaXJzdFRva2VuLFxuICAgICAgICAgIHR5cGUgPSB0b2tlbi5nZXRUeXBlKCk7XG5cbiAgICBpZiAodHlwZSAhPT0gVU5BU1NJR05FRF9UWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAnJHt0eXBlfScgdHlwZSBvZiB0aGUgJyR7Y29udGVudH0nIHRva2VuIGlzIG5vdCAndW5hc3NpZ25lZCcuYCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnQgPT09IFVOREVSU0NPUkVfQ0hBUkFDVEVSKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAnJHtjb250ZW50fScgdG9rZW4gY2Fubm90IGJlIGFuIHVuZGVyc2NvcmUuYCk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25zRnJvbVZvY2FidWxhcnkodm9jYWJ1bGFyeSwgZXhwcmVzc2lvbnMpIHtcbiAgaWYgKCh2b2NhYnVsYXJ5ID09PSBudWxsKSB8fCAodm9jYWJ1bGFyeSA9PT0gRU1QVFlfU1RSSU5HKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSB2b2NhYnVsYXJ5LCAvLy9cbiAgICAgICAgdG9rZW5zID0gY3VzdG9tR3JhbW1hclZvY2FidWxhcnlMZXhlci50b2tlbmlzZShjb250ZW50KSxcbiAgICAgICAgbm9kZSA9IGN1c3RvbUdyYW1tYXJWb2NhYnVsYXJ5UGFyc2VyLnBhcnNlKHRva2VucyksXG4gICAgICAgIGV4cHJlc3Npb25Ob2RlcyA9IGV4cHJlc3Npb25Ob2Rlc1F1ZXJ5KG5vZGUpO1xuXG4gIGV4cHJlc3Npb25Ob2Rlcy5mb3JFYWNoKChleHByZXNzaW9uTm9kZSkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50RnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgICBleHByZXNzaW9uID0gY29udGVudDsgLy8vXG5cbiAgICBleHByZXNzaW9ucy5wdXNoKGV4cHJlc3Npb24pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY29udGVudEZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSkge1xuICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBleHByZXNzaW9uTm9kZSwgLy8vXG4gICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBzZWNvbmRDaGlsZE5vZGUgPSBzZWNvbmQoY2hpbGROb2RlcyksXG4gICAgICAgIHVuYXNzaWduZWRUZXJtaW5hbE5vZGUgPSBzZWNvbmRDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgY29udGVudCA9IHVuYXNzaWduZWRUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpO1xuXG4gIHJldHVybiBjb250ZW50O1xufVxuIl0sIm5hbWVzIjpbImV4cHJlc3Npb25zRnJvbVZvY2FidWxhcnkiLCJ2YWxpZGF0ZVZvY2FidWxhcnkiLCJlcnJvck5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiZXhwcmVzc2lvbk5vZGVzUXVlcnkiLCJub21pbmFsTGV4ZXIiLCJDb21tb25MZXhlciIsImZyb21Ob3RoaW5nIiwiTm9taW5hbExleGVyIiwiY3VzdG9tR3JhbW1hclZvY2FidWxhcnlMZXhlciIsIkN1c3RvbUdyYW1tYXJWb2NhYnVsYXJ5TGV4ZXIiLCJjdXN0b21HcmFtbWFyVm9jYWJ1bGFyeVBhcnNlciIsIkN1c3RvbUdyYW1tYXJWb2NhYnVsYXJ5UGFyc2VyIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsInNlY29uZCIsInZvY2FidWxhcnkiLCJFTVBUWV9TVFJJTkciLCJjb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJub2RlIiwicGFyc2UiLCJFcnJvciIsImVycm9yTm9kZXMiLCJlcnJvck5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiZXhwcmVzc2lvbk5vZGVzIiwiZm9yRWFjaCIsImV4cHJlc3Npb25Ob2RlIiwiY29udGVudEZyb21FeHByZXNzaW9uTm9kZSIsInRva2Vuc0xlbmd0aCIsImZpcnN0VG9rZW4iLCJ0b2tlbiIsInR5cGUiLCJnZXRUeXBlIiwiVU5BU1NJR05FRF9UWVBFIiwiVU5ERVJTQ09SRV9DSEFSQUNURVIiLCJleHByZXNzaW9ucyIsImV4cHJlc3Npb24iLCJwdXNoIiwibm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzZWNvbmRDaGlsZE5vZGUiLCJ1bmFzc2lnbmVkVGVybWluYWxOb2RlIiwiZ2V0Q29udGVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBZ0VnQkE7ZUFBQUE7O1FBN0NBQztlQUFBQTs7OzJCQWpCWTs2QkFDQzt5QkFDRTtxQkFHSjt5QkFDeUM7QUFFcEUsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLFlBQzdCQyx1QkFBdUJELElBQUFBLGlCQUFVLEVBQUM7QUFFeEMsSUFBTUUsZUFBZUMsd0JBQVcsQ0FBQ0MsV0FBVyxDQUFDQywyQkFBWSxHQUNuREMsK0JBQStCQywyQ0FBNEIsQ0FBQ0gsV0FBVyxJQUN2RUksZ0NBQWdDQyw0Q0FBNkIsQ0FBQ0wsV0FBVztBQUUvRSxJQUFRTSxRQUFrQkMseUJBQWMsQ0FBaENELE9BQU9FLFNBQVdELHlCQUFjLENBQXpCQztBQUVSLFNBQVNkLG1CQUFtQmUsVUFBVTtJQUMzQyxJQUFJLEFBQUNBLGVBQWUsUUFBVUEsZUFBZUMsdUJBQVksRUFBRztRQUMxRDtJQUNGO0lBRUEsSUFBTUMsVUFBVUYsWUFDVkcsU0FBU1YsNkJBQTZCVyxRQUFRLENBQUNGLFVBQy9DRyxPQUFPViw4QkFBOEJXLEtBQUssQ0FBQ0g7SUFFakQsSUFBSUUsU0FBUyxNQUFNO1FBQ2pCLE1BQU0sSUFBSUUsTUFBTTtJQUNsQjtJQUVBLElBQU1DLGFBQWF0QixnQkFBZ0JtQixPQUM3QkksbUJBQW1CRCxXQUFXRSxNQUFNO0lBRTFDLElBQUlELG1CQUFtQixHQUFHO1FBQ3hCLE1BQU0sSUFBSUYsTUFBTTtJQUNsQjtJQUVBLElBQU1JLGtCQUFrQnZCLHFCQUFxQmlCO0lBRTdDTSxnQkFBZ0JDLE9BQU8sQ0FBQyxTQUFDQztRQUN2QixJQUFNWCxVQUFVWSwwQkFBMEJELGlCQUNwQ1YsU0FBU2QsYUFBYWUsUUFBUSxDQUFDRixVQUMvQmEsZUFBZVosT0FBT08sTUFBTTtRQUVsQyxJQUFJSyxlQUFlLEdBQUc7WUFDcEIsTUFBTSxJQUFJUixNQUFNLEFBQUMsZUFBc0IsT0FBUkwsU0FBUTtRQUN6QztRQUVBLElBQU1jLGFBQWFuQixNQUFNTSxTQUNuQmMsUUFBUUQsWUFDUkUsT0FBT0QsTUFBTUUsT0FBTztRQUUxQixJQUFJRCxTQUFTRSwwQkFBZSxFQUFFO1lBQzVCLE1BQU0sSUFBSWIsTUFBTSxBQUFDLFFBQTZCTCxPQUF0QmdCLE1BQUssbUJBQXlCLE9BQVJoQixTQUFRO1FBQ3hEO1FBRUEsSUFBSUEsWUFBWW1CLCtCQUFvQixFQUFFO1lBQ3BDLE1BQU0sSUFBSWQsTUFBTSxBQUFDLFFBQWUsT0FBUkwsU0FBUTtRQUNsQztJQUNGO0FBQ0Y7QUFFTyxTQUFTbEIsMEJBQTBCZ0IsVUFBVSxFQUFFc0IsV0FBVztJQUMvRCxJQUFJLEFBQUN0QixlQUFlLFFBQVVBLGVBQWVDLHVCQUFZLEVBQUc7UUFDMUQ7SUFDRjtJQUVBLElBQU1DLFVBQVVGLFlBQ1ZHLFNBQVNWLDZCQUE2QlcsUUFBUSxDQUFDRixVQUMvQ0csT0FBT1YsOEJBQThCVyxLQUFLLENBQUNILFNBQzNDUSxrQkFBa0J2QixxQkFBcUJpQjtJQUU3Q00sZ0JBQWdCQyxPQUFPLENBQUMsU0FBQ0M7UUFDdkIsSUFBTVgsVUFBVVksMEJBQTBCRCxpQkFDcENVLGFBQWFyQixTQUFTLEdBQUc7UUFFL0JvQixZQUFZRSxJQUFJLENBQUNEO0lBQ25CO0FBQ0Y7QUFFQSxTQUFTVCwwQkFBMEJELGNBQWM7SUFDL0MsSUFBTVksa0JBQWtCWixnQkFDbEJhLGFBQWFELGdCQUFnQkUsYUFBYSxJQUMxQ0Msa0JBQWtCN0IsT0FBTzJCLGFBQ3pCRyx5QkFBeUJELGlCQUN6QjFCLFVBQVUyQix1QkFBdUJDLFVBQVU7SUFFakQsT0FBTzVCO0FBQ1QifQ==
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get SYMBOL_VOCABULARY_NAME () {
13
+ return SYMBOL_VOCABULARY_NAME;
14
+ },
15
+ get TYPE_VOCABULARY_NAME () {
16
+ return TYPE_VOCABULARY_NAME;
17
+ },
18
+ get default () {
19
+ return _default;
20
+ }
21
+ });
22
+ var TYPE_VOCABULARY_NAME = "type";
23
+ var SYMBOL_VOCABULARY_NAME = "symbol";
24
+ var _default = {
25
+ TYPE_VOCABULARY_NAME: TYPE_VOCABULARY_NAME,
26
+ SYMBOL_VOCABULARY_NAME: SYMBOL_VOCABULARY_NAME
27
+ };
28
+
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92b2NhYnVsYXJ5TmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBUWVBFX1ZPQ0FCVUxBUllfTkFNRSA9IFwidHlwZVwiO1xuZXhwb3J0IGNvbnN0IFNZTUJPTF9WT0NBQlVMQVJZX05BTUUgPSBcInN5bWJvbFwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFRZUEVfVk9DQUJVTEFSWV9OQU1FLFxuICBTWU1CT0xfVk9DQUJVTEFSWV9OQU1FXG59O1xuIl0sIm5hbWVzIjpbIlNZTUJPTF9WT0NBQlVMQVJZX05BTUUiLCJUWVBFX1ZPQ0FCVUxBUllfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBR2FBO2VBQUFBOztRQURBQztlQUFBQTs7UUFHYjtlQUFBOzs7QUFITyxJQUFNQSx1QkFBdUI7QUFDN0IsSUFBTUQseUJBQXlCO0lBRXRDLFdBQWU7SUFDYkMsc0JBQUFBO0lBQ0FELHdCQUFBQTtBQUNGIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-custom-grammars",
3
3
  "author": "James Smith",
4
- "version": "5.0.1227",
4
+ "version": "5.0.1228",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-custom-grammars",
7
7
  "description": "Occam's custom grammars.",
@@ -12,9 +12,10 @@
12
12
  "dependencies": {
13
13
  "necessary": "^14.3.2",
14
14
  "occam-grammar-utilities": "^8.0.345",
15
- "occam-grammars": "^1.3.309",
15
+ "occam-grammars": "^1.3.311",
16
16
  "occam-lexers": "^23.1.1",
17
- "occam-parsers": "^23.1.1"
17
+ "occam-parsers": "^23.1.1",
18
+ "occam-query": "^4.1.109"
18
19
  },
19
20
  "devDependencies": {
20
21
  "@swc/core": "^1.5.6",
package/src/constants.js CHANGED
@@ -2,3 +2,5 @@
2
2
 
3
3
  export const EMPTY_STRING = "";
4
4
  export const VERTICAL_BAR = "|";
5
+ export const UNASSIGNED_TYPE = "unassigned";
6
+ export const UNDERSCORE_CHARACTER = "_";
@@ -7,7 +7,8 @@ import { eliminateLeftRecursion } from "occam-grammar-utilities";
7
7
  import defaultCustomGrammar from "../customGrammar/default";
8
8
 
9
9
  import { EMPTY_STRING, VERTICAL_BAR } from "../constants";
10
- import { TYPE_PATTERN_NAME, SYMBOL_PATTERN_NAME } from "../patternNames";
10
+ import { validateVocabulary, expressionsFromVocabulary } from "../utilities/vocabulary";
11
+ import { TYPE_VOCABULARY_NAME, SYMBOL_VOCABULARY_NAME } from "../vocabularyNames";
11
12
 
12
13
  const { rulesFromBNF } = parserUtilities,
13
14
  { unshift, backwardsForEach } = arrayUtilities;
@@ -79,12 +80,12 @@ function rulesFromCustomGrammarsAndDefaultBNF(customGrammars) {
79
80
  }
80
81
 
81
82
  function entriesFromCustomGrammars(customGrammars) {
82
- const patternNames = [
83
- TYPE_PATTERN_NAME,
84
- SYMBOL_PATTERN_NAME
83
+ const vocabularyNames = [
84
+ TYPE_VOCABULARY_NAME,
85
+ SYMBOL_VOCABULARY_NAME
85
86
  ],
86
- entries = patternNames.map((patternName) => {
87
- const entry = entryFromCustomGrammars(customGrammars, patternName);
87
+ entries = vocabularyNames.map((vocabularyName) => {
88
+ const entry = entryFromCustomGrammars(customGrammars, vocabularyName);
88
89
 
89
90
  return entry;
90
91
  });
@@ -92,28 +93,23 @@ function entriesFromCustomGrammars(customGrammars) {
92
93
  return entries;
93
94
  }
94
95
 
95
- function entryFromCustomGrammars(customGrammars, patternName) {
96
- const patterns = [];
96
+ function entryFromCustomGrammars(customGrammars, vocabularyName) {
97
+ const expressions = [];
97
98
 
98
99
  backwardsForEach(customGrammars, (customGrammar) => {
99
- const pattern = customGrammar.getPattern(patternName);
100
+ const vocabulary = customGrammar.getVocabulary(vocabularyName),
101
+ customGrammarDefaultCustomGrammar = customGrammar.isDefaultCustomGrammar();
100
102
 
101
- if ((pattern !== null) && (pattern !== EMPTY_STRING)) {
102
- const subPatterns = pattern.split(VERTICAL_BAR);
103
-
104
- subPatterns.forEach((subPattern) => {
105
- const pattern = (patternName === TYPE_PATTERN_NAME) ?
106
- `${subPattern}(?!\\w)` :
107
- subPattern; ///
108
-
109
- patterns.push(pattern);
110
- });
103
+ if (!customGrammarDefaultCustomGrammar) {
104
+ validateVocabulary(vocabulary);
111
105
  }
106
+
107
+ expressionsFromVocabulary(vocabulary, expressions);
112
108
  });
113
109
 
114
- const patternsString = patterns.join(VERTICAL_BAR),
115
- entryName = patternName, ///
116
- entryValue = `^(?:${patternsString})`,
110
+ const pattern = expressions.join(VERTICAL_BAR),
111
+ entryName = vocabularyName, ///
112
+ entryValue = `^(?:${pattern})`,
117
113
  entry = {
118
114
  [entryName]: entryValue
119
115
  };
@@ -62,17 +62,18 @@ statementSubstitution ::= "[" statement "for" statement "]";
62
62
 
63
63
  referenceSubstitution ::= "[" reference "for" reference "]";`;
64
64
 
65
- export const typePattern = "_";
65
+ export const typeVocabulary = `_
66
+ `;
66
67
 
67
- export const symbolPattern = "";
68
+ export const symbolVocabulary = "";
68
69
 
69
70
  const name = DEFAULT_CUSTOM_GRAMMAR_NAME,
70
71
  json = {
71
72
  name,
72
73
  termBNF,
73
74
  statementBNF,
74
- typePattern,
75
- symbolPattern
75
+ typeVocabulary,
76
+ symbolVocabulary
76
77
  };
77
78
 
78
79
  const defaultCustomGrammar = CustomGrammar.fromJSON(json);