@enigmaoffline/node-exp-solver
Version:
Mathematical expression solver / Reverse Polish Notation calculator for NodeJS
50 lines • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Aux = void 0;
var Aux = /** @class */ (function () {
function Aux() {
}
Aux.precMap = {
'+': 1,
'-': 1,
'*': 2,
'/': 2,
'^': 3,
};
Aux.assoMap = {
'+': 0,
'-': 0,
'*': 0,
'/': 0,
'^': 1,
};
Aux.funcMap = {
'sin': 0,
'cos': 0,
'tan': 0,
'max': 0,
'min': 0,
'ln': 0,
'log': 0,
};
Aux.isOP = function (op) { return ['+', '-', '*', '/', '^'].indexOf(op) !== -1; };
Aux.isLA = function (op) { return ['+', '-', '*', '/'].indexOf(op) !== -1; };
Aux.isPA = function (op) { return op === '(' || op === ')'; };
Aux.validate = function (tokens) {
var stack = [];
for (var i = 0; i < tokens.length; ++i) {
var token = tokens[i];
if (token === '(')
stack.push('(');
if (token === ')') {
if (stack.length === 0)
return false;
stack.pop();
}
}
return stack.length === 0;
};
return Aux;
}());
exports.Aux = Aux;
//# sourceMappingURL=aux.js.map