occam-nominal 1.0.151 → 1.0.153

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
@@ -24,6 +24,9 @@ _export(exports, {
24
24
  get MISSING () {
25
25
  return MISSING;
26
26
  },
27
+ get NULL () {
28
+ return NULL;
29
+ },
27
30
  get PROVISIONAL () {
28
31
  return PROVISIONAL;
29
32
  },
@@ -41,6 +44,7 @@ _export(exports, {
41
44
  }
42
45
  });
43
46
  const S = "s";
47
+ const NULL = "null";
44
48
  const MISSING = "missing";
45
49
  const UNDEFINED = "undefined";
46
50
  const PROVISIONAL = "Provisional";
@@ -51,4 +55,4 @@ const BASE_TYPE_SYMBOL = "<>";
51
55
  const BRACKETED_TERM_DEPTH = 2;
52
56
  const BRACKETED_STATEMENT_DEPTH = 2;
53
57
 
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBTID0gXCJzXCI7XG5leHBvcnQgY29uc3QgTUlTU0lORyA9IFwibWlzc2luZ1wiO1xuZXhwb3J0IGNvbnN0IFVOREVGSU5FRCA9IFwidW5kZWZpbmVkXCI7XG5leHBvcnQgY29uc3QgUFJPVklTSU9OQUwgPSBcIlByb3Zpc2lvbmFsXCI7XG5leHBvcnQgY29uc3QgRU1QVFlfU1RSSU5HID0gXCJcIjtcbmV4cG9ydCBjb25zdCBTSU5HTEVfU1BBQ0UgPSBcIiBcIjtcbmV4cG9ydCBjb25zdCBQUk9WSVNJT05BTExZID0gXCJwcm92aXNpb25hbGx5XCI7XG5leHBvcnQgY29uc3QgQkFTRV9UWVBFX1NZTUJPTCA9IFwiPD5cIjtcbmV4cG9ydCBjb25zdCBCUkFDS0VURURfVEVSTV9ERVBUSCA9IDI7XG5leHBvcnQgY29uc3QgQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCA9IDI7XG4iXSwibmFtZXMiOlsiQkFTRV9UWVBFX1NZTUJPTCIsIkJSQUNLRVRFRF9TVEFURU1FTlRfREVQVEgiLCJCUkFDS0VURURfVEVSTV9ERVBUSCIsIkVNUFRZX1NUUklORyIsIk1JU1NJTkciLCJQUk9WSVNJT05BTCIsIlBST1ZJU0lPTkFMTFkiLCJTIiwiU0lOR0xFX1NQQUNFIiwiVU5ERUZJTkVEIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFTYUE7ZUFBQUE7O1FBRUFDO2VBQUFBOztRQURBQztlQUFBQTs7UUFKQUM7ZUFBQUE7O1FBSEFDO2VBQUFBOztRQUVBQztlQUFBQTs7UUFHQUM7ZUFBQUE7O1FBTkFDO2VBQUFBOztRQUtBQztlQUFBQTs7UUFIQUM7ZUFBQUE7OztBQUZOLE1BQU1GLElBQUk7QUFDVixNQUFNSCxVQUFVO0FBQ2hCLE1BQU1LLFlBQVk7QUFDbEIsTUFBTUosY0FBYztBQUNwQixNQUFNRixlQUFlO0FBQ3JCLE1BQU1LLGVBQWU7QUFDckIsTUFBTUYsZ0JBQWdCO0FBQ3RCLE1BQU1OLG1CQUFtQjtBQUN6QixNQUFNRSx1QkFBdUI7QUFDN0IsTUFBTUQsNEJBQTRCIn0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBTID0gXCJzXCI7XG5leHBvcnQgY29uc3QgTlVMTCA9IFwibnVsbFwiO1xuZXhwb3J0IGNvbnN0IE1JU1NJTkcgPSBcIm1pc3NpbmdcIjtcbmV4cG9ydCBjb25zdCBVTkRFRklORUQgPSBcInVuZGVmaW5lZFwiO1xuZXhwb3J0IGNvbnN0IFBST1ZJU0lPTkFMID0gXCJQcm92aXNpb25hbFwiO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgU0lOR0xFX1NQQUNFID0gXCIgXCI7XG5leHBvcnQgY29uc3QgUFJPVklTSU9OQUxMWSA9IFwicHJvdmlzaW9uYWxseVwiO1xuZXhwb3J0IGNvbnN0IEJBU0VfVFlQRV9TWU1CT0wgPSBcIjw+XCI7XG5leHBvcnQgY29uc3QgQlJBQ0tFVEVEX1RFUk1fREVQVEggPSAyO1xuZXhwb3J0IGNvbnN0IEJSQUNLRVRFRF9TVEFURU1FTlRfREVQVEggPSAyO1xuIl0sIm5hbWVzIjpbIkJBU0VfVFlQRV9TWU1CT0wiLCJCUkFDS0VURURfU1RBVEVNRU5UX0RFUFRIIiwiQlJBQ0tFVEVEX1RFUk1fREVQVEgiLCJFTVBUWV9TVFJJTkciLCJNSVNTSU5HIiwiTlVMTCIsIlBST1ZJU0lPTkFMIiwiUFJPVklTSU9OQUxMWSIsIlMiLCJTSU5HTEVfU1BBQ0UiLCJVTkRFRklORUQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVVhQTtlQUFBQTs7UUFFQUM7ZUFBQUE7O1FBREFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFIQUM7ZUFBQUE7O1FBREFDO2VBQUFBOztRQUdBQztlQUFBQTs7UUFHQUM7ZUFBQUE7O1FBUEFDO2VBQUFBOztRQU1BQztlQUFBQTs7UUFIQUM7ZUFBQUE7OztBQUhOLE1BQU1GLElBQUk7QUFDVixNQUFNSCxPQUFPO0FBQ2IsTUFBTUQsVUFBVTtBQUNoQixNQUFNTSxZQUFZO0FBQ2xCLE1BQU1KLGNBQWM7QUFDcEIsTUFBTUgsZUFBZTtBQUNyQixNQUFNTSxlQUFlO0FBQ3JCLE1BQU1GLGdCQUFnQjtBQUN0QixNQUFNUCxtQkFBbUI7QUFDekIsTUFBTUUsdUJBQXVCO0FBQzdCLE1BQU1ELDRCQUE0QiJ9
package/lib/index.js CHANGED
@@ -33,4 +33,4 @@ function _interop_require_default(obj) {
33
33
  };
34
34
  }
