Как преобразовать простой список в грамматике BNF в грамматику EBNF без использования фигурных скобок - PullRequest
0 голосов
/ 07 октября 2019

Это грамматика в форме BNF, и цель состоит в том, чтобы преобразовать ее в грамматику EBNF.

<factor_list> = <factor> | <factor>;<factor_list>
<factor> = A|B|C

Книга преобразует ее так, что имеет смысл

<factor_list> = <factor>{;<factor>}
<factor> = A|B|C

Я пытался придумать разные решения. Основная идея заключается в предоставлении дополнительного рекурсивного подхода с метасимволами '[' ']' и предоставлении базового варианта с другой стороной. Вот они:

1-Это тоже решение, если не почему?

<factor_list> = <factor>[;<factorlist>]
<factor> = A|B|C

2-Также это решение, если не почему?

<factor_list> = <factor>[;(<factor> | <factorlist>)]
<factor> = A|B|C

Насколько я понимаю, все эти решения должны работать для этой проблемы. Если они это делают, есть ли причина выбирать одно из другого?

...