Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let parse = function (expr) {
- let regex = /\S+/g;
- let tokens = [];
- let s;
- while (s = regex.exec(expr)) {
- tokens.push(s[0]);
- }
- function expression() {
- let token = tokens.pop();
- if (!isNaN(token)) {
- return new Const(Number(token));
- }
- if (indexes.has(token)) {
- return new Variable(token);
- }
- let args = [];
- for (let i = 0; i < operations[token].argsCount; i++) {
- args.push(expression());
- }
- args.reverse();
- return createOperation(operations[token].Constructor, args);
- }
- return expression();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement