【问题标题】:Ocaml - Files and parsingOcaml - 文件和解析
【发布时间】:2012-01-20 22:11:52
【问题描述】:

如何在 ocaml 中从文件中读取内容?具体如何解析?

例子:

假设文件包含(a,b,c);(b,c,d)| (a,b,c,d);(b,c,d,e)|

那么在阅读完这篇文章后,我想要两个包含l1 = [(a,b,c);(b,c,d)]l2 = [(a,b,c,d);(b,c,d,e)] 的列表

有什么好的解析教程吗?

【问题讨论】:

  • 请不要转发问题。如果您有任何新内容要添加到现有问题中,请改为编辑。

标签: file parsing ocaml string-parsing file-read


【解决方案1】:

这是menhir 解析器生成器(ocamlyacc 的继承者)的一个很好的用例。您可能想使用ocamllex 进行词法分析。都有很好的文档。

您还可以使用 camlp4camlp5 流解析功能。

另请阅读 lexingparsing 上的维基百科页面。

【讨论】:

    【解决方案2】:

    我倾向于使用Aurochs,这是一个用于此类事情的 PEG 解析器。那里的仓库中有示例代码。

    【讨论】:

      【解决方案3】:

      如果您想指定语法并让 ocaml 为您生成词法分析器和解析器,请查看这些 ocamllexocamlyacc 教程。我建议这样做。如果您的文件格式中确实只有一种类型的标记,那么如果您可以使用词法分析器将文件拆分为语法认为有效的标记,那么 ocamlyacc 可能会过大。

      【讨论】:

        猜你喜欢
        • 2014-06-07
        • 2013-01-31
        • 1970-01-01
        • 2020-08-23
        • 2016-07-12
        • 2020-04-07
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多