main: entry(s) ... entry: predicate '=' expressionlist expressionlist: expression | expression expressionlist bla bla blah much complicated stuff here