parser

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

 

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

вы поняли неправильно

Misha v.3 10.08.2009 16:43 / 10.08.2009 16:45

в вашем коде:
$loc[funvar]
^process{$loc}
в тело process подставляется содержимое переменной loc, и её содержимое (funvar) "процессится"

представьте, что у вас в БД лежит парсерный код, и вам его надо выполнить. тут поможет process:
$var[^string:sql{получаем текст}]
^process{$var}
или более изощрённый пример: у вас в переменной лежит имя класса, а вам надо создать объект этого класса (сейчас это сделать без process невозможно, в 3.4.0 будет можно):
$class_name[date]
^process{^$var[^^${class_name}::now[]]}
^var.sql-string[]
если вы временно удалите ^process{}, то парсер выведет $var[^date::now[]]

это -- буквы, а не код (чтобы они не были кодом я экранировал служебные символы), и без process они выполнены не будут (как не выполняется то, что вы получили из БД или из файла и выводите на экран).

по поводу контекста: да, объект не канает, канает только класс.
сделано это было для того, чтобы с помощью process можно было добавлять новые методы к уже существующему классу.