occam-furtle 2.0.331 → 2.0.335

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.
@@ -23,6 +23,7 @@ _export(exports, {
23
23
  }
24
24
  });
25
25
  var _elements = /*#__PURE__*/ _interop_require_default(require("../elements"));
26
+ var _types = require("../types");
26
27
  var _string = require("../utilities/string");
27
28
  function _interop_require_default(obj) {
28
29
  return obj && obj.__esModule ? obj : {
@@ -30,20 +31,20 @@ function _interop_require_default(obj) {
30
31
  };
31
32
  }
32
33
  function primitiveFromNode(node, context) {
33
- var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromNode)(node, context), string = primitiveString, nodes = null, number = null, boolean = null, stringLiteral = null, primitive = new Primitive(string, node, nodes, number, boolean, stringLiteral);
34
+ var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromNode)(node, context), string = primitiveString, type = _types.NODE_TYPE, value = node, primitive = new Primitive(string, type, value);
34
35
  return primitive;
35
36
  }
36
37
  function primitiveFromNodes(nodes, context) {
37
- var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromNodes)(nodes, context), string = primitiveString, node = null, number = null, boolean = null, stringLiteral = null, primitive = new Primitive(string, node, nodes, number, boolean, stringLiteral);
38
+ var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromNodes)(nodes, context), string = primitiveString, type = _types.NODES_TYPE, value = nodes, primitive = new Primitive(string, type, value);
38
39
  return primitive;
39
40
  }
40
41
  function primitiveFromBoolean(boolean, context) {
41
- var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromBoolean)(boolean), string = primitiveString, node = null, nodes = null, number = null, stringLiteral = null, primitive = new Primitive(string, node, nodes, number, boolean, stringLiteral);
42
+ var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromBoolean)(boolean), string = primitiveString, type = _types.BOOLEAN_TYPE, value = boolean, primitive = new Primitive(string, type, value);
42
43
  return primitive;
43
44
  }
44
45
  function primitiveFromStringLiteral(stringLiteral, context) {
45
- var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromStringLiteral)(stringLiteral), string = primitiveString, node = null, nodes = null, number = null, boolean = null, primitive = new Primitive(string, node, nodes, number, boolean, stringLiteral);
46
+ var Primitive = _elements.default.Primitive, primitiveString = (0, _string.primtiveStringFromStringLiteral)(stringLiteral), string = primitiveString, type = _types.STRING_TYPE, value = stringLiteral, primitive = new Primitive(string, type, value);
46
47
  return primitive;
47
48
  }
