@danielsimonjr/mathts-expression 0.2.0 → 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.
- package/dist/index.d.ts +6 -2
- package/dist/index.js +313 -286
- package/package.json +59 -59
package/dist/index.js
CHANGED
|
@@ -5,7 +5,11 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __commonJS = (cb, mod) => function __require() {
|
|
8
|
-
|
|
8
|
+
try {
|
|
9
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
10
|
+
} catch (e) {
|
|
11
|
+
throw mod = 0, e;
|
|
12
|
+
}
|
|
9
13
|
};
|
|
10
14
|
var __copyProps = (to, from, except, desc) => {
|
|
11
15
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -649,29 +653,45 @@ function getOperator(fn) {
|
|
|
649
653
|
return null;
|
|
650
654
|
}
|
|
651
655
|
|
|
656
|
+
// src/error/MathjsError.ts
|
|
657
|
+
var MathjsError = class _MathjsError extends Error {
|
|
658
|
+
isMathjsError = true;
|
|
659
|
+
/**
|
|
660
|
+
* Create a MathjsError
|
|
661
|
+
* @param message Error message
|
|
662
|
+
*/
|
|
663
|
+
constructor(message) {
|
|
664
|
+
super(message);
|
|
665
|
+
this.name = "MathjsError";
|
|
666
|
+
if (Error.captureStackTrace) {
|
|
667
|
+
Error.captureStackTrace(this, _MathjsError);
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
};
|
|
671
|
+
|
|
652
672
|
// src/utils/factory.ts
|
|
653
|
-
function factory(
|
|
673
|
+
function factory(name21, dependencies21, create, meta) {
|
|
654
674
|
function assertAndCreate(scope) {
|
|
655
|
-
const deps = pickShallow(scope,
|
|
656
|
-
assertDependencies(
|
|
675
|
+
const deps = pickShallow(scope, dependencies21.map(stripOptionalNotation));
|
|
676
|
+
assertDependencies(name21, dependencies21, scope);
|
|
657
677
|
return create(deps);
|
|
658
678
|
}
|
|
659
679
|
assertAndCreate.isFactory = true;
|
|
660
|
-
assertAndCreate.fn =
|
|
661
|
-
assertAndCreate.dependencies =
|
|
680
|
+
assertAndCreate.fn = name21;
|
|
681
|
+
assertAndCreate.dependencies = dependencies21.slice().sort();
|
|
662
682
|
if (meta) {
|
|
663
683
|
assertAndCreate.meta = meta;
|
|
664
684
|
}
|
|
665
685
|
return assertAndCreate;
|
|
666
686
|
}
|
|
667
|
-
function assertDependencies(
|
|
668
|
-
const allDefined =
|
|
687
|
+
function assertDependencies(name21, dependencies21, scope) {
|
|
688
|
+
const allDefined = dependencies21.filter((dependency) => !isOptionalDependency(dependency)).every((dependency) => scope[dependency] !== void 0);
|
|
669
689
|
if (!allDefined) {
|
|
670
|
-
const missingDependencies =
|
|
690
|
+
const missingDependencies = dependencies21.filter(
|
|
671
691
|
(dependency) => scope[dependency] === void 0
|
|
672
692
|
);
|
|
673
|
-
throw new
|
|
674
|
-
`Cannot create function "${
|
|
693
|
+
throw new MathjsError(
|
|
694
|
+
`Cannot create function "${name21}", some dependencies are missing: ${missingDependencies.map((d) => `"${d}"`).join(", ")}.`
|
|
675
695
|
);
|
|
676
696
|
}
|
|
677
697
|
}
|
|
@@ -1690,17 +1710,17 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1690
1710
|
}
|
|
1691
1711
|
}
|
|
1692
1712
|
function parseAssignment(state) {
|
|
1693
|
-
let
|
|
1713
|
+
let name21;
|
|
1694
1714
|
let args;
|
|
1695
1715
|
let value;
|
|
1696
1716
|
let valid;
|
|
1697
1717
|
const node = parseConditional(state);
|
|
1698
1718
|
if (state.token === "=") {
|
|
1699
1719
|
if (isSymbolNode(node)) {
|
|
1700
|
-
|
|
1720
|
+
name21 = node.name;
|
|
1701
1721
|
getTokenSkipNewline(state);
|
|
1702
1722
|
value = parseAssignment(state);
|
|
1703
|
-
return new AssignmentNode(new SymbolNode(
|
|
1723
|
+
return new AssignmentNode(new SymbolNode(name21), value);
|
|
1704
1724
|
} else if (isAccessorNode(node)) {
|
|
1705
1725
|
if (node.optionalChaining) {
|
|
1706
1726
|
throw createSyntaxError(state, "Cannot assign to optional chain");
|
|
@@ -1711,7 +1731,7 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1711
1731
|
} else if (isFunctionNode(node) && isSymbolNode(node.fn)) {
|
|
1712
1732
|
valid = true;
|
|
1713
1733
|
args = [];
|
|
1714
|
-
|
|
1734
|
+
name21 = node.name;
|
|
1715
1735
|
node.args.forEach(function(arg, index) {
|
|
1716
1736
|
if (isSymbolNode(arg)) {
|
|
1717
1737
|
args[index] = arg.name;
|
|
@@ -1722,7 +1742,7 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1722
1742
|
if (valid) {
|
|
1723
1743
|
getTokenSkipNewline(state);
|
|
1724
1744
|
value = parseAssignment(state);
|
|
1725
|
-
return new FunctionAssignmentNode(
|
|
1745
|
+
return new FunctionAssignmentNode(name21, args, value);
|
|
1726
1746
|
}
|
|
1727
1747
|
}
|
|
1728
1748
|
throw createSyntaxError(state, "Invalid left hand side of assignment operator =");
|
|
@@ -1825,7 +1845,7 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1825
1845
|
}
|
|
1826
1846
|
function parseShift(state) {
|
|
1827
1847
|
let node;
|
|
1828
|
-
let
|
|
1848
|
+
let name21;
|
|
1829
1849
|
let fn;
|
|
1830
1850
|
let params;
|
|
1831
1851
|
node = parseConversion(state);
|
|
@@ -1835,17 +1855,17 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1835
1855
|
">>>": "rightLogShift"
|
|
1836
1856
|
};
|
|
1837
1857
|
while (hasOwnProperty(operators, state.token)) {
|
|
1838
|
-
|
|
1839
|
-
fn = operators[
|
|
1858
|
+
name21 = state.token;
|
|
1859
|
+
fn = operators[name21];
|
|
1840
1860
|
getTokenSkipNewline(state);
|
|
1841
1861
|
params = [node, parseConversion(state)];
|
|
1842
|
-
node = new OperatorNode(
|
|
1862
|
+
node = new OperatorNode(name21, fn, params);
|
|
1843
1863
|
}
|
|
1844
1864
|
return node;
|
|
1845
1865
|
}
|
|
1846
1866
|
function parseConversion(state) {
|
|
1847
1867
|
let node;
|
|
1848
|
-
let
|
|
1868
|
+
let name21;
|
|
1849
1869
|
let fn;
|
|
1850
1870
|
let params;
|
|
1851
1871
|
node = parseRange(state);
|
|
@@ -1855,14 +1875,14 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1855
1875
|
// alias of 'to'
|
|
1856
1876
|
};
|
|
1857
1877
|
while (hasOwnProperty(operators, state.token)) {
|
|
1858
|
-
|
|
1859
|
-
fn = operators[
|
|
1878
|
+
name21 = state.token;
|
|
1879
|
+
fn = operators[name21];
|
|
1860
1880
|
getTokenSkipNewline(state);
|
|
1861
|
-
if (
|
|
1881
|
+
if (name21 === "in" && "])},;".includes(state.token)) {
|
|
1862
1882
|
node = new OperatorNode("*", "multiply", [node, new SymbolNode("in")], true);
|
|
1863
1883
|
} else {
|
|
1864
1884
|
params = [node, parseRange(state)];
|
|
1865
|
-
node = new OperatorNode(
|
|
1885
|
+
node = new OperatorNode(name21, fn, params);
|
|
1866
1886
|
}
|
|
1867
1887
|
}
|
|
1868
1888
|
return node;
|
|
@@ -1902,7 +1922,7 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1902
1922
|
}
|
|
1903
1923
|
function parseAddSubtract(state) {
|
|
1904
1924
|
let node;
|
|
1905
|
-
let
|
|
1925
|
+
let name21;
|
|
1906
1926
|
let fn;
|
|
1907
1927
|
let params;
|
|
1908
1928
|
node = parseMultiplyDivideModulus(state);
|
|
@@ -1911,8 +1931,8 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1911
1931
|
"-": "subtract"
|
|
1912
1932
|
};
|
|
1913
1933
|
while (hasOwnProperty(operators, state.token)) {
|
|
1914
|
-
|
|
1915
|
-
fn = operators[
|
|
1934
|
+
name21 = state.token;
|
|
1935
|
+
fn = operators[name21];
|
|
1916
1936
|
getTokenSkipNewline(state);
|
|
1917
1937
|
const rightNode = parseMultiplyDivideModulus(state);
|
|
1918
1938
|
if (rightNode.isPercentage) {
|
|
@@ -1920,14 +1940,14 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1920
1940
|
} else {
|
|
1921
1941
|
params = [node, rightNode];
|
|
1922
1942
|
}
|
|
1923
|
-
node = new OperatorNode(
|
|
1943
|
+
node = new OperatorNode(name21, fn, params);
|
|
1924
1944
|
}
|
|
1925
1945
|
return node;
|
|
1926
1946
|
}
|
|
1927
1947
|
function parseMultiplyDivideModulus(state) {
|
|
1928
1948
|
let node;
|
|
1929
1949
|
let last;
|
|
1930
|
-
let
|
|
1950
|
+
let name21;
|
|
1931
1951
|
let fn;
|
|
1932
1952
|
node = parseImplicitMultiplication(state);
|
|
1933
1953
|
last = node;
|
|
@@ -1941,11 +1961,11 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
1941
1961
|
};
|
|
1942
1962
|
while (true) {
|
|
1943
1963
|
if (hasOwnProperty(operators, state.token)) {
|
|
1944
|
-
|
|
1945
|
-
fn = operators[
|
|
1964
|
+
name21 = state.token;
|
|
1965
|
+
fn = operators[name21];
|
|
1946
1966
|
getTokenSkipNewline(state);
|
|
1947
1967
|
last = parseImplicitMultiplication(state);
|
|
1948
|
-
node = new OperatorNode(
|
|
1968
|
+
node = new OperatorNode(name21, fn, [node, last]);
|
|
1949
1969
|
} else {
|
|
1950
1970
|
break;
|
|
1951
1971
|
}
|
|
@@ -2019,7 +2039,7 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
2019
2039
|
return node;
|
|
2020
2040
|
}
|
|
2021
2041
|
function parseUnary(state) {
|
|
2022
|
-
let
|
|
2042
|
+
let name21;
|
|
2023
2043
|
let params;
|
|
2024
2044
|
let fn;
|
|
2025
2045
|
const operators = {
|
|
@@ -2030,25 +2050,25 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
2030
2050
|
};
|
|
2031
2051
|
if (hasOwnProperty(operators, state.token)) {
|
|
2032
2052
|
fn = operators[state.token];
|
|
2033
|
-
|
|
2053
|
+
name21 = state.token;
|
|
2034
2054
|
getTokenSkipNewline(state);
|
|
2035
2055
|
params = [parseUnary(state)];
|
|
2036
|
-
return new OperatorNode(
|
|
2056
|
+
return new OperatorNode(name21, fn, params);
|
|
2037
2057
|
}
|
|
2038
2058
|
return parsePow(state);
|
|
2039
2059
|
}
|
|
2040
2060
|
function parsePow(state) {
|
|
2041
2061
|
let node;
|
|
2042
|
-
let
|
|
2062
|
+
let name21;
|
|
2043
2063
|
let fn;
|
|
2044
2064
|
let params;
|
|
2045
2065
|
node = parseNullishCoalescing(state);
|
|
2046
2066
|
if (state.token === "^" || state.token === ".^") {
|
|
2047
|
-
|
|
2048
|
-
fn =
|
|
2067
|
+
name21 = state.token;
|
|
2068
|
+
fn = name21 === "^" ? "pow" : "dotPow";
|
|
2049
2069
|
getTokenSkipNewline(state);
|
|
2050
2070
|
params = [node, parseUnary(state)];
|
|
2051
|
-
node = new OperatorNode(
|
|
2071
|
+
node = new OperatorNode(name21, fn, params);
|
|
2052
2072
|
}
|
|
2053
2073
|
return node;
|
|
2054
2074
|
}
|
|
@@ -2062,7 +2082,7 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
2062
2082
|
}
|
|
2063
2083
|
function parseLeftHandOperators(state) {
|
|
2064
2084
|
let node;
|
|
2065
|
-
let
|
|
2085
|
+
let name21;
|
|
2066
2086
|
let fn;
|
|
2067
2087
|
let params;
|
|
2068
2088
|
node = parseCustomNodes(state);
|
|
@@ -2071,11 +2091,11 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
2071
2091
|
"'": "ctranspose"
|
|
2072
2092
|
};
|
|
2073
2093
|
while (hasOwnProperty(operators, state.token)) {
|
|
2074
|
-
|
|
2075
|
-
fn = operators[
|
|
2094
|
+
name21 = state.token;
|
|
2095
|
+
fn = operators[name21];
|
|
2076
2096
|
getToken(state);
|
|
2077
2097
|
params = [node];
|
|
2078
|
-
node = new OperatorNode(
|
|
2098
|
+
node = new OperatorNode(name21, fn, params);
|
|
2079
2099
|
node = parseAccessors(state, node);
|
|
2080
2100
|
}
|
|
2081
2101
|
return node;
|
|
@@ -2108,16 +2128,16 @@ var createParse = /* @__PURE__ */ factory(
|
|
|
2108
2128
|
}
|
|
2109
2129
|
function parseSymbol(state) {
|
|
2110
2130
|
let node;
|
|
2111
|
-
let
|
|
2131
|
+
let name21;
|
|
2112
2132
|
if (state.tokenType === 3 /* SYMBOL */ || state.tokenType === 1 /* DELIMITER */ && state.token in NAMED_DELIMITERS) {
|
|
2113
|
-
|
|
2133
|
+
name21 = state.token;
|
|
2114
2134
|
getToken(state);
|
|
2115
|
-
if (hasOwnProperty(CONSTANTS,
|
|
2116
|
-
node = new ConstantNode(CONSTANTS[
|
|
2117
|
-
} else if (NUMERIC_CONSTANTS.includes(
|
|
2118
|
-
node = new ConstantNode(numeric(
|
|
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"));
|
|
2119
2139
|
} else {
|
|
2120
|
-
node = new SymbolNode(
|
|
2140
|
+
node = new SymbolNode(name21);
|
|
2121
2141
|
}
|
|
2122
2142
|
node = parseAccessors(state, node);
|
|
2123
2143
|
return node;
|
|
@@ -2627,9 +2647,9 @@ var createParserClass = /* @__PURE__ */ factory(
|
|
|
2627
2647
|
Parser.prototype.evaluate = function(expr) {
|
|
2628
2648
|
return evaluate(expr, this.scope);
|
|
2629
2649
|
};
|
|
2630
|
-
Parser.prototype.get = function(
|
|
2631
|
-
if (this.scope.has(
|
|
2632
|
-
return this.scope.get(
|
|
2650
|
+
Parser.prototype.get = function(name21) {
|
|
2651
|
+
if (this.scope.has(name21)) {
|
|
2652
|
+
return this.scope.get(name21);
|
|
2633
2653
|
}
|
|
2634
2654
|
};
|
|
2635
2655
|
Parser.prototype.getAll = function() {
|
|
@@ -2638,14 +2658,14 @@ var createParserClass = /* @__PURE__ */ factory(
|
|
|
2638
2658
|
Parser.prototype.getAllAsMap = function() {
|
|
2639
2659
|
return this.scope;
|
|
2640
2660
|
};
|
|
2641
|
-
function isValidVariableName(
|
|
2642
|
-
if (
|
|
2661
|
+
function isValidVariableName(name21) {
|
|
2662
|
+
if (name21.length === 0) {
|
|
2643
2663
|
return false;
|
|
2644
2664
|
}
|
|
2645
|
-
for (let i = 0; i <
|
|
2646
|
-
const cPrev =
|
|
2647
|
-
const c =
|
|
2648
|
-
const cNext =
|
|
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);
|
|
2649
2669
|
const valid = parse.isAlpha(c, cPrev, cNext) || i > 0 && parse.isDigit(c);
|
|
2650
2670
|
if (!valid) {
|
|
2651
2671
|
return false;
|
|
@@ -2653,17 +2673,17 @@ var createParserClass = /* @__PURE__ */ factory(
|
|
|
2653
2673
|
}
|
|
2654
2674
|
return true;
|
|
2655
2675
|
}
|
|
2656
|
-
Parser.prototype.set = function(
|
|
2657
|
-
if (!isValidVariableName(
|
|
2676
|
+
Parser.prototype.set = function(name21, value) {
|
|
2677
|
+
if (!isValidVariableName(name21)) {
|
|
2658
2678
|
throw new Error(
|
|
2659
|
-
`Invalid variable name: '${
|
|
2679
|
+
`Invalid variable name: '${name21}'. Variable names must follow the specified rules.`
|
|
2660
2680
|
);
|
|
2661
2681
|
}
|
|
2662
|
-
this.scope.set(
|
|
2682
|
+
this.scope.set(name21, value);
|
|
2663
2683
|
return value;
|
|
2664
2684
|
};
|
|
2665
|
-
Parser.prototype.remove = function(
|
|
2666
|
-
this.scope.delete(
|
|
2685
|
+
Parser.prototype.remove = function(name21) {
|
|
2686
|
+
this.scope.delete(name21);
|
|
2667
2687
|
};
|
|
2668
2688
|
Parser.prototype.clear = function() {
|
|
2669
2689
|
this.scope.clear();
|
|
@@ -2674,21 +2694,21 @@ var createParserClass = /* @__PURE__ */ factory(
|
|
|
2674
2694
|
variables: {},
|
|
2675
2695
|
functions: {}
|
|
2676
2696
|
};
|
|
2677
|
-
for (const [
|
|
2697
|
+
for (const [name21, value] of this.scope) {
|
|
2678
2698
|
if (isFunction(value)) {
|
|
2679
2699
|
if (!isExpressionFunction(value)) {
|
|
2680
|
-
throw new Error(`Cannot serialize external function ${
|
|
2700
|
+
throw new Error(`Cannot serialize external function ${name21}`);
|
|
2681
2701
|
}
|
|
2682
|
-
json.functions[
|
|
2702
|
+
json.functions[name21] = `${value.syntax} = ${value.expr}`;
|
|
2683
2703
|
} else {
|
|
2684
|
-
json.variables[
|
|
2704
|
+
json.variables[name21] = value;
|
|
2685
2705
|
}
|
|
2686
2706
|
}
|
|
2687
2707
|
return json;
|
|
2688
2708
|
};
|
|
2689
2709
|
Parser.fromJSON = function(json) {
|
|
2690
2710
|
const parser = new Parser();
|
|
2691
|
-
Object.entries(json.variables || {}).forEach(([
|
|
2711
|
+
Object.entries(json.variables || {}).forEach(([name21, value]) => parser.set(name21, value));
|
|
2692
2712
|
Object.entries(json.functions || {}).forEach(([_name, fn]) => parser.evaluate(fn));
|
|
2693
2713
|
return parser;
|
|
2694
2714
|
};
|
|
@@ -2700,12 +2720,27 @@ function isExpressionFunction(value) {
|
|
|
2700
2720
|
return typeof value === "function" && typeof value.syntax === "string" && typeof value.expr === "string";
|
|
2701
2721
|
}
|
|
2702
2722
|
|
|
2703
|
-
// src/
|
|
2704
|
-
var name3 = "
|
|
2705
|
-
var dependencies3 = ["
|
|
2706
|
-
var
|
|
2723
|
+
// src/function/parser.ts
|
|
2724
|
+
var name3 = "parser";
|
|
2725
|
+
var dependencies3 = ["typed", "Parser"];
|
|
2726
|
+
var createParser = /* @__PURE__ */ factory(
|
|
2707
2727
|
name3,
|
|
2708
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,
|
|
2709
2744
|
({ evaluate }) => {
|
|
2710
2745
|
function Help(doc) {
|
|
2711
2746
|
if (!(this instanceof Help)) {
|
|
@@ -2857,25 +2892,25 @@ function compileConstantNode(node) {
|
|
|
2857
2892
|
};
|
|
2858
2893
|
}
|
|
2859
2894
|
function compileSymbolNode(node, math, argNames) {
|
|
2860
|
-
const
|
|
2861
|
-
if (argNames[
|
|
2895
|
+
const name21 = node.name;
|
|
2896
|
+
if (argNames[name21] === true) {
|
|
2862
2897
|
return function evalSymbolArg(_scope, args) {
|
|
2863
|
-
return args[
|
|
2898
|
+
return args[name21];
|
|
2864
2899
|
};
|
|
2865
2900
|
}
|
|
2866
|
-
if (Object.prototype.hasOwnProperty.call(math,
|
|
2901
|
+
if (Object.prototype.hasOwnProperty.call(math, name21)) {
|
|
2867
2902
|
return function evalSymbolNode(scope) {
|
|
2868
|
-
if (scope.has(
|
|
2869
|
-
return scope.get(
|
|
2903
|
+
if (scope.has(name21)) {
|
|
2904
|
+
return scope.get(name21);
|
|
2870
2905
|
}
|
|
2871
|
-
return math[
|
|
2906
|
+
return math[name21];
|
|
2872
2907
|
};
|
|
2873
2908
|
}
|
|
2874
2909
|
return function evalSymbolNode(scope) {
|
|
2875
|
-
if (scope.has(
|
|
2876
|
-
return scope.get(
|
|
2910
|
+
if (scope.has(name21)) {
|
|
2911
|
+
return scope.get(name21);
|
|
2877
2912
|
}
|
|
2878
|
-
throw new Error(`Undefined symbol "${
|
|
2913
|
+
throw new Error(`Undefined symbol "${name21}"`);
|
|
2879
2914
|
};
|
|
2880
2915
|
}
|
|
2881
2916
|
function compileOperatorNode(node, math, argNames) {
|
|
@@ -2907,21 +2942,21 @@ function compileFunctionNode(node, math, argNames) {
|
|
|
2907
2942
|
const evalArgs = node.args.map((arg) => compileNode(arg, math, argNames));
|
|
2908
2943
|
const fnNode = node.fn;
|
|
2909
2944
|
if (fnNode && fnNode.isSymbolNode) {
|
|
2910
|
-
const
|
|
2945
|
+
const name21 = fnNode.name;
|
|
2911
2946
|
const resolveFn = (scope) => {
|
|
2912
|
-
if (scope.has(
|
|
2913
|
-
const value = scope.get(
|
|
2947
|
+
if (scope.has(name21)) {
|
|
2948
|
+
const value = scope.get(name21);
|
|
2914
2949
|
if (typeof value === "function") return value;
|
|
2915
|
-
throw new TypeError(`'${
|
|
2950
|
+
throw new TypeError(`'${name21}' is not a function; its value is:
|
|
2916
2951
|
${value}`);
|
|
2917
2952
|
}
|
|
2918
|
-
if (Object.prototype.hasOwnProperty.call(math,
|
|
2919
|
-
const value = math[
|
|
2953
|
+
if (Object.prototype.hasOwnProperty.call(math, name21)) {
|
|
2954
|
+
const value = math[name21];
|
|
2920
2955
|
if (typeof value === "function") return value;
|
|
2921
|
-
throw new TypeError(`'${
|
|
2956
|
+
throw new TypeError(`'${name21}' is not a function; its value is:
|
|
2922
2957
|
${value}`);
|
|
2923
2958
|
}
|
|
2924
|
-
throw new Error(`Undefined function "${
|
|
2959
|
+
throw new Error(`Undefined function "${name21}"`);
|
|
2925
2960
|
};
|
|
2926
2961
|
switch (evalArgs.length) {
|
|
2927
2962
|
case 0:
|
|
@@ -2982,10 +3017,10 @@ function compileArrayNode(node, math, argNames) {
|
|
|
2982
3017
|
function compileAssignmentNode(node, math, argNames) {
|
|
2983
3018
|
const evalValue = compileNode(node.value, math, argNames);
|
|
2984
3019
|
if (node.object && node.object.isSymbolNode && !node.index) {
|
|
2985
|
-
const
|
|
3020
|
+
const name22 = node.object.name;
|
|
2986
3021
|
return function evalAssignmentNode(scope, args, context) {
|
|
2987
3022
|
const value = evalValue(scope, args, context);
|
|
2988
|
-
scope.set(
|
|
3023
|
+
scope.set(name22, value);
|
|
2989
3024
|
return value;
|
|
2990
3025
|
};
|
|
2991
3026
|
}
|
|
@@ -3000,11 +3035,11 @@ function compileAssignmentNode(node, math, argNames) {
|
|
|
3000
3035
|
};
|
|
3001
3036
|
}
|
|
3002
3037
|
}
|
|
3003
|
-
const
|
|
3004
|
-
if (
|
|
3038
|
+
const name21 = node.name || node.object && node.object.name;
|
|
3039
|
+
if (name21) {
|
|
3005
3040
|
return function evalAssignmentNode(scope, args, context) {
|
|
3006
3041
|
const value = evalValue(scope, args, context);
|
|
3007
|
-
scope.set(
|
|
3042
|
+
scope.set(name21, value);
|
|
3008
3043
|
return value;
|
|
3009
3044
|
};
|
|
3010
3045
|
}
|
|
@@ -3098,7 +3133,7 @@ function compileFunctionAssignmentNode(node, math, argNames) {
|
|
|
3098
3133
|
childArgNames[param] = true;
|
|
3099
3134
|
}
|
|
3100
3135
|
const evalExpr = compileNode(node.expr, math, childArgNames);
|
|
3101
|
-
const
|
|
3136
|
+
const name21 = node.name;
|
|
3102
3137
|
const params = node.params;
|
|
3103
3138
|
return function evalFunctionAssignmentNode(scope, args, _context) {
|
|
3104
3139
|
const fn = function(...fnArgs) {
|
|
@@ -3108,8 +3143,8 @@ function compileFunctionAssignmentNode(node, math, argNames) {
|
|
|
3108
3143
|
}
|
|
3109
3144
|
return evalExpr(scope, childArgs, void 0);
|
|
3110
3145
|
};
|
|
3111
|
-
fn.syntax =
|
|
3112
|
-
scope.set(
|
|
3146
|
+
fn.syntax = name21 + "(" + params.join(", ") + ")";
|
|
3147
|
+
scope.set(name21, fn);
|
|
3113
3148
|
return fn;
|
|
3114
3149
|
};
|
|
3115
3150
|
}
|
|
@@ -3261,11 +3296,11 @@ function compileExpression(parseFn, mathScope, expr, options) {
|
|
|
3261
3296
|
}
|
|
3262
3297
|
|
|
3263
3298
|
// src/node/Node.ts
|
|
3264
|
-
var
|
|
3265
|
-
var
|
|
3299
|
+
var name5 = "Node";
|
|
3300
|
+
var dependencies5 = ["mathWithTransform"];
|
|
3266
3301
|
var createNode = /* @__PURE__ */ factory(
|
|
3267
|
-
|
|
3268
|
-
|
|
3302
|
+
name5,
|
|
3303
|
+
dependencies5,
|
|
3269
3304
|
({ mathWithTransform }) => {
|
|
3270
3305
|
function _validateScope(scope) {
|
|
3271
3306
|
for (const symbol of [...keywords]) {
|
|
@@ -3629,11 +3664,11 @@ function accessFactory({ subset }) {
|
|
|
3629
3664
|
}
|
|
3630
3665
|
|
|
3631
3666
|
// src/node/AccessorNode.ts
|
|
3632
|
-
var
|
|
3633
|
-
var
|
|
3667
|
+
var name6 = "AccessorNode";
|
|
3668
|
+
var dependencies6 = ["subset", "Node"];
|
|
3634
3669
|
var createAccessorNode = /* @__PURE__ */ factory(
|
|
3635
|
-
|
|
3636
|
-
|
|
3670
|
+
name6,
|
|
3671
|
+
dependencies6,
|
|
3637
3672
|
({ subset, Node }) => {
|
|
3638
3673
|
const access = accessFactory({ subset });
|
|
3639
3674
|
function needParenthesis(node) {
|
|
@@ -3677,9 +3712,9 @@ var createAccessorNode = /* @__PURE__ */ factory(
|
|
|
3677
3712
|
return this.object.name || "";
|
|
3678
3713
|
}
|
|
3679
3714
|
}
|
|
3680
|
-
static name =
|
|
3715
|
+
static name = name6;
|
|
3681
3716
|
get type() {
|
|
3682
|
-
return
|
|
3717
|
+
return name6;
|
|
3683
3718
|
}
|
|
3684
3719
|
get isAccessorNode() {
|
|
3685
3720
|
return true;
|
|
@@ -3803,7 +3838,7 @@ var createAccessorNode = /* @__PURE__ */ factory(
|
|
|
3803
3838
|
*/
|
|
3804
3839
|
toJSON() {
|
|
3805
3840
|
return {
|
|
3806
|
-
mathjs:
|
|
3841
|
+
mathjs: name6,
|
|
3807
3842
|
object: this.object,
|
|
3808
3843
|
index: this.index,
|
|
3809
3844
|
optionalChaining: this.optionalChaining
|
|
@@ -3827,11 +3862,11 @@ var createAccessorNode = /* @__PURE__ */ factory(
|
|
|
3827
3862
|
);
|
|
3828
3863
|
|
|
3829
3864
|
// src/node/ArrayNode.ts
|
|
3830
|
-
var
|
|
3831
|
-
var
|
|
3865
|
+
var name7 = "ArrayNode";
|
|
3866
|
+
var dependencies7 = ["Node"];
|
|
3832
3867
|
var createArrayNode = /* @__PURE__ */ factory(
|
|
3833
|
-
|
|
3834
|
-
|
|
3868
|
+
name7,
|
|
3869
|
+
dependencies7,
|
|
3835
3870
|
({ Node }) => {
|
|
3836
3871
|
class ArrayNode extends Node {
|
|
3837
3872
|
items;
|
|
@@ -3848,9 +3883,9 @@ var createArrayNode = /* @__PURE__ */ factory(
|
|
|
3848
3883
|
throw new TypeError("Array containing Nodes expected");
|
|
3849
3884
|
}
|
|
3850
3885
|
}
|
|
3851
|
-
static name =
|
|
3886
|
+
static name = name7;
|
|
3852
3887
|
get type() {
|
|
3853
|
-
return
|
|
3888
|
+
return name7;
|
|
3854
3889
|
}
|
|
3855
3890
|
get isArrayNode() {
|
|
3856
3891
|
return true;
|
|
@@ -3938,7 +3973,7 @@ var createArrayNode = /* @__PURE__ */ factory(
|
|
|
3938
3973
|
*/
|
|
3939
3974
|
toJSON() {
|
|
3940
3975
|
return {
|
|
3941
|
-
mathjs:
|
|
3976
|
+
mathjs: name7,
|
|
3942
3977
|
items: this.items
|
|
3943
3978
|
};
|
|
3944
3979
|
}
|
|
@@ -3992,13 +4027,13 @@ var createArrayNode = /* @__PURE__ */ factory(
|
|
|
3992
4027
|
);
|
|
3993
4028
|
|
|
3994
4029
|
// src/node/utils/assign.ts
|
|
3995
|
-
function assignFactory({ subset
|
|
4030
|
+
function assignFactory({ subset }) {
|
|
3996
4031
|
return function assign(object, index, value) {
|
|
3997
4032
|
try {
|
|
3998
4033
|
if (Array.isArray(object)) {
|
|
3999
|
-
const result =
|
|
4000
|
-
result.forEach((item,
|
|
4001
|
-
object[
|
|
4034
|
+
const result = subset(object, index, value);
|
|
4035
|
+
result.forEach((item, i) => {
|
|
4036
|
+
object[i] = item;
|
|
4002
4037
|
});
|
|
4003
4038
|
return object;
|
|
4004
4039
|
} else if (object && typeof object.subset === "function") {
|
|
@@ -4021,23 +4056,14 @@ function assignFactory({ subset, matrix }) {
|
|
|
4021
4056
|
}
|
|
4022
4057
|
|
|
4023
4058
|
// src/node/AssignmentNode.ts
|
|
4024
|
-
var
|
|
4025
|
-
var
|
|
4026
|
-
"subset",
|
|
4027
|
-
"?matrix",
|
|
4028
|
-
// FIXME: should not be needed at all, should be handled by subset
|
|
4029
|
-
"Node"
|
|
4030
|
-
];
|
|
4059
|
+
var name8 = "AssignmentNode";
|
|
4060
|
+
var dependencies8 = ["subset", "Node"];
|
|
4031
4061
|
var createAssignmentNode = /* @__PURE__ */ factory(
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
({
|
|
4035
|
-
subset,
|
|
4036
|
-
matrix,
|
|
4037
|
-
Node
|
|
4038
|
-
}) => {
|
|
4062
|
+
name8,
|
|
4063
|
+
dependencies8,
|
|
4064
|
+
({ subset, Node }) => {
|
|
4039
4065
|
const access = accessFactory({ subset });
|
|
4040
|
-
const assign = assignFactory({ subset
|
|
4066
|
+
const assign = assignFactory({ subset });
|
|
4041
4067
|
function needParenthesis(node, parenthesis, implicit) {
|
|
4042
4068
|
if (!parenthesis) {
|
|
4043
4069
|
parenthesis = "keep";
|
|
@@ -4101,7 +4127,7 @@ var createAssignmentNode = /* @__PURE__ */ factory(
|
|
|
4101
4127
|
}
|
|
4102
4128
|
}
|
|
4103
4129
|
// class name for typing purposes:
|
|
4104
|
-
static name =
|
|
4130
|
+
static name = name8;
|
|
4105
4131
|
// readonly property name
|
|
4106
4132
|
get name() {
|
|
4107
4133
|
if (this.index) {
|
|
@@ -4111,7 +4137,7 @@ var createAssignmentNode = /* @__PURE__ */ factory(
|
|
|
4111
4137
|
}
|
|
4112
4138
|
}
|
|
4113
4139
|
get type() {
|
|
4114
|
-
return
|
|
4140
|
+
return name8;
|
|
4115
4141
|
}
|
|
4116
4142
|
get isAssignmentNode() {
|
|
4117
4143
|
return true;
|
|
@@ -4133,14 +4159,14 @@ var createAssignmentNode = /* @__PURE__ */ factory(
|
|
|
4133
4159
|
const evalObject = this.object._compile(math, argNames);
|
|
4134
4160
|
const evalIndex = this.index ? this.index._compile(math, argNames) : null;
|
|
4135
4161
|
const evalValue = this.value._compile(math, argNames);
|
|
4136
|
-
const
|
|
4162
|
+
const name21 = this.object.name;
|
|
4137
4163
|
if (!this.index) {
|
|
4138
4164
|
if (!isSymbolNode(this.object)) {
|
|
4139
4165
|
throw new TypeError("SymbolNode expected as object");
|
|
4140
4166
|
}
|
|
4141
4167
|
return function evalAssignmentNode(scope, args, context) {
|
|
4142
4168
|
const value = evalValue(scope, args, context);
|
|
4143
|
-
scope.set(
|
|
4169
|
+
scope.set(name21, value);
|
|
4144
4170
|
return value;
|
|
4145
4171
|
};
|
|
4146
4172
|
} else if (this.index.isObjectProperty()) {
|
|
@@ -4156,7 +4182,7 @@ var createAssignmentNode = /* @__PURE__ */ factory(
|
|
|
4156
4182
|
const childObject = evalObject(scope, args, context);
|
|
4157
4183
|
const value = evalValue(scope, args, context);
|
|
4158
4184
|
const index = evalIndex(scope, args, childObject);
|
|
4159
|
-
scope.set(
|
|
4185
|
+
scope.set(name21, assign(childObject, index, value));
|
|
4160
4186
|
return value;
|
|
4161
4187
|
};
|
|
4162
4188
|
} else {
|
|
@@ -4235,7 +4261,7 @@ var createAssignmentNode = /* @__PURE__ */ factory(
|
|
|
4235
4261
|
*/
|
|
4236
4262
|
toJSON() {
|
|
4237
4263
|
return {
|
|
4238
|
-
mathjs:
|
|
4264
|
+
mathjs: name8,
|
|
4239
4265
|
object: this.object,
|
|
4240
4266
|
index: this.index,
|
|
4241
4267
|
value: this.value
|
|
@@ -4287,11 +4313,11 @@ var createAssignmentNode = /* @__PURE__ */ factory(
|
|
|
4287
4313
|
);
|
|
4288
4314
|
|
|
4289
4315
|
// src/node/BlockNode.ts
|
|
4290
|
-
var
|
|
4291
|
-
var
|
|
4316
|
+
var name9 = "BlockNode";
|
|
4317
|
+
var dependencies9 = ["ResultSet", "Node"];
|
|
4292
4318
|
var createBlockNode = /* @__PURE__ */ factory(
|
|
4293
|
-
|
|
4294
|
-
|
|
4319
|
+
name9,
|
|
4320
|
+
dependencies9,
|
|
4295
4321
|
({ ResultSet, Node }) => {
|
|
4296
4322
|
class BlockNode extends Node {
|
|
4297
4323
|
blocks;
|
|
@@ -4318,9 +4344,9 @@ var createBlockNode = /* @__PURE__ */ factory(
|
|
|
4318
4344
|
return { node, visible };
|
|
4319
4345
|
});
|
|
4320
4346
|
}
|
|
4321
|
-
static name =
|
|
4347
|
+
static name = name9;
|
|
4322
4348
|
get type() {
|
|
4323
|
-
return
|
|
4349
|
+
return name9;
|
|
4324
4350
|
}
|
|
4325
4351
|
get isBlockNode() {
|
|
4326
4352
|
return true;
|
|
@@ -4413,7 +4439,7 @@ var createBlockNode = /* @__PURE__ */ factory(
|
|
|
4413
4439
|
*/
|
|
4414
4440
|
toJSON() {
|
|
4415
4441
|
return {
|
|
4416
|
-
mathjs:
|
|
4442
|
+
mathjs: name9,
|
|
4417
4443
|
blocks: this.blocks
|
|
4418
4444
|
};
|
|
4419
4445
|
}
|
|
@@ -4456,11 +4482,11 @@ var createBlockNode = /* @__PURE__ */ factory(
|
|
|
4456
4482
|
);
|
|
4457
4483
|
|
|
4458
4484
|
// src/node/ConditionalNode.ts
|
|
4459
|
-
var
|
|
4460
|
-
var
|
|
4485
|
+
var name10 = "ConditionalNode";
|
|
4486
|
+
var dependencies10 = ["Node"];
|
|
4461
4487
|
var createConditionalNode = /* @__PURE__ */ factory(
|
|
4462
|
-
|
|
4463
|
-
|
|
4488
|
+
name10,
|
|
4489
|
+
dependencies10,
|
|
4464
4490
|
({ Node }) => {
|
|
4465
4491
|
function testCondition2(condition) {
|
|
4466
4492
|
if (typeof condition === "number" || typeof condition === "boolean" || typeof condition === "string") {
|
|
@@ -4511,9 +4537,9 @@ var createConditionalNode = /* @__PURE__ */ factory(
|
|
|
4511
4537
|
this.trueExpr = trueExpr;
|
|
4512
4538
|
this.falseExpr = falseExpr;
|
|
4513
4539
|
}
|
|
4514
|
-
static name =
|
|
4540
|
+
static name = name10;
|
|
4515
4541
|
get type() {
|
|
4516
|
-
return
|
|
4542
|
+
return name10;
|
|
4517
4543
|
}
|
|
4518
4544
|
get isConditionalNode() {
|
|
4519
4545
|
return true;
|
|
@@ -4614,7 +4640,7 @@ var createConditionalNode = /* @__PURE__ */ factory(
|
|
|
4614
4640
|
*/
|
|
4615
4641
|
toJSON() {
|
|
4616
4642
|
return {
|
|
4617
|
-
mathjs:
|
|
4643
|
+
mathjs: name10,
|
|
4618
4644
|
condition: this.condition,
|
|
4619
4645
|
trueExpr: this.trueExpr,
|
|
4620
4646
|
falseExpr: this.falseExpr
|
|
@@ -5011,26 +5037,26 @@ var latexUnits = {
|
|
|
5011
5037
|
function escapeLatex(string) {
|
|
5012
5038
|
return (0, import_escape_latex.default)(string, { preserveFormatting: true });
|
|
5013
5039
|
}
|
|
5014
|
-
function toSymbol(
|
|
5040
|
+
function toSymbol(name21, isUnit2) {
|
|
5015
5041
|
isUnit2 = typeof isUnit2 === "undefined" ? false : isUnit2;
|
|
5016
5042
|
if (isUnit2) {
|
|
5017
|
-
if (hasOwnProperty(latexUnits,
|
|
5018
|
-
return latexUnits[
|
|
5043
|
+
if (hasOwnProperty(latexUnits, name21)) {
|
|
5044
|
+
return latexUnits[name21];
|
|
5019
5045
|
}
|
|
5020
|
-
return "\\mathrm{" + escapeLatex(
|
|
5046
|
+
return "\\mathrm{" + escapeLatex(name21) + "}";
|
|
5021
5047
|
}
|
|
5022
|
-
if (hasOwnProperty(latexSymbols,
|
|
5023
|
-
return latexSymbols[
|
|
5048
|
+
if (hasOwnProperty(latexSymbols, name21)) {
|
|
5049
|
+
return latexSymbols[name21];
|
|
5024
5050
|
}
|
|
5025
|
-
return escapeLatex(
|
|
5051
|
+
return escapeLatex(name21);
|
|
5026
5052
|
}
|
|
5027
5053
|
|
|
5028
5054
|
// src/node/ConstantNode.ts
|
|
5029
|
-
var
|
|
5030
|
-
var
|
|
5055
|
+
var name11 = "ConstantNode";
|
|
5056
|
+
var dependencies11 = ["Node", "isBounded"];
|
|
5031
5057
|
var createConstantNode = /* @__PURE__ */ factory(
|
|
5032
|
-
|
|
5033
|
-
|
|
5058
|
+
name11,
|
|
5059
|
+
dependencies11,
|
|
5034
5060
|
({
|
|
5035
5061
|
Node,
|
|
5036
5062
|
isBounded
|
|
@@ -5053,9 +5079,9 @@ var createConstantNode = /* @__PURE__ */ factory(
|
|
|
5053
5079
|
super();
|
|
5054
5080
|
this.value = value;
|
|
5055
5081
|
}
|
|
5056
|
-
static name =
|
|
5082
|
+
static name = name11;
|
|
5057
5083
|
get type() {
|
|
5058
|
-
return
|
|
5084
|
+
return name11;
|
|
5059
5085
|
}
|
|
5060
5086
|
get isConstantNode() {
|
|
5061
5087
|
return true;
|
|
@@ -5139,7 +5165,7 @@ var createConstantNode = /* @__PURE__ */ factory(
|
|
|
5139
5165
|
* @returns {Object}
|
|
5140
5166
|
*/
|
|
5141
5167
|
toJSON() {
|
|
5142
|
-
return { mathjs:
|
|
5168
|
+
return { mathjs: name11, value: this.value };
|
|
5143
5169
|
}
|
|
5144
5170
|
/**
|
|
5145
5171
|
* Instantiate a ConstantNode from its JSON representation
|
|
@@ -5189,11 +5215,11 @@ var createConstantNode = /* @__PURE__ */ factory(
|
|
|
5189
5215
|
);
|
|
5190
5216
|
|
|
5191
5217
|
// src/node/FunctionAssignmentNode.ts
|
|
5192
|
-
var
|
|
5193
|
-
var
|
|
5218
|
+
var name12 = "FunctionAssignmentNode";
|
|
5219
|
+
var dependencies12 = ["typed", "Node"];
|
|
5194
5220
|
var createFunctionAssignmentNode = /* @__PURE__ */ factory(
|
|
5195
|
-
|
|
5196
|
-
|
|
5221
|
+
name12,
|
|
5222
|
+
dependencies12,
|
|
5197
5223
|
({ typed, Node }) => {
|
|
5198
5224
|
function needParenthesis(node, parenthesis, implicit) {
|
|
5199
5225
|
const precedence = getPrecedence(node, parenthesis, implicit, void 0);
|
|
@@ -5217,9 +5243,9 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
|
|
|
5217
5243
|
* and type of the parameter
|
|
5218
5244
|
* @param {Node} expr The function expression
|
|
5219
5245
|
*/
|
|
5220
|
-
constructor(
|
|
5246
|
+
constructor(name21, params, expr) {
|
|
5221
5247
|
super();
|
|
5222
|
-
if (typeof
|
|
5248
|
+
if (typeof name21 !== "string") {
|
|
5223
5249
|
throw new TypeError('String expected for parameter "name"');
|
|
5224
5250
|
}
|
|
5225
5251
|
if (!Array.isArray(params)) {
|
|
@@ -5230,8 +5256,8 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
|
|
|
5230
5256
|
if (!isNode(expr)) {
|
|
5231
5257
|
throw new TypeError('Node expected for parameter "expr"');
|
|
5232
5258
|
}
|
|
5233
|
-
if (keywords.has(
|
|
5234
|
-
throw new Error('Illegal function name, "' +
|
|
5259
|
+
if (keywords.has(name21)) {
|
|
5260
|
+
throw new Error('Illegal function name, "' + name21 + '" is a reserved keyword');
|
|
5235
5261
|
}
|
|
5236
5262
|
const paramNames = /* @__PURE__ */ new Set();
|
|
5237
5263
|
for (const param of params) {
|
|
@@ -5242,7 +5268,7 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
|
|
|
5242
5268
|
paramNames.add(paramName);
|
|
5243
5269
|
}
|
|
5244
5270
|
}
|
|
5245
|
-
this.name =
|
|
5271
|
+
this.name = name21;
|
|
5246
5272
|
this.params = params.map(function(param) {
|
|
5247
5273
|
return param && param.name || param;
|
|
5248
5274
|
});
|
|
@@ -5251,9 +5277,9 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
|
|
|
5251
5277
|
});
|
|
5252
5278
|
this.expr = expr;
|
|
5253
5279
|
}
|
|
5254
|
-
static name =
|
|
5280
|
+
static name = name12;
|
|
5255
5281
|
get type() {
|
|
5256
|
-
return
|
|
5282
|
+
return name12;
|
|
5257
5283
|
}
|
|
5258
5284
|
get isFunctionAssignmentNode() {
|
|
5259
5285
|
return true;
|
|
@@ -5278,10 +5304,10 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
|
|
|
5278
5304
|
});
|
|
5279
5305
|
const expr = this.expr;
|
|
5280
5306
|
const evalExpr = expr._compile(math, childArgNames);
|
|
5281
|
-
const
|
|
5307
|
+
const name21 = this.name;
|
|
5282
5308
|
const params = this.params;
|
|
5283
5309
|
const signature = join(this.types, ",");
|
|
5284
|
-
const syntax =
|
|
5310
|
+
const syntax = name21 + "(" + join(this.params, ", ") + ")";
|
|
5285
5311
|
return function evalFunctionAssignmentNode(scope, args, context) {
|
|
5286
5312
|
const signatures = {};
|
|
5287
5313
|
signatures[signature] = function(...fnArgs) {
|
|
@@ -5291,10 +5317,10 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
|
|
|
5291
5317
|
}
|
|
5292
5318
|
return evalExpr(scope, childArgs, context);
|
|
5293
5319
|
};
|
|
5294
|
-
const fn = typed(
|
|
5320
|
+
const fn = typed(name21, signatures);
|
|
5295
5321
|
fn.syntax = syntax;
|
|
5296
5322
|
fn.expr = expr.toString();
|
|
5297
|
-
scope.set(
|
|
5323
|
+
scope.set(name21, fn);
|
|
5298
5324
|
return fn;
|
|
5299
5325
|
};
|
|
5300
5326
|
}
|
|
@@ -5343,7 +5369,7 @@ var createFunctionAssignmentNode = /* @__PURE__ */ factory(
|
|
|
5343
5369
|
toJSON() {
|
|
5344
5370
|
const types = this.types;
|
|
5345
5371
|
return {
|
|
5346
|
-
mathjs:
|
|
5372
|
+
mathjs: name12,
|
|
5347
5373
|
name: this.name,
|
|
5348
5374
|
params: this.params.map(function(param, index) {
|
|
5349
5375
|
return {
|
|
@@ -5416,11 +5442,11 @@ function createSubScope(parentScope, args) {
|
|
|
5416
5442
|
}
|
|
5417
5443
|
|
|
5418
5444
|
// src/node/FunctionNode.ts
|
|
5419
|
-
var
|
|
5420
|
-
var
|
|
5445
|
+
var name13 = "FunctionNode";
|
|
5446
|
+
var dependencies13 = ["math", "Node", "SymbolNode"];
|
|
5421
5447
|
var createFunctionNode = /* @__PURE__ */ factory(
|
|
5422
|
-
|
|
5423
|
-
|
|
5448
|
+
name13,
|
|
5449
|
+
dependencies13,
|
|
5424
5450
|
({
|
|
5425
5451
|
math,
|
|
5426
5452
|
Node,
|
|
@@ -5518,9 +5544,9 @@ var createFunctionNode = /* @__PURE__ */ factory(
|
|
|
5518
5544
|
get name() {
|
|
5519
5545
|
return this.fn.name || "";
|
|
5520
5546
|
}
|
|
5521
|
-
static name =
|
|
5547
|
+
static name = name13;
|
|
5522
5548
|
get type() {
|
|
5523
|
-
return
|
|
5549
|
+
return name13;
|
|
5524
5550
|
}
|
|
5525
5551
|
get isFunctionNode() {
|
|
5526
5552
|
return true;
|
|
@@ -5542,22 +5568,22 @@ var createFunctionNode = /* @__PURE__ */ factory(
|
|
|
5542
5568
|
const evalArgs = this.args.map((arg) => arg._compile(math2, argNames));
|
|
5543
5569
|
const fromOptionalChaining = this.optional || isAccessorNode(this.fn) && this.fn.optionalChaining;
|
|
5544
5570
|
if (isSymbolNode(this.fn)) {
|
|
5545
|
-
const
|
|
5546
|
-
if (!argNames[
|
|
5547
|
-
const fn =
|
|
5571
|
+
const name21 = this.fn.name;
|
|
5572
|
+
if (!argNames[name21]) {
|
|
5573
|
+
const fn = name21 in math2 ? getSafeProperty(math2, name21) : void 0;
|
|
5548
5574
|
const isRaw = typeof fn === "function" && fn.rawArgs === true;
|
|
5549
5575
|
const resolveFn = (scope) => {
|
|
5550
5576
|
let value;
|
|
5551
|
-
if (scope.has(
|
|
5552
|
-
value = scope.get(
|
|
5553
|
-
} else if (
|
|
5554
|
-
value = getSafeProperty(math2,
|
|
5577
|
+
if (scope.has(name21)) {
|
|
5578
|
+
value = scope.get(name21);
|
|
5579
|
+
} else if (name21 in math2) {
|
|
5580
|
+
value = getSafeProperty(math2, name21);
|
|
5555
5581
|
} else if (fromOptionalChaining) value = void 0;
|
|
5556
|
-
else return FunctionNode.onUndefinedFunction(
|
|
5582
|
+
else return FunctionNode.onUndefinedFunction(name21);
|
|
5557
5583
|
if (typeof value === "function" || fromOptionalChaining && value === void 0) {
|
|
5558
5584
|
return value;
|
|
5559
5585
|
}
|
|
5560
|
-
throw new TypeError(`'${
|
|
5586
|
+
throw new TypeError(`'${name21}' is not a function; its value is:
|
|
5561
5587
|
${strin(value)}`);
|
|
5562
5588
|
};
|
|
5563
5589
|
if (isRaw) {
|
|
@@ -5606,11 +5632,11 @@ var createFunctionNode = /* @__PURE__ */ factory(
|
|
|
5606
5632
|
} else {
|
|
5607
5633
|
const rawArgs = this.args;
|
|
5608
5634
|
return function evalFunctionNode(scope, args, context) {
|
|
5609
|
-
const fn = getSafeProperty(args,
|
|
5635
|
+
const fn = getSafeProperty(args, name21);
|
|
5610
5636
|
if (fromOptionalChaining && fn === void 0) return void 0;
|
|
5611
5637
|
if (typeof fn !== "function") {
|
|
5612
5638
|
throw new TypeError(
|
|
5613
|
-
`Argument '${
|
|
5639
|
+
`Argument '${name21}' was not a function; received: ${strin(fn)}`
|
|
5614
5640
|
);
|
|
5615
5641
|
}
|
|
5616
5642
|
if (fn.rawArgs) {
|
|
@@ -5695,8 +5721,8 @@ var createFunctionNode = /* @__PURE__ */ factory(
|
|
|
5695
5721
|
* Throws an error 'Undefined function {name}'
|
|
5696
5722
|
* @param {string} name
|
|
5697
5723
|
*/
|
|
5698
|
-
static onUndefinedFunction = function(
|
|
5699
|
-
throw new Error("Undefined function " +
|
|
5724
|
+
static onUndefinedFunction = function(name21) {
|
|
5725
|
+
throw new Error("Undefined function " + name21);
|
|
5700
5726
|
};
|
|
5701
5727
|
/**
|
|
5702
5728
|
* Get string representation. (wrapper function)
|
|
@@ -5712,9 +5738,9 @@ var createFunctionNode = /* @__PURE__ */ factory(
|
|
|
5712
5738
|
*/
|
|
5713
5739
|
toString(options) {
|
|
5714
5740
|
let customString;
|
|
5715
|
-
const
|
|
5716
|
-
if (options && typeof options.handler === "object" && hasOwnProperty(options.handler,
|
|
5717
|
-
customString = options.handler[
|
|
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);
|
|
5718
5744
|
}
|
|
5719
5745
|
if (typeof customString !== "undefined") {
|
|
5720
5746
|
return customString;
|
|
@@ -5739,7 +5765,7 @@ var createFunctionNode = /* @__PURE__ */ factory(
|
|
|
5739
5765
|
*/
|
|
5740
5766
|
toJSON() {
|
|
5741
5767
|
return {
|
|
5742
|
-
mathjs:
|
|
5768
|
+
mathjs: name13,
|
|
5743
5769
|
fn: this.fn,
|
|
5744
5770
|
args: this.args
|
|
5745
5771
|
};
|
|
@@ -5839,11 +5865,11 @@ var createFunctionNode = /* @__PURE__ */ factory(
|
|
|
5839
5865
|
);
|
|
5840
5866
|
|
|
5841
5867
|
// src/node/IndexNode.ts
|
|
5842
|
-
var
|
|
5843
|
-
var
|
|
5868
|
+
var name14 = "IndexNode";
|
|
5869
|
+
var dependencies14 = ["Node", "size"];
|
|
5844
5870
|
var createIndexNode = /* @__PURE__ */ factory(
|
|
5845
|
-
|
|
5846
|
-
|
|
5871
|
+
name14,
|
|
5872
|
+
dependencies14,
|
|
5847
5873
|
({ Node, size }) => {
|
|
5848
5874
|
class IndexNode extends Node {
|
|
5849
5875
|
dimensions;
|
|
@@ -5873,9 +5899,9 @@ var createIndexNode = /* @__PURE__ */ factory(
|
|
|
5873
5899
|
throw new Error("dotNotation only applicable for object properties");
|
|
5874
5900
|
}
|
|
5875
5901
|
}
|
|
5876
|
-
static name =
|
|
5902
|
+
static name = name14;
|
|
5877
5903
|
get type() {
|
|
5878
|
-
return
|
|
5904
|
+
return name14;
|
|
5879
5905
|
}
|
|
5880
5906
|
get isIndexNode() {
|
|
5881
5907
|
return true;
|
|
@@ -5985,7 +6011,7 @@ var createIndexNode = /* @__PURE__ */ factory(
|
|
|
5985
6011
|
*/
|
|
5986
6012
|
toJSON() {
|
|
5987
6013
|
return {
|
|
5988
|
-
mathjs:
|
|
6014
|
+
mathjs: name14,
|
|
5989
6015
|
dimensions: this.dimensions,
|
|
5990
6016
|
dotNotation: this.dotNotation
|
|
5991
6017
|
};
|
|
@@ -6035,11 +6061,11 @@ var createIndexNode = /* @__PURE__ */ factory(
|
|
|
6035
6061
|
);
|
|
6036
6062
|
|
|
6037
6063
|
// src/node/ObjectNode.ts
|
|
6038
|
-
var
|
|
6039
|
-
var
|
|
6064
|
+
var name15 = "ObjectNode";
|
|
6065
|
+
var dependencies15 = ["Node"];
|
|
6040
6066
|
var createObjectNode = /* @__PURE__ */ factory(
|
|
6041
|
-
|
|
6042
|
-
|
|
6067
|
+
name15,
|
|
6068
|
+
dependencies15,
|
|
6043
6069
|
({ Node }) => {
|
|
6044
6070
|
class ObjectNode extends Node {
|
|
6045
6071
|
properties;
|
|
@@ -6060,9 +6086,9 @@ var createObjectNode = /* @__PURE__ */ factory(
|
|
|
6060
6086
|
}
|
|
6061
6087
|
}
|
|
6062
6088
|
}
|
|
6063
|
-
static name =
|
|
6089
|
+
static name = name15;
|
|
6064
6090
|
get type() {
|
|
6065
|
-
return
|
|
6091
|
+
return name15;
|
|
6066
6092
|
}
|
|
6067
6093
|
get isObjectNode() {
|
|
6068
6094
|
return true;
|
|
@@ -6163,7 +6189,7 @@ var createObjectNode = /* @__PURE__ */ factory(
|
|
|
6163
6189
|
*/
|
|
6164
6190
|
toJSON() {
|
|
6165
6191
|
return {
|
|
6166
|
-
mathjs:
|
|
6192
|
+
mathjs: name15,
|
|
6167
6193
|
properties: this.properties
|
|
6168
6194
|
};
|
|
6169
6195
|
}
|
|
@@ -6218,11 +6244,11 @@ var createObjectNode = /* @__PURE__ */ factory(
|
|
|
6218
6244
|
);
|
|
6219
6245
|
|
|
6220
6246
|
// src/node/OperatorNode.ts
|
|
6221
|
-
var
|
|
6222
|
-
var
|
|
6247
|
+
var name16 = "OperatorNode";
|
|
6248
|
+
var dependencies16 = ["Node"];
|
|
6223
6249
|
var createOperatorNode = /* @__PURE__ */ factory(
|
|
6224
|
-
|
|
6225
|
-
|
|
6250
|
+
name16,
|
|
6251
|
+
dependencies16,
|
|
6226
6252
|
({ Node }) => {
|
|
6227
6253
|
function startsWithConstant(expr, parenthesis) {
|
|
6228
6254
|
let curNode = expr;
|
|
@@ -6414,9 +6440,9 @@ var createOperatorNode = /* @__PURE__ */ factory(
|
|
|
6414
6440
|
this.fn = fn;
|
|
6415
6441
|
this.args = args || [];
|
|
6416
6442
|
}
|
|
6417
|
-
static name =
|
|
6443
|
+
static name = name16;
|
|
6418
6444
|
get type() {
|
|
6419
|
-
return
|
|
6445
|
+
return name16;
|
|
6420
6446
|
}
|
|
6421
6447
|
get isOperatorNode() {
|
|
6422
6448
|
return true;
|
|
@@ -6584,7 +6610,7 @@ var createOperatorNode = /* @__PURE__ */ factory(
|
|
|
6584
6610
|
*/
|
|
6585
6611
|
toJSON() {
|
|
6586
6612
|
return {
|
|
6587
|
-
mathjs:
|
|
6613
|
+
mathjs: name16,
|
|
6588
6614
|
op: this.op,
|
|
6589
6615
|
fn: this.fn,
|
|
6590
6616
|
args: this.args,
|
|
@@ -6757,11 +6783,11 @@ var createOperatorNode = /* @__PURE__ */ factory(
|
|
|
6757
6783
|
);
|
|
6758
6784
|
|
|
6759
6785
|
// src/node/ParenthesisNode.ts
|
|
6760
|
-
var
|
|
6761
|
-
var
|
|
6786
|
+
var name17 = "ParenthesisNode";
|
|
6787
|
+
var dependencies17 = ["Node"];
|
|
6762
6788
|
var createParenthesisNode = /* @__PURE__ */ factory(
|
|
6763
|
-
|
|
6764
|
-
|
|
6789
|
+
name17,
|
|
6790
|
+
dependencies17,
|
|
6765
6791
|
({ Node }) => {
|
|
6766
6792
|
class ParenthesisNode extends Node {
|
|
6767
6793
|
content;
|
|
@@ -6779,9 +6805,9 @@ var createParenthesisNode = /* @__PURE__ */ factory(
|
|
|
6779
6805
|
}
|
|
6780
6806
|
this.content = content;
|
|
6781
6807
|
}
|
|
6782
|
-
static name =
|
|
6808
|
+
static name = name17;
|
|
6783
6809
|
get type() {
|
|
6784
|
-
return
|
|
6810
|
+
return name17;
|
|
6785
6811
|
}
|
|
6786
6812
|
get isParenthesisNode() {
|
|
6787
6813
|
return true;
|
|
@@ -6853,7 +6879,7 @@ var createParenthesisNode = /* @__PURE__ */ factory(
|
|
|
6853
6879
|
* @returns {Object}
|
|
6854
6880
|
*/
|
|
6855
6881
|
toJSON() {
|
|
6856
|
-
return { mathjs:
|
|
6882
|
+
return { mathjs: name17, content: this.content };
|
|
6857
6883
|
}
|
|
6858
6884
|
/**
|
|
6859
6885
|
* Instantiate an ParenthesisNode from its JSON representation
|
|
@@ -6896,11 +6922,11 @@ var createParenthesisNode = /* @__PURE__ */ factory(
|
|
|
6896
6922
|
);
|
|
6897
6923
|
|
|
6898
6924
|
// src/node/RangeNode.ts
|
|
6899
|
-
var
|
|
6900
|
-
var
|
|
6925
|
+
var name18 = "RangeNode";
|
|
6926
|
+
var dependencies18 = ["Node"];
|
|
6901
6927
|
var createRangeNode = /* @__PURE__ */ factory(
|
|
6902
|
-
|
|
6903
|
-
|
|
6928
|
+
name18,
|
|
6929
|
+
dependencies18,
|
|
6904
6930
|
({ Node }) => {
|
|
6905
6931
|
function calculateNecessaryParentheses(node, parenthesis, implicit) {
|
|
6906
6932
|
const precedence = getPrecedence(node, parenthesis, implicit, void 0);
|
|
@@ -6937,9 +6963,9 @@ var createRangeNode = /* @__PURE__ */ factory(
|
|
|
6937
6963
|
this.end = end;
|
|
6938
6964
|
this.step = step || null;
|
|
6939
6965
|
}
|
|
6940
|
-
static name =
|
|
6966
|
+
static name = name18;
|
|
6941
6967
|
get type() {
|
|
6942
|
-
return
|
|
6968
|
+
return name18;
|
|
6943
6969
|
}
|
|
6944
6970
|
get isRangeNode() {
|
|
6945
6971
|
return true;
|
|
@@ -7057,7 +7083,7 @@ var createRangeNode = /* @__PURE__ */ factory(
|
|
|
7057
7083
|
*/
|
|
7058
7084
|
toJSON() {
|
|
7059
7085
|
return {
|
|
7060
|
-
mathjs:
|
|
7086
|
+
mathjs: name18,
|
|
7061
7087
|
start: this.start,
|
|
7062
7088
|
end: this.end,
|
|
7063
7089
|
step: this.step
|
|
@@ -7143,11 +7169,11 @@ var createRangeNode = /* @__PURE__ */ factory(
|
|
|
7143
7169
|
);
|
|
7144
7170
|
|
|
7145
7171
|
// src/node/RelationalNode.ts
|
|
7146
|
-
var
|
|
7147
|
-
var
|
|
7172
|
+
var name19 = "RelationalNode";
|
|
7173
|
+
var dependencies19 = ["Node"];
|
|
7148
7174
|
var createRelationalNode = /* @__PURE__ */ factory(
|
|
7149
|
-
|
|
7150
|
-
|
|
7175
|
+
name19,
|
|
7176
|
+
dependencies19,
|
|
7151
7177
|
({ Node }) => {
|
|
7152
7178
|
const operatorMap = {
|
|
7153
7179
|
equal: "==",
|
|
@@ -7187,9 +7213,9 @@ var createRelationalNode = /* @__PURE__ */ factory(
|
|
|
7187
7213
|
this.conditionals = conditionals;
|
|
7188
7214
|
this.params = params;
|
|
7189
7215
|
}
|
|
7190
|
-
static name =
|
|
7216
|
+
static name = name19;
|
|
7191
7217
|
get type() {
|
|
7192
|
-
return
|
|
7218
|
+
return name19;
|
|
7193
7219
|
}
|
|
7194
7220
|
get isRelationalNode() {
|
|
7195
7221
|
return true;
|
|
@@ -7289,7 +7315,7 @@ var createRelationalNode = /* @__PURE__ */ factory(
|
|
|
7289
7315
|
*/
|
|
7290
7316
|
toJSON() {
|
|
7291
7317
|
return {
|
|
7292
|
-
mathjs:
|
|
7318
|
+
mathjs: name19,
|
|
7293
7319
|
conditionals: this.conditionals,
|
|
7294
7320
|
params: this.params
|
|
7295
7321
|
};
|
|
@@ -7368,14 +7394,14 @@ var createRelationalNode = /* @__PURE__ */ factory(
|
|
|
7368
7394
|
);
|
|
7369
7395
|
|
|
7370
7396
|
// src/node/SymbolNode.ts
|
|
7371
|
-
var
|
|
7372
|
-
var
|
|
7397
|
+
var name20 = "SymbolNode";
|
|
7398
|
+
var dependencies20 = ["math", "?Unit", "Node"];
|
|
7373
7399
|
var createSymbolNode = /* @__PURE__ */ factory(
|
|
7374
|
-
|
|
7375
|
-
|
|
7400
|
+
name20,
|
|
7401
|
+
dependencies20,
|
|
7376
7402
|
({ math, Unit, Node }) => {
|
|
7377
|
-
function isValuelessUnit(
|
|
7378
|
-
return Unit ? Unit.isValuelessUnit(
|
|
7403
|
+
function isValuelessUnit(name21) {
|
|
7404
|
+
return Unit ? Unit.isValuelessUnit(name21) : false;
|
|
7379
7405
|
}
|
|
7380
7406
|
class SymbolNode extends Node {
|
|
7381
7407
|
name;
|
|
@@ -7386,12 +7412,12 @@ var createSymbolNode = /* @__PURE__ */ factory(
|
|
|
7386
7412
|
* @param {string} name
|
|
7387
7413
|
* @extends {Node}
|
|
7388
7414
|
*/
|
|
7389
|
-
constructor(
|
|
7415
|
+
constructor(name21) {
|
|
7390
7416
|
super();
|
|
7391
|
-
if (typeof
|
|
7417
|
+
if (typeof name21 !== "string") {
|
|
7392
7418
|
throw new TypeError('String expected for parameter "name"');
|
|
7393
7419
|
}
|
|
7394
|
-
this.name =
|
|
7420
|
+
this.name = name21;
|
|
7395
7421
|
}
|
|
7396
7422
|
get type() {
|
|
7397
7423
|
return "SymbolNode";
|
|
@@ -7413,19 +7439,19 @@ var createSymbolNode = /* @__PURE__ */ factory(
|
|
|
7413
7439
|
* evalNode(scope: Object, args: Object, context: *)
|
|
7414
7440
|
*/
|
|
7415
7441
|
_compile(math2, argNames) {
|
|
7416
|
-
const
|
|
7417
|
-
if (argNames[
|
|
7442
|
+
const name21 = this.name;
|
|
7443
|
+
if (argNames[name21] === true) {
|
|
7418
7444
|
return function(scope, args, _context) {
|
|
7419
|
-
return getSafeProperty(args,
|
|
7445
|
+
return getSafeProperty(args, name21);
|
|
7420
7446
|
};
|
|
7421
|
-
} else if (
|
|
7447
|
+
} else if (name21 in math2) {
|
|
7422
7448
|
return function(scope, _args, _context) {
|
|
7423
|
-
return scope.has(
|
|
7449
|
+
return scope.has(name21) ? scope.get(name21) : getSafeProperty(math2, name21);
|
|
7424
7450
|
};
|
|
7425
7451
|
} else {
|
|
7426
|
-
const isUnit2 = isValuelessUnit(
|
|
7452
|
+
const isUnit2 = isValuelessUnit(name21);
|
|
7427
7453
|
return function(scope, _args, _context) {
|
|
7428
|
-
return scope.has(
|
|
7454
|
+
return scope.has(name21) ? scope.get(name21) : isUnit2 ? new Unit(null, name21) : SymbolNode.onUndefinedSymbol(name21);
|
|
7429
7455
|
};
|
|
7430
7456
|
}
|
|
7431
7457
|
}
|
|
@@ -7448,8 +7474,8 @@ var createSymbolNode = /* @__PURE__ */ factory(
|
|
|
7448
7474
|
* Throws an error 'Undefined symbol {name}'
|
|
7449
7475
|
* @param {string} name
|
|
7450
7476
|
*/
|
|
7451
|
-
static onUndefinedSymbol(
|
|
7452
|
-
throw new Error("Undefined symbol " +
|
|
7477
|
+
static onUndefinedSymbol(name21) {
|
|
7478
|
+
throw new Error("Undefined symbol " + name21);
|
|
7453
7479
|
}
|
|
7454
7480
|
/**
|
|
7455
7481
|
* Create a clone of this node, a shallow copy
|
|
@@ -7475,21 +7501,21 @@ var createSymbolNode = /* @__PURE__ */ factory(
|
|
|
7475
7501
|
* @override
|
|
7476
7502
|
*/
|
|
7477
7503
|
_toHTML(_options) {
|
|
7478
|
-
const
|
|
7479
|
-
if (
|
|
7480
|
-
return '<span class="math-symbol math-boolean">' +
|
|
7481
|
-
} else if (
|
|
7482
|
-
return '<span class="math-symbol math-imaginary-symbol">' +
|
|
7483
|
-
} else if (
|
|
7484
|
-
return '<span class="math-symbol math-infinity-symbol">' +
|
|
7485
|
-
} else if (
|
|
7486
|
-
return '<span class="math-symbol math-nan-symbol">' +
|
|
7487
|
-
} else if (
|
|
7488
|
-
return '<span class="math-symbol math-null-symbol">' +
|
|
7489
|
-
} else if (
|
|
7490
|
-
return '<span class="math-symbol math-undefined-symbol">' +
|
|
7491
|
-
}
|
|
7492
|
-
return '<span class="math-symbol">' +
|
|
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>";
|
|
7493
7519
|
}
|
|
7494
7520
|
/**
|
|
7495
7521
|
* Get a JSON representation of the node
|
|
@@ -7552,6 +7578,7 @@ export {
|
|
|
7552
7578
|
createOperatorNode,
|
|
7553
7579
|
createParenthesisNode,
|
|
7554
7580
|
createParse,
|
|
7581
|
+
createParser,
|
|
7555
7582
|
createParserClass,
|
|
7556
7583
|
createRangeNode,
|
|
7557
7584
|
createRelationalNode,
|