Всякий раз, когда вы делаете вывод, следите за тем, откуда вы пришли, т.е.какие предметы использовались для формирования нового предмета.Затем можно найти лес синтаксического анализа, исследуя верхний элемент, охватывающий весь ввод.Если вы анализируете неоднозначные грамматики, вы должны также рассмотреть возможность упаковки неоднозначности, т.е.не рекомбинируйте (локально) эквивалентные анализы вместе.
Я действительно рекомендую превосходную книгу Клааса Сиккеля "Парсинг схемы" для теоретической стороны вещей.