如何在Perl 5中定义解析语法?

Aar*_*sen 10 perl parsing perl6 raku

我最近决定看看Perl,当面对Perl 5 vs 6时,由于它的成熟和大量的支持,我选择了5.

然而,Perl 6的一个真正引起我兴趣的是grammar关键字,允许用户定义一种可用于解析复杂文本的语言语法.在其他语言中,通常需要外部库或手动解析实现.

既然我已经确定了Perl 5,那么Perl 5中的Perl 6 grammar关键字(或构建语法的其他功能)是否有任何粗略的等价,内置或其他?

cho*_*oba 11

没有核心支持,但您可以查看Parse :: RecDescent,Marpa :: R2,Regexp :: Grammars,或者更简单的任务,只需(DEFINE)在正则表达式中使用(参见perlre).