问题标签 [nqp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
89 浏览

raku - 使用 Metamodel::ConcreteRoleHOW.new_type 时出错

在 MetamodelConcreteRoleHOW中似乎没有使用new_type的方法,顾名思义,它应该用于创建角色的新实例。主要问题是当您尝试混合新角色时,正如签名 ( method new_type(:@roles, :$name = '<anon>', :$ver, :$auth, :$repr, :$api)) 所暗示的那样:

使用另一个Positional列表会产生不同的错误:

击败我在那里我可以使用什么样的位置。可以肯定的是,这是在 NQP 中实现的,所以也许我应该定义一个 NQP 数组。但我真的不知道。任何帮助将不胜感激。

编辑. 首先,错误发生在您调用compose. 其次,正如 Raiph 所说,您实际上必须使用 NQP 数组

compose现在工作了,它实际上是组合的,但组合的角色仍然只显示你的角色 Mu,而不是Iterable应该添加到它的角色。任何想法?

0 投票
2 回答
127 浏览

raku - 角色“currying”的错误

在 Perl 6 世界中,柯里化是一个通用术语,表示部分实例化,它也用于(参数化)角色的世界。

但是,尚不清楚如何实际使用它:

错误No such symbol T;如果我们T在声明类时简单地使用相同,但在这种情况下它是Undeclared name. 消除方括号及其内容产生No appropriate parametric role variant available for 'Zipi',与将方括号留空相同。似乎有一个(有点)错误报告可以追溯到 2012 年,当然这些示例直接取自CurriedRolehow 的源代码。知道这最终将如何工作,或者是否可以通过仅实例化角色的一些参数来咖喱参数化角色?

0 投票
1 回答
187 浏览

raku - Raku Regex 中单管和双管的区别 (| Vs ||)

Raku 的正则表达式中有两种类型的交替:|||。有什么区别 ?

0 投票
2 回答
97 浏览

raku - 如何打印一个对象,输入 nqp

如何在 NQP 中打印对象?(用于调试目的)

  • 在 Raku 中很容易:

    1. 这是在其短循环代码中调用gist
    2. dd如本文所示的微型数据转储
  • 在 NQP 中似乎更复杂

当然,没有.gist方法,代码调用nqp::encode最终需要一个字符串。

0 投票
1 回答
120 浏览

raku - 如何在自定义语法 (Raku) 中重用语言标记

我想在我的自定义俚语中重用token parameterfrom Perl6::Grammar来添加“custom-param”参数而无需 cargo culting

我的意思是说:

不确定是否清楚:就像在角色的令牌中调用父令牌一样。我知道这个角色会覆盖它,所以我在$grammar.

已经测试过:

  1. 将其定义为返回父匹配对象的方法,但出现以下错误:
  1. 从正则表达式代码插值返回
0 投票
1 回答
77 浏览

raku - 如何覆盖 NQPMatch.Str 函数

...或者如何从匹配的文本$<sigil>.Str中独立地更改值。是的,我在问如何欺骗上面的语法(即打电话给我)。token sigil { ... }

我正在尝试为没有 sigil 的 Raku 写一个俚语

所以我想要nogil令牌,匹配任何东西<?>以返回字符串化的 NqpMatch:$<sigil>.Str到'$'。

目前,我的令牌印记看起来像这样

并且该方法应该返回一个被覆盖的NQPMatch方法Str

尝试失败:

目前,我的大部分测试都有效,但我在没有我的 (with no strict)的情况下在声明中遇到问题,my-var = 42;因为它们被视为方法调用。

@Arne-Sommer 已经发表了一篇文章和一篇文章。这是密切相关的。但这个问题的目的是:

我们如何自定义编译时令牌的返回值,而不是如何声明它。

0 投票
1 回答
86 浏览

raku - 如何在 Raku 中删除多方法

如何使用在已经定义的方法之前调用的多方法来扩充一个类?

我正在尝试启用负下标:@arr[-1]就像在这篇文章中一样,但不更改源。

所以我增加了Array

但正如文档中所述

所以我的 multi 永远不会被调用:

我希望我的方法在他们之前被调用。如何修改调度程序?

0 投票
2 回答
96 浏览

regex - 是否可以在语法 nqp 中运行子语法?

如果我有Grammar a并定义了一个Grammar b具有语法的块'{ ... }',Grammar a是否有可能以某种方式将这些语法链接在一起?即Grammar a是Tcl,Grammar b是嵌入式C。从Perl6 语法切换到Regex 语法时,Rakudo 是如何做到这一点的?

0 投票
1 回答
205 浏览

raku - Apocalypse #1 中引入的“语义模型”是什么?

启示录 #1中,拉里写道,我特别强调

Raku 将支持映射到单个语义模型的多种语法。其次,该单一语义模型将依次映射到多个平台。

我对拉里在写“单一语义模型”时可能意味着什么有一些模糊的概念:

  • 图灵完备语言/自动机;和/或

  • 什么变成了6model;和/或

  • 什么变成了 NQP/nqp。

(我用谷歌搜索并发现了一些讨论,例如slashdot 上的这个,但它们同样含糊不清。)

也许比回答他当时的想法更重要的是已经发生的事情。

他的表述听起来很像它可能映射到NQP 和/或 nqp(在 Raku / NQP/nqp / NQP 后端架构的中间)。

(如果是这样,大概该模型是由 nqp 等效于 Raku 的烤“指定”的?)

或者,根据 Liz++、QAST 或 RAST?


我知道我认为谁能够最好地回答我的主要问题(在标题中),但也许其他人知道?

0 投票
1 回答
96 浏览

grammar - 可以在 Raku 中编写 NQP 的优先级解析器

我试图弄清楚如何在 Raku 中重写 NQP 的 Precedence Parser:

优先级解析器在此处实现:https ://github.com/Raku/nqp/blob/master/src/HLL/Grammar.nqp#L384 NQP 应该是 Raku 的子集,但语法部分似乎是专门的。

如果我想改写 Raku 中 EXPR() 中的优先级解析器,那么要使用什么 Raku 语法原语?即什么会cursor_start_cur()翻译成?cursorRaku 语法中有 a吗?如何设置posRaku Match 对象?会 $termcur.MATCH()翻译成什么等等...

我不是在寻找编写优先解析器的不同方法,而是想知道它是否可以像 NQP 那样在 Raku 中完成。