Ich habe den Artikel auf der Website http://parsingintro.sourceforge.net/ und beschloss, es als Übung in Ruby umzuschreiben. Dafür gab es zwei Gründe: Ich wollte mehr darüber lernen, wie man Ruby programmiert (ich kenne mich mit Java, PHP, C und etwas Python aus), und ich wollte mehr über Parser/Compiler lernen.
Ich habe den gesamten Code unter https://github.com/parse/boatcaptain . Der AST-Baum wird generiert, leider geht der Autor des Artikels nicht auf Konzepte wie Codegenerierung und Optimierungen ein.
Kann mir jemand helfen, indem er mir die richtige Richtung zeigt, wie ich diesen AST-Baum in "Code" umsetzen kann? Dies ist der AST-Baum, der erzeugt wird
Ich habe vor einigen Jahren einen Rechner in Java geschrieben, der viele ähnliche Begriffe und Techniken verwendet, wie ich sie in diesem Parser benutzt habe. Aber in dem Taschenrechner hatte ich Methoden für eval()-ing meine "Klassen" und daher erhalten Ausgabe, sollte ich für etwas ähnliches hier zu tun Ziel? Quelle für den Rechner: https://github.com/parse/Uppsala-University-Courses/blob/master/ImpOOP-Calculator/src/Calculator.java
Ich würde mich auch über Feedback zu meiner Art, Ruby zu schreiben, freuen. Ich glaube, ich schreibe Ruby immer noch so, wie ich Python schreiben würde, und verpasse dabei einige schöne Vorteile von Ruby.