!!brainfeed++

From Esolang
Jump to navigation Jump to search

!!brainfeed++ is an extension of !!brainfeed designed by User:BoundedBeans.

It has an extra three queues for data storage.

New commands

 {body}    - Loop body as long as the current cell is not zero.
 "command" - Execute an extension command based on the text in the quotes
 a         - Enqueue the currently pointed cell to queue 1
 A         - Dequeue a cell from queue 1, set the current cell to it.
 b         - Enqueue the currently pointed cell to queue 2
 B         - Dequeue a cell from queue 2, set the current cell to it.
 c         - Enqueue the currently pointed cell to queue 3
 C         - Dequeue a cell from queue 3, set the current cell to it.

Extension commands

Extension commands are implementation-dependent, and don't have to follow any format inside the quotes. That said, here's an official format for them:

"[extension author]@[extension group]->[extension command name] [argument 1] [argument 2] [etc...]"

Extension author, group, and command name may have periods to signify some sort of hierarchy. The arguments may be surrounded by single quotes to include spaces in them. If single-quoted, a backslash must escape a backslash or single quote, and \Q represents a double quote. \X[two hexadecimal digits] can encode an arbitrary byte, and these bytes should be UTF-8 in nature (so 8-bit extended ASCII should take up two bytes, and multibyte sequences can work like UTF-8 to make further characters).

For example, a turtle-graphics command might be:

"BoundedBeans@TurtleGraphics->MoveForward pen=down color=#4EAF55"