问题标签 [moo]

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 回答
21 浏览

javascript - moo 词法分析器是否支持所有正则表达式语法?

我只是在玩https://ablingeroscar.github.io/moo-playground/我不明白为什么替换WS: /[ \t]+/不起作用WS: /[\s]+/。那不应该捡起任何空白吗?

同样,我不确定为什么String: /[^]+/(我只是在测试匹配所有内容)也不起作用。

我错过了什么吗?

0 投票
0 回答
62 浏览

perl - 除非使用 Moo 的模块首先启动,否则 DateTime 将无法正确加载

我正在清理代码并Forecast::IO从我的 Perl 脚本中删除现在已弃用的模块。当我这样做时,我开始收到此错误:

发生错误的第 1340 行是无害的,use DateTime;.

我不确定是什么DateTime会导致它不高兴我不再使用不相关的Forecast::IO模块,所以我开始拆开后一个模块以找出阻止错误的代码。基本部分似乎Moo包含在其中,Forecast::IO并且至少有一个 Moohas声明:

出于某种原因,如果存在至少具有这些行的模块,则 DateTime 加载正常。否则,会发生我上面提到的错误,在 DateTime 的第 13 行阻塞use Carp;。即使我放入use Moo; has testkey => ( is => 'ro' );自己的模块,它也会在use DateTime.

即使我曾经grep -r Forecast::IO遍历代码库以寻找一些错误的引用并出现空缺。所以,我决定尝试加载 DateTime 模块:perl -MDateTime. 这也会产生错误:

0 投票
1 回答
59 浏览

javascript - 我的编程语言的 Lexer 不会处理 NEWLINE(用 moo js 完成)

我正在创建一种新的编程语言,只是为了好玩和了解更基本的语言。我开始用 moo js 编写一个词法分析器,除了 NEWLINE 之外一切都运行良好。我尝试了很多事情,但它不会解决。我什至尝试从 moo js 的文档中复制一段确切的代码,但仍然没有帮助。

词法分析器代码:

文本词法分析器代码:

测试示例:

0 投票
1 回答
25 浏览

parsing - 用 moo 生成的数据结构理解 Nearley

我有这个语法:

现在,当我向 nearley 提供以下输入时://\n//\n//\n//\n//我得到了这个结果:

我不太明白为什么生成的数组嵌套如此之深,以及是否有办法让每个元素都保持平坦。相同语义级别的类似注释应该是一个数组的一部分,而不是嵌套的。

0 投票
1 回答
53 浏览

perl - 如何使用 Moo 从对象方法中获取代码引用

我在 Perl v5.26 和 Linux 下使用 Moo (OO)。

我正在编写测试并在对象中有某种运行时字典来存储应用程序的状态。我想测试定义的代码引用是否指向该对象中的适当方法。

我的问题是为这个测试找到正确的表达方式。

细节

应用程序工具包在运行时通过几个步骤进行初始化,以标准化一些东西。这是设置:

setRuntimeexitFunc 根据变量 $RESPONSE设置 $TK internal an 。

  • $RESPONSE = 'ERROR'链接方法$exitFun = \&exitError is $TK->exitError
  • $RESPONSE = 'WARN' 链接方法$exitFun = \&exitWarn is $TK->exitWarn

在测试套件中,我想测试哪个$exitFun(代码参考)由$TK->getRuntimeValues.

似乎测试试图调用该方法。测试从方法以外的方法获取 CODE REF 的正确表达式是什么$TK->

编辑定义:

在包AppTK中,关系由字典定义: