Roie

From Esolang
Jump to navigation Jump to search

This language's mechanics are being changed, if you are writing an interpreter you will need to change it.

Roie (pronounced "Roy") is a language created by User:Galaxtone.

Language

The program structure is based off of Befunge as that instructions are layed out on an infinite 2D map.

A pointer is created with the value of 0, Going right at the top left corner. If pointer goes out of program space, it'll wrap around.

If there are no pointers then the program will exit.

Instructions

Character Description
r
Rotate pointer clockwise.
o
Bitwise OR/NOT operation.
i
Input/Output.
e
Remove the pointer.

Operation

If a pointer is directly next to and facing an operation instruction, it's value will be NOT'd and passed out the diagonals of the opposite direction.

If two pointers are diagonally next to and both facing an operation instruction (cannot be from opposite diagonals e.g. top left and bottom right), both pointer's values will be OR'd and passed directly out opposite direction.

Note: Pointers cannot move diagonal so pointers will move the same direction going in and coming out of a operation instruction.

Input & Output

If pointer enters into an IO instruction from top or bottom then it'll do input, else if pointer enters from left or right then it'll do output.


Input is buffered in which that a character is read from input (stdin) once all 7 bits have been read.

Output is buffered in which that a character is written to output (stdout) once 7 bits have been written.


Input is blocking and nothing shall be written to output (e.g. a prompt like: "> ")

Nothing besides the 7 bits (which is written to stdout as an ascii character) shall be written (e.g. showing the binary code or adding a newline)

Graphical escape sequences for cursor movement are optional but recommended.(Incomplete list of escape sequences)