parser

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

 

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

Ответ

Misha v.3 10.12.2014 03:50

self -- указывает на объект/класс. в вашем случае он указывает на $MAIN.
вы обращаетесь к переменной класса MAIN (это обычно называют глобальной переменной).
в вашем случае loc_var -- локальная переменная метода класса, а не переменная класса, поэтому там void.

для решения вашей задачи нужно использовать $caller (а не с $caller.self), как увам уже подсказывал Костя.
@def[objname]
^process{^$caller.${objname}.CLASS_NAME}
$caller.self вам понадобился бы, если бы:
- вы пытались бы скомпилировать метод и добавить его в определённый класс
- если бы вы вызывали метод, который одновременно относится к нескольким классам и его поведение зависит от того, в контексте какого класса он вызван.