Cactus example

.blank = [" \t\f\b\v\r\n"]
.number :: Int = ['0'..'9']+

expr :: Expr
  = ..       ::= term
  | Add..    ::= expr '+' term
  | Sub..    ::= expr '-' term ;

term
  = ..       ::= factor
  | Mul..    ::= term '*' factor
  | Div..    ::= term '/' factor ;

factor
  = Number.. ::= number
  | ..       ::= '(' expr ')'