ディレクティブ score、変数 $score, $score_return
#!/usr/bin/env perl use strict; use Parse::RecDescent; my $grammar = q{ inputs : 'a' { print "*a1 $score $score_return*\n"; } <score: 1> | 'a' { print "*a2 $score $score_return*\n"; } <score: 2> | 'a' { print "*a3 $score $score_return*\n"; } <score: 3> }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
a *a1 * *a2 1 1* *a3 2 1*
#!/usr/bin/env perl use strict; use Parse::RecDescent; my $grammar = q{ inputs : 'a' { print "*a1 $score $score_return*\n"; } <score: 3> | 'a' { print "*a2 $score $score_return*\n"; } <score: 1> | 'a' { print "*a3 $score $score_return*\n"; } <score: 4> }; my $parse = new Parse::RecDescent ($grammar); while (<>) { defined $parse->inputs($_) or print "Bad text!\n"; }
で、
a *a1 * *a2 3 1* *a3 3 1*