- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
happy
的源代码树包含 AttrGrammarParser.ly
和 Parser.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了:
关于haskell - Happy 和 Alex 如何自力更生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28312759/
我是一名优秀的程序员,十分优秀!