><> (Fish) Interpreter by Mousetail

Cursor at [0,0], 0 bytes/0 chars.

Stack:

Cursor Position:

Input Queue:

Register:

Output:

Cheat Sheet

Movement

<>^v Change Cursor Direction

/\|-# Mirrors

x Random Direction

! Skip the next instruction, moving 2 spaces instead of 1

? Pop 1 value of the stack, if it's 0 skip the next instruction and move forward 2 spaces.

. Pop 2 values of the stack then move to that position.

Literals

0123456789 Push the number (0-9)

abcdef Push the hexadecimal (10-15)

+-*% Pop 2 values of the stack then perform the given operation.

, Divide the top 2 values of the stack.

= Pop 2 values of the stack, push 1 if they are equal and 0 otherwise

)( Greater than, less than. Push 1 or 0 to the stack.

'" Enable or disable string parsing mode. In string parsing mode all characters are pushed to the stack instead of executed.

Stack

: Duplicate the top item on the stack

$ Move the top element of the stack back 1

~ Delete the top element of the stack

@ Move the top elemnt of the stack back 2

{} Shifts the entire stack left or right

r Reverse the stack

l Push the length of the stack to the stack

[ Pop N from the stack, then create a new stack containing the top N elements of the old stack.

] Go back to the previous stack, adding all eleemnts of the top stack back to it.

IO

o output a character

n output a number in decimal

i read a character

Other

& If the register is empty, pop the top element of the stack and move it to the register. Else push the value of the register to the stack.

g Pop the top 2 elements then push the code value at that position

p Pop a postion and a value from the stack, then write the character to that position in the code.

; Halt