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:

MoofuckBrainfuckInstruction
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

Brainfuck
Moofuck
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
Input
Output