Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let parse = function (expr) {
  2.     let regex = /\S+/g;
  3.     let tokens = [];
  4.     let s;
  5.     while (s = regex.exec(expr)) {
  6.         tokens.push(s[0]);
  7.     }
  8.     function expression() {
  9.         let token = tokens.pop();
  10.         if (!isNaN(token)) {
  11.             return new Const(Number(token));
  12.         }
  13.         if (indexes.has(token)) {
  14.             return new Variable(token);
  15.         }
  16.         let args = [];
  17.         for (let i = 0; i < operations[token].argsCount; i++) {
  18.             args.push(expression());
  19.         }
  20.         args.reverse();
  21.         return createOperation(operations[token].Constructor, args);
  22.     }
  23.     return expression();
  24. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement