深入解析 Parse::RecDescent 语法解析技巧
1. 重复指定符与动作
重复指定符只能应用于子规则类型的匹配。目前构建的被严格称为识别器,可判断输入是否符合给定结构。接下来需要告知 Parse::RecDescent 识别数据后要执行的操作,这通过动作来实现。
动作最简单的形式是位于语法规则末尾的一段 Perl 代码。例如:
Node : ";" Property(s) { print "I saw a node!\n" }
运行此规则并使用上一节“Simple Parsing with Parse::RecDescent”中的输入,会得到输出:
I saw a node!
I saw a node!
I saw a node!
I saw a node!
I saw a node!
I saw a node!
I saw a node!
I saw a node!
这表明示例 SGF 文件中实际上有八个节点。
还可以使用 @item 数组获取每次匹配的结果:
Property : PropIdent PropValue(s)
{ print "I saw a property of type $item[1]!\n" }
注意,此数组本质上是从 1 开始索引的
超级会员免费看
订阅专栏 解锁全文
15

被折叠的 条评论
为什么被折叠?



