当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在语法中(在Perl6中)是什么意思?》经验,为你挑选了1个好方法。

~在这个Config :: INI Perl 6语法中发现了一个代字号:

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

~我正在处理的文本中没有波浪号.我知道,'[' ~ ']'是因为重要提示漏报任何一个或全部'[',~以及']'使语法不再匹配我的文字.

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

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

所以在我看来,这'[' ~ ']'真的是说匹配一个方括号,然后期待后面的结束括号.

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

无论如何,我搜索文档的Grammars和正则表达式的单个~,但我没有找到任何语法内部或正则表达式.


交叉发布在StackOverflowenespañol上



1> Aaron Baughe..:

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

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

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有