Desacoplar código da gramática - ParseTreeProperty

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:

Last updated