Als Übung, um Haskell zu lernen (und mich zu quälen), überlege ich, einen konfigurierbaren Haskell Code-Beautifier zu schreiben.Haskell Parser zu AST
Es eine Konfigurationsdatei in JSON oder YAML (oder etwas besser?) Geschrieben unterstützen wird, die Entscheidungen wie das Sortieren Importe, Sortierung/Gruppierung data
und class
Aussagen, die Anzahl der Linien zwischen den Abschnitten usw.
Ich bin spezifiziert Suchen nach einem Parser für Haskell 98, der einen abstrakten Syntaxbaum (AST) generiert und behält Kommentare bei. Das Parsen von GHC mit seinen Spracherweiterungen ist ein Bonus.
In Ermangelung einer solchen Sache, ich denke, ich kann einen rekursiven Abstieg Parser oder einen mit Parsec oder einen Parser-Generator schreiben. Vielleicht mein eigenes rollen wird das Lernen (und Folter :-)) erhöhen.
Gibt es unter einer der Open-Source-Lizenzen einen vollständigen Haskell-> AST-Parser? Wenn ich bei diesem Projekt Fortschritte mache, werde ich es auf Github setzen.
Eines meiner Haustier ärgert ist hässlicher Code. Der größte Teil meiner Arbeit ist in Java und es erstaunt mich, wie Leute Code ohne Klammerausrichtung, inkonsistenten Abständen um Operatoren usw. einchecken können. Lesen sie nicht ihren eigenen Code? Stört es sie nicht? Vielleicht ist es mein OCD. Wie auch immer, ich stimme zu, dass Out-of-Box Haskell um ein Vielfaches schöner aussieht. Aber ich möchte immer noch eine Verschönerung schreiben :-). – Ralph
Ja. Ich habe wirklich Spaß gemacht, weil ich die Art von Dingen mag, die du vorschlägst. Warum nicht haskell selbst für die Sprache der Konfigurationsdatei verwenden? Ich bin sicher, dass ich gelesen habe, dass jemand seine domänenspezifische Sprache für config weiterentwickelt hat, bis sie feststellten, dass sie nur Haskell haben wollten, aber [this] (http://www.jmreardon.com/posts/2011-07-17-typesafe-config -in-haskell.html) ist das nächste, was ich finden konnte. Oder Sie könnten das Paket [ConfigFile] (http://hackage.haskell.org/package/ConfigFile) verwenden. – AndrewC