[Haskell-cafe] Generating Haskell Code out of Haskell AST (GHC API)
John Blackbox
blackbox.dev.ml at gmail.com
Fri Jul 19 11:19:10 CEST 2013
I accidentally didn't send that email to haskell-cafe, so I'm pasting it
here also:
Alan - I do NOT want to generate Haskell code. I want only to generate AST
and compile it.
The question about generating the code was only to have a "debugging tool"
- to see if the generated AST is good - I wanted to generate the Haskell
code only to check if its correct, but normally I would not do it, because
it makes no sense to generate AST -> code -> AST (by GHC) again etc :)
Additional - I want to connect to GHC's type-checking also and translate
the errors to be appropriate to my language syntax - so maybe the pure GHC
API is the best way to go?
2013/7/19 John Blackbox <blackbox.dev.ml at gmail.com>
> Additional - I want to connect to GHC's type-checking also and translate
> the errors to be appropriate to my language syntax.
>
>
> 2013/7/19 John Blackbox <blackbox.dev.ml at gmail.com>
>
>> Alan - I do NOT want to generate Haskell code. I want only to generate
>> AST and compile it.
>> The question about generating the code was only to have a "debugging
>> tool" - to see if the generated AST is good - I wanted to generate the
>> Haskell code only to check if its correct, but normally I would not do it,
>> because it makes no sense to generate AST -> code -> AST (by GHC) again etc
>> :)
>>
>>
>> 2013/7/19 AlanKim Zimmerman <alan.zimm at gmail.com>
>>
>>> I have not used haskell-src-exts so I may be talking out of turn, but it
>>> seems that if you want to generate an AST which you then turn into source
>>> code and compile it makes more sense than using than GHC AST, which has a
>>> number of wrinkles, including fields that are only valid at certain phases
>>> of the compilation process.
>>>
>>> For my purposes, in the Haskell Refactorer, I need access to the
>>> renaming and type-checking, which to my knowledge is not currently
>>> available in haskell-src-exts, although there is work happening to bring it
>>> in, e.g. https://github.com/haskell-suite/haskell-names.
>>>
>>>
>>> On Fri, Jul 19, 2013 at 10:09 AM, John Blackbox <
>>> blackbox.dev.ml at gmail.com> wrote:
>>>
>>>> Thank you!
>>>> So, if I'm writing a compiler of custom language, which I want to
>>>> generate Haskell AST and further compile it with GHC, you prefer
>>>> something like haskell-src-exts over pure GHC API?
>>>>
>>>>
>>>> 2013/7/19 Antoine Latter <aslatter at gmail.com>
>>>>
>>>>> The package haskell-src-exts is a lot less intimidating if all you are
>>>>> trying to do is programmatically generate Haskell source:
>>>>>
>>>>> http://hackage.haskell.org/package/haskell-src-exts
>>>>>
>>>>> The base types are here:
>>>>>
>>>>> http://hackage.haskell.org/packages/archive/haskell-src-exts/1.13.5/doc/html/Language-Haskell-Exts-Syntax.html#t:Module
>>>>>
>>>>> This module has some helper function for generating parts of the AST:
>>>>>
>>>>> http://hackage.haskell.org/packages/archive/haskell-src-exts/1.13.5/doc/html/Language-Haskell-Exts-Build.html
>>>>>
>>>>>
>>>>> On Thu, Jul 18, 2013 at 1:11 PM, John Blackbox
>>>>> <blackbox.dev.ml at gmail.com> wrote:
>>>>> > Hi!
>>>>> > I dont know GHC API very well, but I want to generate AST of a
>>>>> program using
>>>>> > GHC API.
>>>>> > Is there any standard method to generate Haskell code out of it?
>>>>> (something
>>>>> > like "print_this_for_me_please" function? :D
>>>>> >
>>>>> > _______________________________________________
>>>>> > Haskell-Cafe mailing list
>>>>> > Haskell-Cafe at haskell.org
>>>>> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>>> >
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Haskell-Cafe mailing list
>>>> Haskell-Cafe at haskell.org
>>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130719/683f0ea8/attachment.htm>
More information about the Haskell-Cafe
mailing list