Moofuck
Moofuck is a language designed to consist entirely of “moo”s. A “moo” ends with either a LF or CRLF. Anything else is ignored. 3 “moo”s in a row form a codon, and the 8 possible codons are mapped to the 8 Brainfuck commands as follows:
Moofuck | Brainfuck | Instruction |
---|---|---|
LF LF LF | > | Increment the data pointer |
LF LF CRLF | < | Decrement the data pointer |
LF CRLF LF | + | Increment the byte at the data pointer |
LF CRLF CRLF | - | Decrement the byte at the data pointer |
CRLF LF LF | . | Output the byte at the data pointer |
CRLF LF CRLF | , | Accept one byte of input and store its value in the byte at the data pointer |
CRLF CRLF LF | [ | If the byte at the data pointer is 0, jump the instruction pointer forward to the matching ] |
CRLF CRLF CRLF | ] | Jump the instruction pointer back to the matching [ |
All errors are thrown as new Error('moo')
.
Playground
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\r\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\r\n
moo\n
moo\n
moo\n
moo\r\n