// BEHAVIOR.och oszt ly implement ci¢. // Gener lva: 1999.10.10, 14:31:52, OBJCCC v2.2.03 // Meta oszt ly defin¡ci¢: Van #ifndef CA_OBJECT_N #ifdef _STRICT_PARENT_ #ifdef _CA_CM_ONLY_ #include "OBJECT.och" #else // _CA_CM_ONLY_ #define _CA_CM_ONLY_ #include "OBJECT.och" #undef _CA_CM_ONLY_ #endif // _CA_CM_ONLY_ #else #include "OBJECT.och" #endif // _STRICT_PARENT_ #endif // CA_OBJECT_N #ifndef _CA_CM_ONLY_ #ifndef _BEHAVIOR_OCH_ #define _BEHAVIOR_OCH_ #xtranslate BEHAVIOR.:oinit => (OBJGEN.():(4)) #xtranslate BEHAVIOR.:getclass => (OBJGEN.():(5)) #xtranslate BEHAVIOR.:isclass => (OBJGEN.():(6)) #xtranslate BEHAVIOR.:getattrib => (OBJGEN.():(7)) #xtranslate BEHAVIOR.:setattrib => (OBJGEN.():(8)) #xtranslate BEHAVIOR.:parent => \[CA_OBJECT_N+1\] #xtranslate BEHAVIOR.:name => \[CA_OBJECT_N+2\] #xtranslate BEHAVIOR.:objsize => \[CA_OBJECT_N+3\] #xtranslate BEHAVIOR.:attribs => \[CA_OBJECT_N+4\] #xtranslate BEHAVIOR.:methods => \[CA_OBJECT_N+5\] #xtranslate BEHAVIOR.:classid => \[CA_OBJECT_N+6\] #xtranslate BEHAVIOR.:parentclassids => \[CA_OBJECT_N+7\] #xtranslate BEHAVIOR.:amblock => \[CA_OBJECT_N+8\] #xtranslate BEHAVIOR.:methodsblock => \[CA_OBJECT_N+9\] // Specifik lva: onew() // Specifik lva: ocreate() // Specifik lva: rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) // ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) // Specifik lva: oinitclass() // Specifik lva: getmethodsimplement() // ™r”k”lve: isclass() // Specifik lva: attribidx(name) // Specifik lva: needclassid() // Specifik lva: isinheritfrom(parentClass) #xtranslate BEHAVIOR.:onew => (OBJGEN.():(CM_OBJECT_N+1)) #xtranslate BEHAVIOR.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) #xtranslate BEHAVIOR.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) // ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xtranslate BEHAVIOR.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) #xtranslate BEHAVIOR.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) // ™r”k”lve: isclass() #xtranslate BEHAVIOR.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) #xtranslate BEHAVIOR.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) #xtranslate BEHAVIOR.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) #endif // _BEHAVIOR_OCH_ #endif // _CA_CM_ONLY_ #ifndef CA_BEHAVIOR_N #define CA_BEHAVIOR_N CA_OBJECT_N+10 #define CM_BEHAVIOR_N CM_OBJECT_N+8 #xtranslate BEHAVIOR.:objmethodsimplement => \[CA_OBJECT_N+10\] #endif // CA_BEHAVIOR_N #ifndef _CA_CM_ONLY_ #ifndef _META_OCH_ #define _META_OCH_ ********************************************************************** #xtranslate C.BEHAVIOR: => (META.clBEHAVIOR():) #xtranslate C.BEHAVIOR:self() => (clBEHAVIOR()) #xtranslate META.:parent => \[CA_OBJECT_N+1\] #xtranslate META.:name => \[CA_OBJECT_N+2\] #xtranslate META.:objsize => \[CA_OBJECT_N+3\] #xtranslate META.:attribs => \[CA_OBJECT_N+4\] #xtranslate META.:methods => \[CA_OBJECT_N+5\] #xtranslate META.:classid => \[CA_OBJECT_N+6\] #xtranslate META.:parentclassids => \[CA_OBJECT_N+7\] #xtranslate META.:amblock => \[CA_OBJECT_N+8\] #xtranslate META.:methodsblock => \[CA_OBJECT_N+9\] #xtranslate META.:objmethodsimplement => \[CA_OBJECT_N+10\] #xtranslate META.:oinit => (OBJGEN.():(4)) #xtranslate META.:getclass => (OBJGEN.():(5)) #xtranslate META.:isclass => (OBJGEN.():(6)) #xtranslate META.:getattrib => (OBJGEN.():(7)) #xtranslate META.:setattrib => (OBJGEN.():(8)) #xtranslate META.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) #xtranslate META.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) #xtranslate META.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) #xtranslate META.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) #xtranslate META.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) #xtranslate META.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) #xtranslate META.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) #xtranslate META.:ofclass => \[CA_BEHAVIOR_N+1\] // ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) // ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) // ™r”k”lve: ocreate() // ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) // ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) // ™r”k”lve: ocreate() #endif // _META_OCH_ #endif // _CA_CM_ONLY_ #ifndef CA_META_N #define CA_META_N CA_BEHAVIOR_N+1 #define CM_META_N CM_BEHAVIOR_N+0 #xtranslate META.:onew => (OBJGEN.():(CM_OBJECT_N+1)) #endif // CA_META_N ********************************************************************** #ifdef _BEHAVIOR_PRG_ #ifndef _BEHAVIOR_PRG_OCH_ #define _BEHAVIOR_PRG_OCH_ ********************************************************************** #xtranslate othis: => BEHAVIOR.(othis): #xtranslate thisclass: => META.(this:getClass()): #define CTHIS BEHAVIOR ********************************************************************** #xtranslate this: => BEHAVIOR.(this): #xcommand implement onew() => static function be_onew(this) #xcommand implement ocreate() => static function be_ocreate(this) #xcommand implement rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; static function be_rawoinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xcommand implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; static function be_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xcommand implement oinitclass() => static function retobj(this) #xcommand implement getmethodsimplement() => ; static function be_getMethodsImplement(this) #xcommand implement isclass() => static function be_isClass(this) #xcommand implement attribidx(name) => ; static function be_attribIdx(this,name) #xcommand implement needclassid() => static function be_needClassId(this) #xcommand implement isinheritfrom(parentClass) => ; static function be_isInheritFrom(this,parentClass) #ifdef _IMPLEMENT_EXPORT_ #xcommand implement export onew() => function be_onew(this) #xcommand implement export ocreate() => function be_ocreate(this) #xcommand implement export rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; function be_rawoinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xcommand implement export oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; function be_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xcommand implement export oinitclass() => function retobj(this) #xcommand implement export getmethodsimplement() => ; function be_getMethodsImplement(this) #xcommand implement export isclass() => function be_isClass(this) #xcommand implement export attribidx(name) => ; function be_attribIdx(this,name) #xcommand implement export needclassid() => function be_needClassId(this) #xcommand implement export isinheritfrom(parentClass) => ; function be_isInheritFrom(this,parentClass) #endif // _IMPLEMENT_EXPORT_ #xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(4)) #xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(5)) #xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(6)) #xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(7)) #xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(8)) ********************************************************************** static function setCMethods(pOsztaly) // Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. pOsztaly[(CM_OBJECT_N+1)]:={|this| be_onew(this)} pOsztaly[(CM_OBJECT_N+2)]:={|this| be_ocreate(this)} pOsztaly[(CM_OBJECT_N+3)]:={|this,parent,name,nAttribs,nMethods,amBlock,methodsBlock| be_rawoinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} pOsztaly[(4)]:={|this,parent,name,nAttribs,nMethods,amBlock,methodsBlock| be_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} pOsztaly[(CM_OBJECT_N+4)]:={|this| retobj(this)} pOsztaly[(CM_OBJECT_N+5)]:={|this| be_getMethodsImplement(this)} pOsztaly[(6)]:={|this| be_isClass(this)} pOsztaly[(CM_OBJECT_N+6)]:={|this,name| be_attribIdx(this,name)} pOsztaly[(CM_OBJECT_N+7)]:={|this| be_needClassId(this)} pOsztaly[(CM_OBJECT_N+8)]:={|this,parentClass| be_isInheritFrom(this,parentClass)} return pOsztaly ********************************************************************** static function setCams(ta,tm) // Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attrib£tumaival ‚s m–veleteivel. ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'parent',nil} ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'name',nil} ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'objsize',nil} ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'attribs',nil} ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'methods',nil} ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'classid',nil} ta[CA_OBJECT_N+7-CA_NIL_N] := {CA_OBJECT_N+7,'parentclassids',nil} ta[CA_OBJECT_N+8-CA_NIL_N] := {CA_OBJECT_N+8,'amblock',nil} ta[CA_OBJECT_N+9-CA_NIL_N] := {CA_OBJECT_N+9,'methodsblock',nil} ta[CA_OBJECT_N+10-CA_NIL_N] := {CA_OBJECT_N+10,'objmethodsimplement',nil} tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','',nil} tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'ocreate','',nil} tm[(CM_OBJECT_N+3)-CM_NIL_N] := {(CM_OBJECT_N+3),'rawoinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} tm[(4)-CM_NIL_N] := {(4),'oinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil} tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'getmethodsimplement','',nil} tm[(6)-CM_NIL_N] := {(6),'isclass','',nil} tm[(CM_OBJECT_N+6)-CM_NIL_N] := {(CM_OBJECT_N+6),'attribidx','name',nil} tm[(CM_OBJECT_N+7)-CM_NIL_N] := {(CM_OBJECT_N+7),'needclassid','',nil} tm[(CM_OBJECT_N+8)-CM_NIL_N] := {(CM_OBJECT_N+8),'isinheritfrom','parentClass',nil} return nil #ifndef _NO_CLBEHAVIOR_ #ifdef _STRICT_PARENT_ #ifdef _CA_CM_ONLY_ #include "meta.och" #else // _CA_CM_ONLY_ #define _CA_CM_ONLY_ #include "meta.och" #undef _CA_CM_ONLY_ #endif // _CA_CM_ONLY_ #else #include "meta.och" #endif // _STRICT_PARENT_ ********************************************************************** function clBEHAVIOR() // El“szedi az oszt lyt. (class) static osztaly if (osztaly==nil) osztaly:=META.clMETA():onew(; clOBJECT(),; "BEHAVIOR",; CA_BEHAVIOR_N,; CM_BEHAVIOR_N,; {|ta,tm|setCams(ta,tm)},; {|t|setCMethods(t)}) endif return osztaly #endif // _NO_CLBEHAVIOR_ #ifndef _NO_META_ ********************************************************************** #xtranslate class: => META.(class): #xcommand cimplement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; static function me_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xcommand cimplement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; static function me_onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xcommand cimplement ocreate() => static function me_ocreate(class) #ifdef _IMPLEMENT_EXPORT_ #xcommand cimplement export oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; function me_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xcommand cimplement export onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; function me_onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) #xcommand cimplement export ocreate() => function me_ocreate(class) #endif // _IMPLEMENT_EXPORT_ #xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(4)) #xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(5)) #xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(6)) #xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(7)) #xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(8)) #xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+1)) #xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+2)) #xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+3)) #xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+4)) #xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+5)) #xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+6)) #xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+7)) #xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+8)) ********************************************************************** static function setMCMethods(pOsztaly) // Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. pOsztaly[(4)]:={|class,parent,name,nAttribs,nMethods,amBlock,methodsBlock| me_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} pOsztaly[(CM_OBJECT_N+1)]:={|class,parent,name,nAttribs,nMethods,amBlock,methodsBlock| me_onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} pOsztaly[(CM_OBJECT_N+2)]:={|class| me_ocreate(class)} return pOsztaly ********************************************************************** static function setMCams(ta,tm) // Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attrib£tumaival ‚s m–veleteivel. ta[CA_BEHAVIOR_N+1-CA_NIL_N] := {CA_BEHAVIOR_N+1,'ofclass',nil} tm[(4)-CM_NIL_N] := {(4),'oinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'ocreate','',nil} return nil ********************************************************************** #ifndef _NO_MCMETA_ #ifdef _STRICT_PARENT_ #ifdef _CA_CM_ONLY_ #include "meta.och" // "metaclas.och" #else // _CA_CM_ONLY_ #define _CA_CM_ONLY_ #include "meta.och" // "metaclas.och" #undef _CA_CM_ONLY_ #endif // _CA_CM_ONLY_ #else #include "meta.och" // "metaclas.och" #endif // _STRICT_PARENT_ function mcMETA() // El“szedi az oszt ly metaoszt ly t. (metaclass) static metaOsztaly if (metaOsztaly==nil) metaOsztaly:=META.clMETA():onew(; clBEHAVIOR(),; "META",; CA_META_N,; CM_META_N,; {|ta,tm|setMCams(ta,tm)},; {|t|setMCMethods(t)}) endif return metaOsztaly #endif // _NO_MCMETA_ #endif // _NO_META_ #ifdef _IMPLEMENT_ONEW_ ********************************************************************** cimplement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) local o:=class:ocreate() BEHAVIOR.o:oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) return o #endif // _IMPLEMENT_ONEW_ ********************************************************************** #ifdef _IMPLEMENT_OINIT_ implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) super:oinit() return this #endif // _IMPLEMENT_OINIT_ ********************************************************************** ********************************************************************** #endif // _BEHAVIOR_PRG_OCH_ #endif // _BEHAVIOR_PRG_