加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

解析 – 在语法中(在Perl 6中)是什么意思?

发布时间:2020-12-16 06:26:40 所属栏目:大数据 来源:网络整理
导读:我在 Config::INI Perl?6 Grammar中发现了一个波浪号?: token header { ^^ h* '[' ~ ']' $text=-[ ] n ]+ h* .eol+ } 在我处理的文本中没有波形?.我知道'[‘?’]’是importante,因为省略'[‘,?和’]’中的任何一个或全部使得语法不再符合我的文本. 因为
我在 Config::INI Perl?6 Grammar中发现了一个波浪号?:

token header { ^^ h* '[' ~ ']' $<text>=<-[ ] n ]>+ h* <.eol>+ }

在我处理的文本中没有波形?.我知道'[‘?’]’是importante,因为省略'[‘,?和’]’中的任何一个或全部使得语法不再符合我的文本.

因为我知道我匹配的模式是什么,所以我改变它以便方括号围绕文本表达式,因此:

token header   { ^^ h* '[' $<text>=<-[ ] n ]>+ ']' h* <.eol>+ }

所以在我看来,'[‘?’]’实际上是说匹配一个方括号,然后期待后面的结束括号.

无论如何,我知道在正常的Perl 6语法中,tilde~用于连接字符串.但这显然在this Grammar中意味着不同的东西.(在Perl 6中,你可以使用语法从文本中提取复杂的数据结构.它们就像正则表达式更上一层楼.).

无论如何,我搜索了documentation的Grammars和Regular Expressions的单个?,但我没有找到任何语法内部或正则表达式内.

cross posted on StackOverflow en espa?ol

解决方法

您可以在设计文档中找到解释: https://github.com/perl6/roast/blob/master/S05-metachars/tilde.t#L6-L81

它主要执行您发现的操作:将波形符替换为右括号后面的表达式,并在括号字符之间搜索它.但是,它增加了一些额外的魔力来帮助表达式识别终止括号,并在未找到最终括号时提供更有用的错误消息.所以你通常会以同样的方式得到相同的结果,但并非总是如此.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读