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

460 lines
25 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.
// HPARSER.och oszt ly implement ci¢.
// Gener lva: 1999.06.10, 14:40:07, 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 _HPARSER_OCH_
#define _HPARSER_OCH_
#xtranslate HPARSER.<obj>:name => <obj>\[CA_OBJECT_N+1\]
#xtranslate HPARSER.<obj>:errorstream => <obj>\[CA_OBJECT_N+2\]
#xtranslate HPARSER.<obj>:tbuffer => <obj>\[CA_OBJECT_N+3\]
#xtranslate HPARSER.<obj>:inputreader => <obj>\[CA_READER_N+1\]
#xtranslate HPARSER.<obj>:item => <obj>\[CA_TREADER_N+1\]
#xtranslate HPARSER.<obj>:parserbuffer => <obj>\[CA_TREADER_N+2\]
#xtranslate HPARSER.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate HPARSER.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate HPARSER.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate HPARSER.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate HPARSER.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate HPARSER.<obj>:read => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate HPARSER.<obj>:unread => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate HPARSER.<obj>:readtbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate HPARSER.<obj>:arraytbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate HPARSER.<obj>:readitem => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate HPARSER.<obj>:iserror => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate HPARSER.<obj>:adderror => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate HPARSER.<obj>:destruct => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
#xtranslate HPARSER.<obj>:readinput => (OBJGEN.(<obj>):(CM_READER_N+1))
#xtranslate HPARSER.<obj>:unreadinput => (OBJGEN.(<obj>):(CM_READER_N+2))
#xtranslate HPARSER.<obj>:addinputreader => (OBJGEN.(<obj>):(CM_READER_N+3))
#xtranslate HPARSER.<obj>:putparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+1))
#xtranslate HPARSER.<obj>:getparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+2))
#xtranslate HPARSER.<obj>:unputparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+3))
#xtranslate HPARSER.<obj>:ungetparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+4))
#xtranslate HPARSER.<obj>:clearparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+5))
#xtranslate HPARSER.<obj>:rds => (OBJGEN.(<obj>):(CM_TREADER_N+6))
#xtranslate HPARSER.<obj>:unrds => (OBJGEN.(<obj>):(CM_TREADER_N+7))
#xtranslate HPARSER.<obj>:strparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+8))
#xtranslate HPARSER.<obj>:arrayparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+9))
#xtranslate HPARSER.<obj>:soreleje => <obj>\[CA_PARSER_N+1\]
#xtranslate HPARSER.<obj>:defdict => <obj>\[CA_PARSER_N+2\]
#xtranslate HPARSER.<obj>:xtrdict => <obj>\[CA_PARSER_N+3\]
#xtranslate HPARSER.<obj>:ifstack => <obj>\[CA_PARSER_N+4\]
#xtranslate HPARSER.<obj>:branch => <obj>\[CA_PARSER_N+5\]
#xtranslate HPARSER.<obj>:inclobj => <obj>\[CA_PARSER_N+6\]
#xtranslate HPARSER.<obj>:lasteos => <obj>\[CA_PARSER_N+7\]
// ™r”k”lve: readitem()
// Specifik lva: parseline()
// Specifik lva: parsefalseline()
// Specifik lva: parsedefine(mnameToken)
// Specifik lva: parseundef(mnameToken)
// Specifik lva: parsetranslate(mNameToken)
// Specifik lva: parseifdef(mnameToken,ifdefType)
// Specifik lva: parseelse(mnameToken)
// Specifik lva: parseendif(mnameToken)
// Specifik lva: parseinclude(mnameToken)
// Specifik lva: parseltranslate(mnameToken)
// Specifik lva: parsertranslate(mnameToken)
// Specifik lva: adddefine(mnameToken,name,params)
// Specifik lva: addxtranslate(mnameToken,leftSide,rightSide)
// Specifik lva: sornyel(kiirBlock)
// Specifik lva: errorgen(token,errorCode,params)
// Specifik lva: incomperrorgen(token,errorcode,params)
// Specifik lva: chkendoffile()
// ™r”k”lve: oinit(inputReader,name,defDict,xtrDict,inclObj,errorStream)
// ™r”k”lve: readitem()
#xtranslate HPARSER.<obj>:parseline => (OBJGEN.(<obj>):(CM_PARSER_N+1))
#xtranslate HPARSER.<obj>:parsefalseline => (OBJGEN.(<obj>):(CM_PARSER_N+2))
#xtranslate HPARSER.<obj>:parsedefine => (OBJGEN.(<obj>):(CM_PARSER_N+3))
#xtranslate HPARSER.<obj>:parseundef => (OBJGEN.(<obj>):(CM_PARSER_N+4))
#xtranslate HPARSER.<obj>:parsetranslate => (OBJGEN.(<obj>):(CM_PARSER_N+5))
#xtranslate HPARSER.<obj>:parseifdef => (OBJGEN.(<obj>):(CM_PARSER_N+6))
#xtranslate HPARSER.<obj>:parseelse => (OBJGEN.(<obj>):(CM_PARSER_N+7))
#xtranslate HPARSER.<obj>:parseendif => (OBJGEN.(<obj>):(CM_PARSER_N+8))
#xtranslate HPARSER.<obj>:parseinclude => (OBJGEN.(<obj>):(CM_PARSER_N+9))
#xtranslate HPARSER.<obj>:parseltranslate => (OBJGEN.(<obj>):(CM_PARSER_N+10))
#xtranslate HPARSER.<obj>:parsertranslate => (OBJGEN.(<obj>):(CM_PARSER_N+11))
#xtranslate HPARSER.<obj>:adddefine => (OBJGEN.(<obj>):(CM_PARSER_N+12))
#xtranslate HPARSER.<obj>:addxtranslate => (OBJGEN.(<obj>):(CM_PARSER_N+13))
#xtranslate HPARSER.<obj>:sornyel => (OBJGEN.(<obj>):(CM_PARSER_N+14))
#xtranslate HPARSER.<obj>:errorgen => (OBJGEN.(<obj>):(CM_PARSER_N+15))
#xtranslate HPARSER.<obj>:incomperrorgen => (OBJGEN.(<obj>):(CM_PARSER_N+16))
#xtranslate HPARSER.<obj>:chkendoffile => (OBJGEN.(<obj>):(CM_PARSER_N+17))
// ™r”k”lve: oinit(inputReader,name,defDict,xtrDict,inclObj,errorStream)
#endif // _HPARSER_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_HPARSER_N
#define CA_HPARSER_N CA_PARSER_N+7
#define CM_HPARSER_N CM_PARSER_N+17
#endif // CA_HPARSER_N
#ifndef _CA_CM_ONLY_
#ifndef _HPARSERCLASS_OCH_
#define _HPARSERCLASS_OCH_
**********************************************************************
#xtranslate C.HPARSER:<m> => (HPARSERCLASS.clHPARSER():<m>)
#xtranslate C.HPARSER:self() => (clHPARSER())
#xtranslate HPARSERCLASS.<obj>:parent => <obj>\[CA_OBJECT_N+1\]
#xtranslate HPARSERCLASS.<obj>:name => <obj>\[CA_OBJECT_N+2\]
#xtranslate HPARSERCLASS.<obj>:objsize => <obj>\[CA_OBJECT_N+3\]
#xtranslate HPARSERCLASS.<obj>:attribs => <obj>\[CA_OBJECT_N+4\]
#xtranslate HPARSERCLASS.<obj>:methods => <obj>\[CA_OBJECT_N+5\]
#xtranslate HPARSERCLASS.<obj>:classid => <obj>\[CA_OBJECT_N+6\]
#xtranslate HPARSERCLASS.<obj>:parentclassids => <obj>\[CA_OBJECT_N+7\]
#xtranslate HPARSERCLASS.<obj>:amblock => <obj>\[CA_OBJECT_N+8\]
#xtranslate HPARSERCLASS.<obj>:methodsblock => <obj>\[CA_OBJECT_N+9\]
#xtranslate HPARSERCLASS.<obj>:objmethodsimplement => <obj>\[CA_OBJECT_N+10\]
#xtranslate HPARSERCLASS.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate HPARSERCLASS.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate HPARSERCLASS.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate HPARSERCLASS.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate HPARSERCLASS.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate HPARSERCLASS.<obj>:onew => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate HPARSERCLASS.<obj>:ocreate => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate HPARSERCLASS.<obj>:rawoinit => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate HPARSERCLASS.<obj>:oinitclass => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate HPARSERCLASS.<obj>:getmethodsimplement => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate HPARSERCLASS.<obj>:attribidx => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate HPARSERCLASS.<obj>:needclassid => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate HPARSERCLASS.<obj>:isinheritfrom => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
// ™r”k”lve: onew(inputReader,name,defDict,xtrDict,inclObj,errorStream)
// ™r”k”lve: oinitclass()
// ™r”k”lve: onew(inputReader,name,defDict,xtrDict,inclObj,errorStream)
// ™r”k”lve: oinitclass()
#endif // _HPARSERCLASS_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_HPARSERCLASS_N
#define CA_HPARSERCLASS_N CA_PARSERCLASS_N+0
#define CM_HPARSERCLASS_N CM_PARSERCLASS_N+0
#endif // CA_HPARSERCLASS_N
**********************************************************************
#ifdef _HPARSER_PRG_
#ifndef _HPARSER_PRG_OCH_
#define _HPARSER_PRG_OCH_
**********************************************************************
#xtranslate othis:<m> => HPARSER.(othis):<m>
#xtranslate thisclass:<m> => HPARSERCLASS.(this:getClass()):<m>
#define CTHIS HPARSER
**********************************************************************
#xtranslate this:<m> => HPARSER.(this):<m>
#xcommand implement readitem() => static function readitem(this)
#xcommand implement parseline() => static function parseline(this)
#xcommand implement parsefalseline() => ;
static function parsefalseline(this)
#xcommand implement parsedefine(mnameToken) => ;
static function hpr_prsDefine(this,mnameToken)
#xcommand implement parseundef(mnameToken) => ;
static function hpr_prsUndef(this,mnameToken)
#xcommand implement parsetranslate(mNameToken) => ;
static function parsetranslate(this,mNameToken)
#xcommand implement parseifdef(mnameToken,ifdefType) => ;
static function hpr_prsIfdef(this,mnameToken,ifdefType)
#xcommand implement parseelse(mnameToken) => ;
static function hpr_prsElse(this,mnameToken)
#xcommand implement parseendif(mnameToken) => ;
static function hpr_prsEndif(this,mnameToken)
#xcommand implement parseinclude(mnameToken) => ;
static function parseinclude(this,mnameToken)
#xcommand implement parseltranslate(mnameToken) => ;
static function parseltranslate(this,mnameToken)
#xcommand implement parsertranslate(mnameToken) => ;
static function parsertranslate(this,mnameToken)
#xcommand implement adddefine(mnameToken,name,params) => ;
static function hpr_addDefine(this,mnameToken,name,params)
#xcommand implement addxtranslate(mnameToken,leftSide,rightSide) => ;
static function addxtranslate(this,mnameToken,leftSide,rightSide)
#xcommand implement sornyel(kiirBlock) => ;
static function sornyel(this,kiirBlock)
#xcommand implement errorgen(token,errorCode,params) => ;
static function errorgen(this,token,errorCode,params)
#xcommand implement incomperrorgen(token,errorcode,params) => ;
static function incomperrorgen(this,token,errorcode,params)
#xcommand implement chkendoffile() => static function chkendoffile(this)
#xcommand implement oinit(inputReader,name,defDict,xtrDict,inclObj,errorStream) => ;
static function oinit(this,inputReader,name,defDict,xtrDict,inclObj,errorStream)
#ifdef _IMPLEMENT_EXPORT_
#xcommand implement export readitem() => function readitem(this)
#xcommand implement export parseline() => function parseline(this)
#xcommand implement export parsefalseline() => ;
function parsefalseline(this)
#xcommand implement export parsedefine(mnameToken) => ;
function hpr_prsDefine(this,mnameToken)
#xcommand implement export parseundef(mnameToken) => ;
function hpr_prsUndef(this,mnameToken)
#xcommand implement export parsetranslate(mNameToken) => ;
function parsetranslate(this,mNameToken)
#xcommand implement export parseifdef(mnameToken,ifdefType) => ;
function hpr_prsIfdef(this,mnameToken,ifdefType)
#xcommand implement export parseelse(mnameToken) => ;
function hpr_prsElse(this,mnameToken)
#xcommand implement export parseendif(mnameToken) => ;
function hpr_prsEndif(this,mnameToken)
#xcommand implement export parseinclude(mnameToken) => ;
function parseinclude(this,mnameToken)
#xcommand implement export parseltranslate(mnameToken) => ;
function parseltranslate(this,mnameToken)
#xcommand implement export parsertranslate(mnameToken) => ;
function parsertranslate(this,mnameToken)
#xcommand implement export adddefine(mnameToken,name,params) => ;
function hpr_addDefine(this,mnameToken,name,params)
#xcommand implement export addxtranslate(mnameToken,leftSide,rightSide) => ;
function addxtranslate(this,mnameToken,leftSide,rightSide)
#xcommand implement export sornyel(kiirBlock) => ;
function sornyel(this,kiirBlock)
#xcommand implement export errorgen(token,errorCode,params) => ;
function errorgen(this,token,errorCode,params)
#xcommand implement export incomperrorgen(token,errorcode,params) => ;
function incomperrorgen(this,token,errorcode,params)
#xcommand implement export chkendoffile() => function chkendoffile(this)
#xcommand implement export oinit(inputReader,name,defDict,xtrDict,inclObj,errorStream) => ;
function oinit(this,inputReader,name,defDict,xtrDict,inclObj,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_OBJECT_N+5)]:={|this| readitem(this)}
pOsztaly[(CM_PARSER_N+1)]:={|this| parseline(this)}
pOsztaly[(CM_PARSER_N+2)]:={|this| parsefalseline(this)}
pOsztaly[(CM_PARSER_N+3)]:={|this,mnameToken| hpr_prsDefine(this,mnameToken)}
pOsztaly[(CM_PARSER_N+4)]:={|this,mnameToken| hpr_prsUndef(this,mnameToken)}
pOsztaly[(CM_PARSER_N+5)]:={|this,mNameToken| parsetranslate(this,mNameToken)}
pOsztaly[(CM_PARSER_N+6)]:={|this,mnameToken,ifdefType| hpr_prsIfdef(this,mnameToken,ifdefType)}
pOsztaly[(CM_PARSER_N+7)]:={|this,mnameToken| hpr_prsElse(this,mnameToken)}
pOsztaly[(CM_PARSER_N+8)]:={|this,mnameToken| hpr_prsEndif(this,mnameToken)}
pOsztaly[(CM_PARSER_N+9)]:={|this,mnameToken| parseinclude(this,mnameToken)}
pOsztaly[(CM_PARSER_N+10)]:={|this,mnameToken| parseltranslate(this,mnameToken)}
pOsztaly[(CM_PARSER_N+11)]:={|this,mnameToken| parsertranslate(this,mnameToken)}
pOsztaly[(CM_PARSER_N+12)]:={|this,mnameToken,name,params| hpr_addDefine(this,mnameToken,name,params)}
pOsztaly[(CM_PARSER_N+13)]:={|this,mnameToken,leftSide,rightSide| addxtranslate(this,mnameToken,leftSide,rightSide)}
pOsztaly[(CM_PARSER_N+14)]:={|this,kiirBlock| sornyel(this,kiirBlock)}
pOsztaly[(CM_PARSER_N+15)]:={|this,token,errorCode,params| errorgen(this,token,errorCode,params)}
pOsztaly[(CM_PARSER_N+16)]:={|this,token,errorcode,params| incomperrorgen(this,token,errorcode,params)}
pOsztaly[(CM_PARSER_N+17)]:={|this| chkendoffile(this)}
pOsztaly[(4)]:={|this,inputReader,name,defDict,xtrDict,inclObj,errorStream| oinit(this,inputReader,name,defDict,xtrDict,inclObj,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,'defdict',nil}
ta[CA_PARSER_N+3-CA_NIL_N] := {CA_PARSER_N+3,'xtrdict',nil}
ta[CA_PARSER_N+4-CA_NIL_N] := {CA_PARSER_N+4,'ifstack',nil}
ta[CA_PARSER_N+5-CA_NIL_N] := {CA_PARSER_N+5,'branch', }
ta[CA_PARSER_N+6-CA_NIL_N] := {CA_PARSER_N+6,'inclobj', }
ta[CA_PARSER_N+7-CA_NIL_N] := {CA_PARSER_N+7,'lasteos', }
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),'parseline','',nil}
tm[(CM_PARSER_N+2)-CM_NIL_N] := {(CM_PARSER_N+2),'parsefalseline','',nil}
tm[(CM_PARSER_N+3)-CM_NIL_N] := {(CM_PARSER_N+3),'parsedefine','mnameToken',nil}
tm[(CM_PARSER_N+4)-CM_NIL_N] := {(CM_PARSER_N+4),'parseundef','mnameToken',nil}
tm[(CM_PARSER_N+5)-CM_NIL_N] := {(CM_PARSER_N+5),'parsetranslate','mNameToken',nil}
tm[(CM_PARSER_N+6)-CM_NIL_N] := {(CM_PARSER_N+6),'parseifdef','mnameToken,ifdefType',nil}
tm[(CM_PARSER_N+7)-CM_NIL_N] := {(CM_PARSER_N+7),'parseelse','mnameToken',nil}
tm[(CM_PARSER_N+8)-CM_NIL_N] := {(CM_PARSER_N+8),'parseendif','mnameToken',nil}
tm[(CM_PARSER_N+9)-CM_NIL_N] := {(CM_PARSER_N+9),'parseinclude','mnameToken',nil}
tm[(CM_PARSER_N+10)-CM_NIL_N] := {(CM_PARSER_N+10),'parseltranslate','mnameToken',nil}
tm[(CM_PARSER_N+11)-CM_NIL_N] := {(CM_PARSER_N+11),'parsertranslate','mnameToken',nil}
tm[(CM_PARSER_N+12)-CM_NIL_N] := {(CM_PARSER_N+12),'adddefine','mnameToken,name,params',nil}
tm[(CM_PARSER_N+13)-CM_NIL_N] := {(CM_PARSER_N+13),'addxtranslate','mnameToken,leftSide,rightSide',nil}
tm[(CM_PARSER_N+14)-CM_NIL_N] := {(CM_PARSER_N+14),'sornyel','kiirBlock',nil}
tm[(CM_PARSER_N+15)-CM_NIL_N] := {(CM_PARSER_N+15),'errorgen','token,errorCode,params',nil}
tm[(CM_PARSER_N+16)-CM_NIL_N] := {(CM_PARSER_N+16),'incomperrorgen','token,errorcode,params',nil}
tm[(CM_PARSER_N+17)-CM_NIL_N] := {(CM_PARSER_N+17),'chkendoffile','',nil}
tm[(4)-CM_NIL_N] := {(4),'oinit','inputReader,name,defDict,xtrDict,inclObj,errorStream',nil}
return nil
#ifndef _NO_CLHPARSER_
#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 clHPARSER()
// El“szedi az oszt lyt. (class)
static osztaly
if (osztaly==nil)
osztaly:=META.mcHPARSERCLASS():onew(;
clPARSER(),;
"HPARSER",;
CA_HPARSER_N,;
CM_HPARSER_N,;
{|ta,tm|setCams(ta,tm)},;
{|t|setCMethods(t)})
endif
return osztaly
#endif // _NO_CLHPARSER_
#ifndef _NO_HPARSERCLASS_
**********************************************************************
#xtranslate class:<m> => HPARSERCLASS.(class):<m>
#xcommand cimplement onew(inputReader,name,defDict,xtrDict,inclObj,errorStream) => ;
static function onew(class,inputReader,name,defDict,xtrDict,inclObj,errorStream)
#xcommand cimplement oinitclass() => static function oinitclass(class)
#ifdef _IMPLEMENT_EXPORT_
#xcommand cimplement export onew(inputReader,name,defDict,xtrDict,inclObj,errorStream) => ;
function onew(class,inputReader,name,defDict,xtrDict,inclObj,errorStream)
#xcommand cimplement export oinitclass() => function oinitclass(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 mveleti blokkjaival.
pOsztaly[(CM_OBJECT_N+1)]:={|class,inputReader,name,defDict,xtrDict,inclObj,errorStream| onew(class,inputReader,name,defDict,xtrDict,inclObj,errorStream)}
pOsztaly[(CM_OBJECT_N+4)]:={|class| oinitclass(class)}
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,defDict,xtrDict,inclObj,errorStream',nil}
tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil}
return nil
**********************************************************************
#ifndef _NO_MCHPARSERCLASS_
#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 mcHPARSERCLASS()
// El“szedi az oszt ly metaoszt ly t. (metaclass)
static metaOsztaly
if (metaOsztaly==nil)
metaOsztaly:=META.clMETA():onew(;
mcPARSERCLASS(),;
"HPARSERCLASS",;
CA_HPARSERCLASS_N,;
CM_HPARSERCLASS_N,;
{|ta,tm|setMCams(ta,tm)},;
{|t|setMCMethods(t)})
endif
return metaOsztaly
#endif // _NO_MCHPARSERCLASS_
#endif // _NO_HPARSERCLASS_
#ifdef _IMPLEMENT_ONEW_
**********************************************************************
cimplement onew(inputReader,name,defDict,xtrDict,inclObj,errorStream)
local o:=class:ocreate()
HPARSER.o:oinit(inputReader,name,defDict,xtrDict,inclObj,errorStream)
return o
#endif // _IMPLEMENT_ONEW_
**********************************************************************
#ifdef _IMPLEMENT_OINIT_
implement oinit(inputReader,name,defDict,xtrDict,inclObj,errorStream)
super:oinit()
return this
#endif // _IMPLEMENT_OINIT_
**********************************************************************
**********************************************************************
#endif // _HPARSER_PRG_OCH_
#endif // _HPARSER_PRG_