parser

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

 

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

WAT#4 как следствие WAT#3, как получить адекватный $object.CLASS_NAME и $var.CLASS_NAME вызываемого контекста

andylars 10.12.2014 01:31 / 10.12.2014 02:01

Этот пример ниже вообще удручает:
@main[][loc_var]
$loc_var[Alice]
$glob_var[Bob]
$glob_obj[^AClass::create[]]

0=$loc_var.CLASS_NAME         ^def[loc_var]          ^rem{ #Результат: 0=string 1=string 2=void   3=void   4=void   5=void      }
0=$glob_var.CLASS_NAME        ^def[glob_var]         ^rem{ #Результат: 0=string 1=string 2=string 3=string 4=string 5=string    }
0=$glob_obj.CLASS_NAME        ^def[glob_obj]         ^rem{ #Результат: 0=AClass 1=void   2=void   3=void   4=AClass 5=AClass    }
0=$glob_obj.Field.CLASS_NAME  ^def[glob_obj.Field]   ^rem{ #Результат: 0=string 1=void   2=void   3=void   4=string 5=string    }
0=$glob_obj.Proper.CLASS_NAME ^def[glob_obj.Proper]  ^rem{ #Результат: 0=string 1=void   2=void   3=void   4=string 5=string    }

#----

@def[objn]
1=$caller.[$objn].CLASS_NAME 
2=$MAIN:[$objn].CLASS_NAME 
3=$[$objn].CLASS_NAME 
4=^process{^$${objn}.CLASS_NAME} 
5=^process[$caller.self]{^$${objn}.CLASS_NAME}   ^rem{ <-- почему для $loc_var.CLASS_NAME тут не работает? } 


@CLASS
AClass

@create[]
$Field[Chloe]

@GET_Proper[]
$result[Propvalue]
Как обойти и унифицированно правильно получить CLASS_NAME как у объекта "контекста вызова",
так и у переменной контекста вызова
зная в качестве параметра имя этого объекта/переменной
т.е. в моем примере я хочу, чтобы
$loc_var.CLASS_NAME = ^def[loc_var]
$glob_var.CLASS_NAME = ^def[glob_var]
$glob_obj.CLASS_NAME = ^def[glob_obj]
$glob_obj.Field.CLASS_NAME = ^def[glob_obj]
$glob_obj.Proper.CLASS_NAME = ^def[glob_obj]

$blah_var.CLASS_NAME = ^def[blah_var]

# одинаково выдавали
string = string
srring = string
AClass = AClass
string = string
string = string

void = void

т.е. просто - то же самое но из def'a