Динамическая загрузка выражения абстрактного синтаксиса Haskell

StackOverflow https://stackoverflow.com/questions/8881263

Вопрос

Можем ли мы использовать GHC API или что-то еще, чтобы загружать не текстовые исходные модули, а выражения AST, аналогичные haskell-src-exts Exp type ?Таким образом мы могли сэкономить время на генерацию и анализ кода.

Это было полезно?

Решение

Я не думаю, что API GHC обнажает интерфейс AST (хотя может быть не так), но шаблон Haskell делает.Если вы создаете выражения, используя структуру Language.Haskell.TH Exp, вы можете создавать функции / объявления и использовать их синтаксисом $(someTHFunction).

Довольно крупное предостережение заключается в том, что я работает только в компиляционном времени, поэтому вам нужно будет предварительно генерировать все.Если вы хотите использовать во время выполнения, я думаю, вам нужно будет довольно печатать шаблон Haskell AST, затем используйте API GHC на результирующей строке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top