Я пытаюсь разобрать исходный код Haskell и генерировать дерево решений для анализа различных путей, которые могут выполнять программы Haskell. haskell-src-exts
дает разумное представление, но не имеет связанной с ним информации о типе.
Предоставляет ли GHC или какой-либо другой инструмент эту функциональность?Получение Parsed и тип-аннотированный код Haskell
ответ
Нет инструмента, кроме GHC, который особенно хорошо разбирается в методе проверки Haskell на данный момент. A haskell-type-exts
был в разработке до src-exts
, но он не был завершен.
Таким образом, вы можете использовать разумную оболочку для API GHC, такую как hint, и вызывать ее в подвыражениях, которые вы хотите проверить, используя свой type inference api.
Это довольно болезненный подход, но я не могу думать о гораздо лучше. Если вы заинтересованы только в работе над haskell-, например, как в качестве упражнения, вместо этого вы можете импортировать компилятор PureScript
в качестве библиотеки, а затем вы сможете получить полностью типированное дерево синтаксиса, ,
В качестве альтернативы, вы можете попробовать ориентироваться в чащу самого GHC API, чтобы получить полностью typechecked источник ...
Если вы решили пойти по этому пути, this answer может вам начать.
- 1. PHP no Более длинное получение Parsed?
- 2. UIImageView и XML Parsed данных
- 3. Некорректное Parsed Дата
- 4. Duplicates in Parsed JSON
- 5. Javascript Parsed Date
- 6. Haskell: как использовать «получение шоу» и функтор?
- 7. XML Parsed Image OnClick
- 8. Haskell: получение размера изображения
- 9. Получение лекций и материалов Вадлера по Haskell
- 10. Haskell код описание
- 11. Haskell - код объяснение
- 12. Код генерации: Haskell?
- 13. Упростить код Haskell
- 14. Haskell - SPOJ - Код 'TEST'
- 15. Haskell Недопустимый код ошибки?
- 16. Код отступа в Haskell
- 17. Код схемы Haskell
- 18. UIWebView loading parsed html string
- 19. BeautifulSoup4: Отсутствующие данные таблицы Parsed
- 20. Login Validation from parsed result
- 21. Как отделить производственный код и тестовый код от Haskell
- 22. Haskell: Template Haskell и область
- 23. Haskell: получение статического типа выражения
- 24. Haskell получение элементов списка IO
- 25. Как этот код haskell работает?
- 26. Складной код Haskell в Emacs
- 27. Код Метрические инструменты для Haskell
- 28. Haskell IO код не typecheck
- 29. Ghc: частично скомпилировать код Haskell?
- 30. Проектирование основного Haskell бенчмаркинг код
Если вы хотите получить информацию о типе любого выражения (верхнего уровня или нет) в исходном файле haskell, вы можете проверить ['ghc-mod'] (http://hackage.haskell.org/ пакет/ghc-mod). – zakyggaps
Я хочу сгенерировать дерево из исходного кода программы, чтобы проанализировать потенциальные пути, которые может принять программа. Простой текстовый синтаксический анализ не является достаточным для моей информации о потреблении и необходимости в типе информации, а также в узлах дерева, которое я собираюсь сгенерировать. – ankitrokdeonsns
Вам нужно сделать это на исходном уровне? Было бы намного проще реализовать это на Core, где вложенное совпадение шаблонов уже сглажено. – Cactus