ディレクティブ score、もう一つの例

まんま

#!/usr/bin/env perl

use strict;
use Parse::RecDescent;

my $grammar =
q{
    inputs : line
    line   : seplist[sep=>',']  <score: -@{$item[1]}> { print "*,*\n"; }
           | seplist[sep=>':']  <score: -@{$item[1]}> { print "*:*\n"; }
           | seplist[sep=>" "]  <score: -@{$item[1]}> { print "* *\n"; }
    seplist: <skip:""> <leftop: /[^$arg{sep}]*/ "$arg{sep}" /[^$arg{sep}]*/>
};

my $parse = new Parse::RecDescent ($grammar);

while (<>)
{
    defined $parse->inputs($_) or print "Bad text!\n";
}

で、

     Warning (line 6): Token pattern "m/[^$arg{sep}]*/" may not be a valid
                       regular expression

     Warning (line 6): Token pattern "m/[^$arg{sep}]*/" may not be a valid
                       regular expression
  • Warning だから動作には問題ないの???
  • 「seplist[」の箇所自体もそんな表記あったんだっけ?と分かっていない…(←サブ規則の引数リスト?)