如何让 Stack 调用 Happy、Alex 和其他构建工具?

How can I make Stack call Happy, Alex and other build tools?

作为编译器的一部分,我需要 alexhappy 到 运行 作为构建过程的一部分。 Stack 如何支持这种情况?

奖励:如何将 alexhappy 注册为编译时依赖项?

cabal理解alex文件后缀.x和happy文件后缀.y,会自动使用alex和happy构建对应的.hs文件

进行的步骤:

  1. .x.y 文件添加到您的 extra-source-files: 部分
  2. alexhappy 添加到您的 build-tools: 部分
  3. 如果您的源文件是 Foo.Bar.x,请确保 Foo.Bar 列在 exposed-module:other-modules:

使用 alex 和 happy 的包的一个很好的例子是 language-python 包:

https://github.com/bjpop/language-python/blob/master/language-python.cabal

更新: 这也与堆栈有关。其实stack也会为你打造alex和happy