mathjs 13.2.3 → 14.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +24 -0
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -10
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/function/import.js +4 -1
- package/lib/cjs/core/function/typed.js +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesBitXor.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesDotDivide.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesDotPow.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesEqual.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLargerEq.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesLog.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSmallerEq.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesUnequal.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesXor.generated.js +2 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +1 -0
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +1 -0
- package/lib/cjs/entry/pureFunctionsAny.generated.js +11 -0
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/ceil.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/fix.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/floor.js +2 -2
- package/lib/cjs/expression/parse.js +26 -36
- package/lib/cjs/function/algebra/derivative.js +64 -77
- package/lib/cjs/function/algebra/simplify.js +4 -3
- package/lib/cjs/function/algebra/simplifyConstant.js +5 -11
- package/lib/cjs/function/arithmetic/ceil.js +21 -2
- package/lib/cjs/function/arithmetic/dotDivide.js +4 -3
- package/lib/cjs/function/arithmetic/dotPow.js +4 -3
- package/lib/cjs/function/arithmetic/fix.js +24 -5
- package/lib/cjs/function/arithmetic/floor.js +21 -2
- package/lib/cjs/function/arithmetic/log.js +12 -4
- package/lib/cjs/function/arithmetic/pow.js +2 -2
- package/lib/cjs/function/arithmetic/round.js +3 -5
- package/lib/cjs/function/arithmetic/sign.js +1 -1
- package/lib/cjs/function/bitwise/bitXor.js +4 -3
- package/lib/cjs/function/logical/xor.js +4 -3
- package/lib/cjs/function/relational/equal.js +4 -3
- package/lib/cjs/function/relational/larger.js +4 -3
- package/lib/cjs/function/relational/largerEq.js +4 -3
- package/lib/cjs/function/relational/smaller.js +4 -3
- package/lib/cjs/function/relational/smallerEq.js +4 -3
- package/lib/cjs/function/relational/unequal.js +4 -3
- package/lib/cjs/function/utils/isInteger.js +1 -1
- package/lib/cjs/function/utils/isNegative.js +1 -1
- package/lib/cjs/function/utils/isPositive.js +1 -1
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/bignumber/function/bignumber.js +2 -2
- package/lib/cjs/type/fraction/Fraction.js +4 -4
- package/lib/cjs/type/fraction/function/fraction.js +3 -0
- package/lib/cjs/type/matrix/utils/matAlgo07xSSf.js +39 -43
- package/lib/cjs/type/unit/Unit.js +1 -1
- package/lib/cjs/utils/string.js +2 -2
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/function/import.js +4 -1
- package/lib/esm/core/function/typed.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesBitXor.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDotDivide.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesDotPow.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesEqual.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLargerEq.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesLog.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSmallerEq.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesUnequal.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesXor.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +1 -0
- package/lib/esm/entry/impureFunctionsNumber.generated.js +1 -0
- package/lib/esm/entry/pureFunctionsAny.generated.js +11 -0
- package/lib/esm/expression/embeddedDocs/function/arithmetic/ceil.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/arithmetic/fix.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/arithmetic/floor.js +2 -2
- package/lib/esm/expression/parse.js +26 -36
- package/lib/esm/function/algebra/derivative.js +64 -77
- package/lib/esm/function/algebra/simplify.js +4 -3
- package/lib/esm/function/algebra/simplifyConstant.js +5 -11
- package/lib/esm/function/arithmetic/ceil.js +21 -2
- package/lib/esm/function/arithmetic/dotDivide.js +4 -3
- package/lib/esm/function/arithmetic/dotPow.js +4 -3
- package/lib/esm/function/arithmetic/fix.js +24 -5
- package/lib/esm/function/arithmetic/floor.js +21 -2
- package/lib/esm/function/arithmetic/log.js +12 -4
- package/lib/esm/function/arithmetic/pow.js +2 -2
- package/lib/esm/function/arithmetic/round.js +3 -5
- package/lib/esm/function/arithmetic/sign.js +1 -1
- package/lib/esm/function/bitwise/bitXor.js +4 -3
- package/lib/esm/function/logical/xor.js +4 -3
- package/lib/esm/function/relational/equal.js +4 -3
- package/lib/esm/function/relational/larger.js +4 -3
- package/lib/esm/function/relational/largerEq.js +4 -3
- package/lib/esm/function/relational/smaller.js +4 -3
- package/lib/esm/function/relational/smallerEq.js +4 -3
- package/lib/esm/function/relational/unequal.js +4 -3
- package/lib/esm/function/utils/isInteger.js +1 -1
- package/lib/esm/function/utils/isNegative.js +1 -1
- package/lib/esm/function/utils/isPositive.js +1 -1
- package/lib/esm/type/bignumber/function/bignumber.js +2 -2
- package/lib/esm/type/fraction/Fraction.js +4 -4
- package/lib/esm/type/fraction/function/fraction.js +3 -0
- package/lib/esm/type/matrix/utils/matAlgo07xSSf.js +39 -43
- package/lib/esm/type/unit/Unit.js +1 -1
- package/lib/esm/utils/string.js +2 -2
- package/lib/esm/version.js +1 -1
- package/package.json +13 -13
- package/types/index.d.ts +112 -23
@@ -3,12 +3,14 @@
|
|
3
3
|
* DON'T MAKE CHANGES HERE
|
4
4
|
*/
|
5
5
|
import { DenseMatrixDependencies } from './dependenciesDenseMatrixClass.generated.js';
|
6
|
+
import { SparseMatrixDependencies } from './dependenciesSparseMatrixClass.generated.js';
|
6
7
|
import { concatDependencies } from './dependenciesConcat.generated.js';
|
7
8
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
8
9
|
import { typedDependencies } from './dependenciesTyped.generated.js';
|
9
10
|
import { createLargerEq } from '../../factoriesAny.js';
|
10
11
|
export var largerEqDependencies = {
|
11
12
|
DenseMatrixDependencies,
|
13
|
+
SparseMatrixDependencies,
|
12
14
|
concatDependencies,
|
13
15
|
matrixDependencies,
|
14
16
|
typedDependencies,
|
@@ -4,11 +4,13 @@
|
|
4
4
|
*/
|
5
5
|
import { ComplexDependencies } from './dependenciesComplexClass.generated.js';
|
6
6
|
import { divideScalarDependencies } from './dependenciesDivideScalar.generated.js';
|
7
|
+
import { typeOfDependencies } from './dependenciesTypeOf.generated.js';
|
7
8
|
import { typedDependencies } from './dependenciesTyped.generated.js';
|
8
9
|
import { createLog } from '../../factoriesAny.js';
|
9
10
|
export var logDependencies = {
|
10
11
|
ComplexDependencies,
|
11
12
|
divideScalarDependencies,
|
13
|
+
typeOfDependencies,
|
12
14
|
typedDependencies,
|
13
15
|
createLog
|
14
16
|
};
|
@@ -13,6 +13,7 @@ import { ParenthesisNodeDependencies } from './dependenciesParenthesisNode.gener
|
|
13
13
|
import { SymbolNodeDependencies } from './dependenciesSymbolNode.generated.js';
|
14
14
|
import { equalDependencies } from './dependenciesEqual.generated.js';
|
15
15
|
import { parseDependencies } from './dependenciesParse.generated.js';
|
16
|
+
import { replacerDependencies } from './dependenciesReplacer.generated.js';
|
16
17
|
import { resolveDependencies } from './dependenciesResolve.generated.js';
|
17
18
|
import { simplifyConstantDependencies } from './dependenciesSimplifyConstant.generated.js';
|
18
19
|
import { simplifyCoreDependencies } from './dependenciesSimplifyCore.generated.js';
|
@@ -30,6 +31,7 @@ export var simplifyDependencies = {
|
|
30
31
|
SymbolNodeDependencies,
|
31
32
|
equalDependencies,
|
32
33
|
parseDependencies,
|
34
|
+
replacerDependencies,
|
33
35
|
resolveDependencies,
|
34
36
|
simplifyConstantDependencies,
|
35
37
|
simplifyCoreDependencies,
|
@@ -3,12 +3,14 @@
|
|
3
3
|
* DON'T MAKE CHANGES HERE
|
4
4
|
*/
|
5
5
|
import { DenseMatrixDependencies } from './dependenciesDenseMatrixClass.generated.js';
|
6
|
+
import { SparseMatrixDependencies } from './dependenciesSparseMatrixClass.generated.js';
|
6
7
|
import { concatDependencies } from './dependenciesConcat.generated.js';
|
7
8
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
8
9
|
import { typedDependencies } from './dependenciesTyped.generated.js';
|
9
10
|
import { createSmaller } from '../../factoriesAny.js';
|
10
11
|
export var smallerDependencies = {
|
11
12
|
DenseMatrixDependencies,
|
13
|
+
SparseMatrixDependencies,
|
12
14
|
concatDependencies,
|
13
15
|
matrixDependencies,
|
14
16
|
typedDependencies,
|
@@ -3,12 +3,14 @@
|
|
3
3
|
* DON'T MAKE CHANGES HERE
|
4
4
|
*/
|
5
5
|
import { DenseMatrixDependencies } from './dependenciesDenseMatrixClass.generated.js';
|
6
|
+
import { SparseMatrixDependencies } from './dependenciesSparseMatrixClass.generated.js';
|
6
7
|
import { concatDependencies } from './dependenciesConcat.generated.js';
|
7
8
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
8
9
|
import { typedDependencies } from './dependenciesTyped.generated.js';
|
9
10
|
import { createSmallerEq } from '../../factoriesAny.js';
|
10
11
|
export var smallerEqDependencies = {
|
11
12
|
DenseMatrixDependencies,
|
13
|
+
SparseMatrixDependencies,
|
12
14
|
concatDependencies,
|
13
15
|
matrixDependencies,
|
14
16
|
typedDependencies,
|
@@ -3,6 +3,7 @@
|
|
3
3
|
* DON'T MAKE CHANGES HERE
|
4
4
|
*/
|
5
5
|
import { DenseMatrixDependencies } from './dependenciesDenseMatrixClass.generated.js';
|
6
|
+
import { SparseMatrixDependencies } from './dependenciesSparseMatrixClass.generated.js';
|
6
7
|
import { concatDependencies } from './dependenciesConcat.generated.js';
|
7
8
|
import { equalScalarDependencies } from './dependenciesEqualScalar.generated.js';
|
8
9
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
@@ -10,6 +11,7 @@ import { typedDependencies } from './dependenciesTyped.generated.js';
|
|
10
11
|
import { createUnequal } from '../../factoriesAny.js';
|
11
12
|
export var unequalDependencies = {
|
12
13
|
DenseMatrixDependencies,
|
14
|
+
SparseMatrixDependencies,
|
13
15
|
concatDependencies,
|
14
16
|
equalScalarDependencies,
|
15
17
|
matrixDependencies,
|
@@ -3,12 +3,14 @@
|
|
3
3
|
* DON'T MAKE CHANGES HERE
|
4
4
|
*/
|
5
5
|
import { DenseMatrixDependencies } from './dependenciesDenseMatrixClass.generated.js';
|
6
|
+
import { SparseMatrixDependencies } from './dependenciesSparseMatrixClass.generated.js';
|
6
7
|
import { concatDependencies } from './dependenciesConcat.generated.js';
|
7
8
|
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
8
9
|
import { typedDependencies } from './dependenciesTyped.generated.js';
|
9
10
|
import { createXor } from '../../factoriesAny.js';
|
10
11
|
export var xorDependencies = {
|
11
12
|
DenseMatrixDependencies,
|
13
|
+
SparseMatrixDependencies,
|
12
14
|
concatDependencies,
|
13
15
|
matrixDependencies,
|
14
16
|
typedDependencies,
|
@@ -13,6 +13,7 @@ import { ParenthesisNodeDependencies } from './dependenciesParenthesisNode.gener
|
|
13
13
|
import { SymbolNodeDependencies } from './dependenciesSymbolNode.generated.js';
|
14
14
|
import { equalDependencies } from './dependenciesEqual.generated.js';
|
15
15
|
import { parseDependencies } from './dependenciesParse.generated.js';
|
16
|
+
import { replacerDependencies } from './dependenciesReplacer.generated.js';
|
16
17
|
import { resolveDependencies } from './dependenciesResolve.generated.js';
|
17
18
|
import { simplifyConstantDependencies } from './dependenciesSimplifyConstant.generated.js';
|
18
19
|
import { simplifyCoreDependencies } from './dependenciesSimplifyCore.generated.js';
|
@@ -30,6 +31,7 @@ export var simplifyDependencies = {
|
|
30
31
|
SymbolNodeDependencies,
|
31
32
|
equalDependencies,
|
32
33
|
parseDependencies,
|
34
|
+
replacerDependencies,
|
33
35
|
resolveDependencies,
|
34
36
|
simplifyConstantDependencies,
|
35
37
|
simplifyCoreDependencies,
|
@@ -487,6 +487,7 @@ export var divideScalar = /* #__PURE__ */createDivideScalar({
|
|
487
487
|
});
|
488
488
|
export var dotDivide = /* #__PURE__ */createDotDivide({
|
489
489
|
DenseMatrix,
|
490
|
+
SparseMatrix,
|
490
491
|
concat,
|
491
492
|
divideScalar,
|
492
493
|
equalScalar,
|
@@ -495,6 +496,7 @@ export var dotDivide = /* #__PURE__ */createDotDivide({
|
|
495
496
|
});
|
496
497
|
export var equal = /* #__PURE__ */createEqual({
|
497
498
|
DenseMatrix,
|
499
|
+
SparseMatrix,
|
498
500
|
concat,
|
499
501
|
equalScalar,
|
500
502
|
matrix,
|
@@ -519,6 +521,7 @@ export var kron = /* #__PURE__ */createKron({
|
|
519
521
|
});
|
520
522
|
export var largerEq = /* #__PURE__ */createLargerEq({
|
521
523
|
DenseMatrix,
|
524
|
+
SparseMatrix,
|
522
525
|
concat,
|
523
526
|
config,
|
524
527
|
matrix,
|
@@ -600,6 +603,7 @@ export var round = /* #__PURE__ */createRound({
|
|
600
603
|
});
|
601
604
|
export var smaller = /* #__PURE__ */createSmaller({
|
602
605
|
DenseMatrix,
|
606
|
+
SparseMatrix,
|
603
607
|
concat,
|
604
608
|
config,
|
605
609
|
matrix,
|
@@ -635,6 +639,7 @@ export var usolve = /* #__PURE__ */createUsolve({
|
|
635
639
|
});
|
636
640
|
export var xor = /* #__PURE__ */createXor({
|
637
641
|
DenseMatrix,
|
642
|
+
SparseMatrix,
|
638
643
|
concat,
|
639
644
|
matrix,
|
640
645
|
typed
|
@@ -671,6 +676,7 @@ export var bitOr = /* #__PURE__ */createBitOr({
|
|
671
676
|
});
|
672
677
|
export var bitXor = /* #__PURE__ */createBitXor({
|
673
678
|
DenseMatrix,
|
679
|
+
SparseMatrix,
|
674
680
|
concat,
|
675
681
|
matrix,
|
676
682
|
typed
|
@@ -776,6 +782,7 @@ export var Index = /* #__PURE__ */createIndexClass({
|
|
776
782
|
});
|
777
783
|
export var larger = /* #__PURE__ */createLarger({
|
778
784
|
DenseMatrix,
|
785
|
+
SparseMatrix,
|
779
786
|
concat,
|
780
787
|
config,
|
781
788
|
matrix,
|
@@ -785,6 +792,7 @@ export var log = /* #__PURE__ */createLog({
|
|
785
792
|
Complex,
|
786
793
|
config,
|
787
794
|
divideScalar,
|
795
|
+
typeOf,
|
788
796
|
typed
|
789
797
|
});
|
790
798
|
export var lsolveAll = /* #__PURE__ */createLsolveAll({
|
@@ -1039,6 +1047,7 @@ export var setPowerset = /* #__PURE__ */createSetPowerset({
|
|
1039
1047
|
});
|
1040
1048
|
export var smallerEq = /* #__PURE__ */createSmallerEq({
|
1041
1049
|
DenseMatrix,
|
1050
|
+
SparseMatrix,
|
1042
1051
|
concat,
|
1043
1052
|
config,
|
1044
1053
|
matrix,
|
@@ -1052,6 +1061,7 @@ export var sort = /* #__PURE__ */createSort({
|
|
1052
1061
|
});
|
1053
1062
|
export var unequal = /* #__PURE__ */createUnequal({
|
1054
1063
|
DenseMatrix,
|
1064
|
+
SparseMatrix,
|
1055
1065
|
concat,
|
1056
1066
|
config,
|
1057
1067
|
equalScalar,
|
@@ -1259,6 +1269,7 @@ export var deuteronMass = /* #__PURE__ */createDeuteronMass({
|
|
1259
1269
|
});
|
1260
1270
|
export var dotPow = /* #__PURE__ */createDotPow({
|
1261
1271
|
DenseMatrix,
|
1272
|
+
SparseMatrix,
|
1262
1273
|
concat,
|
1263
1274
|
equalScalar,
|
1264
1275
|
matrix,
|
@@ -1,8 +1,8 @@
|
|
1
1
|
export var ceilDocs = {
|
2
2
|
name: 'ceil',
|
3
3
|
category: 'Arithmetic',
|
4
|
-
syntax: ['ceil(x)'],
|
4
|
+
syntax: ['ceil(x)', 'ceil(x, n)', 'ceil(unit, valuelessUnit)', 'ceil(unit, n, valuelessUnit)'],
|
5
5
|
description: 'Round a value towards plus infinity. If x is complex, both real and imaginary part are rounded towards plus infinity.',
|
6
|
-
examples: ['ceil(3.2)', 'ceil(3.8)', 'ceil(-4.2)'],
|
6
|
+
examples: ['ceil(3.2)', 'ceil(3.8)', 'ceil(-4.2)', 'ceil(3.241cm, cm)', 'ceil(3.241cm, 2, cm)'],
|
7
7
|
seealso: ['floor', 'fix', 'round']
|
8
8
|
};
|
@@ -1,8 +1,8 @@
|
|
1
1
|
export var fixDocs = {
|
2
2
|
name: 'fix',
|
3
3
|
category: 'Arithmetic',
|
4
|
-
syntax: ['fix(x)'],
|
4
|
+
syntax: ['fix(x)', 'fix(x, n)', 'fix(unit, valuelessUnit)', 'fix(unit, n, valuelessUnit)'],
|
5
5
|
description: 'Round a value towards zero. If x is complex, both real and imaginary part are rounded towards zero.',
|
6
|
-
examples: ['fix(3.2)', 'fix(3.8)', 'fix(-4.2)', 'fix(-4.8)'],
|
6
|
+
examples: ['fix(3.2)', 'fix(3.8)', 'fix(-4.2)', 'fix(-4.8)', 'fix(3.241cm, cm)', 'fix(3.241cm, 2, cm)'],
|
7
7
|
seealso: ['ceil', 'floor', 'round']
|
8
8
|
};
|
@@ -1,8 +1,8 @@
|
|
1
1
|
export var floorDocs = {
|
2
2
|
name: 'floor',
|
3
3
|
category: 'Arithmetic',
|
4
|
-
syntax: ['floor(x)'],
|
4
|
+
syntax: ['floor(x)', 'floor(x, n)', 'floor(unit, valuelessUnit)', 'floor(unit, n, valuelessUnit)'],
|
5
5
|
description: 'Round a value towards minus infinity.If x is complex, both real and imaginary part are rounded towards minus infinity.',
|
6
|
-
examples: ['floor(3.2)', 'floor(3.8)', 'floor(-4.2)'],
|
6
|
+
examples: ['floor(3.2)', 'floor(3.8)', 'floor(-4.2)', 'floor(3.241cm, cm)', 'floor(3.241cm, 2, cm)'],
|
7
7
|
seealso: ['ceil', 'fix', 'round']
|
8
8
|
};
|
@@ -932,7 +932,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
932
932
|
*/
|
933
933
|
function parseAddSubtract(state) {
|
934
934
|
var node, name, fn, params;
|
935
|
-
node =
|
935
|
+
node = parseMultiplyDivideModulusPercentage(state);
|
936
936
|
var operators = {
|
937
937
|
'+': 'add',
|
938
938
|
'-': 'subtract'
|
@@ -941,7 +941,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
941
941
|
name = state.token;
|
942
942
|
fn = operators[name];
|
943
943
|
getTokenSkipNewline(state);
|
944
|
-
var rightNode =
|
944
|
+
var rightNode = parseMultiplyDivideModulusPercentage(state);
|
945
945
|
if (rightNode.isPercentage) {
|
946
946
|
params = [node, new OperatorNode('*', 'multiply', [node, rightNode])];
|
947
947
|
} else {
|
@@ -953,11 +953,11 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
953
953
|
}
|
954
954
|
|
955
955
|
/**
|
956
|
-
* multiply, divide
|
956
|
+
* multiply, divide, modulus, percentage
|
957
957
|
* @return {Node} node
|
958
958
|
* @private
|
959
959
|
*/
|
960
|
-
function
|
960
|
+
function parseMultiplyDivideModulusPercentage(state) {
|
961
961
|
var node, last, name, fn;
|
962
962
|
node = parseImplicitMultiplication(state);
|
963
963
|
last = node;
|
@@ -965,7 +965,9 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
965
965
|
'*': 'multiply',
|
966
966
|
'.*': 'dotMultiply',
|
967
967
|
'/': 'divide',
|
968
|
-
'./': 'dotDivide'
|
968
|
+
'./': 'dotDivide',
|
969
|
+
'%': 'mod',
|
970
|
+
mod: 'mod'
|
969
971
|
};
|
970
972
|
while (true) {
|
971
973
|
if (hasOwnProperty(operators, state.token)) {
|
@@ -973,8 +975,23 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
973
975
|
name = state.token;
|
974
976
|
fn = operators[name];
|
975
977
|
getTokenSkipNewline(state);
|
976
|
-
|
977
|
-
|
978
|
+
if (name === '%' && state.tokenType === TOKENTYPE.DELIMITER && state.token !== '(') {
|
979
|
+
// If the expression contains only %, then treat that as /100
|
980
|
+
if (state.token !== '' && operators[state.token]) {
|
981
|
+
var left = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
|
982
|
+
name = state.token;
|
983
|
+
fn = operators[name];
|
984
|
+
getTokenSkipNewline(state);
|
985
|
+
last = parseImplicitMultiplication(state);
|
986
|
+
node = new OperatorNode(name, fn, [left, last]);
|
987
|
+
} else {
|
988
|
+
node = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
|
989
|
+
}
|
990
|
+
// return node
|
991
|
+
} else {
|
992
|
+
last = parseImplicitMultiplication(state);
|
993
|
+
node = new OperatorNode(name, fn, [node, last]);
|
994
|
+
}
|
978
995
|
} else {
|
979
996
|
break;
|
980
997
|
}
|
@@ -1017,7 +1034,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
1017
1034
|
* @private
|
1018
1035
|
*/
|
1019
1036
|
function parseRule2(state) {
|
1020
|
-
var node =
|
1037
|
+
var node = parseUnary(state);
|
1021
1038
|
var last = node;
|
1022
1039
|
var tokenStates = [];
|
1023
1040
|
while (true) {
|
@@ -1039,7 +1056,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
1039
1056
|
// Rewind once and build the "number / number" node; the symbol will be consumed later
|
1040
1057
|
_extends(state, tokenStates.pop());
|
1041
1058
|
tokenStates.pop();
|
1042
|
-
last =
|
1059
|
+
last = parseUnary(state);
|
1043
1060
|
node = new OperatorNode('/', 'divide', [node, last]);
|
1044
1061
|
} else {
|
1045
1062
|
// Not a match, so rewind
|
@@ -1059,33 +1076,6 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
1059
1076
|
return node;
|
1060
1077
|
}
|
1061
1078
|
|
1062
|
-
/**
|
1063
|
-
* modulus and percentage
|
1064
|
-
* @return {Node} node
|
1065
|
-
* @private
|
1066
|
-
*/
|
1067
|
-
function parseModulusPercentage(state) {
|
1068
|
-
var node, name, fn, params;
|
1069
|
-
node = parseUnary(state);
|
1070
|
-
var operators = {
|
1071
|
-
'%': 'mod',
|
1072
|
-
mod: 'mod'
|
1073
|
-
};
|
1074
|
-
while (hasOwnProperty(operators, state.token)) {
|
1075
|
-
name = state.token;
|
1076
|
-
fn = operators[name];
|
1077
|
-
getTokenSkipNewline(state);
|
1078
|
-
if (name === '%' && state.tokenType === TOKENTYPE.DELIMITER && state.token !== '(') {
|
1079
|
-
// If the expression contains only %, then treat that as /100
|
1080
|
-
node = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
|
1081
|
-
} else {
|
1082
|
-
params = [node, parseUnary(state)];
|
1083
|
-
node = new OperatorNode(name, fn, params);
|
1084
|
-
}
|
1085
|
-
}
|
1086
|
-
return node;
|
1087
|
-
}
|
1088
|
-
|
1089
1079
|
/**
|
1090
1080
|
* Unary plus and minus, and logical and bitwise not
|
1091
1081
|
* @return {Node} node
|