ANTLR4 Analysebaumvereinfachung

Gibt es eine Möglichkeit, mit ANTLR4 redundante Knoten in generierten Analysebäumen automatisch zu entfernen?

Mehr speziell, ich habe mit einer Grammatik für GLSL experimentiert und Sie erhalten lange lineare Sequenzen von "Ausdrücken" im Analysebaum aufgrund der Regelweiterleitung, die für die automatische Behandlung der Operatorpriorität erforderlich ist.

Die meisten der generierten Baumknoten werden einfach "an die nächsthöhere Prioritätsebene weitergeleitet". Geben Sie daher keine nützlichen syntaktischen Informationen an. Sie benötigen nur den letzten Ausdrucksknoten in jeder Sequenz (dh den Punkt, an dem die Regelweiterleitung gestoppt wurde) ) oder der Punkt, an dem es zu einem tatsächlichen Baumknoten mit mehr als einem untergeordneten Element wird (dh ein tatsächlicher Ausdruck wurde in der Quelle gefunden) ...

Ich hatte gehofft, dass es eine einfache Möglichkeit gibt, die Dummy-Zwischenausdruckknoten abzutöten - diese Art von Struktur muss in jeder Grammatik mit Operatorpriorität üblich sein.

ie Grundstruktur der Grammatik ist ein ziemlich direkter Klon, der der Khronos-Spezifikation für die Sprache entnommen is

https: //www.khronos.org/registry/gles/specs/3.1/es_spec_3.1.pd

Antworten auf die Frage(4)

Ihre Antwort auf die Frage