Automatically converting ASTs into compositional data types https://github.com/jkoppel/comptrans
|Latest on Hackage:||0.1.0.5|
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!