Files
harbour-core/harbour/samples/cccppc/rmarker.och
1999-11-09 01:37:27 +00:00

316 lines
14 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// RMARKER.och oszt ly implement ci¢.
// Gener lva: 1999.06.10, 14:40:25, OBJCCC v2.2.03
// Meta oszt ly defin¡ci¢: Van
#ifndef CA_TOKEN_N
#ifdef _STRICT_PARENT_
#ifdef _CA_CM_ONLY_
#include "TOKEN.och"
#else // _CA_CM_ONLY_
#define _CA_CM_ONLY_
#include "TOKEN.och"
#undef _CA_CM_ONLY_
#endif // _CA_CM_ONLY_
#else
#include "TOKEN.och"
#endif // _STRICT_PARENT_
#endif // CA_TOKEN_N
#ifndef _CA_CM_ONLY_
#ifndef _RMARKER_OCH_
#define _RMARKER_OCH_
#xtranslate RMARKER.<obj>:id => <obj>\[CA_OBJECT_N+1\]
#xtranslate RMARKER.<obj>:str => <obj>\[CA_OBJECT_N+2\]
#xtranslate RMARKER.<obj>:file => <obj>\[CA_OBJECT_N+3\]
#xtranslate RMARKER.<obj>:line => <obj>\[CA_OBJECT_N+4\]
#xtranslate RMARKER.<obj>:pos => <obj>\[CA_OBJECT_N+5\]
#xtranslate RMARKER.<obj>:classify => <obj>\[CA_OBJECT_N+6\]
#xtranslate RMARKER.<obj>:error => <obj>\[CA_OBJECT_N+7\]
#xtranslate RMARKER.<obj>:eqtype => <obj>\[CA_OBJECT_N+8\]
#xtranslate RMARKER.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate RMARKER.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate RMARKER.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate RMARKER.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate RMARKER.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate RMARKER.<obj>:iserror => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate RMARKER.<obj>:errorstr => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate RMARKER.<obj>:printtostr => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate RMARKER.<obj>:getstr => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate RMARKER.<obj>:copytoken => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate RMARKER.<obj>:mmnum => <obj>\[CA_TOKEN_N+1\]
#xtranslate RMARKER.<obj>:mmtkid => <obj>\[CA_TOKEN_N+2\]
// ™r”k”lve: oinit(id,str,file,line,pos)
// Specifik lva: getname()
// Specifik lva: setmmidxbymm(matchMarkers)
// Specifik lva: changebymmlist(paramValues,result,iLevel,oneLevel)
// ™r”k”lve: oinit(id,str,file,line,pos)
#xtranslate RMARKER.<obj>:getname => (OBJGEN.(<obj>):(CM_TOKEN_N+1))
#xtranslate RMARKER.<obj>:setmmidxbymm => (OBJGEN.(<obj>):(CM_TOKEN_N+2))
#xtranslate RMARKER.<obj>:changebymmlist => (OBJGEN.(<obj>):(CM_TOKEN_N+3))
#endif // _RMARKER_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_RMARKER_N
#define CA_RMARKER_N CA_TOKEN_N+2
#define CM_RMARKER_N CM_TOKEN_N+3
#endif // CA_RMARKER_N
#ifndef _CA_CM_ONLY_
#ifndef _RMARKERCLASS_OCH_
#define _RMARKERCLASS_OCH_
**********************************************************************
#xtranslate C.RMARKER:<m> => (RMARKERCLASS.clRMARKER():<m>)
#xtranslate C.RMARKER:self() => (clRMARKER())
#xtranslate RMARKERCLASS.<obj>:parent => <obj>\[CA_OBJECT_N+1\]
#xtranslate RMARKERCLASS.<obj>:name => <obj>\[CA_OBJECT_N+2\]
#xtranslate RMARKERCLASS.<obj>:objsize => <obj>\[CA_OBJECT_N+3\]
#xtranslate RMARKERCLASS.<obj>:attribs => <obj>\[CA_OBJECT_N+4\]
#xtranslate RMARKERCLASS.<obj>:methods => <obj>\[CA_OBJECT_N+5\]
#xtranslate RMARKERCLASS.<obj>:classid => <obj>\[CA_OBJECT_N+6\]
#xtranslate RMARKERCLASS.<obj>:parentclassids => <obj>\[CA_OBJECT_N+7\]
#xtranslate RMARKERCLASS.<obj>:amblock => <obj>\[CA_OBJECT_N+8\]
#xtranslate RMARKERCLASS.<obj>:methodsblock => <obj>\[CA_OBJECT_N+9\]
#xtranslate RMARKERCLASS.<obj>:objmethodsimplement => <obj>\[CA_OBJECT_N+10\]
#xtranslate RMARKERCLASS.<obj>:errstrarray => <obj>\[CA_BEHAVIOR_N+1\]
#xtranslate RMARKERCLASS.<obj>:equivclass => <obj>\[CA_BEHAVIOR_N+2\]
#xtranslate RMARKERCLASS.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate RMARKERCLASS.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate RMARKERCLASS.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate RMARKERCLASS.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate RMARKERCLASS.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate RMARKERCLASS.<obj>:onew => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate RMARKERCLASS.<obj>:ocreate => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate RMARKERCLASS.<obj>:rawoinit => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate RMARKERCLASS.<obj>:oinitclass => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate RMARKERCLASS.<obj>:getmethodsimplement => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate RMARKERCLASS.<obj>:attribidx => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate RMARKERCLASS.<obj>:needclassid => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate RMARKERCLASS.<obj>:isinheritfrom => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
#xtranslate RMARKERCLASS.<obj>:onewerror => (OBJGEN.(<obj>):(CM_BEHAVIOR_N+1))
#xtranslate RMARKERCLASS.<obj>:copyfromtoken => (OBJGEN.(<obj>):(CM_BEHAVIOR_N+2))
#xtranslate RMARKERCLASS.<obj>:findclassify => (OBJGEN.(<obj>):(CM_BEHAVIOR_N+3))
// ™r”k”lve: onew(id,str,file,line,pos)
// Specifik lva: isresultmarker(aToken)
// ™r”k”lve: onew(id,str,file,line,pos)
#xtranslate RMARKERCLASS.<obj>:isresultmarker => (OBJGEN.(<obj>):(CM_TOKENCLASS_N+1))
#endif // _RMARKERCLASS_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_RMARKERCLASS_N
#define CA_RMARKERCLASS_N CA_TOKENCLASS_N+0
#define CM_RMARKERCLASS_N CM_TOKENCLASS_N+1
#endif // CA_RMARKERCLASS_N
**********************************************************************
#ifdef _RMARKER_PRG_
#ifndef _RMARKER_PRG_OCH_
#define _RMARKER_PRG_OCH_
**********************************************************************
#xtranslate othis:<m> => RMARKER.(othis):<m>
#xtranslate thisclass:<m> => RMARKERCLASS.(this:getClass()):<m>
#define CTHIS RMARKER
**********************************************************************
#xtranslate this:<m> => RMARKER.(this):<m>
#xcommand implement oinit(id,str,file,line,pos) => ;
static function oinit(this,id,str,file,line,pos)
#xcommand implement getname() => static function getname(this)
#xcommand implement setmmidxbymm(matchMarkers) => ;
static function setmmidxbymm(this,matchMarkers)
#xcommand implement changebymmlist(paramValues,result,iLevel,oneLevel) => ;
static function changebymmlist(this,paramValues,result,iLevel,oneLevel)
#ifdef _IMPLEMENT_EXPORT_
#xcommand implement export oinit(id,str,file,line,pos) => ;
function oinit(this,id,str,file,line,pos)
#xcommand implement export getname() => function getname(this)
#xcommand implement export setmmidxbymm(matchMarkers) => ;
function setmmidxbymm(this,matchMarkers)
#xcommand implement export changebymmlist(paramValues,result,iLevel,oneLevel) => ;
function changebymmlist(this,paramValues,result,iLevel,oneLevel)
#endif // _IMPLEMENT_EXPORT_
#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(4))
#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(5))
#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(6))
#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(7))
#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(8))
#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+1))
#xtranslate super:errorstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+2))
#xtranslate super:printtostr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+3))
#xtranslate super:getstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+4))
#xtranslate super:copytoken => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+5))
**********************************************************************
static function setCMethods(pOsztaly)
// Egy t”mb”t felt”lt az oszt ly mveleti blokkjaival.
pOsztaly[(4)]:={|this,id,str,file,line,pos| oinit(this,id,str,file,line,pos)}
pOsztaly[(CM_TOKEN_N+1)]:={|this| getname(this)}
pOsztaly[(CM_TOKEN_N+2)]:={|this,matchMarkers| setmmidxbymm(this,matchMarkers)}
pOsztaly[(CM_TOKEN_N+3)]:={|this,paramValues,result,iLevel,oneLevel| changebymmlist(this,paramValues,result,iLevel,oneLevel)}
return pOsztaly
**********************************************************************
static function setCams(ta,tm)
// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attrib£tumaival s mveleteivel.
ta[CA_TOKEN_N+1-CA_NIL_N] := {CA_TOKEN_N+1,'mmnum', }
ta[CA_TOKEN_N+2-CA_NIL_N] := {CA_TOKEN_N+2,'mmtkid', }
tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos',nil}
tm[(CM_TOKEN_N+1)-CM_NIL_N] := {(CM_TOKEN_N+1),'getname','',nil}
tm[(CM_TOKEN_N+2)-CM_NIL_N] := {(CM_TOKEN_N+2),'setmmidxbymm','matchMarkers',nil}
tm[(CM_TOKEN_N+3)-CM_NIL_N] := {(CM_TOKEN_N+3),'changebymmlist','paramValues,result,iLevel,oneLevel',nil}
return nil
#ifndef _NO_CLRMARKER_
#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 clRMARKER()
// El“szedi az oszt lyt. (class)
static osztaly
if (osztaly==nil)
osztaly:=META.mcRMARKERCLASS():onew(;
clTOKEN(),;
"RMARKER",;
CA_RMARKER_N,;
CM_RMARKER_N,;
{|ta,tm|setCams(ta,tm)},;
{|t|setCMethods(t)})
endif
return osztaly
#endif // _NO_CLRMARKER_
#ifndef _NO_RMARKERCLASS_
**********************************************************************
#xtranslate class:<m> => RMARKERCLASS.(class):<m>
#xcommand cimplement onew(id,str,file,line,pos) => ;
static function onew(class,id,str,file,line,pos)
#xcommand cimplement isresultmarker(aToken) => ;
static function isresultmarker(class,aToken)
#ifdef _IMPLEMENT_EXPORT_
#xcommand cimplement export onew(id,str,file,line,pos) => ;
function onew(class,id,str,file,line,pos)
#xcommand cimplement export isresultmarker(aToken) => ;
function isresultmarker(class,aToken)
#endif // _IMPLEMENT_EXPORT_
#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(4))
#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(5))
#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(6))
#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(7))
#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(8))
#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1))
#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2))
#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3))
#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4))
#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5))
#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6))
#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7))
#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8))
#xtranslate superclass:onewerror => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+1))
#xtranslate superclass:copyfromtoken => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+2))
#xtranslate superclass:findclassify => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+3))
**********************************************************************
static function setMCMethods(pOsztaly)
// Egy t”mb”t felt”lt a metaoszt ly mveleti blokkjaival.
pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos| onew(class,id,str,file,line,pos)}
pOsztaly[(CM_TOKENCLASS_N+1)]:={|class,aToken| isresultmarker(class,aToken)}
return pOsztaly
**********************************************************************
static function setMCams(ta,tm)
// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attrib£tumaival s mveleteivel.
tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos',nil}
tm[(CM_TOKENCLASS_N+1)-CM_NIL_N] := {(CM_TOKENCLASS_N+1),'isresultmarker','aToken',nil}
return nil
**********************************************************************
#ifndef _NO_MCRMARKERCLASS_
#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 mcRMARKERCLASS()
// El“szedi az oszt ly metaoszt ly t. (metaclass)
static metaOsztaly
if (metaOsztaly==nil)
metaOsztaly:=META.clMETA():onew(;
mcTOKENCLASS(),;
"RMARKERCLASS",;
CA_RMARKERCLASS_N,;
CM_RMARKERCLASS_N,;
{|ta,tm|setMCams(ta,tm)},;
{|t|setMCMethods(t)})
endif
return metaOsztaly
#endif // _NO_MCRMARKERCLASS_
#endif // _NO_RMARKERCLASS_
#ifdef _IMPLEMENT_ONEW_
**********************************************************************
cimplement onew(id,str,file,line,pos)
local o:=class:ocreate()
RMARKER.o:oinit(id,str,file,line,pos)
return o
#endif // _IMPLEMENT_ONEW_
**********************************************************************
#ifdef _IMPLEMENT_OINIT_
implement oinit(id,str,file,line,pos)
super:oinit()
return this
#endif // _IMPLEMENT_OINIT_
**********************************************************************
**********************************************************************
#endif // _RMARKER_PRG_OCH_
#endif // _RMARKER_PRG_