Товарищи! Если тут есть кто-то понимающий в Parse::RecDescent
Есть код, задача которого парсить построчно:
$Parse::RecDescent::skip = '';
my $grammar = q{
Page: Line(s) {print "Finished! \n"}
Line: /^.*/ /\n|\Z/ {print "Line: '$item[1]'\n"}
};
my $parser = new Parse::RecDescent($grammar);
my $text = "aaaaa\nbbbbbb\nccccc";
if ($parser->Page($text))
{
print "Happy!\n"
} else
{
print "Unhapy :-(\n"
}
Однако парсер почему-то находит еще одну пустую строку в конце:
Line: 'aaaaa'
Line: 'bbbbbb'
Line: 'ccccc'
Line: ''
Finished!
Happy!
Я че-то не понимаю почему, пытался смотреть на $::RD_TRACE = 1; но тоже не вкурил...
Кто-нибудь может объяснить почему так происходит? И как такие вещи делать правильно?
К сожалению родная рассылка полудохлая там спрашивать почти что бесполезно. Я спросил, но когда ответят — неизвесно...