62 lines
1.7 KiB
OpenEdge ABL
62 lines
1.7 KiB
OpenEdge ABL
//
|
||
// $Id$
|
||
//
|
||
|
||
//*******************************************************************
|
||
// lparser.cls: Sor elemz“. A PARSER-t“l ”r”k”l.
|
||
// 1999, Csisz r Levente
|
||
|
||
// Ez az elemz“ vonja ”ssze a folytat˘ sorokat.
|
||
// Mindig egy sort t rol a sorv‚gjellel egy<67>tt.
|
||
// A sorokon a k”vetkez“ transzform ci˘kat v‚gzi el (a sorrend
|
||
// fontos!).
|
||
//
|
||
// - '//', '&&' ‚s a '*' kommenteket eldobja.
|
||
// - A '/*' kommentekben csak a cr-eket ‚s az lf-eket hagyja meg,
|
||
// ‚s a tokent <<3C>res>-re v ltoztatja.
|
||
// - Az egym s ut n k”vetkez“ <<3C>res>-eket ”sszevonja.
|
||
// - Megcsin lja a k”vetkez“ ”sszevon st.
|
||
// Az <Łjsor>-t a fil‚ eleje is helyettesˇtheti.
|
||
//
|
||
// <Łjsor> <sor> ';' [<<3C>res>] <Łjsor> <<3C>res2> <ntoken> ==>
|
||
// <Łjsor> <Łjsor> <sor> ' ' <ntoken>
|
||
//
|
||
// <Łjsor> <sor> ';' [<<3C>res>] <Łjsor> <ntoken> ==>
|
||
// <Łjsor> <Łjsor> <sor> <ntoken>
|
||
//
|
||
// A <sor> b rmilyen token sorozat lehet, amiben nem szerepel
|
||
// ';' ‚s <Łjsor>.
|
||
//
|
||
// A <ntoken> b rmilyen token lehet, kiv‚ve az <<3C>res> tokent.
|
||
//
|
||
// Ha egy sor <20>ress‚ v lik, akkor az "" form ban kell kiˇrni.
|
||
// Ezt a hˇv˘nak kell kezelnie, itt neh‚zkes.
|
||
|
||
|
||
class LPARSER PARSER
|
||
|
||
rmethod readInput()
|
||
// Kisz–ri az egy soros megjegyz‚seket ‚s talakˇtja a
|
||
// '/*'-osakat
|
||
|
||
nmethod readLine()
|
||
// Bolvas egy teljes sort a parserBuffer-be. Az egy soros
|
||
// megjegyz‚seket eldobja, a t”bb sorosakat pedig feldolgozza
|
||
// Łgy, hogy azonos mennyis‚g– Łj sort helyez el a parseBuffer
|
||
// elej‚re. A folytat˘ sorokat ”sszevonja.
|
||
|
||
rmethod readItem()
|
||
// Olvas egy elemet.
|
||
// Ret: Az elem, ha OK, nil, ha v‚ge van a streamnek, vagy ha
|
||
// hiba volt.
|
||
|
||
// rmethod oinit(inputReader,name)
|
||
|
||
metaclass
|
||
|
||
// rmethod onew(inputReader,name)
|
||
|
||
|
||
|
||
|