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

310 lines
13 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.
// READER.och oszt ly implement ci¢.
// Gener lva: 1999.06.10, 14:39:56, OBJCCC v2.2.03
// Meta oszt ly defin¡ci¢: Van
#ifndef CA_OBJECT_N
#ifdef _STRICT_PARENT_
#ifdef _CA_CM_ONLY_
#include "OBJECT.och"
#else // _CA_CM_ONLY_
#define _CA_CM_ONLY_
#include "OBJECT.och"
#undef _CA_CM_ONLY_
#endif // _CA_CM_ONLY_
#else
#include "OBJECT.och"
#endif // _STRICT_PARENT_
#endif // CA_OBJECT_N
#ifndef _CA_CM_ONLY_
#ifndef _READER_OCH_
#define _READER_OCH_
#xtranslate READER.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate READER.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate READER.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate READER.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate READER.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate READER.<obj>:name => <obj>\[CA_OBJECT_N+1\]
#xtranslate READER.<obj>:errorstream => <obj>\[CA_OBJECT_N+2\]
#xtranslate READER.<obj>:tbuffer => <obj>\[CA_OBJECT_N+3\]
// Specifik lva: read()
// Specifik lva: unread(item)
// Specifik lva: readtbuffer()
// Specifik lva: arraytbuffer()
// Specifik lva: readitem()
// Specifik lva: iserror(l)
// Specifik lva: adderror(prsErr)
// Specifik lva: destruct()
// ™r”k”lve: oinit(name,errorStream)
#xtranslate READER.<obj>:read => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate READER.<obj>:unread => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate READER.<obj>:readtbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate READER.<obj>:arraytbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate READER.<obj>:readitem => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate READER.<obj>:iserror => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate READER.<obj>:adderror => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate READER.<obj>:destruct => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
// ™r”k”lve: oinit(name,errorStream)
#endif // _READER_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_READER_N
#define CA_READER_N CA_OBJECT_N+3
#define CM_READER_N CM_OBJECT_N+8
#endif // CA_READER_N
#ifndef _CA_CM_ONLY_
#ifndef _READERCLASS_OCH_
#define _READERCLASS_OCH_
**********************************************************************
#xtranslate C.READER:<m> => (READERCLASS.clREADER():<m>)
#xtranslate C.READER:self() => (clREADER())
#xtranslate READERCLASS.<obj>:parent => <obj>\[CA_OBJECT_N+1\]
#xtranslate READERCLASS.<obj>:name => <obj>\[CA_OBJECT_N+2\]
#xtranslate READERCLASS.<obj>:objsize => <obj>\[CA_OBJECT_N+3\]
#xtranslate READERCLASS.<obj>:attribs => <obj>\[CA_OBJECT_N+4\]
#xtranslate READERCLASS.<obj>:methods => <obj>\[CA_OBJECT_N+5\]
#xtranslate READERCLASS.<obj>:classid => <obj>\[CA_OBJECT_N+6\]
#xtranslate READERCLASS.<obj>:parentclassids => <obj>\[CA_OBJECT_N+7\]
#xtranslate READERCLASS.<obj>:amblock => <obj>\[CA_OBJECT_N+8\]
#xtranslate READERCLASS.<obj>:methodsblock => <obj>\[CA_OBJECT_N+9\]
#xtranslate READERCLASS.<obj>:objmethodsimplement => <obj>\[CA_OBJECT_N+10\]
#xtranslate READERCLASS.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate READERCLASS.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate READERCLASS.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate READERCLASS.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate READERCLASS.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate READERCLASS.<obj>:onew => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate READERCLASS.<obj>:ocreate => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate READERCLASS.<obj>:rawoinit => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate READERCLASS.<obj>:oinitclass => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate READERCLASS.<obj>:getmethodsimplement => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate READERCLASS.<obj>:attribidx => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate READERCLASS.<obj>:needclassid => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate READERCLASS.<obj>:isinheritfrom => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
// ™r”k”lve: onew(name,errorStream)
// ™r”k”lve: onew(name,errorStream)
#endif // _READERCLASS_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_READERCLASS_N
#define CA_READERCLASS_N CA_BEHAVIOR_N+0
#define CM_READERCLASS_N CM_BEHAVIOR_N+0
#endif // CA_READERCLASS_N
**********************************************************************
#ifdef _READER_PRG_
#ifndef _READER_PRG_OCH_
#define _READER_PRG_OCH_
**********************************************************************
#xtranslate othis:<m> => READER.(othis):<m>
#xtranslate thisclass:<m> => READERCLASS.(this:getClass()):<m>
#define CTHIS READER
**********************************************************************
#xtranslate this:<m> => READER.(this):<m>
#xcommand implement read() => static function read(this)
#xcommand implement unread(item) => static function unread(this,item)
#xcommand implement readtbuffer() => static function readtbuffer(this)
#xcommand implement arraytbuffer() => static function arraytbuffer(this)
#xcommand implement iserror(l) => static function iserror(this,l)
#xcommand implement adderror(prsErr) => ;
static function adderror(this,prsErr)
#xcommand implement destruct() => static function retnil(this,methodName,methodIdx,params)
#xcommand implement oinit(name,errorStream) => ;
static function oinit(this,name,errorStream)
#ifdef _IMPLEMENT_EXPORT_
#xcommand implement export read() => function read(this)
#xcommand implement export unread(item) => function unread(this,item)
#xcommand implement export readtbuffer() => function readtbuffer(this)
#xcommand implement export arraytbuffer() => function arraytbuffer(this)
#xcommand implement export iserror(l) => function iserror(this,l)
#xcommand implement export adderror(prsErr) => ;
function adderror(this,prsErr)
#xcommand implement export destruct() => function retnil(this,methodName,methodIdx,params)
#xcommand implement export oinit(name,errorStream) => ;
function oinit(this,name,errorStream)
#endif // _IMPLEMENT_EXPORT_
#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(4))
#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(5))
#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(6))
#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(7))
#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(8))
**********************************************************************
static function setCMethods(pOsztaly)
// Egy t”mb”t felt”lt az oszt ly mveleti blokkjaival.
pOsztaly[(CM_OBJECT_N+1)]:={|this| read(this)}
pOsztaly[(CM_OBJECT_N+2)]:={|this,item| unread(this,item)}
pOsztaly[(CM_OBJECT_N+3)]:={|this| readtbuffer(this)}
pOsztaly[(CM_OBJECT_N+4)]:={|this| arraytbuffer(this)}
pOsztaly[(CM_OBJECT_N+5)]:={|this| errAbstract(this,"readitem",(CM_OBJECT_N+5),{})}
pOsztaly[(CM_OBJECT_N+6)]:={|this,l| iserror(this,l)}
pOsztaly[(CM_OBJECT_N+7)]:={|this,prsErr| adderror(this,prsErr)}
pOsztaly[(CM_OBJECT_N+8)]:={|this| retnil(this,"destruct",(CM_OBJECT_N+8),{})}
pOsztaly[(4)]:={|this,name,errorStream| oinit(this,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_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'name', }
ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'errorstream', }
ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'tbuffer', }
tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'read','',nil}
tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'unread','item',nil}
tm[(CM_OBJECT_N+3)-CM_NIL_N] := {(CM_OBJECT_N+3),'readtbuffer','',nil}
tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'arraytbuffer','',nil}
tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','','a'}
tm[(CM_OBJECT_N+6)-CM_NIL_N] := {(CM_OBJECT_N+6),'iserror','l',nil}
tm[(CM_OBJECT_N+7)-CM_NIL_N] := {(CM_OBJECT_N+7),'adderror','prsErr',nil}
tm[(CM_OBJECT_N+8)-CM_NIL_N] := {(CM_OBJECT_N+8),'destruct','','a'}
tm[(4)-CM_NIL_N] := {(4),'oinit','name,errorStream',nil}
return nil
#ifndef _NO_CLREADER_
#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 clREADER()
// El“szedi az oszt lyt. (class)
static osztaly
if (osztaly==nil)
osztaly:=META.mcREADERCLASS():onew(;
clOBJECT(),;
"READER",;
CA_READER_N,;
CM_READER_N,;
{|ta,tm|setCams(ta,tm)},;
{|t|setCMethods(t)})
endif
return osztaly
#endif // _NO_CLREADER_
#ifndef _NO_READERCLASS_
**********************************************************************
#xtranslate class:<m> => READERCLASS.(class):<m>
#xcommand cimplement onew(name,errorStream) => ;
static function onew(class,name,errorStream)
#ifdef _IMPLEMENT_EXPORT_
#xcommand cimplement export onew(name,errorStream) => ;
function onew(class,name,errorStream)
#endif // _IMPLEMENT_EXPORT_
#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(4))
#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(5))
#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(6))
#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(7))
#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(8))
#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+1))
#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+2))
#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+3))
#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+4))
#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+5))
#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+6))
#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+7))
#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():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,name,errorStream| onew(class,name,errorStream)}
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','name,errorStream',nil}
return nil
**********************************************************************
#ifndef _NO_MCREADERCLASS_
#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 mcREADERCLASS()
// El“szedi az oszt ly metaoszt ly t. (metaclass)
static metaOsztaly
if (metaOsztaly==nil)
metaOsztaly:=META.clMETA():onew(;
clBEHAVIOR(),;
"READERCLASS",;
CA_READERCLASS_N,;
CM_READERCLASS_N,;
{|ta,tm|setMCams(ta,tm)},;
{|t|setMCMethods(t)})
endif
return metaOsztaly
#endif // _NO_MCREADERCLASS_
#endif // _NO_READERCLASS_
#ifdef _IMPLEMENT_ONEW_
**********************************************************************
cimplement onew(name,errorStream)
local o:=class:ocreate()
READER.o:oinit(name,errorStream)
return o
#endif // _IMPLEMENT_ONEW_
**********************************************************************
#ifdef _IMPLEMENT_OINIT_
implement oinit(name,errorStream)
super:oinit()
return this
#endif // _IMPLEMENT_OINIT_
**********************************************************************
**********************************************************************
#endif // _READER_PRG_OCH_
#endif // _READER_PRG_