首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ANTLR4 '+‘运算

ANTLR4 '+‘运算
EN

Stack Overflow用户
提问于 2017-04-24 06:11:57
回答 1查看 2K关注 0票数 1

我正在为我现在正在学习的一个类使用ANTLR4,我似乎理解其中的大部分内容,但我不知道'+‘是干什么的。我所能知道的是,它通常是在括号中的一组字符后面。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-24 06:44:12

加号是ANTLR中允许确定表达式基数的BNF运算符之一。他们有三个:加,明星(又名)。( kleene算子)和问号。这个意思很容易理解:

  • 问号表示:0或1
  • Plus的意思是:一个或多个
  • 的意思是:0或更多

这样的运算符适用于直接继承它的表达式,例如ab+ (一个a和一个或多个b)、[AB]? ( AB中的一个)或a (b | c | d)* (a后面接零或多个bcd)。

ANTLR4还使用一个特殊的结构来表示非贪婪的匹配。语法是BNF运算符之一,加上问号(+?*???)。这是有用的,当你有:介绍者匹配,任何内容,然后匹配一个结束令牌。例如,一个字符串(引号、任何字符、引号)。对于贪婪的匹配,ANTLR4将多个字符串匹配为一个字符串(直到最后的引号)。然而,不贪婪的匹配只匹配到第一个找到的结束令牌(这里是引号)。

附带注意:我不知道??可能有什么用处,因为它匹配一个条目,因此贪婪在这里不起作用。

实际上,这些运算符不是传统BNF的一部分,而是扩展Backus形式的一部分。这就是为什么在EBNF中记录某些语法比在缺乏这些操作的老式BNF中更容易(甚至可能)。

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

https://stackoverflow.com/questions/43580908

复制
相关文章

相似问题

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