我可以使用Treetop来解析IO吗?

我有一个文件,我想用Treetop解析。 如果我想解析整个事情,我会用

rule document category_listing* end 

我真的不想立刻将整个文件读入内存。 我知道我可以设置解析器一次解析一个category_listing (使用#consume_all_input = false#root = :category_listing ),这是问题的一半。 但是,看起来#parse期望传递一个String (当我尝试将它传递给File时它肯定会失败),这使得通过category_listing读取和解析category_listing的想法就像PITA一样。

Treetop只能用于解析String s吗? 我一直在寻找树梢文档,但没有找到任何确定的东西。

至于我可以从源代码中看一眼,你确实只能传入一个字符串。所以你的选择基本上要么在他的评论中遵循Josh Voigts的想法,要么实现一些反向的IOString:有一个字符串的东西接口,但’lazily’从文件中提取所请求的内容。

我不完全确定是否可以在不使用C的情况下实现这一点,即使这样,也可能存在语义无法一致地实现的方法,但也许Treetop使用的String方法的子集是可管理的。 但是,我会说Josh Voigts的回答是最务实的。