Проверка наличия множества в YACC - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь написать правила в YA CC (.y файл). Я хочу убедиться, что определенные токены встречаются вместе или не появляются вообще.

Я пытался написать это:

rule_pilot : NULL | rule_pilot rule
rule : A | B | C | D | E | F

Некоторые допустимые строки:

  • A BCD
  • A C E DB
  • F CD A B
  • AE
  • FA
  • EFA

Как показано в примере допустимых строк, я хочу получить все B, C и D входят в строку или ни один из них не входит в строку . Но rule_pilot не может этого гарантировать. Он также будет принимать строки, такие как AB C, B et c.

Как мне написать rule_pilot, чтобы он удовлетворял вышеупомянутым критериям?

...