fix for error messages in parser

These were due to two things:  (a) not throwing an exception after setting _pass=false and (b) not having a rule to match expressions.  Fix (b) required updating the ast and generator to deal with statements consisting of expressions.  They're illegal and only throw errors, so there's no change to the doc required.