首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配规则时Grako结束闭包

匹配规则时Grako结束闭包
EN

Stack Overflow用户
提问于 2015-04-11 10:35:20
回答 1查看 97关注 0票数 0

我有这样的语法:

代码语言:javascript
复制
name = /[_a-zA-Z][a-zA-Z0-9]*/;
expression = name '+' name;
def_body = 'def' name:name args:{name} body:expression;

但是当我试图解析时,它总是使用表达式的名字作为参数的一部分。有没有办法让它在args闭包中的每个名称之前进行测试,如果它能够匹配表达式,如果它通过了就结束?

提前谢谢。

编辑:我通过语义解决了它,但我仍然很好奇是否可以通过grako ebnf。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-12 12:11:34

由于参数缺少分隔符,需要在输入中向前看,以决定是否应该继续闭包。消极的展望应该在语法层面解决这个问题:

代码语言:javascript
复制
def_body = 'def' name:name args:{name !'+'} body:expression;

展望未来并不是“作弊”。由于重要的原因,它们是PEG定义中不可或缺的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29576884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档