§GRAMMAR
opComp => '=' | '<' | '>' | '<=' } '>=' | '<>'
opFactor => '*' | '/'
unaryOp => '-' | '+'
expr => concat (opComp concat)*
concat => term ('&' term)*
term => factor (opFactor factor)*
factor => prod (opProd prod)*
prod => power ('^' power)*
power => (unaryOp)* range '%'*
range => implicit (':' primary)?
implicit=> '@' primary | primary '#' | primary
primary => '(' expr ')'
=> number
=> function '(' f_args ')'
=> LAMBDA '(' f_args ')' '(' f_args ')'
=> name
=> string
=> '{' a_args '}'
=> bool
=> bool()
=> error
f_args => e (',' e)*