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

446 lines
24 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.
// MPARSER.och oszt ly implement ci¢.
// Gener lva: 1999.06.10, 14:41:19, 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 _MPARSER_OCH_
#define _MPARSER_OCH_
#xtranslate MPARSER.<obj>:name => <obj>\[CA_OBJECT_N+1\]
#xtranslate MPARSER.<obj>:errorstream => <obj>\[CA_OBJECT_N+2\]
#xtranslate MPARSER.<obj>:tbuffer => <obj>\[CA_OBJECT_N+3\]
#xtranslate MPARSER.<obj>:inputreader => <obj>\[CA_READER_N+1\]
#xtranslate MPARSER.<obj>:item => <obj>\[CA_TREADER_N+1\]
#xtranslate MPARSER.<obj>:parserbuffer => <obj>\[CA_TREADER_N+2\]
#xtranslate MPARSER.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate MPARSER.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate MPARSER.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate MPARSER.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate MPARSER.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate MPARSER.<obj>:read => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate MPARSER.<obj>:unread => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate MPARSER.<obj>:readtbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate MPARSER.<obj>:arraytbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate MPARSER.<obj>:readitem => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate MPARSER.<obj>:iserror => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate MPARSER.<obj>:adderror => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate MPARSER.<obj>:destruct => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
#xtranslate MPARSER.<obj>:readinput => (OBJGEN.(<obj>):(CM_READER_N+1))
#xtranslate MPARSER.<obj>:unreadinput => (OBJGEN.(<obj>):(CM_READER_N+2))
#xtranslate MPARSER.<obj>:addinputreader => (OBJGEN.(<obj>):(CM_READER_N+3))
#xtranslate MPARSER.<obj>:putparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+1))
#xtranslate MPARSER.<obj>:getparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+2))
#xtranslate MPARSER.<obj>:unputparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+3))
#xtranslate MPARSER.<obj>:ungetparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+4))
#xtranslate MPARSER.<obj>:clearparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+5))
#xtranslate MPARSER.<obj>:rds => (OBJGEN.(<obj>):(CM_TREADER_N+6))
#xtranslate MPARSER.<obj>:unrds => (OBJGEN.(<obj>):(CM_TREADER_N+7))
#xtranslate MPARSER.<obj>:strparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+8))
#xtranslate MPARSER.<obj>:arrayparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+9))
#xtranslate MPARSER.<obj>:soreleje => <obj>\[CA_PARSER_N+1\]
#xtranslate MPARSER.<obj>:makrobuf => <obj>\[CA_PARSER_N+2\]
// Specifik lva: startmakrobuf(item)
// Specifik lva: rdsmakrobuf()
// Specifik lva: unrdsmakrobuf(n)
// ™r”k”lve: readitem()
// Specifik lva: parsefun(edefdict)
// Specifik lva: parsetokenlist(leftTokenList,cmd4,paramValues,toEOL)
// Specifik lva: parsextr(extrdict)
// Specifik lva: parsextrtree(trdictTree,mi,toEOL)
// Specifik lva: mleftxntoken(leftToken,cmd4)
// Specifik lva: mleftxmrtoken(leftToken,cmd4,paramValues,nUres)
// Specifik lva: mleftxrmmtoken(leftToken,cmd4)
// Specifik lva: mleftxwmtoken(leftToken)
// Specifik lva: mleftxeemtoken(leftToken)
// Specifik lva: mleftxlmtoken(leftToken,cmd4)
// Specifik lva: mleftxrsmmtoken(leftToken,cmd4)
// ™r”k”lve: oinit(inputReader,name,errorStream)
#xtranslate MPARSER.<obj>:startmakrobuf => (OBJGEN.(<obj>):(CM_PARSER_N+1))
#xtranslate MPARSER.<obj>:rdsmakrobuf => (OBJGEN.(<obj>):(CM_PARSER_N+2))
#xtranslate MPARSER.<obj>:unrdsmakrobuf => (OBJGEN.(<obj>):(CM_PARSER_N+3))
// ™r”k”lve: readitem()
#xtranslate MPARSER.<obj>:parsefun => (OBJGEN.(<obj>):(CM_PARSER_N+4))
#xtranslate MPARSER.<obj>:parsetokenlist => (OBJGEN.(<obj>):(CM_PARSER_N+5))
#xtranslate MPARSER.<obj>:parsextr => (OBJGEN.(<obj>):(CM_PARSER_N+6))
#xtranslate MPARSER.<obj>:parsextrtree => (OBJGEN.(<obj>):(CM_PARSER_N+7))
#xtranslate MPARSER.<obj>:mleftxntoken => (OBJGEN.(<obj>):(CM_PARSER_N+8))
#xtranslate MPARSER.<obj>:mleftxmrtoken => (OBJGEN.(<obj>):(CM_PARSER_N+9))
#xtranslate MPARSER.<obj>:mleftxrmmtoken => (OBJGEN.(<obj>):(CM_PARSER_N+10))
#xtranslate MPARSER.<obj>:mleftxwmtoken => (OBJGEN.(<obj>):(CM_PARSER_N+11))
#xtranslate MPARSER.<obj>:mleftxeemtoken => (OBJGEN.(<obj>):(CM_PARSER_N+12))
#xtranslate MPARSER.<obj>:mleftxlmtoken => (OBJGEN.(<obj>):(CM_PARSER_N+13))
#xtranslate MPARSER.<obj>:mleftxrsmmtoken => (OBJGEN.(<obj>):(CM_PARSER_N+14))
// ™r”k”lve: oinit(inputReader,name,errorStream)
#endif // _MPARSER_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_MPARSER_N
#define CA_MPARSER_N CA_PARSER_N+2
#define CM_MPARSER_N CM_PARSER_N+14
#endif // CA_MPARSER_N
#ifndef _CA_CM_ONLY_
#ifndef _MPARSERCLASS_OCH_
#define _MPARSERCLASS_OCH_
**********************************************************************
#xtranslate C.MPARSER:<m> => (MPARSERCLASS.clMPARSER():<m>)
#xtranslate C.MPARSER:self() => (clMPARSER())
#xtranslate MPARSERCLASS.<obj>:parent => <obj>\[CA_OBJECT_N+1\]
#xtranslate MPARSERCLASS.<obj>:name => <obj>\[CA_OBJECT_N+2\]
#xtranslate MPARSERCLASS.<obj>:objsize => <obj>\[CA_OBJECT_N+3\]
#xtranslate MPARSERCLASS.<obj>:attribs => <obj>\[CA_OBJECT_N+4\]
#xtranslate MPARSERCLASS.<obj>:methods => <obj>\[CA_OBJECT_N+5\]
#xtranslate MPARSERCLASS.<obj>:classid => <obj>\[CA_OBJECT_N+6\]
#xtranslate MPARSERCLASS.<obj>:parentclassids => <obj>\[CA_OBJECT_N+7\]
#xtranslate MPARSERCLASS.<obj>:amblock => <obj>\[CA_OBJECT_N+8\]
#xtranslate MPARSERCLASS.<obj>:methodsblock => <obj>\[CA_OBJECT_N+9\]
#xtranslate MPARSERCLASS.<obj>:objmethodsimplement => <obj>\[CA_OBJECT_N+10\]
#xtranslate MPARSERCLASS.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate MPARSERCLASS.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate MPARSERCLASS.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate MPARSERCLASS.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate MPARSERCLASS.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate MPARSERCLASS.<obj>:onew => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate MPARSERCLASS.<obj>:ocreate => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate MPARSERCLASS.<obj>:rawoinit => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate MPARSERCLASS.<obj>:oinitclass => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate MPARSERCLASS.<obj>:getmethodsimplement => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate MPARSERCLASS.<obj>:attribidx => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate MPARSERCLASS.<obj>:needclassid => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate MPARSERCLASS.<obj>:isinheritfrom => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
// ™r”k”lve: onew(inputReader,name,errorStream)
// Specifik lva: getcloseparent(aChar)
// Specifik lva: trimtokenlist(tList)
// Specifik lva: parse(item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg)
// ™r”k”lve: onew(inputReader,name,errorStream)
#xtranslate MPARSERCLASS.<obj>:getcloseparent => (OBJGEN.(<obj>):(CM_PARSERCLASS_N+1))
#xtranslate MPARSERCLASS.<obj>:trimtokenlist => (OBJGEN.(<obj>):(CM_PARSERCLASS_N+2))
#xtranslate MPARSERCLASS.<obj>:parse => (OBJGEN.(<obj>):(CM_PARSERCLASS_N+3))
#endif // _MPARSERCLASS_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_MPARSERCLASS_N
#define CA_MPARSERCLASS_N CA_PARSERCLASS_N+0
#define CM_MPARSERCLASS_N CM_PARSERCLASS_N+3
#endif // CA_MPARSERCLASS_N
**********************************************************************
#ifdef _MPARSER_PRG_
#ifndef _MPARSER_PRG_OCH_
#define _MPARSER_PRG_OCH_
**********************************************************************
#xtranslate othis:<m> => MPARSER.(othis):<m>
#xtranslate thisclass:<m> => MPARSERCLASS.(this:getClass()):<m>
#define CTHIS MPARSER
**********************************************************************
#xtranslate this:<m> => MPARSER.(this):<m>
#xcommand implement startmakrobuf(item) => ;
static function startmakrobuf(this,item)
#xcommand implement rdsmakrobuf() => static function rdsmakrobuf(this)
#xcommand implement unrdsmakrobuf(n) => ;
static function unrdsmakrobuf(this,n)
#xcommand implement readitem() => static function readitem(this)
#xcommand implement parsefun(edefdict) => ;
static function parsefun(this,edefdict)
#xcommand implement parsetokenlist(leftTokenList,cmd4,paramValues,toEOL) => ;
static function parsetokenlist(this,leftTokenList,cmd4,paramValues,toEOL)
#xcommand implement parsextr(extrdict) => ;
static function parsextr(this,extrdict)
#xcommand implement parsextrtree(trdictTree,mi,toEOL) => ;
static function parsextrtree(this,trdictTree,mi,toEOL)
#xcommand implement mleftxntoken(leftToken,cmd4) => ;
static function mleftxntoken(this,leftToken,cmd4)
#xcommand implement mleftxmrtoken(leftToken,cmd4,paramValues,nUres) => ;
static function mleftxmrtoken(this,leftToken,cmd4,paramValues,nUres)
#xcommand implement mleftxrmmtoken(leftToken,cmd4) => ;
static function mleftxrmmtoken(this,leftToken,cmd4)
#xcommand implement mleftxwmtoken(leftToken) => ;
static function mleftxwmtoken(this,leftToken)
#xcommand implement mleftxeemtoken(leftToken) => ;
static function mleftxeemtoken(this,leftToken)
#xcommand implement mleftxlmtoken(leftToken,cmd4) => ;
static function mleftxlmtoken(this,leftToken,cmd4)
#xcommand implement mleftxrsmmtoken(leftToken,cmd4) => ;
static function mleftxrsmmtoken(this,leftToken,cmd4)
#xcommand implement oinit(inputReader,name,errorStream) => ;
static function oinit(this,inputReader,name,errorStream)
#ifdef _IMPLEMENT_EXPORT_
#xcommand implement export startmakrobuf(item) => ;
function startmakrobuf(this,item)
#xcommand implement export rdsmakrobuf() => function rdsmakrobuf(this)
#xcommand implement export unrdsmakrobuf(n) => ;
function unrdsmakrobuf(this,n)
#xcommand implement export readitem() => function readitem(this)
#xcommand implement export parsefun(edefdict) => ;
function parsefun(this,edefdict)
#xcommand implement export parsetokenlist(leftTokenList,cmd4,paramValues,toEOL) => ;
function parsetokenlist(this,leftTokenList,cmd4,paramValues,toEOL)
#xcommand implement export parsextr(extrdict) => ;
function parsextr(this,extrdict)
#xcommand implement export parsextrtree(trdictTree,mi,toEOL) => ;
function parsextrtree(this,trdictTree,mi,toEOL)
#xcommand implement export mleftxntoken(leftToken,cmd4) => ;
function mleftxntoken(this,leftToken,cmd4)
#xcommand implement export mleftxmrtoken(leftToken,cmd4,paramValues,nUres) => ;
function mleftxmrtoken(this,leftToken,cmd4,paramValues,nUres)
#xcommand implement export mleftxrmmtoken(leftToken,cmd4) => ;
function mleftxrmmtoken(this,leftToken,cmd4)
#xcommand implement export mleftxwmtoken(leftToken) => ;
function mleftxwmtoken(this,leftToken)
#xcommand implement export mleftxeemtoken(leftToken) => ;
function mleftxeemtoken(this,leftToken)
#xcommand implement export mleftxlmtoken(leftToken,cmd4) => ;
function mleftxlmtoken(this,leftToken,cmd4)
#xcommand implement export mleftxrsmmtoken(leftToken,cmd4) => ;
function mleftxrsmmtoken(this,leftToken,cmd4)
#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 mveleti blokkjaival.
pOsztaly[(CM_PARSER_N+1)]:={|this,item| startmakrobuf(this,item)}
pOsztaly[(CM_PARSER_N+2)]:={|this| rdsmakrobuf(this)}
pOsztaly[(CM_PARSER_N+3)]:={|this,n| unrdsmakrobuf(this,n)}
pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)}
pOsztaly[(CM_PARSER_N+4)]:={|this,edefdict| parsefun(this,edefdict)}
pOsztaly[(CM_PARSER_N+5)]:={|this,leftTokenList,cmd4,paramValues,toEOL| parsetokenlist(this,leftTokenList,cmd4,paramValues,toEOL)}
pOsztaly[(CM_PARSER_N+6)]:={|this,extrdict| parsextr(this,extrdict)}
pOsztaly[(CM_PARSER_N+7)]:={|this,trdictTree,mi,toEOL| parsextrtree(this,trdictTree,mi,toEOL)}
pOsztaly[(CM_PARSER_N+8)]:={|this,leftToken,cmd4| mleftxntoken(this,leftToken,cmd4)}
pOsztaly[(CM_PARSER_N+9)]:={|this,leftToken,cmd4,paramValues,nUres| mleftxmrtoken(this,leftToken,cmd4,paramValues,nUres)}
pOsztaly[(CM_PARSER_N+10)]:={|this,leftToken,cmd4| mleftxrmmtoken(this,leftToken,cmd4)}
pOsztaly[(CM_PARSER_N+11)]:={|this,leftToken| mleftxwmtoken(this,leftToken)}
pOsztaly[(CM_PARSER_N+12)]:={|this,leftToken| mleftxeemtoken(this,leftToken)}
pOsztaly[(CM_PARSER_N+13)]:={|this,leftToken,cmd4| mleftxlmtoken(this,leftToken,cmd4)}
pOsztaly[(CM_PARSER_N+14)]:={|this,leftToken,cmd4| mleftxrsmmtoken(this,leftToken,cmd4)}
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 mveleteivel.
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,'makrobuf', }
tm[(CM_PARSER_N+1)-CM_NIL_N] := {(CM_PARSER_N+1),'startmakrobuf','item',nil}
tm[(CM_PARSER_N+2)-CM_NIL_N] := {(CM_PARSER_N+2),'rdsmakrobuf','',nil}
tm[(CM_PARSER_N+3)-CM_NIL_N] := {(CM_PARSER_N+3),'unrdsmakrobuf','n',nil}
tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil}
tm[(CM_PARSER_N+4)-CM_NIL_N] := {(CM_PARSER_N+4),'parsefun','edefdict',nil}
tm[(CM_PARSER_N+5)-CM_NIL_N] := {(CM_PARSER_N+5),'parsetokenlist','leftTokenList,cmd4,paramValues,toEOL',nil}
tm[(CM_PARSER_N+6)-CM_NIL_N] := {(CM_PARSER_N+6),'parsextr','extrdict',nil}
tm[(CM_PARSER_N+7)-CM_NIL_N] := {(CM_PARSER_N+7),'parsextrtree','trdictTree,mi,toEOL',nil}
tm[(CM_PARSER_N+8)-CM_NIL_N] := {(CM_PARSER_N+8),'mleftxntoken','leftToken,cmd4',nil}
tm[(CM_PARSER_N+9)-CM_NIL_N] := {(CM_PARSER_N+9),'mleftxmrtoken','leftToken,cmd4,paramValues,nUres',nil}
tm[(CM_PARSER_N+10)-CM_NIL_N] := {(CM_PARSER_N+10),'mleftxrmmtoken','leftToken,cmd4',nil}
tm[(CM_PARSER_N+11)-CM_NIL_N] := {(CM_PARSER_N+11),'mleftxwmtoken','leftToken',nil}
tm[(CM_PARSER_N+12)-CM_NIL_N] := {(CM_PARSER_N+12),'mleftxeemtoken','leftToken',nil}
tm[(CM_PARSER_N+13)-CM_NIL_N] := {(CM_PARSER_N+13),'mleftxlmtoken','leftToken,cmd4',nil}
tm[(CM_PARSER_N+14)-CM_NIL_N] := {(CM_PARSER_N+14),'mleftxrsmmtoken','leftToken,cmd4',nil}
tm[(4)-CM_NIL_N] := {(4),'oinit','inputReader,name,errorStream',nil}
return nil
#ifndef _NO_CLMPARSER_
#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 clMPARSER()
// El“szedi az oszt lyt. (class)
static osztaly
if (osztaly==nil)
osztaly:=META.mcMPARSERCLASS():onew(;
clPARSER(),;
"MPARSER",;
CA_MPARSER_N,;
CM_MPARSER_N,;
{|ta,tm|setCams(ta,tm)},;
{|t|setCMethods(t)})
endif
return osztaly
#endif // _NO_CLMPARSER_
#ifndef _NO_MPARSERCLASS_
**********************************************************************
#xtranslate class:<m> => MPARSERCLASS.(class):<m>
#xcommand cimplement onew(inputReader,name,errorStream) => ;
static function onew(class,inputReader,name,errorStream)
#xcommand cimplement getcloseparent(aChar) => ;
static function getcloseparent(class,aChar)
#xcommand cimplement trimtokenlist(tList) => ;
static function trimtokenlist(class,tList)
#xcommand cimplement parse(item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) => ;
static function parse(class,item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg)
#ifdef _IMPLEMENT_EXPORT_
#xcommand cimplement export onew(inputReader,name,errorStream) => ;
function onew(class,inputReader,name,errorStream)
#xcommand cimplement export getcloseparent(aChar) => ;
function getcloseparent(class,aChar)
#xcommand cimplement export trimtokenlist(tList) => ;
function trimtokenlist(class,tList)
#xcommand cimplement export parse(item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) => ;
function parse(class,item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg)
#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 mveleti blokkjaival.
pOsztaly[(CM_OBJECT_N+1)]:={|class,inputReader,name,errorStream| onew(class,inputReader,name,errorStream)}
pOsztaly[(CM_PARSERCLASS_N+1)]:={|class,aChar| getcloseparent(class,aChar)}
pOsztaly[(CM_PARSERCLASS_N+2)]:={|class,tList| trimtokenlist(class,tList)}
pOsztaly[(CM_PARSERCLASS_N+3)]:={|class,item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg| parse(class,item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg)}
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','inputReader,name,errorStream',nil}
tm[(CM_PARSERCLASS_N+1)-CM_NIL_N] := {(CM_PARSERCLASS_N+1),'getcloseparent','aChar',nil}
tm[(CM_PARSERCLASS_N+2)-CM_NIL_N] := {(CM_PARSERCLASS_N+2),'trimtokenlist','tList',nil}
tm[(CM_PARSERCLASS_N+3)-CM_NIL_N] := {(CM_PARSERCLASS_N+3),'parse','item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg',nil}
return nil
**********************************************************************
#ifndef _NO_MCMPARSERCLASS_
#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 mcMPARSERCLASS()
// El“szedi az oszt ly metaoszt ly t. (metaclass)
static metaOsztaly
if (metaOsztaly==nil)
metaOsztaly:=META.clMETA():onew(;
mcPARSERCLASS(),;
"MPARSERCLASS",;
CA_MPARSERCLASS_N,;
CM_MPARSERCLASS_N,;
{|ta,tm|setMCams(ta,tm)},;
{|t|setMCMethods(t)})
endif
return metaOsztaly
#endif // _NO_MCMPARSERCLASS_
#endif // _NO_MPARSERCLASS_
#ifdef _IMPLEMENT_ONEW_
**********************************************************************
cimplement onew(inputReader,name,errorStream)
local o:=class:ocreate()
MPARSER.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 // _MPARSER_PRG_OCH_
#endif // _MPARSER_PRG_