comptrans: Automatically converting ASTs into compositional data types
Template Haskell for converting an AST for a language written using normal
algebraic data types into ones written using multi-sorted compositional data types
Data.Comp.Multi from the
compdata library) so that you can use generic and modular operators
on it. You might need to add additional constructors that can e.g.: convert a `(Term e Foo)` into a
`(Term e [Foo])`.
The sCource files have comments showing example output for a simple language. See the examples directory for an extended example of generating a compositional data type for the entire Java language, with labelled variants as well as variants where an entire project of source files can be treated as a single AST -- and you can use the same operations on all of them!
|Versions [RSS] [faq]||0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5|
|Dependencies||base (>=4.7 && <5), compdata (==0.*), containers (<=0.6), deepseq (<1.4), deepseq-generics (<0.1.2), ghc-prim (>=0.2), lens (<5), template-haskell, th-expand-syns (<=0.4) [details]|
|Source repo||head: git clone https://github.com/jkoppel/comptrans|
|Uploaded||by JamesKoppel at 2015-03-23T03:39:44Z|
|Downloads||3125 total (28 in the last 30 days)|
|Rating||(no votes yet) [estimated by Bayesian average]|
Docs available [build log]
Last success reported on 2015-03-23 [all 1 reports]