我想知道在Haskell中是否有一种标准的方法来编写特定文件格式的解析器和编写器。
在我的情况下,我需要解析一个用于分析的数据文件。然而,我还需要模拟要分析的数据并以相同的文件格式保存它们。我可以使用Parsec或类似的工具编写解析器,并编写执行所需文本输出的函数,但每当我更改文件格式时,我都必须更改代码中的两个函数。有没有更好的方法来实现这个目标?
谢谢, Dominik
我想知道在Haskell中是否有一种标准的方法来编写特定文件格式的解析器和编写器。
在我的情况下,我需要解析一个用于分析的数据文件。然而,我还需要模拟要分析的数据并以相同的文件格式保存它们。我可以使用Parsec或类似的工具编写解析器,并编写执行所需文本输出的函数,但每当我更改文件格式时,我都必须更改代码中的两个函数。有没有更好的方法来实现这个目标?
谢谢, Dominik
BNFC-meta包https://hackage.haskell.org/package/BNFC-meta-0.4.0.3可能是您正在寻找的内容。
具体而言,它可以根据准引用的LBNF语法(由BNF Converter使用)生成(使用模板Haskell)语言的LALR解析器和漂亮的打印机。
更新:发现这个软件包似乎也能实现目标(尚未测试)http://hackage.haskell.org/package/syntax