【发布时间】:2017-12-27 14:38:21
【问题描述】:
我想知道,Haskell 中是否有一种标准、规范的方式,不仅可以为特定文件格式编写解析器,还可以编写器。
就我而言,我需要解析一个数据文件进行分析。但是,我也模拟要分析的数据并将其保存为相同的文件格式。我现在可以使用 Parsec 或等效的东西编写解析器,还可以编写以所需方式执行文本输出的函数,但是每当我更改文件格式时,我都必须更改代码中的两个函数。有没有更好的方法来实现这个目标?
谢谢, 多米尼克
【问题讨论】:
-
我认为最简单的做法是定义一个表示文件语法的数据类型,然后按照您的想法编写一个单独的解析器和漂亮的打印机。例如,大多数语言库就是这样做的。
-
你要做的是定义一个语法,并使用一些库来自动生成一个解析器和漂亮的打印机。有许多图书馆声称能够做到这一点,但推荐一个可能是 OT(如果我有使用其中任何一个的经验,我会这样做)
-
我强烈反对票数接近。这个问题不是要查找异地资源;它询问如何解决堆栈溢出问题。问题的答案可以是“你可以用这个库解决这个问题”;这些答案是真实的,而不是基于意见的;它不会导致规则旨在避免的非建设性交互。
标签: parsing haskell parsec file-writing