当前位置: 首页 > 知识库问答 >
问题:

Perl 6规则如何将参数传递给另一个规则?

闻人哲茂
2023-03-14

在中,如何将参数传递给Perl 6语法?我将参数作为子菜单的一部分传递给规则。我想知道我是如何完全在语法中做到这一点的。假设我有这样的东西:

grammar TryIt {
    rule TOP            { \d+ <stuff> }
    rule stuff ($count) { <[ \S A..Z ]>{$count} }
    }

my $match = TryIt.parse: "123 ABCD";
say $match;

如何将参数从TOP传递到stuff?我没有发现任何例子,关于parens的各种猜测都不起作用。

共有1个答案

苏凯
2023-03-14

这两种形式都有效:

<stuff(...)>
<stuff: ...>

不确定它们在用户文档中列出的位置,但S05:Regexes和Rules设计文档中有一节介绍它们。

请注意,在规则中,像0$$/这样的反向引用只保证在序列点之后可用,例如块的开括号。空块{}工作。

示例

grammar TryIt {
    token TOP            { (\d+) \s {} <stuff($0)> .* }
    token stuff ($count) { <[ A..Z ]> ** {$count} }
}

say TryIt.subparse: "3 ABCDEFG";

输出:

「3 ABCDEFG」
 0 => 「3」
 stuff => 「ABC」
 类似资料:
  • 问题内容: 所以,这就是我正在做的: 我有一张桌子,上面放着所有的桌子。 但是在一个特殊的场合,我希望一个特定的对象在各个方向都有,我将其设置为。 显然,我将CSS样式依次放在一个外部文件中。 但是渲染的CSS仅具有,并且似乎已被覆盖! 请说明: 这是怎么发生的以及为什么发生? 我应该如何安排这些规则来解决我的问题(除了内联样式)? 编辑:我在表中删除之前。我从来没有使用过它,我只是在这里提到它以

  • 问题内容: 我尝试了以下失败的尝试: 在函数a中,我可以使用arguments关键字来访问参数数组,而在函数b中,这些参数将丢失。有没有办法像我尝试的那样将参数传递给另一个javascript函数? 问题答案: 用于对in函数具有相同的访问权,如下所示:

  • 描述 (Description) 分离的规则集包含规则集,例如属性,嵌套规则集,变量声明,mixins等。它存储在变量中并包含在另一个结构中; 规则集的所有属性都将复制到该结构。 例子 (Example) 以下示例显示如何将规则集传递给LESS文件中的mixin - passing_ruleset.htm <!doctype html> <head> <link rel = "s

  • 问题内容: 我是ajax和回调函数的新手,如果我弄错了所有概念,请原谅我。 问题: 我可以将 回调 函数作为参数发送给将执行该回调的另一个函数吗? 问题答案: 对。函数引用与任何其他对象引用一样,您可以将它们传递到您的内心。 这是一个更具体的示例: 您还可以传递以下参数:

  • 我是selenium初学者,只是想把webDriver传递给另一个类,但没有成功。程序应该打开浏览器(“Google”)并在主类中键入一些单词,在第二个类中应该按下“Google”按钮。 以下是我的主要课程: 这是我想从主驱动程序中使用的类。 当我运行它时,它对我说: 传递:main失败:printOnScreen java.lang.NullPointerException 我做错了什么?谢谢高

  • 我试图学习功能性Kotlin,并编写了以下测试代码: 在REPL中,我可以成功调用“findBorrowerX”: 但是我如何拨打“findBorrowerX2”的电话: 并将迭代的借用器x传递给getName?? 这看起来有关联,但我不确定: Kotlin:如何将一个函数作为参数传递给另一个? 提前感谢您对此的帮助! 编辑: 下面是我想做的等效Scala代码: 也许这在科特林是不可能的?