/ / Was ist der Zweck der Erstellung eines Syntaxbaums? - Parsing, Compiler-Konstruktion, Programmiersprachen

Was ist der Zweck, einen Syntaxbaum zu erstellen? - Parsing, Compiler-Konstruktion, Programmiersprachen

Was nutzt es, einen Syntaxbaum für eineCode? Das hört sich vielleicht dumm an, aber ich kann einfach nicht verstehen, wie es funktioniert. Ich verstehe, dass es bei arithmetischen Operationen nützlich sein kann, Vorrang zu haben. Aber warum den Code in einen Baum umwandeln? Und was passiert danach? Ich kann nicht verstehen, was ich mit einem Parse Baum tun kann. Ich versuche, einen sehr kleinen Interpreter zu schreiben, der die arithmetischen Operationen und einfachen wenn Bedingungen durchführt. Ich habe eine kleine Grammatik geschrieben. Ich habe einen Parse-Baum. Aber weißt nicht, was du damit machen sollst.

Antworten:

3 für die Antwort № 1

Nun, wenn Sie einen Syntaxbaum haben und Sie Ihren Dolmetscher beenden wollen, was Sie tun, sind Sie bewerten der Baum, rekursiv.

Um einen Codeblock zu bewerten, werten Sie jede einzelne Anweisung einzeln aus.

Um einen auszuwerten if Englisch: www.weisang.info/index.php?id=143&t...h=cfd8d8a8e9 Sie bewerten den Konditionsausdruck und abhängig vom Ergebnis werten Sie den then Zweig oder der else Zweig (wenn es existiert).

Um die Addition zu bewerten, werten Sie jeden Operanden aus und fügen sie dann zusammen hinzu.

Wenn der Syntaxbaum bedeutet, dass diese Arten von Operationen natürlich sind, beinhalten sie gewöhnlich das Auswerten (einiger von) der Kindknoten des aktuellen Knotens und dann möglicherweise das Kombinieren der Ergebnisse.