O_o is a brainfuck derivative by User:BoundedBeans that formats its code like elongated eyebrow raise emojis. It is mostly equivalent to brainfuck, except that it has a stack for each tape cell.
> ⇒ 000< ⇒ 001+ ⇒ 010- ⇒ 011. ⇒ 100, ⇒ 101[ ⇒ 110] ⇒ 111O and add one extra symbol._.o and add one extra symbol.Now you have a line of O_o, representing 2 brainf*** commands and two extra bits. Those extra bits are the value of *I.
Also, on the left half of capital O's, there can be a digit 0 to make no commands, allowing *I to be executed on an odd instruction, and allowing odd numbers of instructions in a program. This will use a different unary format on the right, where it will be a 5-bit number in unary containing the command and *I. This is because the instructions are split between the two sides in weird ways.
So what is *I? Well, it's an extra command. It's represented by two bits.
O_o has a stack for every cell, and *I manipulates it.
Here are the commands of *I:
| Binary code | Stack operation |
|---|---|
00
|
Nothing |
01
|
Push the value of the current cell to the current stack |
10
|
Pop into the cell |
11
|
Pop the top element off of the currently pointed stack, and push it to the stack of the cell to the right of the pointer. |
The stack is treated as 0 if popped when there is nothing; an error should not be thrown. This can be used to pop until the stack is empty by using the not 0 loop.
OOOOOOOOOOOO_ooooooooo OOOOOOOOOO_ooooo 0_ooooooooooooooooooooooooooooo
O_ooooooooo OOOOO_ooooooooo OOOOO_ooooooooo OOOOO_ooooooooo OOOOOO_ooooooooo OOOOOOO_ooooo OOOOO_ooooooooo OOOOO_ooooooooo OOOOO_ooooooooo OOOOO_ooooooooo OOOOO_o OOOOOOOOOOOOOOO_ooooo OOOOOOOOO_o O_ooooooooo O_ooooooooooooo OOOOOOOOOOOOO_ooooooooo OOOOOOOOOOOOOOO_ooooooooo OOOOO_o OOOOO_ooooooooo O_ooooooooo OOOOO_ooooooooo OOOOOOOOOOOOO_o OOOOOOOOOOOOO_ooooooooooooo O_ooooooooo OOOOO_ooooooooo OOO_ooooo OOOOO_ooooooooo OOOOO_o OOOOOOOOOOOOOOO_ooooo OOOO_ooooooooooooo O_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOOOO_o OOOOOOO_o OOOOO_ooooooooo OOOOOO_o OOOOOOOOO_ooooooooo OOOOO_ooooooooo OOOOOOOOO_o OOOOOOOO_o OOO_ooooo OOOOOO_ooooooooo OO_ooooooooo OOOOO_o OOOOOO_ooooooooooooo O_o OOOOOOOOOOOOOOO_ooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOOOO_o OO_o OOOOO_ooooooooo OOOOOO_o OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOO_ooooooooooooo OOOOOOOO_o O_ooooooooo OOOOOOOOO_o OOOOOO_o