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

287 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.
// LPARSER.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 _LPARSER_OCH_
#define _LPARSER_OCH_
#xtranslate LPARSER.<obj>:name => <obj>\[CA_OBJECT_N+1\]
#xtranslate LPARSER.<obj>:errorstream => <obj>\[CA_OBJECT_N+2\]
#xtranslate LPARSER.<obj>:tbuffer => <obj>\[CA_OBJECT_N+3\]
#xtranslate LPARSER.<obj>:inputreader => <obj>\[CA_READER_N+1\]
#xtranslate LPARSER.<obj>:item => <obj>\[CA_TREADER_N+1\]
#xtranslate LPARSER.<obj>:parserbuffer => <obj>\[CA_TREADER_N+2\]
#xtranslate LPARSER.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate LPARSER.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate LPARSER.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate LPARSER.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate LPARSER.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate LPARSER.<obj>:read => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate LPARSER.<obj>:unread => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate LPARSER.<obj>:readtbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate LPARSER.<obj>:arraytbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate LPARSER.<obj>:readitem => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate LPARSER.<obj>:iserror => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate LPARSER.<obj>:adderror => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate LPARSER.<obj>:destruct => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
#xtranslate LPARSER.<obj>:readinput => (OBJGEN.(<obj>):(CM_READER_N+1))
#xtranslate LPARSER.<obj>:unreadinput => (OBJGEN.(<obj>):(CM_READER_N+2))
#xtranslate LPARSER.<obj>:addinputreader => (OBJGEN.(<obj>):(CM_READER_N+3))
#xtranslate LPARSER.<obj>:putparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+1))
#xtranslate LPARSER.<obj>:getparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+2))
#xtranslate LPARSER.<obj>:unputparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+3))
#xtranslate LPARSER.<obj>:ungetparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+4))
#xtranslate LPARSER.<obj>:clearparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+5))
#xtranslate LPARSER.<obj>:rds => (OBJGEN.(<obj>):(CM_TREADER_N+6))
#xtranslate LPARSER.<obj>:unrds => (OBJGEN.(<obj>):(CM_TREADER_N+7))
#xtranslate LPARSER.<obj>:strparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+8))
#xtranslate LPARSER.<obj>:arrayparserbuffer => (OBJGEN.(<obj>):(CM_TREADER_N+9))
// ™r”k”lve: readinput()
// Specifik lva: readline()
// ™r”k”lve: readitem()
// ™r”k”lve: readinput()
#xtranslate LPARSER.<obj>:readline => (OBJGEN.(<obj>):(CM_PARSER_N+1))
// ™r”k”lve: readitem()
#endif // _LPARSER_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_LPARSER_N
#define CA_LPARSER_N CA_PARSER_N+0
#define CM_LPARSER_N CM_PARSER_N+1
#endif // CA_LPARSER_N
#ifndef _CA_CM_ONLY_
#ifndef _LPARSERCLASS_OCH_
#define _LPARSERCLASS_OCH_
**********************************************************************
#xtranslate C.LPARSER:<m> => (LPARSERCLASS.clLPARSER():<m>)
#xtranslate C.LPARSER:self() => (clLPARSER())
#xtranslate LPARSERCLASS.<obj>:parent => <obj>\[CA_OBJECT_N+1\]
#xtranslate LPARSERCLASS.<obj>:name => <obj>\[CA_OBJECT_N+2\]
#xtranslate LPARSERCLASS.<obj>:objsize => <obj>\[CA_OBJECT_N+3\]
#xtranslate LPARSERCLASS.<obj>:attribs => <obj>\[CA_OBJECT_N+4\]
#xtranslate LPARSERCLASS.<obj>:methods => <obj>\[CA_OBJECT_N+5\]
#xtranslate LPARSERCLASS.<obj>:classid => <obj>\[CA_OBJECT_N+6\]
#xtranslate LPARSERCLASS.<obj>:parentclassids => <obj>\[CA_OBJECT_N+7\]
#xtranslate LPARSERCLASS.<obj>:amblock => <obj>\[CA_OBJECT_N+8\]
#xtranslate LPARSERCLASS.<obj>:methodsblock => <obj>\[CA_OBJECT_N+9\]
#xtranslate LPARSERCLASS.<obj>:objmethodsimplement => <obj>\[CA_OBJECT_N+10\]
#xtranslate LPARSERCLASS.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate LPARSERCLASS.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate LPARSERCLASS.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate LPARSERCLASS.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate LPARSERCLASS.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate LPARSERCLASS.<obj>:onew => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate LPARSERCLASS.<obj>:ocreate => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate LPARSERCLASS.<obj>:rawoinit => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate LPARSERCLASS.<obj>:oinitclass => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate LPARSERCLASS.<obj>:getmethodsimplement => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate LPARSERCLASS.<obj>:attribidx => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate LPARSERCLASS.<obj>:needclassid => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate LPARSERCLASS.<obj>:isinheritfrom => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
#endif // _LPARSERCLASS_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_LPARSERCLASS_N
#define CA_LPARSERCLASS_N CA_PARSERCLASS_N+0
#define CM_LPARSERCLASS_N CM_PARSERCLASS_N+0
#endif // CA_LPARSERCLASS_N
**********************************************************************
#ifdef _LPARSER_PRG_
#ifndef _LPARSER_PRG_OCH_
#define _LPARSER_PRG_OCH_
**********************************************************************
#xtranslate othis:<m> => LPARSER.(othis):<m>
#xtranslate thisclass:<m> => LPARSERCLASS.(this:getClass()):<m>
#define CTHIS LPARSER
**********************************************************************
#xtranslate this:<m> => LPARSER.(this):<m>
#xcommand implement readinput() => static function readinput(this)
#xcommand implement readline() => static function readline(this)
#xcommand implement readitem() => static function readitem(this)
#ifdef _IMPLEMENT_EXPORT_
#xcommand implement export readinput() => function readinput(this)
#xcommand implement export readline() => function readline(this)
#xcommand implement export readitem() => function readitem(this)
#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_READER_N+1)]:={|this| readinput(this)}
pOsztaly[(CM_PARSER_N+1)]:={|this| readline(this)}
pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)}
return pOsztaly
**********************************************************************
static function setCams(ta,tm)
// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attrib£tumaival s mveleteivel.
tm[(CM_READER_N+1)-CM_NIL_N] := {(CM_READER_N+1),'readinput','',nil}
tm[(CM_PARSER_N+1)-CM_NIL_N] := {(CM_PARSER_N+1),'readline','',nil}
tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil}
return nil
#ifndef _NO_CLLPARSER_
#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 clLPARSER()
// El“szedi az oszt lyt. (class)
static osztaly
if (osztaly==nil)
osztaly:=META.mcLPARSERCLASS():onew(;
clPARSER(),;
"LPARSER",;
CA_LPARSER_N,;
CM_LPARSER_N,;
{|ta,tm|setCams(ta,tm)},;
{|t|setCMethods(t)})
endif
return osztaly
#endif // _NO_CLLPARSER_
#ifndef _NO_LPARSERCLASS_
**********************************************************************
#xtranslate class:<m> => LPARSERCLASS.(class):<m>
#ifdef _IMPLEMENT_EXPORT_
#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.
return pOsztaly
**********************************************************************
static function setMCams(ta,tm)
// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attrib£tumaival s mveleteivel.
return nil
**********************************************************************
#ifndef _NO_MCLPARSERCLASS_
#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 mcLPARSERCLASS()
// El“szedi az oszt ly metaoszt ly t. (metaclass)
static metaOsztaly
if (metaOsztaly==nil)
metaOsztaly:=META.clMETA():onew(;
mcPARSERCLASS(),;
"LPARSERCLASS",;
CA_LPARSERCLASS_N,;
CM_LPARSERCLASS_N,;
{|ta,tm|setMCams(ta,tm)},;
{|t|setMCMethods(t)})
endif
return metaOsztaly
#endif // _NO_MCLPARSERCLASS_
#endif // _NO_LPARSERCLASS_
**********************************************************************
#endif // _LPARSER_PRG_OCH_
#endif // _LPARSER_PRG_