2011-12-15 64 views
5

如何从ocaml中的文件读取内容?具体如何解析它们?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)]

是否有良好的教程解析两个列表?

+2

请不要转发问题。如果您有任何新增加到您现有的问题,请修改它。 – BoltClock 2011-12-16 17:44:35

回答

2

如果要指定语法并使ocaml为您生成词法分析器和分析器,请查看这些ocamllexocamlyacc教程。我建议这样做。如果你真的只有一种类型的文件格式的标记,那么如果你可以使用词法分析器将文件分割成文法认为有效的标记,那么ocamlyacc可能会过度杀伤。

5

对于menhir解析器生成器(ocamlyacc的后继者),这是一个很好的用例。您可能需要使用ocamllex进行勒索。所有的文件都很好。

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

请同时阅读维基百科页面lexing & parsing

+0

你可以参考一些示例代码或其他内容吗? – priyanka 2011-12-15 08:08:58

3

我倾向于使用Aurochs,这是一个PEG解析器。那里的回购中有代码示例。