Derpcode/implementation.js
Jump to navigation
Jump to search
An implementation of Derpcode written in node js by User:Conor O'Brien. Make sure you npm install readwrite
before running.
Implementation
const rw = require("readwrite"); const derp = (herp, input) => { herp = herp.replace(/(\s|^)herp a-derp\.(?=\s|$)/g, "$1!").split(/\s/); let tape = [0, 0, 0, 0, 0, 0, 0, 0]; let ptr = 0; let effs = new Map([ ["herp", () => tape[ptr] = +!(tape[ptr])], ["derp", () => (ptr++, typeof tape[ptr + 7] === "undefined" && tape.push(0))], ["a-derp", () => ptr--] ]); let stdout = () => rw.log(String.fromCharCode(parseInt(tape.slice(ptr, ptr + 8).join(""), 2))); let stdin = () => tape.splice( ptr, 8, ...([...("00000000" + input.shift() .charCodeAt() .toString(2) ).slice(-8)]).map(Number) ); for(let c of herp){ if(c === ".") stdout(); let r = c; let i; if(/^[.?]/.test(c)){ r = c.slice(1); i = c[0]; } else if(/[.?]$/.test(c)){ r = c.slice(0, -1); i = c.slice(-1); } if(!effs.has(r)) continue; effs.get(r)(); if(i === ".") stdout(); } } let file = process.argv[2]; let input = process.argv.slice(3).join(" "); derp( rw.read(file), [...input] );
Running
node Derpcode.js <filename> <input>