Perl 6 正则表达式/语法比 Perl 5 或任何地方的相关 Perl 兼容正则表达式(包括 Java 中的正则表达式)结构更好、功能更强大且可读性更强。我正在寻找一种使用 Java 中的正则表达式/语法代码执行 Perl 6 代码的方法。
这是我想做的一个常见示例:
grammar Calculator {
token TOP { [ <add> | <sub> ] }
rule add { <num> '+' <num> }
rule sub { <num> '-' <num> }
token num { \d+ }
}
class Calculations {
method TOP ($/) { make $<add> ?? $<add>.made !! $<sub>.made; }
method add ($/) { make [+] $<num>; }
method sub ($/) { make [-] $<num>; }
}
say Calculator.parse('2 + 3', actions => Calculations).made;
# OUTPUT: «5»
也许我必须Class在 Perl 6 中编写一个,并且必须为 JVM 字节码编译它,然后我可以调用它。这是一个解决方案吗?或者那是不可能的?
也许从 Java 调用 Perl 6 太难了。还有另一个方向。Perl 6 中有很多内联模块,如 Inline::Python、Inline::Perl5 等。还有一种在 Perl 6 中运行 java 代码的方法。这是我找到的一个例子:
use java::util::zip::CRC32:from<java>;
my $crc = CRC32.new();
for 'Hello, Java'.encode('utf-8') {
$crc.'method/update/(B)V'($_);
}
say $crc.getValue();
这是一种从 Perl 6 开始并将大量 Java 代码绑定到一个项目的可能方法吗?但是如何从 Java 返回到我的 Perl 6 代码?对于 Perl 5,我可以找到 Inline::Java::Callback 模块,但不能找到 Perl 6。
我应该如何以专业的方式做到这一点?
相关分类