Byte {Number} ::= ['0'..'255'] Statement ::= ';' Instruction | '+' Instruction Statement | '-' Instruction Statement | ':' Number Instruction ::= Number | Number ValArgument | Number VarArgument ValArgument ::= '.' Number VarArgument ::= ',' Number Instructions: 0 Halt 1 Restart 2 Unconditional jump 3 Conditional jump (true) 4 Conditional jump (false) 5 Open variable for reading/writing 6 Set open variable value 7 Set array begin 8 Set array length 9 Open file for reading 10 Open file for writing 11 Input char 12 Output char 13 Read char from file 14 Write char to file