Ich bin derzeit auf der Suche nach einem Lexer/Parser, der Scala-Code aus einer BNF-Grammatik (eine ocamlyacc
Datei mit Vorrang und Assoziativität) generiert. Ich bin ziemlich verwirrt, da ich fast nichts darüber gefunden habe.Lexer/Parser zum Erzeugen von Scala-Code aus BNF-Grammatik
Zum Parsen fand ich scala-bison
(mit denen ich viel Mühe habe zu arbeiten). Alle anderen Tools sind nur Java-Parser, die in Scala importiert werden (wie ANTLR
).
Für Lexing habe ich nichts gefunden.
Ich fand auch die berühmte Parser von Scala Kombinatoren, aber (korrigiert mich wenn ich falsch liege), auch wenn sie recht ansprechend sind, sie viel Zeit und Speicher verbrauchen, vor allem wegen Rückzieher. So
Ich habe zwei Hauptfragen:
- Warum scheinen die Menschen nur auf _parser combinators zu konzentrieren?
- Was ist Ihr bester Lexer/Parser Generator Vorschlag mit Scala zu verwenden?
Danke für die Antwort und deine Gll-Kombinatoren, ich werde versuchen zu verstehen, wie es funktioniert :) Aber ich denke, ich werde versuchen, mit JFlex und Scala zusammen zu spielen. – Vinz
Dank der vielen Tutorials (einschließlich einiger von Ihnen auf codecommit) habe ich es endlich geschafft, einen einfachen Lexer/Parser mit Parser-Kombinatoren zu erstellen, und ohne zu viel Rekursion. Nochmals vielen Dank! – Vinz