Symbols
Jump to navigation
Jump to search
- The title of this article is not correct because of technical limitations. The correct title is actually ():;+-#?!.
():;+-#?! is a small esoteric language created by User:Lucasieks in November of 2013 with only 9 instructions.
Instruction Set
| Instruction | Action |
|---|---|
( |
Start an infinite non-nestable loop |
) |
End the infinite non-nestable loop |
: |
Print the character to the right of the IP |
; |
Read a character from STDIN, then overwrite the character 2 characters to the right of the IP |
+ |
Increment the character to the right of the IP |
- |
Decrement the character to the right of the IP |
# |
Read a character from STDIN, then process it as an instruction |
? |
End the program if the character to the left of the IP is a valid instruction |
! |
End the program |
Examples
Hello World
:H:e:l:l:o:,: :w:o:r:l:d:!
Cat
(;: )
Interpreters
Javascript
The interpreter takes in a program as input then outputs the program output.
function Symbols(P){
P = P.split('');
let o = '';
for(let i = 0; i < P.length; i++){
switch(P[i]){
case ')': do{ i--; }while(P[i] != '('); break;
case ':': o += P[i+1]; break;
case ';': P[i] = prompt('Input Char')[0]; break;
case '+': P[i+1] = String.fromCharCode(P[i+1].charCodeAt()+1); break;
case '-': P[i+1] = String.fromCharCode(P[i+1].charCodeAt()-1); break;
case '#':
do{
let h = prompt('Input Char');
switch(h){
case ')': do{i--;}while(P[i] != '('); break;
case ':': o += P[i+1]; break;
case ';': P[i] = prompt('Input Char')[0]; break;
case '+': P[i+1] = String.fromCharCode(P[i+1].charCodeAt()+1); break;
case '-': P[i+1] = String.fromCharCode(P[i+1].charCodeAt()-1); break;
case '?': if('():;+-#?!'.includes(P[i-1])){i = P.length;} break;
case '!': i = P.length;
}
}while(h == '#');
break;
case '?': if('():;+-#?!'.includes(P[i-1])){i = P.length;} break;
case '!': i = P.length;
}
}
return o;
}