parser

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

 

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

Поможите, 1. process на 3.3.0 не работает так как в документации

Newbie 10.08.2009 16:26 / 10.08.2009 16:27

Решил овладеть Parser'ом как можно более глубоко, освоил львиную долю, но по ходу "пьесы" возник ряд вопросов, разрешить которые не могу.
Все их занес в txt-шник и если не затруднит знающих людей пояснить где грабли.

Все действия производятся на версии Parser 3.3.0 для win nt 386 (готовый компил скачан с сайта и подложен вместе с dll-ками
в apache_swissknife)

1.1 Оператор ^process[] как мне показалось не работает так как это в документации, возможно я не понял формулировку.
У меня:
@main[]

$loc[mainvar]   # создадим переменную в методе main
^fun[somewhere] # вызовем метод с просто чем нить (это не принципиально) и это метод напечатает в "поток" funvar
       
@fun[input][loc]
$loc[funvar]
^process{$loc}  # выдаст в поток на экран "funvar" 
Из докуменатции
...Строка будет скомпилирована и выполнена как код на Parser, в указанном контексте, или в текущем контексте.
В качестве контекста можно указать объект или класс, но не метод
(т.е. если вы внутри вашего метода вызовите process, то внутри выполняемого с помощью process кода НЕ БУДУТ доступны локальные переменные вызывающего метода).
Я подозреваю, что не правильно понял что такое внутри метода (может это ^fun[^process{code}] и не будут доступны локальные переменные @fun'a - приведите пример плиз того случая, который указан в документации.

1.2. Контекст вызова ^process[context]{code}
У меня почти буквальный копипаст из примера:
@main[]

$running_man[^man::create[]] 
^process[$running_man]{ 
    Имя: $name<br />          # Выдаст Имя:<пусто> - то есть такое ощущение, что объект в качестве параметра не канает, если я 
}                             
@CLASS
man

@create[]
$name[Вася]
Когда делаю ^process[$man:CLASS] - то вроде канает (пишу не с этого компа - поэтому не помню, но помню что именно с объектом в качестве контекста
запара, пробовал создавть $name[Вася] и в методе @auto[] у класса - результат тот же такое ощущение что $object не работает как контекст

P.S.: Буду благодарен за отведенные грабли!
Спасибо.