From fee47f6414cc3ae9a88f3ee0ed20f1d6f2d9f556 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sat, 14 Oct 2023 15:58:02 +0800 Subject: added plugin from postcss: postcss-fixes rucksack-css --- .../src/postfix_evaluator.js | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 node_modules/math-expression-evaluator/src/postfix_evaluator.js (limited to 'node_modules/math-expression-evaluator/src/postfix_evaluator.js') diff --git a/node_modules/math-expression-evaluator/src/postfix_evaluator.js b/node_modules/math-expression-evaluator/src/postfix_evaluator.js new file mode 100644 index 00000000..037aa889 --- /dev/null +++ b/node_modules/math-expression-evaluator/src/postfix_evaluator.js @@ -0,0 +1,89 @@ +var Mexp = require('./postfix.js') +Mexp.prototype.postfixEval = function (UserDefined) { + 'use strict' + UserDefined = UserDefined || {} + UserDefined.PI = Math.PI + UserDefined.E = Math.E + var stack = [], + pop1, + pop2, + pop3 + var disp = [] + var temp = '' + var arr = this.value + var bool = typeof UserDefined.n !== 'undefined' + for (var i = 0; i < arr.length; i++) { + if (arr[i].type === 1) { + stack.push({ value: arr[i].value, type: 1 }) + } else if (arr[i].type === 3) { + stack.push({ value: UserDefined[arr[i].value], type: 1 }) + } else if (arr[i].type === 0) { + if (typeof stack[stack.length - 1].type === 'undefined') { + stack[stack.length - 1].value.push(arr[i]) + } else stack[stack.length - 1].value = arr[i].value(stack[stack.length - 1].value) + } else if (arr[i].type === 7) { + if (typeof stack[stack.length - 1].type === 'undefined') { + stack[stack.length - 1].value.push(arr[i]) + } else stack[stack.length - 1].value = arr[i].value(stack[stack.length - 1].value) + } else if (arr[i].type === 8) { + var popped = [] + for (var x = 0; x < arr[i].numberOfArguments; x++) { + popped.push(stack.pop().value) + } + stack.push({ type: 1, value: arr[i].value.apply(arr[i], popped.reverse()) }) + } else if (arr[i].type === 10) { + pop1 = stack.pop() + pop2 = stack.pop() + if (typeof pop2.type === 'undefined') { + pop2.value = pop2.concat(pop1) + pop2.value.push(arr[i]) + stack.push(pop2) + } else if (typeof pop1.type === 'undefined') { + pop1.unshift(pop2) + pop1.push(arr[i]) + stack.push(pop1) + } else { + stack.push({ type: 1, value: arr[i].value(pop2.value, pop1.value) }) + } + } else if (arr[i].type === 2 || arr[i].type === 9) { + pop1 = stack.pop() + pop2 = stack.pop() + if (typeof pop2.type === 'undefined') { + pop2 = pop2.concat(pop1) + pop2.push(arr[i]) + stack.push(pop2) + } else if (typeof pop1.type === 'undefined') { + pop1.unshift(pop2) + pop1.push(arr[i]) + stack.push(pop1) + } else { + stack.push({ type: 1, value: arr[i].value(pop2.value, pop1.value) }) + } + } else if (arr[i].type === 12) { + pop1 = stack.pop() + if (typeof pop1.type !== 'undefined') { + pop1 = [pop1] + } + pop2 = stack.pop() + pop3 = stack.pop() + stack.push({ type: 1, value: arr[i].value(pop3.value, pop2.value, new Mexp(pop1)) }) + } else if (arr[i].type === 13) { + if (bool) { + stack.push({ value: UserDefined[arr[i].value], type: 3 }) + } else stack.push([arr[i]]) + } + } + if (stack.length > 1) { + throw new Mexp.Exception('Uncaught Syntax error') + } + return stack[0].value > 1000000000000000 ? 'Infinity' : parseFloat(stack[0].value.toFixed(15)) +} +Mexp.eval = function (str, tokens, obj) { + if (typeof tokens === 'undefined') { + return this.lex(str).toPostfix().postfixEval() + } else if (typeof obj === 'undefined') { + if (typeof tokens.length !== 'undefined') return this.lex(str, tokens).toPostfix().postfixEval() + else return this.lex(str).toPostfix().postfixEval(tokens) + } else return this.lex(str, tokens).toPostfix().postfixEval(obj) +} +module.exports = Mexp -- cgit v1.2.3