gpt4 book ai didi

haskell - Happy 和 Alex 如何自力更生?

转载 作者:行者123 更新时间:2023-12-02 06:34:45 25 4
gpt4 key购买 nike

happy 的源代码树包含 AttrGrammarParser.lyParser.ly alex 的源代码树包含 Scan.x 。然而,据我所知,为了编译 happy,我们需要使用以下方法将 .ly 文件转换为 .lhs 文件。 .happy,为了编译alex,我们需要使用以下命令将.x文件转换为.hs文件...亚历克斯

所以看来这里必须进行一些引导才能编译任一工具。

每个项目的 Setup.lhs 文件都包含一些模板扩展,但是,据我所知,不要做任何特别的事情来进行引导。

引导是如何以及在哪里完成的?

最佳答案

我发现您正在darcs.haskell.org 上查看这些包的darcs 存储库的源代码树。如果您查看 Hackage 上的实际 tarball,您会发现有些不同:

https://hackage.haskell.org/package/alex-3.1.4/src/dist/build/alex/alex-tmp/

https://hackage.haskell.org/package/happy-1.19.5/src/dist/build/happy/happy-tmp/

所以基本上必要的构建工件都随 Hackage tarball 一起提供。然后 Cabal 在构建过程中只使用构建工件,从而避免了本地引导的需要。当您为自己的软件包运行 cabal sdist 时,Cabal 也知道如何保留此类构建工件,您不想依赖 happy 或 alex,但最后我检查了这与沙箱的互操作性不好,fwiw .

顺便说一句,alex和happy开发已经转移到github了:

https://github.com/simonmar/alex/

https://github.com/simonmar/happy/

关于haskell - Happy 和 Alex 如何自力更生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28312759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com