@danielsimonjr/mathts-expression 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.ts +6 -1
  2. package/dist/index.js +285 -269
  3. package/package.json +59 -59
package/dist/index.js CHANGED
@@ -670,28 +670,28 @@ var MathjsError = class _MathjsError extends Error {
670
670
  };
671
671
 
672
672
  // src/utils/factory.ts
673
- function factory(name20, dependencies20, create, meta) {
673
+ function factory(name21, dependencies21, create, meta) {
674
674
  function assertAndCreate(scope) {
675
- const deps = pickShallow(scope, dependencies20.map(stripOptionalNotation));
676
- assertDependencies(name20, dependencies20, scope);
675
+ const deps = pickShallow(scope, dependencies21.map(stripOptionalNotation));
676
+ assertDependencies(name21, dependencies21, scope);
677
677
  return create(deps);
678
678
  }
679
679
  assertAndCreate.isFactory = true;
680
- assertAndCreate.fn = name20;
681
- assertAndCreate.dependencies = dependencies20.slice().sort();
680
+ assertAndCreate.fn = name21;
681
+ assertAndCreate.dependencies = dependencies21.slice().sort();
682
682
  if (meta) {
683
683
  assertAndCreate.meta = meta;
684
684
  }
685
685
  return assertAndCreate;
686
686
  }
687
- function assertDependencies(name20, dependencies20, scope) {
688
- const allDefined = dependencies20.filter((dependency) => !isOptionalDependency(dependency)).every((dependency) => scope[dependency] !== void 0);
687
+ function assertDependencies(name21, dependencies21, scope) {
688
+ const allDefined = dependencies21.filter((dependency) => !isOptionalDependency(dependency)).every((dependency) => scope[dependency] !== void 0);
689
689
  if (!allDefined) {
690
- const missingDependencies = dependencies20.filter(
690
+ const missingDependencies = dependencies21.filter(
691
691
  (dependency) => scope[dependency] === void 0
692
692
  );
693
693
  throw new MathjsError(
694
- `Cannot create function "${name20}", some dependencies are missing: ${missingDependencies.map((d) => `"${d}"`).join(", ")}.`
694
+ `Cannot create function "${name21}", some dependencies are missing: ${missingDependencies.map((d) => `"${d}"`).join(", ")}.`
695
695
  );
696
696
  }
697
697
  }
@@ -1710,17 +1710,17 @@ var createParse = /* @__PURE__ */ factory(
1710
1710
  }
1711
1711
  }
1712
1712
  function parseAssignment(state) {
1713
- let name20;
1713
+ let name21;
1714
1714
  let args;
1715
1715
  let value;
1716
1716
  let valid;
1717
1717
  const node = parseConditional(state);
1718
1718
  if (state.token === "=") {
1719
1719
  if (isSymbolNode(node)) {
1720
- name20 = node.name;
1720
+ name21 = node.name;
1721
1721
  getTokenSkipNewline(state);
1722
1722
  value = parseAssignment(state);
1723
- return new AssignmentNode(new SymbolNode(name20), value);
1723
+ return new AssignmentNode(new SymbolNode(name21), value);
1724
1724
  } else if (isAccessorNode(node)) {
1725
1725
  if (node.optionalChaining) {
1726
1726
  throw createSyntaxError(state, "Cannot assign to optional chain");
@@ -1731,7 +1731,7 @@ var createParse = /* @__PURE__ */ factory(
1731
1731
  } else if (isFunctionNode(node) && isSymbolNode(node.fn)) {
1732
1732
  valid = true;
1733
1733
  args = [];
1734
- name20 = node.name;
1734
+ name21 = node.name;
1735
1735
  node.args.forEach(function(arg, index) {
1736
1736
  if (isSymbolNode(arg)) {
1737
1737
  args[index] = arg.name;
@@ -1742,7 +1742,7 @@ var createParse = /* @__PURE__ */ factory(
1742
1742
  if (valid) {
1743
1743
  getTokenSkipNewline(state);
1744
1744
  value = parseAssignment(state);
1745
- return new FunctionAssignmentNode(name20, args, value);
1745
+ return new FunctionAssignmentNode(name21, args, value);
1746
1746
  }
1747
1747
  }
1748
1748
  throw createSyntaxError(state, "Invalid left hand side of assignment operator =");
@@ -1845,7 +1845,7 @@ var createParse = /* @__PURE__ */ factory(
1845
1845
  }
1846
1846
  function parseShift(state) {
1847
1847
  let node;
1848
- let name20;
1848
+ let name21;
1849
1849
  let fn;
1850
1850
  let params;
1851
1851
  node = parseConversion(state);
@@ -1855,17 +1855,17 @@ var createParse = /* @__PURE__ */ factory(
1855
1855
  ">>>": "rightLogShift"
1856
1856
  };
1857
1857
  while (hasOwnProperty(operators, state.token)) {
1858
- name20 = state.token;
1859
- fn = operators[name20];
1858
+ name21 = state.token;
1859
+ fn = operators[name21];
1860
1860
  getTokenSkipNewline(state);
1861
1861
  params = [node, parseConversion(state)];
1862
- node = new OperatorNode(name20, fn, params);
1862
+ node = new OperatorNode(name21, fn, params);
1863
1863
  }
1864
1864
  return node;
1865
1865
  }
1866
1866
  function parseConversion(state) {
1867
1867
  let node;
1868
- let name20;
1868
+ let name21;
1869
1869
  let fn;
1870
1870
  let params;
1871
1871
  node = parseRange(state);
@@ -1875,14 +1875,14 @@ var createParse = /* @__PURE__ */ factory(
1875
1875
  // alias of 'to'
1876
1876
  };
1877
1877
  while (hasOwnProperty(operators, state.token)) {
1878
- name20 = state.token;
1879
- fn = operators[name20];
1878
+ name21 = state.token;
1879
+ fn = operators[name21];
1880
1880
  getTokenSkipNewline(state);
1881
- if (name20 === "in" && "])},;".includes(state.token)) {
1881
+ if (name21 === "in" && "])},;".includes(state.token)) {
1882
1882
  node = new OperatorNode("*", "multiply", [node, new SymbolNode("in")], true);
1883
1883
  } else {
1884
1884
  params = [node, parseRange(state)];
1885
- node = new OperatorNode(name20, fn, params);
1885
+ node = new OperatorNode(name21, fn, params);
1886
1886
  }
1887
1887
  }
1888
1888
  return node;
@@ -1922,7 +1922,7 @@ var createParse = /* @__PURE__ */ factory(
1922
1922
  }
1923
1923
  function parseAddSubtract(state) {
1924
1924
  let node;
1925
- let name20;
1925
+ let name21;
1926
1926
  let fn;
1927
1927
  let params;
1928
1928
  node = parseMultiplyDivideModulus(state);
@@ -1931,8 +1931,8 @@ var createParse = /* @__PURE__ */ factory(
1931
1931
  "-": "subtract"
1932
1932
  };
1933
1933
  while (hasOwnProperty(operators, state.token)) {
1934
- name20 = state.token;
1935
- fn = operators[name20];
1934
+ name21 = state.token;
1935
+ fn = operators[name21];
1936
1936
  getTokenSkipNewline(state);
1937
1937
  const rightNode = parseMultiplyDivideModulus(state);
1938
1938
  if (rightNode.isPercentage) {
@@ -1940,14 +1940,14 @@ var createParse = /* @__PURE__ */ factory(
1940
1940
  } else {
1941
1941
  params = [node, rightNode];
1942
1942
  }
1943
- node = new OperatorNode(name20, fn, params);
1943
+ node = new OperatorNode(name21, fn, params);
1944
1944
  }
1945
1945
  return node;
1946
1946
  }
1947
1947
  function parseMultiplyDivideModulus(state) {
1948
1948
  let node;
1949
1949
  let last;
1950
- let name20;
1950
+ let name21;
1951
1951
  let fn;
1952
1952
  node = parseImplicitMultiplication(state);
1953
1953
  last = node;
@@ -1961,11 +1961,11 @@ var createParse = /* @__PURE__ */ factory(
1961
1961
  };
1962
1962
  while (true) {
1963
1963
  if (hasOwnProperty(operators, state.token)) {
1964
- name20 = state.token;
1965
- fn = operators[name20];
1964
+ name21 = state.token;
1965
+ fn = operators[name21];
1966
1966
  getTokenSkipNewline(state);
1967
1967
  last = parseImplicitMultiplication(state);
1968
- node = new OperatorNode(name20, fn, [node, last]);
1968
+ node = new OperatorNode(name21, fn, [node, last]);
1969
1969
  } else {
1970
1970
  break;
1971
1971
  }
@@ -2039,7 +2039,7 @@ var createParse = /* @__PURE__ */ factory(
2039
2039
  return node;
2040
2040
  }
2041
2041
  function parseUnary(state) {
2042
- let name20;
2042
+ let name21;
2043
2043
  let params;
2044
2044
  let fn;
2045
2045
  const operators = {
@@ -2050,25 +2050,25 @@ var createParse = /* @__PURE__ */ factory(
2050
2050
  };
2051
2051
  if (hasOwnProperty(operators, state.token)) {
2052
2052
  fn = operators[state.token];
2053
- name20 = state.token;
2053
+ name21 = state.token;
2054
2054
  getTokenSkipNewline(state);
2055
2055
  params = [parseUnary(state)];
2056
- return new OperatorNode(name20, fn, params);
2056
+ return new OperatorNode(name21, fn, params);
2057
2057
  }
2058
2058
  return parsePow(state);
2059
2059
  }
2060
2060
  function parsePow(state) {
2061
2061
  let node;
2062
- let name20;
2062
+ let name21;
2063
2063
  let fn;
2064
2064
  let params;
2065
2065
  node = parseNullishCoalescing(state);
2066
2066
  if (state.token === "^" || state.token === ".^") {
2067
- name20 = state.token;
2068
- fn = name20 === "^" ? "pow" : "dotPow";
2067
+ name21 = state.token;
2068
+ fn = name21 === "^" ? "pow" : "dotPow";
2069
2069
  getTokenSkipNewline(state);
2070
2070
  params = [node, parseUnary(state)];
2071
- node = new OperatorNode(name20, fn, params);
2071
+ node = new OperatorNode(name21, fn, params);
2072
2072
  }
2073
2073
  return node;
2074
2074
  }
@@ -2082,7 +2082,7 @@ var createParse = /* @__PURE__ */ factory(
2082
2082
  }
2083
2083
  function parseLeftHandOperators(state) {
2084
2084
  let node;
2085
- let name20;
2085
+ let name21;
2086
2086
  let fn;
2087
2087
  let params;
2088
2088
  node = parseCustomNodes(state);
@@ -2091,11 +2091,11 @@ var createParse = /* @__PURE__ */ factory(
2091
2091
  "'": "ctranspose"
2092
2092
  };
2093
2093
  while (hasOwnProperty(operators, state.token)) {
2094
- name20 = state.token;
2095
- fn = operators[name20];
2094
+ name21 = state.token;
2095
+ fn = operators[name21];
2096
2096
  getToken(state);
2097
2097
  params = [node];
2098
- node = new OperatorNode(name20, fn, params);
2098
+ node = new OperatorNode(name21, fn, params);
2099
2099
  node = parseAccessors(state, node);
2100
2100
  }
2101
2101
  return node;
@@ -2128,16 +2128,16 @@ var createParse = /* @__PURE__ */ factory(
2128
2128
  }
2129
2129
  function parseSymbol(state) {
2130
2130
  let node;
2131
- let name20;
2131
+ let name21;
2132
2132
  if (state.tokenType === 3 /* SYMBOL */ || state.tokenType === 1 /* DELIMITER */ && state.token in NAMED_DELIMITERS) {
2133
- name20 = state.token;
2133
+ name21 = state.token;
2134
2134
  getToken(state);
2135
- if (hasOwnProperty(CONSTANTS, name20)) {
2136
- node = new ConstantNode(CONSTANTS[name20]);
2137
- } else if (NUMERIC_CONSTANTS.includes(name20)) {
2138
- node = new ConstantNode(numeric(name20, "number"));
2135
+ if (hasOwnProperty(CONSTANTS, name21)) {
2136
+ node = new ConstantNode(CONSTANTS[name21]);
2137
+ } else if (NUMERIC_CONSTANTS.includes(name21)) {
2138
+ node = new ConstantNode(numeric(name21, "number"));
2139
2139
  } else {
2140
- node = new SymbolNode(name20);
2140
+ node = new SymbolNode(name21);
2141
2141
  }
2142
2142
  node = parseAccessors(state, node);
2143
2143
  return node;
@@ -2647,9 +2647,9 @@ var createParserClass = /* @__PURE__ */ factory(
2647
2647
  Parser.prototype.evaluate = function(expr) {
2648
2648
  return evaluate(expr, this.scope);
2649
2649
  };
2650
- Parser.prototype.get = function(name20) {
2651
- if (this.scope.has(name20)) {
2652
- return this.scope.get(name20);
2650
+ Parser.prototype.get = function(name21) {
2651
+ if (this.scope.has(name21)) {
2652
+ return this.scope.get(name21);
2653
2653
  }
2654
2654
  };
2655
2655
  Parser.prototype.getAll = function() {
@@ -2658,14 +2658,14 @@ var createParserClass = /* @__PURE__ */ factory(
2658
2658
  Parser.prototype.getAllAsMap = function() {
2659
2659
  return this.scope;
2660
2660
  };
2661
- function isValidVariableName(name20) {
2662
- if (name20.length === 0) {
2661
+ function isValidVariableName(name21) {
2662
+ if (name21.length === 0) {
2663
2663
  return false;
2664
2664
  }
2665
- for (let i = 0; i < name20.length; i++) {
2666
- const cPrev = name20.charAt(i - 1);
2667
- const c = name20.charAt(i);
2668
- const cNext = name20.charAt(i + 1);
2665
+ for (let i = 0; i < name21.length; i++) {
2666
+ const cPrev = name21.charAt(i - 1);
2667
+ const c = name21.charAt(i);
2668
+ const cNext = name21.charAt(i + 1);
2669
2669
  const valid = parse.isAlpha(c, cPrev, cNext) || i > 0 && parse.isDigit(c);
2670
2670
  if (!valid) {
2671
2671
  return false;
@@ -2673,17 +2673,17 @@ var createParserClass = /* @__PURE__ */ factory(
2673
2673
  }
2674
2674
  return true;
2675
2675
  }
2676
- Parser.prototype.set = function(name20, value) {
2677
- if (!isValidVariableName(name20)) {
2676
+ Parser.prototype.set = function(name21, value) {
2677
+ if (!isValidVariableName(name21)) {
2678
2678
  throw new Error(
2679
- `Invalid variable name: '${name20}'. Variable names must follow the specified rules.`
2679
+ `Invalid variable name: '${name21}'. Variable names must follow the specified rules.`
2680
2680
  );
2681
2681
  }
2682
- this.scope.set(name20, value);
2682
+ this.scope.set(name21, value);
2683
2683
  return value;
2684
2684
  };
2685
- Parser.prototype.remove = function(name20) {
2686
- this.scope.delete(name20);
2685
+ Parser.prototype.remove = function(name21) {
2686
+ this.scope.delete(name21);
2687
2687
  };
2688
2688
  Parser.prototype.clear = function() {
2689
2689
  this.scope.clear();
@@ -2694,21 +2694,21 @@ var createParserClass = /* @__PURE__ */ factory(
2694
2694
  variables: {},
2695
2695
  functions: {}
2696
2696
  };
2697
- for (const [name20, value] of this.scope) {
2697
+ for (const [name21, value] of this.scope) {
2698
2698
  if (isFunction(value)) {
2699
2699
  if (!isExpressionFunction(value)) {
2700
- throw new Error(`Cannot serialize external function ${name20}`);
2700
+ throw new Error(`Cannot serialize external function ${name21}`);
2701
2701
  }
2702
- json.functions[name20] = `${value.syntax} = ${value.expr}`;
2702
+ json.functions[name21] = `${value.syntax} = ${value.expr}`;
2703
2703
  } else {
2704
- json.variables[name20] = value;
2704
+ json.variables[name21] = value;
2705
2705
  }
2706
2706
  }
2707
2707
  return json;
2708
2708
  };
2709
2709
  Parser.fromJSON = function(json) {
2710
2710
  const parser = new Parser();
2711
- Object.entries(json.variables || {}).forEach(([name20, value]) => parser.set(name20, value));
2711
+ Object.entries(json.variables || {}).forEach(([name21, value]) => parser.set(name21, value));
2712
2712
  Object.entries(json.functions || {}).forEach(([_name, fn]) => parser.evaluate(fn));
2713
2713
  return parser;
2714
2714
  };
@@ -2720,12 +2720,27 @@ function isExpressionFunction(value) {
2720
2720
  return typeof value === "function" && typeof value.syntax === "string" && typeof value.expr === "string";
2721
2721
  }
2722
2722
 
2723
- // src/Help.ts
2724
- var name3 = "Help";
2725
- var dependencies3 = ["evaluate"];
2726
- var createHelpClass = /* @__PURE__ */ factory(
2723
+ // src/function/parser.ts
2724
+ var name3 = "parser";
2725
+ var dependencies3 = ["typed", "Parser"];
2726
+ var createParser = /* @__PURE__ */ factory(
2727
2727
  name3,
2728
2728
  dependencies3,
2729
+ ({ typed, Parser }) => {
2730
+ return typed(name3, {
2731
+ "": function() {
2732
+ return new Parser();
2733
+ }
2734
+ });
2735
+ }
2736
+ );
2737
+
2738
+ // src/Help.ts
2739
+ var name4 = "Help";
2740
+ var dependencies4 = ["evaluate"];
2741
+ var createHelpClass = /* @__PURE__ */ factory(
2742
+ name4,
2743
+ dependencies4,
2729
2744
  ({ evaluate }) => {
2730
2745
  function Help(doc) {
2731
2746
  if (!(this instanceof Help)) {
@@ -2877,25 +2892,25 @@ function compileConstantNode(node) {
2877
2892
  };
2878
2893
  }
2879
2894
  function compileSymbolNode(node, math, argNames) {
2880
- const name20 = node.name;
2881
- if (argNames[name20] === true) {
2895
+ const name21 = node.name;
2896
+ if (argNames[name21] === true) {
2882
2897
  return function evalSymbolArg(_scope, args) {
2883
- return args[name20];
2898
+ return args[name21];
2884
2899
  };
2885
2900
  }
2886
- if (Object.prototype.hasOwnProperty.call(math, name20)) {
2901
+ if (Object.prototype.hasOwnProperty.call(math, name21)) {
2887
2902
  return function evalSymbolNode(scope) {
2888
- if (scope.has(name20)) {
2889
- return scope.get(name20);
2903
+ if (scope.has(name21)) {
2904
+ return scope.get(name21);
2890
2905
  }
2891
- return math[name20];
2906
+ return math[name21];
2892
2907
  };
2893
2908
  }
2894
2909
  return function evalSymbolNode(scope) {
2895
- if (scope.has(name20)) {
2896
- return scope.get(name20);
2910
+ if (scope.has(name21)) {
2911
+ return scope.get(name21);
2897
2912
  }
2898
- throw new Error(`Undefined symbol "${name20}"`);
2913
+ throw new Error(`Undefined symbol "${name21}"`);
2899
2914
  };
2900
2915
  }
2901
2916
  function compileOperatorNode(node, math, argNames) {
@@ -2927,21 +2942,21 @@ function compileFunctionNode(node, math, argNames) {
2927
2942
  const evalArgs = node.args.map((arg) => compileNode(arg, math, argNames));
2928
2943
  const fnNode = node.fn;
2929
2944
  if (fnNode && fnNode.isSymbolNode) {
2930
- const name20 = fnNode.name;
2945
+ const name21 = fnNode.name;
2931
2946
  const resolveFn = (scope) => {
2932
- if (scope.has(name20)) {
2933
- const value = scope.get(name20);
2947
+ if (scope.has(name21)) {
2948
+ const value = scope.get(name21);
2934
2949
  if (typeof value === "function") return value;
2935
- throw new TypeError(`'${name20}' is not a function; its value is:
2950
+ throw new TypeError(`'${name21}' is not a function; its value is:
2936
2951
  ${value}`);
2937
2952
  }
2938
- if (Object.prototype.hasOwnProperty.call(math, name20)) {
2939
- const value = math[name20];
2953
+ if (Object.prototype.hasOwnProperty.call(math, name21)) {
2954
+ const value = math[name21];
2940
2955
  if (typeof value === "function") return value;
2941
- throw new TypeError(`'${name20}' is not a function; its value is:
2956
+ throw new TypeError(`'${name21}' is not a function; its value is:
2942
2957
  ${value}`);
2943
2958
  }
2944
- throw new Error(`Undefined function "${name20}"`);
2959
+ throw new Error(`Undefined function "${name21}"`);
2945
2960
  };
2946
2961
  switch (evalArgs.length) {
2947
2962
  case 0:
@@ -3002,10 +3017,10 @@ function compileArrayNode(node, math, argNames) {
3002
3017
  function compileAssignmentNode(node, math, argNames) {
3003
3018
  const evalValue = compileNode(node.value, math, argNames);
3004
3019
  if (node.object && node.object.isSymbolNode && !node.index) {
3005
- const name21 = node.object.name;
3020
+ const name22 = node.object.name;
3006
3021
  return function evalAssignmentNode(scope, args, context) {
3007
3022
  const value = evalValue(scope, args, context);
3008
- scope.set(name21, value);
3023
+ scope.set(name22, value);
3009
3024
  return value;
3010
3025
  };
3011
3026
  }
@@ -3020,11 +3035,11 @@ function compileAssignmentNode(node, math, argNames) {
3020
3035
  };
3021
3036
  }
3022
3037
  }
3023
- const name20 = node.name || node.object && node.object.name;
3024
- if (name20) {
3038
+ const name21 = node.name || node.object && node.object.name;
3039
+ if (name21) {
3025
3040
  return function evalAssignmentNode(scope, args, context) {
3026
3041
  const value = evalValue(scope, args, context);
3027
- scope.set(name20, value);
3042
+ scope.set(name21, value);
3028
3043
  return value;
3029
3044
  };
3030
3045
  }
@@ -3118,7 +3133,7 @@ function compileFunctionAssignmentNode(node, math, argNames) {
3118
3133
  childArgNames[param] = true;
3119
3134
  }
3120
3135
  const evalExpr = compileNode(node.expr, math, childArgNames);
3121
- const name20 = node.name;
3136
+ const name21 = node.name;
3122
3137
  const params = node.params;
3123
3138
  return function evalFunctionAssignmentNode(scope, args, _context) {
3124
3139
  const fn = function(...fnArgs) {
@@ -3128,8 +3143,8 @@ function compileFunctionAssignmentNode(node, math, argNames) {
3128
3143
  }
3129
3144
  return evalExpr(scope, childArgs, void 0);
3130
3145
  };
3131
- fn.syntax = name20 + "(" + params.join(", ") + ")";
3132
- scope.set(name20, fn);
3146
+ fn.syntax = name21 + "(" + params.join(", ") + ")";
3147
+ scope.set(name21, fn);
3133
3148
  return fn;
3134
3149
  };
3135
3150
  }
@@ -3281,11 +3296,11 @@ function compileExpression(parseFn, mathScope, expr, options) {
3281
3296
  }
3282
3297
 
3283
3298
  // src/node/Node.ts
3284
- var name4 = "Node";
3285
- var dependencies4 = ["mathWithTransform"];
3299
+ var name5 = "Node";
3300
+ var dependencies5 = ["mathWithTransform"];
3286
3301
  var createNode = /* @__PURE__ */ factory(
3287
- name4,
3288
- dependencies4,
3302
+ name5,
3303
+ dependencies5,
3289
3304
  ({ mathWithTransform }) => {
3290
3305
  function _validateScope(scope) {
3291
3306
  for (const symbol of [...keywords]) {
@@ -3649,11 +3664,11 @@ function accessFactory({ subset }) {
3649
3664
  }
3650
3665
 
3651
3666
  // src/node/AccessorNode.ts
3652
- var name5 = "AccessorNode";
3653
- var dependencies5 = ["subset", "Node"];
3667
+ var name6 = "AccessorNode";
3668
+ var dependencies6 = ["subset", "Node"];
3654
3669
  var createAccessorNode = /* @__PURE__ */ factory(
3655
- name5,
3656
- dependencies5,
3670
+ name6,
3671
+ dependencies6,
3657
3672
  ({ subset, Node }) => {
3658
3673
  const access = accessFactory({ subset });
3659
3674
  function needParenthesis(node) {
@@ -3697,9 +3712,9 @@ var createAccessorNode = /* @__PURE__ */ factory(
3697
3712
  return this.object.name || "";
3698
3713
  }
3699
3714
  }
3700
- static name = name5;
3715
+ static name = name6;
3701
3716
  get type() {
3702
- return name5;
3717
+ return name6;
3703
3718
  }
3704
3719
  get isAccessorNode() {
3705
3720
  return true;
@@ -3823,7 +3838,7 @@ var createAccessorNode = /* @__PURE__ */ factory(
3823
3838
  */
3824
3839
  toJSON() {
3825
3840
  return {
3826
- mathjs: name5,
3841
+ mathjs: name6,
3827
3842
  object: this.object,
3828
3843
  index: this.index,
3829
3844
  optionalChaining: this.optionalChaining
@@ -3847,11 +3862,11 @@ var createAccessorNode = /* @__PURE__ */ factory(
3847
3862
  );
3848
3863
 
3849
3864
  // src/node/ArrayNode.ts
3850
- var name6 = "ArrayNode";
3851
- var dependencies6 = ["Node"];
3865
+ var name7 = "ArrayNode";
3866
+ var dependencies7 = ["Node"];
3852
3867
  var createArrayNode = /* @__PURE__ */ factory(
3853
- name6,
3854
- dependencies6,
3868
+ name7,
3869
+ dependencies7,
3855
3870
  ({ Node }) => {
3856
3871
  class ArrayNode extends Node {
3857
3872
  items;
@@ -3868,9 +3883,9 @@ var createArrayNode = /* @__PURE__ */ factory(
3868
3883
  throw new TypeError("Array containing Nodes expected");
3869
3884
  }
3870
3885
  }
3871
- static name = name6;
3886
+ static name = name7;
3872
3887
  get type() {
3873
- return name6;
3888
+ return name7;
3874
3889
  }
3875
3890
  get isArrayNode() {
3876
3891
  return true;
@@ -3958,7 +3973,7 @@ var createArrayNode = /* @__PURE__ */ factory(
3958
3973
  */
3959
3974
  toJSON() {
3960
3975
  return {
3961
- mathjs: name6,
3976
+ mathjs: name7,
3962
3977
  items: this.items
3963
3978
  };
3964
3979
  }
@@ -4041,11 +4056,11 @@ function assignFactory({ subset }) {
4041
4056
  }
4042
4057
 
4043
4058
  // src/node/AssignmentNode.ts
4044
- var name7 = "AssignmentNode";
4045
- var dependencies7 = ["subset", "Node"];
4059
+ var name8 = "AssignmentNode";
4060
+ var dependencies8 = ["subset", "Node"];
4046
4061
  var createAssignmentNode = /* @__PURE__ */ factory(
4047
- name7,
4048
- dependencies7,
4062
+ name8,
4063
+ dependencies8,
4049
4064
  ({ subset, Node }) => {
4050
4065
  const access = accessFactory({ subset });
4051
4066
  const assign = assignFactory({ subset });
@@ -4112,7 +4127,7 @@ var createAssignmentNode = /* @__PURE__ */ factory(
4112
4127
  }
4113
4128
  }
4114
4129
  // class name for typing purposes:
4115
- static name = name7;
4130
+ static name = name8;
4116
4131
  // readonly property name
4117
4132
  get name() {
4118
4133
  if (this.index) {
@@ -4122,7 +4137,7 @@ var createAssignmentNode = /* @__PURE__ */ factory(
4122
4137
  }
4123
4138
  }
4124
4139
  get type() {
4125
- return name7;
4140
+ return name8;
4126
4141
  }
4127
4142
  get isAssignmentNode() {
4128
4143
  return true;
@@ -4144,14 +4159,14 @@ var createAssignmentNode = /* @__PURE__ */ factory(
4144
4159
  const evalObject = this.object._compile(math, argNames);
4145
4160
  const evalIndex = this.index ? this.index._compile(math, argNames) : null;
4146
4161
  const evalValue = this.value._compile(math, argNames);
4147
- const name20 = this.object.name;
4162
+ const name21 = this.object.name;
4148
4163
  if (!this.index) {
4149
4164
  if (!isSymbolNode(this.object)) {
4150
4165
  throw new TypeError("SymbolNode expected as object");
4151
4166
  }
4152
4167
  return function evalAssignmentNode(scope, args, context) {
4153
4168
  const value = evalValue(scope, args, context);
4154
- scope.set(name20, value);
4169
+ scope.set(name21, value);
4155
4170
  return value;
4156
4171
  };
4157
4172
  } else if (this.index.isObjectProperty()) {
@@ -4167,7 +4182,7 @@ var createAssignmentNode = /* @__PURE__ */ factory(
4167
4182
  const childObject = evalObject(scope, args, context);
4168
4183
  const value = evalValue(scope, args, context);
4169
4184
  const index = evalIndex(scope, args, childObject);
4170
- scope.set(name20, assign(childObject, index, value));
4185
+ scope.set(name21, assign(childObject, index, value));
4171
4186
  return value;
4172
4187
  };
4173
4188
  } else {
@@ -4246,7 +4261,7 @@ var createAssignmentNode = /* @__PURE__ */ factory(
4246
4261
  */
4247
4262
  toJSON() {
4248
4263
  return {
4249
- mathjs: name7,
4264
+ mathjs: name8,
4250
4265
  object: this.object,
4251
4266
  index: this.index,
4252
4267
  value: this.value
@@ -4298,11 +4313,11 @@ var createAssignmentNode = /* @__PURE__ */ factory(
4298
4313
  );
4299
4314
 
4300
4315
  // src/node/BlockNode.ts
4301
- var name8 = "BlockNode";
4302
- var dependencies8 = ["ResultSet", "Node"];
4316
+ var name9 = "BlockNode";
4317
+ var dependencies9 = ["ResultSet", "Node"];
4303
4318
  var createBlockNode = /* @__PURE__ */ factory(
4304
- name8,
4305
- dependencies8,
4319
+ name9,
4320
+ dependencies9,
4306
4321
  ({ ResultSet, Node }) => {
4307
4322
  class BlockNode extends Node {
4308
4323
  blocks;
@@ -4329,9 +4344,9 @@ var createBlockNode = /* @__PURE__ */ factory(
4329
4344
  return { node, visible };
4330
4345
  });
4331
4346
  }
4332
- static name = name8;
4347
+ static name = name9;
4333
4348
  get type() {
4334
- return name8;
4349
+ return name9;
4335
4350
  }
4336
4351
  get isBlockNode() {
4337
4352
  return true;
@@ -4424,7 +4439,7 @@ var createBlockNode = /* @__PURE__ */ factory(
4424
4439
  */
4425
4440
  toJSON() {
4426
4441
  return {
4427
- mathjs: name8,
4442
+ mathjs: name9,
4428
4443
  blocks: this.blocks
4429
4444
  };
4430
4445
  }
@@ -4467,11 +4482,11 @@ var createBlockNode = /* @__PURE__ */ factory(
4467
4482
  );
4468
4483
 
4469
4484
  // src/node/ConditionalNode.ts
4470
- var name9 = "ConditionalNode";
4471
- var dependencies9 = ["Node"];
4485
+ var name10 = "ConditionalNode";
4486
+ var dependencies10 = ["Node"];
4472
4487
  var createConditionalNode = /* @__PURE__ */ factory(
4473
- name9,
4474
- dependencies9,
4488
+ name10,
4489
+ dependencies10,
4475
4490
  ({ Node }) => {
4476
4491
  function testCondition2(condition) {
4477
4492
  if (typeof condition === "number" || typeof condition === "boolean" || typeof condition === "string") {
@@ -4522,9 +4537,9 @@ var createConditionalNode = /* @__PURE__ */ factory(
4522
4537
  this.trueExpr = trueExpr;
4523
4538
  this.falseExpr = falseExpr;
4524
4539
  }
4525
- static name = name9;
4540
+ static name = name10;
4526
4541
  get type() {
4527
- return name9;
4542
+ return name10;
4528
4543
  }
4529
4544
  get isConditionalNode() {
4530
4545
  return true;
@@ -4625,7 +4640,7 @@ var createConditionalNode = /* @__PURE__ */ factory(
4625
4640
  */
4626
4641
  toJSON() {
4627
4642
  return {
4628
- mathjs: name9,
4643
+ mathjs: name10,
4629
4644
  condition: this.condition,
4630
4645
  trueExpr: this.trueExpr,
4631
4646
  falseExpr: this.falseExpr
@@ -5022,26 +5037,26 @@ var latexUnits = {
5022
5037
  function escapeLatex(string) {
5023
5038
  return (0, import_escape_latex.default)(string, { preserveFormatting: true });
5024
5039
  }
5025
- function toSymbol(name20, isUnit2) {
5040
+ function toSymbol(name21, isUnit2) {
5026
5041
  isUnit2 = typeof isUnit2 === "undefined" ? false : isUnit2;
5027
5042
  if (isUnit2) {
5028
- if (hasOwnProperty(latexUnits, name20)) {
5029
- return latexUnits[name20];
5043
+ if (hasOwnProperty(latexUnits, name21)) {
5044
+ return latexUnits[name21];
5030
5045
  }
5031
- return "\\mathrm{" + escapeLatex(name20) + "}";
5046
+ return "\\mathrm{" + escapeLatex(name21) + "}";
5032
5047
  }
5033
- if (hasOwnProperty(latexSymbols, name20)) {
5034
- return latexSymbols[name20];
5048
+ if (hasOwnProperty(latexSymbols, name21)) {
5049
+ return latexSymbols[name21];
5035
5050
  }
5036
- return escapeLatex(name20);
5051
+ return escapeLatex(name21);
5037
5052
  }
5038
5053
 
5039
5054
  // src/node/ConstantNode.ts
5040
- var name10 = "ConstantNode";
5041
- var dependencies10 = ["Node", "isBounded"];
5055
+ var name11 = "ConstantNode";
5056
+ var dependencies11 = ["Node", "isBounded"];
5042
5057
  var createConstantNode = /* @__PURE__ */ factory(
5043
- name10,
5044
- dependencies10,
5058
+ name11,
5059
+ dependencies11,
5045
5060
  ({
5046
5061
  Node,
5047
5062
  isBounded
@@ -5064,9 +5079,9 @@ var createConstantNode = /* @__PURE__ */ factory(
5064
5079
  super();
5065
5080
  this.value = value;
5066
5081
  }
5067
- static name = name10;
5082
+ static name = name11;
5068
5083
  get type() {
5069
- return name10;
5084
+ return name11;
5070
5085
  }
5071
5086
  get isConstantNode() {
5072
5087
  return true;
@@ -5150,7 +5165,7 @@ var createConstantNode = /* @__PURE__ */ factory(
5150
5165
  * @returns {Object}
5151
5166
  */
5152
5167
  toJSON() {
5153
- return { mathjs: name10, value: this.value };
5168
+ return { mathjs: name11, value: this.value };
5154
5169
  }
5155
5170
  /**
5156
5171
  * Instantiate a ConstantNode from its JSON representation
@@ -5200,11 +5215,11 @@ var createConstantNode = /* @__PURE__ */ factory(
5200
5215
  );
5201
5216
 
5202
5217
  // src/node/FunctionAssignmentNode.ts
5203
- var name11 = "FunctionAssignmentNode";
5204
- var dependencies11 = ["typed", "Node"];
5218
+ var name12 = "FunctionAssignmentNode";
5219
+ var dependencies12 = ["typed", "Node"];
5205
5220
  var createFunctionAssignmentNode = /* @__PURE__ */ factory(
5206
- name11,
5207
- dependencies11,
5221
+ name12,
5222
+ dependencies12,
5208
5223
  ({ typed, Node }) => {
5209
5224
  function needParenthesis(node, parenthesis, implicit) {
5210
5225
  const precedence = getPrecedence(node, parenthesis, implicit, void 0);
@@ -5228,9 +5243,9 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
5228
5243
  * and type of the parameter
5229
5244
  * @param {Node} expr The function expression
5230
5245
  */
5231
- constructor(name20, params, expr) {
5246
+ constructor(name21, params, expr) {
5232
5247
  super();
5233
- if (typeof name20 !== "string") {
5248
+ if (typeof name21 !== "string") {
5234
5249
  throw new TypeError('String expected for parameter "name"');
5235
5250
  }
5236
5251
  if (!Array.isArray(params)) {
@@ -5241,8 +5256,8 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
5241
5256
  if (!isNode(expr)) {
5242
5257
  throw new TypeError('Node expected for parameter "expr"');
5243
5258
  }
5244
- if (keywords.has(name20)) {
5245
- throw new Error('Illegal function name, "' + name20 + '" is a reserved keyword');
5259
+ if (keywords.has(name21)) {
5260
+ throw new Error('Illegal function name, "' + name21 + '" is a reserved keyword');
5246
5261
  }
5247
5262
  const paramNames = /* @__PURE__ */ new Set();
5248
5263
  for (const param of params) {
@@ -5253,7 +5268,7 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
5253
5268
  paramNames.add(paramName);
5254
5269
  }
5255
5270
  }
5256
- this.name = name20;
5271
+ this.name = name21;
5257
5272
  this.params = params.map(function(param) {
5258
5273
  return param && param.name || param;
5259
5274
  });
@@ -5262,9 +5277,9 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
5262
5277
  });
5263
5278
  this.expr = expr;
5264
5279
  }
5265
- static name = name11;
5280
+ static name = name12;
5266
5281
  get type() {
5267
- return name11;
5282
+ return name12;
5268
5283
  }
5269
5284
  get isFunctionAssignmentNode() {
5270
5285
  return true;
@@ -5289,10 +5304,10 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
5289
5304
  });
5290
5305
  const expr = this.expr;
5291
5306
  const evalExpr = expr._compile(math, childArgNames);
5292
- const name20 = this.name;
5307
+ const name21 = this.name;
5293
5308
  const params = this.params;
5294
5309
  const signature = join(this.types, ",");
5295
- const syntax = name20 + "(" + join(this.params, ", ") + ")";
5310
+ const syntax = name21 + "(" + join(this.params, ", ") + ")";
5296
5311
  return function evalFunctionAssignmentNode(scope, args, context) {
5297
5312
  const signatures = {};
5298
5313
  signatures[signature] = function(...fnArgs) {
@@ -5302,10 +5317,10 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
5302
5317
  }
5303
5318
  return evalExpr(scope, childArgs, context);
5304
5319
  };
5305
- const fn = typed(name20, signatures);
5320
+ const fn = typed(name21, signatures);
5306
5321
  fn.syntax = syntax;
5307
5322
  fn.expr = expr.toString();
5308
- scope.set(name20, fn);
5323
+ scope.set(name21, fn);
5309
5324
  return fn;
5310
5325
  };
5311
5326
  }
@@ -5354,7 +5369,7 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
5354
5369
  toJSON() {
5355
5370
  const types = this.types;
5356
5371
  return {
5357
- mathjs: name11,
5372
+ mathjs: name12,
5358
5373
  name: this.name,
5359
5374
  params: this.params.map(function(param, index) {
5360
5375
  return {
@@ -5427,11 +5442,11 @@ function createSubScope(parentScope, args) {
5427
5442
  }
5428
5443
 
5429
5444
  // src/node/FunctionNode.ts
5430
- var name12 = "FunctionNode";
5431
- var dependencies12 = ["math", "Node", "SymbolNode"];
5445
+ var name13 = "FunctionNode";
5446
+ var dependencies13 = ["math", "Node", "SymbolNode"];
5432
5447
  var createFunctionNode = /* @__PURE__ */ factory(
5433
- name12,
5434
- dependencies12,
5448
+ name13,
5449
+ dependencies13,
5435
5450
  ({
5436
5451
  math,
5437
5452
  Node,
@@ -5529,9 +5544,9 @@ var createFunctionNode = /* @__PURE__ */ factory(
5529
5544
  get name() {
5530
5545
  return this.fn.name || "";
5531
5546
  }
5532
- static name = name12;
5547
+ static name = name13;
5533
5548
  get type() {
5534
- return name12;
5549
+ return name13;
5535
5550
  }
5536
5551
  get isFunctionNode() {
5537
5552
  return true;
@@ -5553,22 +5568,22 @@ var createFunctionNode = /* @__PURE__ */ factory(
5553
5568
  const evalArgs = this.args.map((arg) => arg._compile(math2, argNames));
5554
5569
  const fromOptionalChaining = this.optional || isAccessorNode(this.fn) && this.fn.optionalChaining;
5555
5570
  if (isSymbolNode(this.fn)) {
5556
- const name20 = this.fn.name;
5557
- if (!argNames[name20]) {
5558
- const fn = name20 in math2 ? getSafeProperty(math2, name20) : void 0;
5571
+ const name21 = this.fn.name;
5572
+ if (!argNames[name21]) {
5573
+ const fn = name21 in math2 ? getSafeProperty(math2, name21) : void 0;
5559
5574
  const isRaw = typeof fn === "function" && fn.rawArgs === true;
5560
5575
  const resolveFn = (scope) => {
5561
5576
  let value;
5562
- if (scope.has(name20)) {
5563
- value = scope.get(name20);
5564
- } else if (name20 in math2) {
5565
- value = getSafeProperty(math2, name20);
5577
+ if (scope.has(name21)) {
5578
+ value = scope.get(name21);
5579
+ } else if (name21 in math2) {
5580
+ value = getSafeProperty(math2, name21);
5566
5581
  } else if (fromOptionalChaining) value = void 0;
5567
- else return FunctionNode.onUndefinedFunction(name20);
5582
+ else return FunctionNode.onUndefinedFunction(name21);
5568
5583
  if (typeof value === "function" || fromOptionalChaining && value === void 0) {
5569
5584
  return value;
5570
5585
  }
5571
- throw new TypeError(`'${name20}' is not a function; its value is:
5586
+ throw new TypeError(`'${name21}' is not a function; its value is:
5572
5587
  ${strin(value)}`);
5573
5588
  };
5574
5589
  if (isRaw) {
@@ -5617,11 +5632,11 @@ var createFunctionNode = /* @__PURE__ */ factory(
5617
5632
  } else {
5618
5633
  const rawArgs = this.args;
5619
5634
  return function evalFunctionNode(scope, args, context) {
5620
- const fn = getSafeProperty(args, name20);
5635
+ const fn = getSafeProperty(args, name21);
5621
5636
  if (fromOptionalChaining && fn === void 0) return void 0;
5622
5637
  if (typeof fn !== "function") {
5623
5638
  throw new TypeError(
5624
- `Argument '${name20}' was not a function; received: ${strin(fn)}`
5639
+ `Argument '${name21}' was not a function; received: ${strin(fn)}`
5625
5640
  );
5626
5641
  }
5627
5642
  if (fn.rawArgs) {
@@ -5706,8 +5721,8 @@ var createFunctionNode = /* @__PURE__ */ factory(
5706
5721
  * Throws an error 'Undefined function {name}'
5707
5722
  * @param {string} name
5708
5723
  */
5709
- static onUndefinedFunction = function(name20) {
5710
- throw new Error("Undefined function " + name20);
5724
+ static onUndefinedFunction = function(name21) {
5725
+ throw new Error("Undefined function " + name21);
5711
5726
  };
5712
5727
  /**
5713
5728
  * Get string representation. (wrapper function)
@@ -5723,9 +5738,9 @@ var createFunctionNode = /* @__PURE__ */ factory(
5723
5738
  */
5724
5739
  toString(options) {
5725
5740
  let customString;
5726
- const name20 = this.fn.toString(options);
5727
- if (options && typeof options.handler === "object" && hasOwnProperty(options.handler, name20)) {
5728
- customString = options.handler[name20](this, options);
5741
+ const name21 = this.fn.toString(options);
5742
+ if (options && typeof options.handler === "object" && hasOwnProperty(options.handler, name21)) {
5743
+ customString = options.handler[name21](this, options);
5729
5744
  }
5730
5745
  if (typeof customString !== "undefined") {
5731
5746
  return customString;
@@ -5750,7 +5765,7 @@ var createFunctionNode = /* @__PURE__ */ factory(
5750
5765
  */
5751
5766
  toJSON() {
5752
5767
  return {
5753
- mathjs: name12,
5768
+ mathjs: name13,
5754
5769
  fn: this.fn,
5755
5770
  args: this.args
5756
5771
  };
@@ -5850,11 +5865,11 @@ var createFunctionNode = /* @__PURE__ */ factory(
5850
5865
  );
5851
5866
 
5852
5867
  // src/node/IndexNode.ts
5853
- var name13 = "IndexNode";
5854
- var dependencies13 = ["Node", "size"];
5868
+ var name14 = "IndexNode";
5869
+ var dependencies14 = ["Node", "size"];
5855
5870
  var createIndexNode = /* @__PURE__ */ factory(
5856
- name13,
5857
- dependencies13,
5871
+ name14,
5872
+ dependencies14,
5858
5873
  ({ Node, size }) => {
5859
5874
  class IndexNode extends Node {
5860
5875
  dimensions;
@@ -5884,9 +5899,9 @@ var createIndexNode = /* @__PURE__ */ factory(
5884
5899
  throw new Error("dotNotation only applicable for object properties");
5885
5900
  }
5886
5901
  }
5887
- static name = name13;
5902
+ static name = name14;
5888
5903
  get type() {
5889
- return name13;
5904
+ return name14;
5890
5905
  }
5891
5906
  get isIndexNode() {
5892
5907
  return true;
@@ -5996,7 +6011,7 @@ var createIndexNode = /* @__PURE__ */ factory(
5996
6011
  */
5997
6012
  toJSON() {
5998
6013
  return {
5999
- mathjs: name13,
6014
+ mathjs: name14,
6000
6015
  dimensions: this.dimensions,
6001
6016
  dotNotation: this.dotNotation
6002
6017
  };
@@ -6046,11 +6061,11 @@ var createIndexNode = /* @__PURE__ */ factory(
6046
6061
  );
6047
6062
 
6048
6063
  // src/node/ObjectNode.ts
6049
- var name14 = "ObjectNode";
6050
- var dependencies14 = ["Node"];
6064
+ var name15 = "ObjectNode";
6065
+ var dependencies15 = ["Node"];
6051
6066
  var createObjectNode = /* @__PURE__ */ factory(
6052
- name14,
6053
- dependencies14,
6067
+ name15,
6068
+ dependencies15,
6054
6069
  ({ Node }) => {
6055
6070
  class ObjectNode extends Node {
6056
6071
  properties;
@@ -6071,9 +6086,9 @@ var createObjectNode = /* @__PURE__ */ factory(
6071
6086
  }
6072
6087
  }
6073
6088
  }
6074
- static name = name14;
6089
+ static name = name15;
6075
6090
  get type() {
6076
- return name14;
6091
+ return name15;
6077
6092
  }
6078
6093
  get isObjectNode() {
6079
6094
  return true;
@@ -6174,7 +6189,7 @@ var createObjectNode = /* @__PURE__ */ factory(
6174
6189
  */
6175
6190
  toJSON() {
6176
6191
  return {
6177
- mathjs: name14,
6192
+ mathjs: name15,
6178
6193
  properties: this.properties
6179
6194
  };
6180
6195
  }
@@ -6229,11 +6244,11 @@ var createObjectNode = /* @__PURE__ */ factory(
6229
6244
  );
6230
6245
 
6231
6246
  // src/node/OperatorNode.ts
6232
- var name15 = "OperatorNode";
6233
- var dependencies15 = ["Node"];
6247
+ var name16 = "OperatorNode";
6248
+ var dependencies16 = ["Node"];
6234
6249
  var createOperatorNode = /* @__PURE__ */ factory(
6235
- name15,
6236
- dependencies15,
6250
+ name16,
6251
+ dependencies16,
6237
6252
  ({ Node }) => {
6238
6253
  function startsWithConstant(expr, parenthesis) {
6239
6254
  let curNode = expr;
@@ -6425,9 +6440,9 @@ var createOperatorNode = /* @__PURE__ */ factory(
6425
6440
  this.fn = fn;
6426
6441
  this.args = args || [];
6427
6442
  }
6428
- static name = name15;
6443
+ static name = name16;
6429
6444
  get type() {
6430
- return name15;
6445
+ return name16;
6431
6446
  }
6432
6447
  get isOperatorNode() {
6433
6448
  return true;
@@ -6595,7 +6610,7 @@ var createOperatorNode = /* @__PURE__ */ factory(
6595
6610
  */
6596
6611
  toJSON() {
6597
6612
  return {
6598
- mathjs: name15,
6613
+ mathjs: name16,
6599
6614
  op: this.op,
6600
6615
  fn: this.fn,
6601
6616
  args: this.args,
@@ -6768,11 +6783,11 @@ var createOperatorNode = /* @__PURE__ */ factory(
6768
6783
  );
6769
6784
 
6770
6785
  // src/node/ParenthesisNode.ts
6771
- var name16 = "ParenthesisNode";
6772
- var dependencies16 = ["Node"];
6786
+ var name17 = "ParenthesisNode";
6787
+ var dependencies17 = ["Node"];
6773
6788
  var createParenthesisNode = /* @__PURE__ */ factory(
6774
- name16,
6775
- dependencies16,
6789
+ name17,
6790
+ dependencies17,
6776
6791
  ({ Node }) => {
6777
6792
  class ParenthesisNode extends Node {
6778
6793
  content;
@@ -6790,9 +6805,9 @@ var createParenthesisNode = /* @__PURE__ */ factory(
6790
6805
  }
6791
6806
  this.content = content;
6792
6807
  }
6793
- static name = name16;
6808
+ static name = name17;
6794
6809
  get type() {
6795
- return name16;
6810
+ return name17;
6796
6811
  }
6797
6812
  get isParenthesisNode() {
6798
6813
  return true;
@@ -6864,7 +6879,7 @@ var createParenthesisNode = /* @__PURE__ */ factory(
6864
6879
  * @returns {Object}
6865
6880
  */
6866
6881
  toJSON() {
6867
- return { mathjs: name16, content: this.content };
6882
+ return { mathjs: name17, content: this.content };
6868
6883
  }
6869
6884
  /**
6870
6885
  * Instantiate an ParenthesisNode from its JSON representation
@@ -6907,11 +6922,11 @@ var createParenthesisNode = /* @__PURE__ */ factory(
6907
6922
  );
6908
6923
 
6909
6924
  // src/node/RangeNode.ts
6910
- var name17 = "RangeNode";
6911
- var dependencies17 = ["Node"];
6925
+ var name18 = "RangeNode";
6926
+ var dependencies18 = ["Node"];
6912
6927
  var createRangeNode = /* @__PURE__ */ factory(
6913
- name17,
6914
- dependencies17,
6928
+ name18,
6929
+ dependencies18,
6915
6930
  ({ Node }) => {
6916
6931
  function calculateNecessaryParentheses(node, parenthesis, implicit) {
6917
6932
  const precedence = getPrecedence(node, parenthesis, implicit, void 0);
@@ -6948,9 +6963,9 @@ var createRangeNode = /* @__PURE__ */ factory(
6948
6963
  this.end = end;
6949
6964
  this.step = step || null;
6950
6965
  }
6951
- static name = name17;
6966
+ static name = name18;
6952
6967
  get type() {
6953
- return name17;
6968
+ return name18;
6954
6969
  }
6955
6970
  get isRangeNode() {
6956
6971
  return true;
@@ -7068,7 +7083,7 @@ var createRangeNode = /* @__PURE__ */ factory(
7068
7083
  */
7069
7084
  toJSON() {
7070
7085
  return {
7071
- mathjs: name17,
7086
+ mathjs: name18,
7072
7087
  start: this.start,
7073
7088
  end: this.end,
7074
7089
  step: this.step
@@ -7154,11 +7169,11 @@ var createRangeNode = /* @__PURE__ */ factory(
7154
7169
  );
7155
7170
 
7156
7171
  // src/node/RelationalNode.ts
7157
- var name18 = "RelationalNode";
7158
- var dependencies18 = ["Node"];
7172
+ var name19 = "RelationalNode";
7173
+ var dependencies19 = ["Node"];
7159
7174
  var createRelationalNode = /* @__PURE__ */ factory(
7160
- name18,
7161
- dependencies18,
7175
+ name19,
7176
+ dependencies19,
7162
7177
  ({ Node }) => {
7163
7178
  const operatorMap = {
7164
7179
  equal: "==",
@@ -7198,9 +7213,9 @@ var createRelationalNode = /* @__PURE__ */ factory(
7198
7213
  this.conditionals = conditionals;
7199
7214
  this.params = params;
7200
7215
  }
7201
- static name = name18;
7216
+ static name = name19;
7202
7217
  get type() {
7203
- return name18;
7218
+ return name19;
7204
7219
  }
7205
7220
  get isRelationalNode() {
7206
7221
  return true;
@@ -7300,7 +7315,7 @@ var createRelationalNode = /* @__PURE__ */ factory(
7300
7315
  */
7301
7316
  toJSON() {
7302
7317
  return {
7303
- mathjs: name18,
7318
+ mathjs: name19,
7304
7319
  conditionals: this.conditionals,
7305
7320
  params: this.params
7306
7321
  };
@@ -7379,14 +7394,14 @@ var createRelationalNode = /* @__PURE__ */ factory(
7379
7394
  );
7380
7395
 
7381
7396
  // src/node/SymbolNode.ts
7382
- var name19 = "SymbolNode";
7383
- var dependencies19 = ["math", "?Unit", "Node"];
7397
+ var name20 = "SymbolNode";
7398
+ var dependencies20 = ["math", "?Unit", "Node"];
7384
7399
  var createSymbolNode = /* @__PURE__ */ factory(
7385
- name19,
7386
- dependencies19,
7400
+ name20,
7401
+ dependencies20,
7387
7402
  ({ math, Unit, Node }) => {
7388
- function isValuelessUnit(name20) {
7389
- return Unit ? Unit.isValuelessUnit(name20) : false;
7403
+ function isValuelessUnit(name21) {
7404
+ return Unit ? Unit.isValuelessUnit(name21) : false;
7390
7405
  }
7391
7406
  class SymbolNode extends Node {
7392
7407
  name;
@@ -7397,12 +7412,12 @@ var createSymbolNode = /* @__PURE__ */ factory(
7397
7412
  * @param {string} name
7398
7413
  * @extends {Node}
7399
7414
  */
7400
- constructor(name20) {
7415
+ constructor(name21) {
7401
7416
  super();
7402
- if (typeof name20 !== "string") {
7417
+ if (typeof name21 !== "string") {
7403
7418
  throw new TypeError('String expected for parameter "name"');
7404
7419
  }
7405
- this.name = name20;
7420
+ this.name = name21;
7406
7421
  }
7407
7422
  get type() {
7408
7423
  return "SymbolNode";
@@ -7424,19 +7439,19 @@ var createSymbolNode = /* @__PURE__ */ factory(
7424
7439
  * evalNode(scope: Object, args: Object, context: *)
7425
7440
  */
7426
7441
  _compile(math2, argNames) {
7427
- const name20 = this.name;
7428
- if (argNames[name20] === true) {
7442
+ const name21 = this.name;
7443
+ if (argNames[name21] === true) {
7429
7444
  return function(scope, args, _context) {
7430
- return getSafeProperty(args, name20);
7445
+ return getSafeProperty(args, name21);
7431
7446
  };
7432
- } else if (name20 in math2) {
7447
+ } else if (name21 in math2) {
7433
7448
  return function(scope, _args, _context) {
7434
- return scope.has(name20) ? scope.get(name20) : getSafeProperty(math2, name20);
7449
+ return scope.has(name21) ? scope.get(name21) : getSafeProperty(math2, name21);
7435
7450
  };
7436
7451
  } else {
7437
- const isUnit2 = isValuelessUnit(name20);
7452
+ const isUnit2 = isValuelessUnit(name21);
7438
7453
  return function(scope, _args, _context) {
7439
- return scope.has(name20) ? scope.get(name20) : isUnit2 ? new Unit(null, name20) : SymbolNode.onUndefinedSymbol(name20);
7454
+ return scope.has(name21) ? scope.get(name21) : isUnit2 ? new Unit(null, name21) : SymbolNode.onUndefinedSymbol(name21);
7440
7455
  };
7441
7456
  }
7442
7457
  }
@@ -7459,8 +7474,8 @@ var createSymbolNode = /* @__PURE__ */ factory(
7459
7474
  * Throws an error 'Undefined symbol {name}'
7460
7475
  * @param {string} name
7461
7476
  */
7462
- static onUndefinedSymbol(name20) {
7463
- throw new Error("Undefined symbol " + name20);
7477
+ static onUndefinedSymbol(name21) {
7478
+ throw new Error("Undefined symbol " + name21);
7464
7479
  }
7465
7480
  /**
7466
7481
  * Create a clone of this node, a shallow copy
@@ -7486,21 +7501,21 @@ var createSymbolNode = /* @__PURE__ */ factory(
7486
7501
  * @override
7487
7502
  */
7488
7503
  _toHTML(_options) {
7489
- const name20 = escape(this.name);
7490
- if (name20 === "true" || name20 === "false") {
7491
- return '<span class="math-symbol math-boolean">' + name20 + "</span>";
7492
- } else if (name20 === "i") {
7493
- return '<span class="math-symbol math-imaginary-symbol">' + name20 + "</span>";
7494
- } else if (name20 === "Infinity") {
7495
- return '<span class="math-symbol math-infinity-symbol">' + name20 + "</span>";
7496
- } else if (name20 === "NaN") {
7497
- return '<span class="math-symbol math-nan-symbol">' + name20 + "</span>";
7498
- } else if (name20 === "null") {
7499
- return '<span class="math-symbol math-null-symbol">' + name20 + "</span>";
7500
- } else if (name20 === "undefined") {
7501
- return '<span class="math-symbol math-undefined-symbol">' + name20 + "</span>";
7502
- }
7503
- return '<span class="math-symbol">' + name20 + "</span>";
7504
+ const name21 = escape(this.name);
7505
+ if (name21 === "true" || name21 === "false") {
7506
+ return '<span class="math-symbol math-boolean">' + name21 + "</span>";
7507
+ } else if (name21 === "i") {
7508
+ return '<span class="math-symbol math-imaginary-symbol">' + name21 + "</span>";
7509
+ } else if (name21 === "Infinity") {
7510
+ return '<span class="math-symbol math-infinity-symbol">' + name21 + "</span>";
7511
+ } else if (name21 === "NaN") {
7512
+ return '<span class="math-symbol math-nan-symbol">' + name21 + "</span>";
7513
+ } else if (name21 === "null") {
7514
+ return '<span class="math-symbol math-null-symbol">' + name21 + "</span>";
7515
+ } else if (name21 === "undefined") {
7516
+ return '<span class="math-symbol math-undefined-symbol">' + name21 + "</span>";
7517
+ }
7518
+ return '<span class="math-symbol">' + name21 + "</span>";
7504
7519
  }
7505
7520
  /**
7506
7521
  * Get a JSON representation of the node
@@ -7563,6 +7578,7 @@ export {
7563
7578
  createOperatorNode,
7564
7579
  createParenthesisNode,
7565
7580
  createParse,
7581
+ createParser,
7566
7582
  createParserClass,
7567
7583
  createRangeNode,
7568
7584
  createRelationalNode,