Pergunta

Podemos usar a API GHC ou outra coisa para carregar não módulos de fonte de texto, mas expressões AST, semelhantes a haskell-src-exts tipo Exp ?Dessa forma, podemos economizar tempo para geração e análise de código.

Foi útil?

Solução

Não acho que a API GHC exponha uma interface AST (embora possa estar errada), mas o Template Haskell sim.Se você construir expressões usando a estrutura Language.Haskell.TH Exp, poderá criar funções / declarações e fazer uso delas pela sintaxe $(someTHFunction).

Uma advertência bastante importante é que o TH só roda em tempo de compilação, então você precisa pré-gerar tudo.Se você quiser usar o TH em tempo de execução, acho que você precisa imprimir o template haskell AST e, em seguida, usar a API GHC na string resultante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top