35
35
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFwiLi9wcmVhbWJsZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vbWluYWxWYWx1ZSB9IGZyb20gXCIuL3ZhbHVlXCI7ICAvLy9cblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBsZXhlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGV4ZXJzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcGFyc2Vyc1wiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vbWluYWxGaWxlQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHQvZmlsZS9ub21pbmFsXCI7XG4iXSwibmFtZXMiOlsiTm9taW5hbEZpbGVDb250ZXh0IiwiTm9taW5hbFZhbHVlIiwibGV4ZXJzVXRpbGl0aWVzIiwicGFyc2Vyc1V0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBU29CQTtlQUFBQSxnQkFBa0I7O1FBTGxCQztlQUFBQSxjQUFZOztRQUVaQztlQUFBQSxlQUFlOztRQUNmQztlQUFBQSxnQkFBZ0I7OztRQUw3Qjs4REFFaUM7K0RBRUc7Z0VBQ0M7Z0VBRUUifQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFwiLi9wcmVhbWJsZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vbWluYWxWYWx1ZSB9IGZyb20gXCIuL3ZhbHVlXCI7ICAvLy9cbmV4cG9ydCB7IGRlZmF1bHQgYXMgbGV4ZXJzVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2xleGVyc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJzZXJzVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhcnNlcnNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbEZpbGVDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9maWxlL25vbWluYWxcIjtcbiJdLCJuYW1lcyI6WyJOb21pbmFsRmlsZUNvbnRleHQiLCJOb21pbmFsVmFsdWUiLCJsZXhlcnNVdGlsaXRpZXMiLCJwYXJzZXJzVXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFPb0JBO2VBQUFBLGdCQUFrQjs7UUFIbEJDO2VBQUFBLGNBQVk7O1FBQ1pDO2VBQUFBLGVBQWU7O1FBQ2ZDO2VBQUFBLGdCQUFnQjs7O1FBSjdCOzhEQUVpQzsrREFDRztnRUFDQztnRUFDRSJ9
package/lib/value.js CHANGED
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return Value;
9
9
  }
