A rust implementation of https://craftinginterpreters.com/
expression = equality ;
equality = comparison ( ( "!=" | "==" ) comparison )* ;
comparison = addition ( ( ">" | ">=" | "<" | "<=" ) addition )* ;
addition = multiplication ( ( "-" | "+" ) multiplication )* ;
multiplication = unary ( ( "/" | "*" ) unary )* ;
unary = ( "!" | "-" ) unary | primary ;
primary = NUMBER | STRING | "true" | "false" | "nil"
| "(" expression ")" ;