Wie wird die Operatorpriorität in ANTLR implementiert?ANTLR Operator Precedence
Ich benutze das XText/Antlr-Paket im Moment.
Edit:
Ich tat, was sepp2k vorgeschlagen und Operatorpräzedenz funktioniert jetzt, aber Sachen wie 3 + * auch jetzt funktionieren. Die Operatoren "fallen" grundsätzlich durch den Baum.
Auch ich habe versucht, die C-Grammatik auf ANTLR's Website und das gleiche passiert in ANTLRworks.
Wer weiß, was das Problem ist?
Der Aufruf von Expression sollte wahrscheinlich zwischen '(' und ')' liegen. Auch Ihre Operatoren scheinen alle einen linken Operanden zu verpassen. – sepp2k
Ich habe es mit der Methode in meinem Kommentar behoben. Außerdem wurde der linke Operand in den ersten Ausdruck verschoben, um eine Linksrekursion zu verhindern. – jameszhao00