very shitty esolang where self-modifying code is mandatory
programs | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md | ||
rustfmt.toml |
Stupid Worm Languag
- program space is an arbitrary sized grid of bytes
- the worm starts as just a head
@
- as it passes over commands, they get moved to the back of the worm
- values get pushed to stack (eaten) when passed over, worm body length increases
- the program gets rearranged every time the worm executes it
commands
+- pop 2 values, push sum/difference (uses the order they are popped, so `0-` negates the top of the stack)
~ logical not (0 becomes 1, nonzero becomes 0)
><^v change direction
0..9 push number to stack
/\ pop stack, reflect to the side if not zero
? reads one byte of input
= duplicate top of stack
! pop and write output as ascii char
" pop and write output as number
_ push a space character
all other characters are pushed as-is