Hi Ozgur, Yes I've looked at haskell-src-exts and it does look *much* easier to use.
I need this to build a new refactoring tool for Haskell (for the Paraphrase project). One advantage to using the ghc-api directly is that's it's always cutting edge and maintained by the ghc team. Having one more library dependancy to worry about is not always a good thing. At the moment (and spending half a day yesterday just working out how to 'show' an AST from the ghc-api) I'm veering towards haskell-src-exts. I think extending it to contain use and bind locations in the AST would be the best option for me. There's also a question of having types in the AST as well. > I don't know what you actually need, but if haskell-src-exts is an option, it > is quite a bit easier to use (definitely easier to understand for me!). > Especially when used together with Uniplate. > > For example, for a given piece of AST one can get all the identifiers used > like so: > > [ x | Ident x <- universeBi ast ] > Uniplate isn't a powerful enough generic system to design a full refactoring engine, as we need top down/bottom up/ full/stop/once plus preservation and unification, much in the style of Strafunski. I think SYB is better for our needs. Perhaps we could use a combination of uniplate+SYB depending on what traversals/rewrites we need to do. > Finding where they are bound shouldn't be very hard either. > No, but it would be much easier if the information was already there, of course! :) Thanks for your response! Chris. > Hope this helps, > Ozgur > > On 23 January 2012 17:33, Christopher Brown <cm...@st-andrews.ac.uk> wrote: > Hi, > > I was wondering if anyone could tell me if it's possible to get an AST from > the ghc-api decorated with static-semantics? > In particular, I am interested in use and bind locations for all names in the > AST together with the module they are bound, etc. > > Looking through the online docs, there doesn't seem to be a way to do this. > Even if I can tell from the AST where a variable is bound that would be > enough, if this is by making all names unique and qualified that would be > better than nothing. > > Hope someone can help, > Chris.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe