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

82 lines
2.4 KiB
OpenEdge ABL
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.
//
// $Id$
//
//*******************************************************************
// lreader.cls: L nc reader.
// 1999, Csisz r Levente
// Ez a reader readerek stackjn kereszt<7A>l olvas, Łgy, hogy olvas a
// legfels“b“l, ha az elrte az EOF-ot, akkor k<>ld egy EOS (End Of
// Stream)-et, eldobja a stack tetejn lev“ reader-t, s folytatja
// az olvas st a stack tetejn maradt reader-el.
// Amikor Łj stream-et kezd, akkor k<>ld egy BOS (Begin Of Stream)
// elemet.
// Az EOS s a BOF rtke paramterezhet“, s“t el is hagyhat˘ak.
// Mj.: A stackb“l t”r”lt reader-ekre kiadja a destruct()-ot.
// Egy lreader destruct-ja az ”sszes a stack-jben lev“ reader
// destructj t jelenti.
// Mj2.: Az errorStream-et nem  llˇtja, arr˘l, hogy a hib kat
// megkapjuk nek<65>nk kell gondoskodni.
// A neve mindig a stack legfels“ eleme.
class LREADER CREADER
attrib readerStack // A stack, amiben a reader-ek vannak.
// Egy elem {reader,needBOS} alakŁ.
// A needBOS .t., ha kell BOS-t k<>ldeni
// .f., ha nem.
attrib BOSItem // A BOS elem. B rmilyen objektum vagy
// rtk lehet (karakter is.)
// Ha nil, akkor nem k<>ld ilyet.
attrib EOSItem // Az EOS elem. B rmilyen objektum vagy
// rtk lehet (karakter is.)
// Ha nil, akkor nem k<>ld ilyet.
rmethod readItem()
// Olvas egy elemet.
// Ret: Az elem, ha OK, nil, ha vge van a streamnek, vagy ha
// hiba volt.
nmethod pushReader(aReader)
// Az itt megadott readert beteszi a stack-be. A legk”zelebbi
// olvas s ebb“l fog olvasni.
nmethod topReader()
// Megadja a stack tetejn lev“ readert. Ha nincs ret nil
nmethod popReader()
// Visszaadja a stack tetejn lev“ readert, s a stack-r“l t”rli.
// Nem adja ki r  a destruct()-ot.
nmethod dropReader()
// A stackr“l t”rli a tetejn lev“ readert.
// Kiadja r  a destruct()-ot.
nmethod isEmpty()
// Igaz, ha a stack <20>res, egybknt hamis.
nmethod getBOSItem()
// Ad egy BOS itemet.
nmethod getEOSItem()
// Ad egy EOS itemet.
rmethod getFile()
rmethod getLine()
rmethod getPos()
rmethod oinit(BOSItem,EOSItem,name,errorStream)
// Inicializ lja az objektumot.
metaclass
rmethod onew(BOSItem,EOSItem,name,errorStream)