48
49
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJpbWl0aXZlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IHByaW10aXZlU3RyaW5nRnJvbU5vZGUsIHByaW10aXZlU3RyaW5nRnJvbU5vZGVzLCBwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuLCBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1pdGl2ZUZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBQcmltaXRpdmUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmltaXRpdmVTdHJpbmcgPSBwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlKG5vZGUsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsICAvLy9cbiAgICAgICAgbm9kZXMgPSBudWxsLFxuICAgICAgICBudW1iZXIgPSBudWxsLFxuICAgICAgICBib29sZWFuID0gbnVsbCxcbiAgICAgICAgc3RyaW5nTGl0ZXJhbCA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUoc3RyaW5nLCBub2RlLCBub2RlcywgbnVtYmVyLCBib29sZWFuLCBzdHJpbmdMaXRlcmFsKTtcblxuICByZXR1cm4gcHJpbWl0aXZlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbWl0aXZlRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsICAvLy9cbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIG51bWJlciA9IG51bGwsXG4gICAgICAgIGJvb2xlYW4gPSBudWxsLFxuICAgICAgICBzdHJpbmdMaXRlcmFsID0gbnVsbCxcbiAgICAgICAgcHJpbWl0aXZlID0gbmV3IFByaW1pdGl2ZShzdHJpbmcsIG5vZGUsIG5vZGVzLCBudW1iZXIsIGJvb2xlYW4sIHN0cmluZ0xpdGVyYWwpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBub2RlcyA9IG51bGwsXG4gICAgICAgIG51bWJlciA9IG51bGwsXG4gICAgICAgIHN0cmluZ0xpdGVyYWwgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKHN0cmluZywgbm9kZSwgbm9kZXMsIG51bWJlciwgYm9vbGVhbiwgc3RyaW5nTGl0ZXJhbCk7XG5cbiAgcmV0dXJuIHByaW1pdGl2ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBQcmltaXRpdmUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmltaXRpdmVTdHJpbmcgPSBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsICAvLy9cbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIG5vZGVzID0gbnVsbCxcbiAgICAgICAgbnVtYmVyID0gbnVsbCxcbiAgICAgICAgYm9vbGVhbiA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUoc3RyaW5nLCBub2RlLCBub2RlcywgbnVtYmVyLCBib29sZWFuLCBzdHJpbmdMaXRlcmFsKTtcblxuICByZXR1cm4gcHJpbWl0aXZlO1xufVxuIl0sIm5hbWVzIjpbInByaW1pdGl2ZUZyb21Cb29sZWFuIiwicHJpbWl0aXZlRnJvbU5vZGUiLCJwcmltaXRpdmVGcm9tTm9kZXMiLCJwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbCIsIm5vZGUiLCJjb250ZXh0IiwiUHJpbWl0aXZlIiwiZWxlbWVudHMiLCJwcmltaXRpdmVTdHJpbmciLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlIiwic3RyaW5nIiwibm9kZXMiLCJudW1iZXIiLCJib29sZWFuIiwic3RyaW5nTGl0ZXJhbCIsInByaW1pdGl2ZSIsInByaW10aXZlU3RyaW5nRnJvbU5vZGVzIiwicHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiIsInByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdDZ0JBO2VBQUFBOztRQTFCQUM7ZUFBQUE7O1FBYUFDO2VBQUFBOztRQTBCQUM7ZUFBQUE7OzsrREEzQ0s7c0JBRXVHOzs7Ozs7QUFFckgsU0FBU0Ysa0JBQWtCRyxJQUFJLEVBQUVDLE9BQU87SUFDN0MsSUFBTSxBQUFFQyxZQUFjQyxpQkFBUSxDQUF0QkQsV0FDRkUsa0JBQWtCQyxJQUFBQSw4QkFBc0IsRUFBQ0wsTUFBTUMsVUFDL0NLLFNBQVNGLGlCQUNURyxRQUFRLE1BQ1JDLFNBQVMsTUFDVEMsVUFBVSxNQUNWQyxnQkFBZ0IsTUFDaEJDLFlBQVksSUFBSVQsVUFBVUksUUFBUU4sTUFBTU8sT0FBT0MsUUFBUUMsU0FBU0M7SUFFdEUsT0FBT0M7QUFDVDtBQUVPLFNBQVNiLG1CQUFtQlMsS0FBSyxFQUFFTixPQUFPO0lBQy9DLElBQU0sQUFBRUMsWUFBY0MsaUJBQVEsQ0FBdEJELFdBQ0ZFLGtCQUFrQlEsSUFBQUEsK0JBQXVCLEVBQUNMLE9BQU9OLFVBQ2pESyxTQUFTRixpQkFDVEosT0FBTyxNQUNQUSxTQUFTLE1BQ1RDLFVBQVUsTUFDVkMsZ0JBQWdCLE1BQ2hCQyxZQUFZLElBQUlULFVBQVVJLFFBQVFOLE1BQU1PLE9BQU9DLFFBQVFDLFNBQVNDO0lBRXRFLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTZixxQkFBcUJhLE9BQU8sRUFBRVIsT0FBTztJQUNuRCxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JTLElBQUFBLGlDQUF5QixFQUFDSixVQUM1Q0gsU0FBU0YsaUJBQ1RKLE9BQU8sTUFDUE8sUUFBUSxNQUNSQyxTQUFTLE1BQ1RFLGdCQUFnQixNQUNoQkMsWUFBWSxJQUFJVCxVQUFVSSxRQUFRTixNQUFNTyxPQUFPQyxRQUFRQyxTQUFTQztJQUV0RSxPQUFPQztBQUNUO0FBRU8sU0FBU1osMkJBQTJCVyxhQUFhLEVBQUVULE9BQU87SUFDL0QsSUFBTSxBQUFFQyxZQUFjQyxpQkFBUSxDQUF0QkQsV0FDRkUsa0JBQWtCVSxJQUFBQSx1Q0FBK0IsRUFBQ0osZ0JBQ2xESixTQUFTRixpQkFDVEosT0FBTyxNQUNQTyxRQUFRLE1BQ1JDLFNBQVMsTUFDVEMsVUFBVSxNQUNWRSxZQUFZLElBQUlULFVBQVVJLFFBQVFOLE1BQU1PLE9BQU9DLFFBQVFDLFNBQVNDO0lBRXRFLE9BQU9DO0FBQ1QifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJpbWl0aXZlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IE5PREVfVFlQRSwgTk9ERVNfVFlQRSwgU1RSSU5HX1RZUEUsIEJPT0xFQU5fVFlQRSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcHJpbXRpdmVTdHJpbmdGcm9tTm9kZSwgcHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMsIHByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4sIHByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJpbWl0aXZlRnJvbU5vZGUobm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFByaW1pdGl2ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByaW1pdGl2ZVN0cmluZyA9IHByaW10aXZlU3RyaW5nRnJvbU5vZGUobm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgIC8vL1xuICAgICAgICB0eXBlID0gTk9ERV9UWVBFLFxuICAgICAgICB2YWx1ZSA9IG5vZGUsIC8vL1xuICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKHN0cmluZywgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBQcmltaXRpdmUgfSA9IGVsZW1lbnRzLFxuICAgICAgICBwcmltaXRpdmVTdHJpbmcgPSBwcmltdGl2ZVN0cmluZ0Zyb21Ob2Rlcyhub2RlcywgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgIC8vL1xuICAgICAgICB0eXBlID0gTk9ERVNfVFlQRSxcbiAgICAgICAgdmFsdWUgPSBub2RlcywgIC8vL1xuICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKHN0cmluZywgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIHR5cGUgPSBCT09MRUFOX1RZUEUsXG4gICAgICAgIHZhbHVlID0gYm9vbGVhbiwgIC8vL1xuICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKHN0cmluZywgdHlwZSwgdmFsdWUpO1xuXG4gIHJldHVybiBwcmltaXRpdmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgUHJpbWl0aXZlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nLCAgLy8vXG4gICAgICAgIHR5cGUgPSBTVFJJTkdfVFlQRSxcbiAgICAgICAgdmFsdWUgPSBzdHJpbmdMaXRlcmFsLCAgLy8vXG4gICAgICAgIHByaW1pdGl2ZSA9IG5ldyBQcmltaXRpdmUoc3RyaW5nLCB0eXBlLCB2YWx1ZSk7XG5cbiAgcmV0dXJuIHByaW1pdGl2ZTtcbn1cbiJdLCJuYW1lcyI6WyJwcmltaXRpdmVGcm9tQm9vbGVhbiIsInByaW1pdGl2ZUZyb21Ob2RlIiwicHJpbWl0aXZlRnJvbU5vZGVzIiwicHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwiLCJub2RlIiwiY29udGV4dCIsIlByaW1pdGl2ZSIsImVsZW1lbnRzIiwicHJpbWl0aXZlU3RyaW5nIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZSIsInN0cmluZyIsInR5cGUiLCJOT0RFX1RZUEUiLCJ2YWx1ZSIsInByaW1pdGl2ZSIsIm5vZGVzIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMiLCJOT0RFU19UWVBFIiwiYm9vbGVhbiIsInByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4iLCJCT09MRUFOX1RZUEUiLCJzdHJpbmdMaXRlcmFsIiwicHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsIlNUUklOR19UWVBFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE2QmdCQTtlQUFBQTs7UUF0QkFDO2VBQUFBOztRQVdBQztlQUFBQTs7UUFzQkFDO2VBQUFBOzs7K0RBdENLO3FCQUU0QztzQkFDMkQ7Ozs7OztBQUVySCxTQUFTRixrQkFBa0JHLElBQUksRUFBRUMsT0FBTztJQUM3QyxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JDLElBQUFBLDhCQUFzQixFQUFDTCxNQUFNQyxVQUMvQ0ssU0FBU0YsaUJBQ1RHLE9BQU9DLGdCQUFTLEVBQ2hCQyxRQUFRVCxNQUNSVSxZQUFZLElBQUlSLFVBQVVJLFFBQVFDLE1BQU1FO0lBRTlDLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTWixtQkFBbUJhLEtBQUssRUFBRVYsT0FBTztJQUMvQyxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JRLElBQUFBLCtCQUF1QixFQUFDRCxPQUFPVixVQUNqREssU0FBU0YsaUJBQ1RHLE9BQU9NLGlCQUFVLEVBQ2pCSixRQUFRRSxPQUNSRCxZQUFZLElBQUlSLFVBQVVJLFFBQVFDLE1BQU1FO0lBRTlDLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTZCxxQkFBcUJrQixPQUFPLEVBQUViLE9BQU87SUFDbkQsSUFBTSxBQUFFQyxZQUFjQyxpQkFBUSxDQUF0QkQsV0FDRkUsa0JBQWtCVyxJQUFBQSxpQ0FBeUIsRUFBQ0QsVUFDNUNSLFNBQVNGLGlCQUNURyxPQUFPUyxtQkFBWSxFQUNuQlAsUUFBUUssU0FDUkosWUFBWSxJQUFJUixVQUFVSSxRQUFRQyxNQUFNRTtJQUU5QyxPQUFPQztBQUNUO0FBRU8sU0FBU1gsMkJBQTJCa0IsYUFBYSxFQUFFaEIsT0FBTztJQUMvRCxJQUFNLEFBQUVDLFlBQWNDLGlCQUFRLENBQXRCRCxXQUNGRSxrQkFBa0JjLElBQUFBLHVDQUErQixFQUFDRCxnQkFDbERYLFNBQVNGLGlCQUNURyxPQUFPWSxrQkFBVyxFQUNsQlYsUUFBUVEsZUFDUlAsWUFBWSxJQUFJUixVQUFVSSxRQUFRQyxNQUFNRTtJQUU5QyxPQUFPQztBQUNUIn0=
@@ -45,18 +45,24 @@ _export(exports, {
45
45
  get someStringFromVariableAndAnonymousProcedure () {
46
46
  return someStringFromVariableAndAnonymousProcedure;
47
47
  },
48
+ get termStringFromPrimitiveAndProperties () {
49
+ return termStringFromPrimitiveAndProperties;
50
+ },
48
51
  get termsStringFromTermsArray () {
49
52
  return termsStringFromTermsArray;
50
53
  },
51
- get variableAssignmentStringFromVariable () {
52
- return variableAssignmentStringFromVariable;
54
+ get ternaryStringFromTerm () {
55
+ return ternaryStringFromTerm;
56
+ },
57
+ get variableAssignmentStringFromTypeAndVariable () {
58
+ return variableAssignmentStringFromTypeAndVariable;
59
+ },
60
+ get variableAssignmentStringFromTypeAndVariableAssignmentsArray () {
61
+ return variableAssignmentStringFromTypeAndVariableAssignmentsArray;
53
62
  },
54
63
  get variableAssignmentStringFromVariableAssignment () {
55
64
  return variableAssignmentStringFromVariableAssignment;
56
65
  },
57
- get variableAssignmentStringFromVariableAssignmentsArray () {
58
- return variableAssignmentStringFromVariableAssignmentsArray;
59
- },
60
66
  get variableStringFromName () {
61
67
  return variableStringFromName;
62
68
  }
@@ -69,6 +75,10 @@ function _interop_require_default(obj) {
69
75
  default: obj
70
76
  };
71
77
  }
78
+ function ternaryStringFromTerm(term) {
79
+ var termString = term.getString(), ternaryString = "if (".concat(termString, ") { ... } else { ... }");
80
+ return ternaryString;
81
+ }
72
82
  function variableStringFromName(name) {
73
83
  var variableString = name; ///
74
84
  return variableString;
@@ -97,9 +107,22 @@ function primtiveStringFromStringLiteral(stringLiteral) {
97
107
  var string = (0, _stringLiteral.stringFromStringLiteral)(stringLiteral), primtiveString = string; ///
98
108
  return primtiveString;
99
109
  }
100
- function variableAssignmentStringFromVariable(expression, variable) {
101
- var type = variable.getType(), variableString = variable.getString(), variableAssignmentString = "".concat(type, " ").concat(variableString, " = ... ;");
102
- return variableAssignmentString;
110
+ function termStringFromPrimitiveAndProperties(primitive, properties) {
111
+ var termString;
112
+ if (false) {
113
+ ///
114
+ } else if (primitive !== null) {
115
+ var primitiveString = primitive.toString();
116
+ termString = primitiveString; ///
117
+ } else {
118
+ properties.forEach(function(property) {
119
+ if (property !== null) {
120
+ var propertyString = property.getString();
121
+ termString = propertyString; ///
122
+ }
123
+ });
124
+ }
125
+ return termString;
103
126
  }
104
127
  function procedureDeclarationStringFromProcedure(procedure) {
105
128
  var type = procedure.getType(), label = procedure.getLabel(), parameters = procedure.getParameters(), returnStatement = procedure.getReturnStatement(), labelString = label.getString(), parametersString = parameters.getString(), returnStatementString = returnStatement.getString(), procedureDelcarationString = "".concat(type, " ").concat(labelString, "(").concat(parametersString, ") { ... ").concat(returnStatementString, " }");
@@ -126,6 +149,10 @@ function expressionStringFromPrimitiveAndProperties(primitive, properties) {
126
149
  }
127
150
  return expressionString;
128
151
  }
152
+ function variableAssignmentStringFromTypeAndVariable(type, variable) {
153
+ var variableString = variable.getString(), variableAssignmentString = "".concat(type, " ").concat(variableString, " = ... ;");
154
+ return variableAssignmentString;
155
+ }
129
156
  function someStringFromVariableAndAnonymousProcedure(variable, anonymousProcedure) {
130
157
  var variableString = variable.getString(), anonymousProcedureString = anonymousProcedure.getString(), someString = "Some(".concat(variableString, ", ").concat(anonymousProcedureString, ") ");
131
158
  return someString;
@@ -142,21 +169,22 @@ function procedureStringFromTypeLabelParametersAndReturnBlock(type, label, param
142
169
  var typeString = type, labelString = label.getString(), parametersString = parameters.getString(), returnBlockString = returnBlock.getString(), procedureString = "".concat(typeString, " ").concat(labelString, "(").concat(parametersString, ") ").concat(returnBlockString);
143
170
  return procedureString;
144
171
  }
145
- function variableAssignmentStringFromVariableAssignmentsArray(variableAssignmentsArray) {
172
+ function anonymousProcedureStringFromTypeParametersAndReturnBlock(type, parameters, returnBlock) {
173
+ var typeString = type, parametersString = parameters.getString(), returnBlockString = returnBlock.getString(), anonymousProcedureString = "".concat(typeString, " (").concat(parametersString, ") ").concat(returnBlockString);
174
+ return anonymousProcedureString;
175
+ }
176
+ function variableAssignmentStringFromTypeAndVariableAssignmentsArray(type, variableAssignmentsArray) {
146
177
  var variableAssignmentsString = variableAssignmentsArray.reduce(function(variableAssignmentsString, variableAssignment) {
147
178
  var variableAssignmentString = variableAssignmentStringFromVariableAssignment(variableAssignment);
148
179
  variableAssignmentsString = variableAssignmentsString === null ? variableAssignmentString : "".concat(variableAssignmentsString, ", ").concat(variableAssignmentString);
149
180
  return variableAssignmentsString;
150
181
  }, null); ///
182
+ variableAssignmentsString = "".concat(type, " ").concat(variableAssignmentsString); ///
151
183
  return variableAssignmentsString;
152
184
  }
153
- function anonymousProcedureStringFromTypeParametersAndReturnBlock(type, parameters, returnBlock) {
154
- var typeString = type, parametersString = parameters.getString(), returnBlockString = returnBlock.getString(), anonymousProcedureString = "".concat(typeString, " (").concat(parametersString, ") ").concat(returnBlockString);
155
- return anonymousProcedureString;
156
- }
157
185
  function reduceStringFromVariableInitialExpressionAndAnonymousProcedure(variable, initialExpression, anonymousProcedure) {
158
186
  var variableString = variable.getString(), initialExpressionString = initialExpression.getString(), anonymousProcedureString = anonymousProcedure.getString(), reduceString = "Reduce(".concat(variableString, ", ").concat(anonymousProcedureString, ", ").concat(initialExpressionString, ")");
159
187
  return reduceString;
160
188
  }
161
189
 
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlU3RyaW5nRnJvbU5hbWUobmFtZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IG5hbWU7ICAvLy9cblxuICByZXR1cm4gdmFyaWFibGVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgcHJpbXRpdmVTdHJpbmcgPSAobm9kZSA9PT0gbnVsbE5vZGUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSk7XG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RyaW5nID0gY29udGV4dC5ub2Rlc0FzU3RyaW5nKG5vZGVzKSxcbiAgICAgICAgcHJpbXRpdmVTdHJpbmcgPSBzdHJpbmc7ICAvLy9cblxuICByZXR1cm4gcHJpbXRpdmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuKGJvb2xlYW4pIHtcbiAgY29uc3QgZXhwcmVzc3Npb25TdHJpbmcgPSBgJHtib29sZWFufWA7XG5cbiAgcmV0dXJuIGV4cHJlc3NzaW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSh0ZXJtc0FycmF5KSB7XG4gIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXNBcnJheS5yZWR1Y2UoKHRlcm1zU3RyaW5nLCB0ZXJtKSA9PiB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICB0ZXJtc1N0cmluZyA9ICh0ZXJtc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICB0ZXJtU3RyaW5nIDpcbiAgICAgICAgICAgICAgICAgICAgIGAke3Rlcm1zU3RyaW5nfSwgJHt0ZXJtU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdGVybXNTdHJpbmc7XG4gIH0sIG51bGwpOyAvLy9cblxuICByZXR1cm4gdGVybXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpIHtcbiAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlKGV4cHJlc3Npb24sIHZhcmlhYmxlKSB7XG4gIGNvbnN0IHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3R5cGV9ICR7dmFyaWFibGVTdHJpbmd9ID0gLi4uIDtgO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVEZWNsYXJhdGlvblN0cmluZ0Zyb21Qcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gIGNvbnN0IHR5cGUgPSBwcm9jZWR1cmUuZ2V0VHlwZSgpLFxuICAgICAgICBsYWJlbCA9IHByb2NlZHVyZS5nZXRMYWJlbCgpLFxuICAgICAgICBwYXJhbWV0ZXJzID0gcHJvY2VkdXJlLmdldFBhcmFtZXRlcnMoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50ID0gcHJvY2VkdXJlLmdldFJldHVyblN0YXRlbWVudCgpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyA9IGAke3R5cGV9ICR7bGFiZWxTdHJpbmcgfSgke3BhcmFtZXRlcnNTdHJpbmd9KSB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZShyZXR1cm5TdGF0ZW1lbnQpIHtcbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IGB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHJldHVybkJsb2NrU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwcmVzc2lvblN0cmluZ0Zyb21QcmltaXRpdmVBbmRQcm9wZXJ0aWVzKHByaW1pdGl2ZSwgcHJvcGVydGllcykge1xuICBsZXQgZXhwcmVzc2lvblN0cmluZztcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmIChwcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICBjb25zdCBwcmltaXRpdmVTdHJpbmcgPSBwcmltaXRpdmUudG9TdHJpbmcoKTtcblxuICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcmltaXRpdmVTdHJpbmc7IC8vL1xuICB9IGVsc2Uge1xuICAgIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVN0cmluZyA9IHByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBzb21lU3RyaW5nID0gYFNvbWUoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gc29tZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBldmVyeVN0cmluZyA9IGBFdmVyeSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBldmVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KSB7XG4gIGNvbnN0IHZhcmlhYmxlID0gdmFyaWFibGVBc3NpZ25tZW50LmdldFZhcmlhYmxlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLmA7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke2xhYmVsU3RyaW5nfSgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkodmFyaWFibGVBc3NpZ25tZW50c0FycmF5KSB7XG4gIGNvbnN0IHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkucmVkdWNlKCh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nLCB2YXJpYWJsZUFzc2lnbm1lbnQpID0+IHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCk7XG5cbiAgICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSwgJHt2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmdGcm9tVHlwZVBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayh0eXBlLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZSwgIC8vL1xuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gKCR7cGFyYW1ldGVyc1N0cmluZ30pICR7cmV0dXJuQmxvY2tTdHJpbmd9YDtcblxuICByZXR1cm4gYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGluaXRpYWxFeHByZXNzaW9uLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgaW5pdGlhbEV4cHJlc3Npb25TdHJpbmcgPSBpbml0aWFsRXhwcmVzc2lvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICByZWR1Y2VTdHJpbmcgPSBgUmVkdWNlKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30sICR7aW5pdGlhbEV4cHJlc3Npb25TdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHJlZHVjZVN0cmluZztcbn1cblxuIl0sIm5hbWVzIjpbImFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwiZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJleHByZXNzaW9uU3RyaW5nRnJvbVByaW1pdGl2ZUFuZFByb3BlcnRpZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZSIsInByaW10aXZlU3RyaW5nRnJvbU5vZGVzIiwicHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsInByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2siLCJyZWR1Y2VTdHJpbmdGcm9tVmFyaWFibGVJbml0aWFsRXhwcmVzc2lvbkFuZEFub255bW91c1Byb2NlZHVyZSIsInJldHVybkJsb2NrU3RyaW5nRnJvbVJldHVyblN0YXRlbWVudE5vZGUiLCJzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwidGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVTdHJpbmdGcm9tTmFtZSIsIm5hbWUiLCJ2YXJpYWJsZVN0cmluZyIsIm5vZGUiLCJjb250ZXh0IiwicHJpbXRpdmVTdHJpbmciLCJudWxsTm9kZSIsIk5VTEwiLCJub2RlQXNTdHJpbmciLCJub2RlcyIsInN0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJib29sZWFuIiwiZXhwcmVzc3Npb25TdHJpbmciLCJ0ZXJtc0FycmF5IiwidGVybXNTdHJpbmciLCJyZWR1Y2UiLCJ0ZXJtIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsImV4cHJlc3Npb24iLCJ2YXJpYWJsZSIsInR5cGUiLCJnZXRUeXBlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwicHJvY2VkdXJlIiwibGFiZWwiLCJnZXRMYWJlbCIsInBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwicmV0dXJuU3RhdGVtZW50IiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwibGFiZWxTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwicHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmciLCJyZXR1cm5CbG9ja1N0cmluZyIsInByaW1pdGl2ZSIsInByb3BlcnRpZXMiLCJleHByZXNzaW9uU3RyaW5nIiwicHJpbWl0aXZlU3RyaW5nIiwidG9TdHJpbmciLCJmb3JFYWNoIiwicHJvcGVydHkiLCJwcm9wZXJ0eVN0cmluZyIsImFub255bW91c1Byb2NlZHVyZSIsImFub255bW91c1Byb2NlZHVyZVN0cmluZyIsInNvbWVTdHJpbmciLCJldmVyeVN0cmluZyIsInZhcmlhYmxlQXNzaWdubWVudCIsImdldFZhcmlhYmxlIiwicmV0dXJuQmxvY2siLCJ0eXBlU3RyaW5nIiwicHJvY2VkdXJlU3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyIsImluaXRpYWxFeHByZXNzaW9uIiwiaW5pdGlhbEV4cHJlc3Npb25TdHJpbmciLCJyZWR1Y2VTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXlKZ0JBO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBOUJBQztlQUFBQTs7UUF2REFDO2VBQUFBOztRQWZBQztlQUFBQTs7UUFRQUM7ZUFBQUE7O1FBMkJBQztlQUFBQTs7UUFlQUM7ZUFBQUE7O1FBa0VBQztlQUFBQTs7UUFpQ0FDO2VBQUFBOztRQXRGQUM7ZUFBQUE7O1FBNkJBQztlQUFBQTs7UUF2RUFDO2VBQUFBOztRQXFCQUM7ZUFBQUE7O1FBa0VBQztlQUFBQTs7UUFrQkFDO2VBQUFBOztRQXBJQUM7ZUFBQUE7OzsrREFMSzt5QkFFQTs2QkFDbUI7Ozs7OztBQUVqQyxTQUFTQSx1QkFBdUJDLElBQUk7SUFDekMsSUFBTUMsaUJBQWlCRCxNQUFPLEdBQUc7SUFFakMsT0FBT0M7QUFDVDtBQUVPLFNBQVNkLHVCQUF1QmUsSUFBSSxFQUFFQyxPQUFPO0lBQ2xELElBQU1DLGlCQUFpQixBQUFDRixTQUFTRyxpQkFBUSxHQUNkQyxlQUFJLEdBQ0ZILFFBQVFJLFlBQVksQ0FBQ0w7SUFFbEQsT0FBT0U7QUFDVDtBQUVPLFNBQVNoQix3QkFBd0JvQixLQUFLLEVBQUVM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
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZShub2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gKG5vZGUgPT09IG51bGxOb2RlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0cmluZyA9IGNvbnRleHQubm9kZXNBc1N0cmluZyhub2RlcyksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgdGVybVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICR7dGVybVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHRlcm1zU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHRlcm1zU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsKSB7XG4gIGNvbnN0IHN0cmluZyA9IHN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpLFxuICAgICAgICBwcmltdGl2ZVN0cmluZyA9IHN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyhwcmltaXRpdmUsIHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcHJpbWl0aXZlU3RyaW5nID0gcHJpbWl0aXZlLnRvU3RyaW5nKCk7XG5cbiAgICB0ZXJtU3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nOyAvLy9cbiAgfSBlbHNlIHtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2goKHByb3BlcnR5KSA9PiB7XG4gICAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgICB0ZXJtU3RyaW5nID0gcHJvcGVydHlTdHJpbmc7ICAvLy9cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmdGcm9tUHJvY2VkdXJlKHByb2NlZHVyZSkge1xuICBjb25zdCB0eXBlID0gcHJvY2VkdXJlLmdldFR5cGUoKSxcbiAgICAgICAgbGFiZWwgPSBwcm9jZWR1cmUuZ2V0TGFiZWwoKSxcbiAgICAgICAgcGFyYW1ldGVycyA9IHByb2NlZHVyZS5nZXRQYXJhbWV0ZXJzKCksXG4gICAgICAgIHJldHVyblN0YXRlbWVudCA9IHByb2NlZHVyZS5nZXRSZXR1cm5TdGF0ZW1lbnQoKSxcbiAgICAgICAgbGFiZWxTdHJpbmcgPSBsYWJlbC5nZXRTdHJpbmcoKSxcbiAgICAgICAgcGFyYW1ldGVyc1N0cmluZyA9IHBhcmFtZXRlcnMuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVyblN0YXRlbWVudFN0cmluZyA9IHJldHVyblN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmcgPSBgJHt0eXBlfSAke2xhYmVsU3RyaW5nIH0oJHtwYXJhbWV0ZXJzU3RyaW5nfSkgeyAuLi4gJHtyZXR1cm5TdGF0ZW1lbnRTdHJpbmd9IH1gO1xuXG4gIHJldHVybiBwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldHVybkJsb2NrU3RyaW5nRnJvbVJldHVyblN0YXRlbWVudE5vZGUocmV0dXJuU3RhdGVtZW50KSB7XG4gIGNvbnN0IHJldHVyblN0YXRlbWVudFN0cmluZyA9IHJldHVyblN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSBgeyAuLi4gJHtyZXR1cm5TdGF0ZW1lbnRTdHJpbmd9IH1gO1xuXG4gIHJldHVybiByZXR1cm5CbG9ja1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyhwcmltaXRpdmUsIHByb3BlcnRpZXMpIHtcbiAgbGV0IGV4cHJlc3Npb25TdHJpbmc7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcHJpbWl0aXZlU3RyaW5nID0gcHJpbWl0aXZlLnRvU3RyaW5nKCk7XG5cbiAgICBleHByZXNzaW9uU3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nOyAvLy9cbiAgfSBlbHNlIHtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2goKHByb3BlcnR5KSA9PiB7XG4gICAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBleHByZXNzaW9uU3RyaW5nID0gcHJvcGVydHlTdHJpbmc7ICAvLy9cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBleHByZXNzaW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZSh0eXBlLCB2YXJpYWJsZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSBgJHt0eXBlfSAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLiA7YDtcblxuICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGFub255bW91c1Byb2NlZHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgc29tZVN0cmluZyA9IGBTb21lKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30pIGA7XG5cbiAgcmV0dXJuIHNvbWVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGFub255bW91c1Byb2NlZHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgZXZlcnlTdHJpbmcgPSBgRXZlcnkoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gZXZlcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCkge1xuICBjb25zdCB2YXJpYWJsZSA9IHZhcmlhYmxlQXNzaWdubWVudC5nZXRWYXJpYWJsZSgpLFxuICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSBgJHt2YXJpYWJsZVN0cmluZ30gPSAuLi5gO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVTdHJpbmdGcm9tVHlwZUxhYmVsUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrKHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZSwgIC8vL1xuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHtsYWJlbFN0cmluZ30oJHtwYXJhbWV0ZXJzU3RyaW5nfSkgJHtyZXR1cm5CbG9ja1N0cmluZ31gO1xuXG4gIHJldHVybiBwcm9jZWR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmdGcm9tVHlwZVBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayh0eXBlLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZSwgIC8vL1xuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gKCR7cGFyYW1ldGVyc1N0cmluZ30pICR7cmV0dXJuQmxvY2tTdHJpbmd9YDtcblxuICByZXR1cm4gYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkodHlwZSwgdmFyaWFibGVBc3NpZ25tZW50c0FycmF5KSB7XG4gIGxldCB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gdmFyaWFibGVBc3NpZ25tZW50c0FycmF5LnJlZHVjZSgodmFyaWFibGVBc3NpZ25tZW50c1N0cmluZywgdmFyaWFibGVBc3NpZ25tZW50KSA9PiB7XG4gICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nID0gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCh2YXJpYWJsZUFzc2lnbm1lbnQpO1xuXG4gICAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9ICh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgOlxuICAgICAgYCR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30sICR7dmFyaWFibGVBc3NpZ25tZW50U3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZztcbiAgfSwgbnVsbCk7IC8vL1xuXG4gIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSBgJHt0eXBlfSAke3ZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmd9YDsgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VTdHJpbmdGcm9tVmFyaWFibGVJbml0aWFsRXhwcmVzc2lvbkFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgaW5pdGlhbEV4cHJlc3Npb24sIGFub255bW91c1Byb2NlZHVyZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBpbml0aWFsRXhwcmVzc2lvblN0cmluZyA9IGluaXRpYWxFeHByZXNzaW9uLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBhbm9ueW1vdXNQcm9jZWR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJlZHVjZVN0cmluZyA9IGBSZWR1Y2UoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSwgJHtpbml0aWFsRXhwcmVzc2lvblN0cmluZ30pYDtcblxuICByZXR1cm4gcmVkdWNlU3RyaW5nO1xufVxuXG4iXSwibmFtZXMiOlsiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2siLCJldmVyeVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSIsImV4cHJlc3Npb25TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyIsInByaW10aXZlU3RyaW5nRnJvbUJvb2xlYW4iLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwicHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmdGcm9tUHJvY2VkdXJlIiwicHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVMYWJlbFBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayIsInJlZHVjZVN0cmluZ0Zyb21WYXJpYWJsZUluaXRpYWxFeHByZXNzaW9uQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwicmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZSIsInNvbWVTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJ0ZXJtU3RyaW5nRnJvbVByaW1pdGl2ZUFuZFByb3BlcnRpZXMiLCJ0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5IiwidGVybmFyeVN0cmluZ0Zyb21UZXJtIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCIsInZhcmlhYmxlU3RyaW5nRnJvbU5hbWUiLCJ0ZXJtIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInRlcm5hcnlTdHJpbmciLCJuYW1lIiwidmFyaWFibGVTdHJpbmciLCJub2RlIiwiY29udGV4dCIsInByaW10aXZlU3RyaW5nIiwibnVsbE5vZGUiLCJOVUxMIiwibm9kZUFzU3RyaW5nIiwibm9kZXMiLCJzdHJpbmciLCJub2Rlc0FzU3RyaW5nIiwiYm9vbGVhbiIsImV4cHJlc3NzaW9uU3RyaW5nIiwidGVybXNBcnJheSIsInRlcm1zU3RyaW5nIiwicmVkdWNlIiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwicHJpbWl0aXZlIiwicHJvcGVydGllcyIsInByaW1pdGl2ZVN0cmluZyIsInRvU3RyaW5nIiwiZm9yRWFjaCIsInByb3BlcnR5IiwicHJvcGVydHlTdHJpbmciLCJwcm9jZWR1cmUiLCJ0eXBlIiwiZ2V0VHlwZSIsImxhYmVsIiwiZ2V0TGFiZWwiLCJwYXJhbWV0ZXJzIiwiZ2V0UGFyYW1ldGVycyIsInJldHVyblN0YXRlbWVudCIsImdldFJldHVyblN0YXRlbWVudCIsImxhYmVsU3RyaW5nIiwicGFyYW1ldGVyc1N0cmluZyIsInJldHVyblN0YXRlbWVudFN0cmluZyIsInByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nIiwicmV0dXJuQmxvY2tTdHJpbmciLCJleHByZXNzaW9uU3RyaW5nIiwidmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmciLCJhbm9ueW1vdXNQcm9jZWR1cmUiLCJhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmciLCJzb21lU3RyaW5nIiwiZXZlcnlTdHJpbmciLCJ2YXJpYWJsZUFzc2lnbm1lbnQiLCJnZXRWYXJpYWJsZSIsInJldHVybkJsb2NrIiwidHlwZVN0cmluZyIsInByb2NlZHVyZVN0cmluZyIsInZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmciLCJpbml0aWFsRXhwcmVzc2lvbiIsImluaXRpYWxFeHByZXNzaW9uU3RyaW5nIiwicmVkdWNlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1S2dCQTtlQUFBQTs7UUExQkFDO2VBQUFBOztRQXJDQUM7ZUFBQUE7O1FBckVBQztlQUFBQTs7UUFmQUM7ZUFBQUE7O1FBUUFDO2VBQUFBOztRQTJCQUM7ZUFBQUE7O1FBNkJBQztlQUFBQTs7UUF5RUFDO2VBQUFBOztRQW1DQUM7ZUFBQUE7O1FBL0ZBQztlQUFBQTs7UUFvQ0FDO2VBQUFBOztRQXZFQUM7ZUFBQUE7O1FBckJBQztlQUFBQTs7UUFsQ0FDO2VBQUFBOztRQXVIQUM7ZUFBQUE7O1FBa0RBQztlQUFBQTs7UUEzQkFDO2VBQUFBOztRQXZJQUM7ZUFBQUE7OzsrREFaSzt5QkFFQTs2QkFDbUI7Ozs7OztBQUVqQyxTQUFTSixzQkFBc0JLLElBQUk7SUFDeEMsSUFBTUMsYUFBYUQsS0FBS0UsU0FBUyxJQUMzQkMsZ0JBQWdCLEFBQUMsT0FBaUIsT0FBWEYsWUFBVztJQUV4QyxPQUFPRTtBQUNUO0FBRU8sU0FBU0osdUJBQXVCSyxJQUFJO0lBQ3pDLElBQU1DLGlCQUFpQkQsTUFBTyxHQUFHO0lBRWpDLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTcEIsdUJBQXVCcUIsSUFBSSxFQUFFQyxPQUFPO0lBQ2xELElBQU1DLGlCQUFpQixBQUFDRixTQUFTRyxpQkFBUSxHQUNkQyxlQUFJLEdBQ0ZILFFBQVFJLFlBQVksQ0FBQ0w7SUFFbEQsT0FBT0U7QUFDVDtBQUVPLFNBQVN0Qix3QkFBd0IwQixLQUFLLEVBQUVMLE9BQU87SUFDcEQs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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "2.0.331",
4
+ "version": "2.0.335",
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.0.9",
14
14
  "occam-grammar-utilities": "^8.0.395",
15
- "occam-grammars": "^1.3.504",
15
+ "occam-grammars": "^1.3.506",
16
16
  "occam-lexers": "^23.1.35",
17
17
  "occam-parsers": "^23.1.38"
18
18
  },
@@ -20,8 +20,8 @@
20
20
  "@swc/core": "1.13.20",
21
21
  "express": "^5.1.0",
22
22
  "lively-cli": "^2.0.77",
23
- "occam-custom-grammars": "^5.0.1366",
24
- "occam-entities": "^1.0.480",
23
+ "occam-custom-grammars": "^5.0.1367",
24
+ "occam-entities": "^1.0.481",
25
25
  "occam-query": "^4.1.142",
26
26
  "watchful-cli": "^1.7.67"
27
27
  },
@@ -32,7 +32,7 @@ export default define(class NegatedExpression {
32
32
 
33
33
  context.trace(`Evaluating the '${negatedExpressionString}' negated expression...`);
34
34
 
35
- term = this.term.evaluate(context);
35
+ term = this.expression.evaluate(context);
36
36
 
37
37
  const termType = term.getType();
38
38
 
@@ -33,7 +33,7 @@ export default define(class NodesQuery {
33
33
  context.trace(`Evaluating the '${nodesQueryString}' nodes query...`);
34
34
 
35
35
  if (this.query === null) {
36
- const message = `Cannot evaluate the '${nodesQueryString}' nodes query because its term is malformed.`,
36
+ const message = `Cannot evaluate the '${nodesQueryString}' nodes query because its expression is malformed.`,
37
37
  exception = Exception.fromMessage(message);
38
38
 
39
39
  throw exception;
@@ -2,114 +2,157 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
+ import elements from "../elements";
5
6
  import nullNode from "../nullNode";
6
7
 
7
8
  import { define } from "../elements";
8
- import { NODE_TYPE, NODES_TYPE, NUMBER_TYPE, STRING_TYPE, BOOLEAN_TYPE } from "../types";
9
+ import { NODE_TYPE, NODES_TYPE, STRING_TYPE, NUMBER_TYPE, BOOLEAN_TYPE } from "../types";
9
10
 
10
11
  const { match } = arrayUtilities;
11
12
 
12
13
  export default define(class Primitive {
13
- constructor(string, node, nodes, number, boolean, stringLiteral) {
14
+ constructor(string, type, value) {
14
15
  this.string = string;
15
- this.node = node;
16
- this.nodes = nodes;
17
- this.number = number;
18
- this.boolean = boolean;
19
- this.stringLiteral = stringLiteral;
16
+ this.type = type;
17
+ this.value = value;
20
18
  }
21
19
 
22
20
  getString() {
23
21
  return this.string;
24
22
  }
25
23
 
24
+ getType() {
25
+ return this.type;
26
+ }
27
+
28
+ getValue() {
29
+ return this.value;
30
+ }
31
+
26
32
  getNode() {
27
- return this.node;
33
+ let node = null;
34
+
35
+ if (this.type === NODE_TYPE) {
36
+ node = this.value; ///
37
+ }
38
+
39
+ return node;
28
40
  }
29
41
 
30
42
  getNodes() {
31
- return this.nodes;
43
+ let nodes = null;
44
+
45
+ if (this.type === NODES_TYPE) {
46
+ nodes = this.value; ///
47
+ }
48
+
49
+ return nodes;
32
50
  }
33
51
 
34
52
  getNumber() {
35
- return this.number;
53
+ let number = null;
54
+
55
+ if (this.type === NUMBER_TYPE) {
56
+ number = this.value; ///
57
+ }
58
+
59
+ return number;
36
60
  }
37
61
 
38
62
  getBoolean() {
39
- return this.boolean;
63
+ let boolean = null;
64
+
65
+ if (this.type === BOOLEAN_TYPE) {
66
+ boolean = this.value; ///
67
+ }
68
+
69
+ return boolean;
40
70
  }
41
71
 
42
72
  getStringLiteral() {
43
- return this.stringLiteral;
44
- }
73
+ let stringLiteral = null;
45
74
 
46
- getType() {
47
- let type;
48
-
49
- if (false) {
50
- ///
51
- } else if (this.node !== null) {
52
- type = NODE_TYPE;
53
- } else if (this.nodes !== null) {
54
- type = NODES_TYPE;
55
- } else if (this.number !== null) {
56
- type = NUMBER_TYPE;
57
- } else if (this.boolean !== null) {
58
- type = BOOLEAN_TYPE;
59
- } else if (this.stringLiteral !== null) {
60
- type = STRING_TYPE;
75
+ if (this.type === STRING_TYPE) {
76
+ stringLiteral = this.value; ///
61
77
  }
62
78
 
63
- return type;
79
+ return stringLiteral;
64
80
  }
65
81
 
66
82
  evaluate(context) {
67
- const term = this; ///
83
+ const { Term } = elements,
84
+ primitive = this,
85
+ term = Term.fromPrimitive(primitive, context);
68
86
 
69
87
  return term;
70
88
  }
71
89
 
72
90
  isEqualTo(primitive) {
73
- let equalTo;
91
+ let equalTo = false;
74
92
 
75
- if (false) {
76
- ///
77
- } else if (this.node !== null) {
78
- const node = primitive.getNode();
93
+ const type = primitive.getType();
79
94
 
80
- if (node === null) {
81
- equalTo = false;
82
- } else {
83
- const nodeA = this.node, ///
84
- nodeB = node, ///
85
- nodeMatches = matchNode(nodeA, nodeB);
95
+ if (this.type === type) {
96
+ const value = primitive.getValue();
86
97
 
87
- equalTo = nodeMatches; ///
88
- }
89
- } else if (this.nodes !== null) {
90
- const nodes = primitive.getNode();
98
+ switch (type) {
99
+ case NODE_TYPE: {
100
+ const nodeA = this.value, ///
101
+ nodeB = value, ///
102
+ nodeMatches = matchNode(nodeA, nodeB);
91
103
 
92
- if (nodes === null) {
93
- equalTo = false;
94
- } else {
95
- const nodesA = this.nodes, ///
96
- nodesB = nodes, ///
97
- nodesMatch = matchNodes(nodesA, nodesB);
104
+ if (nodeMatches) {
105
+ equalTo = true;
106
+ }
98
107
 
99
- equalTo = nodesMatch; ///
100
- }
101
- } else if (this.number !== null) {
102
- const number = primitive.getNumber();
108
+ break;
109
+ }
110
+
111
+ case NODES_TYPE: {
112
+ const nodesA = this.value, ///
113
+ nodesB = value, ///
114
+ nodesMatch = matchNodes(nodesA, nodesB);
115
+
116
+ if (nodesMatch) {
117
+ equalTo = true;
118
+ }
119
+
120
+ break;
121
+ }
103
122
 
104
- equalTo = (this.number === number);
105
- } else if (this.boolean !== null) {
106
- const boolean = primitive.getBoolean();
123
+ case STRING_TYPE: {
124
+ const stringLiteralA = this.value, ///
125
+ stringLiteralB = value; ///
107
126
 
108
- equalTo = (this.boolean === boolean);
109
- } else if (this.stringLiteral !== null) {
110
- const stringLiteral = primitive.getStringLiteral();
127
+ if (stringLiteralA === stringLiteralB) {
128
+ equalTo = true;
129
+ }
111
130
 
112
- equalTo = (this.stringLiteral === stringLiteral);
131
+ break;
132
+ }
133
+
134
+ case NUMBER_TYPE: {
135
+ const numberA = this.value, ///
136
+ numberB = value; ///
137
+
138
+ if (numberA === numberB) {
139
+ equalTo = true;
140
+ }
141
+
142
+ break;
143
+ }
144
+
145
+ case BOOLEAN_TYPE: {
146
+ const booleanA = this.value, ///
147
+ booleanB = value; ///
148
+
149
+ if (booleanA === booleanB) {
150
+ equalTo = true;
151
+ }
152
+
153
+ break;
154
+ }
155
+ }
113
156
  }
114
157
 
115
158
  return equalTo;
@@ -51,9 +51,9 @@ export default define(class ReturnBlock {
51
51
  step.evaluate(context);
52
52
  });
53
53
 
54
- const expression = this.returnStatement.evaluate(context);
54
+ const term = this.returnStatement.evaluate(context);
55
55
 
56
- return expression;
56
+ return term;
57
57
  }
58
58
 
59
59
  static name = "ReturnBlock";
@@ -23,7 +23,7 @@ export default define(class ReturnStatement {
23
23
 
24
24
  context.trace(`Evaluating the '${returnStatementString}' return statement...`);
25
25
 
26
- term = this.term; ///
26
+ term = this.term.evaluate(context);
27
27
 
28
28
  context.debug(`...evaluated the '${returnStatementString}' return statement.`);
29
29
 
@@ -3,11 +3,11 @@
3
3
  import { define } from "../elements";
4
4
 
5
5
  export default define(class Step {
6
- constructor(string, arrayAssignment, objectAssigment, variablesDeclaration) {
6
+ constructor(string, arrayAssignment, objectAssigment, variablessAssignment) {
7
7
  this.string = string;
8
8
  this.arrayAssignment = arrayAssignment;
9
9
  this.objectAssigment = objectAssigment;
10
- this.variablesDeclaration = variablesDeclaration;
10
+ this.variablessAssignment = variablessAssignment;
11
11
  }
12
12
 
13
13
  getString() {
@@ -22,8 +22,8 @@ export default define(class Step {
22
22
  return this.objectAssigment;
23
23
  }
24
24
 
25
- getVariablesDeclaration() {
26
- return this.variablesDeclaration;
25
+ getVariablessAssignment() {
26
+ return this.variablessAssignment;
27
27
  }
28
28
 
29
29
  evaluate(context) {
@@ -33,8 +33,8 @@ export default define(class Step {
33
33
  this.arrayAssignment.evaluate(context);
34
34
  } else if (this.objectAssigment !== null) {
35
35
  this.objectAssigment.evaluate(context);
36
- } else if (this.variablesDeclaration !== null) {
37
- this.variablesDeclaration.evaluate(context);
36
+ } else if (this.variablessAssignment !== null) {
37
+ this.variablessAssignment.evaluate(context);
38
38
  }
39
39
  }
40
40
 
@@ -6,7 +6,7 @@ import { define } from "../../elements";
6
6
  import { BOOLEAN_TYPE } from "../../types";
7
7
  import { termFromBoolean } from "../../utilities/term";
8
8
 
9
- export default define(class LogicaTerm {
9
+ export default define(class LogicalTerm {
10
10
  constructor(string, type, disjunction, leftTerm, rightTerm) {
11
11
  this.string = string;
12
12
  this.type = type;
@@ -38,9 +38,9 @@ export default define(class LogicaTerm {
38
38
  evaluate(context) {
39
39
  let term;
40
40
 
41
- const logicaTermString = this.string; ///
41
+ const logicalTermString = this.string; ///
42
42
 
43
- context.trace(`Evaluating the '${logicaTermString}' logical term...`);
43
+ context.trace(`Evaluating the '${logicalTermString}' logical term...`);
44
44
 
45
45
  const leftTerm = this.leftTerm.evaluate(context),
46
46
  rightTerm = this.rightTerm.evaluate(context),
@@ -71,10 +71,10 @@ export default define(class LogicaTerm {
71
71
 
72
72
  term = termFromBoolean(boolean, context);
73
73
 
74
- context.debug(`...evaluated the '${logicaTermString}' logical term.`);
74
+ context.debug(`...evaluated the '${logicalTermString}' logical term.`);
75
75
 
76
76
  return term;
77
77
  }
78
78
 
79
- static name = "LogicaTerm";
79
+ static name = "LogicalTerm";
80
80
  });
@@ -95,19 +95,40 @@ export default define(class Term {
95
95
  return term;
96
96
  }
97
97
 
98
- isEqualTo(expression) {
99
- let equalTo;
98
+ isEqualTo(term) {
99
+ let equalTo = false;
100
100
 
101
101
  if (false) {
102
102
  ///
103
103
  } else if (this.variable !== null) {
104
- equalTo = this.variable.isEqualTo();
104
+ const variable = term.getVariable();
105
+
106
+ if (variable !== null) {
107
+ equalTo = this.variable.isEqualTo(variable);
108
+ }
105
109
  } else if (this.primitive !== null) {
106
- equalTo = this.primitive.isEqualTo();
110
+ const primitive = term.getPrimitive();
111
+
112
+ if (primitive !== null) {
113
+ equalTo = this.primitive.isEqualTo(primitive);
114
+ }
107
115
  }
108
116
 
109
117
  return equalTo;
110
118
  }
111
119
 
112
120
  static name = "Term";
121
+
122
+ static fromPrimitive(primitive, context) {
123
+ const primitiveString = primitive.getString(),
124
+ string = primitiveString, ///
125
+ variable = null,
126
+ negatedTerm = null,
127
+ logicalTerm = null,
128
+ bracketedTerm = null,
129
+ comparisonTerm = null,
130
+ term = new Term(string, variable, primitive, negatedTerm, logicalTerm, bracketedTerm, comparisonTerm);
131
+
132
+ return term;
133
+ }
113
134
  });