Enum brainfuck::Instruction
[−]
[src]
pub enum Instruction { IncPtr, DecPtr, IncVal, DecVal, Output, Input, SkipForward(usize), SkipBackward(usize), }
An executable instruction in the language.
There are only 8 instructions in the brainfuck language. A pair for
incrementing and decrementing the pointer, and values on the tape.
Two instructions for reading and writing a char from STDIN
and
STDOUT
respectivly. And finally the only control flow
instructions for skipping ahead and skipping back. More information
on control flow below.
Control Flow
Control flow in brainfuck is achieved by skipping forward, and
backward. The [
instruction skips past it's matching ]
instruction, and the ]
instruction skips back to it's
matching [
instruction. Matching brackets follow the intuitive
notion, for example [+[+]+]
has to pairs of matching brackets.
Skips are conditional based on the value of the cell behind the
pointer. A forward skip only happens when the value of the cell
is 0, and the backward skip only happens when the value of the
cell is not 0. This allows for a relatively simple syntax for
decrementing iteration. For example +++[- > operate on cell 2 < ]>.
is the boilerplate for a loop that operates 3 times.
Variants
IncPtr | Increment the pointer moving it up on the tape. |
DecPtr | Decrement the pointer moving it down on the tape. |
IncVal | Increment the value at the pointer on the tape. |
DecVal | Decrement the value at the pointer on the tape. |
Output | Write the value at the pointer as a |
Input | Read from |
SkipForward | Skip forward if the value at the pointer is |
SkipBackward | Skip backward if the value at the pointer is not |