Guest User

BF to Javascript convert and interpreter

a guest
Aug 11th, 2016
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function bf(code) {
  2.     let _bf = code.replace(/[^+\-<>\[\].]/g, "").replace(/([+\-<>])\1{0,255}/g, g => g[0] + String.fromCharCode(g.length));
  3.     let js = "var s='';var t={};var p=0;for(var i=0;i<30000;i++)t[i]=0;";
  4.     let ci = 0;
  5.     for (let i = 0; i < _bf.length; i++) {
  6.         switch (_bf[i]) {
  7.             case "+":
  8.             case "-":
  9.                 js += "t[p]" + _bf[i] + "=" + _bf.charCodeAt(++i) + ";";
  10.                 break;
  11.             case ">":
  12.                 js += "p+=" + _bf.charCodeAt(++i) + ";";
  13.                 break;
  14.             case "<":
  15.                 js += "p-=" + _bf.charCodeAt(++i) + ";";
  16.                 break;
  17.             case "[":
  18.                 js += "for(var c" + ci + "=0;c" + ci + "<1024;c" + ci + "++){";
  19.                 js += "if(!t[p])break;";
  20.                 ci++;
  21.                 break;
  22.             case "]":
  23.                 ci--;
  24.                 js += "}";
  25.                 break;
  26.             case ".":
  27.                 js += "s+=String.fromCharCode(t[p]);";
  28.                 break;
  29.         }
  30.     }
  31.     js += "return s;";
  32.     return new Function(js)();
  33. }
Advertisement
Add Comment
Please, Sign In to add comment