Подключение инструмента сборки в Cabal (Haskell)

Я пытался использовать инструмент bnfc для создания множества файлов, таких как лексер, парсер и т. Д. Для меня. Это прекрасно работает. Теперь я хотел немного почистить это, избавившись от необходимости вручную компилировать файл bnfc и создавать ряд файлов, которые загромождают мою папку /src.

Я попробовал механизм Cabal, когда вы перечисляете инструмент в поле build-tools файла .cabal и упоминаете файлы, которые, как вы ожидаете, будут сгенерированы полем extra-source-files. Это сработало для меня для Алекса и Хэппи, поскольку Кабал признал их инструментами сборки, а bnfc - нет. Есть ли способ подключить bnfc или любой инструмент в целом к ​​Cabal, чтобы Cabal распознал их как инструменты сборки?


person user5803465    schedule 27.04.2016    source источник
comment
Вот проблема с добавлением поддержки BNFC в Cabal: github.com/haskell/cabal/issues/ 6726   -  person Hjulle    schedule 24.11.2020


Ответы (1)


Очевидно, клика не знает о bnfc (не отображается на список).

Похоже, нет способа сделать это, используя только файл .cabal, но есть пример того, как подключить препроцессор в вашем Setup.hs в тестируемые исходники клики/PackageTests/CustomPreProcess/Setup.hs с помощью пользовательского хука hookedPreProcessors (все хуки находятся в UserHooks.hs)

person sinelaw    schedule 27.04.2016