returns with non-zero exit code on parse error