在Haskell中解析并漂亮地打印相同的文件格式

时间:2017-07-21 13:49:44

标签: parsing haskell parsec file-writing

我想知道,如果在Haskell中有一个标准的,规范的方式,不仅要编写特定文件格式的解析器,还要写一个编写器。

在我的情况下,我需要解析一个数据文件进行分析。但是,我还模拟要分析的数据并将其保存为相同的文件格式。我现在可以使用Parsec或类似的东西编写解析器,并编写以所需方式执行文本输出的函数,但每当我更改文件格式时,我都必须在代码中更改两个函数。有没有更好的方法来实现这一目标?

谢谢你, 多米尼克

1 个答案:

答案 0 :(得分:4)

BNFC-meta包https://hackage.haskell.org/package/BNFC-meta-0.4.0.3

可能就是你要找的东西

"具体来说,给定一个准引用的LBNF语法(由BNF转换器使用),它生成(使用Template Haskell)一个LALR解析器和非常漂亮的语言打印机。"

更新:发现此套餐似乎也符合目标(尚未测试)http://hackage.haskell.org/package/syntax