// NPARSER.och oszt ly implement ci¢. // Gener lva: 1999.06.10, 14:39:57, OBJCCC v2.2.03 // Meta oszt ly defin¡ci¢: Van #ifndef CA_PARSER_N #ifdef _STRICT_PARENT_ #ifdef _CA_CM_ONLY_ #include "PARSER.och" #else // _CA_CM_ONLY_ #define _CA_CM_ONLY_ #include "PARSER.och" #undef _CA_CM_ONLY_ #endif // _CA_CM_ONLY_ #else #include "PARSER.och" #endif // _STRICT_PARENT_ #endif // CA_PARSER_N #ifndef _CA_CM_ONLY_ #ifndef _NPARSER_OCH_ #define _NPARSER_OCH_ #xtranslate NPARSER.:name => \[CA_OBJECT_N+1\] #xtranslate NPARSER.:errorstream => \[CA_OBJECT_N+2\] #xtranslate NPARSER.:tbuffer => \[CA_OBJECT_N+3\] #xtranslate NPARSER.:inputreader => \[CA_READER_N+1\] #xtranslate NPARSER.:item => \[CA_TREADER_N+1\] #xtranslate NPARSER.:parserbuffer => \[CA_TREADER_N+2\] #xtranslate NPARSER.:oinit => (OBJGEN.():(4)) #xtranslate NPARSER.:getclass => (OBJGEN.():(5)) #xtranslate NPARSER.:isclass => (OBJGEN.():(6)) #xtranslate NPARSER.:getattrib => (OBJGEN.():(7)) #xtranslate NPARSER.:setattrib => (OBJGEN.():(8)) #xtranslate NPARSER.:read => (OBJGEN.():(CM_OBJECT_N+1)) #xtranslate NPARSER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) #xtranslate NPARSER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) #xtranslate NPARSER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) #xtranslate NPARSER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) #xtranslate NPARSER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) #xtranslate NPARSER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) #xtranslate NPARSER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) #xtranslate NPARSER.:readinput => (OBJGEN.():(CM_READER_N+1)) #xtranslate NPARSER.:unreadinput => (OBJGEN.():(CM_READER_N+2)) #xtranslate NPARSER.:addinputreader => (OBJGEN.():(CM_READER_N+3)) #xtranslate NPARSER.:putparserbuffer => (OBJGEN.():(CM_TREADER_N+1)) #xtranslate NPARSER.:getparserbuffer => (OBJGEN.():(CM_TREADER_N+2)) #xtranslate NPARSER.:unputparserbuffer => (OBJGEN.():(CM_TREADER_N+3)) #xtranslate NPARSER.:ungetparserbuffer => (OBJGEN.():(CM_TREADER_N+4)) #xtranslate NPARSER.:clearparserbuffer => (OBJGEN.():(CM_TREADER_N+5)) #xtranslate NPARSER.:rds => (OBJGEN.():(CM_TREADER_N+6)) #xtranslate NPARSER.:unrds => (OBJGEN.():(CM_TREADER_N+7)) #xtranslate NPARSER.:strparserbuffer => (OBJGEN.():(CM_TREADER_N+8)) #xtranslate NPARSER.:arrayparserbuffer => (OBJGEN.():(CM_TREADER_N+9)) #xtranslate NPARSER.:soreleje => \[CA_PARSER_N+1\] #xtranslate NPARSER.:tokenpos => \[CA_PARSER_N+2\] // ™r”k”lve: readitem() // Specifik lva: streolparserbuffer() // Specifik lva: maketoken(tkId,str) // Specifik lva: maketokenst(tkId,stArray) // Specifik lva: maketokenlst(tkId,stArray) // Specifik lva: makeerrtoken(tkId,str,errCode) // Specifik lva: parsetptree() // Specifik lva: parse() // Specifik lva: parselinecomment(tkId) // Specifik lva: parsepccomment() // Specifik lva: parsestring(hatarolo) // Specifik lva: parsename() // Specifik lva: parsenumberarray() // ™r”k”lve: oinit(inputReader,name,errorStream) // ™r”k”lve: readitem() #xtranslate NPARSER.:streolparserbuffer => (OBJGEN.():(CM_PARSER_N+1)) #xtranslate NPARSER.:maketoken => (OBJGEN.():(CM_PARSER_N+2)) #xtranslate NPARSER.:maketokenst => (OBJGEN.():(CM_PARSER_N+3)) #xtranslate NPARSER.:maketokenlst => (OBJGEN.():(CM_PARSER_N+4)) #xtranslate NPARSER.:makeerrtoken => (OBJGEN.():(CM_PARSER_N+5)) #xtranslate NPARSER.:parsetptree => (OBJGEN.():(CM_PARSER_N+6)) #xtranslate NPARSER.:parse => (OBJGEN.():(CM_PARSER_N+7)) #xtranslate NPARSER.:parselinecomment => (OBJGEN.():(CM_PARSER_N+8)) #xtranslate NPARSER.:parsepccomment => (OBJGEN.():(CM_PARSER_N+9)) #xtranslate NPARSER.:parsestring => (OBJGEN.():(CM_PARSER_N+10)) #xtranslate NPARSER.:parsename => (OBJGEN.():(CM_PARSER_N+11)) #xtranslate NPARSER.:parsenumberarray => (OBJGEN.():(CM_PARSER_N+12)) // ™r”k”lve: oinit(inputReader,name,errorStream) #endif // _NPARSER_OCH_ #endif // _CA_CM_ONLY_ #ifndef CA_NPARSER_N #define CA_NPARSER_N CA_PARSER_N+2 #define CM_NPARSER_N CM_PARSER_N+12 #endif // CA_NPARSER_N #ifndef _CA_CM_ONLY_ #ifndef _NPARSERCLASS_OCH_ #define _NPARSERCLASS_OCH_ ********************************************************************** #xtranslate C.NPARSER: => (NPARSERCLASS.clNPARSER():) #xtranslate C.NPARSER:self() => (clNPARSER()) #xtranslate NPARSERCLASS.:parent => \[CA_OBJECT_N+1\] #xtranslate NPARSERCLASS.:name => \[CA_OBJECT_N+2\] #xtranslate NPARSERCLASS.:objsize => \[CA_OBJECT_N+3\] #xtranslate NPARSERCLASS.:attribs => \[CA_OBJECT_N+4\] #xtranslate NPARSERCLASS.:methods => \[CA_OBJECT_N+5\] #xtranslate NPARSERCLASS.:classid => \[CA_OBJECT_N+6\] #xtranslate NPARSERCLASS.:parentclassids => \[CA_OBJECT_N+7\] #xtranslate NPARSERCLASS.:amblock => \[CA_OBJECT_N+8\] #xtranslate NPARSERCLASS.:methodsblock => \[CA_OBJECT_N+9\] #xtranslate NPARSERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] #xtranslate NPARSERCLASS.:oinit => (OBJGEN.():(4)) #xtranslate NPARSERCLASS.:getclass => (OBJGEN.():(5)) #xtranslate NPARSERCLASS.:isclass => (OBJGEN.():(6)) #xtranslate NPARSERCLASS.:getattrib => (OBJGEN.():(7)) #xtranslate NPARSERCLASS.:setattrib => (OBJGEN.():(8)) #xtranslate NPARSERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) #xtranslate NPARSERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) #xtranslate NPARSERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) #xtranslate NPARSERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) #xtranslate NPARSERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) #xtranslate NPARSERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) #xtranslate NPARSERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) #xtranslate NPARSERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) #xtranslate NPARSERCLASS.:whitespacechar => \[CA_PARSERCLASS_N+1\] #xtranslate NPARSERCLASS.:startnamechar => \[CA_PARSERCLASS_N+2\] #xtranslate NPARSERCLASS.:numberchar => \[CA_PARSERCLASS_N+3\] #xtranslate NPARSERCLASS.:namechar => \[CA_PARSERCLASS_N+4\] #xtranslate NPARSERCLASS.:tokens => \[CA_PARSERCLASS_N+5\] #xtranslate NPARSERCLASS.:tokenptree => \[CA_PARSERCLASS_N+6\] // ™r”k”lve: onew(inputReader,name,errorStream) // ™r”k”lve: oinitclass() // Specifik lva: iswhitespacechar(c) // Specifik lva: isstartnamechar(c) // Specifik lva: isnumberchar(c) // Specifik lva: isnamechar(c) // Specifik lva: settokens() // Specifik lva: calctokenptree() // ™r”k”lve: onew(inputReader,name,errorStream) // ™r”k”lve: oinitclass() #xtranslate NPARSERCLASS.:iswhitespacechar => (OBJGEN.():(CM_PARSERCLASS_N+1)) #xtranslate NPARSERCLASS.:isstartnamechar => (OBJGEN.():(CM_PARSERCLASS_N+2)) #xtranslate NPARSERCLASS.:isnumberchar => (OBJGEN.():(CM_PARSERCLASS_N+3)) #xtranslate NPARSERCLASS.:isnamechar => (OBJGEN.():(CM_PARSERCLASS_N+4)) #xtranslate NPARSERCLASS.:settokens => (OBJGEN.():(CM_PARSERCLASS_N+5)) #xtranslate NPARSERCLASS.:calctokenptree => (OBJGEN.():(CM_PARSERCLASS_N+6)) #endif // _NPARSERCLASS_OCH_ #endif // _CA_CM_ONLY_ #ifndef CA_NPARSERCLASS_N #define CA_NPARSERCLASS_N CA_PARSERCLASS_N+6 #define CM_NPARSERCLASS_N CM_PARSERCLASS_N+6 #endif // CA_NPARSERCLASS_N ********************************************************************** #ifdef _NPARSER_PRG_ #ifndef _NPARSER_PRG_OCH_ #define _NPARSER_PRG_OCH_ ********************************************************************** #xtranslate othis: => NPARSER.(othis): #xtranslate thisclass: => NPARSERCLASS.(this:getClass()): #define CTHIS NPARSER ********************************************************************** #xtranslate this: => NPARSER.(this): #xcommand implement readitem() => static function readitem(this) #xcommand implement streolparserbuffer() => ; static function streolparserbuffer(this) #xcommand implement maketoken(tkId,str) => ; static function maketoken(this,tkId,str) #xcommand implement maketokenst(tkId,stArray) => ; static function maketokenst(this,tkId,stArray) #xcommand implement maketokenlst(tkId,stArray) => ; static function maketokenlst(this,tkId,stArray) #xcommand implement makeerrtoken(tkId,str,errCode) => ; static function makeerrtoken(this,tkId,str,errCode) #xcommand implement parsetptree() => static function parsetptree(this) #xcommand implement parse() => static function parse(this) #xcommand implement parselinecomment(tkId) => ; static function parselinecomment(this,tkId) #xcommand implement parsepccomment() => ; static function parsepccomment(this) #xcommand implement parsestring(hatarolo) => ; static function parsestring(this,hatarolo) #xcommand implement parsename() => static function parsename(this) #xcommand implement parsenumberarray() => ; static function parsenumberarray(this) #xcommand implement oinit(inputReader,name,errorStream) => ; static function oinit(this,inputReader,name,errorStream) #ifdef _IMPLEMENT_EXPORT_ #xcommand implement export readitem() => function readitem(this) #xcommand implement export streolparserbuffer() => ; function streolparserbuffer(this) #xcommand implement export maketoken(tkId,str) => ; function maketoken(this,tkId,str) #xcommand implement export maketokenst(tkId,stArray) => ; function maketokenst(this,tkId,stArray) #xcommand implement export maketokenlst(tkId,stArray) => ; function maketokenlst(this,tkId,stArray) #xcommand implement export makeerrtoken(tkId,str,errCode) => ; function makeerrtoken(this,tkId,str,errCode) #xcommand implement export parsetptree() => function parsetptree(this) #xcommand implement export parse() => function parse(this) #xcommand implement export parselinecomment(tkId) => ; function parselinecomment(this,tkId) #xcommand implement export parsepccomment() => ; function parsepccomment(this) #xcommand implement export parsestring(hatarolo) => ; function parsestring(this,hatarolo) #xcommand implement export parsename() => function parsename(this) #xcommand implement export parsenumberarray() => ; function parsenumberarray(this) #xcommand implement export oinit(inputReader,name,errorStream) => ; function oinit(this,inputReader,name,errorStream) #endif // _IMPLEMENT_EXPORT_ #xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(4)) #xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(5)) #xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(6)) #xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(7)) #xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(8)) #xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) #xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) #xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) #xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) #xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) #xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_OBJECT_N+6)) #xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_OBJECT_N+7)) #xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_OBJECT_N+8)) #xtranslate super:readinput => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_READER_N+1)) #xtranslate super:unreadinput => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_READER_N+2)) #xtranslate super:addinputreader => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_READER_N+3)) #xtranslate super:putparserbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+1)) #xtranslate super:getparserbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+2)) #xtranslate super:unputparserbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+3)) #xtranslate super:ungetparserbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+4)) #xtranslate super:clearparserbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+5)) #xtranslate super:rds => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+6)) #xtranslate super:unrds => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+7)) #xtranslate super:strparserbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+8)) #xtranslate super:arrayparserbuffer => (OBJGENM.(eval(BEHAVIOR.clPARSER():objmethodsimplement)).(this):(CM_TREADER_N+9)) ********************************************************************** static function setCMethods(pOsztaly) // Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)} pOsztaly[(CM_PARSER_N+1)]:={|this| streolparserbuffer(this)} pOsztaly[(CM_PARSER_N+2)]:={|this,tkId,str| maketoken(this,tkId,str)} pOsztaly[(CM_PARSER_N+3)]:={|this,tkId,stArray| maketokenst(this,tkId,stArray)} pOsztaly[(CM_PARSER_N+4)]:={|this,tkId,stArray| maketokenlst(this,tkId,stArray)} pOsztaly[(CM_PARSER_N+5)]:={|this,tkId,str,errCode| makeerrtoken(this,tkId,str,errCode)} pOsztaly[(CM_PARSER_N+6)]:={|this| parsetptree(this)} pOsztaly[(CM_PARSER_N+7)]:={|this| parse(this)} pOsztaly[(CM_PARSER_N+8)]:={|this,tkId| parselinecomment(this,tkId)} pOsztaly[(CM_PARSER_N+9)]:={|this| parsepccomment(this)} pOsztaly[(CM_PARSER_N+10)]:={|this,hatarolo| parsestring(this,hatarolo)} pOsztaly[(CM_PARSER_N+11)]:={|this| parsename(this)} pOsztaly[(CM_PARSER_N+12)]:={|this| parsenumberarray(this)} pOsztaly[(4)]:={|this,inputReader,name,errorStream| oinit(this,inputReader,name,errorStream)} 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_PARSER_N+1-CA_NIL_N] := {CA_PARSER_N+1,'soreleje',nil} ta[CA_PARSER_N+2-CA_NIL_N] := {CA_PARSER_N+2,'tokenpos', } tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil} tm[(CM_PARSER_N+1)-CM_NIL_N] := {(CM_PARSER_N+1),'streolparserbuffer','',nil} tm[(CM_PARSER_N+2)-CM_NIL_N] := {(CM_PARSER_N+2),'maketoken','tkId,str',nil} tm[(CM_PARSER_N+3)-CM_NIL_N] := {(CM_PARSER_N+3),'maketokenst','tkId,stArray',nil} tm[(CM_PARSER_N+4)-CM_NIL_N] := {(CM_PARSER_N+4),'maketokenlst','tkId,stArray',nil} tm[(CM_PARSER_N+5)-CM_NIL_N] := {(CM_PARSER_N+5),'makeerrtoken','tkId,str,errCode',nil} tm[(CM_PARSER_N+6)-CM_NIL_N] := {(CM_PARSER_N+6),'parsetptree','',nil} tm[(CM_PARSER_N+7)-CM_NIL_N] := {(CM_PARSER_N+7),'parse','',nil} tm[(CM_PARSER_N+8)-CM_NIL_N] := {(CM_PARSER_N+8),'parselinecomment','tkId',nil} tm[(CM_PARSER_N+9)-CM_NIL_N] := {(CM_PARSER_N+9),'parsepccomment','',nil} tm[(CM_PARSER_N+10)-CM_NIL_N] := {(CM_PARSER_N+10),'parsestring','hatarolo',nil} tm[(CM_PARSER_N+11)-CM_NIL_N] := {(CM_PARSER_N+11),'parsename','',nil} tm[(CM_PARSER_N+12)-CM_NIL_N] := {(CM_PARSER_N+12),'parsenumberarray','',nil} tm[(4)-CM_NIL_N] := {(4),'oinit','inputReader,name,errorStream',nil} return nil #ifndef _NO_CLNPARSER_ #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 clNPARSER() // El“szedi az oszt lyt. (class) static osztaly if (osztaly==nil) osztaly:=META.mcNPARSERCLASS():onew(; clPARSER(),; "NPARSER",; CA_NPARSER_N,; CM_NPARSER_N,; {|ta,tm|setCams(ta,tm)},; {|t|setCMethods(t)}) endif return osztaly #endif // _NO_CLNPARSER_ #ifndef _NO_NPARSERCLASS_ ********************************************************************** #xtranslate class: => NPARSERCLASS.(class): #xcommand cimplement onew(inputReader,name,errorStream) => ; static function onew(class,inputReader,name,errorStream) #xcommand cimplement oinitclass() => static function oinitclass(class) #xcommand cimplement iswhitespacechar(c) => ; static function iswhitespacechar(class,c) #xcommand cimplement isstartnamechar(c) => ; static function isstartnamechar(class,c) #xcommand cimplement isnumberchar(c) => ; static function isnumberchar(class,c) #xcommand cimplement isnamechar(c) => static function isnamechar(class,c) #xcommand cimplement settokens() => static function settokens(class) #xcommand cimplement calctokenptree() => ; static function calctokenptree(class) #ifdef _IMPLEMENT_EXPORT_ #xcommand cimplement export onew(inputReader,name,errorStream) => ; function onew(class,inputReader,name,errorStream) #xcommand cimplement export oinitclass() => function oinitclass(class) #xcommand cimplement export iswhitespacechar(c) => ; function iswhitespacechar(class,c) #xcommand cimplement export isstartnamechar(c) => ; function isstartnamechar(class,c) #xcommand cimplement export isnumberchar(c) => ; function isnumberchar(class,c) #xcommand cimplement export isnamechar(c) => function isnamechar(class,c) #xcommand cimplement export settokens() => function settokens(class) #xcommand cimplement export calctokenptree() => ; function calctokenptree(class) #endif // _IMPLEMENT_EXPORT_ #xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(4)) #xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(5)) #xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(6)) #xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(7)) #xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(8)) #xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) #xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) #xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) #xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) #xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) #xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) #xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) #xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcPARSERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) ********************************************************************** static function setMCMethods(pOsztaly) // Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. pOsztaly[(CM_OBJECT_N+1)]:={|class,inputReader,name,errorStream| onew(class,inputReader,name,errorStream)} pOsztaly[(CM_OBJECT_N+4)]:={|class| oinitclass(class)} pOsztaly[(CM_PARSERCLASS_N+1)]:={|class,c| iswhitespacechar(class,c)} pOsztaly[(CM_PARSERCLASS_N+2)]:={|class,c| isstartnamechar(class,c)} pOsztaly[(CM_PARSERCLASS_N+3)]:={|class,c| isnumberchar(class,c)} pOsztaly[(CM_PARSERCLASS_N+4)]:={|class,c| isnamechar(class,c)} pOsztaly[(CM_PARSERCLASS_N+5)]:={|class| settokens(class)} pOsztaly[(CM_PARSERCLASS_N+6)]:={|class| calctokenptree(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_PARSERCLASS_N+1-CA_NIL_N] := {CA_PARSERCLASS_N+1,'whitespacechar',nil} ta[CA_PARSERCLASS_N+2-CA_NIL_N] := {CA_PARSERCLASS_N+2,'startnamechar',nil} ta[CA_PARSERCLASS_N+3-CA_NIL_N] := {CA_PARSERCLASS_N+3,'numberchar',nil} ta[CA_PARSERCLASS_N+4-CA_NIL_N] := {CA_PARSERCLASS_N+4,'namechar',nil} ta[CA_PARSERCLASS_N+5-CA_NIL_N] := {CA_PARSERCLASS_N+5,'tokens',nil} ta[CA_PARSERCLASS_N+6-CA_NIL_N] := {CA_PARSERCLASS_N+6,'tokenptree',nil} tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','inputReader,name,errorStream',nil} tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil} tm[(CM_PARSERCLASS_N+1)-CM_NIL_N] := {(CM_PARSERCLASS_N+1),'iswhitespacechar','c',nil} tm[(CM_PARSERCLASS_N+2)-CM_NIL_N] := {(CM_PARSERCLASS_N+2),'isstartnamechar','c',nil} tm[(CM_PARSERCLASS_N+3)-CM_NIL_N] := {(CM_PARSERCLASS_N+3),'isnumberchar','c',nil} tm[(CM_PARSERCLASS_N+4)-CM_NIL_N] := {(CM_PARSERCLASS_N+4),'isnamechar','c',nil} tm[(CM_PARSERCLASS_N+5)-CM_NIL_N] := {(CM_PARSERCLASS_N+5),'settokens','',nil} tm[(CM_PARSERCLASS_N+6)-CM_NIL_N] := {(CM_PARSERCLASS_N+6),'calctokenptree','',nil} return nil ********************************************************************** #ifndef _NO_MCNPARSERCLASS_ #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 mcNPARSERCLASS() // El“szedi az oszt ly metaoszt ly t. (metaclass) static metaOsztaly if (metaOsztaly==nil) metaOsztaly:=META.clMETA():onew(; mcPARSERCLASS(),; "NPARSERCLASS",; CA_NPARSERCLASS_N,; CM_NPARSERCLASS_N,; {|ta,tm|setMCams(ta,tm)},; {|t|setMCMethods(t)}) endif return metaOsztaly #endif // _NO_MCNPARSERCLASS_ #endif // _NO_NPARSERCLASS_ #ifdef _IMPLEMENT_ONEW_ ********************************************************************** cimplement onew(inputReader,name,errorStream) local o:=class:ocreate() NPARSER.o:oinit(inputReader,name,errorStream) return o #endif // _IMPLEMENT_ONEW_ ********************************************************************** #ifdef _IMPLEMENT_OINIT_ implement oinit(inputReader,name,errorStream) super:oinit() return this #endif // _IMPLEMENT_OINIT_ ********************************************************************** ********************************************************************** #endif // _NPARSER_PRG_OCH_ #endif // _NPARSER_PRG_