Ich suche einen rekursiven Abstieg Parser von Hand zu schreiben, und ich bin auf der Suche nach guten Ressourcen auf, wie es zu strukturieren, Algorithmen usw.Ressourcen für einen rekursiven Abstieg Parser von Hand zu schreiben
Antwort
kann ich vorschlagen " Crafting a Compiler "von Charles N. Fischer und Richard J. LeBlanc.
Bearbeiten. Dies ist eine aktualisierte Version: http://www.amazon.com/Crafting-Compiler-Charles-N-Fischer/dp/0136067050/ref=sr_1_2?ie=UTF8&s=books&qid=1258514561&sr=8-2
Es gibt ein gutes Tutorial auf Codeprojekt unter "Compiler Patterns". In letzter Zeit können Sie Google Compiler-Muster sogar einfach googeln.
http://www.codeproject.com/Articles/286121/Compiler-Patterns
Der Artikel behandelt die meisten Aspekte der einen einfachen Compiler bauen (das Back-End, das BNF, und die Muster verwendet, um die verschiedenen BNF-Regeln zu implementieren), ist aber nicht sehr schwer auf der Theorie, oder sogar warum ein rekursiver Descent-Compiler die Spracheingabe in Code umwandelt.
- 1. Vermeiden Sie stackoverflow im rekursiven Algorithmus in rekursiven Abstieg Parser
- 2. Online-Ressourcen zum Schreiben eines Parser-Generators
- 3. Schreiben asm.js von Hand
- 4. Haskell Parser zu AST
- 5. schreibe rekursiven Parser mit pyparsing
- 6. Iterativ rekursiven Code schreiben
- 7. Wie kann ich Einheitentestfälle für einen Parser am besten schreiben?
- 8. Einen Parser von Grund auf in Haskell schreiben
- 9. Schreiben eines Parser für JavaScript-Code
- 10. einen memoization zu rekursiven Algorithmus hinzufügen
- 11. Was ist die BNF für eine Regex (um einen vollständigen oder partiellen Parser zu schreiben)
- 12. Unterschied zwischen einem LL und rekursiven Descent-Parser?
- 13. Nennen Sie mich einen binären Parser. Ein Parser für Binärdaten
- 14. Wie schreibe ich einen rekursiven Descent Parser von Grund auf neu?
- 15. AngularJS-Anruf mit mehreren Ressourcen, nur letzte Hand
- 16. Schreiben eines Ausdrucks zum rekursiven Extrahieren von Daten zwischen Klammern
- 17. Erstellen einer rekursiven Datenstruktur mit Parser-Kombinatoren in Scala
- 18. ELF-Datei von Hand
- 19. Empfehlungen für einen Java-HTML-Parser/Editor
- 20. Einen Haskell Parser wählen
- 21. Möglich in swift, einen rekursiven Funktionsaufruf mit Javascriptcore zu tun?
- 22. Ich versuche, einen Code für einen Geldwechsler/Münzautomaten zu schreiben
- 23. C++ Name Mangling von Hand
- 24. Welche Beziehung besteht zwischen Parser-Kombinatoren und rekursiven Descent-Parsern?
- 25. Schreiben von .net Software für einen Mac
- 26. Schreiben von Webanwendungscode für einen Weblogic-Cluster
- 27. Einen Code-Beautifier schreiben
- 28. Eclipse "Projekt teilen" von Hand?
- 29. Bester JSON-Parser für Qt?
- 30. So behandeln Sie Java-URL-Zuordnungen, die zu viele sind, um per Hand zu schreiben
Siehe http://stackoverflow.com/a/2336769/120163 –