RunR

From Esolang
Jump to navigation Jump to search

RunR is an esoteric programming language by User:David.werecat that works in a two dimensional space known as "The Grid".

Instructions

Instruction Description
S The start of the program
I An input generator, when hit it reads a value from the input and stores in the current number
O An output device, when hit it writes the current number to the output
F The end of the program
^ A stack action, pushes the current number into the stack
v A stack action, pops a value from the stack and stores it in the current number
A A valutory operator, adds the current number and the next value in the stack and stores it in the current number
U A valutory operator, subtracts the current number and the next value in the stack and stores it in the current number
M A valutory operator, multiplies the current number and the next value in the stack and stores it in the current number
D A valutory operator, divides the current number and the next value in the stack and stores it in the current number
0 to 9 Predefinitions, sets the current number to the given value
% A modular selector, if the current number is zero, sets the current value to true, otherwise sets the current value to false
$ A matrix retriever, it pops a value from the matrix stack and stores it in the current number
& A matrix signaler, it pushes the current number into the matrix stack
( and ) Focusers, the unconditionally redirect moment to the direction that they are pointing
/ and \ Reflectors
- and | Walls, when hit from the side no reflection occurs
+ A multidirectional wall, causes a reflection from any direction
# A conditional gate, when the current value is false, reflection occurs
! A negatory operator, performs not on the current value
T A value field, sets the current value to true
@ A conditional jump, when the current value is true, the next instruction is skipped
< A left turntable, it rotates movement left by 90 degrees
> A right turntable, it rotates movement right by 90 degrees
~ A rest zone, it causes a brief pause in the program
* A audial trap, it causes a beep to sound

When the current number goes below 0 or above 255, it simply stops at the high value. Spaces are NOPs. Any other characters results in an error.

Examples

Hello, World!

  S9^A^A^&AO^\
/OAAv^M3^9^2^/
\^7AOO^\>$UOF
/   OA3/^
\$^&8AO\3
/OU&$^4/O
\7^8AAO\A
/&AA^6^/1
\^6^AAO\^
/&$OA3^/$
\^9AO   <

External resources