在 Haskell 中解析并打印相同的文件格式
Parsing and pretty printing the same file format in Haskell
我想知道 Haskell 中是否有一种标准的、规范的方式,不仅可以为特定文件格式编写解析器,还可以编写编写器。
在我的例子中,我需要解析一个数据文件进行分析。但是,我也模拟了要分析的数据,并以相同的文件格式保存。我现在可以使用 Parsec 或类似的东西编写解析器,还可以编写以所需方式执行文本输出的函数,但是每当我更改文件格式时,我都必须更改代码中的两个函数。有没有更好的方法来实现这个目标?
谢谢,
多米尼克
BNFC 元包 https://hackage.haskell.org/package/BNFC-meta-0.4.0.3
可能就是您要找的东西
"Specifically, given a quasi-quoted LBNF grammar (as used by the BNF Converter) it generates (using Template Haskell) a LALR parser and pretty pretty printer for the language."
更新: 发现这个包似乎也满足 objective(尚未测试)http://hackage.haskell.org/package/syntax
我想知道 Haskell 中是否有一种标准的、规范的方式,不仅可以为特定文件格式编写解析器,还可以编写编写器。
在我的例子中,我需要解析一个数据文件进行分析。但是,我也模拟了要分析的数据,并以相同的文件格式保存。我现在可以使用 Parsec 或类似的东西编写解析器,还可以编写以所需方式执行文本输出的函数,但是每当我更改文件格式时,我都必须更改代码中的两个函数。有没有更好的方法来实现这个目标?
谢谢, 多米尼克
BNFC 元包 https://hackage.haskell.org/package/BNFC-meta-0.4.0.3
可能就是您要找的东西
"Specifically, given a quasi-quoted LBNF grammar (as used by the BNF Converter) it generates (using Template Haskell) a LALR parser and pretty pretty printer for the language."
更新: 发现这个包似乎也满足 objective(尚未测试)http://hackage.haskell.org/package/syntax