Прекратить действие в бизоне - PullRequest
0 голосов
/ 01 июля 2019

Какое ключевое слово, чтобы прекратить действие в Bison, но все же продолжить анализ? Допустим, у меня есть эта грамматика: Правило: что-то {если (что-то) прекращает действие; код} что-то {} ...

Он должен просто выйти из текущего действия и продолжить, просто вернуть?

1 Ответ

1 голос
/ 01 июля 2019

Такого ключевого слова не существует, поэтому лучше всего просто перевернуть условие:

nonterm: pattern { if (!condition) {
                       /* Do what needs to be done */
                   }
                 }

Не не return из семантического действия. В некоторых реализациях вам может не понравиться break, но я бы не стал его пробовать. Даже если кажется, что он работает, он не переносим и может выйти из строя в будущем или на другой платформе.

Если правило имеет семантическое значение, убедитесь, что вы установили $$ для чего-либо, так как оно может быть использовано.

...