parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Marat Suponitsky 26.03.2006 13:39

Рассказываю алгоритм выполнения Вашего кода.
Вы создаете таблицу, состоящую из 4х строк:
$tbl[^table::create{id
1
2
3
4
}]
Вы создаете пустую переменную:
$c[]
Далее Вы создате конструкцию:
^tbl.menu{
   $c[${c}0]  #теперь $c = 0
}{ $c[${c}1]} #$c = 01
Т.к. в $tbl 4 строки, цикл menu выполняется 4 раза:
1 шаг - присвоение $c[0], присвоение разделителю $c[01]
2 шаг - дозапись в $c[0] полученного разделителя $c[01], $c[001]
3 шаг - дозапись разделителя в $c[001] - $c[00101]
4 шаг - дозапись разделители в $c[00101] - $c[0010101]
Далее Вы выводите $c:
$c
Парсер выдает значение измученной $c - 0010101, которое полученно не самым человеческим образом ;)
Опишите Вашу задачу, думаю, ее можно решить более рационально.