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