AST Nodes
Grammar for regular expression supported by lemonex.expr ::= and_expr and_expr ::= or_expr (expr)* or_expr ::= unary_expr ('|' expr)* unary_expr ::= inner_expr '*' unary_expr ::= inner_expr '+' unary_expr ::= inner_expr '?' unary_expr ::= inner_expr inner_expr ::= '(' expr ')' inner_expr ::= '[' range_expr+ ']' inner_expr ::= primary_expr range_expr ::= CHAR - CHAR range_expr ::= primary_expr primary_expr ::= DOT primary_expr ::= BSLASH CHAR primary_expr ::= CHAR