Advertisement
Guest User

BF Interpreter

a guest
Apr 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //BF interpreter
  2. /*function interpret(string)
  3. {
  4.     console.log(string)
  5.     var array = string.split("");
  6.     var cells = new Uint8Array(300);
  7.     var cellPointer = 0;
  8.  
  9.     result = "";
  10.  
  11.     for(var i = 0; i < array.length; i++) {
  12.         switch(array[i]) {
  13.             case '<':
  14.             //console.log('<')
  15.                 cellPointer--;
  16.  
  17.                 if(cellPointer < 0) { console.error("out of bounds"); }
  18.             break;
  19.  
  20.             case '>':
  21.             //console.log('.')
  22.                 cellPointer++;
  23.             break;
  24.            
  25.             case '+':
  26.             //console.log('+')
  27.                 cells[cellPointer]++;
  28.             break;
  29.            
  30.             case '-':
  31.             //console.log('-')
  32.                 cells[cellPointer]--;
  33.             break;
  34.  
  35.             case '.':
  36.             //console.log('.')
  37.                 //console.log(String.fromCharCode((cells[cellPointer]) + 1) % 255);
  38.                 var code = (cells[cellPointer] + 0) % 255;
  39.                 result += String.fromCharCode(code);
  40.             break;
  41.  
  42.             case ',':
  43.             //console.log(',')
  44.                 cells[cellPointer] = Number(prompt("Input a value:")) + 48;
  45.             break;
  46.  
  47.             case '[':
  48.             //console.log('[')
  49.                 if(cells[cellPointer] == 0) {
  50.                     while((array[i] != null) && (array[i] != undefined)) {
  51.                         i++;
  52.                         if(array[i] == ']') {
  53.                             break;
  54.                         }
  55.                     }
  56.                 }
  57.             break;
  58.  
  59.             case ']':
  60.             //console.log(']')
  61.                 if(cells[cellPointer] != 0) {
  62.                     while((array[i] != null) && (array[i] != undefined)) {
  63.                         i--;
  64.                         if(array[i] == '[') {
  65.                             break;
  66.                         }
  67.                     }
  68.                 }
  69.             break;
  70.         }
  71.     }
  72.  
  73.     console.log(result)
  74. }
  75.  
  76. //var test = ",[>+<-]>."
  77. //var test = ">++++++[<++++++++++>-]<++++++.";
  78. var test = "++++++++++>>+++[<++++++++++>-]<++>>+++[<++++++++++>-]<+++++>+++++[>+++++[<<.<.>>>-]<<<<.>>>-]";
  79. interpret(test)*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement