有没有办法以编程方式测试编译 Raku 代码?

jjm*_*elo 4 syntax compilation raku

您可以将代码保存到文件中并使用raku -c. 有没有办法使用一些公共 API 以编程方式做同样的事情?

Eli*_*sen 5

有一个无证命名参数:check,以EVAL将阻止编译后的代码从实际运行。它会Nil在成功时返回。如果有任何错误,它会像其他情况一样抛出。

$ raku -e 'q/say "foo"/.EVAL'
foo

$ raku -e 'q/zay "foo"/.EVAL'
===SORRY!=== Error while compiling ...
Undeclared routine:
    zay used at line 1. Did you mean 'say'?

$ raku -e 'say q/say "foo"/.EVAL(:check)'
Nil
Run Code Online (Sandbox Code Playgroud)

也许应该记录该命名参数。

编辑:请注意,正如@ugexe 指出的那样,这不会阻止BEGIN块运行。

  • `raku -e 'q/BEGIN 说“foo”/.EVAL(:check)'` (4认同)