Ocaml - 文件和解析

pri*_*nka 5 parsing ocaml file file-read string-parsing

如何从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)]

有没有很好的解析教程?

Bas*_*tch 5

这是menhir解析器生成器(后继者ocamlyacc)的一个很好的用例.你可能想用ocamllexlexing.都有很好的文档.

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

阅读有关lexing解析的维基百科页面.


oob*_*oob 2

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