- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个文件想用 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
吗?我一直在查看树顶文档,但没有找到任何确定的信息。
最佳答案
据我所知,从源代码来看,你确实只能传入一个字符串。所以你的选择基本上是要么遵循 Josh Voigts 在他的评论中的想法,要么实现一些反向的 IOString:一些东西有一个 String 接口(interface),但“懒惰地”从文件中获取请求的内容。
我不完全确定如果不求助于 C 是否有可能,即使那样可能会有一些方法的语义使得它们根本无法一致地实现,但也许 Treetop 使用的 String 方法的子集是这样的这是易于管理的。但是,我认为 Josh Voigts 的回答是最务实的。
关于ruby - 我可以使用 Treetop 来解析 IO 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13655658/
我有一个只有两条规则的树顶语法: grammar RCFAE rule num [0-9]+ end rule identifier [a-z
我将如何在 Treetop 中做这样的事情? /.+?;/ 似乎唯一的方法是这样做: [^;]+ ';' 哪个有点丑......还有其他方式吗? .+? 似乎不起作用.. 最佳答案 默认情况下 PEG
我刚刚开始使用 TreeTop 来做解析工作。以下是令我困惑的片段: grammar Fortran rule integer [1-9] [0-9]* end
我有语法文件alexa_scrape.tt: grammar AlexaScrape rule document category_listing* end rule catego
我有这个规范: it 'can parse armies with only section headers' do list = <<-LIST :Core :Special :Om
我已经简化了在 Treetop 中表达的语法,并且我正在尝试使用自定义节点将解析器的输出过滤为 AST。 grammar Elem rule top lpar 'top' space
我有一个文件想用 Treetop 解析。如果我想解析整个东西,我会使用 rule document category_listing* end 我真的不想一次将整个文件读入内存。我知道我可以将解析
我正在尝试使用 Treetop解析 ERB 文件。我需要能够处理如下行: 既然 Treetop 是用 Ruby 编写的,而你用 Ruby 编写 Treetop 语法,那么 Treetop 中是否已
我已经定义了使用 Treetop 解析字符串和数字的简单语法,如下所示。 grammar Simple rule value number / string end
使用 Ruby 的正则表达式,我可以写/[0-9]{3,}/我不知道如何在树顶写这个,除了: rule at_least_three_digit_number [0-9] [0-9] [0-9]+
有没有人见过 treetop 的 vim 缩进文件? , Ruby 解析器/生成器?我找到了一个 vim 语法高亮文件,但还没有看到用于缩进的文件。 最佳答案 看起来很简单——我只是创建一个文件 ~/
我正在尝试使用 Ruby 的树顶打开 Packages.gz,但我在使关键字和值明确无误时遇到了麻烦。这是我的树顶语法: grammar Debian rule collection en
我是一名优秀的程序员,十分优秀!