我有一个文件想要用 Treetop 解析。如果我想解析整个事情,我会使用
rule document
category_listing*
end
我真的不想立即将整个文件读入内存。我知道我可以设置解析器来解析一个category_listing
一次(使用#consume_all_input = false
and #root = :category_listing
),这就是问题的一半。然而,看起来像#parse
预计将通过String
(当我尝试通过它时,它肯定会失败File
),这使得阅读和解析的想法category_listing
by category_listing
听起来像皮塔饼。
Treetop只能用来解析吗String
是?我一直在浏览树顶文档,但没有找到任何明确的内容。
据我从源代码中可以看到,你确实只能传入一个 String 。所以你的选择基本上是要么遵循 Josh Voigts 在他的评论中的想法,要么实现一个反向 IOString 的东西:有一个 String 的东西接口,但“懒惰”地从文件中获取请求的内容。
我不完全确定在不诉诸 C 的情况下这是否可能,即使这样,也可能存在一些方法,其语义使得它们根本无法一致地实现,但也许 Treetop 使用的 String 方法的子集是可以管理的。然而,我想说乔什·沃伊茨的回答是最务实的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)