a parser pattern like:
fred
: ( digits+ | WITH CURRENT ( DATE | TIMESTAMP ) )?
introduces a set of if/else blocks with "pass" method called, which doesn't exist. Haven't dug into code to figure out what this was intended to do - just deleting it (assuming it was a "continue" equiv) appears not to be the right fix.