The syntax of brainease code is similar to batch, because each instruction is in his line of code.
instruction 1 instruction 2 instruction 3 # and so on...
Some instructions may requires his owns inner code, like
if. In this case, you
can indent them with
2 spaces. No more, no less.
instruction 1 # This instruction belongs to the instruction 1 above. # And may, or may not be executed instruction 2 # And this to the instruction 2. instruction 3 # This still belongs to the instruction 1 instruction 4 # And this one is outside the instruction 1 indentation scope. instruction 5
Brainease syntactically identifies
values by the following
*@is a raw pointer. It starts at
0and can be incremented or decremented by the
*<number>represents a memory cell. Ex:
*2refers to the cell at the index 2.
'<char>'is a character. It supports the
\escape sequence and internally is converted to a
numberby getting his ASCII code. Ex:
'a'is converted to
97, if needed.
<number>is a raw number. Depending on the instruction, it can be used to increment a value, decrement or be a condition.
There are plenty examples at the examples folder. But this simpler one may help you to get started:
# This is a comment # Empty lines are ignored # This is also a multi-line comment # Increments 123 in the current cell inc 123 in *2 # If the cell 2 is bigger or equal to 120, then print the char 'H' to stdout. if *2 >= 120 print 'H' # This will move the pointer to the right until the pointer # reaches a cell with a value of 0 loop *@ goto right # this is a instruction inc 123 in *2 # 123 is a raw number and *2 is a memory index
There is a plan to add support for VSCode with an official extension. But until then,
you can enable syntax highlighting for your favorite IDE by aliasing all
.brain files to
R Programming Language.
Here's an example of brainease code highlighted with
print 'A' inc 1 in *2 # Multi # Line # comment loop *@ if *2 >= 17 # Some comment exit # Pointer save 'a' at *@ goto left by 3