问题
I'm new to yacc/lex and I'm working on a parser that was written by someone else. I notice that when an undefined token is found, the parser returns an error and stops. Is there a simple way to just make it ignore completely lines that it cannot parse and just move on to the next one?
回答1:
just add a rule that looks like
. {
// do nothing
}
at the bottom of all of your rules, and it will just ignore everything it comes across that doesn't fit any of the previous rules.
Edit: if you have multiple states, then a catch-all that works in any state would then look like:
<*>. {
}
来源:https://stackoverflow.com/questions/4063455/ignoring-errors-in-yacc-lex