サブ規則の反復指定子
7種類
#!/usr/bin/env perl use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q{ inputs : input(?) { print Data::Dumper::Dumper($item[1]); } input : 'a' 'b' { [@item[1,2]]; } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
$VAR1 = []; ab $VAR1 = [ [ 'a', 'b' ] ]; abab $VAR1 = [ [ 'a', 'b' ] ];
#!/usr/bin/env perl use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q{ inputs : input(s) { print Data::Dumper::Dumper($item[1]); } input : 'a' 'b' { [@item[1,2]]; } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
Bad text! ab $VAR1 = [ [ 'a', 'b' ] ]; abab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ] ]; ababab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ], [ 'a', 'b' ] ];
#!/usr/bin/env perl use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q{ inputs : input(s?) { print Data::Dumper::Dumper($item[1]); } input : 'a' 'b' { [@item[1,2]]; } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
$VAR1 = []; ab $VAR1 = [ [ 'a', 'b' ] ]; abab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ] ]; ababab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ], [ 'a', 'b' ] ];
#!/usr/bin/env perl use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q{ inputs : input(2) { print Data::Dumper::Dumper($item[1]); } input : 'a' 'b' { [@item[1,2]]; } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
Bad text! ab Bad text! abab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ] ]; ababab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ] ];
#!/usr/bin/env perl use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q{ inputs : input(2..3) { print Data::Dumper::Dumper($item[1]); } input : 'a' 'b' { [@item[1,2]]; } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
Bad text! ab Bad text! abab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ] ]; ababab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ], [ 'a', 'b' ] ]; abababab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ], [ 'a', 'b' ] ];
#!/usr/bin/env perl use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q{ inputs : input(..2) { print Data::Dumper::Dumper($item[1]); } input : 'a' 'b' { [@item[1,2]]; } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
Bad text! ab $VAR1 = [ [ 'a', 'b' ] ]; abab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ] ]; ababab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ] ];
#!/usr/bin/env perl use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q{ inputs : input(2..) { print Data::Dumper::Dumper($item[1]); } input : 'a' 'b' { [@item[1,2]]; } }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
Bad text! ab Bad text! abab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ] ]; ababab $VAR1 = [ [ 'a', 'b' ], [ 'a', 'b' ], [ 'a', 'b' ] ];