Я пытаюсь написать грамматику пропозициональной логики с целью создания парсера LL (лексический анализ).Правильность грамматики для логики высказываний
Я попробовал следующую грамматику:
F = F and F
F = F or F
F = F => F
F = F <=> F
F = not F
F = (F)
D = a
, но я обнаружил, что она неоднозначна. Я попробовал следующее, чтобы устранить эту двусмысленность:
F = F and A
F = A
A = F or B
A = B
B = F => C
B = C
C = F <=> C
C=D
D = not F
D = (F)
D = a
Правильно ли эта грамматика? Удалось ли мне устранить двусмысленность?
Незначительный приговор о терминологии - прошло немного времени с тех пор, как я изучил компиляторы, но если я правильно помню, лексический анализ обычно относится прежде всего к этапу токенизации (не анализируя грамматику). – EJoshuaS
токенизация? nooooooooo –
Возможно, я ошибаюсь в этот момент, поскольку я сказал, что прошло некоторое время с тех пор, как я изучил этот материал. – EJoshuaS