Дерево разбора для (a,(a,a))
можно получить из самого левого деривации (a,(a,a))
:
S => (L) [S -> (L)]
=> (L,S) [L -> L,S]
=> (S,S) [L -> S ]
=> (a,S) [S -> a ]
=> (a,(L)) [S -> (L)]
=> (a,(L,S)) [L -> L,S]
=> (a,(S,S)) [L -> S ]
=> (a,(a,S)) [S -> a ]
=> (a,(a,a)) [S -> a ]
Корень дерева разбора S
.Для каждой перезаписи нетерминального символа в деривации нарисуйте соответствующий узел в дереве разбора.Кроме того, ваша грамматика не является оптимальной и, среди прочего, содержит правила цепочки.Удаление их исключило бы необходимость извлечения S
из L
для получения a
.