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它主要执行您发现的 *** 作:将波形符替换为右括号后面的表达式,并在括号字符之间搜索它.但是,它增加了一些额外的魔力来帮助表达式识别终止括号,并在未找到最终括号时提供更有用的错误消息.所以你通常会以同样的方式得到相同的结果,但并非总是如此.
总结以上是内存溢出为你收集整理的解析 – 在语法中(在Perl 6中)是什么意思?全部内容,希望文章能够帮你解决解析 – 在语法中(在Perl 6中)是什么意思?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)