ディレクティブ leftop, rightop は演算子に関わるオペランドのリストを返す
まんま
#!/usr/bin/env perl use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q{ inputs : list { print Data::Dumper::Dumper($item[1]); } list : '(' <leftop: list_item ',' list_item> ')' { $return = $item[2] } list_item : /\w/ }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
() Bad text! (a) $VAR1 = [ 'a' ]; (a, b) $VAR1 = [ 'a', 'b' ]; (a, b, c) $VAR1 = [ 'a', 'b', 'c' ];