occam-furtle 3.0.371 → 3.0.375

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/constants.js CHANGED
@@ -27,6 +27,12 @@ _export(exports, {
27
27
  get NULL () {
28
28
  return NULL;
29
29
  },
30
+ get PERIOD () {
31
+ return PERIOD;
32
+ },
33
+ get PERIOD_STRING_LITERAL () {
34
+ return PERIOD_STRING_LITERAL;
35
+ },
30
36
  get TRUE () {
31
37
  return TRUE;
32
38
  }
@@ -34,9 +40,11 @@ _export(exports, {
34
40
  const NULL = "null";
35
41
  const TRUE = "true";
36
42
  const FALSE = "false";
43
+ const PERIOD = ".";
37
44
  const EMPTY_STRING = "";
38
45
  const NOT_EQUAL_TO = "!=";
39
46
  const CONJUNCTION_OPERATOR = "&&";
40
47
  const DISJUNCTION_OPERATOR = "||";
48
+ const PERIOD_STRING_LITERAL = `"."`;
41
49
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBOVUxMID0gXCJudWxsXCI7XG5leHBvcnQgY29uc3QgVFJVRSA9IFwidHJ1ZVwiO1xuZXhwb3J0IGNvbnN0IEZBTFNFID0gXCJmYWxzZVwiO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgTk9UX0VRVUFMX1RPID0gXCIhPVwiO1xuZXhwb3J0IGNvbnN0IENPTkpVTkNUSU9OX09QRVJBVE9SID0gXCImJlwiO1xuZXhwb3J0IGNvbnN0IERJU0pVTkNUSU9OX09QRVJBVE9SID0gXCJ8fFwiO1xuIl0sIm5hbWVzIjpbIkNPTkpVTkNUSU9OX09QRVJBVE9SIiwiRElTSlVOQ1RJT05fT1BFUkFUT1IiLCJFTVBUWV9TVFJJTkciLCJGQUxTRSIsIk5PVF9FUVVBTF9UTyIsIk5VTEwiLCJUUlVFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFPYUE7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQUhBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBRUFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFDQUM7ZUFBQUE7OztBQUROLE1BQU1ELE9BQU87QUFDYixNQUFNQyxPQUFPO0FBQ2IsTUFBTUgsUUFBUTtBQUNkLE1BQU1ELGVBQWU7QUFDckIsTUFBTUUsZUFBZTtBQUNyQixNQUFNSix1QkFBdUI7QUFDN0IsTUFBTUMsdUJBQXVCIn0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBOVUxMID0gXCJudWxsXCI7XG5leHBvcnQgY29uc3QgVFJVRSA9IFwidHJ1ZVwiO1xuZXhwb3J0IGNvbnN0IEZBTFNFID0gXCJmYWxzZVwiO1xuZXhwb3J0IGNvbnN0IFBFUklPRCA9IFwiLlwiO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgTk9UX0VRVUFMX1RPID0gXCIhPVwiO1xuZXhwb3J0IGNvbnN0IENPTkpVTkNUSU9OX09QRVJBVE9SID0gXCImJlwiO1xuZXhwb3J0IGNvbnN0IERJU0pVTkNUSU9OX09QRVJBVE9SID0gXCJ8fFwiO1xuZXhwb3J0IGNvbnN0IFBFUklPRF9TVFJJTkdfTElURVJBTCA9IGBcIi5cImA7XG4iXSwibmFtZXMiOlsiQ09OSlVOQ1RJT05fT1BFUkFUT1IiLCJESVNKVU5DVElPTl9PUEVSQVRPUiIsIkVNUFRZX1NUUklORyIsIkZBTFNFIiwiTk9UX0VRVUFMX1RPIiwiTlVMTCIsIlBFUklPRCIsIlBFUklPRF9TVFJJTkdfTElURVJBTCIsIlRSVUUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVFhQTtlQUFBQTs7UUFDQUM7ZUFBQUE7O1FBSEFDO2VBQUFBOztRQUZBQztlQUFBQTs7UUFHQUM7ZUFBQUE7O1FBTEFDO2VBQUFBOztRQUdBQztlQUFBQTs7UUFLQUM7ZUFBQUE7O1FBUEFDO2VBQUFBOzs7QUFETixNQUFNSCxPQUFPO0FBQ2IsTUFBTUcsT0FBTztBQUNiLE1BQU1MLFFBQVE7QUFDZCxNQUFNRyxTQUFTO0FBQ2YsTUFBTUosZUFBZTtBQUNyQixNQUFNRSxlQUFlO0FBQ3JCLE1BQU1KLHVCQUF1QjtBQUM3QixNQUFNQyx1QkFBdUI7QUFDN0IsTUFBTU0sd0JBQXdCLENBQUMsR0FBRyxDQUFDIn0=
@@ -9,17 +9,12 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  const _occamlanguages = require("occam-languages");
12
- const _lexer = /*#__PURE__*/ _interop_require_default(require("../../furtle/lexer"));
13
- const _parser = /*#__PURE__*/ _interop_require_default(require("../../furtle/parser"));
12
+ const _occamquery = require("occam-query");
14
13
  const _verify = require("../../process/verify");
14
+ const _furtle = require("../../utilities/furtle");
15
15
  const _json = require("../../utilities/json");
16
- function _interop_require_default(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- const { furtleLexerFromNothing, furtleParserFromNothing } = _occamlanguages.furtleUtilities;
22
- const furtleLexer = furtleLexerFromNothing(_lexer.default), furtleParser = furtleParserFromNothing(_parser.default);
16
+ const { nodesQuery } = _occamquery.queryUtilities;
17
+ const procedureNodesQuery = nodesQuery("/document/procedure");
23
18
  class FurtleFileContext extends _occamlanguages.FileContext {
24
19
  constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures){
25
20
  super(context, fileContent, filePath, tokens, node, json);
@@ -103,6 +98,15 @@ class FurtleFileContext extends _occamlanguages.FileContext {
103
98
  const filePath = this.getFilePath();
104
99
  this.debug(`Added the '${procedureString}' function to the '${filePath}' file context.`);
105
100
  }
101
+ findProcedureNode(label) {
102
+ const node = this.getNode(), labelNode = label.getNode(), documentNode = node, procedureNodes = procedureNodesQuery(documentNode), procedureNode = procedureNodes.find((procedureNode)=>{
103
+ const labelMatches = procedureNode.matchLabelNode(labelNode);
104
+ if (labelMatches) {
105
+ return true;
106
+ }
107
+ }) || null;
108
+ return procedureNode;
109
+ }
106
110
  findProcedureByProcedureName(procedureName) {
107
111
  const procedures = this.getProcedures(), procedure = procedures.find((procedure)=>{
108
112
  const procedureComparesToProcedureName = procedure.compareProcedureName(procedureName);
@@ -123,13 +127,12 @@ class FurtleFileContext extends _occamlanguages.FileContext {
123
127
  ///
124
128
  }
125
129
  initialise() {
130
+ super.initialise(); ///
126
131
  const json = this.getJSON();
127
- if (json === null) {
128
- super.initialise();
129
- return;
132
+ if (json !== null) {
133
+ const fileContext = this; ///
134
+ this.procedures = (0, _json.proceduresFromJSON)(json, fileContext);
130
135
  }
131
- const fileContext = this; ///
132
- this.procedures = (0, _json.proceduresFromJSON)(json, fileContext);
133
136
  }
134
137
  async verifyFile() {
135
138
  const node = this.getNode(), context = this, fileNode = node, fileVerifies = (0, _verify.verifyFile)(fileNode, context);
@@ -144,13 +147,13 @@ class FurtleFileContext extends _occamlanguages.FileContext {
144
147
  return json;
145
148
  }
146
149
  static fromFile(file, context) {
147
- const lexer = furtleLexer, parser = furtleParser, procedures = [], furtleFileContext = _occamlanguages.FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, context);
150
+ const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = [], furtleFileContext = _occamlanguages.FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, context);
148
151
  return furtleFileContext;
149
152
  }
150
153
  static fromJSON(json, context) {
151
- const lexer = furtleLexer, parser = furtleParser, procedures = null, furtleFileContext = _occamlanguages.FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, context);
154
+ const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = null, furtleFileContext = _occamlanguages.FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, context);
152
155
  return furtleFileContext;
153
156
  }
154
157
  }
155
158
 
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCwgZnVydGxlVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRnVydGxlTGV4ZXIgZnJvbSBcIi4uLy4uL2Z1cnRsZS9sZXhlclwiO1xuaW1wb3J0IEZ1cnRsZVBhcnNlciBmcm9tIFwiLi4vLi4vZnVydGxlL3BhcnNlclwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlGaWxlIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvdmVyaWZ5XCI7XG5pbXBvcnQgeyBwcm9jZWR1cmVzRnJvbUpTT04sIHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZnVydGxlTGV4ZXJGcm9tTm90aGluZywgZnVydGxlUGFyc2VyRnJvbU5vdGhpbmcgfSA9IGZ1cnRsZVV0aWxpdGllcztcblxuY29uc3QgZnVydGxlTGV4ZXIgPSBmdXJ0bGVMZXhlckZyb21Ob3RoaW5nKEZ1cnRsZUxleGVyKSxcbiAgICAgIGZ1cnRsZVBhcnNlciA9IGZ1cnRsZVBhcnNlckZyb21Ob3RoaW5nKEZ1cnRsZVBhcnNlcik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZXMgPSB0aGlzLmdldFByb2NlZHVyZXMoKSxcbiAgICAgICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmVzLmZpbmQoKHByb2NlZHVyZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUgPSBwcm9jZWR1cmUuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIGlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSAocHJvY2VkdXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVQcmVzZW50O1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5wcm9jZWR1cmVzID0gW107XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICAvLy9cbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZ2V0SlNPTigpO1xuXG4gICAgaWYgKGpzb24gPT09IG51bGwpIHtcbiAgICAgIHN1cGVyLmluaXRpYWxpc2UoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RmlsZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGZpbGVOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGZpbGVWZXJpZmllcyA9IHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZpbGVWZXJpZmllcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzSlNPTiA9IHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OKHRoaXMucHJvY2VkdXJlcyksXG4gICAgICAgICAgZmlsZUNvbnRlbnQgPSB0aGlzLmdldEZpbGVDb250ZW50KCksXG4gICAgICAgICAgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IHByb2NlZHVyZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGZpbGVDb250ZW50LFxuICAgICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgICBwcm9jZWR1cmVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21GaWxlKGZpbGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IFtdLFxuICAgICAgICAgIGZ1cnRsZUZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGUoRnVydGxlRmlsZUNvbnRleHQsIGZpbGUsIGxleGVyLCBwYXJzZXIsIHByb2NlZHVyZXMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZ1cnRsZUZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IG51bGwsXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tSlNPTihGdXJ0bGVGaWxlQ29udGV4dCwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGdXJ0bGVGaWxlQ29udGV4dCIsImZ1cnRsZUxleGVyRnJvbU5vdGhpbmciLCJmdXJ0bGVQYXJzZXJGcm9tTm90aGluZyIsImZ1cnRsZVV0aWxpdGllcyIsImZ1cnRsZUxleGVyIiwiRnVydGxlTGV4ZXIiLCJmdXJ0bGVQYXJzZXIiLCJGdXJ0bGVQYXJzZXIiLCJGaWxlQ29udGV4dCIsImNvbnRleHQiLCJmaWxlQ29udGVudCIsImZpbGVQYXRoIiwidG9rZW5zIiwibm9kZSIsImpzb24iLCJsZXhlciIsInBhcnNlciIsInByb2NlZHVyZXMiLCJnZXRMZXhlciIsImdldFBhcnNlciIsImdldExhYmVscyIsImluY2x1ZGVSZWxlYXNlIiwibGFiZWxzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImdldFJ1bGVzIiwicnVsZXMiLCJnZXRBeGlvbXMiLCJheGlvbXMiLCJnZXRMZW1tYXMiLCJsZW1tYXMiLCJnZXRUaGVvcmVtcyIsInRoZW9yZW1zIiwiZ2V0TWV0YUxlbW1hcyIsIm1ldGFMZW1tYXMiLCJnZXRHZW5lcmF0b3JzIiwiZ2VuZXJhdG9ycyIsImdldENvbmplY3R1cmVzIiwiY29uamVjdHVyZXMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0VHlwZVByZWZpeGVzIiwidHlwZVByZWZpeGVzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZ2V0TWV0YXRoZW9yZW1zIiwibWV0YXRoZW9yZW1zIiwiZ2V0TWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZXMiLCJnZXRQcm9jZWR1cmVzIiwiZ2V0VmFyaWFibGVzIiwibmVzdGVkIiwidmFyaWFibGVzIiwiYWRkUHJvY2VkdXJlIiwicHJvY2VkdXJlIiwicHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwicHVzaCIsImdldEZpbGVQYXRoIiwiZGVidWciLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsImZpbmQiLCJwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImNsZWFyIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZ2V0SlNPTiIsImZpbGVDb250ZXh0IiwicHJvY2VkdXJlc0Zyb21KU09OIiwidmVyaWZ5RmlsZSIsImdldE5vZGUiLCJmaWxlTm9kZSIsImZpbGVWZXJpZmllcyIsInRvSlNPTiIsInByb2NlZHVyZXNKU09OIiwicHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04iLCJnZXRGaWxlQ29udGVudCIsImZyb21GaWxlIiwiZmlsZSIsImZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWVBOzs7ZUFBcUJBOzs7Z0NBYndCOzhEQUVyQjsrREFDQzt3QkFFRTtzQkFDb0M7Ozs7OztBQUUvRCxNQUFNLEVBQUVDLHNCQUFzQixFQUFFQyx1QkFBdUIsRUFBRSxHQUFHQywrQkFBZTtBQUUzRSxNQUFNQyxjQUFjSCx1QkFBdUJJLGNBQVcsR0FDaERDLGVBQWVKLHdCQUF3QkssZUFBWTtBQUUxQyxNQUFNUCwwQkFBMEJRLDJCQUFXO0lBQ3hELFlBQVlDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxVQUFVLENBQUU7UUFDekYsS0FBSyxDQUFDUixTQUFTQyxhQUFhQyxVQUFVQyxRQUFRQyxNQUFNQztRQUVwRCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDSCxLQUFLO0lBQ25CO0lBRUFJLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQ0gsTUFBTTtJQUNwQjtJQUVBSSxVQUFVQyxpQkFBaUIsSUFBSSxFQUFFO1FBQy9CLE1BQU1DLFNBQVMsRUFBRTtRQUVqQixPQUFPQTtJQUNUO0lBRUFDLFNBQVNGLGlCQUFpQixJQUFJLEVBQUU7UUFDOUIsTUFBTUcsUUFBUSxFQUFFO1FBRWhCLE9BQU9BO0lBQ1Q7SUFFQUMsU0FBU0osaUJBQWlCLElBQUksRUFBRTtRQUM5QixNQUFNSyxRQUFRLEVBQUU7UUFFaEIsT0FBT0E7SUFDVDtJQUVBQyxVQUFVTixpQkFBaUIsSUFBSSxFQUFFO1FBQy9CLE1BQU1PLFNBQVMsRUFBRTtRQUVqQixPQUFPQTtJQUNUO0lBRUFDLFVBQVVSLGlCQUFpQixJQUFJLEVBQUU7UUFDL0IsTUFBTVMsU0FBUyxFQUFFO1FBRWpCLE9BQU9BO0lBQ1Q7SUFFQUMsWUFBWVYsaUJBQWlCLElBQUksRUFBRTtRQUNqQyxNQUFNVyxXQUFXLEVBQUU7UUFFbkIsT0FBT0E7SUFDVDtJQUVBQyxjQUFjWixpQkFBaUIsSUFBSSxFQUFFO1FBQ25DLE1BQU1hLGFBQWEsRUFBRTtRQUVyQixPQUFPQTtJQUNUO0lBRUFDLGNBQWNkLGlCQUFpQixJQUFJLEVBQUU7UUFDbkMsTUFBTWUsYUFBYSxFQUFFO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsZUFBZWhCLGlCQUFpQixJQUFJLEVBQUU7UUFDcEMsTUFBTWlCLGNBQWMsRUFBRTtRQUV0QixPQUFPQTtJQUNUO0lBRUFDLGVBQWVsQixpQkFBaUIsSUFBSSxFQUFFO1FBQ3BDLE1BQU1tQixjQUFjLEVBQUU7UUFFdEIsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0JwQixpQkFBaUIsSUFBSSxFQUFFO1FBQ3JDLE1BQU1xQixlQUFlLEVBQUU7UUFFdkIsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0J0QixpQkFBaUIsSUFBSSxFQUFFO1FBQ3JDLE1BQU11QixlQUFlLEVBQUU7UUFFdkIsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0J4QixpQkFBaUIsSUFBSSxFQUFFO1FBQ3JDLE1BQU15QixlQUFlLEVBQUU7UUFFdkIsT0FBT0E7SUFDVDtJQUVBQyxpQkFBaUIxQixpQkFBaUIsSUFBSSxFQUFFO1FBQ3RDLE1BQU0yQixnQkFBZ0IsRUFBRTtRQUV4QixPQUFPQTtJQUNUO0lBRUFDLGNBQWM1QixpQkFBaUIsSUFBSSxFQUFFO1FBQ25DLE1BQU1KLGFBQWFJLGlCQUNFLElBQUksQ0FBQ1osT0FBTyxDQUFDd0MsYUFBYSxLQUN4QixJQUFJLENBQUNoQyxVQUFVO1FBRXRDLE9BQU9BO0lBQ1Q7SUFFQWlDLGFBQWFDLFNBQVMsSUFBSSxFQUFFO1FBQzFCLE1BQU1DLFlBQVksRUFBRTtRQUVwQixPQUFPQTtJQUNUO0lBRUFDLGFBQWFDLFNBQVMsRUFBRTtRQUN0QixNQUFNQyxrQkFBa0JELFVBQVVFLFNBQVM7UUFFM0MsSUFBSSxDQUFDdkMsVUFBVSxDQUFDd0MsSUFBSSxDQUFDSDtRQUVyQixNQUFNM0MsV0FBVyxJQUFJLENBQUMrQyxXQUFXO1FBRWpDLElBQUksQ0FBQ0MsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFSixnQkFBZ0IsbUJBQW1CLEVBQUU1QyxTQUFTLGVBQWUsQ0FBQztJQUN6RjtJQUVBaUQsNkJBQTZCQyxhQUFhLEVBQUU7UUFDMUMsTUFBTTVDLGFBQWEsSUFBSSxDQUFDZ0MsYUFBYSxJQUMvQkssWUFBWXJDLFdBQVc2QyxJQUFJLENBQUMsQ0FBQ1I7WUFDM0IsTUFBTVMsbUNBQW1DVCxVQUFVVSxvQkFBb0IsQ0FBQ0g7WUFFeEUsSUFBSUUsa0NBQWtDO2dCQUNwQyxPQUFPO1lBQ1Q7UUFDRixNQUFNO1FBRVosT0FBT1Q7SUFDVDtJQUVBVyxrQ0FBa0NKLGFBQWEsRUFBRTtRQUMvQyxNQUFNUCxZQUFZLElBQUksQ0FBQ00sNEJBQTRCLENBQUNDLGdCQUM5Q0ssbUJBQW9CWixjQUFjO1FBRXhDLE9BQU9ZO0lBQ1Q7SUFFQUMsUUFBUTtRQUNOLElBQUksQ0FBQ2xELFVBQVUsR0FBRyxFQUFFO0lBQ3RCO0lBRUFtRCxXQUFXO0lBQ1QsR0FBRztJQUNMO0lBRUFDLGFBQWE7UUFDWCxNQUFNdkQsT0FBTyxJQUFJLENBQUN3RCxPQUFPO1FBRXpCLElBQUl4RCxTQUFTLE1BQU07WUFDakIsS0FBSyxDQUFDdUQ7WUFFTjtRQUNGO1FBRUEsTUFBTUUsY0FBYyxJQUFJLEVBQUUsR0FBRztRQUU3QixJQUFJLENBQUN0RCxVQUFVLEdBQUd1RCxJQUFBQSx3QkFBa0IsRUFBQzFELE1BQU15RDtJQUM3QztJQUVBLE1BQU1FLGFBQWE7UUFDakIsTUFBTTVELE9BQU8sSUFBSSxDQUFDNkQsT0FBTyxJQUNuQmpFLFVBQVUsSUFBSSxFQUNka0UsV0FBVzlELE1BQ1grRCxlQUFlSCxJQUFBQSxrQkFBVSxFQUFDRSxVQUFVbEU7UUFFMUMsT0FBT21FO0lBQ1Q7SUFFQUMsU0FBUztRQUNQLE1BQU1DLGlCQUFpQkMsSUFBQUEsZ0NBQTBCLEVBQUMsSUFBSSxDQUFDOUQsVUFBVSxHQUMzRFAsY0FBYyxJQUFJLENBQUNzRSxjQUFjLElBQ2pDckUsV0FBVyxJQUFJLENBQUMrQyxXQUFXLElBQzNCekMsYUFBYTZELGdCQUNiaEUsT0FBTztZQUNMSjtZQUNBQztZQUNBTTtRQUNGO1FBRU4sT0FBT0g7SUFDVDtJQUVBLE9BQU9tRSxTQUFTQyxJQUFJLEVBQUV6RSxPQUFPLEVBQUU7UUFDN0IsTUFBTU0sUUFBUVgsYUFDUlksU0FBU1YsY0FDVFcsYUFBYSxFQUFFLEVBQ2ZrRSxvQkFBb0IzRSwyQkFBVyxDQUFDeUUsUUFBUSxDQUFDakYsbUJBQW1Ca0YsTUFBTW5FLE9BQU9DLFFBQVFDLFlBQVlSO1FBRW5HLE9BQU8wRTtJQUNUO0lBRUEsT0FBT0MsU0FBU3RFLElBQUksRUFBRUwsT0FBTyxFQUFFO1FBQzdCLE1BQU1NLFFBQVFYLGFBQ1JZLFNBQVNWLGNBQ1RXLGFBQWEsTUFDYmtFLG9CQUFvQjNFLDJCQUFXLENBQUM0RSxRQUFRLENBQUNwRixtQkFBbUJjLE1BQU1DLE9BQU9DLFFBQVFDLFlBQVlSO1FBRW5HLE9BQU8wRTtJQUNUO0FBQ0YifQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IHZlcmlmeUZpbGUgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy92ZXJpZnlcIjtcbmltcG9ydCB7IGZ1cnRsZUxleGVyLCBmdXJ0bGVQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Z1cnRsZVwiO1xuaW1wb3J0IHsgcHJvY2VkdXJlc0Zyb21KU09OLCBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IG5vZGVzUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBwcm9jZWR1cmVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kb2N1bWVudC9wcm9jZWR1cmVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IGxhYmVsLmdldE5vZGUoKSxcbiAgICAgICAgICBkb2N1bWVudE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZXMgPSBwcm9jZWR1cmVOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IHByb2NlZHVyZU5vZGVzLmZpbmQoKHByb2NlZHVyZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsTWF0Y2hlcyA9IHByb2NlZHVyZU5vZGUubWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5vZGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gdGhpcy5nZXRQcm9jZWR1cmVzKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gcHJvY2VkdXJlcy5maW5kKChwcm9jZWR1cmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXMuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gKHByb2NlZHVyZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgLy8vXG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpc2UoKTsgLy8vXG5cbiAgICBjb25zdCBqc29uID0gdGhpcy5nZXRKU09OKCk7XG5cbiAgICBpZiAoanNvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzOyAvLy9cblxuICAgICAgdGhpcy5wcm9jZWR1cmVzID0gcHJvY2VkdXJlc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB2ZXJpZnlGaWxlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgZmlsZU5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgZmlsZVZlcmlmaWVzID0gdmVyaWZ5RmlsZShmaWxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZmlsZVZlcmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHByb2NlZHVyZXNKU09OID0gcHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04odGhpcy5wcm9jZWR1cmVzKSxcbiAgICAgICAgICBmaWxlQ29udGVudCA9IHRoaXMuZ2V0RmlsZUNvbnRlbnQoKSxcbiAgICAgICAgICBmaWxlUGF0aCA9IHRoaXMuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICBwcm9jZWR1cmVzID0gcHJvY2VkdXJlc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgZmlsZUNvbnRlbnQsXG4gICAgICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgICAgIHByb2NlZHVyZXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGUoZmlsZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmVzID0gW10sXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tRmlsZShGdXJ0bGVGaWxlQ29udGV4dCwgZmlsZSwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmVzID0gbnVsbCxcbiAgICAgICAgICBmdXJ0bGVGaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21KU09OKEZ1cnRsZUZpbGVDb250ZXh0LCBqc29uLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmdXJ0bGVGaWxlQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZ1cnRsZUZpbGVDb250ZXh0Iiwibm9kZXNRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwicHJvY2VkdXJlTm9kZXNRdWVyeSIsIkZpbGVDb250ZXh0IiwiY29udGV4dCIsImZpbGVDb250ZW50IiwiZmlsZVBhdGgiLCJ0b2tlbnMiLCJub2RlIiwianNvbiIsImxleGVyIiwicGFyc2VyIiwicHJvY2VkdXJlcyIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiZ2V0TGFiZWxzIiwiaW5jbHVkZVJlbGVhc2UiLCJsYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImdldEF4aW9tcyIsImF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJnZXRNZXRhTGVtbWFzIiwibWV0YUxlbW1hcyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImdldFByb2NlZHVyZXMiLCJnZXRWYXJpYWJsZXMiLCJuZXN0ZWQiLCJ2YXJpYWJsZXMiLCJhZGRQcm9jZWR1cmUiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVTdHJpbmciLCJnZXRTdHJpbmciLCJwdXNoIiwiZ2V0RmlsZVBhdGgiLCJkZWJ1ZyIsImZpbmRQcm9jZWR1cmVOb2RlIiwibGFiZWwiLCJnZXROb2RlIiwibGFiZWxOb2RlIiwiZG9jdW1lbnROb2RlIiwicHJvY2VkdXJlTm9kZXMiLCJwcm9jZWR1cmVOb2RlIiwiZmluZCIsImxhYmVsTWF0Y2hlcyIsIm1hdGNoTGFiZWxOb2RlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImNsZWFyIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZ2V0SlNPTiIsImZpbGVDb250ZXh0IiwicHJvY2VkdXJlc0Zyb21KU09OIiwidmVyaWZ5RmlsZSIsImZpbGVOb2RlIiwiZmlsZVZlcmlmaWVzIiwidG9KU09OIiwicHJvY2VkdXJlc0pTT04iLCJwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiIsImdldEZpbGVDb250ZW50IiwiZnJvbUZpbGUiLCJmaWxlIiwiZnVydGxlTGV4ZXIiLCJmdXJ0bGVQYXJzZXIiLCJmdXJ0bGVGaWxlQ29udGV4dCIsImZyb21KU09OIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQXFCQTs7O2dDQVhPOzRCQUNHO3dCQUVKO3dCQUNlO3NCQUNxQjtBQUUvRCxNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHQywwQkFBYztBQUVyQyxNQUFNQyxzQkFBc0JGLFdBQVc7QUFFeEIsTUFBTUQsMEJBQTBCSSwyQkFBVztJQUN4RCxZQUFZQyxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsVUFBVSxDQUFFO1FBQ3pGLEtBQUssQ0FBQ1IsU0FBU0MsYUFBYUMsVUFBVUMsUUFBUUMsTUFBTUM7UUFFcEQsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0gsS0FBSztJQUNuQjtJQUVBSSxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNILE1BQU07SUFDcEI7SUFFQUksVUFBVUMsaUJBQWlCLElBQUksRUFBRTtRQUMvQixNQUFNQyxTQUFTLEVBQUU7UUFFakIsT0FBT0E7SUFDVDtJQUVBQyxTQUFTRixpQkFBaUIsSUFBSSxFQUFFO1FBQzlCLE1BQU1HLFFBQVEsRUFBRTtRQUVoQixPQUFPQTtJQUNUO0lBRUFDLFNBQVNKLGlCQUFpQixJQUFJLEVBQUU7UUFDOUIsTUFBTUssUUFBUSxFQUFFO1FBRWhCLE9BQU9BO0lBQ1Q7SUFFQUMsVUFBVU4saUJBQWlCLElBQUksRUFBRTtRQUMvQixNQUFNTyxTQUFTLEVBQUU7UUFFakIsT0FBT0E7SUFDVDtJQUVBQyxVQUFVUixpQkFBaUIsSUFBSSxFQUFFO1FBQy9CLE1BQU1TLFNBQVMsRUFBRTtRQUVqQixPQUFPQTtJQUNUO0lBRUFDLFlBQVlWLGlCQUFpQixJQUFJLEVBQUU7UUFDakMsTUFBTVcsV0FBVyxFQUFFO1FBRW5CLE9BQU9BO0lBQ1Q7SUFFQUMsY0FBY1osaUJBQWlCLElBQUksRUFBRTtRQUNuQyxNQUFNYSxhQUFhLEVBQUU7UUFFckIsT0FBT0E7SUFDVDtJQUVBQyxjQUFjZCxpQkFBaUIsSUFBSSxFQUFFO1FBQ25DLE1BQU1lLGFBQWEsRUFBRTtRQUVyQixPQUFPQTtJQUNUO0lBRUFDLGVBQWVoQixpQkFBaUIsSUFBSSxFQUFFO1FBQ3BDLE1BQU1pQixjQUFjLEVBQUU7UUFFdEIsT0FBT0E7SUFDVDtJQUVBQyxlQUFlbEIsaUJBQWlCLElBQUksRUFBRTtRQUNwQyxNQUFNbUIsY0FBYyxFQUFFO1FBRXRCLE9BQU9BO0lBQ1Q7SUFFQUMsZ0JBQWdCcEIsaUJBQWlCLElBQUksRUFBRTtRQUNyQyxNQUFNcUIsZUFBZSxFQUFFO1FBRXZCLE9BQU9BO0lBQ1Q7SUFFQUMsZ0JBQWdCdEIsaUJBQWlCLElBQUksRUFBRTtRQUNyQyxNQUFNdUIsZUFBZSxFQUFFO1FBRXZCLE9BQU9BO0lBQ1Q7SUFFQUMsZ0JBQWdCeEIsaUJBQWlCLElBQUksRUFBRTtRQUNyQyxNQUFNeUIsZUFBZSxFQUFFO1FBRXZCLE9BQU9BO0lBQ1Q7SUFFQUMsaUJBQWlCMUIsaUJBQWlCLElBQUksRUFBRTtRQUN0QyxNQUFNMkIsZ0JBQWdCLEVBQUU7UUFFeEIsT0FBT0E7SUFDVDtJQUVBQyxjQUFjNUIsaUJBQWlCLElBQUksRUFBRTtRQUNuQyxNQUFNSixhQUFhSSxpQkFDRSxJQUFJLENBQUNaLE9BQU8sQ0FBQ3dDLGFBQWEsS0FDeEIsSUFBSSxDQUFDaEMsVUFBVTtRQUV0QyxPQUFPQTtJQUNUO0lBRUFpQyxhQUFhQyxTQUFTLElBQUksRUFBRTtRQUMxQixNQUFNQyxZQUFZLEVBQUU7UUFFcEIsT0FBT0E7SUFDVDtJQUVBQyxhQUFhQyxTQUFTLEVBQUU7UUFDdEIsTUFBTUMsa0JBQWtCRCxVQUFVRSxTQUFTO1FBRTNDLElBQUksQ0FBQ3ZDLFVBQVUsQ0FBQ3dDLElBQUksQ0FBQ0g7UUFFckIsTUFBTTNDLFdBQVcsSUFBSSxDQUFDK0MsV0FBVztRQUVqQyxJQUFJLENBQUNDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRUosZ0JBQWdCLG1CQUFtQixFQUFFNUMsU0FBUyxlQUFlLENBQUM7SUFDekY7SUFFQWlELGtCQUFrQkMsS0FBSyxFQUFFO1FBQ3ZCLE1BQU1oRCxPQUFPLElBQUksQ0FBQ2lELE9BQU8sSUFDbkJDLFlBQVlGLE1BQU1DLE9BQU8sSUFDekJFLGVBQWVuRCxNQUNmb0QsaUJBQWlCMUQsb0JBQW9CeUQsZUFDckNFLGdCQUFnQkQsZUFBZUUsSUFBSSxDQUFDLENBQUNEO1lBQ25DLE1BQU1FLGVBQWVGLGNBQWNHLGNBQWMsQ0FBQ047WUFFbEQsSUFBSUssY0FBYztnQkFDaEIsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVaLE9BQU9GO0lBQ1Q7SUFFQUksNkJBQTZCQyxhQUFhLEVBQUU7UUFDMUMsTUFBTXRELGFBQWEsSUFBSSxDQUFDZ0MsYUFBYSxJQUMvQkssWUFBWXJDLFdBQVdrRCxJQUFJLENBQUMsQ0FBQ2I7WUFDM0IsTUFBTWtCLG1DQUFtQ2xCLFVBQVVtQixvQkFBb0IsQ0FBQ0Y7WUFFeEUsSUFBSUMsa0NBQWtDO2dCQUNwQyxPQUFPO1lBQ1Q7UUFDRixNQUFNO1FBRVosT0FBT2xCO0lBQ1Q7SUFFQW9CLGtDQUFrQ0gsYUFBYSxFQUFFO1FBQy9DLE1BQU1qQixZQUFZLElBQUksQ0FBQ2dCLDRCQUE0QixDQUFDQyxnQkFDOUNJLG1CQUFvQnJCLGNBQWM7UUFFeEMsT0FBT3FCO0lBQ1Q7SUFFQUMsUUFBUTtRQUNOLElBQUksQ0FBQzNELFVBQVUsR0FBRyxFQUFFO0lBQ3RCO0lBRUE0RCxXQUFXO0lBQ1QsR0FBRztJQUNMO0lBRUFDLGFBQWE7UUFDWCxLQUFLLENBQUNBLGNBQWMsR0FBRztRQUV2QixNQUFNaEUsT0FBTyxJQUFJLENBQUNpRSxPQUFPO1FBRXpCLElBQUlqRSxTQUFTLE1BQU07WUFDakIsTUFBTWtFLGNBQWMsSUFBSSxFQUFFLEdBQUc7WUFFN0IsSUFBSSxDQUFDL0QsVUFBVSxHQUFHZ0UsSUFBQUEsd0JBQWtCLEVBQUNuRSxNQUFNa0U7UUFDN0M7SUFDRjtJQUVBLE1BQU1FLGFBQWE7UUFDakIsTUFBTXJFLE9BQU8sSUFBSSxDQUFDaUQsT0FBTyxJQUNuQnJELFVBQVUsSUFBSSxFQUNkMEUsV0FBV3RFLE1BQ1h1RSxlQUFlRixJQUFBQSxrQkFBVSxFQUFDQyxVQUFVMUU7UUFFMUMsT0FBTzJFO0lBQ1Q7SUFFQUMsU0FBUztRQUNQLE1BQU1DLGlCQUFpQkMsSUFBQUEsZ0NBQTBCLEVBQUMsSUFBSSxDQUFDdEUsVUFBVSxHQUMzRFAsY0FBYyxJQUFJLENBQUM4RSxjQUFjLElBQ2pDN0UsV0FBVyxJQUFJLENBQUMrQyxXQUFXLElBQzNCekMsYUFBYXFFLGdCQUNieEUsT0FBTztZQUNMSjtZQUNBQztZQUNBTTtRQUNGO1FBRU4sT0FBT0g7SUFDVDtJQUVBLE9BQU8yRSxTQUFTQyxJQUFJLEVBQUVqRixPQUFPLEVBQUU7UUFDN0IsTUFBTU0sUUFBUTRFLG1CQUFXLEVBQ25CM0UsU0FBUzRFLG9CQUFZLEVBQ3JCM0UsYUFBYSxFQUFFLEVBQ2Y0RSxvQkFBb0JyRiwyQkFBVyxDQUFDaUYsUUFBUSxDQUFDckYsbUJBQW1Cc0YsTUFBTTNFLE9BQU9DLFFBQVFDLFlBQVlSO1FBRW5HLE9BQU9vRjtJQUNUO0lBRUEsT0FBT0MsU0FBU2hGLElBQUksRUFBRUwsT0FBTyxFQUFFO1FBQzdCLE1BQU1NLFFBQVE0RSxtQkFBVyxFQUNuQjNFLFNBQVM0RSxvQkFBWSxFQUNyQjNFLGFBQWEsTUFDYjRFLG9CQUFvQnJGLDJCQUFXLENBQUNzRixRQUFRLENBQUMxRixtQkFBbUJVLE1BQU1DLE9BQU9DLFFBQVFDLFlBQVlSO1FBRW5HLE9BQU9vRjtJQUNUO0FBQ0YifQ==
@@ -21,6 +21,14 @@ class LiteralContext extends _occamlanguages.Context {
21
21
  setTokens(tokens) {
22
22
  this.tokens = tokens;
23
23
  }
24
+ getLexer() {
25
+ const context = this.getContext(), lexer = context.getLexer();
26
+ return lexer;
27
+ }
28
+ getParser() {
29
+ const context = this.getContext(), parser = context.getParser();
30
+ return parser;
31
+ }
24
32
  nodeAsString(node) {
25
33
  const string = nodeAsString(node, this.tokens);
26
34
  return string;
@@ -29,14 +37,10 @@ class LiteralContext extends _occamlanguages.Context {
29
37
  const string = nodesAsString(nodes, this.tokens);
30
38
  return string;
31
39
  }
32
- static fromTokens(tokens, context) {
33
- const literalContext = new LiteralContext(context, tokens);
34
- return literalContext;
35
- }
36
40
  static fromNothing(context) {
37
41
  const tokens = null, literalContext = new LiteralContext(context, tokens);
38
42
  return literalContext;
39
43
  }
40
44
  }
41
45
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2xpdGVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IENvbnRleHQsIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmNvbnN0IHsgbm9kZUFzU3RyaW5nLCBub2Rlc0FzU3RyaW5nIH0gPSBub2RlVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXRlcmFsQ29udGV4dCBleHRlbmRzIENvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCB0b2tlbnMpIHtcbiAgICBzdXBlcihjb250ZXh0KTtcblxuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfVxuXG4gIHNldFRva2Vucyh0b2tlbnMpIHtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgfVxuXG4gIG5vZGVBc1N0cmluZyhub2RlKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gbm9kZUFzU3RyaW5nKG5vZGUsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBub2Rlc0FzU3RyaW5nKG5vZGVzKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gbm9kZXNBc1N0cmluZyhub2RlcywgdGhpcy50b2tlbnMpO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9rZW5zKHRva2VucywgY29udGV4dCkge1xuICAgIGNvbnN0IGxpdGVyYWxDb250ZXh0ID0gbmV3IExpdGVyYWxDb250ZXh0KGNvbnRleHQsIHRva2Vucyk7XG5cbiAgICByZXR1cm4gbGl0ZXJhbENvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoY29udGV4dCkge1xuICAgIGNvbnN0IHRva2VucyA9IG51bGwsXG4gICAgICAgICAgbGl0ZXJhbENvbnRleHQgPSBuZXcgTGl0ZXJhbENvbnRleHQoY29udGV4dCwgdG9rZW5zKTtcblxuICAgIHJldHVybiBsaXRlcmFsQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkxpdGVyYWxDb250ZXh0Iiwibm9kZUFzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsIm5vZGVVdGlsaXRpZXMiLCJDb250ZXh0IiwiY29udGV4dCIsInRva2VucyIsImdldFRva2VucyIsInNldFRva2VucyIsIm5vZGUiLCJzdHJpbmciLCJub2RlcyIsImZyb21Ub2tlbnMiLCJsaXRlcmFsQ29udGV4dCIsImZyb21Ob3RoaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O2dDQUprQjtBQUV2QyxNQUFNLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxFQUFFLEdBQUdDLDZCQUFhO0FBRXRDLE1BQU1ILHVCQUF1QkksdUJBQU87SUFDakQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLENBQUU7UUFDM0IsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjtJQUVBQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNELE1BQU07SUFDcEI7SUFFQUUsVUFBVUYsTUFBTSxFQUFFO1FBQ2hCLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtJQUNoQjtJQUVBTCxhQUFhUSxJQUFJLEVBQUU7UUFDakIsTUFBTUMsU0FBU1QsYUFBYVEsTUFBTSxJQUFJLENBQUNILE1BQU07UUFFN0MsT0FBT0k7SUFDVDtJQUVBUixjQUFjUyxLQUFLLEVBQUU7UUFDbkIsTUFBTUQsU0FBU1IsY0FBY1MsT0FBTyxJQUFJLENBQUNMLE1BQU07UUFFL0MsT0FBT0k7SUFDVDtJQUVBLE9BQU9FLFdBQVdOLE1BQU0sRUFBRUQsT0FBTyxFQUFFO1FBQ2pDLE1BQU1RLGlCQUFpQixJQUFJYixlQUFlSyxTQUFTQztRQUVuRCxPQUFPTztJQUNUO0lBRUEsT0FBT0MsWUFBWVQsT0FBTyxFQUFFO1FBQzFCLE1BQU1DLFNBQVMsTUFDVE8saUJBQWlCLElBQUliLGVBQWVLLFNBQVNDO1FBRW5ELE9BQU9PO0lBQ1Q7QUFDRiJ9
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2xpdGVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IENvbnRleHQsIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmNvbnN0IHsgbm9kZUFzU3RyaW5nLCBub2Rlc0FzU3RyaW5nIH0gPSBub2RlVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXRlcmFsQ29udGV4dCBleHRlbmRzIENvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCB0b2tlbnMpIHtcbiAgICBzdXBlcihjb250ZXh0KTtcblxuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfVxuXG4gIHNldFRva2Vucyh0b2tlbnMpIHtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgfVxuXG4gIGdldExleGVyKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBsZXhlciA9IGNvbnRleHQuZ2V0TGV4ZXIoKTtcblxuICAgIHJldHVybiBsZXhlcjtcbiAgfVxuXG4gIGdldFBhcnNlcigpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcGFyc2VyID0gY29udGV4dC5nZXRQYXJzZXIoKTtcblxuICAgIHJldHVybiBwYXJzZXI7XG4gIH1cblxuICBub2RlQXNTdHJpbmcobm9kZSkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2Rlcykge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVzQXNTdHJpbmcobm9kZXMsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoY29udGV4dCkge1xuICAgIGNvbnN0IHRva2VucyA9IG51bGwsXG4gICAgICAgICAgbGl0ZXJhbENvbnRleHQgPSBuZXcgTGl0ZXJhbENvbnRleHQoY29udGV4dCwgdG9rZW5zKTtcblxuICAgIHJldHVybiBsaXRlcmFsQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkxpdGVyYWxDb250ZXh0Iiwibm9kZUFzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsIm5vZGVVdGlsaXRpZXMiLCJDb250ZXh0IiwiY29udGV4dCIsInRva2VucyIsImdldFRva2VucyIsInNldFRva2VucyIsImdldExleGVyIiwiZ2V0Q29udGV4dCIsImxleGVyIiwiZ2V0UGFyc2VyIiwicGFyc2VyIiwibm9kZSIsInN0cmluZyIsIm5vZGVzIiwiZnJvbU5vdGhpbmciLCJsaXRlcmFsQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFxQkE7OztnQ0FKa0I7QUFFdkMsTUFBTSxFQUFFQyxZQUFZLEVBQUVDLGFBQWEsRUFBRSxHQUFHQyw2QkFBYTtBQUV0QyxNQUFNSCx1QkFBdUJJLHVCQUFPO0lBQ2pELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxDQUFFO1FBQzNCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLE1BQU0sR0FBR0E7SUFDaEI7SUFFQUMsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDRCxNQUFNO0lBQ3BCO0lBRUFFLFVBQVVGLE1BQU0sRUFBRTtRQUNoQixJQUFJLENBQUNBLE1BQU0sR0FBR0E7SUFDaEI7SUFFQUcsV0FBVztRQUNULE1BQU1KLFVBQVUsSUFBSSxDQUFDSyxVQUFVLElBQ3pCQyxRQUFRTixRQUFRSSxRQUFRO1FBRTlCLE9BQU9FO0lBQ1Q7SUFFQUMsWUFBWTtRQUNWLE1BQU1QLFVBQVUsSUFBSSxDQUFDSyxVQUFVLElBQ3pCRyxTQUFTUixRQUFRTyxTQUFTO1FBRWhDLE9BQU9DO0lBQ1Q7SUFFQVosYUFBYWEsSUFBSSxFQUFFO1FBQ2pCLE1BQU1DLFNBQVNkLGFBQWFhLE1BQU0sSUFBSSxDQUFDUixNQUFNO1FBRTdDLE9BQU9TO0lBQ1Q7SUFFQWIsY0FBY2MsS0FBSyxFQUFFO1FBQ25CLE1BQU1ELFNBQVNiLGNBQWNjLE9BQU8sSUFBSSxDQUFDVixNQUFNO1FBRS9DLE9BQU9TO0lBQ1Q7SUFFQSxPQUFPRSxZQUFZWixPQUFPLEVBQUU7UUFDMUIsTUFBTUMsU0FBUyxNQUNUWSxpQkFBaUIsSUFBSWxCLGVBQWVLLFNBQVNDO1FBRW5ELE9BQU9ZO0lBQ1Q7QUFDRiJ9
@@ -10,6 +10,9 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
+ const _context = require("../utilities/context");
14
+ const _instantiate = require("../process/instantiate");
15
+ const _element = require("../utilities/element");
13
16
  const { breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
14
17
  const _default = (0, _elements.define)(class Label extends _occamlanguages.Element {
15
18
  constructor(context, string, node, breakPoint, name){
@@ -37,8 +40,13 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
37
40
  }
38
41
  static name = "Label";
39
42
  static fromJSON(json, context) {
40
- debugger;
43
+ return (0, _context.instantiate)((context)=>{
44
+ const { string } = json, labelNode = (0, _instantiate.instantiateLabel)(string, context), node = labelNode, breakPoint = null, name = (0, _element.nameFromLabelNode)(labelNode, context);
45
+ context = null;
46
+ const label = new Label(context, string, node, breakPoint, name);
47
+ return label;
48
+ }, context);
41
49
  }
42
50
  });
43
51
 
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIExhYmVsIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZU5hbWVDb21wYXJlcyA9ICh0aGlzLm5hbWUgPT09IHByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5hbWVDb21wYXJlcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMYWJlbFwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgZGVidWdnZXJcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiTGFiZWwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibmFtZSIsImdldE5hbWUiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lQ29tcGFyZXMiLCJ0b0pTT04iLCJnZXRTdHJpbmciLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7O2dDQU42QzswQkFFdEI7QUFFdkIsTUFBTSxFQUFFQSwwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFMUQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksQ0FBRTtRQUNuRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxxQkFBcUJDLGFBQWEsRUFBRTtRQUNsQyxNQUFNQyx3QkFBeUIsSUFBSSxDQUFDSixJQUFJLEtBQUtHO1FBRTdDLE9BQU9DO0lBQ1Q7SUFFQUMsU0FBUztRQUNQLE1BQU1SLFNBQVMsSUFBSSxDQUFDUyxTQUFTO1FBRTdCLElBQUlQO1FBRUpBLGFBQWEsSUFBSSxDQUFDUSxhQUFhO1FBRS9CLE1BQU1DLGlCQUFpQmpCLDJCQUEyQlE7UUFFbERBLGFBQWFTLGdCQUFpQixHQUFHO1FBRWpDLE1BQU1DLE9BQU87WUFDWFo7WUFDQUU7UUFDRjtRQUVBLE9BQU9VO0lBQ1Q7SUFFQSxPQUFPVCxPQUFPLFFBQVE7SUFFdEIsT0FBT1UsU0FBU0QsSUFBSSxFQUFFYixPQUFPLEVBQUU7UUFDN0IsUUFBUTtJQUNWO0FBQ0YifQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUxhYmVsIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IG5hbWVGcm9tTGFiZWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMYWJlbCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lQ29tcGFyZXMgPSAodGhpcy5uYW1lID09PSBwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVOYW1lQ29tcGFyZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTGFiZWxcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIHJldHVybiBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICBsYWJlbE5vZGUgPSBpbnN0YW50aWF0ZUxhYmVsKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gbGFiZWxOb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgY29uc3QgbGFiZWwgPSBuZXcgTGFiZWwoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lKTtcblxuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJMYWJlbCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJuYW1lIiwiZ2V0TmFtZSIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWVDb21wYXJlcyIsInRvSlNPTiIsImdldFN0cmluZyIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwibGFiZWxOb2RlIiwiaW5zdGFudGlhdGVMYWJlbCIsIm5hbWVGcm9tTGFiZWxOb2RlIiwibGFiZWwiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O2dDQVQ2QzswQkFFdEI7eUJBQ0s7NkJBQ0s7eUJBQ0M7QUFFbEMsTUFBTSxFQUFFQSwwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFMUQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksQ0FBRTtRQUNuRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0QsSUFBSTtJQUNsQjtJQUVBRSxxQkFBcUJDLGFBQWEsRUFBRTtRQUNsQyxNQUFNQyx3QkFBeUIsSUFBSSxDQUFDSixJQUFJLEtBQUtHO1FBRTdDLE9BQU9DO0lBQ1Q7SUFFQUMsU0FBUztRQUNQLE1BQU1SLFNBQVMsSUFBSSxDQUFDUyxTQUFTO1FBRTdCLElBQUlQO1FBRUpBLGFBQWEsSUFBSSxDQUFDUSxhQUFhO1FBRS9CLE1BQU1DLGlCQUFpQmpCLDJCQUEyQlE7UUFFbERBLGFBQWFTLGdCQUFpQixHQUFHO1FBRWpDLE1BQU1DLE9BQU87WUFDWFo7WUFDQUU7UUFDRjtRQUVBLE9BQU9VO0lBQ1Q7SUFFQSxPQUFPVCxPQUFPLFFBQVE7SUFFdEIsT0FBT1UsU0FBU0QsSUFBSSxFQUFFYixPQUFPLEVBQUU7UUFDN0IsT0FBT2UsSUFBQUEsb0JBQVcsRUFBQyxDQUFDZjtZQUNsQixNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHWSxNQUNiRyxZQUFZQyxJQUFBQSw2QkFBZ0IsRUFBQ2hCLFFBQVFELFVBQ3JDRSxPQUFPYyxXQUNQYixhQUFhLE1BQ2JDLE9BQU9jLElBQUFBLDBCQUFpQixFQUFDRixXQUFXaEI7WUFFMUNBLFVBQVU7WUFFVixNQUFNbUIsUUFBUSxJQUFJckIsTUFBTUUsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7WUFFM0QsT0FBT2U7UUFDVCxHQUFHbkI7SUFDTDtBQUNGIn0=
@@ -11,6 +11,9 @@ Object.defineProperty(exports, "default", {
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
13
  const _elements = require("../elements");
14
+ const _context = require("../utilities/context");
15
+ const _instantiate = require("../process/instantiate");
16
+ const _element = require("../utilities/element");
14
17
  function _interop_require_default(obj) {
15
18
  return obj && obj.__esModule ? obj : {
16
19
  default: obj
@@ -66,8 +69,13 @@ const _default = (0, _elements.define)(class Parameters extends _occamlanguages.
66
69
  }
67
70
  static name = "Parameters";
68
71
  static fromJSON(json, context) {
69
- debugger;
72
+ return (0, _context.instantiate)((context)=>{
73
+ const { string } = json, parametersNode = (0, _instantiate.instantiateParameters)(string, context), node = parametersNode, breakPoint = null, parametersArray = (0, _element.parametersArrayFromParametersNode)(parametersNode, context), array = parametersArray; ///
74
+ context = null;
75
+ const parameters = new Parameters(context, string, node, breakPoint, array);
76
+ return parameters;
77
+ }, context);
70
78
  }
71
79
  });
72
80
 
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFBhcmFtZXRlcnMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXIoaW5kZXgpIHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgfVxuXG4gIGZvckVhY2hQYXJhbWV0ZXIoY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGNvbXBhcmVWYWx1ZXModmFsdWVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVzU3RyaW5nID0gdmFsdWVzLmdldFN0cmluZygpLFxuICAgICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dmFsdWVzU3RyaW5nfScgdmFsdWVzIGFnYWluc3QgdGhlICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzLi4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMuZ2V0TGVuZ3RoKCksXG4gICAgICAgICAgcGFyYW1ldGVyc0xlbmd0aCA9IHRoaXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAodmFsdWVzTGVuZ3RoICE9PSBwYXJhbWV0ZXJzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZXNTdHJpbmd9JyBleHByZXNzaW9ucyBhbmQgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZm9yRWFjaFBhcmFtZXRlcigocGFyYW1ldGVyLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHBhcmFtZXRlciAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlcy5nZXRWYWx1ZShpbmRleCk7XG5cbiAgICAgICAgcGFyYW1ldGVyLmNvbXBhcmVWYWx1ZSh2YWx1ZSwgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJlZCB0aGUgJyR7dmFsdWVzU3RyaW5nfScgdmFsdWVzIGFnYWluc3QgdGhlICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzLmApO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICBicmVha1BvaW50XG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlBhcmFtZXRlcnNcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGRlYnVnZ2VyXG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlBhcmFtZXRlcnMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldFBhcmFtZXRlciIsImluZGV4IiwicGFyYW1ldGVyIiwiZm9yRWFjaFBhcmFtZXRlciIsImNhbGxiYWNrIiwiZm9yRWFjaCIsImNvbXBhcmVWYWx1ZXMiLCJ2YWx1ZXMiLCJ2YWx1ZXNTdHJpbmciLCJnZXRTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwidHJhY2UiLCJ2YWx1ZXNMZW5ndGgiLCJwYXJhbWV0ZXJzTGVuZ3RoIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWUiLCJnZXRWYWx1ZSIsImNvbXBhcmVWYWx1ZSIsImRlYnVnIiwidG9KU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUjZDO2tFQUV2QjswQkFFQzs7Ozs7O0FBRXZCLE1BQU0sRUFBRUEsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTFELFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsbUJBQW1CQyx1QkFBTztJQUNwRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBRTtRQUNwRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUVBRSxZQUFZO1FBQ1YsTUFBTUMsU0FBUyxJQUFJLENBQUNILEtBQUssQ0FBQ0csTUFBTTtRQUVoQyxPQUFPQTtJQUNUO0lBRUFDLGFBQWFDLEtBQUssRUFBRTtRQUNsQixNQUFNQyxZQUFZLElBQUksQ0FBQ04sS0FBSyxDQUFDSyxNQUFNLElBQUk7UUFFdkMsT0FBT0M7SUFDVDtJQUVBQyxpQkFBaUJDLFFBQVEsRUFBRTtRQUFFLElBQUksQ0FBQ1IsS0FBSyxDQUFDUyxPQUFPLENBQUNEO0lBQVc7SUFFM0RFLGNBQWNDLE1BQU0sRUFBRWYsT0FBTyxFQUFFO1FBQzdCLE1BQU1nQixlQUFlRCxPQUFPRSxTQUFTLElBQy9CQyxtQkFBbUIsSUFBSSxDQUFDRCxTQUFTLElBQUksR0FBRztRQUU5Q2pCLFFBQVFtQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVILGFBQWEsc0JBQXNCLEVBQUVFLGlCQUFpQixlQUFlLENBQUM7UUFFdEcsTUFBTUUsZUFBZUwsT0FBT1QsU0FBUyxJQUMvQmUsbUJBQW1CLElBQUksQ0FBQ2YsU0FBUztRQUV2QyxJQUFJYyxpQkFBaUJDLGtCQUFrQjtZQUNyQyxNQUFNQyxVQUFVLENBQUMsS0FBSyxFQUFFTixhQUFhLG1CQUFtQixFQUFFRSxpQkFBaUIsd0NBQXdDLENBQUMsRUFDOUdLLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLElBQUksQ0FBQ1osZ0JBQWdCLENBQUMsQ0FBQ0QsV0FBV0Q7WUFDaEMsSUFBSUMsY0FBYyxNQUFNO2dCQUN0QixNQUFNZ0IsUUFBUVgsT0FBT1ksUUFBUSxDQUFDbEI7Z0JBRTlCQyxVQUFVa0IsWUFBWSxDQUFDRixPQUFPMUI7WUFDaEM7UUFDRjtRQUVBQSxRQUFRNkIsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUViLGFBQWEsc0JBQXNCLEVBQUVFLGlCQUFpQixhQUFhLENBQUM7SUFDeEc7SUFFQVksU0FBUztRQUNQLE1BQU03QixTQUFTLElBQUksQ0FBQ2dCLFNBQVM7UUFFN0IsSUFBSWQ7UUFFSkEsYUFBYSxJQUFJLENBQUM0QixhQUFhO1FBRS9CLE1BQU1DLGlCQUFpQnJDLDJCQUEyQlE7UUFFbERBLGFBQWE2QixnQkFBaUIsR0FBRztRQUVqQyxNQUFNQyxPQUFPO1lBQ1hoQztZQUNBRTtRQUNGO1FBRUEsT0FBTzhCO0lBQ1Q7SUFFQSxPQUFPQyxPQUFPLGFBQWE7SUFFM0IsT0FBT0MsU0FBU0YsSUFBSSxFQUFFakMsT0FBTyxFQUFFO1FBQzdCLFFBQVE7SUFDVjtBQUNGIn0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgcGFyYW1ldGVyc0FycmF5RnJvbVBhcmFtZXRlcnNOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQYXJhbWV0ZXJzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0UGFyYW1ldGVyKGluZGV4KSB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gIH1cblxuICBmb3JFYWNoUGFyYW1ldGVyKGNhbGxiYWNrKSB7IHRoaXMuYXJyYXkuZm9yRWFjaChjYWxsYmFjayk7IH1cblxuICBjb21wYXJlVmFsdWVzKHZhbHVlcywgY29udGV4dCkge1xuICAgIGNvbnN0IHZhbHVlc1N0cmluZyA9IHZhbHVlcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3ZhbHVlc1N0cmluZ30nIHZhbHVlcyBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJzU3RyaW5nfScgcGFyYW1ldGVycy4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmdldExlbmd0aCgpLFxuICAgICAgICAgIHBhcmFtZXRlcnNMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHZhbHVlc0xlbmd0aCAhPT0gcGFyYW1ldGVyc0xlbmd0aCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVzU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzIGFyZSBub3Qgb2YgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLmZvckVhY2hQYXJhbWV0ZXIoKHBhcmFtZXRlciwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChwYXJhbWV0ZXIgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXMuZ2V0VmFsdWUoaW5kZXgpO1xuXG4gICAgICAgIHBhcmFtZXRlci5jb21wYXJlVmFsdWUodmFsdWUsIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3ZhbHVlc1N0cmluZ30nIHZhbHVlcyBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJzU3RyaW5nfScgcGFyYW1ldGVycy5gKTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQYXJhbWV0ZXJzXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgcGFyYW1ldGVyc05vZGUgPSBpbnN0YW50aWF0ZVBhcmFtZXRlcnMoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgIG5vZGUgPSBwYXJhbWV0ZXJzTm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzQXJyYXkgPSBwYXJhbWV0ZXJzQXJyYXlGcm9tUGFyYW1ldGVyc05vZGUocGFyYW1ldGVyc05vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgYXJyYXkgPSBwYXJhbWV0ZXJzQXJyYXk7IC8vL1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgY29uc3QgcGFyYW1ldGVycyA9IG5ldyBQYXJhbWV0ZXJzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiUGFyYW1ldGVycyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJhcnJheSIsImdldEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0UGFyYW1ldGVyIiwiaW5kZXgiLCJwYXJhbWV0ZXIiLCJmb3JFYWNoUGFyYW1ldGVyIiwiY2FsbGJhY2siLCJmb3JFYWNoIiwiY29tcGFyZVZhbHVlcyIsInZhbHVlcyIsInZhbHVlc1N0cmluZyIsImdldFN0cmluZyIsInBhcmFtZXRlcnNTdHJpbmciLCJ0cmFjZSIsInZhbHVlc0xlbmd0aCIsInBhcmFtZXRlcnNMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ2YWx1ZSIsImdldFZhbHVlIiwiY29tcGFyZVZhbHVlIiwiZGVidWciLCJ0b0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJwYXJhbWV0ZXJzTm9kZSIsImluc3RhbnRpYXRlUGFyYW1ldGVycyIsInBhcmFtZXRlcnNBcnJheSIsInBhcmFtZXRlcnNBcnJheUZyb21QYXJhbWV0ZXJzTm9kZSIsInBhcmFtZXRlcnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVg2QztrRUFFdkI7MEJBRUM7eUJBQ0s7NkJBQ1U7eUJBQ1k7Ozs7OztBQUVsRCxNQUFNLEVBQUVBLDBCQUEwQixFQUFFLEdBQUdD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
@@ -12,6 +12,7 @@ const _occamlanguages = require("occam-languages");
12
12
  const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
13
  const _elements = require("../elements");
14
14
  const _values = require("../utilities/values");
15
+ const _element = require("../utilities/element");
15
16
  const _parameters = require("../utilities/parameters");
16
17
  const _json = require("../utilities/json");
17
18
  function _interop_require_default(obj) {
@@ -69,6 +70,7 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
69
70
  const procedureString = this.getString(); ///
70
71
  context.trace(`Calling the '${procedureString}' procedure...`);
71
72
  this.parameters.compareValues(values, context);
73
+ this.guaranteeReturnBlock();
72
74
  const variables = (0, _parameters.variablesFromValuesAndParameters)(values, this.parameters, context), value = await this.returnBlock.evaluate(variables, context), valueType = value.getType(), typeEqualToValueType = this.type.isEqualTo(valueType);
73
75
  if (!typeEqualToValueType) {
74
76
  const valueString = value.getString(), typeString = this.type.getString(), message = `The '${valueString}' value's '${typeString}' type is not equal to the '${procedureString}' procedure's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
@@ -86,6 +88,13 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
86
88
  context.debug(`...called the '${procedureString}' function nominally.`);
87
89
  return term;
88
90
  }
91
+ guaranteeReturnBlock() {
92
+ if (this.returnBlock != null) {
93
+ return;
94
+ }
95
+ const node = this.getNode(), context = this.getContext(), procedureNode = node;
96
+ this.returnBlock = (0, _element.returnBlockFromProcedureNode)(procedureNode, context);
97
+ }
89
98
  toJSON() {
90
99
  const typeJSON = (0, _json.typeToTypeJSON)(this.type), labelJSON = (0, _json.labelToLabelJSON)(this.label), parametersJSON = (0, _json.parametersToParametersJSON)(this.parameters), string = this.getString();
91
100
  let breakPoint;
@@ -103,10 +112,9 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
103
112
  }
104
113
  static name = "Procedure";
105
114
  static fromJSON(json, context) {
106
- const { string } = json, breakPoint = breakPointFromJSON(json), type = (0, _json.typeFromJSON)(json), label = (0, _json.labelFromJSON)(json), parameters = (0, _json.parametersFromJSON)(json), procedureNode = context.findProcedureNode(label), returnBlock = null, node = procedureNode; ///
107
- const procedure = new Prpcedure(context, string, node, breakPoint, type, label, parameters, returnBlock);
115
+ const { string } = json, breakPoint = breakPointFromJSON(json), type = (0, _json.typeFromJSON)(json, context), label = (0, _json.labelFromJSON)(json, context), parameters = (0, _json.parametersFromJSON)(json, context), procedureNode = context.findProcedureNode(label), returnBlock = null, node = procedureNode, procedure = new Procedure(context, string, node, breakPoint, type, label, parameters, returnBlock);
108
116
  return procedure;
109
117
  }
110
118
  });
111
119
 
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgbGFiZWxGcm9tSlNPTiwgcGFyYW1ldGVyc0Zyb21KU09OLCB0eXBlVG9UeXBlSlNPTiwgbGFiZWxUb0xhYmVsSlNPTiwgcGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJvY2VkdXJlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnM7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldE5hbWUoKSB7IHJldHVybiB0aGlzLmxhYmVsLmdldE5hbWUoKTsgfVxuXG4gIGlzQm9vbGVhbigpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKCksXG4gICAgICAgICAgYm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKSxcbiAgICAgICAgICBib29sZWFuID0gYm9vbGVhblR5cGU7ICAvLy9cblxuICAgIHJldHVybiBib29sZWFuO1xuICB9XG5cbiAgZ2V0UmV0dXJuU3RhdGVtZW50KCkgeyByZXR1cm4gdGhpcy5yZXR1cm5CbG9jay5nZXRSZXR1cm5TdGF0ZW1lbnQoKTsgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHsgcmV0dXJuIHRoaXMubGFiZWwuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7IH1cblxuICB2ZXJpZnkoY29udGV4dCkge1xuICAgIGNvbnN0IHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLi4uYClcblxuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC5hZGRQcm9jZWR1cmUocHJvY2VkdXJlKTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgY2FsbCh2YWx1ZXMsIGNvbnRleHQpIHtcbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ2FsbGluZyB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLi4uYCk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMuY29tcGFyZVZhbHVlcyh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnModmFsdWVzLCB0aGlzLnBhcmFtZXRlcnMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgY2FsbE5vbWluYWxseShub21pbmFsVmFsdWVzKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCksXG4gICAgICAgICAgdGVybSA9IGF3YWl0IHRoaXMuY2FsbCh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY2FsbGVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgbGFiZWxKU09OID0gbGFiZWxUb0xhYmVsSlNPTih0aGlzLmxhYmVsKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzSlNPTiA9IHBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OKHRoaXMucGFyYW1ldGVycyksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEpTT04sICAvLy9cbiAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHBhcmFtZXRlcnNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvY2VkdXJlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiksXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEZyb21KU09OKGpzb24pLFxuICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzRnJvbUpTT04oanNvbiksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZU5vZGUobGFiZWwpLFxuICAgICAgICAgIHJldHVybkJsb2NrID0gbnVsbCwgLy8vXG4gICAgICAgICAgbm9kZSA9IHByb2NlZHVyZU5vZGU7IC8vL1xuXG4gICAgY29uc3QgcHJvY2VkdXJlID0gbmV3IFBycGNlZHVyZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jayk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQcm9jZWR1cmUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsImxhYmVsIiwicGFyYW1ldGVycyIsInJldHVybkJsb2NrIiwiZ2V0VHlwZSIsImdldExhYmVsIiwiZ2V0UGFyYW1ldGVycyIsImdldFJldHVybkJsb2NrIiwiZ2V0TmFtZSIsImlzQm9vbGVhbiIsImJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsImJvb2xlYW4iLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwicHJvY2VkdXJlIiwiYWRkUHJvY2VkdXJlIiwiZGVidWciLCJjYWxsIiwidmFsdWVzIiwiYnJlYWsiLCJjb21wYXJlVmFsdWVzIiwidmFyaWFibGVzIiwidmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMiLCJ2YWx1ZSIsImV2YWx1YXRlIiwidmFsdWVUeXBlIiwidHlwZUVxdWFsVG9WYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJ2YWx1ZVN0cmluZyIsInR5cGVTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJjYWxsTm9taW5hbGx5Iiwibm9taW5hbFZhbHVlcyIsImdldENvbnRleHQiLCJ2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyIsInRlcm0iLCJ0b0pTT04iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsInBhcmFtZXRlcnNKU09OIiwicGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwidHlwZUZyb21KU09OIiwibGFiZWxGcm9tSlNPTiIsInBhcmFtZXRlcnNGcm9tSlNPTiIsInByb2NlZHVyZU5vZGUiLCJmaW5kUHJvY2VkdXJlTm9kZSIsIlBycGNlZHVyZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFBOzs7Z0NBWDZDO2tFQUV2QjswQkFFQzt3QkFDaUI7NEJBQ1M7c0JBQzZFOzs7Ozs7QUFFOUgsTUFBTSxFQUFFQSxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsQ0FBRTtRQUNuRixLQUFLLENBQUNQLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSixJQUFJO0lBQ2xCO0lBRUFLLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0osS0FBSztJQUNuQjtJQUVBSyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0osVUFBVTtJQUN4QjtJQUVBSyxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQ0osV0FBVztJQUN6QjtJQUVBSyxV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
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgcmV0dXJuQmxvY2tGcm9tUHJvY2VkdXJlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgbGFiZWxGcm9tSlNPTiwgcGFyYW1ldGVyc0Zyb21KU09OLCB0eXBlVG9UeXBlSlNPTiwgbGFiZWxUb0xhYmVsSlNPTiwgcGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJvY2VkdXJlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnM7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldE5hbWUoKSB7IHJldHVybiB0aGlzLmxhYmVsLmdldE5hbWUoKTsgfVxuXG4gIGlzQm9vbGVhbigpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKCksXG4gICAgICAgICAgYm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKSxcbiAgICAgICAgICBib29sZWFuID0gYm9vbGVhblR5cGU7ICAvLy9cblxuICAgIHJldHVybiBib29sZWFuO1xuICB9XG5cbiAgZ2V0UmV0dXJuU3RhdGVtZW50KCkgeyByZXR1cm4gdGhpcy5yZXR1cm5CbG9jay5nZXRSZXR1cm5TdGF0ZW1lbnQoKTsgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHsgcmV0dXJuIHRoaXMubGFiZWwuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7IH1cblxuICB2ZXJpZnkoY29udGV4dCkge1xuICAgIGNvbnN0IHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLi4uYClcblxuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC5hZGRQcm9jZWR1cmUocHJvY2VkdXJlKTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgY2FsbCh2YWx1ZXMsIGNvbnRleHQpIHtcbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ2FsbGluZyB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLi4uYCk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMuY29tcGFyZVZhbHVlcyh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5ndWFyYW50ZWVSZXR1cm5CbG9jaygpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnModmFsdWVzLCB0aGlzLnBhcmFtZXRlcnMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgY2FsbE5vbWluYWxseShub21pbmFsVmFsdWVzKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCksXG4gICAgICAgICAgdGVybSA9IGF3YWl0IHRoaXMuY2FsbCh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY2FsbGVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGd1YXJhbnRlZVJldHVybkJsb2NrKCkge1xuICAgIGlmICh0aGlzLnJldHVybkJsb2NrICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZU5vZGUgPSBub2RlO1xuXG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrRnJvbVByb2NlZHVyZU5vZGUocHJvY2VkdXJlTm9kZSwgY29udGV4dCk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIGxhYmVsSlNPTiA9IGxhYmVsVG9MYWJlbEpTT04odGhpcy5sYWJlbCksXG4gICAgICAgICAgcGFyYW1ldGVyc0pTT04gPSBwYXJhbWV0ZXJzVG9QYXJhbWV0ZXJzSlNPTih0aGlzLnBhcmFtZXRlcnMpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGxhYmVsID0gbGFiZWxKU09OLCAgLy8vXG4gICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIGJyZWFrUG9pbnQsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb2NlZHVyZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIGxhYmVsID0gbGFiZWxGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHByb2NlZHVyZU5vZGUgPSBjb250ZXh0LmZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSxcbiAgICAgICAgICByZXR1cm5CbG9jayA9IG51bGwsIC8vL1xuICAgICAgICAgIG5vZGUgPSBwcm9jZWR1cmVOb2RlLCAvLy9cbiAgICAgICAgICBwcm9jZWR1cmUgPSBuZXcgUHJvY2VkdXJlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlByb2NlZHVyZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwibGFiZWwiLCJwYXJhbWV0ZXJzIiwicmV0dXJuQmxvY2siLCJnZXRUeXBlIiwiZ2V0TGFiZWwiLCJnZXRQYXJhbWV0ZXJzIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXROYW1lIiwiaXNCb29sZWFuIiwiYm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiYm9vbGVhbiIsImdldFJldHVyblN0YXRlbWVudCIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsInZlcmlmeSIsInZlcmlmaWVzIiwicHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmUiLCJhZGRQcm9jZWR1cmUiLCJkZWJ1ZyIsImNhbGwiLCJ2YWx1ZXMiLCJicmVhayIsImNvbXBhcmVWYWx1ZXMiLCJndWFyYW50ZWVSZXR1cm5CbG9jayIsInZhcmlhYmxlcyIsInZhcmlhYmxlc0Zyb21WYWx1ZXNBbmRQYXJhbWV0ZXJzIiwidmFsdWUiLCJldmFsdWF0ZSIsInZhbHVlVHlwZSIsInR5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwidmFsdWVTdHJpbmciLCJ0eXBlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiY2FsbE5vbWluYWxseSIsIm5vbWluYWxWYWx1ZXMiLCJnZXRDb250ZXh0IiwidmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMiLCJ0ZXJtIiwiZ2V0Tm9kZSIsInByb2NlZHVyZU5vZGUiLCJyZXR1cm5CbG9ja0Zyb21Qcm9jZWR1cmVOb2RlIiwidG9KU09OIiwidHlwZUpTT04iLCJ0eXBlVG9UeXBlSlNPTiIsImxhYmVsSlNPTiIsImxhYmVsVG9MYWJlbEpTT04iLCJwYXJhbWV0ZXJzSlNPTiIsInBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsInR5cGVGcm9tSlNPTiIsImxhYmVsRnJvbUpTT04iLCJwYXJhbWV0ZXJzRnJvbUpTT04iLCJmaW5kUHJvY2VkdXJlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWjZDO2tFQUV2QjswQkFFQzt3QkFDaUI7eUJBQ0s7NEJBQ0k7c0JBQzZFOzs7Ozs7QUFFOUgsTUFBTSxFQUFFQSxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdB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
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "default", {
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
13
  const _context = require("../utilities/context");
14
+ const _instantiate = require("../process/instantiate");
14
15
  const _string = require("../utilities/string");
15
16
  const _element = require("../utilities/element");
16
17
  const _typeNames = require("../typeNames");
@@ -94,7 +95,7 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
94
95
  static name = "Type";
95
96
  static fromJSON(json, context) {
96
97
  return (0, _context.instantiate)((context)=>{
97
- const { string } = json, typeNode = instantiateType(string, context), node = typeNode, breakPoint = null, name = (0, _element.nameFromTypeNode)(typeNode, context), argumentType = (0, _element.argumentTypeFromTypeNode)(typeNode, context);
98
+ const { string } = json, typeNode = (0, _instantiate.instantiateType)(string, context), node = typeNode, breakPoint = null, name = (0, _element.nameFromTypeNode)(typeNode, context), argumentType = (0, _element.argumentTypeFromTypeNode)(typeNode, context);
98
99
  context = null;
99
100
  const type = new Type(context, string, node, breakPoint, name, argumentType);
100
101
  return type;
@@ -117,4 +118,4 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
117
118
  }
118
119
  });
119
120
 
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgdHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbmFtZUZyb21UeXBlTm9kZSwgYXJndW1lbnRUeXBlRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuY29uc3QgeyBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmFyZ3VtZW50VHlwZSA9IGFyZ3VtZW50VHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEFyZ3VtZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcmd1bWVudFR5cGU7XG4gIH1cblxuICBpc0xpc3RUeXBlKCkge1xuICAgIGNvbnN0IGxpc3RUeXBlID0gKHRoaXMubmFtZSA9PT0gTElTVF9UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGxpc3RUeXBlO1xuICB9XG5cbiAgaXNTdHJpbmdUeXBlKCkge1xuICAgIGNvbnN0IGJvb2xlYW5UeXBlID0gKHRoaXMubmFtZSA9PT0gU1RSSU5HX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gYm9vbGVhblR5cGU7XG4gIH1cblxuICBpc0Jvb2xlYW5UeXBlKCkge1xuICAgIGNvbnN0IGJvb2xlYW5UeXBlID0gKHRoaXMubmFtZSA9PT0gQk9PTEVBTl9UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGJvb2xlYW5UeXBlO1xuICB9XG5cbiAgaXNJbnRlZ2VyVHlwZSgpIHtcbiAgICBjb25zdCBpbnRlZ2VyVHlwZSA9ICh0aGlzLm5hbWUgPT09IElOVEVHRVJfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBpbnRlZ2VyVHlwZTtcbiAgfVxuXG4gIGlzTm9taW5hbFZhbHVlVHlwZSgpIHtcbiAgICBjb25zdCBsaXN0VHlwZSA9ICh0aGlzLm5hbWUgPT09IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBsaXN0VHlwZTtcbiAgfVxuXG4gIGlzRXF1YWxUbyh0eXBlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCk7XG5cbiAgICBpZiAodGhpcy5uYW1lID09PSB0eXBlTmFtZSkge1xuICAgICAgc3dpdGNoICh0aGlzLm5hbWUpIHtcbiAgICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRToge1xuICAgICAgICAgIGNvbnN0IHR5cGVBcmd1bWVudFR5cGUgPSB0eXBlLmdldEFyZ3VtZW50VHlwZSgpO1xuXG4gICAgICAgICAgaWYgKCh0aGlzLmFyZ3VtZW50VHlwZSA9PT0gbnVsbCkgfHwgKHR5cGVBcmd1bWVudFR5cGUgPT09IG51bGwpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcmd1bWVudFR5cGUgPT09IHR5cGVBcmd1bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlID0gdGhpcy5hcmd1bWVudFR5cGUuaXNFcXVhbFRvKHR5cGVBcmd1bWVudFR5cGUpO1xuXG4gICAgICAgICAgICBpZiAoYXJndWVtbnRUeXBlRXF1YWxUb1R5cGVBcmd1bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgSU5URUdFUl9UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUU6IHtcbiAgICAgICAgICBlcXVhbFRvID0gdHJ1ZTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHR5cGVOb2RlID0gaW5zdGFudGlhdGVUeXBlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gdHlwZU5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgICAgbmFtZSA9IG5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgYXJndW1lbnRUeXBlID0gYXJndW1lbnRUeXBlRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBuZXcgVHlwZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIGFyZ3VtZW50VHlwZSk7XG5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlTmFtZSh0eXBlTmFtZSwgY29udGV4dCkge1xuICAgIGxldCB0eXBlID0gbnVsbDtcblxuICAgIGlmICh0eXBlTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IG51bGwsICAvLy9cbiAgICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgICAgYXJndW1lbnRUeXBlID0gbnVsbCxcbiAgICAgICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gdHlwZVN0cmluZywgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUodHlwZU5hbWUsIGFyZ3VtZW50VHlwZU5hbWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlID0gbnVsbCwgIC8vL1xuICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lKGFyZ3VtZW50VHlwZU5hbWUsIGNvbnRleHQpLFxuICAgICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSh0eXBlTmFtZSwgYXJndW1lbnRUeXBlTmFtZSksXG4gICAgICAgICAgc3RyaW5nID0gdHlwZVN0cmluZywgIC8vL1xuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiVHlwZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJuYW1lIiwiYXJndW1lbnRUeXBlIiwiZ2V0TmFtZSIsImdldEFyZ3VtZW50VHlwZSIsImlzTGlzdFR5cGUiLCJsaXN0VHlwZSIsIkxJU1RfVFlQRV9OQU1FIiwiaXNTdHJpbmdUeXBlIiwiYm9vbGVhblR5cGUiLCJTVFJJTkdfVFlQRV9OQU1FIiwiaXNCb29sZWFuVHlwZSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiaXNJbnRlZ2VyVHlwZSIsImludGVnZXJUeXBlIiwiSU5URUdFUl9UWVBFX05BTUUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsImlzRXF1YWxUbyIsInR5cGUiLCJlcXVhbFRvIiwidHlwZU5hbWUiLCJ0eXBlQXJndW1lbnRUeXBlIiwiYXJndWVtbnRUeXBlRXF1YWxUb1R5cGVBcmd1bWVudFR5cGUiLCJ0b0pTT04iLCJnZXRTdHJpbmciLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsInR5cGVOb2RlIiwiaW5zdGFudGlhdGVUeXBlIiwibmFtZUZyb21UeXBlTm9kZSIsImFyZ3VtZW50VHlwZUZyb21UeXBlTm9kZSIsImZyb21UeXBlTmFtZSIsInR5cGVTdHJpbmciLCJmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIiwiYXJndW1lbnRUeXBlTmFtZSIsInR5cGVTdHJpbmdGcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQUE7OztnQ0FYNkM7MEJBRXRCO3lCQUVLO3dCQUM4Qjt5QkFDQzsyQkFDcUQ7QUFFaEgsTUFBTSxFQUFFQSwwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFMUQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxhQUFhQyx1QkFBTztJQUM5QyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsWUFBWSxDQUFFO1FBQ2pFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJ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
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVUeXBlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG5hbWVGcm9tVHlwZU5vZGUsIGFyZ3VtZW50VHlwZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBJTlRFR0VSX1RZUEVfTkFNRSwgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBUeXBlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5hcmd1bWVudFR5cGUgPSBhcmd1bWVudFR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRBcmd1bWVudFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJndW1lbnRUeXBlO1xuICB9XG5cbiAgaXNMaXN0VHlwZSgpIHtcbiAgICBjb25zdCBsaXN0VHlwZSA9ICh0aGlzLm5hbWUgPT09IExJU1RfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBsaXN0VHlwZTtcbiAgfVxuXG4gIGlzU3RyaW5nVHlwZSgpIHtcbiAgICBjb25zdCBib29sZWFuVHlwZSA9ICh0aGlzLm5hbWUgPT09IFNUUklOR19UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGJvb2xlYW5UeXBlO1xuICB9XG5cbiAgaXNCb29sZWFuVHlwZSgpIHtcbiAgICBjb25zdCBib29sZWFuVHlwZSA9ICh0aGlzLm5hbWUgPT09IEJPT0xFQU5fVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBib29sZWFuVHlwZTtcbiAgfVxuXG4gIGlzSW50ZWdlclR5cGUoKSB7XG4gICAgY29uc3QgaW50ZWdlclR5cGUgPSAodGhpcy5uYW1lID09PSBJTlRFR0VSX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gaW50ZWdlclR5cGU7XG4gIH1cblxuICBpc05vbWluYWxWYWx1ZVR5cGUoKSB7XG4gICAgY29uc3QgbGlzdFR5cGUgPSAodGhpcy5uYW1lID09PSBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gbGlzdFR5cGU7XG4gIH1cblxuICBpc0VxdWFsVG8odHlwZSkge1xuICAgIGxldCBlcXVhbFRvID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgaWYgKHRoaXMubmFtZSA9PT0gdHlwZU5hbWUpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7XG4gICAgICAgIGNhc2UgTElTVF9UWVBFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCB0eXBlQXJndW1lbnRUeXBlID0gdHlwZS5nZXRBcmd1bWVudFR5cGUoKTtcblxuICAgICAgICAgIGlmICgodGhpcy5hcmd1bWVudFR5cGUgPT09IG51bGwpIHx8ICh0eXBlQXJndW1lbnRUeXBlID09PSBudWxsKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXJndW1lbnRUeXBlID09PSB0eXBlQXJndW1lbnRUeXBlKSB7XG4gICAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhcmd1ZW1udFR5cGVFcXVhbFRvVHlwZUFyZ3VtZW50VHlwZSA9IHRoaXMuYXJndW1lbnRUeXBlLmlzRXF1YWxUbyh0eXBlQXJndW1lbnRUeXBlKTtcblxuICAgICAgICAgICAgaWYgKGFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlKSB7XG4gICAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBTVFJJTkdfVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIEJPT0xFQU5fVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIElOVEVHRVJfVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICBicmVha1BvaW50XG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlR5cGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIHJldHVybiBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICB0eXBlTm9kZSA9IGluc3RhbnRpYXRlVHlwZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHR5cGVOb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IGFyZ3VtZW50VHlwZUZyb21UeXBlTm9kZSh0eXBlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBjb25zdCB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpO1xuXG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWUodHlwZU5hbWUsIGNvbnRleHQpIHtcbiAgICBsZXQgdHlwZSA9IG51bGw7XG5cbiAgICBpZiAodHlwZU5hbWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBudWxsLCAgLy8vXG4gICAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IG51bGwsXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmcsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lKHR5cGVOYW1lLCBhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IG51bGwsICAvLy9cbiAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICBhcmd1bWVudFR5cGUgPSBUeXBlLmZyb21UeXBlTmFtZShhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB0eXBlU3RyaW5nID0gdHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUodHlwZU5hbWUsIGFyZ3VtZW50VHlwZU5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmcsICAvLy9cbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlR5cGUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibmFtZSIsImFyZ3VtZW50VHlwZSIsImdldE5hbWUiLCJnZXRBcmd1bWVudFR5cGUiLCJpc0xpc3RUeXBlIiwibGlzdFR5cGUiLCJMSVNUX1RZUEVfTkFNRSIsImlzU3RyaW5nVHlwZSIsImJvb2xlYW5UeXBlIiwiU1RSSU5HX1RZUEVfTkFNRSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsImlzSW50ZWdlclR5cGUiLCJpbnRlZ2VyVHlwZSIsIklOVEVHRVJfVFlQRV9OQU1FIiwiaXNOb21pbmFsVmFsdWVUeXBlIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJpc0VxdWFsVG8iLCJ0eXBlIiwiZXF1YWxUbyIsInR5cGVOYW1lIiwidHlwZUFyZ3VtZW50VHlwZSIsImFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlIiwidG9KU09OIiwiZ2V0U3RyaW5nIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJ0eXBlTm9kZSIsImluc3RhbnRpYXRlVHlwZSIsIm5hbWVGcm9tVHlwZU5vZGUiLCJhcmd1bWVudFR5cGVGcm9tVHlwZU5vZGUiLCJmcm9tVHlwZU5hbWUiLCJ0eXBlU3RyaW5nIiwiZnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSIsImFyZ3VtZW50VHlwZU5hbWUiLCJ0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWjZDOzBCQUV0Qjt5QkFFSzs2QkFDSTt3QkFDMEI7eUJBQ0M7MkJBQ3FEO0FBRWhILE1BQU0sRUFBRUEsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTFELFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsYUFBYUMsdUJBQU87SUFDOUMsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVD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
@@ -27,9 +27,17 @@ class ProcedureNode extends _occamlanguages.NonTerminalNode {
27
27
  const ruleName = _ruleNames.RETURN_BLOCK_RULE_NAME, returnBlockNode = this.getNodeByRuleName(ruleName);
28
28
  return returnBlockNode;
29
29
  }
30
+ matchLabelNode(labelNode) {
31
+ let labelNodeMatches;
32
+ const labelNodeA = labelNode; ///
33
+ labelNode = this.getLabelNode();
34
+ const labelNodeB = labelNode; ///
35
+ labelNodeMatches = labelNodeA.match(labelNodeB); ///
36
+ return labelNodeMatches;
37
+ }
30
38
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) {
31
39
  return _occamlanguages.NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ProcedureNode, ruleName, childNodes, opacity, precedence);
32
40
  }
33
41
  }
34
42
 
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgTm9uVGVybWluYWxOb2RlIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBUWVBFX1JVTEVfTkFNRSwgTEFCRUxfUlVMRV9OQU1FLCBQQVJBTUVURVJTX1JVTEVfTkFNRSwgUkVUVVJOX0JMT0NLX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHJvY2VkdXJlTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGdldFR5cGVOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICAgbGFiZWxOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gbGFiZWxOb2RlO1xuICB9XG5cbiAgZ2V0TGFiZWxOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gTEFCRUxfUlVMRV9OQU1FLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIGxhYmVsTm9kZTtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnNOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUEFSQU1FVEVSU19SVUxFX05BTUUsXG4gICAgICAgICAgcGFyYW1ldGVyc05vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBwYXJhbWV0ZXJzTm9kZTtcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFJFVFVSTl9CTE9DS19SVUxFX05BTUUsXG4gICAgICAgICAgcmV0dXJuQmxvY2tOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcmV0dXJuQmxvY2tOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSkgeyByZXR1cm4gTm9uVGVybWluYWxOb2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShQcm9jZWR1cmVOb2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJQcm9jZWR1cmVOb2RlIiwiTm9uVGVybWluYWxOb2RlIiwiZ2V0VHlwZU5vZGUiLCJydWxlTmFtZSIsIlRZUEVfUlVMRV9OQU1FIiwibGFiZWxOb2RlIiwiZ2V0Tm9kZUJ5UnVsZU5hbWUiLCJnZXRMYWJlbE5vZGUiLCJMQUJFTF9SVUxFX05BTUUiLCJnZXRQYXJhbWV0ZXJzTm9kZSIsIlBBUkFNRVRFUlNfUlVMRV9OQU1FIiwicGFyYW1ldGVyc05vZGUiLCJnZXRSZXR1cm5CbG9ja05vZGUiLCJSRVRVUk5fQkxPQ0tfUlVMRV9OQU1FIiwicmV0dXJuQmxvY2tOb2RlIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJwcmVjZWRlbmNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O2dDQUpXOzJCQUU4RDtBQUUvRSxNQUFNQSxzQkFBc0JDLCtCQUFlO0lBQ3hEQyxjQUFjO1FBQ1osTUFBTUMsV0FBV0MseUJBQWMsRUFDekJDLFlBQVksSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQ0g7UUFFekMsT0FBT0U7SUFDVDtJQUVBRSxlQUFlO1FBQ2IsTUFBTUosV0FBV0ssMEJBQWUsRUFDMUJILFlBQVksSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQ0g7UUFFekMsT0FBT0U7SUFDVDtJQUVBSSxvQkFBb0I7UUFDbEIsTUFBTU4sV0FBV08sK0JBQW9CLEVBQy9CQyxpQkFBaUIsSUFBSSxDQUFDTCxpQkFBaUIsQ0FBQ0g7UUFFOUMsT0FBT1E7SUFDVDtJQUVBQyxxQkFBcUI7UUFDbkIsTUFBTVQsV0FBV1UsaUNBQXNCLEVBQ2pDQyxrQkFBa0IsSUFBSSxDQUFDUixpQkFBaUIsQ0FBQ0g7UUFFL0MsT0FBT1c7SUFDVDtJQUVBLE9BQU9DLDJDQUEyQ1osUUFBUSxFQUFFYSxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFO1FBQUUsT0FBT2pCLCtCQUFlLENBQUNjLDBDQUEwQyxDQUFDZixlQUFlRyxVQUFVYSxZQUFZQyxTQUFTQztJQUFhO0FBQzlOIn0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgTm9uVGVybWluYWxOb2RlIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBUWVBFX1JVTEVfTkFNRSwgTEFCRUxfUlVMRV9OQU1FLCBQQVJBTUVURVJTX1JVTEVfTkFNRSwgUkVUVVJOX0JMT0NLX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHJvY2VkdXJlTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGdldFR5cGVOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICAgbGFiZWxOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gbGFiZWxOb2RlO1xuICB9XG5cbiAgZ2V0TGFiZWxOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gTEFCRUxfUlVMRV9OQU1FLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIGxhYmVsTm9kZTtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnNOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUEFSQU1FVEVSU19SVUxFX05BTUUsXG4gICAgICAgICAgcGFyYW1ldGVyc05vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBwYXJhbWV0ZXJzTm9kZTtcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFJFVFVSTl9CTE9DS19SVUxFX05BTUUsXG4gICAgICAgICAgcmV0dXJuQmxvY2tOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcmV0dXJuQmxvY2tOb2RlO1xuICB9XG5cbiAgbWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKSB7XG4gICAgbGV0IGxhYmVsTm9kZU1hdGNoZXM7XG5cbiAgICBjb25zdCBsYWJlbE5vZGVBID0gbGFiZWxOb2RlOyAvLy9cblxuICAgIGxhYmVsTm9kZSA9IHRoaXMuZ2V0TGFiZWxOb2RlKCk7XG5cbiAgICBjb25zdCBsYWJlbE5vZGVCID0gbGFiZWxOb2RlOyAvLy9cblxuICAgIGxhYmVsTm9kZU1hdGNoZXMgPSBsYWJlbE5vZGVBLm1hdGNoKGxhYmVsTm9kZUIpOyAgLy8vXG5cbiAgICByZXR1cm4gbGFiZWxOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UpIHsgcmV0dXJuIE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoUHJvY2VkdXJlTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UpOyB9XG59XG4iXSwibmFtZXMiOlsiUHJvY2VkdXJlTm9kZSIsIk5vblRlcm1pbmFsTm9kZSIsImdldFR5cGVOb2RlIiwicnVsZU5hbWUiLCJUWVBFX1JVTEVfTkFNRSIsImxhYmVsTm9kZSIsImdldE5vZGVCeVJ1bGVOYW1lIiwiZ2V0TGFiZWxOb2RlIiwiTEFCRUxfUlVMRV9OQU1FIiwiZ2V0UGFyYW1ldGVyc05vZGUiLCJQQVJBTUVURVJTX1JVTEVfTkFNRSIsInBhcmFtZXRlcnNOb2RlIiwiZ2V0UmV0dXJuQmxvY2tOb2RlIiwiUkVUVVJOX0JMT0NLX1JVTEVfTkFNRSIsInJldHVybkJsb2NrTm9kZSIsIm1hdGNoTGFiZWxOb2RlIiwibGFiZWxOb2RlTWF0Y2hlcyIsImxhYmVsTm9kZUEiLCJsYWJlbE5vZGVCIiwibWF0Y2giLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UiLCJjaGlsZE5vZGVzIiwib3BhY2l0eSIsInByZWNlZGVuY2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBcUJBOzs7Z0NBSlc7MkJBRThEO0FBRS9FLE1BQU1BLHNCQUFzQkMsK0JBQWU7SUFDeERDLGNBQWM7UUFDWixNQUFNQyxXQUFXQyx5QkFBYyxFQUN6QkMsWUFBWSxJQUFJLENBQUNDLGlCQUFpQixDQUFDSDtRQUV6QyxPQUFPRTtJQUNUO0lBRUFFLGVBQWU7UUFDYixNQUFNSixXQUFXSywwQkFBZSxFQUMxQkgsWUFBWSxJQUFJLENBQUNDLGlCQUFpQixDQUFDSDtRQUV6QyxPQUFPRTtJQUNUO0lBRUFJLG9CQUFvQjtRQUNsQixNQUFNTixXQUFXTywrQkFBb0IsRUFDL0JDLGlCQUFpQixJQUFJLENBQUNMLGlCQUFpQixDQUFDSDtRQUU5QyxPQUFPUTtJQUNUO0lBRUFDLHFCQUFxQjtRQUNuQixNQUFNVCxXQUFXVSxpQ0FBc0IsRUFDakNDLGtCQUFrQixJQUFJLENBQUNSLGlCQUFpQixDQUFDSDtRQUUvQyxPQUFPVztJQUNUO0lBRUFDLGVBQWVWLFNBQVMsRUFBRTtRQUN4QixJQUFJVztRQUVKLE1BQU1DLGFBQWFaLFdBQVcsR0FBRztRQUVqQ0EsWUFBWSxJQUFJLENBQUNFLFlBQVk7UUFFN0IsTUFBTVcsYUFBYWIsV0FBVyxHQUFHO1FBRWpDVyxtQkFBbUJDLFdBQVdFLEtBQUssQ0FBQ0QsYUFBYyxHQUFHO1FBRXJELE9BQU9GO0lBQ1Q7SUFFQSxPQUFPSSwyQ0FBMkNqQixRQUFRLEVBQUVrQixVQUFVLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFO1FBQUUsT0FBT3RCLCtCQUFlLENBQUNtQiwwQ0FBMEMsQ0FBQ3BCLGVBQWVHLFVBQVVrQixZQUFZQyxTQUFTQztJQUFhO0FBQzlOIn0=
@@ -2,31 +2,39 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "instantiateType", {
6
- enumerable: true,
7
- get: function() {
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 instantiateLabel () {
13
+ return instantiateLabel;
14
+ },
15
+ get instantiateParameters () {
16
+ return instantiateParameters;
17
+ },
18
+ get instantiateType () {
8
19
  return instantiateType;
9
20
  }
10
21
  });
11
22
  const _occamlanguages = require("occam-languages");
23
+ const _constants = require("../constants");
12
24
  const _ruleNames = require("../ruleNames");
13
- const typePlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_RULE_NAME);
25
+ const { instantiate, ruleFromRuleName } = _occamlanguages.bnfUtilities;
26
+ let delimiter;
27
+ delimiter = _constants.PERIOD_STRING_LITERAL;
28
+ const typePlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_RULE_NAME, delimiter), labelPlaceholderRule = ruleFromRuleName(_ruleNames.LABEL_RULE_NAME, delimiter), parametersPlaceholderRule = ruleFromRuleName(_ruleNames.PARAMETERS_RULE_NAME, delimiter);
29
+ delimiter = _constants.PERIOD;
14
30
  function instantiateType(string, context) {
15
- return instantiate(typePlaceholderRule, string, context);
31
+ return instantiate(typePlaceholderRule, string, delimiter, context);
16
32
  }
17
- function instantiate(placeholderRule, string, context) {
18
- let node;
19
- const lexer = context.getLexer(), parser = context.getParser(), content = `${string}
20
- `, tokens = lexer.tokenise(content);
21
- context.setTokens(tokens);
22
- const startRule = placeholderRule; ///
23
- node = parser.parse(tokens, startRule);
24
- const nonTerminalNode = node; ///
25
- nonTerminalNode.someChildNode((childNode)=>{
26
- node = childNode; ///
27
- return true;
28
- });
29
- return node;
33
+ function instantiateLabel(string, context) {
34
+ return instantiate(labelPlaceholderRule, string, delimiter, context);
35
+ }
36
+ function instantiateParameters(string, context) {
37
+ return instantiate(parametersPlaceholderRule, string, delimiter, context);
30
38
  }
31
39
 
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBibmZVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IFRZUEVfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB0eXBlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX1JVTEVfTkFNRSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVR5cGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0eXBlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmZ1bmN0aW9uIGluc3RhbnRpYXRlKHBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KSB7XG4gIGxldCBub2RlO1xuXG4gIGNvbnN0IGxleGVyID0gY29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICBwYXJzZXIgPSBjb250ZXh0LmdldFBhcnNlcigpLFxuICAgICAgICBjb250ZW50ID0gYCR7c3RyaW5nfVxuYCxcbiAgICAgICAgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgY29udGV4dC5zZXRUb2tlbnModG9rZW5zKTtcblxuICBjb25zdCBzdGFydFJ1bGUgPSBwbGFjZWhvbGRlclJ1bGU7ICAvLy9cblxuICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2Vucywgc3RhcnRSdWxlKTtcblxuICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICBub25UZXJtaW5hbE5vZGUuc29tZUNoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iXSwibmFtZXMiOlsiaW5zdGFudGlhdGVUeXBlIiwidHlwZVBsYWNlaG9sZGVyUnVsZSIsInJ1bGVGcm9tUnVsZU5hbWUiLCJUWVBFX1JVTEVfTkFNRSIsInN0cmluZyIsImNvbnRleHQiLCJpbnN0YW50aWF0ZSIsInBsYWNlaG9sZGVyUnVsZSIsIm5vZGUiLCJsZXhlciIsImdldExleGVyIiwicGFyc2VyIiwiZ2V0UGFyc2VyIiwiY29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwic2V0VG9rZW5zIiwic3RhcnRSdWxlIiwicGFyc2UiLCJub25UZXJtaW5hbE5vZGUiLCJzb21lQ2hpbGROb2RlIiwiY2hpbGROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRZ0JBOzs7ZUFBQUE7OztnQ0FOYTsyQkFFRTtBQUUvQixNQUFNQyxzQkFBc0JDLGlCQUFpQkMseUJBQWM7QUFFcEQsU0FBU0gsZ0JBQWdCSSxNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPQyxZQUFZTCxxQkFBcUJHLFFBQVFDO0FBQVU7QUFFN0csU0FBU0MsWUFBWUMsZUFBZSxFQUFFSCxNQUFNLEVBQUVDLE9BQU87SUFDbkQsSUFBSUc7SUFFSixNQUFNQyxRQUFRSixRQUFRSyxRQUFRLElBQ3hCQyxTQUFTTixRQUFRTyxTQUFTLElBQzFCQyxVQUFVLEdBQUdULE9BQU87QUFDNUIsQ0FBQyxFQUNPVSxTQUFTTCxNQUFNTSxRQUFRLENBQUNGO0lBRTlCUixRQUFRVyxTQUFTLENBQUNGO0lBRWxCLE1BQU1HLFlBQVlWLGlCQUFrQixHQUFHO0lBRXZDQyxPQUFPRyxPQUFPTyxLQUFLLENBQUNKLFFBQVFHO0lBRTVCLE1BQU1FLGtCQUFrQlgsTUFBTSxHQUFHO0lBRWpDVyxnQkFBZ0JDLGFBQWEsQ0FBQyxDQUFDQztRQUM3QmIsT0FBT2EsV0FBVyxHQUFHO1FBRXJCLE9BQU87SUFDVDtJQUVBLE9BQU9iO0FBQ1QifQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBibmZVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IFBFUklPRCwgUEVSSU9EX1NUUklOR19MSVRFUkFMIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgVFlQRV9SVUxFX05BTUUsIExBQkVMX1JVTEVfTkFNRSwgUEFSQU1FVEVSU19SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHsgaW5zdGFudGlhdGUsIHJ1bGVGcm9tUnVsZU5hbWUgfSA9IGJuZlV0aWxpdGllcztcblxubGV0IGRlbGltaXRlcjtcblxuZGVsaW1pdGVyID0gUEVSSU9EX1NUUklOR19MSVRFUkFMO1xuXG5jb25zdCB0eXBlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX1JVTEVfTkFNRSwgZGVsaW1pdGVyKSxcbiAgICAgIGxhYmVsUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShMQUJFTF9SVUxFX05BTUUsIGRlbGltaXRlciksXG4gICAgICBwYXJhbWV0ZXJzUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQQVJBTUVURVJTX1JVTEVfTkFNRSwgZGVsaW1pdGVyKTtcblxuZGVsaW1pdGVyID0gUEVSSU9EO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBkZWxpbWl0ZXIsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUxhYmVsKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobGFiZWxQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgZGVsaW1pdGVyLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQYXJhbWV0ZXJzKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocGFyYW1ldGVyc1BsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBkZWxpbWl0ZXIsIGNvbnRleHQpOyB9XG4iXSwibmFtZXMiOlsiaW5zdGFudGlhdGVMYWJlbCIsImluc3RhbnRpYXRlUGFyYW1ldGVycyIsImluc3RhbnRpYXRlVHlwZSIsImluc3RhbnRpYXRlIiwicnVsZUZyb21SdWxlTmFtZSIsImJuZlV0aWxpdGllcyIsImRlbGltaXRlciIsIlBFUklPRF9TVFJJTkdfTElURVJBTCIsInR5cGVQbGFjZWhvbGRlclJ1bGUiLCJUWVBFX1JVTEVfTkFNRSIsImxhYmVsUGxhY2Vob2xkZXJSdWxlIiwiTEFCRUxfUlVMRV9OQU1FIiwicGFyYW1ldGVyc1BsYWNlaG9sZGVyUnVsZSIsIlBBUkFNRVRFUlNfUlVMRV9OQU1FIiwiUEVSSU9EIiwic3RyaW5nIiwiY29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBcUJnQkE7ZUFBQUE7O1FBRUFDO2VBQUFBOztRQUpBQztlQUFBQTs7O2dDQWpCYTsyQkFFaUI7MkJBQ3dCO0FBRXRFLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxnQkFBZ0IsRUFBRSxHQUFHQyw0QkFBWTtBQUV0RCxJQUFJQztBQUVKQSxZQUFZQyxnQ0FBcUI7QUFFakMsTUFBTUMsc0JBQXNCSixpQkFBaUJLLHlCQUFjLEVBQUVILFlBQ3ZESSx1QkFBdUJOLGlCQUFpQk8sMEJBQWUsRUFBRUwsWUFDekRNLDRCQUE0QlIsaUJBQWlCUywrQkFBb0IsRUFBRVA7QUFFekVBLFlBQVlRLGlCQUFNO0FBRVgsU0FBU1osZ0JBQWdCYSxNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPYixZQUFZSyxxQkFBcUJPLFFBQVFULFdBQVdVO0FBQVU7QUFFakgsU0FBU2hCLGlCQUFpQmUsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT2IsWUFBWU8sc0JBQXNCSyxRQUFRVCxXQUFXVTtBQUFVO0FBRW5ILFNBQVNmLHNCQUFzQmMsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT2IsWUFBWVMsMkJBQTJCRyxRQUFRVCxXQUFXVTtBQUFVIn0=
@@ -0,0 +1,31 @@
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 furtleLexer () {
13
+ return furtleLexer;
14
+ },
15
+ get furtleParser () {
16
+ return furtleParser;
17
+ }
18
+ });
19
+ const _occamlanguages = require("occam-languages");
20
+ const _lexer = /*#__PURE__*/ _interop_require_default(require("../furtle/lexer"));
21
+ const _parser = /*#__PURE__*/ _interop_require_default(require("../furtle/parser"));
22
+ function _interop_require_default(obj) {
23
+ return obj && obj.__esModule ? obj : {
24
+ default: obj
25
+ };
26
+ }
27
+ const { furtleLexerFromNothing, furtleParserFromNothing } = _occamlanguages.furtleUtilities;
28
+ const furtleLexer = furtleLexerFromNothing(_lexer.default);
29
+ const furtleParser = furtleParserFromNothing(_parser.default);
30
+
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBGdXJ0bGVMZXhlciBmcm9tIFwiLi4vZnVydGxlL2xleGVyXCI7XG5pbXBvcnQgRnVydGxlUGFyc2VyIGZyb20gXCIuLi9mdXJ0bGUvcGFyc2VyXCI7XG5cbmNvbnN0IHsgZnVydGxlTGV4ZXJGcm9tTm90aGluZywgZnVydGxlUGFyc2VyRnJvbU5vdGhpbmcgfSA9IGZ1cnRsZVV0aWxpdGllcztcblxuZXhwb3J0IGNvbnN0IGZ1cnRsZUxleGVyID0gZnVydGxlTGV4ZXJGcm9tTm90aGluZyhGdXJ0bGVMZXhlcik7XG5cbmV4cG9ydCBjb25zdCBmdXJ0bGVQYXJzZXIgPSBmdXJ0bGVQYXJzZXJGcm9tTm90aGluZyhGdXJ0bGVQYXJzZXIpO1xuIl0sIm5hbWVzIjpbImZ1cnRsZUxleGVyIiwiZnVydGxlUGFyc2VyIiwiZnVydGxlTGV4ZXJGcm9tTm90aGluZyIsImZ1cnRsZVBhcnNlckZyb21Ob3RoaW5nIiwiZnVydGxlVXRpbGl0aWVzIiwiRnVydGxlTGV4ZXIiLCJGdXJ0bGVQYXJzZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVNhQTtlQUFBQTs7UUFFQUM7ZUFBQUE7OztnQ0FUbUI7OERBRVI7K0RBQ0M7Ozs7OztBQUV6QixNQUFNLEVBQUVDLHNCQUFzQixFQUFFQyx1QkFBdUIsRUFBRSxHQUFHQywrQkFBZTtBQUVwRSxNQUFNSixjQUFjRSx1QkFBdUJHLGNBQVc7QUFFdEQsTUFBTUosZUFBZUUsd0JBQXdCRyxlQUFZIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "3.0.371",
4
+ "version": "3.0.375",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "necessary": "^17.5.2",
14
14
  "occam-grammars": "^1.3.628",
15
- "occam-languages": "^1.0.30",
15
+ "occam-languages": "^1.0.32",
16
16
  "occam-lexers": "^23.2.2",
17
17
  "occam-parsers": "^23.2.4",
18
18
  "occam-query": "^4.1.198"
package/src/constants.js CHANGED
@@ -3,7 +3,9 @@
3
3
  export const NULL = "null";
4
4
  export const TRUE = "true";
5
5
  export const FALSE = "false";
6
+ export const PERIOD = ".";
6
7
  export const EMPTY_STRING = "";
7
8
  export const NOT_EQUAL_TO = "!=";
8
9
  export const CONJUNCTION_OPERATOR = "&&";
9
10
  export const DISJUNCTION_OPERATOR = "||";
11
+ export const PERIOD_STRING_LITERAL = `"."`;
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import { FileContext, furtleUtilities } from "occam-languages";
4
-
5
- import FurtleLexer from "../../furtle/lexer";
6
- import FurtleParser from "../../furtle/parser";
3
+ import { FileContext } from "occam-languages";
4
+ import { queryUtilities } from "occam-query";
7
5
 
8
6
  import { verifyFile } from "../../process/verify";
7
+ import { furtleLexer, furtleParser } from "../../utilities/furtle";
9
8
  import { proceduresFromJSON, proceduresToProceduresJSON } from "../../utilities/json";
10
9
 
11
- const { furtleLexerFromNothing, furtleParserFromNothing } = furtleUtilities;
10
+ const { nodesQuery } = queryUtilities;
12
11
 
13
- const furtleLexer = furtleLexerFromNothing(FurtleLexer),
14
- furtleParser = furtleParserFromNothing(FurtleParser);
12
+ const procedureNodesQuery = nodesQuery("/document/procedure");
15
13
 
16
14
  export default class FurtleFileContext extends FileContext {
17
15
  constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures) {
@@ -138,6 +136,22 @@ export default class FurtleFileContext extends FileContext {
138
136
  this.debug(`Added the '${procedureString}' function to the '${filePath}' file context.`);
139
137
  }
140
138
 
139
+ findProcedureNode(label) {
140
+ const node = this.getNode(),
141
+ labelNode = label.getNode(),
142
+ documentNode = node, ///
143
+ procedureNodes = procedureNodesQuery(documentNode),
144
+ procedureNode = procedureNodes.find((procedureNode) => {
145
+ const labelMatches = procedureNode.matchLabelNode(labelNode);
146
+
147
+ if (labelMatches) {
148
+ return true;
149
+ }
150
+ }) || null;
151
+
152
+ return procedureNode;
153
+ }
154
+
141
155
  findProcedureByProcedureName(procedureName) {
142
156
  const procedures = this.getProcedures(),
143
157
  procedure = procedures.find((procedure) => {
@@ -167,17 +181,15 @@ export default class FurtleFileContext extends FileContext {
167
181
  }
168
182
 
169
183
  initialise() {
184
+ super.initialise(); ///
185
+
170
186
  const json = this.getJSON();
171
187
 
172
- if (json === null) {
173
- super.initialise();
188
+ if (json !== null) {
189
+ const fileContext = this; ///
174
190
 
175
- return;
191
+ this.procedures = proceduresFromJSON(json, fileContext);
176
192
  }
177
-
178
- const fileContext = this; ///
179
-
180
- this.procedures = proceduresFromJSON(json, fileContext);
181
193
  }
182
194
 
183
195
  async verifyFile() {
@@ -19,6 +19,20 @@ export default class LiteralContext extends Context {
19
19
  this.tokens = tokens;
20
20
  }
21
21
 
22
+ getLexer() {
23
+ const context = this.getContext(),
24
+ lexer = context.getLexer();
25
+
26
+ return lexer;
27
+ }
28
+
29
+ getParser() {
30
+ const context = this.getContext(),
31
+ parser = context.getParser();
32
+
33
+ return parser;
34
+ }
35
+
22
36
  nodeAsString(node) {
23
37
  const string = nodeAsString(node, this.tokens);
24
38
 
@@ -31,12 +45,6 @@ export default class LiteralContext extends Context {
31
45
  return string;
32
46
  }
33
47
 
34
- static fromTokens(tokens, context) {
35
- const literalContext = new LiteralContext(context, tokens);
36
-
37
- return literalContext;
38
- }
39
-
40
48
  static fromNothing(context) {
41
49
  const tokens = null,
42
50
  literalContext = new LiteralContext(context, tokens);
@@ -3,6 +3,9 @@
3
3
  import { Element, breakPointUtilities } from "occam-languages";
4
4
 
5
5
  import { define } from "../elements";
6
+ import { instantiate } from "../utilities/context";
7
+ import { instantiateLabel } from "../process/instantiate";
8
+ import { nameFromLabelNode } from "../utilities/element";
6
9
 
7
10
  const { breakPointToBreakPointJSON } = breakPointUtilities;
8
11
 
@@ -45,6 +48,18 @@ export default define(class Label extends Element {
45
48
  static name = "Label";
46
49
 
47
50
  static fromJSON(json, context) {
48
- debugger
51
+ return instantiate((context) => {
52
+ const { string } = json,
53
+ labelNode = instantiateLabel(string, context),
54
+ node = labelNode, ///
55
+ breakPoint = null,
56
+ name = nameFromLabelNode(labelNode, context);
57
+
58
+ context = null;
59
+
60
+ const label = new Label(context, string, node, breakPoint, name);
61
+
62
+ return label;
63
+ }, context);
49
64
  }
50
65
  });
@@ -5,6 +5,9 @@ import { Element, breakPointUtilities } from "occam-languages";
5
5
  import Exception from "../exception";
6
6
 
7
7
  import { define } from "../elements";
8
+ import { instantiate } from "../utilities/context";
9
+ import { instantiateParameters } from "../process/instantiate";
10
+ import { parametersArrayFromParametersNode } from "../utilities/element";
8
11
 
9
12
  const { breakPointToBreakPointJSON } = breakPointUtilities;
10
13
 
@@ -82,6 +85,19 @@ export default define(class Parameters extends Element {
82
85
  static name = "Parameters";
83
86
 
84
87
  static fromJSON(json, context) {
85
- debugger
88
+ return instantiate((context) => {
89
+ const { string } = json,
90
+ parametersNode = instantiateParameters(string, context),
91
+ node = parametersNode, ///
92
+ breakPoint = null,
93
+ parametersArray = parametersArrayFromParametersNode(parametersNode, context),
94
+ array = parametersArray; ///
95
+
96
+ context = null;
97
+
98
+ const parameters = new Parameters(context, string, node, breakPoint, array);
99
+
100
+ return parameters;
101
+ }, context);
86
102
  }
87
103
  });
@@ -6,6 +6,7 @@ import Exception from "../exception";
6
6
 
7
7
  import { define } from "../elements";
8
8
  import { valuesFromNominalValues } from "../utilities/values";
9
+ import { returnBlockFromProcedureNode } from "../utilities/element";
9
10
  import { variablesFromValuesAndParameters } from "../utilities/parameters";
10
11
  import { typeFromJSON, labelFromJSON, parametersFromJSON, typeToTypeJSON, labelToLabelJSON, parametersToParametersJSON } from "../utilities/json";
11
12
 
@@ -78,6 +79,8 @@ export default define(class Procedure extends Element {
78
79
 
79
80
  this.parameters.compareValues(values, context);
80
81
 
82
+ this.guaranteeReturnBlock();
83
+
81
84
  const variables = variablesFromValuesAndParameters(values, this.parameters, context),
82
85
  value = await this.returnBlock.evaluate(variables, context),
83
86
  valueType = value.getType(),
@@ -114,6 +117,18 @@ export default define(class Procedure extends Element {
114
117
  return term;
115
118
  }
116
119
 
120
+ guaranteeReturnBlock() {
121
+ if (this.returnBlock != null) {
122
+ return;
123
+ }
124
+
125
+ const node = this.getNode(),
126
+ context = this.getContext(),
127
+ procedureNode = node;
128
+
129
+ this.returnBlock = returnBlockFromProcedureNode(procedureNode, context);
130
+ }
131
+
117
132
  toJSON() {
118
133
  const typeJSON = typeToTypeJSON(this.type),
119
134
  labelJSON = labelToLabelJSON(this.label),
@@ -147,14 +162,13 @@ export default define(class Procedure extends Element {
147
162
  static fromJSON(json, context) {
148
163
  const { string } = json,
149
164
  breakPoint = breakPointFromJSON(json),
150
- type = typeFromJSON(json),
151
- label = labelFromJSON(json),
152
- parameters = parametersFromJSON(json),
165
+ type = typeFromJSON(json, context),
166
+ label = labelFromJSON(json, context),
167
+ parameters = parametersFromJSON(json, context),
153
168
  procedureNode = context.findProcedureNode(label),
154
169
  returnBlock = null, ///
155
- node = procedureNode; ///
156
-
157
- const procedure = new Prpcedure(context, string, node, breakPoint, type, label, parameters, returnBlock);
170
+ node = procedureNode, ///
171
+ procedure = new Procedure(context, string, node, breakPoint, type, label, parameters, returnBlock);
158
172
 
159
173
  return procedure;
160
174
  }
@@ -5,6 +5,7 @@ import { Element, breakPointUtilities } from "occam-languages";
5
5
  import { define } from "../elements";
6
6
 
7
7
  import { instantiate } from "../utilities/context";
8
+ import { instantiateType } from "../process/instantiate";
8
9
  import { typeStringFromTypeNameAndArgumentTypeName } from "../utilities/string";
9
10
  import { nameFromTypeNode, argumentTypeFromTypeNode } from "../utilities/element";
10
11
  import { LIST_TYPE_NAME, STRING_TYPE_NAME, BOOLEAN_TYPE_NAME, INTEGER_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME } from "../typeNames";
@@ -33,5 +33,19 @@ export default class ProcedureNode extends NonTerminalNode {
33
33
  return returnBlockNode;
34
34
  }
35
35
 
36
+ matchLabelNode(labelNode) {
37
+ let labelNodeMatches;
38
+
39
+ const labelNodeA = labelNode; ///
40
+
41
+ labelNode = this.getLabelNode();
42
+
43
+ const labelNodeB = labelNode; ///
44
+
45
+ labelNodeMatches = labelNodeA.match(labelNodeB); ///
46
+
47
+ return labelNodeMatches;
48
+ }
49
+
36
50
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ProcedureNode, ruleName, childNodes, opacity, precedence); }
37
51
  }
@@ -2,34 +2,23 @@
2
2
 
3
3
  import { bnfUtilities } from "occam-languages";
4
4
 
5
- import { TYPE_RULE_NAME } from "../ruleNames";
5
+ import { PERIOD, PERIOD_STRING_LITERAL } from "../constants";
6
+ import { TYPE_RULE_NAME, LABEL_RULE_NAME, PARAMETERS_RULE_NAME } from "../ruleNames";
6
7
 
7
- const typePlaceholderRule = ruleFromRuleName(TYPE_RULE_NAME);
8
+ const { instantiate, ruleFromRuleName } = bnfUtilities;
8
9
 
9
- export function instantiateType(string, context) { return instantiate(typePlaceholderRule, string, context); }
10
+ let delimiter;
10
11
 
11
- function instantiate(placeholderRule, string, context) {
12
- let node;
12
+ delimiter = PERIOD_STRING_LITERAL;
13
13
 
14
- const lexer = context.getLexer(),
15
- parser = context.getParser(),
16
- content = `${string}
17
- `,
18
- tokens = lexer.tokenise(content);
14
+ const typePlaceholderRule = ruleFromRuleName(TYPE_RULE_NAME, delimiter),
15
+ labelPlaceholderRule = ruleFromRuleName(LABEL_RULE_NAME, delimiter),
16
+ parametersPlaceholderRule = ruleFromRuleName(PARAMETERS_RULE_NAME, delimiter);
19
17
 
20
- context.setTokens(tokens);
18
+ delimiter = PERIOD;
21
19
 
22
- const startRule = placeholderRule; ///
20
+ export function instantiateType(string, context) { return instantiate(typePlaceholderRule, string, delimiter, context); }
23
21
 
24
- node = parser.parse(tokens, startRule);
22
+ export function instantiateLabel(string, context) { return instantiate(labelPlaceholderRule, string, delimiter, context); }
25
23
 
26
- const nonTerminalNode = node; ///
27
-
28
- nonTerminalNode.someChildNode((childNode) => {
29
- node = childNode; ///
30
-
31
- return true;
32
- });
33
-
34
- return node;
35
- }
24
+ export function instantiateParameters(string, context) { return instantiate(parametersPlaceholderRule, string, delimiter, context); }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ import { furtleUtilities } from "occam-languages";
4
+
5
+ import FurtleLexer from "../furtle/lexer";
6
+ import FurtleParser from "../furtle/parser";
7
+
8
+ const { furtleLexerFromNothing, furtleParserFromNothing } = furtleUtilities;
9
+
10
+ export const furtleLexer = furtleLexerFromNothing(FurtleLexer);
11
+
12
+ export const furtleParser = furtleParserFromNothing(FurtleParser);