Come esercizio per imparare Haskell (e torturare me stesso), sto pensando di scrivere un abbellitore di codice Haskell configurabile.parser Haskell su AST
Esso sosterrà un file di configurazione scritto in JSON o YAML (o qualcosa di meglio?) Che specifica le scelte come l'ordinamento delle importazioni, l'ordinamento/raggruppamento data
e class
dichiarazioni, numero di linee tra le sezioni, ecc
Sono cercare un parser per Haskell 98 che genera un albero sintassi astratto (AST) e conserva i commenti. Parsing GHC, con le sue estensioni linguistiche, sarà un bonus.
In assenza di una cosa del genere, credo di poter scrivere un parser ricorsivo-discendente o uno che utilizza Parsec o un generatore di parser. Forse rotolare il mio aumenterà l'apprendimento (e la tortura :-)).
Esiste un parser Haskell-> AST completo disponibile con una delle licenze open source? Se faccio qualche progresso su questo progetto, lo metto su Github.
Uno dei miei animaletti è un brutto codice. La maggior parte del mio lavoro è in Java e mi sorprende sapere come le persone possono controllare il codice senza allineamento del tutore, spaziatura incoerente attorno agli operatori, ecc. Non leggono il loro codice? Non li infastidisce? Forse è il mio OCD. Ad ogni modo, sono d'accordo sul fatto che Haskell fuori dagli schemi è un ordine di grandezza più bello. Ma voglio ancora scrivere un abbellitore :-). – Ralph
Sì. Stavo davvero scherzando, perché mi piace il genere di cose che stai suggerendo. Perché non usare haskell per la lingua del file di configurazione? Sono sicuro di aver letto di qualcuno che sta gradualmente evolvendo il proprio linguaggio specifico per la configurazione fino a quando non si sono resi conto che volevano semplicemente haskell, ma [questo] (http://www.jmreardon.com/posts/2011-07-17-typesafe-config -in-haskell.html) è il più vicino che ho trovato. Oppure puoi usare il pacchetto [ConfigFile] (http://hackage.haskell.org/package/ConfigFile). – AndrewC