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

Dom*_*mpf 10 parsing haskell parsec file-writing

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

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

谢谢你,多米尼克

neu*_*rah 5

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

可能就是您要寻找的

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

更新:发现此软件包似乎也可以达到目标(尚未测试)http://hackage.haskell.org/package/syntax