{"version":3,"sources":["jsdelivr-header.js","/npm/@treker7/brainfuck-interpreter@1.0.2/brainfuckInterpreter.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,SAAW,QAAQ,gCAEvB,MAAM,SAAW,IACX,QAAU,GAChB,IAAI,SAAW,EAGX,KAAO,WACP,SAAW,EACX,QAAQ,OAAS,SACjB,QAAQ,KAAK,EACjB,EAQA,SAAS,QAAQ,GACb,IAAI,EAAe,kCAEnB,MAAM,EAAa,EAAa,OAChC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,IAAK,CAGjC,OAFoB,EAAa,OAAO,IAGpC,IAAK,IACD,GAAgB,SAChB,MACJ,IAAK,IACD,GAAgB,SAChB,MACJ,IAAK,IACD,GAAgB,iBAChB,MACJ,IAAK,IACD,GAAgB,iBAChB,MACJ,IAAK,IACD,GAAgB,8CAChB,MACJ,IAAK,IACD,GAAgB,gDAChB,MACJ,IAAK,IACD,GAAgB,oBAChB,MACJ,IAAK,IACD,GAAgB,IAI5B,CAIA,OAFA,GAAgB,kCAGpB,CAOA,IAAI,UAAY,SAAS,cACrB,OACA,IAAI,OAAS,QAAQ,cACrB,KAAK,OACT,EAEA,OAAO,QAAQ,UAAY","file":"/npm/@treker7/brainfuck-interpreter@1.0.2/brainfuckInterpreter.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@treker7/brainfuck-interpreter@1.0.2/brainfuckInterpreter.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var readline = require(\"./node_modules/readline-sync\");\r\n\r\nconst MEM_SIZE = 30000;\r\nconst mem_arr = [];\r\nvar data_ptr = 0;\r\n\r\n// initialize the data pointer and memory array\r\nvar init = function() {\r\n    data_ptr = 0;\r\n    mem_arr.length = MEM_SIZE;\r\n    mem_arr.fill(0);\r\n}\r\n\r\n/**\r\n * A function to compile BrainFuck Source Code into JavaScript\r\n * \r\n * @param {string} bfSourceCode - the brainfuck source code to be compiled\r\n * @returns {string} - the compiled JavaScript source code\r\n */\r\nfunction compile(bfSourceCode) {\r\n    var jsSourceCode = '(function(ptr, arr, readline) {';\r\n\r\n    const codeLength = bfSourceCode.length;\r\n    for (var i = 0; i < codeLength; i++) {\r\n        const currBfInstr = bfSourceCode.charAt(i);\r\n\r\n        switch (currBfInstr) {\r\n            case '>':\r\n                jsSourceCode += '++ptr;';\r\n                break;\r\n            case '<':\r\n                jsSourceCode += '--ptr;';\r\n                break;\r\n            case '+':\r\n                jsSourceCode += 'arr[ptr] += 1;';\r\n                break;\r\n            case '-':\r\n                jsSourceCode += 'arr[ptr] -= 1;';\r\n                break;\r\n            case '.':\r\n                jsSourceCode += 'console.log(String.fromCharCode(arr[ptr]));';\r\n                break;\r\n            case ',':\r\n                jsSourceCode += 'arr[ptr] = readline.question().charCodeAt(0);';\r\n                break;\r\n            case '[':\r\n                jsSourceCode += 'while(arr[ptr]) {';\r\n                break;\r\n            case ']':\r\n                jsSourceCode += '}';\r\n                break;\r\n            default: /* do nothing */\r\n        }\r\n    }\r\n\r\n    jsSourceCode += '}(data_ptr, mem_arr, readline));'\r\n\r\n    return jsSourceCode;\r\n};\r\n\r\n/**\r\n * A function to interpret BrainFuck Source Code\r\n * \r\n * @param {string} bfSourceCode - the brainfuck source code to be interpreted\r\n */\r\nvar interpret = function(bfSourceCode) {\r\n    init();\r\n    var jsCode = compile(bfSourceCode);\r\n    eval(jsCode);\r\n};\r\n\r\nmodule.exports.interpret = interpret;"]}