Если предположить, что у меня есть следующие состояния:
I1: S->TaV.,$
T -> V.,a
I2: T -> V.,a|$
я объединяю эти состояния?
По сути, я хочу знать, что является ядром I1. Является {S->TaV. , T->V.} ядро I1 или я скажу, что I1 содержит два ядра - S->TaV & T->V?
Dragonbook говорит, что для каждого ядра, присутствующего среди наборов элементов LR (1), найдите все наборы, содержащие это ядро, и замените его их объединением.
Теперь, если {S->TaV. , T->V.} является ядром I1, то я не буду объединять наборы. Но для ядра T->V. и I1, и I2 содержат ядро и, следовательно, должны быть заменены их объединением.
Так мне объединять наборы или нет?
некоторые справочные данные, которые могут быть полезны:
исходная грамматика для начала была
G: S->TaV | T
T->V | b
V->Ta | c