У меня есть три грамматики:
A -> aB | b | CBB
B -> aB | ba | aBb
C -> aaA | b | caB
Мне нужно "определить, являются ли [они] LL-грамматиками, выполнив тест на попарное разделение, показав первые множества каждого RHS каждого нетерминала".
Вот что у меня есть на данный момент...
A -> aB | b | CBB
first(aB) = a
first(b) = b
first(CBB) = aaA = a
Вот с этим у меня проблемы. Правильно ли я выполнил CBB? Если да, то я бы сказал, что они пересекаются и правило не проходит проверку. (верно?)
B -> aB | ba | aBb
first(aB) = a
first(ba) = b
first(aBb) = a
Они пересекаются и поэтому правило не проходит проверку.
C -> aaA | b | caB
первый(aaA) = a
первый(b) = b
первый(caB) = c
Они не пересекаются и поэтому правило проходит