Grawlix

This is the horrible Grawlix Programming Language - created by User:DMC with the intent of introducing some enhancements that still uphold the spirit of brainfuck. grawlix – Cartoonist's term for random symbols and punctuation used to represent swearing.

Description

 * 8 bit memory cells (or other bit amounts)
 * Everything initialized to zero
 * Cell values rollover
 * Program memory infinite
 * Data memory infinite
 * Stack memory infinite
 * T - top of stack
 * P - data pointer
 * (P) - byte value at P
 * P < 0 is an error and should halt the program
 * Pop when T = 0 is an error and should halt the program
 * A program with only > < + -, . [ ] is Brainfuck, not Grawlix
 * The Grawlix interpreter can be used as a Brainfuck interpreter
 * Turing complete: yes, because Brainfuck is Turing complete

Enhancements to brainfuck

 * Stack operations
 * Decimal I/O
 * Another loop structure
 * Multiply / divide by two
 * Functions

Functions

 * Function definition '{  code   }' can be anywhere in the program listing
 * Function definition in program listing '{' is skipped to command after matching '}'
 * Only function call '@' runs function code
 * To call a function: push function number onto stack, call function with '@'
 * 256 functions allowed

Program parsing

 * Bracket integrity check
 * Parenthesis integrity check
 * Brace integrity check
 * Tabulate open/close brackets
 * Tabulate open/close parenthesis
 * Tabulate function locations

Hello World!\n
+|||+|||.>+++|||+||+.+++++++..+++.>+||| ||.>+|||+++|||-.<<.+++.--.. >+.>>+||+|.

Fibonacci
correct until an 8-bit rollover occurs

>>+||+|<+<=>[>.<=:<[>+<-];>]!

External resources

 * Grawlix Programming Language – Interpreter written in Python 3