10
10
  });
11
+ const _constants = require("./constants");
11
12
  class Value {
12
13
  constructor(context, string, node){
13
14
  this.context = context;
@@ -31,6 +32,10 @@ class Value {
31
32
  const string = context.nodeAsString(node), value = new Value(context, string, node);
32
33
  return value;
33
34
  }
35
+ static fromNothing() {
36
+ const context = null, string = _constants.NULL, node = null, value = new Value(context, string, node);
37
+ return value;
38
+ }
34
39
  static fromSubstitution(substitution) {
35
40
  const replacementNode = substitution.getReplacementNode(), specificContext = substitution.getSpecificContext(), node = replacementNode, context = specificContext, string = context.nodeAsString(node), value = new Value(context, string, node);
36
41
  return value;
@@ -47,4 +52,4 @@ function matchNodes(nodeA, nodeB) {
47
52
  return nodesMatch;
48
53
  }
49
54
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YWx1ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmFsdWUge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgbWF0Y2godmFsdWUpIHtcbiAgICBjb25zdCBub2RlID0gdmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVBID0gbm9kZSwgLy8vXG4gICAgICAgICAgbm9kZUIgPSB0aGlzLm5vZGUsICAvLy9cbiAgICAgICAgICBub2Rlc01hdGNoID0gbWF0Y2hOb2Rlcyhub2RlQSwgbm9kZUIpLFxuICAgICAgICAgIG1hdGNoZXMgPSBub2Rlc01hdGNoOyAvLy9cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKSB7XG4gICAgY29uc3QgcmVwbGFjZW1lbnROb2RlID0gc3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50Tm9kZSgpLFxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dCA9IHN1YnN0aXR1dGlvbi5nZXRTcGVjaWZpY0NvbnRleHQoKSxcbiAgICAgICAgICBub2RlID0gcmVwbGFjZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaE5vZGVzKG5vZGVBLCBub2RlQikge1xuICBsZXQgbm9kZXNNYXRjaDtcblxuICBpZiAoKG5vZGVBID09PSBudWxsKSB8fCAobm9kZUIgPT09IG51bGwpKSB7XG4gICAgbm9kZXNNYXRjaCA9IChub2RlQSA9PT0gbm9kZUIpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5vZGVBTWF0Y2hlc05vZGVCID0gbm9kZUEubWF0Y2gobm9kZUIpO1xuXG4gICAgbm9kZXNNYXRjaCA9IG5vZGVBTWF0Y2hlc05vZGVCOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbm9kZXNNYXRjaDtcbn1cbiJdLCJuYW1lcyI6WyJWYWx1ZSIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiZ2V0Q29udGV4dCIsImdldFN0cmluZyIsImdldE5vZGUiLCJtYXRjaCIsInZhbHVlIiwibm9kZUEiLCJub2RlQiIsIm5vZGVzTWF0Y2giLCJtYXRjaE5vZGVzIiwibWF0Y2hlcyIsImZyb21Ob2RlIiwibm9kZUFzU3RyaW5nIiwiZnJvbVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsInJlcGxhY2VtZW50Tm9kZSIsImdldFJlcGxhY2VtZW50Tm9kZSIsInNwZWNpZmljQ29udGV4dCIsImdldFNwZWNpZmljQ29udGV4dCIsIm5vZGVBTWF0Y2hlc05vZGVCIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFQTs7O2VBQXFCQTs7O0FBQU4sTUFBTUE7SUFDbkIsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksQ0FBRTtRQUNqQyxJQUFJLENBQUNGLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQUksWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDSCxNQUFNO0lBQ3BCO0lBRUFJLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxNQUFNQyxLQUFLLEVBQUU7UUFDWCxNQUFNTCxPQUFPSyxNQUFNRixPQUFPLElBQ3BCRyxRQUFRTixNQUNSTyxRQUFRLElBQUksQ0FBQ1AsSUFBSSxFQUNqQlEsYUFBYUMsV0FBV0gsT0FBT0MsUUFDL0JHLFVBQVVGLFlBQVksR0FBRztRQUUvQixPQUFPRTtJQUNUO0lBRUEsT0FBT0MsU0FBU1gsSUFBSSxFQUFFRixPQUFPLEVBQUU7UUFDN0IsTUFBTUMsU0FBU0QsUUFBUWMsWUFBWSxDQUFDWixPQUM5QkssUUFBUSxJQUFJUixNQUFNQyxTQUFTQyxRQUFRQztRQUV6QyxPQUFPSztJQUNUO0lBRUEsT0FBT1EsaUJBQWlCQyxZQUFZLEVBQUU7UUFDcEMsTUFBTUMsa0JBQWtCRCxhQUFhRSxrQkFBa0IsSUFDakRDLGtCQUFrQkgsYUFBYUksa0JBQWtCLElBQ2pEbEIsT0FBT2UsaUJBQ1BqQixVQUFVbUIsaUJBQ1ZsQixTQUFTRCxRQUFRYyxZQUFZLENBQUNaLE9BQzlCSyxRQUFRLElBQUlSLE1BQU1DLFNBQVNDLFFBQVFDO1FBRXpDLE9BQU9LO0lBQ1Q7QUFDRjtBQUVBLFNBQVNJLFdBQVdILEtBQUssRUFBRUMsS0FBSztJQUM5QixJQUFJQztJQUVKLElBQUksQUFBQ0YsVUFBVSxRQUFVQyxVQUFVLE1BQU87UUFDeENDLGFBQWNGLFVBQVVDO0lBQzFCLE9BQU87UUFDTCxNQUFNWSxvQkFBb0JiLE1BQU1GLEtBQUssQ0FBQ0c7UUFFdENDLGFBQWFXLG1CQUFvQixHQUFHO0lBQ3RDO0lBRUEsT0FBT1g7QUFDVCJ9
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YWx1ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgTlVMTCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYWx1ZSB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSkge1xuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBtYXRjaCh2YWx1ZSkge1xuICAgIGNvbnN0IG5vZGUgPSB2YWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZUEgPSBub2RlLCAvLy9cbiAgICAgICAgICBub2RlQiA9IHRoaXMubm9kZSwgIC8vL1xuICAgICAgICAgIG5vZGVzTWF0Y2ggPSBtYXRjaE5vZGVzKG5vZGVBLCBub2RlQiksXG4gICAgICAgICAgbWF0Y2hlcyA9IG5vZGVzTWF0Y2g7IC8vL1xuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGUobm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIHZhbHVlID0gbmV3IFZhbHVlKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IG51bGwsXG4gICAgICAgICAgc3RyaW5nID0gTlVMTCxcbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKSB7XG4gICAgY29uc3QgcmVwbGFjZW1lbnROb2RlID0gc3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50Tm9kZSgpLFxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dCA9IHN1YnN0aXR1dGlvbi5nZXRTcGVjaWZpY0NvbnRleHQoKSxcbiAgICAgICAgICBub2RlID0gcmVwbGFjZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaE5vZGVzKG5vZGVBLCBub2RlQikge1xuICBsZXQgbm9kZXNNYXRjaDtcblxuICBpZiAoKG5vZGVBID09PSBudWxsKSB8fCAobm9kZUIgPT09IG51bGwpKSB7XG4gICAgbm9kZXNNYXRjaCA9IChub2RlQSA9PT0gbm9kZUIpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5vZGVBTWF0Y2hlc05vZGVCID0gbm9kZUEubWF0Y2gobm9kZUIpO1xuXG4gICAgbm9kZXNNYXRjaCA9IG5vZGVBTWF0Y2hlc05vZGVCOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbm9kZXNNYXRjaDtcbn1cbiJdLCJuYW1lcyI6WyJWYWx1ZSIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiZ2V0Q29udGV4dCIsImdldFN0cmluZyIsImdldE5vZGUiLCJtYXRjaCIsInZhbHVlIiwibm9kZUEiLCJub2RlQiIsIm5vZGVzTWF0Y2giLCJtYXRjaE5vZGVzIiwibWF0Y2hlcyIsImZyb21Ob2RlIiwibm9kZUFzU3RyaW5nIiwiZnJvbU5vdGhpbmciLCJOVUxMIiwiZnJvbVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsInJlcGxhY2VtZW50Tm9kZSIsImdldFJlcGxhY2VtZW50Tm9kZSIsInNwZWNpZmljQ29udGV4dCIsImdldFNwZWNpZmljQ29udGV4dCIsIm5vZGVBTWF0Y2hlc05vZGVCIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXFCQTs7OzJCQUZBO0FBRU4sTUFBTUE7SUFDbkIsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksQ0FBRTtRQUNqQyxJQUFJLENBQUNGLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQUksWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDSCxNQUFNO0lBQ3BCO0lBRUFJLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxNQUFNQyxLQUFLLEVBQUU7UUFDWCxNQUFNTCxPQUFPSyxNQUFNRixPQUFPLElBQ3BCRyxRQUFRTixNQUNSTyxRQUFRLElBQUksQ0FBQ1AsSUFBSSxFQUNqQlEsYUFBYUMsV0FBV0gsT0FBT0MsUUFDL0JHLFVBQVVGLFlBQVksR0FBRztRQUUvQixPQUFPRTtJQUNUO0lBRUEsT0FBT0MsU0FBU1gsSUFBSSxFQUFFRixPQUFPLEVBQUU7UUFDN0IsTUFBTUMsU0FBU0QsUUFBUWMsWUFBWSxDQUFDWixPQUM5QkssUUFBUSxJQUFJUixNQUFNQyxTQUFTQyxRQUFRQztRQUV6QyxPQUFPSztJQUNUO0lBRUEsT0FBT1EsY0FBYztRQUNuQixNQUFNZixVQUFVLE1BQ1ZDLFNBQVNlLGVBQUksRUFDYmQsT0FBTyxNQUNQSyxRQUFRLElBQUlSLE1BQU1DLFNBQVNDLFFBQVFDO1FBRXpDLE9BQU9LO0lBQ1Q7SUFFQSxPQUFPVSxpQkFBaUJDLFlBQVksRUFBRTtRQUNwQyxNQUFNQyxrQkFBa0JELGFBQWFFLGtCQUFrQixJQUNqREMsa0JBQWtCSCxhQUFhSSxrQkFBa0IsSUFDakRwQixPQUFPaUIsaUJBQ1BuQixVQUFVcUIsaUJBQ1ZwQixTQUFTRCxRQUFRYyxZQUFZLENBQUNaLE9BQzlCSyxRQUFRLElBQUlSLE1BQU1DLFNBQVNDLFFBQVFDO1FBRXpDLE9BQU9LO0lBQ1Q7QUFDRjtBQUVBLFNBQVNJLFdBQVdILEtBQUssRUFBRUMsS0FBSztJQUM5QixJQUFJQztJQUVKLElBQUksQUFBQ0YsVUFBVSxRQUFVQyxVQUFVLE1BQU87UUFDeENDLGFBQWNGLFVBQVVDO0lBQzFCLE9BQU87UUFDTCxNQUFNYyxvQkFBb0JmLE1BQU1GLEtBQUssQ0FBQ0c7UUFFdENDLGFBQWFhLG1CQUFvQixHQUFHO0lBQ3RDO0lBRUEsT0FBT2I7QUFDVCJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-nominal",
3
3
  "author": "James Smith",
4
- "version": "1.0.151",
4
+ "version": "1.0.153",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-nominal",
7
7
  "description": "Occam's Nominal language.",
package/src/constants.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  export const S = "s";
4
+ export const NULL = "null";
4
5
  export const MISSING = "missing";
5
6
  export const UNDEFINED = "undefined";
6
7
  export const PROVISIONAL = "Provisional";
package/src/index.js CHANGED
@@ -3,8 +3,6 @@
3
3
  import "./preamble";
4
4
 
5
5
  export { default as NominalValue } from "./value"; ///
6
-
7
6
  export { default as lexersUtilities } from "./utilities/lexers";
8
7
  export { default as parsersUtilities } from "./utilities/parsers";
9
-
10
8
  export { default as NominalFileContext } from "./context/file/nominal";
package/src/value.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ import { NULL } from "./constants";
4
+
3
5
  export default class Value {
4
6
  constructor(context, string, node) {
5
7
  this.context = context;
@@ -36,6 +38,15 @@ export default class Value {
36
38
  return value;
37
39
  }
38
40
 
41
+ static fromNothing() {
42
+ const context = null,
43
+ string = NULL,
44
+ node = null,
45
+ value = new Value(context, string, node);
46
+
47
+ return value;
48
+ }
49
+
39
50
  static fromSubstitution(substitution) {
40
51
  const replacementNode = substitution.getReplacementNode(),
41
52
  specificContext = substitution.getSpecificContext(),