Какви са общите стратегии за намаляване на дърво за анализ (т.е. конкретно синтактично дърво) в абстрактно синтактично дърво?
Например имам следното граматично правило:
statement_list : statement
| statement_list statement
което, ако бъде оставено като дърво за анализ, ще генерира разпръскващ изход, който изглежда като
program
statement_list
statement_list
statement
definition
p_type
assignment
statement
definition
statement
assign
assignment
Ако свържа децата на всеки възел (тъй като списъкът с изрази няма присъщо значение след анализиране), мога да постигна следното
program
definition
p_type
assignment
definition
assign
assignment
Това работи добре - обаче не съм запознат с никакви "правила" за това. Има ли специфични граматически правила, които трябва да търся да опростя? Въпрос на усещане ли е, или има по-механичен процес?