|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ruslan Kosolapov 2:5020/400 06 Aug 2004 01:47:01 To : All Subject : Parse::RecDescent vs. recursive rule --------------------------------------------------------------------------------
Hадеюсь, не очень оффтопик...
Имею вот что:
use Parse::RecDescent;
#grammar for string
my $string = q {
start : block(s)
block : char '*'
{ foreach (0 .. int(rand(255))) { print $item[1] } }
char : '.'
{ chr(int(rand(127)) + 127) }
| /./
{ $item[1] }
};
my $parser = Parse::RecDescent->new($string);
$parser->start(".*");
Что хочу получить - по строке .* должно генериться не случайное
количество однажды случайно сгенерированной буквы, а случайное
количество случайных букв, то есть на каждом проходе { foreach (0
.. int(rand(255))) ...} должен генериться новый символ.
По-русски говоря, при обработке правила char * нужно сформировать
строку из случайного количества char, и лишь потом уже пропарсить эту
строку в соответствие с определением char (сорри за возможно
неправильную терминологию). Вот как написать обработку char *, чтобы
работало так, как мне надо?
Может я сам додумаюсь, но пока не получается.
perldoc Parse::RecDescent читал, и если там про это говорится, то либо
я не понял, либо пропустил. Скорее первое, поэтому и спрашиваю здесь.
--
=[ В принципе, для футболистов, футбол - дело привычное.
=[ -- футбол на ОРТ
--- ifmail v.2.15dev5.3
* Origin: SWSoft Novosibirsk, QA Department Second Manager (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/11997f280e5b9.html, оценка из 5, голосов 10
|