2012-10-24 56 views
7

有谁知道Haskell库可以解析任意Bash脚本?解析Bash脚本的Haskell库?

粗略搜索Hackage的指示,有一个为编写脚本调用bash包,但我没有看到任何东西解析他们。

基本上,我刚刚收集了大量的Bash脚本,并且我倾向于对它进行一些代码分析。但第一阶段显然是能够解析这些东西。

我不知道Bash很好。我想我可以坐下来,并通过丰富的手册页获得完整的BNF语法。 (我想这是非常复杂的,因为壳长和向后兼容的历史。)我只是想知道其他人是否已经为我做了这项工作...

+4

祝你好运。如果您要自己编写解析器,您将需要它。 – Satvik

+0

我认为你最好试着查看bash代码,并从解析器开始工作。存在一个Haskell bash解析器的可能性似乎很遥远。有可能的库可以从Haskell本地获得AST。可能性:[libbash](http://dev.gentoo.org/~qiaomuf/libbash.html); [jBash](http://code.google.com/p/jbash/); [其他人想写一个解析器](https://bbs.archlinux.org/viewtopic.php?id=101893)等 – Orbling

+0

他们是bash脚本或shell脚本?由于POSIX shell语法更简单,并且在opengroup的规范中描述了解析算法。 – singpolyma

回答

4

也许延长language-sh

Language.Sh是用于在shell语法中解析和操作 表达式的模块的集合。这是一个更大的项目shsh的一部分。 请注意,在我们达到版本 1.0之前,API有些不稳定。