E =
   u E                    "<E -> u E>" |
   E p                    "<E -> E p>" |
   E b E                  "<E -> E b E>" |
   "(" E ")"              "<E -> ( E ) >" |
   E "[" E "]"            "<E -> E[E]>" |
   E "(" [E ("," E)*] ")" "<E -> E(E, ..., E)>" |
   x                      "<E -> x>",
E
