Hexlr7
Jump to navigation
Jump to search
Hexlr7 is a terrible HQ9+ copy made by User:Cortex on 12/18/2018, designed to be easy (but not too easy) to implement. Implementing it might be a good thing to do when bored and with a lot of free time.
Interpreter, also by Cortex
var Hexlr7 = function(code) {
// H: Print "Hello, World!"
// E: Print the link to the Esolangs wiki article on this programming language
// X: Print the source code for a minified interpreter that does not support the X command.
// L: Print the name of the language the interpreter was written in.
// R: Make the interpreter throw an error.
// 7: Do the following command 7 times. Only works with up to 2 sevens; 77HH would print "Hello, World!" 50 times.
for (var i = 0; i < code.length+1; i++) {
switch (code.charAt(i)) {
case "H":
if (code.charAt(i-1) !== "7") {
println("Hello, World!");
}
break;
case "E":
if (code.charAt(i-1) !== "7") {
println("https://esolangs.org/wiki/Hexlr7");
}
break;
case "X":
if (code.charAt(i-1) !== "7") {
println("var Hexlr7=function(code){for(var i=0;i<code.length+1;i++){switch(code.charAt(i)){case \"H\":if(code.charAt(i-1)!==\"7\"){println(\"Hello, World!\");}break;case \"E\":if(code.charAt(i-1)!==\"7\"){println(\"http://esolangs.org/wiki/Hexlr7\");}break;case \"L\":if(code.charAt(i-1)!==\"7\"){println(\"JavaScript with ProcessingJS\");}break;case \"R\":if(code.charAt(i-1)!==\"7\"){var a;println(a.error);}break;case \"7\":if(code.charAt(i-1)===\"7\"){}else if(code.charAt(i+1)===\"7\"){for(var j=0;j<49;j++){Hexlr7(code.charAt(i+2));}}else{for(var j=0;j<7;j++){Hexlr7(code.charAt(i+1));}}break;}}};");
}
break;
case "L":
if (code.charAt(i-1) !== "7") {
println("JavaScript with ProcessingJS");
}
break;
case "R":
if (code.charAt(i-1) !== "7") {
var a;
println(a.error);
}
break;
case "7" /* if you use 7 as an actual number it doesnt work */:
if (code.charAt(i-1) === "7") {
} else if (code.charAt(i+1) === "7") {
for (var j = 0; j < 49; j++) {
Hexlr7(code.charAt(i+2));
}
} else {
for (var j = 0; j < 7; j++) {
Hexlr7(code.charAt(i+1));
}
}
break;
}
}
};