Игнорирование ошибок в yacc / lex - PullRequest
0 голосов
/ 31 октября 2010

Я новичок в yacc / lex и работаю над парсером, который был написан кем-то другим.Я замечаю, что при обнаружении неопределенного токена анализатор возвращает ошибку и останавливается.Есть ли простой способ заставить его полностью игнорировать строки, которые он не может проанализировать, и просто перейти к следующему?

1 Ответ

1 голос
/ 31 октября 2010

просто добавьте правило, которое выглядит как

. {
  // do nothing
}

внизу всех ваших правил, и оно будет просто игнорировать все, с чем сталкивается, что не соответствует ни одному из предыдущих правил.

Редактировать: если у вас есть несколько состояний, то универсальная система, работающая в любом состоянии, будет выглядеть так:

<*>. {

}
...