Advertisement
Guest User

Untitled

a guest
Apr 21st, 2015
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var parse = function (x) {
  2.     var temp = [];
  3.     var pushUn = function (a) {
  4.         temp.push(a(temp.pop()));
  5.     };
  6.     function isNumber(n) {
  7.         return !isNaN(parseFloat(n)) && isFinite(n);
  8.     }
  9.     var pushBi = function (a) {
  10.         var r = temp.pop();
  11.         var l = temp.pop();
  12.         temp.push(a(l, r));
  13.     };
  14.     var tokens = x.split(' ');
  15.     for (var i = 0; i < tokens.length; i++) {
  16.         if(tokens[i] in vars){
  17.             temp.push(variable(tokens[i]));
  18.         }
  19.         else if(tokens[i] in binOps){
  20.             pushBi(binOps[tokens[i]]);
  21.         }
  22.         else if(tokens[i] in unOps){
  23.             pushUn(unOps[tokens[i]]);
  24.         }
  25.         else if(isNumber(tokens[i])){
  26.             temp.push(cnst(parseInt(tokens[i])));
  27.         }
  28.     }
  29.     return temp.pop();
  30. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement