don't raise Expected and ParseError directly