Desacoplar código da gramática - ParseTreeProperty
Last updated
Last updated
Já vimos que podemos manipular a informação gerada na análise sintáctica de múltiplas formas:
Directamente na gramática recorrendo a acções e associando atributos a regras (argumentos, resultado, variáveis locais);
Utilizando listeners;
Utilizando visitors;
Associando atributos à gramática fazendo a sua manipulação dentro dos listeners e/ou visitors.
Para associar informação extra à gramática, podemos acrescentar atributos à gramática (sintetizados, herdados ou variáveis locais às regras), ou utilizando os resultados dos métodos visit.
Alternativamente, o ANTLR4 fornece outra possibilidade: a sua biblioteca de runtime contém um array associativo que permite associar nós da árvore sintáctica com atributos – ParseTreeProperty.
Vamos ver um exemplo com uma gramática para expressões aritméticas: