Принять yacc-правило из действия - PullRequest
0 голосов
/ 17 марта 2010

Можно ли принять бизон-правило из действия в сочетании с активной директивой% glr-parser?

Примерно так:

aRule: 'a' 'b' 'c' {/ * Выполните некоторые вычисления и в зависимости от тех, вы разрешите / запретите это правило, и продолжите анализ, не возвращаясь из функции yyparse. * /};

1 Ответ

1 голос
/ 15 апреля 2010

AFAICS: нет способа динамически включать или отключать некоторые части грамматики. В качестве хака вы можете добавить специальные токены в качестве охранников в ветки и позволить токенайзеру выдавать эти дополнительные токены, когда выполняется какое-то условие (иногда я использую дополнительный токен FORCE_ERROR для принудительного разбора ошибок). И да, это безобразно.

...