空のアクション
undef が返り、失敗するらしい
#!/usr/bin/env perl use strict; use Parse::RecDescent; my $grammar = q{ inputs : 'a' { } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
a Bad text!
「1;」を書いておくと大丈夫
#!/usr/bin/env perl use strict; use Parse::RecDescent; my $grammar = q{ inputs : 'a' { 1; } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
a b Bad text!
説明では「$::debugging」という特別な変数があるようにも読めるが、そういう訳じゃないようだ。