Add Reverse syntax hilighting

Change-Id: I39aa07828e14139c0d70de5b93955c23efcb9d33
Move maximum expression level to a variable

Change-Id: Id7fac4621bba2a08da75ab4d27ce0e259d10cca7
Change alternative structure

This defines the alternatives in the rules instead of the group. This makes it
easier to override with new syntax and allows automatic computation of
expression “up” rules without all the weird special cases.

Change-Id: I09a5793e01620b6eb6a274bc21310b0053e00761