literal -> ".*"
number -> [0-9]+
identifier -> [a-zA-Z]+
operator -> = | < | > | * | / | + | - | <= | >= | == | !=
print -> print
program -> blocks
blocks ->
block blocks
| block
block ->
{ blocks }
{ statements }
statements ->
statement statements
| statement
statement ->
identifier = expression
| print expression
| # expression
| struct block
expression ->
( expression operator expression )
| number
| literal
| identifier