Как написать однозначную грамматику в BNF и EBNF - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу создать однозначную грамматику в формах BNF и EBNF для логических выражений, состоящих из:

• констант tt и ff,

• переменных (имя переменной начинается с заглавной буквы. После строки ни одного, одной или нескольких заглавных и строчных букв) и

• операций и или или xor, => («следует»), <=> («эквивалент»),

• скобки (), которые можно использовать для определения последовательности выполнения других операций в вычислении значения выражения.

Грамматика EBNF должна быть отформатирована так, чтобы в любом правиле экспорта не было левой рукиСимвол появляется в соответствующем выражении справа.

Грамматика такая, что и, или, xor, <=> ассоциируются слева, но => ассоциируются справа.

Моя идея дляграмматика:

 <Expr>→<Const>  <Var>
<Var>→ <Var>  <Factor>
<Const>→ <tt>│<ff>
<Factor>→<and>│or│ xor│<=>│=>
<Var>→ <Aab>│<Dck>│<Ej>│<H>│< Gi>│<L>

Я не уверен, что это правильная форма для однозначной грамматики БНФ.

Как я могу связать => вправо?

...