我如何在 Perl 5 中定义解析语法?
How can I define a parsing grammar in Perl 5?
我最近决定研究 Perl,当面对 Perl 5 与 6 时,我选择了 5,因为它的成熟度和广泛的支持。
然而,Perl 6 的其中一个真正让我着迷的特性是 grammar
keyword,它允许定义一种可用于解析复杂文本的语言语法。在其他语言中,通常需要外部库或手动解析实现。
既然我已经选择了 Perl 5,那么在 Perl 5 中是否存在与 Perl 6 的 grammar
关键字(或其他用于构建语法的功能)大致等效的内置或其他方式?
没有核心支持,但你可以看看Parse::RecDescent, Marpa::R2, Regexp::Grammars, or for simpler tasks, just use (DEFINE)
in a regex (see perlre)。
虽然我自己用得不多,但我相信Acmeist软件Pegex接近Perl 6 Grammars
我最近决定研究 Perl,当面对 Perl 5 与 6 时,我选择了 5,因为它的成熟度和广泛的支持。
然而,Perl 6 的其中一个真正让我着迷的特性是 grammar
keyword,它允许定义一种可用于解析复杂文本的语言语法。在其他语言中,通常需要外部库或手动解析实现。
既然我已经选择了 Perl 5,那么在 Perl 5 中是否存在与 Perl 6 的 grammar
关键字(或其他用于构建语法的功能)大致等效的内置或其他方式?
没有核心支持,但你可以看看Parse::RecDescent, Marpa::R2, Regexp::Grammars, or for simpler tasks, just use (DEFINE)
in a regex (see perlre)。
虽然我自己用得不多,但我相信Acmeist软件Pegex接近Perl 6 Grammars