Made some big changes to the grammar. Completely changed the EVBegins and EVEnds rules, and also added in a new syntax rule that is semantically equivalent to EVAfter.

Original syntax:

  ON ( 5 mins AFTER ( AFTER ( Flow_rate() > 90 ) BEGINS CHECKING EVERY 1 min))

New syntax:

  ON (( CHECK EVERY 1 min AND WHEN ( Flow_rate() > 90 ) BECOMES TRUE) WAIT 5 mins THEN)

This grammar change also permits constructions without the WAIT Interval THEN expression.
It is also worth noting that the Eexpr WAIT Interval THEN construction is semantically
equivalent to Interval AFTER Eexpr rule.