From 2bc1882ed4f35bd2af3ca424303cbaaf0550bd94 Mon Sep 17 00:00:00 2001 From: Luiz Rafael Culik Date: Sun, 19 Mar 2000 19:15:49 +0000 Subject: [PATCH] *** empty log message *** --- harbour/samples/cccppc/Makefile | 67 - harbour/samples/cccppc/behavior.cls | 95 -- harbour/samples/cccppc/behavior.och | 353 ----- harbour/samples/cccppc/cccpp_pr.prg | 133 -- harbour/samples/cccppc/cccppc.prg | 603 -------- harbour/samples/cccppc/changes.txt | 438 ------ harbour/samples/cccppc/cr_lf.ch | 10 - harbour/samples/cccppc/creader.cls | 37 - harbour/samples/cccppc/creader.och | 308 ----- harbour/samples/cccppc/creader.prg | 110 -- harbour/samples/cccppc/crlf.prg | 25 - harbour/samples/cccppc/ctoken.ch | 153 -- harbour/samples/cccppc/debug.ch | 16 - harbour/samples/cccppc/defdict.cls | 36 - harbour/samples/cccppc/defdict.och | 271 ---- harbour/samples/cccppc/defdict.prg | 91 -- harbour/samples/cccppc/edefdict.cls | 29 - harbour/samples/cccppc/edefdict.och | 277 ---- harbour/samples/cccppc/edefdict.prg | 144 -- harbour/samples/cccppc/expr.prg | 398 ------ harbour/samples/cccppc/extrdict.cls | 43 - harbour/samples/cccppc/extrdict.och | 281 ---- harbour/samples/cccppc/extrdict.prg | 335 ----- harbour/samples/cccppc/felbont.prg | 89 -- harbour/samples/cccppc/fnutil.prg | 185 --- harbour/samples/cccppc/freader.cls | 61 - harbour/samples/cccppc/freader.och | 342 ----- harbour/samples/cccppc/freader.prg | 183 --- harbour/samples/cccppc/guesseol.prg | 35 - harbour/samples/cccppc/hparser.ch | 52 - harbour/samples/cccppc/hparser.cls | 126 -- harbour/samples/cccppc/hparser.och | 459 ------ harbour/samples/cccppc/hparser.prg | 1541 --------------------- harbour/samples/cccppc/hparser2.prg | 416 ------ harbour/samples/cccppc/incl.cls | 33 - harbour/samples/cccppc/incl.och | 269 ---- harbour/samples/cccppc/incl.prg | 88 -- harbour/samples/cccppc/lparser.cls | 61 - harbour/samples/cccppc/lparser.och | 286 ---- harbour/samples/cccppc/lparser.prg | 283 ---- harbour/samples/cccppc/lreader.cls | 81 -- harbour/samples/cccppc/lreader.och | 356 ----- harbour/samples/cccppc/lreader.prg | 164 --- harbour/samples/cccppc/makefile.rmk | 99 -- harbour/samples/cccppc/maltrset.cls | 31 - harbour/samples/cccppc/maltrset.och | 303 ---- harbour/samples/cccppc/maltrset.prg | 57 - harbour/samples/cccppc/mcontrol.cls | 31 - harbour/samples/cccppc/mcontrol.och | 295 ---- harbour/samples/cccppc/mcontrol.prg | 358 ----- harbour/samples/cccppc/meta.cls | 48 - harbour/samples/cccppc/meta.och | 282 ---- harbour/samples/cccppc/metaclas.cls | 7 - harbour/samples/cccppc/metaclas.och | 250 ---- harbour/samples/cccppc/mmarker.cls | 32 - harbour/samples/cccppc/mmarker.och | 299 ---- harbour/samples/cccppc/mmarker.prg | 47 - harbour/samples/cccppc/mparser.cls | 136 -- harbour/samples/cccppc/mparser.och | 445 ------ harbour/samples/cccppc/mparser.prg | 1993 --------------------------- harbour/samples/cccppc/newline.prg | 24 - harbour/samples/cccppc/nparser.cls | 113 -- harbour/samples/cccppc/nparser.och | 463 ------- harbour/samples/cccppc/nparser.prg | 708 ---------- harbour/samples/cccppc/object.cls | 27 - harbour/samples/cccppc/object.och | 314 ----- harbour/samples/cccppc/object.prg | 618 --------- harbour/samples/cccppc/objgen.ch | 28 - harbour/samples/cccppc/package.cls | 58 - harbour/samples/cccppc/package.och | 287 ---- harbour/samples/cccppc/package.prg | 126 -- harbour/samples/cccppc/parser.cls | 63 - harbour/samples/cccppc/parser.och | 359 ----- harbour/samples/cccppc/parser.prg | 152 -- harbour/samples/cccppc/ppcerr.ch | 13 - harbour/samples/cccppc/prserr.ch | 35 - harbour/samples/cccppc/prserr.cls | 52 - harbour/samples/cccppc/prserr.och | 305 ---- harbour/samples/cccppc/prserr.prg | 136 -- harbour/samples/cccppc/prtree.cls | 31 - harbour/samples/cccppc/prtree.och | 249 ---- harbour/samples/cccppc/prtree.prg | 69 - harbour/samples/cccppc/prtreepr.cls | 41 - harbour/samples/cccppc/prtreepr.och | 275 ---- harbour/samples/cccppc/prtreepr.prg | 101 -- harbour/samples/cccppc/ralter.cls | 26 - harbour/samples/cccppc/ralter.och | 299 ---- harbour/samples/cccppc/ralter.prg | 50 - harbour/samples/cccppc/reader.cls | 69 - harbour/samples/cccppc/reader.och | 309 ----- harbour/samples/cccppc/reader.prg | 96 -- harbour/samples/cccppc/readme.txt | 43 - harbour/samples/cccppc/rmarker.cls | 51 - harbour/samples/cccppc/rmarker.och | 315 ----- harbour/samples/cccppc/rmarker.prg | 283 ---- harbour/samples/cccppc/rsmmarkr.cls | 26 - harbour/samples/cccppc/rsmmarkr.och | 295 ---- harbour/samples/cccppc/rsmmarkr.prg | 55 - harbour/samples/cccppc/sreader.cls | 28 - harbour/samples/cccppc/sreader.och | 292 ---- harbour/samples/cccppc/sreader.prg | 40 - harbour/samples/cccppc/tbuffer.cls | 52 - harbour/samples/cccppc/tbuffer.och | 289 ---- harbour/samples/cccppc/tbuffer.prg | 171 --- harbour/samples/cccppc/tkstr.cls | 24 - harbour/samples/cccppc/tkstr.och | 299 ---- harbour/samples/cccppc/tkstr.prg | 55 - harbour/samples/cccppc/token.cls | 60 - harbour/samples/cccppc/token.och | 337 ----- harbour/samples/cccppc/token.prg | 234 ---- harbour/samples/cccppc/tokenst.cls | 21 - harbour/samples/cccppc/tokenst.och | 283 ---- harbour/samples/cccppc/tokenst.prg | 27 - harbour/samples/cccppc/tostr.prg | 35 - harbour/samples/cccppc/treader.cls | 27 - harbour/samples/cccppc/treader.och | 298 ---- harbour/samples/cccppc/treader.prg | 56 - harbour/samples/cccppc/util.prg | 425 ------ harbour/samples/cccppc/version.prg | 88 -- harbour/samples/cccppc/xtrdict.cls | 33 - harbour/samples/cccppc/xtrdict.och | 267 ---- harbour/samples/cccppc/xtrdict.prg | 244 ---- 122 files changed, 24325 deletions(-) delete mode 100644 harbour/samples/cccppc/Makefile delete mode 100644 harbour/samples/cccppc/behavior.cls delete mode 100644 harbour/samples/cccppc/behavior.och delete mode 100644 harbour/samples/cccppc/cccpp_pr.prg delete mode 100644 harbour/samples/cccppc/cccppc.prg delete mode 100644 harbour/samples/cccppc/changes.txt delete mode 100644 harbour/samples/cccppc/cr_lf.ch delete mode 100644 harbour/samples/cccppc/creader.cls delete mode 100644 harbour/samples/cccppc/creader.och delete mode 100644 harbour/samples/cccppc/creader.prg delete mode 100644 harbour/samples/cccppc/crlf.prg delete mode 100644 harbour/samples/cccppc/ctoken.ch delete mode 100644 harbour/samples/cccppc/debug.ch delete mode 100644 harbour/samples/cccppc/defdict.cls delete mode 100644 harbour/samples/cccppc/defdict.och delete mode 100644 harbour/samples/cccppc/defdict.prg delete mode 100644 harbour/samples/cccppc/edefdict.cls delete mode 100644 harbour/samples/cccppc/edefdict.och delete mode 100644 harbour/samples/cccppc/edefdict.prg delete mode 100644 harbour/samples/cccppc/expr.prg delete mode 100644 harbour/samples/cccppc/extrdict.cls delete mode 100644 harbour/samples/cccppc/extrdict.och delete mode 100644 harbour/samples/cccppc/extrdict.prg delete mode 100644 harbour/samples/cccppc/felbont.prg delete mode 100644 harbour/samples/cccppc/fnutil.prg delete mode 100644 harbour/samples/cccppc/freader.cls delete mode 100644 harbour/samples/cccppc/freader.och delete mode 100644 harbour/samples/cccppc/freader.prg delete mode 100644 harbour/samples/cccppc/guesseol.prg delete mode 100644 harbour/samples/cccppc/hparser.ch delete mode 100644 harbour/samples/cccppc/hparser.cls delete mode 100644 harbour/samples/cccppc/hparser.och delete mode 100644 harbour/samples/cccppc/hparser.prg delete mode 100644 harbour/samples/cccppc/hparser2.prg delete mode 100644 harbour/samples/cccppc/incl.cls delete mode 100644 harbour/samples/cccppc/incl.och delete mode 100644 harbour/samples/cccppc/incl.prg delete mode 100644 harbour/samples/cccppc/lparser.cls delete mode 100644 harbour/samples/cccppc/lparser.och delete mode 100644 harbour/samples/cccppc/lparser.prg delete mode 100644 harbour/samples/cccppc/lreader.cls delete mode 100644 harbour/samples/cccppc/lreader.och delete mode 100644 harbour/samples/cccppc/lreader.prg delete mode 100644 harbour/samples/cccppc/makefile.rmk delete mode 100644 harbour/samples/cccppc/maltrset.cls delete mode 100644 harbour/samples/cccppc/maltrset.och delete mode 100644 harbour/samples/cccppc/maltrset.prg delete mode 100644 harbour/samples/cccppc/mcontrol.cls delete mode 100644 harbour/samples/cccppc/mcontrol.och delete mode 100644 harbour/samples/cccppc/mcontrol.prg delete mode 100644 harbour/samples/cccppc/meta.cls delete mode 100644 harbour/samples/cccppc/meta.och delete mode 100644 harbour/samples/cccppc/metaclas.cls delete mode 100644 harbour/samples/cccppc/metaclas.och delete mode 100644 harbour/samples/cccppc/mmarker.cls delete mode 100644 harbour/samples/cccppc/mmarker.och delete mode 100644 harbour/samples/cccppc/mmarker.prg delete mode 100644 harbour/samples/cccppc/mparser.cls delete mode 100644 harbour/samples/cccppc/mparser.och delete mode 100644 harbour/samples/cccppc/mparser.prg delete mode 100644 harbour/samples/cccppc/newline.prg delete mode 100644 harbour/samples/cccppc/nparser.cls delete mode 100644 harbour/samples/cccppc/nparser.och delete mode 100644 harbour/samples/cccppc/nparser.prg delete mode 100644 harbour/samples/cccppc/object.cls delete mode 100644 harbour/samples/cccppc/object.och delete mode 100644 harbour/samples/cccppc/object.prg delete mode 100644 harbour/samples/cccppc/objgen.ch delete mode 100644 harbour/samples/cccppc/package.cls delete mode 100644 harbour/samples/cccppc/package.och delete mode 100644 harbour/samples/cccppc/package.prg delete mode 100644 harbour/samples/cccppc/parser.cls delete mode 100644 harbour/samples/cccppc/parser.och delete mode 100644 harbour/samples/cccppc/parser.prg delete mode 100644 harbour/samples/cccppc/ppcerr.ch delete mode 100644 harbour/samples/cccppc/prserr.ch delete mode 100644 harbour/samples/cccppc/prserr.cls delete mode 100644 harbour/samples/cccppc/prserr.och delete mode 100644 harbour/samples/cccppc/prserr.prg delete mode 100644 harbour/samples/cccppc/prtree.cls delete mode 100644 harbour/samples/cccppc/prtree.och delete mode 100644 harbour/samples/cccppc/prtree.prg delete mode 100644 harbour/samples/cccppc/prtreepr.cls delete mode 100644 harbour/samples/cccppc/prtreepr.och delete mode 100644 harbour/samples/cccppc/prtreepr.prg delete mode 100644 harbour/samples/cccppc/ralter.cls delete mode 100644 harbour/samples/cccppc/ralter.och delete mode 100644 harbour/samples/cccppc/ralter.prg delete mode 100644 harbour/samples/cccppc/reader.cls delete mode 100644 harbour/samples/cccppc/reader.och delete mode 100644 harbour/samples/cccppc/reader.prg delete mode 100644 harbour/samples/cccppc/readme.txt delete mode 100644 harbour/samples/cccppc/rmarker.cls delete mode 100644 harbour/samples/cccppc/rmarker.och delete mode 100644 harbour/samples/cccppc/rmarker.prg delete mode 100644 harbour/samples/cccppc/rsmmarkr.cls delete mode 100644 harbour/samples/cccppc/rsmmarkr.och delete mode 100644 harbour/samples/cccppc/rsmmarkr.prg delete mode 100644 harbour/samples/cccppc/sreader.cls delete mode 100644 harbour/samples/cccppc/sreader.och delete mode 100644 harbour/samples/cccppc/sreader.prg delete mode 100644 harbour/samples/cccppc/tbuffer.cls delete mode 100644 harbour/samples/cccppc/tbuffer.och delete mode 100644 harbour/samples/cccppc/tbuffer.prg delete mode 100644 harbour/samples/cccppc/tkstr.cls delete mode 100644 harbour/samples/cccppc/tkstr.och delete mode 100644 harbour/samples/cccppc/tkstr.prg delete mode 100644 harbour/samples/cccppc/token.cls delete mode 100644 harbour/samples/cccppc/token.och delete mode 100644 harbour/samples/cccppc/token.prg delete mode 100644 harbour/samples/cccppc/tokenst.cls delete mode 100644 harbour/samples/cccppc/tokenst.och delete mode 100644 harbour/samples/cccppc/tokenst.prg delete mode 100644 harbour/samples/cccppc/tostr.prg delete mode 100644 harbour/samples/cccppc/treader.cls delete mode 100644 harbour/samples/cccppc/treader.och delete mode 100644 harbour/samples/cccppc/treader.prg delete mode 100644 harbour/samples/cccppc/util.prg delete mode 100644 harbour/samples/cccppc/version.prg delete mode 100644 harbour/samples/cccppc/xtrdict.cls delete mode 100644 harbour/samples/cccppc/xtrdict.och delete mode 100644 harbour/samples/cccppc/xtrdict.prg diff --git a/harbour/samples/cccppc/Makefile b/harbour/samples/cccppc/Makefile deleted file mode 100644 index 7557d9ef19..0000000000 --- a/harbour/samples/cccppc/Makefile +++ /dev/null @@ -1,67 +0,0 @@ -# -# $Id$ -# - -ROOT = ../../ - -PRG_SOURCES=\ - cccppc.prg \ - cccpp_pr.prg \ - creader.prg \ - crlf.prg \ - defdict.prg \ - edefdict.prg \ - expr.prg \ - extrdict.prg \ - felbont.prg \ - fnutil.prg \ - freader.prg \ - guesseol.prg \ - hparser.prg \ - hparser2.prg \ - incl.prg \ - lparser.prg \ - lreader.prg \ - maltrset.prg \ - mcontrol.prg \ - mmarker.prg \ - mparser.prg \ - newline.prg \ - nparser.prg \ - parser.prg \ - prserr.prg \ - prtree.prg \ - prtreepr.prg \ - ralter.prg \ - reader.prg \ - rmarker.prg \ - rsmmarkr.prg \ - sreader.prg \ - tbuffer.prg \ - tkstr.prg \ - token.prg \ - tokenst.prg \ - tostr.prg \ - treader.prg \ - util.prg \ - xtrdict.prg \ - object.prg \ - package.prg \ - version.prg \ - -PRG_MAIN=cccppc.prg - -LIBS=\ - tools \ - debug \ - vm \ - rtl \ - rdd \ - rtl \ - vm \ - macro \ - pp \ - runner \ - common \ - -include $(TOP)$(ROOT)config/bin.cf diff --git a/harbour/samples/cccppc/behavior.cls b/harbour/samples/cccppc/behavior.cls deleted file mode 100644 index 21aad98510..0000000000 --- a/harbour/samples/cccppc/behavior.cls +++ /dev/null @@ -1,95 +0,0 @@ -// -// $Id$ -// - -class BEHAVIOR OBJECT - - attrib parent - - attrib name - - attrib objSize - // Azon objektumok m‚rete, amik az oszt ly elemei. - - attrib attribs - // Egy 'name' tĄpusŁ objektum (ami ennek az - // oszt lynak az eleme) attribŁtumai - // {sorsz m,n‚v,tĄpus} form ban. - - attrib methods - // Egy 'name' tĄpusŁ objektum (ami ennek az - // oszt lynak az eleme) m–veletei - // {sorsz m,n‚v,param‚terek,implSpec} form ban. - // Mj.: A m–veleteket v‚grehajt˘ blokkok az - // objMethodsImplement  ltal adott blokkban - // vannak. - - attrib classId - // Ha az oszt lynak van id-je, akkor az itt t rolva van. - // Ha nincs, akkor ez nil. - - attrib parentClassIds - // Vagy nil, vagy egy olyan t”mb, amiben a i. elem nem nil, - // haz az adott oszt ly a this “sei k”z”tt van ‚s van id-je. - - attrib amBlock - // Egy blokk, aminek a v‚grehajt sa beĄrja - // egy t”mbbe az oszt ly  ltal defini lt - // attribŁtumokat ‚s egy m sik t”mbbe pedig - // az oszt ly  ltal defini lt m–veleteket. - - attrib methodsBlock - // Egy blokk, aminek a v‚grehajt sa - // beĄrja egy t”mbbe az oszt ly  ltal defini lt - // m–veletek blokkjait. - // (Ezt a t”mb”t adja az objMethodsImplement.) - - attrib objMethodsImplement - // Egy blokkot tartalmaz, amit ki‚rt‚kelve - // megkapjuk azt a t”mb”t, aminek az els“ - // eleme az oszt ly, a tov bbi elemei pedig - // az oszt lyba tartoz˘ objektumok m–veleti - // blokkjai, ‚s m s implement ci˘s elemek. - - nmethod onew{be_onew}() - // K‚szĄt egy Łj objektumot, ‚s inicializ lja Łgy, hogy meghĄvja - // az oinit() m–velet‚t. - // Az objektum a 'this' oszt lyba fog tartozni. - - nmethod ocreate{be_ocreate}() - // K‚szĄt egy Łj objektumot, de nem inicializ lja. - // Az objektum a 'this' oszt lyba fog tartozni. - - nmethod rawoinit{be_rawoinit}(parent,name,nAttribs,nMethods,amBlock,methodsBlock) - // Inicializ lja a 'this' oszt lyt. - - rmethod oinit{be_oinit}(parent,name,nAttribs,nMethods,amBlock,methodsBlock) - // Inicializ lja a 'this' oszt lyt a rawoinit()-el, de el“bb - // ellen“rzi, hogy az oszt ly metaoszt ly nak van-e m r eleme. - // Ha igen, akkor kld egy figyelmeztet‚st. - - nmethod oinitclass{retobj}() - // A Meta onew()-ja hĄvja az oinit() ut n. Az‚rt van itt, hogy ne - // kelljen az oinit() hosszŁ param‚terlist j val vesz“dni. - - nmethod getMethodsImplement{be_getMethodsImplement}() - // Ad egy t”mb”t, amiben a m–veletek blokkjai tal lhat˘k. - - rmethod isClass{be_isClass}() - // Mindig igazat ad. (Ez az objektum oszt ly.) - - nmethod attribIdx{be_attribIdx}(name) - // A name nev– attribŁtum index‚t adja, 'nil', ha nincs. - - nmethod needClassId{be_needClassId}() - // Ha .t., akkor az oszt ly nak kell azonosĄt˘t adni. - // Ha .f., akkor az oszt ly nak nem kell azonosĄt˘t adni. - // Jellemz“ implement ci˘ja: - // return class:getClass()==mcCLASS() - // Mj.: A 'class=cl()' nem j˘. - - nmethod isInheritFrom{be_isInheritFrom}(parentClass) - // Ha a this ”r”k”l az aClass-t˘l, vagy this==aClass, akkor - // igaz, egy‚bk‚nt hamis. - // Ha a parentClass-nak van id-je, akkor ez a m–velet sokkal - // gyorsabban hajt˘dik v‚gre, mint ha nincs. diff --git a/harbour/samples/cccppc/behavior.och b/harbour/samples/cccppc/behavior.och deleted file mode 100644 index 1ca820954e..0000000000 --- a/harbour/samples/cccppc/behavior.och +++ /dev/null @@ -1,353 +0,0 @@ -// BEHAVIOR.och oszt ly implement ci˘. -// Gener lva: 1999.10.10, 14:31:52, 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 _BEHAVIOR_OCH_ -#define _BEHAVIOR_OCH_ - - - - -#xtranslate BEHAVIOR.:oinit => (OBJGEN.():(4)) -#xtranslate BEHAVIOR.:getclass => (OBJGEN.():(5)) -#xtranslate BEHAVIOR.:isclass => (OBJGEN.():(6)) -#xtranslate BEHAVIOR.:getattrib => (OBJGEN.():(7)) -#xtranslate BEHAVIOR.:setattrib => (OBJGEN.():(8)) - - -#xtranslate BEHAVIOR.:parent => \[CA_OBJECT_N+1\] -#xtranslate BEHAVIOR.:name => \[CA_OBJECT_N+2\] -#xtranslate BEHAVIOR.:objsize => \[CA_OBJECT_N+3\] -#xtranslate BEHAVIOR.:attribs => \[CA_OBJECT_N+4\] -#xtranslate BEHAVIOR.:methods => \[CA_OBJECT_N+5\] -#xtranslate BEHAVIOR.:classid => \[CA_OBJECT_N+6\] -#xtranslate BEHAVIOR.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate BEHAVIOR.:amblock => \[CA_OBJECT_N+8\] -#xtranslate BEHAVIOR.:methodsblock => \[CA_OBJECT_N+9\] - -// Specifik lva: onew() -// Specifik lva: ocreate() -// Specifik lva: rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// Specifik lva: oinitclass() -// Specifik lva: getmethodsimplement() -// ™r”k”lve: isclass() -// Specifik lva: attribidx(name) -// Specifik lva: needclassid() -// Specifik lva: isinheritfrom(parentClass) - -#xtranslate BEHAVIOR.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate BEHAVIOR.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate BEHAVIOR.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xtranslate BEHAVIOR.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate BEHAVIOR.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -// ™r”k”lve: isclass() -#xtranslate BEHAVIOR.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate BEHAVIOR.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate BEHAVIOR.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - -#endif // _BEHAVIOR_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_BEHAVIOR_N -#define CA_BEHAVIOR_N CA_OBJECT_N+10 -#define CM_BEHAVIOR_N CM_OBJECT_N+8 -#xtranslate BEHAVIOR.:objmethodsimplement => \[CA_OBJECT_N+10\] -#endif // CA_BEHAVIOR_N - -#ifndef _CA_CM_ONLY_ -#ifndef _META_OCH_ -#define _META_OCH_ - -********************************************************************** -#xtranslate C.BEHAVIOR: => (META.clBEHAVIOR():) -#xtranslate C.BEHAVIOR:self() => (clBEHAVIOR()) - - -#xtranslate META.:parent => \[CA_OBJECT_N+1\] -#xtranslate META.:name => \[CA_OBJECT_N+2\] -#xtranslate META.:objsize => \[CA_OBJECT_N+3\] -#xtranslate META.:attribs => \[CA_OBJECT_N+4\] -#xtranslate META.:methods => \[CA_OBJECT_N+5\] -#xtranslate META.:classid => \[CA_OBJECT_N+6\] -#xtranslate META.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate META.:amblock => \[CA_OBJECT_N+8\] -#xtranslate META.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate META.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate META.:oinit => (OBJGEN.():(4)) -#xtranslate META.:getclass => (OBJGEN.():(5)) -#xtranslate META.:isclass => (OBJGEN.():(6)) -#xtranslate META.:getattrib => (OBJGEN.():(7)) -#xtranslate META.:setattrib => (OBJGEN.():(8)) -#xtranslate META.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate META.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate META.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate META.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate META.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate META.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate META.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - -#xtranslate META.:ofclass => \[CA_BEHAVIOR_N+1\] - -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: ocreate() - -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: ocreate() - -#endif // _META_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_META_N -#define CA_META_N CA_BEHAVIOR_N+1 -#define CM_META_N CM_BEHAVIOR_N+0 -#xtranslate META.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#endif // CA_META_N - - -********************************************************************** -#ifdef _BEHAVIOR_PRG_ -#ifndef _BEHAVIOR_PRG_OCH_ -#define _BEHAVIOR_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => BEHAVIOR.(othis): -#xtranslate thisclass: => META.(this:getClass()): -#define CTHIS BEHAVIOR - - -********************************************************************** -#xtranslate this: => BEHAVIOR.(this): - -#xcommand implement onew() => static function be_onew(this) -#xcommand implement ocreate() => static function be_ocreate(this) -#xcommand implement rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - static function be_rawoinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - static function be_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand implement oinitclass() => static function retobj(this) -#xcommand implement getmethodsimplement() => ; - static function be_getMethodsImplement(this) -#xcommand implement isclass() => static function be_isClass(this) -#xcommand implement attribidx(name) => ; - static function be_attribIdx(this,name) -#xcommand implement needclassid() => static function be_needClassId(this) -#xcommand implement isinheritfrom(parentClass) => ; - static function be_isInheritFrom(this,parentClass) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export onew() => function be_onew(this) -#xcommand implement export ocreate() => function be_ocreate(this) -#xcommand implement export rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - function be_rawoinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand implement export oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - function be_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand implement export oinitclass() => function retobj(this) -#xcommand implement export getmethodsimplement() => ; - function be_getMethodsImplement(this) -#xcommand implement export isclass() => function be_isClass(this) -#xcommand implement export attribidx(name) => ; - function be_attribIdx(this,name) -#xcommand implement export needclassid() => function be_needClassId(this) -#xcommand implement export isinheritfrom(parentClass) => ; - function be_isInheritFrom(this,parentClass) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this| be_onew(this)} - pOsztaly[(CM_OBJECT_N+2)]:={|this| be_ocreate(this)} - pOsztaly[(CM_OBJECT_N+3)]:={|this,parent,name,nAttribs,nMethods,amBlock,methodsBlock| be_rawoinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} - pOsztaly[(4)]:={|this,parent,name,nAttribs,nMethods,amBlock,methodsBlock| be_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} - pOsztaly[(CM_OBJECT_N+4)]:={|this| retobj(this)} - pOsztaly[(CM_OBJECT_N+5)]:={|this| be_getMethodsImplement(this)} - pOsztaly[(6)]:={|this| be_isClass(this)} - pOsztaly[(CM_OBJECT_N+6)]:={|this,name| be_attribIdx(this,name)} - pOsztaly[(CM_OBJECT_N+7)]:={|this| be_needClassId(this)} - pOsztaly[(CM_OBJECT_N+8)]:={|this,parentClass| be_isInheritFrom(this,parentClass)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'parent',nil} - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'name',nil} - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'objsize',nil} - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'attribs',nil} - ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'methods',nil} - ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'classid',nil} - ta[CA_OBJECT_N+7-CA_NIL_N] := {CA_OBJECT_N+7,'parentclassids',nil} - ta[CA_OBJECT_N+8-CA_NIL_N] := {CA_OBJECT_N+8,'amblock',nil} - ta[CA_OBJECT_N+9-CA_NIL_N] := {CA_OBJECT_N+9,'methodsblock',nil} - ta[CA_OBJECT_N+10-CA_NIL_N] := {CA_OBJECT_N+10,'objmethodsimplement',nil} - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'ocreate','',nil} - tm[(CM_OBJECT_N+3)-CM_NIL_N] := {(CM_OBJECT_N+3),'rawoinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil} - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'getmethodsimplement','',nil} - tm[(6)-CM_NIL_N] := {(6),'isclass','',nil} - tm[(CM_OBJECT_N+6)-CM_NIL_N] := {(CM_OBJECT_N+6),'attribidx','name',nil} - tm[(CM_OBJECT_N+7)-CM_NIL_N] := {(CM_OBJECT_N+7),'needclassid','',nil} - tm[(CM_OBJECT_N+8)-CM_NIL_N] := {(CM_OBJECT_N+8),'isinheritfrom','parentClass',nil} -return nil - -#ifndef _NO_CLBEHAVIOR_ -#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 clBEHAVIOR() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.clMETA():onew(; - clOBJECT(),; - "BEHAVIOR",; - CA_BEHAVIOR_N,; - CM_BEHAVIOR_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLBEHAVIOR_ - -#ifndef _NO_META_ - -********************************************************************** -#xtranslate class: => META.(class): - -#xcommand cimplement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - static function me_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand cimplement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - static function me_onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand cimplement ocreate() => static function me_ocreate(class) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - function me_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand cimplement export onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - function me_onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand cimplement export ocreate() => function me_ocreate(class) -#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 m–veleti blokkjaival. - pOsztaly[(4)]:={|class,parent,name,nAttribs,nMethods,amBlock,methodsBlock| me_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} - pOsztaly[(CM_OBJECT_N+1)]:={|class,parent,name,nAttribs,nMethods,amBlock,methodsBlock| me_onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} - pOsztaly[(CM_OBJECT_N+2)]:={|class| me_ocreate(class)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_BEHAVIOR_N+1-CA_NIL_N] := {CA_BEHAVIOR_N+1,'ofclass',nil} - - tm[(4)-CM_NIL_N] := {(4),'oinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'ocreate','',nil} -return nil - -********************************************************************** -#ifndef _NO_MCMETA_ -#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 mcMETA() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "META",; - CA_META_N,; - CM_META_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCMETA_ - -#endif // _NO_META_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -local o:=class:ocreate() - - BEHAVIOR.o:oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _BEHAVIOR_PRG_OCH_ -#endif // _BEHAVIOR_PRG_ diff --git a/harbour/samples/cccppc/cccpp_pr.prg b/harbour/samples/cccppc/cccpp_pr.prg deleted file mode 100644 index 02531ead58..0000000000 --- a/harbour/samples/cccppc/cccpp_pr.prg +++ /dev/null @@ -1,133 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// cccpp_pr.prg: Process input -// 1999, Csisz r Levente -//******************************************************************* - - -//******************************************************************* -#include "debug.ch" -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "lreader.och" -#include "nparser.och" -#include "lparser.och" -#include "incl.och" -#include "hparser.och" -#include "mcontrol.och" -#include "parser.och" -#include "token.och" - - -//******************************************************************* -static function cccpp_printErrorStream(errorStream) - if (!empty(errorStream)) - evalErrorStream(errorStream,{|x| outerr(x,newline())}) - asize(errorStream,0) - return .t. - endif -return .f. - -//******************************************************************* -function cccpp_processReader(reader,outFid,; - incArray,maxInclDeep,; - defDict,xtrdict,errorStream,; - trPrsAlg) -// Feldolgoz egy fil‚t, Egyenl“re nem v‚gez hiba ellez“rz‚st. - -local lrd,npr,lpr,hpr,mcr,t,inclObj -local line,emptyLines,hiba - - hiba:=.f. - - if (cccpp_printErrorStream(errorStream)) - hiba:=.t. - return hiba - endif - - // fr:=C.FREADER:onew(errorStream) - // FREADER.fr:open("",inputFileName) - lrd:=C.LREADER:onew(CTK_BOS,CTK_EOS,READER.reader:name,errorStream) - LREADER.lrd:pushReader(reader) - npr:=C.NPARSER:onew(lrd,READER.lrd:name,errorStream) - lpr:=C.LPARSER:onew(npr,READER.npr:name,errorStream) - inclObj:=C.INCL:onew(lrd,incArray,maxInclDeep) - // inclObj:=C.INCL:onew(lrd,{dirFName(filename)}) - hpr:=C.HPARSER:onew(lpr,READER.lpr:name,; - defDict/*C.DEFDICT:onew()*/,xtrDict/*C.XTRDICT:onew()*/,; - inclObj,errorStream) - mcr:=C.MCONTROL:onew(hpr,READER.hpr:name,; - HPARSER.hpr:defDict,HPARSER.hpr:xtrdict,; - errorStream,trPrsAlg) - - line:="" - emptyLines:="" - while(nil!=(t:=PARSER.mcr:read())) - // outstd(TOKEN.t:getStr()) - // wStr:=TOKEN.t:getStr() - // fwrite(fid,wStr,len(wStr)) - if (outFid!=nil) - // Itt kell kozmetik zni a sorokat. - /* - 1. šres sorok hossz t null ra reduk ljuk. - 2. #line el“tti res sorokat t”r”ljk. (BOS) - 3. EOS el“tti res sorokat t”r”ljk. - */ - if (TOKEN.t:id==TKID_UJSOR) - // —j sor. Az res sorokat az emptyLines-ban t roljuk. - if (!empty(line)) - fwrite(outFid,emptyLines) - emptyLines:="" - fwrite(outFid,line) - line:="" - fwrite(outFid,TOKEN.t:getStr()) - else - emptyLines+=TOKEN.t:getStr() - line:="" - endif - elseif (TOKEN.t:id==TKID_EOS .or.; - TOKEN.t:id==TKID_BOS) - // Az EOS ‚s a BOS el“tti res sorokat t”r”lni kell. - // Mj.: Itt nincs kezelve az az esetet, amikor nincs - // sorv‚gjel az include fil‚ v‚g‚n. - if (!empty(line)) - fwrite(outFid,emptyLines) - emptyLines:="" - fwrite(outFid,line) - line:="" - fwrite(outFid,TOKEN.t:getStr()) - else - emptyLines:="" - line:="" - // Ha az EOS/BOS Ąrni akar valamit, azt kitesszk. - fwrite(outFid,TOKEN.t:getStr()) - endif - else - line+=TOKEN.t:getStr() - endif - endif - // Itt ki kell olvasni a hib kat. - if (cccpp_printErrorStream(errorStream)) - hiba:=.t. - endif - end while - // Nem kell az utols˘ sorra figyelni, mert mindig j”n egy EOS. - - // Elv‚gezzk a szks‚ges ellen“rz‚seket a fil‚ v‚g‚n. - // (Lez ratlan #if, etc) - HPARSER.hpr:chkEndOfFile() - if (cccpp_printErrorStream(errorStream)) - hiba:=.t. - endif - -return hiba - -//******************************************************************* - diff --git a/harbour/samples/cccppc/cccppc.prg b/harbour/samples/cccppc/cccppc.prg deleted file mode 100644 index 58d9e6b427..0000000000 --- a/harbour/samples/cccppc/cccppc.prg +++ /dev/null @@ -1,603 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// cccpp.prg: A f“program -// 1999, Csisz r Levente - -//******************************************************************* -#define VERSION "v0.7.06" - -//******************************************************************* -#include "fileio.ch" - -//******************************************************************* -#include "debug.ch" -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "freader.och" -#include "sreader.och" -// #include "lreader.och" -#include "nparser.och" -// #include "lparser.och" -#include "incl.och" -// #include "hparser.och" -// #include "mcontrol.och" -// #include "parser.och" -#include "token.och" - -#include "defdict.och" -#include "xtrdict.och" -#include "extrdict.och" -//#include "prserr.och" - -//******************************************************************* -#ifdef TEST -function main(p1,p2,p3,p4,p5,p6,p7,p8,p9) - teszt(p1,p2,p3,p4,p5,p6,p7,p8,p9) -return nil -#else -#ifdef OLD -function main(; // 265 db param‚ter. Sajnos CCC-ben nincs szabv nyos - ; // m˘dszer tetsz. sz mŁ param‚ter  tv‚tel‚re. - p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p0a,p0b,p0c,p0d,p0e,p0f,; - p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p1a,p1b,p1c,p1d,p1e,p1f,; - p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p2a,p2b,p2c,p2d,p2e,p2f,; - p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p3a,p3b,p3c,p3d,p3e,p3f,; - p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p4a,p4b,p4c,p4d,p4e,p4f,; - p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p5a,p5b,p5c,p5d,p5e,p5f,; - p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p6a,p6b,p6c,p6d,p6e,p6f,; - p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p7a,p7b,p7c,p7d,p7e,p7f,; - p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p8a,p8b,p8c,p8d,p8e,p8f,; - p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p9a,p9b,p9c,p9d,p9e,p9f,; - pa0,pa1,pa2,pa3,pa4,pa5,pa6,pa7,pa8,pa9,paa,pab,pac,pad,pae,paf,; - pb0,pb1,pb2,pb3,pb4,pb5,pb6,pb7,pb8,pb9,pba,pbb,pbc,pbd,pbe,pbf,; - pc0,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pca,pcb,pcc,pcd,pce,pcf,; - pd0,pd1,pd2,pd3,pd4,pd5,pd6,pd7,pd8,pd9,pda,pdb,pdc,pdd,pde,pdf,; - pe0,pe1,pe2,pe3,pe4,pe5,pe6,pe7,pe8,pe9,pea,peb,pec,ped,pee,pef,; - pf0,pf1,pf2,pf3,pf4,pf5,pf6,pf7,pf8,pf9,pfa,pfb,pfc,pfd,pfe,pff; -) - -local p:={ - p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p0a,p0b,p0c,p0d,p0e,p0f,; - p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p1a,p1b,p1c,p1d,p1e,p1f,; - p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p2a,p2b,p2c,p2d,p2e,p2f,; - p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p3a,p3b,p3c,p3d,p3e,p3f,; - p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p4a,p4b,p4c,p4d,p4e,p4f,; - p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p5a,p5b,p5c,p5d,p5e,p5f,; - p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p6a,p6b,p6c,p6d,p6e,p6f,; - p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p7a,p7b,p7c,p7d,p7e,p7f,; - p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p8a,p8b,p8c,p8d,p8e,p8f,; - p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p9a,p9b,p9c,p9d,p9e,p9f,; - pa0,pa1,pa2,pa3,pa4,pa5,pa6,pa7,pa8,pa9,paa,pab,pac,pad,pae,paf,; - pb0,pb1,pb2,pb3,pb4,pb5,pb6,pb7,pb8,pb9,pba,pbb,pbc,pbd,pbe,pbf,; - pc0,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9,pca,pcb,pcc,pcd,pce,pcf,; - pd0,pd1,pd2,pd3,pd4,pd5,pd6,pd7,pd8,pd9,pda,pdb,pdc,pdd,pde,pdf,; - pe0,pe1,pe2,pe3,pe4,pe5,pe6,pe7,pe8,pe9,pea,peb,pec,ped,pee,pef,; - pf0,pf1,pf2,pf3,pf4,pf5,pf6,pf7,pf8,pf9,pfa,pfb,pfc,pfd,pfe,pff; -} -#else -#ifdef _CCC_ -// Sajnos csak 192 param‚tert tud lefordĄtani. -function main(; - p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p0a,p0b,p0c,p0d,p0e,p0f,; - p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p1a,p1b,p1c,p1d,p1e,p1f,; - p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p2a,p2b,p2c,p2d,p2e,p2f,; - p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p3a,p3b,p3c,p3d,p3e,p3f,; - p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p4a,p4b,p4c,p4d,p4e,p4f,; - p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p5a,p5b,p5c,p5d,p5e,p5f,; - p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p6a,p6b,p6c,p6d,p6e,p6f,; - p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p7a,p7b,p7c,p7d,p7e,p7f,; - p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p8a,p8b,p8c,p8d,p8e,p8f,; - p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p9a,p9b,p9c,p9d,p9e,p9f,; - pa0,pa1,pa2,pa3,pa4,pa5,pa6,pa7,pa8,pa9,paa,pab,pac,pad,pae,paf,; - pb0,pb1,pb2,pb3,pb4,pb5,pb6,pb7,pb8,pb9,pba,pbb,pbc,pbd,pbe,pbf; -) - -local p:={; - p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p0a,p0b,p0c,p0d,p0e,p0f,; - p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p1a,p1b,p1c,p1d,p1e,p1f,; - p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p2a,p2b,p2c,p2d,p2e,p2f,; - p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p3a,p3b,p3c,p3d,p3e,p3f,; - p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p4a,p4b,p4c,p4d,p4e,p4f,; - p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p5a,p5b,p5c,p5d,p5e,p5f,; - p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p6a,p6b,p6c,p6d,p6e,p6f,; - p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p7a,p7b,p7c,p7d,p7e,p7f,; - p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p8a,p8b,p8c,p8d,p8e,p8f,; - p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p9a,p9b,p9c,p9d,p9e,p9f,; - pa0,pa1,pa2,pa3,pa4,pa5,pa6,pa7,pa8,pa9,paa,pab,pac,pad,pae,paf,; - pb0,pb1,pb2,pb3,pb4,pb5,pb6,pb7,pb8,pb9,pba,pbb,pbc,pbd,pbe,pbf; -} -#else -// Sajnos csak 16 param‚tert tud lefordĄtani. -function main(; - p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p0a,p0b,p0c,p0d,p0e,p0f; -) - -local p:={; - p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p0a,p0b,p0c,p0d,p0e,p0f; -} -#endif - -#endif -local pos - - if (0!=(pos:=ascan(p,{|x| x==nil}))) - asize(p,pos-1) - endif - PDEBUG(outerr(p,newline())) - // outerr(p,newline()) - ccp_appMain(p) - // teszt(p1,p2,p3,p4,p5,p6,p7,p8,p9) - -return nil - -//******************************************************************* -function cccpp_info() - outstd(; -"cccppc "+VERSION+", CCC preprocessor, Copyright (c) 1999 Levente Csisz r"+newline()+; -""+newline()+; -"Usage: cccppc [-I] [-o] [-e]"+newline()+; -" [-h] [-v] [-u] [-Dname[=text]]"+newline()+; -" [-l] "+newline()+; -" -I : Include directories. -I- deletes the list."+newline()+; -" -o: Specify the output file."+newline()+; -" Default: ."+newline()+; -" -e : Specify the output file extension. Default: ppc"+newline()+; -" -h : Help. Print this text."+newline()+; -" -v : Verbose. Force verbose diagnostic message."+newline()+; -" -u : User include file. Load this file before processing"+newline()+; -" input file."+newline()+; -" -Dname[=text] : Define a macro with name 'name' and assign 'text' to it."+newline()+; -" -l : Limit deep of nested include files. 0: no limit."+newline()+; -" Default: 32."+newline()+; -" -t[r|s] : Translate parser algorithm: -tr tree, -ts sequence."+newline()+; -" Default: -tr."+newline()+; -"") -return nil - -//******************************************************************* -function ccp_appMain(p) -local opt,hibaSzoveg,isOpt -local fileName, incArray -local outFile,defExt,verbose,userFiles -local defMacros,maxInclDeep -local trPrsAlg - - - errorlevel(0) - opt:=parseOpt("-I:,-H,-h,-o:,-e:,-v,-u:,-D:,-l:,-t:",p,@hibaSzoveg) - if (!empty(hibaSzoveg)) - outerr(hibaSzoveg,newline()) - errorlevel(1) - quit - endif - errorlevel(0) - - if (empty(opt)) - cccpp_info() - errorlevel(1) - quit - endif -#define SHIFTOPT if(!empty(opt)); (adel(opt,1),asize(opt,len(opt)-1)); endif - - // Default be llĄt sok. - fileName:=nil - outFile:=nil - isOpt:=.t. - defExt:="ppc" - verbose:=.f. - incArray:={} - userFiles:={} - defMacros:={} - maxInclDeep:=32 - trPrsAlg:=TRPRA_TREE - while(!empty(opt)) - if (isOpt .and. opt[1]=="-H" .or. opt[1]=="-h") - cccpp_info() - errorlevel(0) - quit - elseif (isOpt .and. opt[1]=="-I") - // Az include lista. - /* - UNIX-on: Csak a -I forma az elfogadott. - DOSWIN-en: ';'-vel elv lasztva t”bb - dir-t is fel lehet sorolni. - */ - // A -I- T”rli a list t. - // Az opt hosszŁs g t nem kell vizsg lni, mert a parseOpt - // tesz ide egy reset. - if (opt[2]=="-") - incArray:={} - elseif (!opt[2]=="") - aappend(incArray,felbont(opt[2],";")) - endif - SHIFTOPT - SHIFTOPT - elseif (isOpt .and. opt[1]=="-e") - if (empty(opt[2])) - outerr("Parameter is missing after "+opt[1]) - errorlevel(1) - quit - endif - defExt:=opt[2] - SHIFTOPT - SHIFTOPT - elseif (isOpt .and. opt[1]=="-o") - if (empty(opt[2])) - outerr("Parameter is missing after "+opt[1]) - errorlevel(1) - quit - endif - outFile:=opt[2] - SHIFTOPT - SHIFTOPT - elseif (isOpt .and. opt[1]=="-v") - verbose:=.t. - SHIFTOPT - elseif (isOpt .and. opt[1]=="-u") - if (empty(opt[2])) - outerr("Parameter is missing after "+opt[1]) - errorlevel(1) - quit - endif - aadd(userFiles,opt[2]) - SHIFTOPT - SHIFTOPT - elseif (isOpt .and. opt[1]=="-D") - if (empty(opt[2])) - outerr("Parameter is missing after "+opt[1]) - errorlevel(1) - quit - endif - aadd(defMacros,makeDefFromPar(opt[2])) - SHIFTOPT - SHIFTOPT - elseif (isOpt .and. opt[1]=="-l") - if (empty(opt[2])) - outerr("Parameter is missing after "+opt[1]) - errorlevel(1) - quit - endif - if (!beloleAll(opt[2],"0123456789")) - outerr("Parameter should be a number after "+opt[1]) - errorlevel(1) - quit - endif - maxInclDeep:=val(opt[2]) - SHIFTOPT - SHIFTOPT - elseif (isOpt .and. opt[1]=="-t") - if (empty(opt[2])) - outerr("Parameter is missing after "+opt[1]) - errorlevel(1) - quit - endif - if !(opt[2]=="r" .or. opt[2]=="s") - outerr("Parameter should be 'r' or 's' after "+opt[1]) - errorlevel(1) - quit - endif - trPrsAlg:=if(opt[2]=="r",TRPRA_TREE,TRPRA_SEQ) - SHIFTOPT - SHIFTOPT - elseif (isOpt .and. opt[1]=="--") - isOpt:=.f. - SHIFTOPT - else - // A feldolgozand˘ file. - if (fileName==nil) - fileName:=opt[1] - endif - SHIFTOPT - endif - - end while - - if (fileName==nil) - cccpp_info() - errorlevel(1) - quit - endif - - if (outFile==nil) - if (fileName=='-') - // A standard inputr˘l kell olvasni. - outFile:='-' - else - outFile:=extractFName(fileName) - if (!empty(defExt)) - outFile+="."+defExt - endif - endif - endif - if (!fileName=='-' .and. fileName==outFile) - outerr("input and output should be different: "+newline()+; - "input : "+toStr(filename)+newline()+; - "output: "+toStr(outfile)+newline()) - errorlevel(1) - quit - endif - - if (ccp_compile(fileName,outFile,defMacros,userFiles,; - incArray,maxInclDeep,verbose,trPrsAlg)) - errorlevel(1) - quit - endif - -return nil - -//******************************************************************* -static function makeDefFromPar(str) -// str: name[=text] -local i -local name,txt - - if (0!=(i:=at("=",str))) - txt:=substr(str,i+1) - name:=alltrim(left(str,i-1)) - else - name:=alltrim(str) - txt:="" - endif - - - if (empty(name)) - outerr("-D"+str+": name is missing",newline()) - errorlevel(1) - quit - endif - - for i:=1 to len(name) - if (!if(i==1,; - C.NPARSER:isStartnamechar(substr(name,i,1)),; - C.NPARSER:isNamechar(substr(name,i,1)))) - outerr("-D"+str+": name error",newline()) - errorlevel(1) - quit - endif - end for - -return {name,txt} - - -//******************************************************************* -static function defMacros2str(defMacros) -local i,str - - str:="" - for i:=1 to len(defMacros) - str+="#define "+defMacros[i][1]+" "+defMacros[i][2]+guessedEOL() - end for -return str - -//******************************************************************* -static function ccp_compile(fileName,outFile,defMacros,userFiles,; - incArray,maxInclDeep,verbose,trPrsAlg) -// local fr,npr,lpr,hpr,mcr,t,lrd -local iArray -local fid,doClose,str,wStr -local defDict,xtrDict -local errorStream -local fr,hiba -local i -local treePrintBlock - - PDEBUG(outerr({filename,outFile,defMacros,userFiles,; - incArray,maxInclDeep,verbose},newline())) - - setPGuessEol(newline()) - - if (!file(fileName)) - outerr(fileName+": file not found"+newline()) - errorlevel(2) - quit - endif - if (outfile=='-') - fid:=1 - doClose:=.f. - else - if (-1==(fid:=fcreate(outFile))) - if (-1==(fid:=fopen(outFile,FO_WRITE))) - outerr(outFile+": open error: "+toStr(ferror())+newline()) - errorlevel(2) - quit - endif - endif - doClose:=.t. - endif - - hiba:=.f. - iArray:=aappend({dirFName(fileName)},incArray) - defDict:=C.DEFDICT:onew() - xtrDict:=C.XTRDICT:onew() - errorStream:={} - str:="" - if (!hiba .and. !empty(defMacros)) - str+=defMacros2str(defMacros) - endif - if (!hiba .and. !empty(userFiles)) - for i:=1 to len(userFiles) - if (nil==(wStr:=stringifyStr(userFiles[i],.t.))) - outerr(toStr(userFiles[i])+; - " Error: Illegal "+'"'+" and "+"'"+" character "+; - "combination in file name."+newline()) - return .t. - endif - str+="#include "+wStr+newline() - // outerr(str) - end for - endif - if (!hiba .and. !empty(str)) - fr:=C.SREADER:onew(str,"commandline",errorStream) - if (cccpp_processReader(fr,nil,iArray,maxInclDeep,; - defDict,xtrDict,errorStream,trPrsAlg)) - hiba:=.t. - endif - endif - #ifdef OLD - if (!hiba .and. userFile!=nil) - fr:=C.FREADER:onew(errorStream) - FREADER.fr:open("",userFile) - if (cccpp_processReader(fr,nil,iArray,maxInclDeep,; - defDict,xtrDict,errorStream,trPrsAlg)) - hiba:=.t. - endif - endif - #endif - - if (!hiba) - fr:=C.FREADER:onew(errorStream) - FREADER.fr:open("",fileName) - if (cccpp_processReader(fr,fid,iArray,maxInclDeep,; - defDict,xtrDict,errorStream,trPrsAlg)) - hiba:=.t. - endif - endif - - if (doClose) - fclose(fid) - endif - - if (!empty(verbose)) - - outerr("Define sz˘t r: "+newline()) - DEFDICT.defDict:printStr({|x| outerr(x+newline())}) - - outerr("XTranslate sz˘t r: "+newline()) - XTRDICT.xtrDict:printStr({|x| outerr(x+newline())}) - - outerr("XCommand sz˘t r: "+newline()) - XTRDICT.xtrDict:printStr({|x| outerr(x+newline())},.t.) - - outerr("XTranslate fa: "+newline()) - treePrintBlock:=; - {|node,level| ; - outerr(space(level)+TOKEN.node[1]:printToStr()+; - if (len(node)>=3 .and. !empty(node[3]),; - " // "+EXTRDICT.node[3]:printStr(),""),; - newline())} - - evalXTree(XTRDICT.xtrDict:trdicttree,treePrintBlock) - - outerr("XCommand fa: "+newline()) - evalXTree(XTRDICT.xtrDict:cmdicttree,treePrintBlock) - endif - -return hiba - -//******************************************************************* -static function evalXTree(nodeList,block,level) -local i - - if (level==nil) - level:=0 - endif - for i:=1 to len(nodeList) - eval(block,nodeList[i],level) - if (!empty(nodeList[i][2])) - evalXTree(nodeList[i][2],block,level+1) - endif - end for -return nil - -//******************************************************************* - -#ifdef OLD -//******************************************************************* -static function cccpp_printErrorStream(errorStream) - if (!empty(errorStream)) - evalErrorStream(errorStream,{|x| outerr(x,newline())}) - asize(errorStream,0) - endif -return nil - -//******************************************************************* -function cccpp_processFile(inputFileName,outFid,; - incArray,defDict,xtrdict,errorStream) -// Feldolgoz egy fil‚t, Egyenl“re nem v‚gez hiba ellez“rz‚st. - -local fr,lrd,npr,lpr,hpr,mcr,t,inclObj -local line,emptyLines - - fr:=C.FREADER:onew(errorStream) - FREADER.fr:open("",inputFileName) - lrd:=C.LREADER:onew(CTK_BOS,CTK_EOS,READER.fr:name,errorStream) - LREADER.lrd:pushReader(fr) - npr:=C.NPARSER:onew(lrd,READER.lrd:name,errorStream) - lpr:=C.LPARSER:onew(npr,READER.npr:name,errorStream) - inclObj:=C.INCL:onew(lrd,incArray) - // inclObj:=C.INCL:onew(lrd,{dirFName(filename)}) - hpr:=C.HPARSER:onew(lpr,READER.lpr:name,; - defDict/*C.DEFDICT:onew()*/,xtrDict/*C.XTRDICT:onew()*/,; - inclObj,errorStream) - mcr:=C.MCONTROL:onew(hpr,READER.hpr:name,; - HPARSER.hpr:defDict,HPARSER.hpr:xtrdict,errorStream) - - line:="" - emptyLines:="" - while(nil!=(t:=PARSER.mcr:read())) - // outstd(TOKEN.t:getStr()) - // wStr:=TOKEN.t:getStr() - // fwrite(fid,wStr,len(wStr)) - if (outFid!=nil) - // Itt kell kozmetik zni a sorokat. - /* - 1. šres sorok hossz t null ra reduk ljuk. - 2. #line el“tti res sorokat t”r”ljk. (BOS) - 3. EOS el“tti res sorokat t”r”ljk. - */ - if (TOKEN.t:id==TKID_UJSOR) - // —j sor. Az res sorokat az emptyLines-ban t roljuk. - if (!empty(line)) - fwrite(outFid,emptyLines) - emptyLines:="" - fwrite(outFid,line) - line:="" - fwrite(outFid,TOKEN.t:getStr()) - else - emptyLines+=TOKEN.t:getStr() - line:="" - endif - elseif (TOKEN.t:id==TKID_EOS .or.; - TOKEN.t:id==TKID_BOS) - // Az EOS ‚s a BOS el“tti res sorokat t”r”lni kell. - // Mj.: Itt nincs kezelve az az esetet, amikor nincs - // sorv‚gjel az include fil‚ v‚g‚n. - if (!empty(line)) - fwrite(outFid,emptyLines) - emptyLines:="" - fwrite(outFid,line) - line:="" - fwrite(outFid,TOKEN.t:getStr()) - else - emptyLines:="" - line:="" - // Ha az EOS/BOS Ąrni akar valamit, azt kitesszk. - fwrite(outFid,TOKEN.t:getStr()) - endif - else - line+=TOKEN.t:getStr() - endif - endif - // Itt ki kell olvasni a hib kat. - cccpp_printErrorStream(errorStream) - end while - // Nem kell az utols˘ sorra figyelni, mert mindig j”n egy EOS. - - // Elv‚gezzk a szks‚ges ellen“rz‚seket a fil‚ v‚g‚n. - // (Lez ratlan #if, etc) - HPARSER.hpr:chkEndOfFile() - cccpp_printErrorStream(errorStream) -return nil -#endif - -//******************************************************************* - -#endif - diff --git a/harbour/samples/cccppc/changes.txt b/harbour/samples/cccppc/changes.txt deleted file mode 100644 index e9dadabd9a..0000000000 --- a/harbour/samples/cccppc/changes.txt +++ /dev/null @@ -1,438 +0,0 @@ -/* - * $Id$ - */ - -V ltoz sok ----------- - -Egy bejegyz‚snek a k”vetkez“eket kell tartalmaznia: -d tum, a programoz˘ neve, verzi˘ (ha van) a v ltoz s leĄr sa. - -Levente Csisz r , 1998.01.13 - - -1999.11.07, Csisz r Levente, CCCPPC v0.7.06 - - - tnevezve CCCPPC-re. - - - Kibocs t s teszt c‚lokra. - - - Hozz vettem az OBJECT k”nyvt rat ‚s az OBJCCC fordĄt˘t. - - - Elbukott a p06-os cteszt-en. (Ures zarojeles makrot nem tudott - helyettesiteni.) Ezt kijavitottam. - - - Elbukik a p22-es cteszt-en. (Pontosvesszo, mint sorfolytato - karakter.) Ezt egyenlore nem tudtam megtalalni, ugy maradt. - -1999.09.30, Csisz r Levente - - - Elk‚szlt a C++ v ltozat els“ b‚t ja. Ez a v ltozat lez rva, - tov bbi m˘dosĄt s csak m–k”d‚st g tl˘ (pl. elsz ll s) hiba - eset‚n lehets‚ges. - -1999.09.28, Csisz r Levente, v0.7.05 - - - Az stdout-ot nem kell lez rni. - -1999.09.25, Csisz r Levente, v0.7.04 - - - V‚gtelen ciklusba kerlt az ilyen esetekben: - - #xtranslate a [[b]] => bb - - a - - Mivel az 'a' sor eset‚n a '[[b]]'-ben a b nem illeszkedik, - ez‚rt a bels“ alternatĄv t mindig Łjra pr˘b lta. - -1999.09.21, Csisz r Levente, v0.7.03 - - - Az eqNextToken elsz llt, ha valamelyik nextToken nil volt. - - Pl. #xtranslate a => a - -1999.06.16, Csisz r Levente, v0.7.02 - - - Elemz‚si hiba volt az xtranslate parancsokban. He egy norm l - token sor k‚t alternatĄva k”z‚ esett, akkor azt t”r”lte. - - - A '#' parancsokra ugyanŁgy a r”vidĄtett n‚v egyez‚s ‚rv‚nyes, - mint az command-okra. (Teh t #define helyett elfogadja a - '#defi'-t, etc.) - - - HPRERR_XTRUNDEFRM hibajelz‚sben a sz”veg javĄtva, a hi nyolt - match marker-t kiĄrja. - - - CCC-ben 192 param‚ter vesz  t. - -1999.06.10, Csisz r Levente, v0.7.01 - - - Optimaliz ci˘k: a define vagy az xtranslate elemz“t csak akkor - hĄvja, ha t‚nylegesen van mit elemeznik. - - - A t”bb elem– alternatĄv k kezel‚s rossz volt. - - - A hparser-ben az  llapotok sz mok, nem stringek. - - - A TKID_XXX-ek sz mok ‚s nem stringek. - -1999.06.09, Csisz r Levente, v0.7.00 - - - Az elemz‚st a translate/command f val v‚gzi. - A -t kapcsol˘val szab lyozhat˘, hogy melyik m˘dszert - haszn lja. - -1999.06.07, Csisz r Levente, v0.6.05 - - - A tokenekben t rolja, hogy r”vidĄtve (#translate vagy - #xtranslate) kell-e illeszteni egy #translate/#command bal - oldal n. - - - —j 'r”vidĄtett illeszt‚s' k˘d. - - - A stringeket case insensitĄven kell illeszteni, ‚s r juk is - ‚rv‚nyes a r”vĄdĄtett illeszt‚si szab ly. - - - Fel‚pĄti a translate/command f t, de egyenl“re nem haszn lja fel - az elemz‚skor. - -1999.06.03, Csisz r Levente, v0.6.04 - - - T”bb user include fil‚t is elfogad. - -1999.05.31, Csisz r Levente, v0.6.03 - - - A user include fil‚b“l '#include file' sort gy rt ‚s - feldolgozza. Œgy a -I-k”z”tt is keresi ‚s makr˘k feldolgoz s val - is ”ssze van vonva. - -1999.05.29, Csisz r Levente, v0.6.02 - - - '-l' helyett '-p' volt az include m‚lys‚g kapcsol˘ a - param‚terek feldolgoz s n l. - - - Help sz”veg javĄt sok. - - - A getopt() rossz volt, ha egy '-'-os opci˘ param‚teresnek volt - defini lva, de nem adtunk meg param‚tert. - -1999.05.28, Csisz r Levente, v0.6.01 - - - Include m‚lys‚g maximaliz l sa. - - - Hib ra be llĄtja az errorlevel()-t. - - - Ha az el“feldolgoz s sor n hiba volt (-D,-u), akkor meg ll. - - - Miel“tt megnyitn  az output fil‚t, ellen“rzi, hogy az input - l‚tezik-e. - - - A default hibakijelz“ meg‚rti a $-ot a hibastringben. - - - Sz˘t rak kiĄr sa elemenk‚nt t”rt‚nik. - - Kell m‚g: - - - A teszt k”rnyezetben minden ‚rdekes esetre teszt program. - - Tesztel‚s. - - GyorsĄt s. - -1999.05.27, Csisz r Levente, v0.6.00 - - - Parancssori makr˘ megad si lehet“s‚g. - - - #command,#translate,#xcommand,#xtranslate - - - Az res sorokat Łgy kezeli, ahogy kell. - - - A #line ott van, ahol kell. - - - #error, #stdout. - - - Kell m‚g: - - - Include m‚lys‚g maximaliz l sa. - - Sz˘t rak kiĄr sa elemenk‚nt t”rt‚njen. - - Hib ra  llĄtsa be az errorlevel()-t. - - Nagyobb hib kra  lljon meg. - - A default hibakijelz“ ‚rtse meg a $-ot a hiba - stringben, ‚s helyettesĄtse be a megfelel“ param‚terrel. - - A teszt k”rnyezetben minden ‚rdekes esetre teszt program. - - Tesztel‚s - - GyorsĄt s. - - -1999.05.26, Csisz r Levente, v0.5.00 - - - Hibakijelz‚s OK. - Mj.: Ha nem tal lja a fil‚t, akkor tŁl sok hibajelz‚st ad. - - - Kompatibilis helyettesĄt‚si m˘d. - - - #xcommand-ok kis hib val: Csak sor elej‚n kezdi el - helyettesĄteni, de azt nem n‚zi, hogy a teljes sort - helyettesĄtette-e. - - - #define-n‚l a jobb oldal v‚g‚r“l a space-kat lev gja. - - - A kifejez‚s teszt program  tkerlt a cccppalx-be. - - - RendkĄvl lassŁ (3m.157s a konyvel.prg lefordĄt sa). - - - Kell: - - les adatokon tesztelni. - - GyorsĄtani. - - #line el“tt/ut n az res sorokat t”r”lni. - -1999.05.24, Csisz r Levente, v0.4.03 - - - HelyettesĄt‚sek. - - - #endif-re nem kell hibajelz‚s. - -1999.05.24, Csisz r Levente, v0.4.02 - - - errorStream-es hibakezel‚s. - - - Srg“sen kell: - - - HelyettesĄt‚sek. (A string hat rol˘k is!) - - - Hiba kijelz‚s: - - Hi nyz˘ #endif - - Hib k az #xtranslate-ekben. - - - Parancssori makr˘ definĄci˘k. - - - Kell m‚g: - - - Az include m‚lys‚g maximaliz l sa. - - - R‚szletesebb hibazenetek. - - - Kapcsol˘, hogy csak unixos fil‚neveket fogadjon el. - - - Space-ek a /* */ el“tt. - - - šres sorok lenyel‚se. - -1999.05.21, Csisz r Levente, v0.4.01 - - - Minden match ‚s minden result marker. (Nincs tesztelve.) - - - '\' kezel‚se. - - - Parancssorban meg lehet include fil‚t adni. - Mj.: Tesztelni kell, mi van, ha ez az include file k˘dot - gener l. - - - Az xcommand, translate, command ideiglenesen xtranslate-k‚nt - van kezelve. - -1999.05.19, Csisz r Levente, v0.4.00 - - - #line, #include, parancssori param‚terez‚s. - - - Hi nyzik: - - - '\' kezel‚se a xtranslate definici˘kban. - - - #line el“tt ut n az res sorok lenyel‚se. - - - #if ne nyŁljon tŁl a fil‚n. (Ezt tesztelni kell!) - - - A '-' input fil‚ a standard input legyen az FREADER-ben. - - - Parancssorban meg lehessen adni olyan include fil‚t, amit - beolvas (std.ch). - - - Parancssorban meg lehessen #define makr˘ definĄci˘t. - - - Az xtranslate algoritmusa jobban hasonlĄtson a spec-hez. - - Mj.: A spec el“r“l megy h trafel‚, de nem tudni, hogyan l‚p - vissza. A jelenlegi algoritmusunk h tulr˘l j”n el“re. - - - HelyettesĄt‚sek kezel‚se (kapcsol˘val szab lyozhat˘ legyen), - nagybet–sĄt‚sek, string hat rol˘k, lez ratlan stringek - helyes kezel‚se. - - Pl: '**' -> '^', '.t.' ->'.T.', 'a' -> "a" etc. - - - Kapcsol˘val szab lyozhat˘ legyen, hogy a /* */ megjegyz‚s el“l - lenyelje-e a space-kat. Illetve, hagyjon-e egy space-t. - - a /* huhu */b -> ab - - A fenti p‚ld ban a fordĄt˘ az ab azonosĄt˘t fogja keresni, - holott a spec-ben ez lefordul. - - - Rossz xtranslate definĄci˘k kijelz‚se: - - hi nyz˘ ']' - - k‚t‚rtelm– helyettesĄt‚s. - - Hi nyz˘ vagy dupl n defini lt marker nevek. - - - Hibafolyam nincs kl”n. - - - xtranslate p rjai. (xcommand, etc) - - - space-ek bel”v‚se. - - - A t”bbi match marker. - - -1999.05.18, Csisz r Levente, v0.3.01 - - - #ifdef,#ifndef,#else,#endif - -1999.05.15, Csisz r Levente, v0.3.00 - - - —j regular match marker illeszt“ k˘d elemz“ f kkal. - - - Tokeniz l s. - - - '&&' megjegyz‚s. - - Hi nyzik: - - - Tesztelni a kl”nb”z“ spec eseteket: - - A tokeneket case szenzitĄven illeszti-e az xtranslate. - - A stringeket hogyan illeszti. - - Ha az alternatĄv k nem egyeznek meg a jobb ‚s a bal - oldalon (bal oldalon alternatĄva, a jobb oldalon nem), - vagy nincs elegend“ sz mŁ alternatĄva: - - #xtranslate HUHU [] => f() - #xtranslate HUHU => f([]) - - #xtranslate HUHU [a ] [b ] => f([,,]) - HUHU a 1 - HUHU b 2 - HUHU a 1 b 1 - HUHU a 1 a 1 b 1 - HUHU a 1 b 1 b 1 - HUHU a 1 a 1 - HUHU b 1 b 1 - - Mj.: Ilyenkor ha egy tal n volt illeszt‚s, akkor az - utols˘t behelyettesĄti. - - - - HelyettesĄt‚sek kezel‚se (kapcsol˘val szab lyozhat˘ legyen), - nagybet–sĄt‚sek, string hat rol˘k, lez ratlan stringek - helyes kezel‚se. - - Pl: '**' -> '^', '.t.' ->'.T.', 'a' -> "a" etc. - - - Kapcsol˘val szab lyozhat˘ legyen, hogy a /* */ megjegyz‚s el“l - lenyelje-e a space-kat. Illetve, hagyjon-e egy space-t. - - a /* huhu */b -> ab - - A fenti p‚ld ban a fordĄt˘ az ab azonosĄt˘t fogja keresni, - holott a spec-ben ez lefordul. - - - Rossz xtranslate definĄci˘k kijelz‚se: - - hi nyz˘ ']' - - k‚t‚rtelm– helyettesĄt‚s. - - Hi nyz˘ vagy dupl n defini lt marker nevek. - - - Hibafolyam nincs kl”n. - - - xtranslate p rjai. - - - space-ek bel”v‚se. - - - A t”bbi match marker. - - - A #ifdef, ‚s a #include, #line - - - Elemi gyorsĄt sok: - - A kommenteket nem kell t rolni. - - A classify-oknak sz moknak kellene lennie, hogy az elemz“ - f kn l ne kelljen keresni, hanem a sz mmal lehessen - indexelni. - - A kifejez‚shat r elemz‚sn‚l minden tokenre t”bbsz”r is - indĄt elemz“ f t, ezt optimaliz lni lehet, Łgy, hogy - kisz moljuk, honnan fog indulni. - - -1999.05.05, Csisz r Levente, v0.2.04 - - - AlternatĄv kat illeszt. - - - List ‚s regular match markereket illeszt, minden markert - helyettesĄt, de a space-k egyenl“re m‚g nem helyesek. - - - A sorv‚gjeleket kezeli crlf ‚s lf-es form ban is. - - Hi nyzik: - - - Rossz xtranslate definĄci˘k kijelz‚se: - - hi nyz˘ ']' - - k‚t‚rtelm– helyettesĄt‚s. - - - Hibafolyam nincs kl”n. - - - Nincs tokeniz l s (pedig Ągy kell illeszteni) - - - xtranslate p rjai. - - - space-ek bel”v‚se. - - - A t”bbi match marker. - - - A #ifdef, ‚s a #include, #line - - -1999.04.26, Csisz r Levente, v0.2.03 - - - Az xtranslate parancsokban elv‚gzi a helyettesĄt‚st, ha nincs - benne marker (egyik oldalon sem) ‚s nincs benne alternatĄva - (egyik oldalon sem). - - - Hi nyzik: - - markerek illeszt‚se, helyettesĄt‚se. - - - AlternatĄv k illeszt‚se, helyettesĄt‚se. - - - xtranslate parancs elemz‚s‚n‚l jelezni kell, ha van - hi nyz˘ ']' - - - xtranslate parancs elemz‚s‚n‚l jelezni kell, ha - t”bb‚rtelm– a parancs. - - - Hibakezel‚s (a token stream-be betett hiba tokenek - kl”n kezel‚se ‚s kiĄr sa). - Mj.: Ezeknek a tokeneknek kl”n stream-et kellene - rendszeresĄteni, hogy biztosan ne vesszenek - el. - - -1999.04.24, Csisz r Levente, v0.2.02 - - - K˘d teljesen  tĄrva objektumosra. - - - A define teljesen k‚sz. - - - Az xtranslate parancsokat beolvassa, de a helyettesĄt‚st nem - v‚gzi el. - - - include, ifdef, undef, hibakezel‚s hi nyzik. - -1999.02.07, Csisz r Levente, v0.2.01 - - - wmkgen 1.2.03 - -1998.09.08, Csisz r Levente, v0.2.00 - - - Els“ kibocs s: #ifdef,#ifndef,#define,#undef,#include - makr˘parancsok. - ™sszesen 4 nap alatt k‚szlt: - 1998.09.01, 1998.09.04, 1998.09.07, 1998.09.08. - -1998.09.01, Csisz r Levente, v0.1.00 - - - Indul˘ v ltozat. - diff --git a/harbour/samples/cccppc/cr_lf.ch b/harbour/samples/cccppc/cr_lf.ch deleted file mode 100644 index 500bad7dbb..0000000000 --- a/harbour/samples/cccppc/cr_lf.ch +++ /dev/null @@ -1,10 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -#define CHAR_CR chr(13) -#define CHAR_LF chr(10) -#define CHAR_CR_LF (CHAR_CR+CHAR_LF) -//******************************************************************* - diff --git a/harbour/samples/cccppc/creader.cls b/harbour/samples/cccppc/creader.cls deleted file mode 100644 index 6f4b572289..0000000000 --- a/harbour/samples/cccppc/creader.cls +++ /dev/null @@ -1,37 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// creader.cls: ltal nos 'streamb“l karaktert' olvas˘ oszt ly. -// 1999, Csisz r Levente - -// Ebb“l ”r”k”l a fil‚ ‚s a string olvas˘ oszt ly. -// A val˘di lesz rmazottaknak a readItem()-et kell implement lniuk. - -class CREADER READER - - attrib line - attrib pos // 0, ha a pozĄci˘ ismeretlen. - - rmethod read() - // A super:read()-al olvassa a stream-et. - // Az egym s ut n k”vetkez“ CR ‚s LF karaktereket egy CR_LF (kett“ - // hosszŁ) karakterr‚ alakĄtja. - // Sz molja a sorokat ‚s nyilv ntartja a pozĄci˘t. - - rmethod unread(item) - // Visszateszi az item-et az inputra. - // Vissza sz molja a sorokat. —jsor eset‚n a pozĄci˘t null zza. - - nmethod getFile() - nmethod getLine() - nmethod getPos() - - rmethod oinit(name,errorStream) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(name,errorStream) - diff --git a/harbour/samples/cccppc/creader.och b/harbour/samples/cccppc/creader.och deleted file mode 100644 index 0b0611b9cb..0000000000 --- a/harbour/samples/cccppc/creader.och +++ /dev/null @@ -1,308 +0,0 @@ -// CREADER.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_READER_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "READER.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "READER.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "READER.och" -#endif // _STRICT_PARENT_ -#endif // CA_READER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _CREADER_OCH_ -#define _CREADER_OCH_ - - -#xtranslate CREADER.:name => \[CA_OBJECT_N+1\] -#xtranslate CREADER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate CREADER.:tbuffer => \[CA_OBJECT_N+3\] - - -#xtranslate CREADER.:oinit => (OBJGEN.():(4)) -#xtranslate CREADER.:getclass => (OBJGEN.():(5)) -#xtranslate CREADER.:isclass => (OBJGEN.():(6)) -#xtranslate CREADER.:getattrib => (OBJGEN.():(7)) -#xtranslate CREADER.:setattrib => (OBJGEN.():(8)) -#xtranslate CREADER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate CREADER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate CREADER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate CREADER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate CREADER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate CREADER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate CREADER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate CREADER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) - - -#xtranslate CREADER.:line => \[CA_READER_N+1\] -#xtranslate CREADER.:pos => \[CA_READER_N+2\] - -// ™r”k”lve: read() -// ™r”k”lve: unread(item) -// Specifik lva: getfile() -// Specifik lva: getline() -// Specifik lva: getpos() -// ™r”k”lve: oinit(name,errorStream) - -// ™r”k”lve: read() -// ™r”k”lve: unread(item) -#xtranslate CREADER.:getfile => (OBJGEN.():(CM_READER_N+1)) -#xtranslate CREADER.:getline => (OBJGEN.():(CM_READER_N+2)) -#xtranslate CREADER.:getpos => (OBJGEN.():(CM_READER_N+3)) -// ™r”k”lve: oinit(name,errorStream) - -#endif // _CREADER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_CREADER_N -#define CA_CREADER_N CA_READER_N+2 -#define CM_CREADER_N CM_READER_N+3 -#endif // CA_CREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _CREADERCLASS_OCH_ -#define _CREADERCLASS_OCH_ - -********************************************************************** -#xtranslate C.CREADER: => (CREADERCLASS.clCREADER():) -#xtranslate C.CREADER:self() => (clCREADER()) - - -#xtranslate CREADERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate CREADERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate CREADERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate CREADERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate CREADERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate CREADERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate CREADERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate CREADERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate CREADERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate CREADERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate CREADERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate CREADERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate CREADERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate CREADERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate CREADERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate CREADERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate CREADERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate CREADERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate CREADERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate CREADERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate CREADERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate CREADERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate CREADERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(name,errorStream) - -// ™r”k”lve: onew(name,errorStream) - -#endif // _CREADERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_CREADERCLASS_N -#define CA_CREADERCLASS_N CA_READERCLASS_N+0 -#define CM_CREADERCLASS_N CM_READERCLASS_N+0 -#endif // CA_CREADERCLASS_N - - -********************************************************************** -#ifdef _CREADER_PRG_ -#ifndef _CREADER_PRG_OCH_ -#define _CREADER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => CREADER.(othis): -#xtranslate thisclass: => CREADERCLASS.(this:getClass()): -#define CTHIS CREADER - - -********************************************************************** -#xtranslate this: => CREADER.(this): - -#xcommand implement read() => static function read(this) -#xcommand implement unread(item) => static function unread(this,item) -#xcommand implement getfile() => static function getfile(this) -#xcommand implement getline() => static function getline(this) -#xcommand implement getpos() => static function getpos(this) -#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 getfile() => function getfile(this) -#xcommand implement export getline() => function getline(this) -#xcommand implement export getpos() => function getpos(this) -#xcommand implement export oinit(name,errorStream) => ; - function oinit(this,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(8)) -#xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+8)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this| read(this)} - pOsztaly[(CM_OBJECT_N+2)]:={|this,item| unread(this,item)} - pOsztaly[(CM_READER_N+1)]:={|this| getfile(this)} - pOsztaly[(CM_READER_N+2)]:={|this| getline(this)} - pOsztaly[(CM_READER_N+3)]:={|this| getpos(this)} - 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 m–veleteivel. - ta[CA_READER_N+1-CA_NIL_N] := {CA_READER_N+1,'line',nil} - ta[CA_READER_N+2-CA_NIL_N] := {CA_READER_N+2,'pos', } - - 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_READER_N+1)-CM_NIL_N] := {(CM_READER_N+1),'getfile','',nil} - tm[(CM_READER_N+2)-CM_NIL_N] := {(CM_READER_N+2),'getline','',nil} - tm[(CM_READER_N+3)-CM_NIL_N] := {(CM_READER_N+3),'getpos','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','name,errorStream',nil} -return nil - -#ifndef _NO_CLCREADER_ -#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 clCREADER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcCREADERCLASS():onew(; - clREADER(),; - "CREADER",; - CA_CREADER_N,; - CM_CREADER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLCREADER_ - -#ifndef _NO_CREADERCLASS_ - -********************************************************************** -#xtranslate class: => CREADERCLASS.(class): - -#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.mcREADERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti 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 m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','name,errorStream',nil} -return nil - -********************************************************************** -#ifndef _NO_MCCREADERCLASS_ -#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 mcCREADERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcREADERCLASS(),; - "CREADERCLASS",; - CA_CREADERCLASS_N,; - CM_CREADERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCCREADERCLASS_ - -#endif // _NO_CREADERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(name,errorStream) -local o:=class:ocreate() - - CREADER.o:oinit(name,errorStream) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(name,errorStream) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _CREADER_PRG_OCH_ -#endif // _CREADER_PRG_ diff --git a/harbour/samples/cccppc/creader.prg b/harbour/samples/cccppc/creader.prg deleted file mode 100644 index 818641b7cc..0000000000 --- a/harbour/samples/cccppc/creader.prg +++ /dev/null @@ -1,110 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// creader.prg: A creader oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -#include "objgen.ch" - -#define _CREADER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "creader.och" -#include "ctoken.ch" - -//******************************************************************* -#include "cr_lf.ch" - -//******************************************************************* -implement read() // Itt ez kell ‚s nem a readItem() -local c,c2,w - - c:=super:read() - if (valtype(c)=="C") - if (c==CHAR_CR) - c2:=super:read() - if (valtype(c2)=="C" .and. c2==CHAR_LF) - w:=aclone(CTK_EOL) - w[2]:=c+c2 - w[3]:=this:pos - c:=w - this:line++ - this:pos:=1 - else - super:unread(c2) - endif - elseif (c==CHAR_LF) - w:=aclone(CTK_EOL) - w[2]:=c - w[3]:=this:pos - c:=w - this:line++ - this:pos:=1 - elseif (this:pos!=0) // Ez kell!!!! Ezzel jelzi, hogy a sorra - // visszal‚ptek, ‚s Ągy a pozĄci˘ nem - // ismert. - this:pos++ - endif - endif -return c - -//******************************************************************* -implement unread(item) -// A line-t ‚s a pozĄci˘t vissza llĄtja, az EOS-t ‚s a BOS-t viszont -// nem figyeli. (Ezt az lreader-nek kellene megtennie, ha -// szks‚ges.) -local str -/* - if (valtype(item)=="C") - if (CHAR_LF$item) - // Itt sor sz ml l˘t ugyan vissza lehet  llĄtani, de a - // pozĄci˘t nem, mert ahhoz tudni kellene, milyen hosszŁ - // volt az el“z“ sor. - // Mj.: Ez lehets‚ges lenne, ha a CR_LF-be belek˘doln nk a - // sor hosszt. Ekkor persze token lenne ‚s nem dupla - // karakter. - this:pos:=0 - this:line-=xnumat(CHAR_LF,item) - elseif (this:pos!=0) - this:pos-=len(item) - endif - endif -*/ - if (valtype(item)=="A") - if (item[1]==CTKID_EOL) - str:=item[2] - this:pos:=item[3] - this:line-- - else - str:=item - endif - else - str:=item - endif -return super:unread(str) - -//******************************************************************* -implement getFile() -return this:name - -//******************************************************************* -implement getLine() -return this:line - -//******************************************************************* -implement getPos() -return this:pos - - -//******************************************************************* -implement oinit(name,errorStream) - super:oinit(name,errorStream) - - this:line:=1 - this:pos:=1 -return this - -//******************************************************************* - diff --git a/harbour/samples/cccppc/crlf.prg b/harbour/samples/cccppc/crlf.prg deleted file mode 100644 index d0ab3294b9..0000000000 --- a/harbour/samples/cccppc/crlf.prg +++ /dev/null @@ -1,25 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// crlf.prg: crlf() function for linking in non CCC environment. -// 1999, Levente Csisz r -//******************************************************************* - - -#ifndef _CCC_ - -//******************************************************************* -function crlf() -return chr(13)+chr(10) -//******************************************************************* - -#else - -//******************************************************************* -static function dummy() -return nil -//******************************************************************* - -#endif diff --git a/harbour/samples/cccppc/ctoken.ch b/harbour/samples/cccppc/ctoken.ch deleted file mode 100644 index 7d7e6c9b5e..0000000000 --- a/harbour/samples/cccppc/ctoken.ch +++ /dev/null @@ -1,153 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// ctoken.ch: Olyan (karakter) elemek, amik speci lis jelent‚st -// hordoznak. -// 199, Csisz r Levente - -// #define ID_STRING -//******************************************************************* -#ifdef ID_STRING - #define CTKID_BOS "BOS" - #define CTKID_EOS "EOS" - #define CTKID_EOL "EOL" - // #define CTKID_ENDINCLUDE "End include" - #define CTKID_PRINTLINE "PRINTLINE" -#else - #define CTKID_BOS 1 - #define CTKID_EOS 2 - #define CTKID_EOL 3 - // #define CTKID_ENDINCLUDE 4 - #define CTKID_PRINTLINE 5 -#endif -//******************************************************************* - -#define CTK_EOF nil - -// id, filename,line,pos,deep -#define CTK_BOS {CTKID_BOS,"",0,0,0} - -// Itt a pos az utols˘ sor hossza. Ha 1, akkor az utols˘ sor res -// volt. -// id, filename,line,pos,deep -#define CTK_EOS {CTKID_EOS,"",0,0,0} - -#define CTK_EOL {CTKID_EOL,CTK_LF,0} // id, eolchars,lineLen -// #define CTK_ENDINCLUDE {CTKID_ENDINCLUDE,"End include"} -#define CTK_PRINTLINE {CTKID_PRINTLINE,"PRINTLINE"} - -//******************************************************************* -#define CTK_CR chr(13) -#define CTK_LF chr(10) -#define CTK_IDEZ "'" -#define CTK_FIDEZ "`" // Ezt "'"-nak tekinti. -#define CTK_MACS '"' -#define CTK_PER "/" -#define CTK_ET "&" -#define CTK_CSILLAG "*" -#define CTK_PVESSZO ";" - -//******************************************************************* -// #define PRSERR_ENDSTRING "TSND" -// #define PRSERR_ENDPCCOMMENT "TPCD" - -//******************************************************************* -#undef ID_STRING -#ifdef ID_STRING - #define TKID_BOS "BOS" - #define TKID_EOS "EOS" - #define TKID_EOF "EOF" - #define TKID_URES "URES" - #define TKID_UJSOR "UJSOR" - #define TKID_PVESSZO "PVESSZO" - #define TKID_CHAR "CHAR" - //#define TKID_IDEZ "IDEZ" - //#define TKID_MACS "MACS" - #define TKID_CSCOMMENT "CSCOMMENT" - #define TKID_PPCOMMENT "PPCOMMENT" - #define TKID_PCCOMMENT "PCCOMMENT" - // #define TKID_ENDFILE "ENDFILE" - #define TKID_NEV "NEV" - #define TKID_SZAMTOMB "SZAMTOMB" - //#define TKID_VESSZO "VESSZO" - //#define TKID_GNYITO "GNYITO" - //#define TKID_GZARO "GZARO" - //#define TKID_KNYITO "KNYITO" - //#define TKID_KZARO "KZARO" - //#define TKID_SNYITO "SNYITO" - //#define TKID_SZARO "SZARO" - //#define TKID_ERROR "ERROR" - #define TKID_PRINTLINE "PRINTLINE" - #define TKID_STRING "STRING" - - #define TKID_MALTERSET "MALTERSET" - #define TKID_REGULAR_MATCH_MARKER "REGULAR_MATCH_MARKER" - #define TKID_WILD_MATCH_MARKER "WILD_MATCH_MARKER" - #define TKID_EXT_EXPR_MATCH_MARKER "EXT_EXPR_MATCH_MARKER" - #define TKID_LIST_MATCH_MARKER "LIST_MATCH_MARKER" - #define TKID_RESTRICTED_MATCH_MARKER "RESTRICTED_MATCH_MARKER" - - - #define TKID_RALTER "RALTER" - #define TKID_DUMB_STR_RESULT_MARKER "DUMB_STR_RESULT_MARKER" - #define TKID_REGULAR_RESULT_MARKER "REGULAR_RESULT_MARKER" - #define TKID_STRINGIFY_RESULT_MARKER "STRINGIFY_RESULT_MARKER" - #define TKID_SMART_STR_RESULT_MARKER "SMART_STR_RESULT_MARKER" - #define TKID_BLOCKIFY_RESULT_MARKER "BLOCKIFY_RESULT_MARKER" - #define TKID_LOGIFY_RESULT_MARKER "LOGIFY_RESULT_MARKER" -#else - #define TKID_BOS 1 - #define TKID_EOS 2 - #define TKID_EOF 3 - #define TKID_URES 4 - #define TKID_UJSOR 5 - #define TKID_PVESSZO 6 - #define TKID_CHAR 7 - #define TKID_CSCOMMENT 8 - #define TKID_PPCOMMENT 9 - #define TKID_PCCOMMENT 10 - #define TKID_NEV 11 - #define TKID_SZAMTOMB 12 - #define TKID_PRINTLINE 13 - #define TKID_STRING 14 - - #define TKID_MALTERSET 30 - #define TKID_REGULAR_MATCH_MARKER 31 - #define TKID_WILD_MATCH_MARKER 32 - #define TKID_EXT_EXPR_MATCH_MARKER 33 - #define TKID_LIST_MATCH_MARKER 34 - #define TKID_RESTRICTED_MATCH_MARKER 35 - - - #define TKID_RALTER 40 - #define TKID_DUMB_STR_RESULT_MARKER 41 - #define TKID_REGULAR_RESULT_MARKER 42 - #define TKID_STRINGIFY_RESULT_MARKER 43 - #define TKID_SMART_STR_RESULT_MARKER 44 - #define TKID_BLOCKIFY_RESULT_MARKER 45 - #define TKID_LOGIFY_RESULT_MARKER 46 -#endif -//******************************************************************* -#define TKCL_NEV "nev" -#define TKCL_STRING '"string"' -#define TKCL_SZAMTOMB "1" -#define TKCL_PARENT "(a)" - -#define TKCL_TRUE ".T." -//******************************************************************* - -#define makeHSLineStr(file,line) ("#line "+toStr(line)+" "+'"'+(file)+'"'+guessedEol()) - -//******************************************************************* -#define XTRTYPE_XTRANSLATE 0 -#define XTRTYPE_XCOMMAND 1 -#define XTRTYPE_TRANSLATE 2 -#define XTRTYPE_COMMAND 3 - -//******************************************************************* -#define TRPRA_TREE 1 -#define TRPRA_SEQ 2 -//******************************************************************* - diff --git a/harbour/samples/cccppc/debug.ch b/harbour/samples/cccppc/debug.ch deleted file mode 100644 index b670e261c4..0000000000 --- a/harbour/samples/cccppc/debug.ch +++ /dev/null @@ -1,16 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// debug.ch, DEBUG ‚s a PDEBUG makr˘. - -// #define DEBUG -#ifdef DEBUG - #define PDEBUG(x) x -#else - #define PDEBUG(x) -#endif - -//******************************************************************* - diff --git a/harbour/samples/cccppc/defdict.cls b/harbour/samples/cccppc/defdict.cls deleted file mode 100644 index eac83babec..0000000000 --- a/harbour/samples/cccppc/defdict.cls +++ /dev/null @@ -1,36 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// defdict.cls: #define sz˘t r oszt ly. -// 1999, Csisz r Levente - -class DEFDICT OBJECT - - attrib dict // Egyenl“re egy EDEFDICT-ekb“l  ll˘ t”mb. - - nmethod add(edefdict) - // Felvesz egy edefdict objektumot a sz˘t rba. - // Ha m r van ilyen, akkor azt adja, ha nincs, akkor nil-t. - - nmethod atIdx(name) - // A name kulcsŁ elem index‚t adja a dict-ben. - // Ha nincs, akkor 0-t ad. - // Bels“ m–velet. - - nmethod atKey(name) - // A name kulcsŁ elemet (egy EDEFDICT objektumot) ad. - // Ha nincs, akkor nil-t ad. - - nmethod delKey(name) - // Kit”rli a name kucslŁ elemet a dict-b“l. - // Ha nincs, akkor nem csin l semmit. - - nmethod printStr(printBlock) - // A sz˘t r elemeket string-k‚nt kiĄrhat˘ form ban  tadja a - // printBlock-nak. - // Ha a printBlock nincs megadva, akkor string-k‚nt visszaadja. - - rmethod oinit() - diff --git a/harbour/samples/cccppc/defdict.och b/harbour/samples/cccppc/defdict.och deleted file mode 100644 index d27b231ab6..0000000000 --- a/harbour/samples/cccppc/defdict.och +++ /dev/null @@ -1,271 +0,0 @@ -// DEFDICT.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:39:58, 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 _DEFDICT_OCH_ -#define _DEFDICT_OCH_ - - - - -#xtranslate DEFDICT.:oinit => (OBJGEN.():(4)) -#xtranslate DEFDICT.:getclass => (OBJGEN.():(5)) -#xtranslate DEFDICT.:isclass => (OBJGEN.():(6)) -#xtranslate DEFDICT.:getattrib => (OBJGEN.():(7)) -#xtranslate DEFDICT.:setattrib => (OBJGEN.():(8)) - - -#xtranslate DEFDICT.:dict => \[CA_OBJECT_N+1\] - -// Specifik lva: add(edefdict) -// Specifik lva: atidx(name) -// Specifik lva: atkey(name) -// Specifik lva: delkey(name) -// Specifik lva: printstr(printBlock) -// ™r”k”lve: oinit() - -#xtranslate DEFDICT.:add => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate DEFDICT.:atidx => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate DEFDICT.:atkey => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate DEFDICT.:delkey => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate DEFDICT.:printstr => (OBJGEN.():(CM_OBJECT_N+5)) -// ™r”k”lve: oinit() - -#endif // _DEFDICT_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_DEFDICT_N -#define CA_DEFDICT_N CA_OBJECT_N+1 -#define CM_DEFDICT_N CM_OBJECT_N+5 -#endif // CA_DEFDICT_N - -#ifndef _CA_CM_ONLY_ -#ifndef _DEFDICTCLASS_OCH_ -#define _DEFDICTCLASS_OCH_ - -********************************************************************** -#xtranslate C.DEFDICT: => (DEFDICTCLASS.clDEFDICT():) -#xtranslate C.DEFDICT:self() => (clDEFDICT()) - - -#xtranslate DEFDICTCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate DEFDICTCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate DEFDICTCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate DEFDICTCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate DEFDICTCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate DEFDICTCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate DEFDICTCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate DEFDICTCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate DEFDICTCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate DEFDICTCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate DEFDICTCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate DEFDICTCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate DEFDICTCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate DEFDICTCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate DEFDICTCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate DEFDICTCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate DEFDICTCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate DEFDICTCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate DEFDICTCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate DEFDICTCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate DEFDICTCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate DEFDICTCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate DEFDICTCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - - - -#endif // _DEFDICTCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_DEFDICTCLASS_N -#define CA_DEFDICTCLASS_N CA_BEHAVIOR_N+0 -#define CM_DEFDICTCLASS_N CM_BEHAVIOR_N+0 -#endif // CA_DEFDICTCLASS_N - - -********************************************************************** -#ifdef _DEFDICT_PRG_ -#ifndef _DEFDICT_PRG_OCH_ -#define _DEFDICT_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => DEFDICT.(othis): -#xtranslate thisclass: => DEFDICTCLASS.(this:getClass()): -#define CTHIS DEFDICT - - -********************************************************************** -#xtranslate this: => DEFDICT.(this): - -#xcommand implement add(edefdict) => static function add(this,edefdict) -#xcommand implement atidx(name) => static function atidx(this,name) -#xcommand implement atkey(name) => static function atkey(this,name) -#xcommand implement delkey(name) => static function delkey(this,name) -#xcommand implement printstr(printBlock) => ; - static function printstr(this,printBlock) -#xcommand implement oinit() => static function oinit(this) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export add(edefdict) => function add(this,edefdict) -#xcommand implement export atidx(name) => function atidx(this,name) -#xcommand implement export atkey(name) => function atkey(this,name) -#xcommand implement export delkey(name) => function delkey(this,name) -#xcommand implement export printstr(printBlock) => ; - function printstr(this,printBlock) -#xcommand implement export oinit() => function oinit(this) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this,edefdict| add(this,edefdict)} - pOsztaly[(CM_OBJECT_N+2)]:={|this,name| atidx(this,name)} - pOsztaly[(CM_OBJECT_N+3)]:={|this,name| atkey(this,name)} - pOsztaly[(CM_OBJECT_N+4)]:={|this,name| delkey(this,name)} - pOsztaly[(CM_OBJECT_N+5)]:={|this,printBlock| printstr(this,printBlock)} - pOsztaly[(4)]:={|this| oinit(this)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'dict', } - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'add','edefdict',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'atidx','name',nil} - tm[(CM_OBJECT_N+3)-CM_NIL_N] := {(CM_OBJECT_N+3),'atkey','name',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'delkey','name',nil} - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'printstr','printBlock',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','',nil} -return nil - -#ifndef _NO_CLDEFDICT_ -#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 clDEFDICT() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcDEFDICTCLASS():onew(; - clOBJECT(),; - "DEFDICT",; - CA_DEFDICT_N,; - CM_DEFDICT_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLDEFDICT_ - -#ifndef _NO_DEFDICTCLASS_ - -********************************************************************** -#xtranslate class: => DEFDICTCLASS.(class): - - -#ifdef _IMPLEMENT_EXPORT_ -#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 m–veleti blokkjaival. -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - -return nil - -********************************************************************** -#ifndef _NO_MCDEFDICTCLASS_ -#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 mcDEFDICTCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "DEFDICTCLASS",; - CA_DEFDICTCLASS_N,; - CM_DEFDICTCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCDEFDICTCLASS_ - -#endif // _NO_DEFDICTCLASS_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit() - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _DEFDICT_PRG_OCH_ -#endif // _DEFDICT_PRG_ diff --git a/harbour/samples/cccppc/defdict.prg b/harbour/samples/cccppc/defdict.prg deleted file mode 100644 index 20a95564ed..0000000000 --- a/harbour/samples/cccppc/defdict.prg +++ /dev/null @@ -1,91 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// defdict.prg: #define sz˘t r -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" -#include "objgen.ch" - -//******************************************************************* -#include "token.och" -#include "edefdict.och" - -//******************************************************************* - -#define _DEFDICT_PRG_ -// #define _IMPLEMENT_ONEW_ - -#include "defdict.och" - - -//******************************************************************* -implement oinit() - - super:oinit() - - this:dict:={} -return nil - -//******************************************************************* -implement add(edefdict) -local w - - - if (nil!=(w:=this:atKey(EDEFDICT.edefdict:name))) - return w - endif - - aadd(this:dict,edefdict) -return nil - -//******************************************************************* -implement atIdx(name) -local i - - for i:=1 to len(this:dict) - if (name==EDEFDICT.(this:dict[i]):name) - return i - endif - end for -return 0 - -//******************************************************************* -implement atKey(name) -local i - - if (0!=(i:=this:atIdx(name))) - return this:dict[i] - endif -return nil - -//******************************************************************* -implement delKey(name) -local i - - if (0!=(i:=this:atIdx(name))) - adel(this:dict,i) - asize(this:dict,len(this:dict)-1) - endif -return nil - -//******************************************************************* -implement printStr(printBlock) -local i,w -local str:="" - - for i:=1 to len(this:dict) - w:=toStr(i)+": "+EDEFDICT.(this:dict[i]):printStr() - if (printBlock!=nil) - eval(printBlock,w) - else - str+=w+newline() - endif - end for -return str - -//******************************************************************* - diff --git a/harbour/samples/cccppc/edefdict.cls b/harbour/samples/cccppc/edefdict.cls deleted file mode 100644 index 2b36fa1351..0000000000 --- a/harbour/samples/cccppc/edefdict.cls +++ /dev/null @@ -1,29 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// edefdict.cls: #define sz˘t r elem -// 1999, Csisz r Levente - -class EDEFDICT OBJECT - - attrib name - attrib params - attrib body // {[tokenArray|paramNumber],...} - attrib deffilelinepos - - nmethod change(paramValues) - // A paramValues tartalmazza a param‚terek ‚rt‚keit. - - nmethod printStr() - // Stringk‚nt adja meg az elemet #define n‚v(params) body - // form ban. - - rmethod oinit(name,params,body,deffile,defline,defpos) - - -metaclass - - rmethod onew(name,params,body,deffile,defline,defpos) - diff --git a/harbour/samples/cccppc/edefdict.och b/harbour/samples/cccppc/edefdict.och deleted file mode 100644 index b30f5d04d8..0000000000 --- a/harbour/samples/cccppc/edefdict.och +++ /dev/null @@ -1,277 +0,0 @@ -// EDEFDICT.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:13, 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 _EDEFDICT_OCH_ -#define _EDEFDICT_OCH_ - - - - -#xtranslate EDEFDICT.:oinit => (OBJGEN.():(4)) -#xtranslate EDEFDICT.:getclass => (OBJGEN.():(5)) -#xtranslate EDEFDICT.:isclass => (OBJGEN.():(6)) -#xtranslate EDEFDICT.:getattrib => (OBJGEN.():(7)) -#xtranslate EDEFDICT.:setattrib => (OBJGEN.():(8)) - - -#xtranslate EDEFDICT.:name => \[CA_OBJECT_N+1\] -#xtranslate EDEFDICT.:params => \[CA_OBJECT_N+2\] -#xtranslate EDEFDICT.:body => \[CA_OBJECT_N+3\] -#xtranslate EDEFDICT.:deffilelinepos => \[CA_OBJECT_N+4\] - -// Specifik lva: change(paramValues) -// Specifik lva: printstr() -// ™r”k”lve: oinit(name,params,body,deffile,defline,defpos) - -#xtranslate EDEFDICT.:change => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate EDEFDICT.:printstr => (OBJGEN.():(CM_OBJECT_N+2)) -// ™r”k”lve: oinit(name,params,body,deffile,defline,defpos) - -#endif // _EDEFDICT_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_EDEFDICT_N -#define CA_EDEFDICT_N CA_OBJECT_N+4 -#define CM_EDEFDICT_N CM_OBJECT_N+2 -#endif // CA_EDEFDICT_N - -#ifndef _CA_CM_ONLY_ -#ifndef _EDEFDICTCLASS_OCH_ -#define _EDEFDICTCLASS_OCH_ - -********************************************************************** -#xtranslate C.EDEFDICT: => (EDEFDICTCLASS.clEDEFDICT():) -#xtranslate C.EDEFDICT:self() => (clEDEFDICT()) - - -#xtranslate EDEFDICTCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate EDEFDICTCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate EDEFDICTCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate EDEFDICTCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate EDEFDICTCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate EDEFDICTCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate EDEFDICTCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate EDEFDICTCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate EDEFDICTCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate EDEFDICTCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate EDEFDICTCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate EDEFDICTCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate EDEFDICTCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate EDEFDICTCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate EDEFDICTCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate EDEFDICTCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate EDEFDICTCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate EDEFDICTCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate EDEFDICTCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate EDEFDICTCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate EDEFDICTCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate EDEFDICTCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate EDEFDICTCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(name,params,body,deffile,defline,defpos) - -// ™r”k”lve: onew(name,params,body,deffile,defline,defpos) - -#endif // _EDEFDICTCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_EDEFDICTCLASS_N -#define CA_EDEFDICTCLASS_N CA_BEHAVIOR_N+0 -#define CM_EDEFDICTCLASS_N CM_BEHAVIOR_N+0 -#endif // CA_EDEFDICTCLASS_N - - -********************************************************************** -#ifdef _EDEFDICT_PRG_ -#ifndef _EDEFDICT_PRG_OCH_ -#define _EDEFDICT_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => EDEFDICT.(othis): -#xtranslate thisclass: => EDEFDICTCLASS.(this:getClass()): -#define CTHIS EDEFDICT - - -********************************************************************** -#xtranslate this: => EDEFDICT.(this): - -#xcommand implement change(paramValues) => ; - static function change(this,paramValues) -#xcommand implement printstr() => static function printstr(this) -#xcommand implement oinit(name,params,body,deffile,defline,defpos) => ; - static function oinit(this,name,params,body,deffile,defline,defpos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export change(paramValues) => ; - function change(this,paramValues) -#xcommand implement export printstr() => function printstr(this) -#xcommand implement export oinit(name,params,body,deffile,defline,defpos) => ; - function oinit(this,name,params,body,deffile,defline,defpos) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this,paramValues| change(this,paramValues)} - pOsztaly[(CM_OBJECT_N+2)]:={|this| printstr(this)} - pOsztaly[(4)]:={|this,name,params,body,deffile,defline,defpos| oinit(this,name,params,body,deffile,defline,defpos)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'name',nil} - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'params',nil} - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'body', } - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'deffilelinepos',nil} - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'change','paramValues',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'printstr','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','name,params,body,deffile,defline,defpos',nil} -return nil - -#ifndef _NO_CLEDEFDICT_ -#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 clEDEFDICT() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcEDEFDICTCLASS():onew(; - clOBJECT(),; - "EDEFDICT",; - CA_EDEFDICT_N,; - CM_EDEFDICT_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLEDEFDICT_ - -#ifndef _NO_EDEFDICTCLASS_ - -********************************************************************** -#xtranslate class: => EDEFDICTCLASS.(class): - -#xcommand cimplement onew(name,params,body,deffile,defline,defpos) => ; - static function onew(class,name,params,body,deffile,defline,defpos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(name,params,body,deffile,defline,defpos) => ; - function onew(class,name,params,body,deffile,defline,defpos) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,name,params,body,deffile,defline,defpos| onew(class,name,params,body,deffile,defline,defpos)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','name,params,body,deffile,defline,defpos',nil} -return nil - -********************************************************************** -#ifndef _NO_MCEDEFDICTCLASS_ -#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 mcEDEFDICTCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "EDEFDICTCLASS",; - CA_EDEFDICTCLASS_N,; - CM_EDEFDICTCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCEDEFDICTCLASS_ - -#endif // _NO_EDEFDICTCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(name,params,body,deffile,defline,defpos) -local o:=class:ocreate() - - EDEFDICT.o:oinit(name,params,body,deffile,defline,defpos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(name,params,body,deffile,defline,defpos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _EDEFDICT_PRG_OCH_ -#endif // _EDEFDICT_PRG_ diff --git a/harbour/samples/cccppc/edefdict.prg b/harbour/samples/cccppc/edefdict.prg deleted file mode 100644 index 16650dad5b..0000000000 --- a/harbour/samples/cccppc/edefdict.prg +++ /dev/null @@ -1,144 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// edefdict.prg: #define sz˘t r elem -// 1999, Csisz r Levente - -//******************************************************************* -// A helyettesĄt‚s sor n el kell fogadni a #define h(x,x) stĄlusŁ -// definici˘t, ‚s ilyenkor az els“ 'x' hely‚n  ll˘ ‚rt‚k -// helyettesĄt“dik be mindenhova. - -//******************************************************************* -#include "ctoken.ch" -#include "objgen.ch" - -//******************************************************************* -#include "token.och" - -//******************************************************************* - -#define _EDEFDICT_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "edefdict.och" - - -//******************************************************************* - -implement oinit(name,params,body,deffile,defline,defpos) -local w,i,j,p,pw,l - - super:oinit() - this:name :=name - this:params :=params - this:deffilelinepos :={deffile,defline,defpos} - - if (empty(body)) - this:body:={} - else - l:=0 - for i:=len(body) to 1 step -1 - if (!TOKEN.body[i]:id==TKID_URES) - l:=i - exit - endif - end for - if (empty(params)) - pw:={} - // aeval(body,{|x| aadd(pw,x)}) - for i:=1 to l - aadd(pw,body[i]) - end for - this:body:={pw} - else - p:={} - pw:={} - // for i:=1 to len(body) - for i:=1 to l - w:=body[i] - if (TOKEN.w:id==TKID_NEV .and.; - 0!=(j:=ascan(params,{|x| TOKEN.w:str==x}))) - - if (!empty(pw)) - aadd(p,pw) - endif - aadd(p,j) - pw:={} - else - aadd(pw,w) - endif - end for - if (!empty(pw)) - aadd(p,pw) - endif - this:body:=p - endif - endif -return this - -//******************************************************************* -implement change(paramValues) -local i,pi -local r:={} - - if (empty(this:body)) - return this:body - elseif (empty(this:params)) - return this:body[1] - endif - - for i:=1 to len(this:body) - if (valtype(this:body[i])=="N") - pi:=this:body[i] - if (len(paramValues)>=pi) - aeval(paramValues[pi],{|x| aadd(r,x)}) - endif - else - aeval(this:body[i],{|x| aadd(r,x)}) - endif - end for -return r - -//******************************************************************* -implement printStr() -local str:="#define "+"'"+this:name+"'" -local w -local wParams:={} -local i - - - if (this:params!=nil) - str+="'(" - for i:=1 to len(this:params) - aadd(wParams,{this:params[i]}) - if (i>1) - str+="," - endif - str+=this:params[i] - end for - str+=")'" - endif - w:=this:change(wParams) - - if (len(w)>0) - str+=" " - endif - - for i:=1 to len(w) - if (valtype(w[i])=="C") - str+=w[i] - else - str+=TOKEN.(w[i]):getStr() - endif - end for - -return str - -//******************************************************************* - - - - diff --git a/harbour/samples/cccppc/expr.prg b/harbour/samples/cccppc/expr.prg deleted file mode 100644 index e449e1f065..0000000000 --- a/harbour/samples/cccppc/expr.prg +++ /dev/null @@ -1,398 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// expr.prg: Kifejez‚s hat rok meg llapĄt sa. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "prtree.och" -#include "prtreepr.och" - -//******************************************************************* -#define EXPPRTREE_MAXDEEP 4 - -//******************************************************************* -function expPrtree() -// Megadja a kifejez‚seket vizsg l˘ elemz“ f t. - -// Ha az adott sz˘r˘l (sorozatr˘l) tudni lehet, hogy hol van benne -// a kifejez‚s hat r, akkor a result-ban egy sz m  ll, ami -// a sorozat utols˘, m‚g a kifejez‚shez tartoz˘ tagj nat a -// sorsz ma. Ha ilyen nincs, akkor a result nil. - -// A '!', '@', '++', '=' oszt lyok innen hi nyoznak, mert azok ut n -// minden j”het. - -static prtree - - if (prtree==nil) - - prtree:=C.PRTREE:onew() - - #ifdef OLD - // Kett“ hosszŁak, amiket elfogadjunk. - PRTREE.prtree:addWord(nil,{"%","&"} ) - PRTREE.prtree:addWord(nil,{"%","++"} ) - PRTREE.prtree:addWord(nil,{"%","nev"} ) - PRTREE.prtree:addWord(nil,{"%","(a)"} ) - PRTREE.prtree:addWord(nil,{"%",".T."} ) - PRTREE.prtree:addWord(nil,{"%","1"} ) - PRTREE.prtree:addWord(nil,{"^","&"} ) - PRTREE.prtree:addWord(nil,{"^","++"} ) - PRTREE.prtree:addWord(nil,{"^","nev"} ) - PRTREE.prtree:addWord(nil,{"^","(a)"} ) - PRTREE.prtree:addWord(nil,{"^",".T."} ) - PRTREE.prtree:addWord(nil,{"^","1"} ) - PRTREE.prtree:addWord(nil,{"&","!"} ) - PRTREE.prtree:addWord(nil,{"&","@"} ) - PRTREE.prtree:addWord(nil,{"&","%"} ) - PRTREE.prtree:addWord(nil,{"&","^"} ) - PRTREE.prtree:addWord(nil,{"&","&"} ) - PRTREE.prtree:addWord(nil,{"&","*"} ) - PRTREE.prtree:addWord(nil,{"&","-"} ) - PRTREE.prtree:addWord(nil,{"&","+"} ) - PRTREE.prtree:addWord(nil,{"&","="} ) - PRTREE.prtree:addWord(nil,{"&","/"} ) - PRTREE.prtree:addWord(nil,{"&","++"} ) - PRTREE.prtree:addWord(nil,{"&","nev"} ) - PRTREE.prtree:addWord(nil,{"&","(a)"} ) - PRTREE.prtree:addWord(nil,{"&",".T."} ) - PRTREE.prtree:addWord(nil,{"&","1"} ) - PRTREE.prtree:addWord(nil,{"*","&"} ) - PRTREE.prtree:addWord(nil,{"*","++"} ) - PRTREE.prtree:addWord(nil,{"*","nev"} ) - PRTREE.prtree:addWord(nil,{"*","(a)"} ) - PRTREE.prtree:addWord(nil,{"*",".T."} ) - PRTREE.prtree:addWord(nil,{"*","1"} ) - PRTREE.prtree:addWord(nil,{"-","&"} ) - PRTREE.prtree:addWord(nil,{"-","++"} ) - PRTREE.prtree:addWord(nil,{"-","nev"} ) - PRTREE.prtree:addWord(nil,{"-","(a)"} ) - PRTREE.prtree:addWord(nil,{"-",".T."} ) - PRTREE.prtree:addWord(nil,{"-","1"} ) - PRTREE.prtree:addWord(nil,{"+","&"} ) - PRTREE.prtree:addWord(nil,{"+","++"} ) - PRTREE.prtree:addWord(nil,{"+","nev"} ) - PRTREE.prtree:addWord(nil,{"+","(a)"} ) - PRTREE.prtree:addWord(nil,{"+",".T."} ) - PRTREE.prtree:addWord(nil,{"+","1"} ) - PRTREE.prtree:addWord(nil,{"/","&"} ) - PRTREE.prtree:addWord(nil,{"/","++"} ) - PRTREE.prtree:addWord(nil,{"/","nev"} ) - PRTREE.prtree:addWord(nil,{"/","(a)"} ) - PRTREE.prtree:addWord(nil,{"/",".T."} ) - PRTREE.prtree:addWord(nil,{"/","1"} ) - PRTREE.prtree:addWord(nil,{"nev","!"} ) - PRTREE.prtree:addWord(nil,{"nev","@"} ) - PRTREE.prtree:addWord(nil,{"nev","%"} ) - PRTREE.prtree:addWord(nil,{"nev","^"} ) - PRTREE.prtree:addWord(nil,{"nev","&"} ) - PRTREE.prtree:addWord(nil,{"nev","*"} ) - PRTREE.prtree:addWord(nil,{"nev","-"} ) - PRTREE.prtree:addWord(nil,{"nev","+"} ) - PRTREE.prtree:addWord(nil,{"nev","="} ) - PRTREE.prtree:addWord(nil,{"nev","/"} ) - PRTREE.prtree:addWord(nil,{"nev","++"} ) - PRTREE.prtree:addWord(nil,{"nev","(a)"}) - PRTREE.prtree:addWord(nil,{"(a)","!"} ) - PRTREE.prtree:addWord(nil,{"(a)","@"} ) - PRTREE.prtree:addWord(nil,{"(a)","%"} ) - PRTREE.prtree:addWord(nil,{"(a)","^"} ) - PRTREE.prtree:addWord(nil,{"(a)","&"} ) - PRTREE.prtree:addWord(nil,{"(a)","*"} ) - PRTREE.prtree:addWord(nil,{"(a)","-"} ) - PRTREE.prtree:addWord(nil,{"(a)","+"} ) - PRTREE.prtree:addWord(nil,{"(a)","="} ) - PRTREE.prtree:addWord(nil,{"(a)","/"} ) - PRTREE.prtree:addWord(nil,{"(a)","++"} ) - PRTREE.prtree:addWord(nil,{"(a)","(a)"}) - PRTREE.prtree:addWord(nil,{".T.","!"} ) - PRTREE.prtree:addWord(nil,{".T.","@"} ) - PRTREE.prtree:addWord(nil,{".T.","%"} ) - PRTREE.prtree:addWord(nil,{".T.","^"} ) - PRTREE.prtree:addWord(nil,{".T.","&"} ) - PRTREE.prtree:addWord(nil,{".T.","*"} ) - PRTREE.prtree:addWord(nil,{".T.","-"} ) - PRTREE.prtree:addWord(nil,{".T.","+"} ) - PRTREE.prtree:addWord(nil,{".T.","="} ) - PRTREE.prtree:addWord(nil,{".T.","/"} ) - PRTREE.prtree:addWord(nil,{".T.","++"} ) - PRTREE.prtree:addWord(nil,{".T.","(a)"}) - PRTREE.prtree:addWord(nil,{"1","!"} ) - PRTREE.prtree:addWord(nil,{"1","@"} ) - PRTREE.prtree:addWord(nil,{"1","%"} ) - PRTREE.prtree:addWord(nil,{"1","^"} ) - PRTREE.prtree:addWord(nil,{"1","&"} ) - PRTREE.prtree:addWord(nil,{"1","*"} ) - PRTREE.prtree:addWord(nil,{"1","-"} ) - PRTREE.prtree:addWord(nil,{"1","+"} ) - PRTREE.prtree:addWord(nil,{"1","="} ) - PRTREE.prtree:addWord(nil,{"1","/"} ) - PRTREE.prtree:addWord(nil,{"1","++"} ) - PRTREE.prtree:addWord(nil,{"1","(a)"} ) - - #endif - - // K‚t token k”z”tt kifejez‚shat rok. - PRTREE.prtree:addWord(1,{"%","!"} ) - PRTREE.prtree:addWord(1,{"%","@"} ) - PRTREE.prtree:addWord(1,{"%","%"} ) - PRTREE.prtree:addWord(1,{"%","^"} ) - PRTREE.prtree:addWord(1,{"%","*"} ) - PRTREE.prtree:addWord(1,{"%","-"} ) - PRTREE.prtree:addWord(1,{"%","+"} ) - PRTREE.prtree:addWord(1,{"%","="} ) - PRTREE.prtree:addWord(1,{"%","/"} ) - PRTREE.prtree:addWord(1,{"^","!"} ) - PRTREE.prtree:addWord(1,{"^","@"} ) - PRTREE.prtree:addWord(1,{"^","%"} ) - PRTREE.prtree:addWord(1,{"^","^"} ) - PRTREE.prtree:addWord(1,{"^","*"} ) - PRTREE.prtree:addWord(1,{"^","-"} ) - PRTREE.prtree:addWord(1,{"^","+"} ) - PRTREE.prtree:addWord(1,{"^","="} ) - PRTREE.prtree:addWord(1,{"^","/"} ) - PRTREE.prtree:addWord(1,{"*","!"} ) - PRTREE.prtree:addWord(1,{"*","@"} ) - PRTREE.prtree:addWord(1,{"*","%"} ) - PRTREE.prtree:addWord(1,{"*","^"} ) - PRTREE.prtree:addWord(1,{"*","*"} ) - PRTREE.prtree:addWord(1,{"*","-"} ) - PRTREE.prtree:addWord(1,{"*","+"} ) - PRTREE.prtree:addWord(1,{"*","="} ) - PRTREE.prtree:addWord(1,{"*","/"} ) - PRTREE.prtree:addWord(1,{"-","!"} ) - PRTREE.prtree:addWord(1,{"-","@"} ) - PRTREE.prtree:addWord(1,{"-","%"} ) - PRTREE.prtree:addWord(1,{"-","^"} ) - PRTREE.prtree:addWord(1,{"-","*"} ) - PRTREE.prtree:addWord(1,{"-","-"} ) - PRTREE.prtree:addWord(1,{"-","+"} ) - PRTREE.prtree:addWord(1,{"-","="} ) - PRTREE.prtree:addWord(1,{"-","/"} ) - PRTREE.prtree:addWord(1,{"+","!"} ) - PRTREE.prtree:addWord(1,{"+","@"} ) - PRTREE.prtree:addWord(1,{"+","%"} ) - PRTREE.prtree:addWord(1,{"+","^"} ) - PRTREE.prtree:addWord(1,{"+","*"} ) - PRTREE.prtree:addWord(1,{"+","-"} ) - PRTREE.prtree:addWord(1,{"+","+"} ) - PRTREE.prtree:addWord(1,{"+","="} ) - PRTREE.prtree:addWord(1,{"+","/"} ) - PRTREE.prtree:addWord(1,{"/","!"} ) - PRTREE.prtree:addWord(1,{"/","@"} ) - PRTREE.prtree:addWord(1,{"/","%"} ) - PRTREE.prtree:addWord(1,{"/","^"} ) - PRTREE.prtree:addWord(1,{"/","*"} ) - PRTREE.prtree:addWord(1,{"/","-"} ) - PRTREE.prtree:addWord(1,{"/","+"} ) - PRTREE.prtree:addWord(1,{"/","="} ) - PRTREE.prtree:addWord(1,{"/","/"} ) - PRTREE.prtree:addWord(1,{"nev","nev"}) - PRTREE.prtree:addWord(1,{"nev",".T."}) - PRTREE.prtree:addWord(1,{"nev","1"} ) - PRTREE.prtree:addWord(1,{"(a)","nev"}) - PRTREE.prtree:addWord(1,{"(a)",".T."}) - PRTREE.prtree:addWord(1,{"(a)","1"} ) - PRTREE.prtree:addWord(1,{".T.","nev"}) - PRTREE.prtree:addWord(1,{".T.",".T."}) - PRTREE.prtree:addWord(1,{".T.","1"} ) - PRTREE.prtree:addWord(1,{"1","nev"} ) - PRTREE.prtree:addWord(1,{"1",".T."} ) - PRTREE.prtree:addWord(1,{"1","1"} ) - - // H rom hosszŁak, amiket elfogadunk. - PRTREE.prtree:addWord(nil,{"/","-","nev"} ) - PRTREE.prtree:addWord(nil,{"/","-","1"} ) - PRTREE.prtree:addWord(nil,{"%","-","nev"} ) - PRTREE.prtree:addWord(nil,{"%","-","1"} ) - PRTREE.prtree:addWord(nil,{"^","-","nev"} ) - PRTREE.prtree:addWord(nil,{"^","-","1"} ) - PRTREE.prtree:addWord(nil,{"*","-","nev"} ) - PRTREE.prtree:addWord(nil,{"*","-","1"} ) - PRTREE.prtree:addWord(nil,{"-","-","nev"} ) - PRTREE.prtree:addWord(nil,{"-","-","1"} ) - PRTREE.prtree:addWord(nil,{"+","-","nev"} ) - PRTREE.prtree:addWord(nil,{"+","-","1"} ) - PRTREE.prtree:addWord(nil,{"+","/","nev"} ) - - // Speci lis kiv‚telek, amiket el kell fogadni. - PRTREE.prtree:addWord(nil,{"*","/","nev"} ) - - // Speci lis kiv‚telek, amikben kifejez‚shat r van. - PRTREE.prtree:addWord(2,{"nev","++","nev"} ) - PRTREE.prtree:addWord(2,{"nev","++",".T."} ) - PRTREE.prtree:addWord(2,{"nev","++","1"} ) - PRTREE.prtree:addWord(2,{"(a)","++","nev"} ) - PRTREE.prtree:addWord(2,{"(a)","++",".T."} ) - PRTREE.prtree:addWord(2,{"(a)","++","1"} ) - PRTREE.prtree:addWord(2,{".T.","++","nev"} ) - PRTREE.prtree:addWord(2,{".T.","++",".T."} ) - PRTREE.prtree:addWord(2,{".T.","++","1"} ) - PRTREE.prtree:addWord(2,{"1","++","nev"} ) - PRTREE.prtree:addWord(2,{"1","++",".T."} ) - PRTREE.prtree:addWord(2,{"1","++","1"} ) - - endif -return prtree - - -//******************************************************************* -#ifdef OLD -function exprChk2(clf1,clf2) -// A k‚t classify-r˘l meg llapĄtja, hogy k”vetkezhetnek-e egym s ut n. -// Egyik sem lehet res (sorv‚gjel, etc.) -local prtreepr,w - - if (clf1=="!" .or. clf1=="@" .or. clf1=="++" .or. clf1=="=") - return .t. - endif - - - prtreepr:=C.PRTREEPR:onew(expPrtree2()) - if (nil==(w:=PRTREEPR.prtreepr:put(clf1))) - w:=PRTREEPR.prtreepr:put(clf2) - endif - - // w==nil: Ez nem lehet, mert a f ban csak k‚t elem– szavak - // vannak. -return w!=.f. - -//******************************************************************* -function expPrtree3() -// Megadja a h rom elem– kifejez‚sekre a kiv‚teleket. -// Ezek azok, amiket az exprChk2() nem enged el, de j˘k. - -static prtree - - if (prtree==nil) - - prtree:=C.PRTREE:onew() - - PRTREE.prtree:addWord(nil,{"/","-","nev"} ) - PRTREE.prtree:addWord(nil,{"/","-","1"} ) - PRTREE.prtree:addWord(nil,{"%","-","nev"} ) - PRTREE.prtree:addWord(nil,{"%","-","1"} ) - PRTREE.prtree:addWord(nil,{"^","-","nev"} ) - PRTREE.prtree:addWord(nil,{"^","-","1"} ) - PRTREE.prtree:addWord(nil,{"*","-","nev"} ) - PRTREE.prtree:addWord(nil,{"*","-","1"} ) - PRTREE.prtree:addWord(nil,{"-","-","nev"} ) - PRTREE.prtree:addWord(nil,{"-","-","1"} ) - PRTREE.prtree:addWord(nil,{"+","-","nev"} ) - PRTREE.prtree:addWord(nil,{"+","-","1"} ) - PRTREE.prtree:addWord(nil,{"+","/","nev"} ) - // PRTREE.prtree:addWord(nil,{"","",""} ) - // PRTREE.prtree:addWord(nil,{"","",""} ) - // PRTREE.prtree:addWord(nil,{"","",""} ) - // PRTREE.prtree:addWord(nil,{"","",""} ) - - endif -return prtree - -//******************************************************************* -function exprChk3(clf1,clf2,clf3) -// A h rom classify-r˘l meg llapĄtja, hogy k”vetkezhetnek-e egym s -// ut n. -// Csak akkor hĄvhat˘, ha (clf2,clf3)-at az exprChk2() nem fogadta el. -// Egyik sem lehet res (sorv‚gjel, etc.) -local prtreepr,w - - prtreepr:=C.PRTREEPR:onew(expPrtree3()) - if (nil==(w:=PRTREEPR.prtreepr:put(clf1))) - if (nil==(w:=PRTREEPR.prtreepr:put(clf2))) - w:=PRTREEPR.prtreepr:put(clf3) - endif - endif - - // w==nil: Ez nem lehet, mert a f ban csak k‚t elem– szavak - // vannak. -return w!=.f. - -//******************************************************************* -function exprChk(clfArray) -// Meg llpĄtja, hogy a clfArray utols˘ n. eleme k”z”tt hol van -// a kifejez‚s hat r. -// Ret: nil, ha nincs kifejez‚s hat r. -// sz m: a clfArray-ban az utols˘, m‚g a kifejez‚shez tartoz˘ -// elem indexe. -local clf0,clf1,clf2 - - if (len(clfArray)<2) - return nil - endif - - clf0:=clfArray[len(clfArray)] - clf1:=clfArray[len(clfArray)-1] - - if (exprChk2(clf1,clf0)) - return nil - elseif (len(clfArray)>=3) - clf2:=clfArray[len(clfArray)-2] - if (exprChk3(clf2,clf1,clf0)) - return nil - endif - endif -return len(clfArray)-1 -//******************************************************************* -#endif - - - -//******************************************************************* -function exprChk(clfArray) -// Meg llapĄtja, hogy a clfArray utols˘ EXPPRTREE_MAXDEEP eleme -// k”z”tt hol van a kifejez‚s hat r. -// Felteszi, hogy a clfArray els“ n-1 elem‚r“l nem meg llapĄthat˘, -// hogy hol van a kifejez‚shat r. -// Ret: nil, ha nincs kifejez‚s hat r. -// sz m: a clfArray-ban az utols˘, m‚g a kifejez‚shez tartoz˘ -// elem indexe. -/* - A k”vetkez“k‚ppen m–k”dik: - n=EXPPRTREE_MAXDEEP - Megn‚zi, hogy a clfArray utols˘ n elem‚re meg llapĄthat˘-e - kifejez‚shat r, ha igen, OK, ha nem, akkor az n-et cs”kkenti - egy-el. Ha az n<2, akkor a kifejez‚shat r nem  llapĄthat˘ meg. - - Egy n-re pedig Łgy  llapĄtja meg, hogy van-e kifejez‚shat r, - hogy elemezteti az exprPrTree-vel. Ha benne van, akkor a - result megmondja az eredm‚nyt. Ha nincs benne, akkor elfogadjuk. - Ha az elemz“ azt mondja, hogy m‚g kell olvasni, akkor - elfogadjuk. -*/ -local n, prtreepr,i,w - - for n:=EXPPRTREE_MAXDEEP to 2 step -1 - if (len(clfArray)>=n) - prtreepr:=C.PRTREEPR:onew(expPrtree()) - for i:=len(clfarray)-n+1 to len(clfArray) - if (nil!=(w:=PRTREEPR.prtreepr:put(clfArray[i]))) - // Az elemz“ meg llt. - if (w) - // Benne van. - if (PRTREEPR.prtreepr:result==nil) - // Elfogadva. - return nil - endif - // Megvan a kifejez‚shat r. - return len(clfArray)-n+PRTREEPR.prtreepr:result - else - // Nincs benne, megynk tov bb. - exit - endif - endif - end for - endif - end for - -return nil - - -//******************************************************************* - diff --git a/harbour/samples/cccppc/extrdict.cls b/harbour/samples/cccppc/extrdict.cls deleted file mode 100644 index 3f036ede31..0000000000 --- a/harbour/samples/cccppc/extrdict.cls +++ /dev/null @@ -1,43 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// extrdict.cls: #xtranslate sz˘t r elem -// 1999, Csisz r Levente - -class EXTRDICT OBJECT - - attrib cmdType // 0: xtranslatae, 1: xcommand. - attrib leftSide - attrib rightSide - attrib deffilelinepos - attrib numMatchMarkers - attrib undefRMarkers // Azok a result markerek, amikhez nincs - // match marker - - nmethod change(paramValues) - // A paramValues tartalmazza a match tokenekre illesztett - // tokeneket. - - nmethod printStr() - // Stringk‚nt adja meg az elemet #xtranslate leftSide => rightSide - // form ban. - -// nmethod setNextToken() - // Az ”sszes match markerben be llĄtja a nextToken-t, ha van. - -// nmethod calcSorszam() - // - ™sszeszedi a match markereket. - // - Minden match markerbe beĄrja a sorsz m t. - // - Minden result marker-be beĄrja a hozz  tartoz˘ match - // marker sorsz m t. - - rmethod oinit(cmdType,leftSide,rightSide,deffile,defline,defpos) - - -metaclass - - rmethod onew(cmdType,leftSide,rightSide,deffile,defline,defpos) - - diff --git a/harbour/samples/cccppc/extrdict.och b/harbour/samples/cccppc/extrdict.och deleted file mode 100644 index fb462b76d9..0000000000 --- a/harbour/samples/cccppc/extrdict.och +++ /dev/null @@ -1,281 +0,0 @@ -// EXTRDICT.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:39:58, 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 _EXTRDICT_OCH_ -#define _EXTRDICT_OCH_ - - - - -#xtranslate EXTRDICT.:oinit => (OBJGEN.():(4)) -#xtranslate EXTRDICT.:getclass => (OBJGEN.():(5)) -#xtranslate EXTRDICT.:isclass => (OBJGEN.():(6)) -#xtranslate EXTRDICT.:getattrib => (OBJGEN.():(7)) -#xtranslate EXTRDICT.:setattrib => (OBJGEN.():(8)) - - -#xtranslate EXTRDICT.:cmdtype => \[CA_OBJECT_N+1\] -#xtranslate EXTRDICT.:leftside => \[CA_OBJECT_N+2\] -#xtranslate EXTRDICT.:rightside => \[CA_OBJECT_N+3\] -#xtranslate EXTRDICT.:deffilelinepos => \[CA_OBJECT_N+4\] -#xtranslate EXTRDICT.:nummatchmarkers => \[CA_OBJECT_N+5\] -#xtranslate EXTRDICT.:undefrmarkers => \[CA_OBJECT_N+6\] - -// Specifik lva: change(paramValues) -// Specifik lva: printstr() -// ™r”k”lve: oinit(cmdType,leftSide,rightSide,deffile,defline,defpos) - -#xtranslate EXTRDICT.:change => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate EXTRDICT.:printstr => (OBJGEN.():(CM_OBJECT_N+2)) -// ™r”k”lve: oinit(cmdType,leftSide,rightSide,deffile,defline,defpos) - -#endif // _EXTRDICT_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_EXTRDICT_N -#define CA_EXTRDICT_N CA_OBJECT_N+6 -#define CM_EXTRDICT_N CM_OBJECT_N+2 -#endif // CA_EXTRDICT_N - -#ifndef _CA_CM_ONLY_ -#ifndef _EXTRDICTCLASS_OCH_ -#define _EXTRDICTCLASS_OCH_ - -********************************************************************** -#xtranslate C.EXTRDICT: => (EXTRDICTCLASS.clEXTRDICT():) -#xtranslate C.EXTRDICT:self() => (clEXTRDICT()) - - -#xtranslate EXTRDICTCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate EXTRDICTCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate EXTRDICTCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate EXTRDICTCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate EXTRDICTCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate EXTRDICTCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate EXTRDICTCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate EXTRDICTCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate EXTRDICTCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate EXTRDICTCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate EXTRDICTCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate EXTRDICTCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate EXTRDICTCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate EXTRDICTCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate EXTRDICTCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate EXTRDICTCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate EXTRDICTCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate EXTRDICTCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate EXTRDICTCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate EXTRDICTCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate EXTRDICTCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate EXTRDICTCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate EXTRDICTCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(cmdType,leftSide,rightSide,deffile,defline,defpos) - -// ™r”k”lve: onew(cmdType,leftSide,rightSide,deffile,defline,defpos) - -#endif // _EXTRDICTCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_EXTRDICTCLASS_N -#define CA_EXTRDICTCLASS_N CA_BEHAVIOR_N+0 -#define CM_EXTRDICTCLASS_N CM_BEHAVIOR_N+0 -#endif // CA_EXTRDICTCLASS_N - - -********************************************************************** -#ifdef _EXTRDICT_PRG_ -#ifndef _EXTRDICT_PRG_OCH_ -#define _EXTRDICT_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => EXTRDICT.(othis): -#xtranslate thisclass: => EXTRDICTCLASS.(this:getClass()): -#define CTHIS EXTRDICT - - -********************************************************************** -#xtranslate this: => EXTRDICT.(this): - -#xcommand implement change(paramValues) => ; - static function change(this,paramValues) -#xcommand implement printstr() => static function printstr(this) -#xcommand implement oinit(cmdType,leftSide,rightSide,deffile,defline,defpos) => ; - static function oinit(this,cmdType,leftSide,rightSide,deffile,defline,defpos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export change(paramValues) => ; - function change(this,paramValues) -#xcommand implement export printstr() => function printstr(this) -#xcommand implement export oinit(cmdType,leftSide,rightSide,deffile,defline,defpos) => ; - function oinit(this,cmdType,leftSide,rightSide,deffile,defline,defpos) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this,paramValues| change(this,paramValues)} - pOsztaly[(CM_OBJECT_N+2)]:={|this| printstr(this)} - pOsztaly[(4)]:={|this,cmdType,leftSide,rightSide,deffile,defline,defpos| oinit(this,cmdType,leftSide,rightSide,deffile,defline,defpos)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'cmdtype', } - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'leftside',nil} - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'rightside',nil} - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'deffilelinepos',nil} - ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'nummatchmarkers',nil} - ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'undefrmarkers', } - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'change','paramValues',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'printstr','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','cmdType,leftSide,rightSide,deffile,defline,defpos',nil} -return nil - -#ifndef _NO_CLEXTRDICT_ -#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 clEXTRDICT() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcEXTRDICTCLASS():onew(; - clOBJECT(),; - "EXTRDICT",; - CA_EXTRDICT_N,; - CM_EXTRDICT_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLEXTRDICT_ - -#ifndef _NO_EXTRDICTCLASS_ - -********************************************************************** -#xtranslate class: => EXTRDICTCLASS.(class): - -#xcommand cimplement onew(cmdType,leftSide,rightSide,deffile,defline,defpos) => ; - static function onew(class,cmdType,leftSide,rightSide,deffile,defline,defpos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(cmdType,leftSide,rightSide,deffile,defline,defpos) => ; - function onew(class,cmdType,leftSide,rightSide,deffile,defline,defpos) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,cmdType,leftSide,rightSide,deffile,defline,defpos| onew(class,cmdType,leftSide,rightSide,deffile,defline,defpos)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','cmdType,leftSide,rightSide,deffile,defline,defpos',nil} -return nil - -********************************************************************** -#ifndef _NO_MCEXTRDICTCLASS_ -#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 mcEXTRDICTCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "EXTRDICTCLASS",; - CA_EXTRDICTCLASS_N,; - CM_EXTRDICTCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCEXTRDICTCLASS_ - -#endif // _NO_EXTRDICTCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(cmdType,leftSide,rightSide,deffile,defline,defpos) -local o:=class:ocreate() - - EXTRDICT.o:oinit(cmdType,leftSide,rightSide,deffile,defline,defpos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(cmdType,leftSide,rightSide,deffile,defline,defpos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _EXTRDICT_PRG_OCH_ -#endif // _EXTRDICT_PRG_ diff --git a/harbour/samples/cccppc/extrdict.prg b/harbour/samples/cccppc/extrdict.prg deleted file mode 100644 index 6fd96c0fe0..0000000000 --- a/harbour/samples/cccppc/extrdict.prg +++ /dev/null @@ -1,335 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// extrdict.prg: #xtranslate sz˘t r elem -// 1999, Csisz r Levente - -//******************************************************************* -/* - A helyettesĄt‚s Łgy megy, hogy minden match marker kap egy - sorsz mot. A change fggv‚ny egy olyan t”mb”t v r, ahol - az i. elem, az i. match markerre illeszkedett token list k - list ja. (Egy match markerre t”bbsz”r is lehet illeszteni, ha '[]' - k”z”tt volt.) - - Ezekut n a csere Łgy megy, hogy megynk a jobb oldalon, - ha nem '[]' k”z”tti result markert tal lunk, akkor - behelyettesĄtjk a hozz  tartoz˘ token list t. (Ekkor pontosan egy - ilyen kell, hogy legyen) - - Ha '[]' k”z”tti tokeneket annyiszor Ąrjuk ki, amennyi a hozz  - tartoz˘ result markere csere list inak a maxim lis hossza. - -*/ - -//******************************************************************* -#include "ctoken.ch" -#include "objgen.ch" - -//******************************************************************* -#include "token.och" -#include "mmarker.och" -#include "rmarker.och" -#include "maltrset.och" -#include "ralter.och" - -//******************************************************************* - -#define _EXTRDICT_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "extrdict.och" - - -//******************************************************************* -#define EQTYPE_ALLLEN nil -#define EQTYPE_4LEN 1 - -//******************************************************************* - -implement oinit(cmdType,leftSide,rightSide,deffile,defline,defpos) -local eqType - - super:oinit() - this:cmdType :=cmdType - this:leftSide :=leftSide - this:rightSide :=rightSide - this:deffilelinepos :={deffile,defline,defpos} - - calcSorszam(this) - setNextToken(this) - - - if (this:cmdType==XTRTYPE_XTRANSLATE) - eqType:=EQTYPE_ALLLEN - elseif (this:cmdType==XTRTYPE_XCOMMAND) - eqType:=EQTYPE_ALLLEN - elseif (this:cmdType==XTRTYPE_TRANSLATE) - eqType:=EQTYPE_4LEN - elseif (this:cmdType==XTRTYPE_COMMAND) - eqType:=EQTYPE_4LEN - else - eqType:=EQTYPE_ALLLEN - endif - - evalLTokenList(this:leftSide,{|x| TOKEN.x:eqType:=eqType}) - -return this - -//******************************************************************* -static function evalLTokenList(tokenList,block) -// V‚gigmegy egy olyan tokenlist n, ami a bal oldalon  llhat. -local i - - // Mj.: Blokkokat nem lehet egym sba skatuly zni. - for i:=1 to len(tokenList) - if (TOKEN.tokenList[i]:id==TKID_MALTERSET) - aeval(MALTRSET.tokenList[i]:alterset,; - {|x| evalLTokenList(x,block)}) - else - eval(block,tokenList[i]) - endif - end for - -return nil - -//******************************************************************* -static function x2SetNextToken(prevToken,nextToken) -// A prevToken-be be llĄtja a nextToken-t, ha a a prevToken -// match marker. Ha a prevToken egy malterset, akkor minden -// elem‚re (az elemek token list k) meghĄvja az xSetNextToken()-t. -// Mj.: Egyenl“re nem figyeli, hogy a nextToken normal token-e (nem -// match marker ‚s nem malterset). -static idMatchMarkers:={; - TKID_REGULAR_MATCH_MARKER ,; - TKID_WILD_MATCH_MARKER ,; - TKID_EXT_EXPR_MATCH_MARKER ,; - TKID_LIST_MATCH_MARKER ,; - TKID_RESTRICTED_MATCH_MARKER ; -} -local i,alterset - - if (TOKEN.prevToken:id==TKID_MALTERSET) - alterset:=MALTRSET.prevToken:alterset - for i:=1 to len(alterset) - xSetNextToken(alterset[i],nextToken) - end for - elseif (C.MMARKER:isMatchMarker(prevToken) .and. nextToken!=nil) - MMARKER.prevToken:nextToken:=nextToken - endif -return nil - -//******************************************************************* -static function xSetNextToken(tokenList,nextToken) -// Az ”sszes match markerben be llĄtja a nextToken-t, ha van. -local i -local prevToken - - prevToken:=nil - for i:=1 to len(tokenList) - if (TOKEN.(tokenList[i]):id==TKID_URES) - // Kihagyjuk - else - if (prevToken!=nil) - x2SetNextToken(prevToken,tokenList[i]) - endif - prevToken:=tokenList[i] - endif - end for - if (prevToken!=nil) - x2SetNextToken(prevToken,nextToken) - endif - -return nil - -//******************************************************************* -static function setNextToken(this) -/* - Az ”sszes match markerben be llĄtja a nextToken-t, ha van. -*/ - xSetNextToken(this:leftSide) -return nil - -//******************************************************************* -static function xCollectMatchMarkers(tokenList,matchMarkers) -static idMatchMarkers:={; - TKID_REGULAR_MATCH_MARKER ,; - TKID_WILD_MATCH_MARKER ,; - TKID_EXT_EXPR_MATCH_MARKER ,; - TKID_LIST_MATCH_MARKER ,; - TKID_RESTRICTED_MATCH_MARKER ; -} -local i, j, alterset - - for i:=1 to len(tokenList) - if (TOKEN.tokenList[i]:id==TKID_MALTERSET) - alterset:=MALTRSET.tokenList[i]:alterset - for j:=1 to len(alterset) - xCollectMatchMarkers(alterset[j],matchMarkers) - end for - elseif (C.MMARKER:isMatchMarker(tokenList[i])) - aadd(matchMarkers,tokenList[i]) - endif - end for - -return nil - -//******************************************************************* -static function xSetResultMarkers(tokenList,matchMarkers,undefRMarkers) -// A tokenList-ben szerepl“ result markerekben be llĄtja a -// sorsz mot a matchMarkers-ben szerepl“ match markereknek -// megfelel“en. - -local i, j, alterset - - for i:=1 to len(tokenList) - if (TOKEN.tokenList[i]:id==TKID_RALTER) - xSetResultMarkers(RALTER.tokenList[i]:tokenList,; - matchMarkers,undefRMarkers) - elseif (C.RMARKER:isResultMarker(tokenList[i])) - if (!RMARKER.tokenList[i]:setMMIdxByMM(matchMarkers)) - // Nincs ilyen match token. - aadd(undefRMarkers,tokenList[i]) - endif - endif - end for -return nil - -//******************************************************************* -static function calcSorszam(this) -/* - - ™sszeszedi a match markereket. - - Minden match markerbe beĄrja a sorsz m t. - - Minden result marker-be beĄrja a hozz  tartoz˘ match - marker sorsz m t. - - Kisz molja h ny match marker van. -*/ -local matchMarkers,i - - matchMarkers:={} - xCollectMatchMarkers(this:leftSide,matchMarkers) - - for i:=1 to len(matchMarkers) - MMARKER.matchMarkers[i]:mNum:=i - end for - - this:numMatchMarkers:=len(matchMarkers) - - this:undefRMarkers:={} - xSetResultMarkers(this:rightSide,matchMarkers,this:undefRMarkers) - -return nil - -//******************************************************************* -implement printStr() -local i -local str - - if (this:cmdType==XTRTYPE_XTRANSLATE) - str:="xtranslate" - elseif (this:cmdType==XTRTYPE_XCOMMAND) - str:="xcommand" - elseif (this:cmdType==XTRTYPE_TRANSLATE) - str:="translate" - elseif (this:cmdType==XTRTYPE_COMMAND) - str:="command" - else - str:="xtranslate" - endif - - str:="#"+str+" " - - for i:=1 to len(this:leftSide) - str:=str+TOKEN.(this:leftSide[i]):getStr() - end for - - str+=" => " - - for i:=1 to len(this:rightSide) - str+=TOKEN.(this:rightSide[i]):getStr() - end for - -return str - -//******************************************************************* -static function iChange(iLevel,tokenList,paramValues,result) -/* - A result-ba beleteszi a tokenList alternatĄva helyettesĄt‚s‚t az - iLevel szinten. - Mj. Ha a tokenList nem egy alternatĄva, akkor ez nem alkalmazhat˘(!) - - A helyettesĄtend“k a paramValues-ban vannak. - A tokenList-ben nem lehet RALTER token. - - Ret: .t.: volt helyettesĄt‚s, .f. nem volt. -*/ - -local i,rLen,success - - rLen:=len(result) - success:=.f. - for i:=1 to len(tokenList) - if (TOKEN.tokenList[i]:id==TKID_RALTER) - // Hiba! - return .f. - elseif (C.RMARKER:isResultMarker(tokenList[i])) - if (2==RMARKER.tokenList[i]:changeByMMList(paramValues,result,iLevel)) - success:=.t. - endif - elseif (TOKEN.(tokenList[i]):id==TKID_URES) - aadd(result,TOKEN.(tokenList[i]):copyToken(TKID_URES," ")) - // outstd("Hopp2!") - else - aadd(result,tokenList[i]) - endif - end for - - if (!success) - asize(result,rLen) - endif - -return success - -//******************************************************************* -implement change(paramValues) -// paramvalues:={,...} -/* - A csere Łgy megy, hogy megynk a jobb oldalon, - ha nem '[]' k”z”tti result markert tal lunk, akkor behelyettesĄtjk - a hozz  tartoz˘ token list t. - - Ha '[]' k”z”tti tokeneket annyiszor Ąrjuk ki, amennyi a hozz  - tartoz˘ result markere csere list inak a maxim lis hossza. - - Ret: A csere eredm‚nye (egy token lista) vagy nil, ha nem lehetett - cser‚lni. -*/ -local i,j -local result:={} -local tokenList,alterTl - - tokenList:=this:rightSide - for i:=1 to len(tokenList) - if (TOKEN.tokenList[i]:id==TKID_RALTER) - alterTl:=RALTER.tokenList[i]:tokenList - j:=1 - while(iChange(j,alterTl,paramValues,result)) - j++ - end while - elseif (C.RMARKER:isResultMarker(tokenList[i])) - if (2!=RMARKER.tokenList[i]:changeByMMList(paramValues,result,1,.t.)) - return nil - endif - elseif (TOKEN.(tokenList[i]):id==TKID_URES) - aadd(result,TOKEN.(tokenList[i]):copyToken(TKID_URES," ")) - // outstd("Hopp!") - else - aadd(result,tokenList[i]) - endif - end for -return result - -//******************************************************************* - diff --git a/harbour/samples/cccppc/felbont.prg b/harbour/samples/cccppc/felbont.prg deleted file mode 100644 index 7b6f0e3052..0000000000 --- a/harbour/samples/cccppc/felbont.prg +++ /dev/null @@ -1,89 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// felbont.prg: Egy string felbont sa elv laszt˘ karakterek ment‚n. -// 1999, Csisz r Levente - -//******************************************************************* -function felbont(str,elvalasztok) -/* - Az str-t felbontja az 'elvalasztok' stringben lev“ karakterekn‚l, ‚s - ad egy t”mb”t, amiben az elemek vannak. - Ha az 'elvalasztok' nincs megadva, akkor " "+chr(9)-t t‚telez fel. - Az reseket kiveszi. - Mj.: A chr(9) a tab karakter. -*/ - -local t,e,i,pos,elem - - if (elvalasztok==nil) - elvalasztok:=" "+chr(9) - elseif (len(elvalasztok)<=0) - if (str=="") - return {} - else - return {str} - endif - endif - - e:=left(elvalasztok,1) - for i:=2 to len(elvalasztok) - str:=strtran(str,substr(elvalasztok,i,1),e) - end for - - t:={} - while(0 "BEVONAL\KI216001.021" - afn("BEVONAL\","KI216001.021") --> "BEVONAL\KI216001.021" - afn("A:","KI216001.021") --> "A:KI216001.021" - afn("","KI216001.021") --> "KI216001.021" - - - addFPath(fileDir,pathName) - Ha a pathName-ben nem abszolŁt path van, akkor a fileDir-t - el‚teszi. - - - extractFName( filename ) // file.ext --> file - Megadja a filename kieg‚szĄt“ n‚lkli r‚sz‚t. - - - baseFName( filename ) // path\file.ext --> file.ext - Megadja a filename nev‚t a path n‚lkl. - - - splitFName( pathName ) - "path\file.ext" --> {"path\","file.ext"} - A pathName-t felbontja path-ra ‚s name-re. - - Pl.: - "proba.prg" --> {"","proba.prg"} - "a:proba.prg" --> {"a:","proba.prg"} - "dir\proba.prg" --> {"dir\","proba.prg"} - "dir/proba.prg" --> {"dir/","proba.prg"} - - - - changeFExt(filename,kieg) - A kieg‚szĄt“t lecser‚li a kieg-re. - Pl. addKieg("haz.msk",".say") --> "haz.say" - Pl. addKieg("haz.",".say") --> "haz.say" - - - addFExt(filename,kieg) - Ha nincs kieg‚szĄt“, akkor a kieg-et hozz adja. - Pl. addEKieg("haz.msk",".say") --> "haz.msk" - Pl. addEKieg("haz",".say") --> "haz.say" - -********************************************************************/ -function afn(fileDir,fileName) - if (empty(fileDir)) - return fileName - elseif (right(filedir,1)==":" .or.; - right(filedir,1)=="\" .or.; - right(filedir,1)=="/") - return fileDir+fileName - endif -return fileDir+"\"+fileName - -********************************************************************* -function addFPath(fileDir,pathName) -// Ha a pathName-ben nem abszolŁt path van, akkor a fileDir-t -// el‚teszi. - if (empty(fileDir)) - return pathName - elseif (":"$pathName .or. left(pathName,1)$"\/") - return pathName - endif -return afn(fileDir,pathName) - -********************************************************************* -static function findRev(str,charSet) -// A charSet-ben lev“ karaktereket keresi visszafel‚ az str-ben -// Ret. pos, ha tal lt, 0, ha nem. -local i,w - - i:=len(str) - while (i>0) - if (0!=(w:=at(substr(str,i,1),charSet))) - return i - endif - i-- - end for -return 0 - -********************************************************************* -function extractFName( filename ) // file.ext --> file -// Megadja a filename kieg‚szĄt“ n‚lkli r‚sz‚t. -local i - if( empty(filename) ) - return "" - end - i:=findRev(fileName,".:\/") - if (i==0) - return fileName - endif - if (substr(fileName,i,1)=='.') - return left(fileName,i-1) - endif -return fileName - -********************************************************************* -function baseFName( filename ) // path\file.ext --> file.ext -// Megadja a filename nev‚t a path n‚lkl. -local i - if( empty(filename) ) - return "" - end - i:=findRev(fileName,":\/") - if (i==0) - return fileName - endif -return substr(fileName,i+1) - -********************************************************************* -function dirFName( filename ) // path\file.ext --> path -// Megadja a path-t a filename ‚s a z r˘ '\' n‚lkl. -local i - if( empty(filename) ) - return "" - end - i:=findRev(fileName,":\/") - if (i==0) - return "" - endif -return substr(fileName,1,i-1) - -********************************************************************* -function splitFName( pathName ) -// "path\file.ext" --> {"path\","file.ext"} -// A pathName-t felbontja path-ra ‚s name-re. -/* - Pl.: - "proba.prg" --> {"","proba.prg"} - "a:proba.prg" --> {"a:","proba.prg"} - "dir\proba.prg" --> {"dir\","proba.prg"} - "dir/proba.prg" --> {"dir/","proba.prg"} -*/ -local i - - if( empty(pathName) ) - return {"",""} - end - i:=findRev(pathName,":\/") - if (i==0) - return {"",pathName} - endif -return {left(pathName,i),substr(pathName,i+1)} - -********************************************************************* -function changeFExt(filename,kieg) -// A kieg‚szĄt“t lecser‚li a kieg-re. -// Pl. addKieg("haz.msk",".say") --> "haz.say" -// Pl. addKieg("haz.",".say") --> "haz.say" -local w - w:=ExtractFName(filename) - filename:=w+kieg -return filename - -********************************************************************* -function addFExt(filename,kieg) -// Ha nincs kieg‚szĄt“, akkor a kieg-et hozz adja. -// Pl. addEKieg("haz.msk",".say") --> "haz.msk" -// Pl. addEKieg("haz",".say") --> "haz.say" -local w - w:=ExtractFName(filename) - if (w==filename) - filename:=w+kieg - endif - -return filename - -********************************************************************* diff --git a/harbour/samples/cccppc/freader.cls b/harbour/samples/cccppc/freader.cls deleted file mode 100644 index 6018dc826b..0000000000 --- a/harbour/samples/cccppc/freader.cls +++ /dev/null @@ -1,61 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// freader.cls: Fil‚b“l karaktereket olvas˘ oszt ly. A CREADER-t“l -// ”r”k”l. -// 1999, Csisz r Levente - -class FREADER CREADER - - attrib path // Az olvasott fil‚ path-a. (Az fil‚ neve a - // name-ben van.) Mj.: A n‚vben is lehet path. - attrib fid // Az olvasott fil‚ azonosĄt˘ja. (Ha nyitva van) - - attrib buffer // A fil‚ olvas sakor a buffer. Ha nil, akkor - // EOF-on vagyunk. - attrib ibuffer // A fil‚ olvas sakor a bufferben a pozĄci˘. - - nmethod pathName() - // Megadja a teljes fil‚nevet (az el‚r‚si Łttal egytt). - // Ha a fileName abszolŁt n‚v ('/' kezd“dik vagy (dos-on) - // drive n‚v van benne), akkor a path-t nem teszi el‚. - - nmethod open(path,fileName) - // Megnyitja az adott fil‚t az adott path-al. - // Mj.: A fileName-ben is lehet path. - // Ret: this, ha sikerlt a megnyit s, nil, ha nem. - // Hiba eset‚n a this:error-t be llĄtja. - - nmethod close() - // Lez rja a fil‚t. Ha a nincs nyitva, nem csin l semmit. - - nmethod dOpen(pathArray,fileName) - // V‚gigpr˘b lgatja a path-okat, ‚s amelyikben megtal lja a - // fil‚t, akkor abban megpr˘b lja megnyitni. - // Mj.: A fileName-ben is lehet path. - // Ret: this, ha sikerlt a megnyit s, nil, ha nem. - // Hiba eset‚n a this:error-t be llĄtja. - - nmethod isOpen() - // Igaz, ha a fil‚ nyitva van. - - rmethod readItem() - // Olvas egy karaktert. - // Ret: A karakter, ha OK, nil, ha v‚ge van a streamnek, vagy ha - // hiba volt. - - rmethod destruct() - // T”rli az objektumhoz kapcsol˘d˘ kls“ eszk”z”ket. (Pl. lez rja - // a fil‚t etc.) - - rmethod oinit(errorStream) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(errorStream) - - rmethod oinitclass() - diff --git a/harbour/samples/cccppc/freader.och b/harbour/samples/cccppc/freader.och deleted file mode 100644 index d8e98ab289..0000000000 --- a/harbour/samples/cccppc/freader.och +++ /dev/null @@ -1,342 +0,0 @@ -// FREADER.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_CREADER_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "CREADER.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "CREADER.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "CREADER.och" -#endif // _STRICT_PARENT_ -#endif // CA_CREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _FREADER_OCH_ -#define _FREADER_OCH_ - - -#xtranslate FREADER.:name => \[CA_OBJECT_N+1\] -#xtranslate FREADER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate FREADER.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate FREADER.:line => \[CA_READER_N+1\] -#xtranslate FREADER.:pos => \[CA_READER_N+2\] - - -#xtranslate FREADER.:oinit => (OBJGEN.():(4)) -#xtranslate FREADER.:getclass => (OBJGEN.():(5)) -#xtranslate FREADER.:isclass => (OBJGEN.():(6)) -#xtranslate FREADER.:getattrib => (OBJGEN.():(7)) -#xtranslate FREADER.:setattrib => (OBJGEN.():(8)) -#xtranslate FREADER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate FREADER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate FREADER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate FREADER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate FREADER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate FREADER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate FREADER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate FREADER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate FREADER.:getfile => (OBJGEN.():(CM_READER_N+1)) -#xtranslate FREADER.:getline => (OBJGEN.():(CM_READER_N+2)) -#xtranslate FREADER.:getpos => (OBJGEN.():(CM_READER_N+3)) - - -#xtranslate FREADER.:path => \[CA_CREADER_N+1\] -#xtranslate FREADER.:fid => \[CA_CREADER_N+2\] -#xtranslate FREADER.:buffer => \[CA_CREADER_N+3\] -#xtranslate FREADER.:ibuffer => \[CA_CREADER_N+4\] - -// Specifik lva: pathname() -// Specifik lva: open(path,fileName) -// Specifik lva: close() -// Specifik lva: dopen(pathArray,fileName) -// Specifik lva: isopen() -// ™r”k”lve: readitem() -// ™r”k”lve: destruct() -// ™r”k”lve: oinit(errorStream) - -#xtranslate FREADER.:pathname => (OBJGEN.():(CM_CREADER_N+1)) -#xtranslate FREADER.:open => (OBJGEN.():(CM_CREADER_N+2)) -#xtranslate FREADER.:close => (OBJGEN.():(CM_CREADER_N+3)) -#xtranslate FREADER.:dopen => (OBJGEN.():(CM_CREADER_N+4)) -#xtranslate FREADER.:isopen => (OBJGEN.():(CM_CREADER_N+5)) -// ™r”k”lve: readitem() -// ™r”k”lve: destruct() -// ™r”k”lve: oinit(errorStream) - -#endif // _FREADER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_FREADER_N -#define CA_FREADER_N CA_CREADER_N+4 -#define CM_FREADER_N CM_CREADER_N+5 -#endif // CA_FREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _FREADERCLASS_OCH_ -#define _FREADERCLASS_OCH_ - -********************************************************************** -#xtranslate C.FREADER: => (FREADERCLASS.clFREADER():) -#xtranslate C.FREADER:self() => (clFREADER()) - - -#xtranslate FREADERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate FREADERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate FREADERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate FREADERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate FREADERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate FREADERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate FREADERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate FREADERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate FREADERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate FREADERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate FREADERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate FREADERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate FREADERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate FREADERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate FREADERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate FREADERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate FREADERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate FREADERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate FREADERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate FREADERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate FREADERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate FREADERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate FREADERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(errorStream) -// ™r”k”lve: oinitclass() - -// ™r”k”lve: onew(errorStream) -// ™r”k”lve: oinitclass() - -#endif // _FREADERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_FREADERCLASS_N -#define CA_FREADERCLASS_N CA_CREADERCLASS_N+0 -#define CM_FREADERCLASS_N CM_CREADERCLASS_N+0 -#endif // CA_FREADERCLASS_N - - -********************************************************************** -#ifdef _FREADER_PRG_ -#ifndef _FREADER_PRG_OCH_ -#define _FREADER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => FREADER.(othis): -#xtranslate thisclass: => FREADERCLASS.(this:getClass()): -#define CTHIS FREADER - - -********************************************************************** -#xtranslate this: => FREADER.(this): - -#xcommand implement pathname() => static function pathname(this) -#xcommand implement open(path,fileName) => ; - static function open(this,path,fileName) -#xcommand implement close() => static function close(this) -#xcommand implement dopen(pathArray,fileName) => ; - static function dopen(this,pathArray,fileName) -#xcommand implement isopen() => static function isopen(this) -#xcommand implement readitem() => static function readitem(this) -#xcommand implement destruct() => static function destruct(this) -#xcommand implement oinit(errorStream) => ; - static function oinit(this,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export pathname() => function pathname(this) -#xcommand implement export open(path,fileName) => ; - function open(this,path,fileName) -#xcommand implement export close() => function close(this) -#xcommand implement export dopen(pathArray,fileName) => ; - function dopen(this,pathArray,fileName) -#xcommand implement export isopen() => function isopen(this) -#xcommand implement export readitem() => function readitem(this) -#xcommand implement export destruct() => function destruct(this) -#xcommand implement export oinit(errorStream) => ; - function oinit(this,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(8)) -#xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+8)) -#xtranslate super:getfile => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+1)) -#xtranslate super:getline => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+2)) -#xtranslate super:getpos => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+3)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_CREADER_N+1)]:={|this| pathname(this)} - pOsztaly[(CM_CREADER_N+2)]:={|this,path,fileName| open(this,path,fileName)} - pOsztaly[(CM_CREADER_N+3)]:={|this| close(this)} - pOsztaly[(CM_CREADER_N+4)]:={|this,pathArray,fileName| dopen(this,pathArray,fileName)} - pOsztaly[(CM_CREADER_N+5)]:={|this| isopen(this)} - pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)} - pOsztaly[(CM_OBJECT_N+8)]:={|this| destruct(this)} - pOsztaly[(4)]:={|this,errorStream| oinit(this,errorStream)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_CREADER_N+1-CA_NIL_N] := {CA_CREADER_N+1,'path', } - ta[CA_CREADER_N+2-CA_NIL_N] := {CA_CREADER_N+2,'fid', } - ta[CA_CREADER_N+3-CA_NIL_N] := {CA_CREADER_N+3,'buffer', } - ta[CA_CREADER_N+4-CA_NIL_N] := {CA_CREADER_N+4,'ibuffer', } - - tm[(CM_CREADER_N+1)-CM_NIL_N] := {(CM_CREADER_N+1),'pathname','',nil} - tm[(CM_CREADER_N+2)-CM_NIL_N] := {(CM_CREADER_N+2),'open','path,fileName',nil} - tm[(CM_CREADER_N+3)-CM_NIL_N] := {(CM_CREADER_N+3),'close','',nil} - tm[(CM_CREADER_N+4)-CM_NIL_N] := {(CM_CREADER_N+4),'dopen','pathArray,fileName',nil} - tm[(CM_CREADER_N+5)-CM_NIL_N] := {(CM_CREADER_N+5),'isopen','',nil} - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil} - tm[(CM_OBJECT_N+8)-CM_NIL_N] := {(CM_OBJECT_N+8),'destruct','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','errorStream',nil} -return nil - -#ifndef _NO_CLFREADER_ -#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 clFREADER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcFREADERCLASS():onew(; - clCREADER(),; - "FREADER",; - CA_FREADER_N,; - CM_FREADER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLFREADER_ - -#ifndef _NO_FREADERCLASS_ - -********************************************************************** -#xtranslate class: => FREADERCLASS.(class): - -#xcommand cimplement onew(errorStream) => ; - static function onew(class,errorStream) -#xcommand cimplement oinitclass() => static function oinitclass(class) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(errorStream) => ; - function onew(class,errorStream) -#xcommand cimplement export oinitclass() => function oinitclass(class) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,errorStream| onew(class,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 m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','errorStream',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil} -return nil - -********************************************************************** -#ifndef _NO_MCFREADERCLASS_ -#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 mcFREADERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcCREADERCLASS(),; - "FREADERCLASS",; - CA_FREADERCLASS_N,; - CM_FREADERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCFREADERCLASS_ - -#endif // _NO_FREADERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(errorStream) -local o:=class:ocreate() - - FREADER.o:oinit(errorStream) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(errorStream) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _FREADER_PRG_OCH_ -#endif // _FREADER_PRG_ diff --git a/harbour/samples/cccppc/freader.prg b/harbour/samples/cccppc/freader.prg deleted file mode 100644 index b10f570a90..0000000000 --- a/harbour/samples/cccppc/freader.prg +++ /dev/null @@ -1,183 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// freader.prg: Az freader oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -#include "fileio.ch" - -//******************************************************************* -// #include "prserr.ch" - -//******************************************************************* -#define FRERRGROUP "freader" -#define FRERR_REOPEN {FRERRGROUP,"reopen"} -#define FRERR_NOTFOUND {FRERRGROUP,"notfound"} -#define FRERR_OPEN {FRERRGROUP,"open"} -#define FRERR_NOTOPENREAD {FRERRGROUP,"notopenread"} -#define FRERR_READ {FRERRGROUP,"read"} -// #define FRERR_ {FRERRGROUP,""} - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "prserr.och" - -//******************************************************************* -#define _FREADER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "freader.och" - -//******************************************************************* - -implement oinit(errorStream) - super:oinit("",errorStream) -return this - -//******************************************************************* -implement pathName() -return addFPath(this:path,this:name) - -//******************************************************************* -cimplement oinitclass() -// local errPrintBlock - - superclass:oinitclass() - - /* - errPrintBlock:={|prserr,errStr|; - padr(PRSERR.prserr:file+":",20)+; - " Error: "+errStr+; - if(PRSERR.prserr:params==nil,; - "",; - ", os error code: "+toStr(PRSERR.prserr:params)); - } - */ - - C.PRSERR:registerError(FRERR_REOPEN,; - "Should not reopen a file in an FREADER object!") - C.PRSERR:registerError(FRERR_NOTFOUND,; - "File not found") - C.PRSERR:registerError(FRERR_OPEN,; - "Open error. OS error code: $1") - C.PRSERR:registerError(FRERR_NOTOPENREAD,; - "Read error, file is not open!") - C.PRSERR:registerError(FRERR_READ,; - "Read error. OS error code: $1") -return class - -//******************************************************************* -implement open(path,fileName) -local wFid,pName - - if (this:fid!=nil) - aadd(this:errorStream,C.PRSERR:onew(FRERR_REOPEN,nil,this:pathName(),0,0)) - return nil - endif - this:name:=fileName - this:path:=path - - this:buffer:="" - this:ibuffer:=1 - - pName:=this:pathName() - - if (!file(pName)) - aadd(this:errorStream,C.PRSERR:onew(FRERR_NOTFOUND,nil,this:pathName(),0,0)) - return nil - endif - if (-1==(wFid:=fopen(pName,FO_READ))) - // this:error:={this:name,FRERR_OPEN,"Open error, os error code: "+toStr(ferror())} - aadd(this:errorStream,C.PRSERR:onew(FRERR_OPEN,{toStr(ferror())},this:pathName(),0,0)) - return nil - endif - this:fid:=wFid - -return this - -//******************************************************************* -implement close() - - if (this:fid!=nil) - fclose(this:fid) - this:fid:=nil - endif -return nil - -//******************************************************************* -implement isOpen() -return this:fid!=nil - -//******************************************************************* -static function findFileInDir(pathArray,fileName) -local i - - for i:=1 to len(pathArray) - if (file(addFPath(pathArray[i],fileName))) - return {pathArray[i],fileName} - endif - end for -return nil - -//******************************************************************* -implement dOpen(pathArray,fileName) -local pn - - if (nil==(pn:=findFileInDir(pathArray,fileName))) - return nil - endif -return this:open(pn[1],pn[2]) - -//******************************************************************* -implement destruct() - this:close() -return nil - -//******************************************************************* -implement readItem() -local c,buf,n -local wErr - - if (this:fid==nil) - // this:error:={this:name,FRERR_READ,"Read error, file is not open!"} - aadd(this:errorStream,C.PRSERR:onew(FRERR_NOTOPENREAD,nil,this:pathName(),0,0)) - return nil - endif - - if (this:buffer==nil) - // EOF - return nil - endif - - if (this:ibuffer>len(this:buffer)) - - buf:=space(1024) - - if (0==(n:=fread(this:fid,@buf,len(buf)))) - // Nem lehet meg llapĄtani, hogy fil‚ v‚ge vagy hiba, Ągy meg - // kell n‚zni az ferror()-t. - this:buffer:=nil - if (0!=(wErr:=ferror())) - // this:error:={this:name,FRERR_READ,"Read error, os error code: "+toStr(ferror())} - aadd(this:errorStream,C.PRSERR:onew(FRERR_READ,{toStr(wErr)},this:pathName(),0,0)) - endif - return nil - endif - - this:buffer:=left(buf,n) - this:ibuffer:=1 - - endif - - c:=substr(this:buffer,this:ibuffer,1) - this:ibuffer:=this:ibuffer+1 - -return c - -//******************************************************************* - - diff --git a/harbour/samples/cccppc/guesseol.prg b/harbour/samples/cccppc/guesseol.prg deleted file mode 100644 index 63cafc59c5..0000000000 --- a/harbour/samples/cccppc/guesseol.prg +++ /dev/null @@ -1,35 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// guesseol.prg: A kital lt sorv‚gjel t rol sa. -// 1999, Csisz r Levente - -********************************************************************* -static gEol -static gEol_preSet - -********************************************************************* -function setPGuessEol(eol_preSet) - if (eol_preSet!=nil) - gEol_preSet:=eol_preSet - endif -return nil - -********************************************************************* -function setGuessEol(eol) - if (gEol==nil) - gEol:=eol - endif -return nil - -********************************************************************* -function guessedEol() - if (gEol==nil) - return gEol_preset - endif -return gEol - -********************************************************************* - diff --git a/harbour/samples/cccppc/hparser.ch b/harbour/samples/cccppc/hparser.ch deleted file mode 100644 index 216721f4de..0000000000 --- a/harbour/samples/cccppc/hparser.ch +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// hparser.ch: Amiket a hparser.prg-nek ‚s a hparser2.prg-nek is -// l tnia kell. -// 1999, Csisz r Levente - -//******************************************************************* - -#define HPRERRGROUP "hparser" - -#define HPRERR_INVALIDMN {HPRERRGROUP,"invalidmn"} -#define HPRERR_SDEFINE {HPRERRGROUP,"sdefine"} -#define HPRERR_LDEFINE {HPRERRGROUP,"ldefine"} -#define HPRERR_PDEFINE {HPRERRGROUP,"pdefine"} -#define HPRERR_SUNDEF {HPRERRGROUP,"sundef"} -#define HPRERR_MDUPLICATE {HPRERRGROUP,"mduplicate"} -#define HPRERR_SXTRANSLATE {HPRERRGROUP,"sxtranslate"} -#define HPRERR_XTRANSLATEEOL {HPRERRGROUP,"xtranslateeol"} -#define HPRERR_XTRRNESTED {HPRERRGROUP,"xtrrnested"} -#define HPRERR_XTRLUNCLOSED {HPRERRGROUP,"xtrlunclosed"} -#define HPRERR_XTRUNDEFRM {HPRERRGROUP,"xtrundefrm"} -#define HPRERR_IFDEFNL {HPRERRGROUP,"ifdefnl"} -#define HPRERR_SIFDEF {HPRERRGROUP,"sifdef"} -#define HPRERR_ELSE {HPRERRGROUP,"else"} -#define HPRERR_ELSE2 {HPRERRGROUP,"else2"} -#define HPRERR_ENDIF {HPRERRGROUP,"endif"} -#define HPRERR_ENDIFMISSING {HPRERRGROUP,"endifmissing"} -#define HPRERR_INCLUDE {HPRERRGROUP,"include"} -#define HPRERR_INCLUDEOPEN {HPRERRGROUP,"includeopen"} -#define HPRERR_INCLUDEFIND {HPRERRGROUP,"includefind"} -#define HPRERR_INCLUDENEST {HPRERRGROUP,"includenest"} -#define HPRERR_USER {HPRERRGROUP,"user"} -// #define HPRERR_ {HPRERRGROUP,""} - -//******************************************************************* -// Ilyen ifdef-ek lehets‚gesek. -#define IFDEFTYPE_IFDEF "ifdef" -#define IFDEFTYPE_IFNDEF "ifndef" -#define IFDEFTYPE_NONE "none" - -//******************************************************************* -// Egy #ifdef elemz‚se k”zben melyik  gon (if vagy else) vagyunk. - -#define IFB_IFBRANCH "ifbranch" -#define IFB_ELSEBRANCH "elsebranch" -#define IFB_NONEBRANCH "nonebranch" - -//******************************************************************* - diff --git a/harbour/samples/cccppc/hparser.cls b/harbour/samples/cccppc/hparser.cls deleted file mode 100644 index 3977758fb7..0000000000 --- a/harbour/samples/cccppc/hparser.cls +++ /dev/null @@ -1,126 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// hparser.cls: Hessmark parser: a '#'-al kezd“d“ sorok elemz‚se. -// 1999, Csisz r Levente - -// A PARSER-t“l ”r”k”l. -// Ez az elemz“ v‚gzi el a '#'-al kezd“d“ sorok elemz‚s‚t. -// A n‚v ‚s a sor (lparser) elemz“  ltal k‚szĄtett tokeneket v r az -// inputr˘l. - -// A #-os sorokat feldolgozza, a t”bbit  tengedi. - -class HPARSER PARSER - - attrib soreleje - attrib defdict - attrib xtrdict - attrib ifStack - attrib branch // .t., ha egy #if igaz  g n vagyunk, vagy nem - // vagyunk if-ben, .f., ha egy #if hamis  g n - // vagyunk, nil, ha egy if hamis  g n belli - // if-en vagyunk. - - attrib inclObj // Egy objektum, amiben vezetjk az include - // fil‚ket. - - attrib lastEos // Az utols˘ eos token. - - rmethod readItem() - // Olvas egy elemet. - // Ret: Az elem, ha OK, nil, ha v‚ge van a streamnek, vagy ha - // hiba volt. - - // nmethod addBuf(anItem) - // Hozz ad egy elemet a pufferhez. Az elem lehet speci lis is. - - // nmethod getStr() - // Megadja a buf tartalm t stringk‚nt. - // A nem stringeket eldobja. - - // nmethod rds() - // Olvas egy karatert a readInput()-al a buf-ba. - // Az olvasott ‚rt‚ket a buf-ba is beleteszi, ha az nem az eof. - - // nmethod unrds(n) - // A buf utols˘ n elem‚t visszateszi az inputra. Az item-et t”rli. - // Azt adja vissza, hogy h ny elemet sikerlt visszatenni. - // Ha az n nil, akkor egyet tesz vissza. - - nmethod parseLine() - // Ez v‚gzi a t‚nyleges elemz‚st, rekurzĄvan is lehet hĄvni. - // A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - - nmethod parseFalseLine() - // Egy #if hamis  g n v‚gzi az elemz‚st. - // A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - - nmethod parseDefine{hpr_prsDefine}(mnameToken) - // # define elemz“. - - nmethod parseUndef{hpr_prsUndef}(mnameToken) - // # undef elemz“. - - nmethod parseTranslate(mNameToken) - // # xtranslate, etc elemz“. - - nmethod parseIfdef{hpr_prsIfdef}(mnameToken,ifdefType) - - nmethod parseElse{hpr_prsElse}(mnameToken) - - nmethod parseEndif{hpr_prsEndif}(mnameToken) - - nmethod parseInclude(mnameToken) - - nmethod parseLTranslate(mnameToken) - // A # xtranslate bal oldal nak az elemz“je. - - nmethod parseRTranslate(mnameToken) - // A # xtranslate jobb oldal nak az elemz“je. - - nmethod addDefine{hpr_addDefine}(mnameToken,name,params) - // Felvesz a #define sz˘t rba egy elemet name n‚ven. - // A definĄci˘ t”rzse a parserBuffer-ben van. - // Az mnameToken jelzi, hogy hol volt a definĄci˘. - // Ha a n‚v m r l‚tezik, akkor az errorGen-el legy rt egy - // hiba tokent a az mnameToken-b“l. - - nmethod addXTranslate(mnameToken,leftSide,rightSide) - // nmethod addXTranslate{hpr_addXTranslate}(mnameToken,leftSide,rightSide) - // Felvesz a #xtranslate sz˘t rba egy elemet. - // Az mnameToken jelzi, hogy hol volt a definĄci˘. - - nmethod sorNyel(kiirBlock) - // T”rli a parserBuffer-t, majd a sor v‚g‚ig lenyeli az item-eket. - // A sorv‚gjelet a parserpuffer-ben hagyja. - // Ha a kiirBlock egy block, akkor a token stringeket  tadja neki. - - nmethod errorgen(token,errorCode,params) - // Kiad egy hibazenetet. Az zenet helye a token-ben specifik lt - // hely lesz. - // A params lehet nil is. - - nmethod incompErrorgen(token,errorcode,params) - // Ez egy olyan hiba, amit csak akkor kell kiadni, ha pontosan - // ut nozni akarjuk a specifik ci˘t. M s sz˘val itt a spec. rossz - // ‚s mi csin ln nk/csin ljuk j˘l. Egy logikai ‚rt‚kkel t‚r - // vissza, ha igaz, akkor a hibazenet ki van adva, ha hamis, - // akkor a hibazetet nem adta ki (lehet folytatni). - // A param‚terez‚se megegyezik az errorgen()-el. - - nmethod chkEndOFFile() - // Elv‚gzi a szks‚ges ellen“rz‚seket a fil‚ v‚g‚n. - // (Lez ratlan #if, etc.) - - rmethod oinit(inputReader,name,defDict,xtrDict,inclObj,errorStream) - -metaclass - - rmethod onew(inputReader,name,defDict,xtrDict,inclObj,errorStream) - - - rmethod oinitclass() - diff --git a/harbour/samples/cccppc/hparser.och b/harbour/samples/cccppc/hparser.och deleted file mode 100644 index da04874295..0000000000 --- a/harbour/samples/cccppc/hparser.och +++ /dev/null @@ -1,459 +0,0 @@ -// 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.:name => \[CA_OBJECT_N+1\] -#xtranslate HPARSER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate HPARSER.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate HPARSER.:inputreader => \[CA_READER_N+1\] -#xtranslate HPARSER.:item => \[CA_TREADER_N+1\] -#xtranslate HPARSER.:parserbuffer => \[CA_TREADER_N+2\] - - -#xtranslate HPARSER.:oinit => (OBJGEN.():(4)) -#xtranslate HPARSER.:getclass => (OBJGEN.():(5)) -#xtranslate HPARSER.:isclass => (OBJGEN.():(6)) -#xtranslate HPARSER.:getattrib => (OBJGEN.():(7)) -#xtranslate HPARSER.:setattrib => (OBJGEN.():(8)) -#xtranslate HPARSER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate HPARSER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate HPARSER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate HPARSER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate HPARSER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate HPARSER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate HPARSER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate HPARSER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate HPARSER.:readinput => (OBJGEN.():(CM_READER_N+1)) -#xtranslate HPARSER.:unreadinput => (OBJGEN.():(CM_READER_N+2)) -#xtranslate HPARSER.:addinputreader => (OBJGEN.():(CM_READER_N+3)) -#xtranslate HPARSER.:putparserbuffer => (OBJGEN.():(CM_TREADER_N+1)) -#xtranslate HPARSER.:getparserbuffer => (OBJGEN.():(CM_TREADER_N+2)) -#xtranslate HPARSER.:unputparserbuffer => (OBJGEN.():(CM_TREADER_N+3)) -#xtranslate HPARSER.:ungetparserbuffer => (OBJGEN.():(CM_TREADER_N+4)) -#xtranslate HPARSER.:clearparserbuffer => (OBJGEN.():(CM_TREADER_N+5)) -#xtranslate HPARSER.:rds => (OBJGEN.():(CM_TREADER_N+6)) -#xtranslate HPARSER.:unrds => (OBJGEN.():(CM_TREADER_N+7)) -#xtranslate HPARSER.:strparserbuffer => (OBJGEN.():(CM_TREADER_N+8)) -#xtranslate HPARSER.:arrayparserbuffer => (OBJGEN.():(CM_TREADER_N+9)) - - -#xtranslate HPARSER.:soreleje => \[CA_PARSER_N+1\] -#xtranslate HPARSER.:defdict => \[CA_PARSER_N+2\] -#xtranslate HPARSER.:xtrdict => \[CA_PARSER_N+3\] -#xtranslate HPARSER.:ifstack => \[CA_PARSER_N+4\] -#xtranslate HPARSER.:branch => \[CA_PARSER_N+5\] -#xtranslate HPARSER.:inclobj => \[CA_PARSER_N+6\] -#xtranslate HPARSER.:lasteos => \[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.:parseline => (OBJGEN.():(CM_PARSER_N+1)) -#xtranslate HPARSER.:parsefalseline => (OBJGEN.():(CM_PARSER_N+2)) -#xtranslate HPARSER.:parsedefine => (OBJGEN.():(CM_PARSER_N+3)) -#xtranslate HPARSER.:parseundef => (OBJGEN.():(CM_PARSER_N+4)) -#xtranslate HPARSER.:parsetranslate => (OBJGEN.():(CM_PARSER_N+5)) -#xtranslate HPARSER.:parseifdef => (OBJGEN.():(CM_PARSER_N+6)) -#xtranslate HPARSER.:parseelse => (OBJGEN.():(CM_PARSER_N+7)) -#xtranslate HPARSER.:parseendif => (OBJGEN.():(CM_PARSER_N+8)) -#xtranslate HPARSER.:parseinclude => (OBJGEN.():(CM_PARSER_N+9)) -#xtranslate HPARSER.:parseltranslate => (OBJGEN.():(CM_PARSER_N+10)) -#xtranslate HPARSER.:parsertranslate => (OBJGEN.():(CM_PARSER_N+11)) -#xtranslate HPARSER.:adddefine => (OBJGEN.():(CM_PARSER_N+12)) -#xtranslate HPARSER.:addxtranslate => (OBJGEN.():(CM_PARSER_N+13)) -#xtranslate HPARSER.:sornyel => (OBJGEN.():(CM_PARSER_N+14)) -#xtranslate HPARSER.:errorgen => (OBJGEN.():(CM_PARSER_N+15)) -#xtranslate HPARSER.:incomperrorgen => (OBJGEN.():(CM_PARSER_N+16)) -#xtranslate HPARSER.:chkendoffile => (OBJGEN.():(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: => (HPARSERCLASS.clHPARSER():) -#xtranslate C.HPARSER:self() => (clHPARSER()) - - -#xtranslate HPARSERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate HPARSERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate HPARSERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate HPARSERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate HPARSERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate HPARSERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate HPARSERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate HPARSERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate HPARSERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate HPARSERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate HPARSERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate HPARSERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate HPARSERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate HPARSERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate HPARSERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate HPARSERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate HPARSERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate HPARSERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate HPARSERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate HPARSERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate HPARSERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate HPARSERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate HPARSERCLASS.:isinheritfrom => (OBJGEN.():(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: => HPARSER.(othis): -#xtranslate thisclass: => HPARSERCLASS.(this:getClass()): -#define CTHIS HPARSER - - -********************************************************************** -#xtranslate this: => HPARSER.(this): - -#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 m–veleti 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 m–veleteivel. - 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: => HPARSERCLASS.(class): - -#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 m–veleti 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 m–veleteivel. - - 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_ diff --git a/harbour/samples/cccppc/hparser.prg b/harbour/samples/cccppc/hparser.prg deleted file mode 100644 index 3547f2aa7d..0000000000 --- a/harbour/samples/cccppc/hparser.prg +++ /dev/null @@ -1,1541 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// hparser.prg: Hessmark parser(1): a '#'-al kezd“d“ sorok elemz‚se. -// 1999, Csisz r Levente - -/* - 1999.05.15 - - - #define, #xtranslate elemz‚se. - - 1999.04.22 - - Elemzi a #define sorokat, ‚s a makr˘kat elhelyezi egy - sz˘t rban. - - - Ami nincs: - 1. Az error tokeneket ki kellene v logatni, ‚s a v‚g‚n - odatenni az output-ra. - - 2. A cr-lf-et most m‚g az inputon (az creader:read()-ban - lf-re konvert lja, mert a parsebuffer Łjra sz‚tszedi - cr karakterre ‚s lf karakterre. - Ez nem j˘, m sik megold st kell keresni. - - 3. A t”bbi # utasĄt st implement lni kell. - - 4. A #define makr˘k v‚grehajt s t meg kell Ąrni - (nem felt‚tlenl itt!) -*/ - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#define _STRICT_PARENT_ -#include "token.och" -#include "mmarker.och" -#include "rmarker.och" -#include "maltrset.och" -#include "rsmmarkr.och" -#include "ralter.och" -// #include "edefdict.och" -// #include "defdict.och" -#include "extrdict.och" -#include "xtrdict.och" -// #include "freader.och" -#include "incl.och" -#include "prserr.och" -//******************************************************************* -// #include "cr_lf.ch" -#include "ctoken.ch" -// #include "prserr.ch" - -//******************************************************************* -#include "hparser.ch" - -//******************************************************************* -#define _HPARSER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "hparser.och" - -#undef ID_STRING -//******************************************************************* -// ™sszehasonlĄtja a this:item-et egy karaterrel. -#define eqItemChar(aChar) (valtype(this:item)=="C" .and. ; - this:item==(aChar)) - -//******************************************************************* -implement oinit(inputReader,name,defDict,xtrDict,inclObj,errorStream) - - super:oinit(inputReader,name,errorStream) - this:soreleje:=.t. - // this:errorItem:=nil - this:defdict:=defDict//C.DEFDICT:onew() - this:xtrdict:=xtrDict//C.XTRDICT:onew() - this:ifStack:={} - this:branch:=.t. - this:inclObj:=inclObj - // this:errorStream:=errorStream - -return this - -//******************************************************************* -cimplement oinitclass() - - C.PRSERR:registerError(HPRERR_INVALIDMN ,; - "Invalid name follows '#': $1") - C.PRSERR:registerError(HPRERR_SDEFINE ,; - "Syntax error in #define") - C.PRSERR:registerError(HPRERR_LDEFINE ,; - "Label missing in #define") - C.PRSERR:registerError(HPRERR_PDEFINE ,; - "Comma or right parenthesis missing in #define") - C.PRSERR:registerError(HPRERR_SUNDEF ,; - "Error in #undef"/*"Label missing in #undef"*/) - C.PRSERR:registerError(HPRERR_MDUPLICATE ,; - "Duplicate #define: $1, $2") - C.PRSERR:registerError(HPRERR_SXTRANSLATE,; - "Syntax error in #xtranslate/#xcommand/#translate/#command") - C.PRSERR:registerError(HPRERR_XTRANSLATEEOL,; - "Not expected end of line in #xtranslate/#xcommand/#translate/#command") - C.PRSERR:registerError(HPRERR_XTRRNESTED,; - "Nested [] in the right side of #xtranslate/#xcommand/#translate/#command") - C.PRSERR:registerError(HPRERR_XTRLUNCLOSED,; - "Unclosed [] in the left side of #xtranslate/#xcommand/#translate/#command") - C.PRSERR:registerError(HPRERR_XTRUNDEFRM,; - "Result marker not found in #xtranslate/#xcommand/#translate/#command's match markers: $0") - C.PRSERR:registerError(HPRERR_IFDEFNL ,; - "Label missing in #ifdef/#ifndef") - C.PRSERR:registerError(HPRERR_SIFDEF ,; - "Syntax error in #ifdef/#ifndef") - C.PRSERR:registerError(HPRERR_ELSE ,; - "#else does not match #if") - C.PRSERR:registerError(HPRERR_ELSE2 ,; - "Duplicated #else") - C.PRSERR:registerError(HPRERR_ENDIF ,; - "#endif does not match #if") - C.PRSERR:registerError(HPRERR_ENDIFMISSING,; - "#endif missing at end of file") - C.PRSERR:registerError(HPRERR_INCLUDE ,; - "Bad or missing filename in #include") - C.PRSERR:registerError(HPRERR_INCLUDEOPEN,; - "Can't open include file: $1") - C.PRSERR:registerError(HPRERR_INCLUDEFIND,; - "Can't find include file: $1") - C.PRSERR:registerError(HPRERR_INCLUDENEST,; - "Too many nested include: $1") - C.PRSERR:registerError(HPRERR_USER,; - "#error $1") - -return class - -//******************************************************************* -implement readItem() -local w,tkId,tkStr - - /* - Olvasunk a pufferb“l. Ha kirlt, akkor: - - - ha sorelej‚n vagyunk, akkor hĄvjuk a parseLine()-t. - Ez a sorv‚gjelet mindig a pufferben hagyja, hacsak nincs v‚ge - a fil‚nek. - - ha sor k”zep‚n vagyunk, akkor olvasunk, ‚s megn‚zzk, hogy sor - v‚g‚re jutottunk-e. - - Probl‚ma: Ha egy fil‚t lez runk, ‚s van benne lez ratlan if, - akkor nem ad hibajelz‚st. - */ - - if (nil!=(w:=this:getParserBuffer())) - // Nem kell csin lni semmit. - elseif (this:soreleje) - // Ez beolvassa az eg‚sz sort. - if (this:branch==.t.) - this:parseLine() - else - this:parseFalseLine() - endif - w:=this:getParserBuffer() - elseif (this:branch==.t.) - if (nil!=(w:=super:readInput())) - tkId:=TOKEN.w:id - tkStr:=TOKEN.w:str - if (tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";")) - this:soreleje:=.t. - endif - endif - else - this:sorNyel() - w:=this:getParserBuffer() - this:soreleje:=.t. - endif - - if (w!=nil .and. TOKEN.w:id==TKID_EOS) - this:lastEos:=w - endif -return w - -//******************************************************************* - -//******************************************************************* -implement parseLine() -// Csak akkor szabad hĄvni, ha a parseBuffer res ‚s sor elej‚n -// vagyunk. -local state,tkId,tkStr -#ifdef ID_STRING - #define ST_L_START "start" - #define ST_L_HMARK "hessmark" -#else - #define ST_L_START 1 - #define ST_L_HMARK 2 -#endif -local ujsor,hmarkItem -local str - - state:=ST_L_START - this:soreleje:=.f. - // this:errorItem:=nil - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS - if (state==ST_L_START) - if (ujsor .or.; - (tkId==TKID_CHAR .and. tkStr==";")) - // V‚ge. - this:soreleje:=.t. - exit - elseif (tkId==TKID_URES) - // Maradunk - // state:=ST_L_START - elseif (tkId==TKID_CHAR .and. tkStr=="#") - // Kezd“dik az elemz‚s. - state:=ST_L_HMARK - hmarkItem:=this:item - else - // tengedni az eg‚szet. - this:soreleje:=.f. - // A readItem nem hĄvja a parseline-t, ha nem sor - // elej‚n van. - exit - endif - elseif (state==ST_L_HMARK) - if (ujsor .or.; - (tkId==TKID_CHAR .and. tkStr==";")) - // Hib s, ‚s v‚ge is van. - this:soreleje:=.t. - this:errorgen(hmarkItem,HPRERR_INVALIDMN) - exit - elseif (tkId==TKID_URES) - // Maradunk - // state:=ST_L_HMARK - elseif (tkId==TKID_NEV) - // Meg kell n‚zni, milyen n‚v, ‚s aszerint folytatni - // az elemz‚st. - tkStr:=lower(tkStr) - if (matchShortNames(tkStr,"define",4)) - this:parseDefine(this:item) - elseif (matchShortNames(tkStr,"undef",4)) - this:parseUndef(this:item) - elseif (matchShortNames(tkStr,"xtranslate",4) .or.; - matchShortNames(tkStr,"xcommand",4) .or.; - matchShortNames(tkStr,"translate",4) .or.; - matchShortNames(tkStr,"command",4)) - this:parseTranslate(this:item) - elseif (matchShortNames(tkStr,"error",4)) - hmarkitem:=this:item - this:rds() - str:="" - this:sorNyel({|x| str+=x}) - this:errorGen(hmarkitem,HPRERR_USER,{str}) - elseif (matchShortNames(tkStr,"stdout",4)) - this:rds() - this:sorNyel({|x| outstd(x)}) - outstd(newline()) - elseif (matchShortNames(tkStr,"ifdef",4)) - this:parseIfdef(this:item,IFDEFTYPE_IFDEF) - elseif (matchShortNames(tkStr,"ifndef",4)) - this:parseIfdef(this:item,IFDEFTYPE_IFNDEF) - elseif (matchShortNames(tkStr,"else",4)) - // Elm‚letileg ide csak akkor j”hetnk, ha az igaz - //  gr˘l ‚rkeztnk. - this:parseElse(this:item) - elseif (matchShortNames(tkStr,"endif",4)) - // Elm‚letileg ide csak akkor j”hetnk, ha az igaz - //  gr˘l ‚rkeztnk. - this:parseEndif(this:item) - elseif (matchShortNames(tkStr,"include",4)) - this:parseInclude(this:item) - else - this:errorgen(this:item,HPRERR_INVALIDMN,{tkStr}) - this:sorNyel() - endif - this:soreleje:=.t. - exit - else - // Hib s, a v‚g‚ig le kell nyelni. - this:soreleje:=.f. - this:errorgen(this:item,HPRERR_INVALIDMN,{tkStr}) - exit - endif - else - ? "HPARSER:parseLine(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while -return nil - -//******************************************************************* -implement parseFalseLine() -// Olyan sor elemz‚se, ami egy #if hamis  g n van. -// Ilyenkor csak a #if, #endif-eket figyeljk, egy‚bk‚nt minden sort -// resre reduk lunk. -local state,tkId,tkStr -#ifdef ID_STRING - #define ST_FL_START "start" - #define ST_FL_HMARK "hessmark" -#else - #define ST_FL_START 1 - #define ST_FL_HMARK 2 -#endif -local ujsor,hmarkItem - - state:=ST_FL_START - this:soreleje:=.f. - // this:errorItem:=nil - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS - if (state==ST_FL_START) - if (ujsor .or.; - (tkId==TKID_CHAR .and. tkStr==";")) - // V‚ge. - this:soreleje:=.t. - exit - elseif (tkId==TKID_URES) - // Maradunk - // state:=ST_FL_START - elseif (tkId==TKID_CHAR .and. tkStr=="#") - // Kezd“dik az elemz‚s. - hmarkItem:=this:item - state:=ST_FL_HMARK - else - // tengedni az eg‚szet. - this:soreleje:=.f. - // A readItem nem hĄvja a parseline-t, ha nem sor - // elej‚n van. - exit - endif - elseif (state==ST_FL_HMARK) - if (ujsor .or.; - (tkId==TKID_CHAR .and. tkStr==";")) - // Hib s, ‚s v‚ge is van. - this:soreleje:=.t. - this:errorgen(hmarkItem,HPRERR_INVALIDMN) - exit - elseif (tkId==TKID_URES) - // Maradunk - state:=ST_FL_HMARK - elseif (tkId==TKID_NEV) - // Meg kell n‚zni, milyen n‚v, ‚s aszerint folytatni - // az elemz‚st. - tkStr:=lower(tkStr) - if (matchShortNames(tkStr,"ifdef",4)) - this:parseIfdef(this:item,IFDEFTYPE_NONE) - elseif (tkStr=="ifndef") - this:parseIfdef(this:item,IFDEFTYPE_NONE) - elseif (matchShortNames(tkStr,"else",4)) - if (this:branch!=nil) - this:parseElse(this:item) - // else - // Lenyeli. - endif - elseif (matchShortNames(tkStr,"endif",4)) - this:parseEndif(this:item) - else - // A rossz neveket ilyenkor elfogadja. - endif - exit - else - // Hib s, a v‚g‚ig le kell nyelni. - this:errorgen(this:item,HPRERR_INVALIDMN,{tkStr}) - exit - endif - else - ? "HPARSER:parseFalseLine(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - this:sorNyel() - this:soreleje:=.t. -return nil - -//******************************************************************* -implement errorgen(token,errorCode,params) -#ifdef OLD -local t - - t:=TOKEN.token:copyToken(TKID_ERROR) - // TOKEN.t:error:={this:name,errorcode,; - // prsErrStr(errorcode)+if(empty(errStr),""," "+errStr)} - TOKEN.t:error:=errorcode - this:putParserBuffer(t) - this:errorItem:=t -#endif - - // Egyenl“re nem adunk  t param‚tert. - aadd(this:errorStream,; - C.PRSERR:onewFromToken(errorCode,params,token)) -return nil - -//******************************************************************* -implement incompErrorgen(token,errorcode,params) - // this:errorgen(token,errorcode,params) -return .t. - -//******************************************************************* -implement addXTranslate(mnameToken,leftSide,rightSide) -// Az mNameToken jelzi, hogy hol volt a definĄci˘. -local w,cmdType,tkStr - - tkStr:=lower(TOKEN.mnameToken:str) - - if (matchShortNames(tkStr,"xtranslate",4)) - cmdType:=XTRTYPE_XTRANSLATE - elseif (matchShortNames(tkStr,"xcommand",4)) - cmdType:=XTRTYPE_XCOMMAND - elseif (matchShortNames(tkStr,"translate",4)) - cmdType:=XTRTYPE_TRANSLATE - elseif (matchShortNames(tkStr,"command",4)) - cmdType:=XTRTYPE_COMMAND - else - cmdType:=XTRTYPE_XTRANSLATE - endif - - w:=C.EXTRDICT:onew(cmdType,leftSide,rightSide,; - TOKEN.mnameToken:file,; - TOKEN.mnameToken:line,; - TOKEN.mnameToken:pos) - - // this:clearParserBuffer() - if (!empty(EXTRDICT.w:undefRMarkers)) - aeval(EXTRDICT.w:undefRMarkers,; - {|x| this:errorgen(mnameToken,HPRERR_XTRUNDEFRM,; - {RMARKER.x:getName()})}) - // outerr(EXTRDICT.w:printStr(),newline()) - else - XTRDICT.(this:xtrdict):add(w) - endif - -return nil - -//******************************************************************* -implement sorNyel(kiirBlock) -// T”rli a parserBuffer-t, majd a sor v‚g‚ig lenyeli az item-eket. -// A sorv‚gjelet a parserpuffer-ben hagyja. -// Ha az errorItem nem nil, akkor azt m‚g a sorv‚gjel el‚ beteszi. -// Ha a kiirBlock egy block, akkor a token stringeket  tadja neki. - -local tkId - - this:clearParserBuffer() - if (this:item==nil) - this:item:=this:readInput() - endif - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - if (tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or.; - tkId==TKID_EOS) - exit - endif - - if (kiirBlock!=nil) - eval(kiirBlock,TOKEN.(this:item):getStr()) - endif - this:item:=this:readInput() - end while - - // if (this:errorItem!=nil) - // this:putParserBuffer(this:errorItem) - // endif - if (this:item!=nil) - this:putParserBuffer(this:item) - endif - -return nil - -//******************************************************************* -implement parseTranslate(mNameToken) -// A # xtranslate etc, elemz“je. -/* -  ltal nos szab lyok: - - - A bal oldalon egym sba lehet skatuly zni a '[]'-ket, a jobb - oldalon nem. - - - Egyenl“re : - - - a jobb oldalon csak a regular match markert () ‚s a list - match markert ()-t fogadja el, - - - a bal oldalon pedig csak a regular result markert () - fogadja el. - - - - A bal oldal is ‚s a jobb oldal is egy-egy token lista. - A markerek spec tokenek lesznek (le”r”klnk a token oszt lyb˘l, ha - kell.) - - Az alternaltĄv k a bal oldalon olyan tokenek, amik token list k - list j t tartalmazz k. - - A '\' v‚d“ karakter a k”vetkez“ karaktereket v‚di: - - '<','[','#','\' - - Ha bekapcsoljuk az extend kapcsol˘t (ekkor a preprocesszorban - olyan funkci˘k is ‚letbe l‚pnek, amik az eredeti preprocesszorban - nincsenek meg), akkor m‚g v‚di a k”vetkez“ karaktereket: - - ']' - - Mj.: A ']' v‚d‚se az‚rt szks‚ges, mert a bal oldalon egym sba - lehet skatuly zni a '[]'-ket. - Mj2.: A '='-t nem kell v‚deni, a spec ugyanaz, ha v‚di a '\' vagy - ha nem. - - Az eld”nt‚sre v r, hogy egy nyit˘ '[' n‚lkli ']'-t elfogadjunk-e - rendes karakternek. -*/ -local leftSide,rightSide - - if (nil!=(leftSide:=this:parseLTranslate(mNameToken))) - if (nil!=(rightSide:=this:parseRTranslate(mNameToken))) - this:addXTranslate(mNameToken,leftSide,rightSide) - endif - endif -return nil - -//******************************************************************* -static function closeAlter(tokenList,malterStack) -local alter,itemMalterStack,t,w,i - - // Lez rjuk az elemzett alternetĄv t. - - // Kivesszk a malterstack-b“l azt, amit le kell z rni. - alter:=tokenList - itemMalterStack:=atail(malterStack) - tokenList:=itemMalterStack[1] - // Most a tokenList-ben lev“ tokenek azok, amik akkor - // voltak, amikor az alternatĄv t elkezdtk elemzni. - t:=nil - // Megkeressk, hogy alterset van-e a tokenlista v‚g‚n. - for i:=len(tokenList) to 1 step -1 - w:=tokenList[i] - if (TOKEN.w:id==TKID_URES) - // tugorjuk - elseif (TOKEN.w:id==TKID_MALTERSET) - // A token lista v‚g‚n egy alterset van, ehhez - // hozz venni a mi alternatĄv nka is. - t:=w - // A v‚g‚r“l az reseket t”r”ljk. - asize(tokenList,i) - exit - else - exit - endif - end for - if (t==nil) - // Ha nincs MALTRSET objektumunk, akkor csin lunk, - // ‚s a token lista v‚g‚re tesszk. - t:=C.MALTRSET:copyFromToken(itemMalterStack[2],TKID_MALTERSET,nil) - aadd(tokenList,t) - endif - MALTRSET.t:addAlter(alter) - asize(malterStack,len(malterStack)-1) -return tokenList - -//******************************************************************* -implement parseLTranslate(mnameToken) -// A # xtranslate bal oldal nak az elemz“je. -// Ret: tokenList, ha indulhat a jobb oldal, nil, ha nem. - -local state,tkId,tkStr -// Az malterStack ilyen elemekb“l  ll: {savedTokenList,'[' token} -local malterStack:={} -local alter,itemMalterStack -local matchMarkerName -local restrictMlist:={},restrictItem:=nil -local t,w -local tokenList:={} -local eqList,ujsor -local bSlash - -#ifdef ID_STRING - #define ST_TL_START "START" - #define ST_TL_MATCH_MARKER_START "MATCH_MARKER_START" - #define ST_TL_EQCHAR "EQCHAR" - #define ST_TL_MATCH_MARKER_NAME "MATCH_MARKER_NAME" - #define ST_TL_WILD_MATCH_MARKER_START "WILD_MATCH_MARKER_START" - #define ST_TL_WILD_MATCH_MARKER_NAME "WILD_MATCH_MARKER_NAME" - #define ST_TL_WILD_MATCH_MARKER_NAMESTAR "WILD_MATCH_MARKER_NAMESTAR" - #define ST_TL_EXT_EXPR_MATCH_MARKER_START "EXT_EXPR_MATCH_MARKER_START" - #define ST_TL_EXT_EXPR_MATCH_MARKER_NAME "EXT_EXPR_MATCH_MARKER_NAME" - #define ST_TL_EXT_EXPR_MATCH_MARKER_NAMEPARENT "EXT_EXPR_MATCH_MARKER_PARENT" - #define ST_TL_LIST_MATCH_MARKER_DOTS "LIST_MATCH_MARKER_DOTS" - #define ST_TL_LIST_MATCH_MARKER_DOTS1 "LIST_MATCH_MARKER_DOTS1" - #define ST_TL_LIST_MATCH_MARKER_DOTS2 "LIST_MATCH_MARKER_DOTS2" - #define ST_TL_LIST_MATCH_MARKER_DOTS3 "LIST_MATCH_MARKER_DOTS3" - #define ST_TL_RESTRICTED_MATCH_MARKER_WORDLIST "RESTRICTED_MATCH_MARKER_WORDLIST" -#else - #define ST_TL_START 1 - #define ST_TL_MATCH_MARKER_START 2 - #define ST_TL_EQCHAR 3 - #define ST_TL_MATCH_MARKER_NAME 4 - #define ST_TL_WILD_MATCH_MARKER_START 5 - #define ST_TL_WILD_MATCH_MARKER_NAME 6 - #define ST_TL_WILD_MATCH_MARKER_NAMESTAR 7 - #define ST_TL_EXT_EXPR_MATCH_MARKER_START 8 - #define ST_TL_EXT_EXPR_MATCH_MARKER_NAME 9 - #define ST_TL_EXT_EXPR_MATCH_MARKER_NAMEPARENT 10 - #define ST_TL_LIST_MATCH_MARKER_DOTS 11 - #define ST_TL_LIST_MATCH_MARKER_DOTS1 12 - #define ST_TL_LIST_MATCH_MARKER_DOTS2 13 - #define ST_TL_LIST_MATCH_MARKER_DOTS3 14 - #define ST_TL_RESTRICTED_MATCH_MARKER_WORDLIST 15 -#endif - - state:=ST_TL_START - this:rds() - bSlash:=.f. - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS - if (state==ST_TL_START) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Maradunk. - aadd(tokenList,this:item) - elseif (tkId==TKID_CHAR .and. tkStr=="[") - // Ez egy indul˘ alternatĄva a bal oldalon. Ha a token - // list ban az utols˘ token egy MALTRSET (match - // alternative token), akkor az Łj alternatĄv t majd - // hozz  csatoljuk. - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - else - aadd(malterStack,{tokenList,this:item}) - tokenList:={} - endif - elseif (tkId==TKID_CHAR .and. tkStr=="]") - // Az aktu lis token sor egy alternatĄva lesz. - if (len(malterStack)<=0) - // Hiba: van lez r˘ ']', Łgy, hogy nincs nyit˘ '['. - // Ezt a spec elfogadja, mi is elfogadjuk. - aadd(tokenList,this:item) - bSlash:=.f. - else - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - // Tov bb megynk! - endif - - // Lez rjuk az elemzett alternetĄv t. - tokenList:=closeAlter(tokenList,malterStack) - #ifdef OLD - - // Kivesszk a malterstack-b“l azt, amit le kell z rni. - alter:=tokenList - itemMalterStack:=atail(malterStack) - tokenList:=itemMalterStack[1] - // Most a tokenList-ben lev“ tokenek azok, amik akkor - // voltak, amikor az alternatĄv t elkezdtk elemzni. - if (len(tokenList)<=0) - // Nincs token ==> Nincs alterset sem a v‚g‚n. - t:=nil - else - w:=atail(tokenList) - if (TOKEN.w:id==TKID_MALTERSET) - // A token lista v‚g‚n egy alterset van, ehhez - // hozz venni a mi alternatĄv nka is. - t:=w - else - // A token lista v‚g‚n nem alterset van. - t:=nil - endif - endif - if (t==nil) - // Ha nincs MALTRSET objektumunk, akkor csin lunk, - // ‚s a token lista v‚g‚re tesszk. - t:=C.MALTRSET:copyFromToken(itemMalterStack[2],TKID_MALTERSET,nil) - aadd(tokenList,t) - endif - MALTRSET.t:addAlter(alter) - asize(malterStack,len(malterStack)-1) - #endif - endif - elseif (tkId==TKID_CHAR .and. tkStr=="<") - // Ez egy marker. - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - else - state:=ST_TL_MATCH_MARKER_START - endif - elseif (tkId==TKID_CHAR .and. tkStr=="=") - // Ez vagy egy '=' jel vagy egy '=>'-nek az els“ r‚sze. - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - // Tov bb megynk! - endif - state:=ST_TL_EQCHAR - eqList:={this:item} - elseif (tkId==TKID_CHAR .and. tkStr=="\") - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - else - bSlash:=.t. - endif - // Maradunk. - else - // Ez aktu lisan elemzett list ba kerl. - bSlash:=.f. - aadd(tokenList,this:item) - endif - elseif (state==ST_TL_MATCH_MARKER_START) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_NEV) - // A match marker neve. - matchMarkerName:=this:item - state:=ST_TL_MATCH_MARKER_NAME - elseif (tkId==TKID_CHAR .and. tkStr=="*") - // Ez egy wild match marker lesz. - state:=ST_TL_WILD_MATCH_MARKER_START - elseif (tkId==TKID_CHAR .and. tkStr=="(") - // Ez egy extended expression match marker lesz. - state:=ST_TL_EXT_EXPR_MATCH_MARKER_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_MATCH_MARKER_NAME) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==",") - // List match marker - state:=ST_TL_LIST_MATCH_MARKER_DOTS - elseif (tkId==TKID_CHAR .and. tkStr==":") - // Restricted match marker - state:=ST_TL_RESTRICTED_MATCH_MARKER_WORDLIST - restrictMList:={} - restrictItem:=nil - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Ez egy regular match marker volt. Elk‚szĄtjk a tokent. - aadd(tokenList,; - C.MMARKER:copyFromToken(matchMarkerName,; - TKID_REGULAR_MATCH_MARKER,; - nil)) - state:=ST_TL_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_WILD_MATCH_MARKER_START) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_NEV) - // A match marker neve. - matchMarkerName:=this:item - state:=ST_TL_WILD_MATCH_MARKER_NAME - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_WILD_MATCH_MARKER_NAME) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr=="*") - state:=ST_TL_WILD_MATCH_MARKER_NAMESTAR - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_WILD_MATCH_MARKER_NAMESTAR) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Ez egy wild match marker volt. Elk‚szĄtjk a tokent. - aadd(tokenList,; - C.MMARKER:copyFromToken(matchMarkerName,; - TKID_WILD_MATCH_MARKER,; - nil)) - state:=ST_TL_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_EXT_EXPR_MATCH_MARKER_START) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_NEV) - // A match marker neve. - matchMarkerName:=this:item - state:=ST_TL_EXT_EXPR_MATCH_MARKER_NAME - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_EXT_EXPR_MATCH_MARKER_NAME) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==")") - state:=ST_TL_EXT_EXPR_MATCH_MARKER_NAMEPARENT - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_EXT_EXPR_MATCH_MARKER_NAMEPARENT) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Ez egy extended expression match marker volt. Elk‚szĄtjk a tokent. - aadd(tokenList,; - C.MMARKER:copyFromToken(matchMarkerName,; - TKID_EXT_EXPR_MATCH_MARKER,; - nil)) - state:=ST_TL_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_LIST_MATCH_MARKER_DOTS) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==".") - state:=ST_TL_LIST_MATCH_MARKER_DOTS1 - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_LIST_MATCH_MARKER_DOTS1) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==".") - state:=ST_TL_LIST_MATCH_MARKER_DOTS2 - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_LIST_MATCH_MARKER_DOTS2) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==".") - state:=ST_TL_LIST_MATCH_MARKER_DOTS3 - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_LIST_MATCH_MARKER_DOTS3) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Ez egy List match marker marker volt. Elk‚szĄtjk a tokent. - aadd(tokenList,; - C.MMARKER:copyFromToken(matchMarkerName,; - TKID_LIST_MATCH_MARKER,; - nil)) - state:=ST_TL_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_RESTRICTED_MATCH_MARKER_WORDLIST) - // Ez nem j˘, mert itt nem csak szavak, hanem b rmilyen - // token lista lehet. Egyenl“re az egy elem– token - // list kat engedjk meg, de ezt nem ellen“rizzk. - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - // Maradunk. - elseif (tkId==TKID_CHAR .and. tkStr==",") - // A listaelemek kihagy s t a spec megengedi. - if (restrictItem==nil) - restrictItem:="" - endif - aadd(restrictMList,restrictItem) - restrictItem:="" - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Ez egy Restricted match marker volt. Elk‚szĄtjk a tokent. - if (restrictItem!=nil) - aadd(restrictMList,restrictItem) - endif - t:=C.RSMMARKR:copyFromToken(matchMarkerName,TKID_RESTRICTED_MATCH_MARKER,nil) - RSMMARKR.t:wordList:=restrictMList - aadd(tokenList,t) - restrictMList:={} - restrictItem:=nil - state:=ST_TL_START - elseif (tkId==TKID_NEV) - restrictItem:=tkStr - // Maradunk, mert a listaelemek kihagy s t a spec - // megengedi. - elseif (tkId==TKID_STRING .or. tkId==TKID_SZAMTOMB .or. tkId==TKID_CHAR) - restrictItem:=tkStr - // Maradunk, mert a listaelemek kihagy s t a spec - // megengedi. - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TL_EQCHAR) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - aadd(eqList,this:item) - elseif (tkId==TKID_CHAR .and. tkStr == '\') - bSlash:=.t. - elseif (tkId==TKID_CHAR .and. tkStr == '>') - // Ez a hat rol˘, v ltunk. - // A bal oldalt eltesszk, ‚s j”n a jobb oldal. - if (bSlash) - aeval(eqList,{|x| aadd(tokenList,x)}) - eqList:={} - aadd(tokenList,this:item) - bSlash:=.f. - state:=ST_TL_START - else - // Itt meg kell n‚zni nem vagyunk-e egy - // alternatĄv ban. - if (len(malterStack)>0) - this:errorgen(this:item,HPRERR_XTRLUNCLOSED) - while(!empty(malterStack)) - tokenList:=closeAlter(tokenList,malterStack) - end while - endif - return tokenList - endif - elseif (tkId==TKID_CHAR .and. tkStr=='=') - // Ezt a spec hib nak tekinti, de val˘j ban nem az. - // Azt mondja r , hogy hi nyz˘ '=>' - if (bSlash) - aeval(eqList,{|x| aadd(tokenList,x)}) - eqList:={} - aadd(tokenList,this:item) - bSlash:=.f. - state:=ST_TL_START - else - if (this:incompErrorgen(this:item,HPRERR_SXTRANSLATE)) - exit - endif - // Ez m‚g megy a bal oldalhoz. - aeval(eqList,{|x| aadd(tokenList,x)}) - eqList:={this:item} - endif - else - // B rmi m s, vissza az eg‚sz. - aeval(eqList,{|x| aadd(tokenList,x)}) - eqList:={} - this:unrds() - state:=ST_TL_START - endif - else - ? "HPARSER:parseLTranslate(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - this:sorNyel() - -return nil - -//******************************************************************* -implement parseRTranslate(mnameToken) -// A # xtranslate jobb oldal nak az elemz“je. - -local state,tkId,tkStr,ujsor - -#ifdef ID_STRING - #define ST_TR_START "START" - #define ST_TR_RESULT_MARKER_START "RESULT_MARKER_START" - #define ST_TR_DUMB_STR_RESULT_MARKER_START "DUMB_STR_RESULT_MARKER_START" - #define ST_TR_DUMB_STR_RESULT_MARKER_STARTNAME "DUMB_STR_RESULT_MARKER_STARTNAME" - #define ST_TR_DUMB_STR_RESULT_MARKER_NAME "DUMB_STR_RESULT_MARKER_NAME" - #define ST_TR_REGULAR_RESULT_MARKER_NAME "REGULAR_RESULT_MARKER_NAME" - #define ST_TR_STRINGIFY_RESULT_MARKER_NAME "STRINGIFY_RESULT_MARKER_NAME" - #define ST_TR_SMART_STR_RESULT_MARKER_START "SMART_STR_RESULT_MARKER_START" - #define ST_TR_SMART_STR_RESULT_MARKER_NAMEPAR "SMART_STR_RESULT_MARKER_NAMEPAR" - #define ST_TR_SMART_STR_RESULT_MARKER_NAME "SMART_STR_RESULT_MARKER_NAME" - #define ST_TR_BLOCKIFY_RESULT_MARKER_START "BLOCKIFY_RESULT_MARKER_START" - #define ST_TR_BLOCKIFY_RESULT_MARKER_NAME "BLOCKIFY_RESULT_MARKER_NAME" - #define ST_TR_BLOCKIFY_RESULT_MARKER_NAMEPAR "BLOCKIFY_RESULT_MARKER_NAMEPAR" - #define ST_TR_LOGIFY_RESULT_MARKER_START "LOGIFY_RESULT_MARKER_START" - #define ST_TR_LOGIFY_RESULT_MARKER_NAME "LOGIFY_RESULT_MARKER_NAME" - #define ST_TR_LOGIFY_RESULT_MARKER_NAMEPAR "LOGIFY_RESULT_MARKER_NAMEPAR" -#else - #define ST_TR_START 1 - #define ST_TR_RESULT_MARKER_START 2 - #define ST_TR_DUMB_STR_RESULT_MARKER_START 3 - #define ST_TR_DUMB_STR_RESULT_MARKER_STARTNAME 4 - #define ST_TR_DUMB_STR_RESULT_MARKER_NAME 5 - #define ST_TR_REGULAR_RESULT_MARKER_NAME 6 - #define ST_TR_STRINGIFY_RESULT_MARKER_NAME 7 - #define ST_TR_SMART_STR_RESULT_MARKER_START 8 - #define ST_TR_SMART_STR_RESULT_MARKER_NAMEPAR 9 - #define ST_TR_SMART_STR_RESULT_MARKER_NAME 10 - #define ST_TR_BLOCKIFY_RESULT_MARKER_START 11 - #define ST_TR_BLOCKIFY_RESULT_MARKER_NAME 12 - #define ST_TR_BLOCKIFY_RESULT_MARKER_NAMEPAR 13 - #define ST_TR_LOGIFY_RESULT_MARKER_START 14 - #define ST_TR_LOGIFY_RESULT_MARKER_NAME 15 - #define ST_TR_LOGIFY_RESULT_MARKER_NAMEPAR 16 -#endif - -local tokenList:={} -local saveTokenList:=nil // Ide mentjk el a tokenList-et, amikor - // alternatĄv t elemznk. - -local t -local dumbList // dumb stringify result markerek elemz‚s‚n‚l '#' ‚s - // az ut na k”vetkez“ token lista a '<'-ig. - -local resultMarkerName -local w -local bSlash - - // Drop spaces - this:rds() - while(this:item!=nil .and. TOKEN.(this:item):id==TKID_URES) - this:rds() - end while - - state:=ST_TR_START - bSlash:=.f. - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS - if (state==ST_TR_START) - if (ujsor) - // V‚ge van. - this:sorNyel() - return tokenlist - elseif (tkId==TKID_URES) - // Maradunk - if (!bSlash) - aadd(tokenList,this:item) - endif - elseif (tkId==TKID_CHAR .and. tkStr=="[") - // Ez egy indul˘ alternatĄva a jobb oldalon. - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - elseif (saveTokenList!=nil) - // Hiba: Egym sba skatuly zott [] - this:errorgen(this:item,HPRERR_XTRRNESTED) - else - saveTokenList:=tokenList - tokenList:={} - endif - elseif (tkId==TKID_CHAR .and. tkStr=="]") - // Az aktu lis token sor egy alternatĄva lesz. - if (saveTokenList==nil) - // Hiba: van lez r˘ ']', Łgy, hogy nincs nyit˘ '['. - // Ezt a spec elfogadja, mi is elfogadjuk. - aadd(tokenList,this:item) - bSlash:=.f. - else - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - endif - if (!empty(tokenList)) - t:=C.RALTER:copyFromToken(tokenList[1],TKID_RALTER,nil) - RALTER.t:tokenList:=tokenList - aadd(saveTokenList,t) - endif - tokenList:=saveTokenList - saveTokenList:=nil - endif - elseif (tkId==TKID_CHAR .and. tkStr=="<") - // Ez egy marker. - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - else - state:=ST_TR_RESULT_MARKER_START - endif - elseif (tkId==TKID_CHAR .and. tkStr=="#") - // Ez lehet egy dumb stringify result marker. - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - else - state:=ST_TR_DUMB_STR_RESULT_MARKER_START - dumbList:={this:item} - endif - elseif (tkId==TKID_CHAR .and. tkStr=="\") - // Ez v‚d“ karakter, de csak a cthis:shelterChar-ban - // szerepl“ket v‚di, egy‚bk‚nt marad norm l karakter. - // Mj.: Ezt ki kell pr˘b lni. - // Egyenl“re nem dolgozzuk fel. - if (bSlash) - aadd(tokenList,this:item) - bSlash:=.f. - else - bSlash:=.t. - endif - // Maradunk. - else - // Ez aktu lisan elemzett list ba kerl. - aadd(tokenList,this:item) - bSlash:=.f. - endif - elseif (state==ST_TR_DUMB_STR_RESULT_MARKER_START) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - aadd(dumbList,this:item) - elseif (tkId==TKID_CHAR .and. tkStr=="<") - // Ez dumb stringify result marker. - state:=ST_TR_DUMB_STR_RESULT_MARKER_STARTNAME - else - // K”z”ns‚ges karakter. Vissza az eg‚sz. - aeval(dumbList,{|x| aadd(tokenList,x)}) - this:unrds() - state:=ST_TR_START - endif - elseif (state==ST_TR_DUMB_STR_RESULT_MARKER_STARTNAME) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_NEV) - // A result marker neve. - resultMarkerName:=this:item - state:=ST_TR_DUMB_STR_RESULT_MARKER_NAME - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_DUMB_STR_RESULT_MARKER_NAME) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Itt a v‚ge. - aadd(tokenList,; - C.RMARKER:copyFromToken(resultMarkerName,; - TKID_DUMB_STR_RESULT_MARKER,; - nil)) - resultMarkerName:=nil - state:=ST_TR_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_RESULT_MARKER_START) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_XTRANSLATEEOL) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_NEV) - // A result marker neve. - resultMarkerName:=this:item - state:=ST_TR_REGULAR_RESULT_MARKER_NAME - elseif (tkId==TKID_STRING) - // A result marker neve, ez egy Normal stringify result - // marker - resultMarkerName:=this:item - state:=ST_TR_STRINGIFY_RESULT_MARKER_NAME - elseif (tkId==TKID_CHAR .and. tkStr=="(") - // Ez egy Smart stringify result marker lesz. - state:=ST_TR_SMART_STR_RESULT_MARKER_START - elseif (tkId==TKID_CHAR .and. tkStr=="{") - // Ez egy Blockify result marker lesz. - state:=ST_TR_BLOCKIFY_RESULT_MARKER_START - elseif (tkId==TKID_CHAR .and. tkStr==".") - // Ez egy Logify result marker lesz. - state:=ST_TR_LOGIFY_RESULT_MARKER_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_REGULAR_RESULT_MARKER_NAME) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Itt a v‚ge. - aadd(tokenList,; - C.RMARKER:copyFromToken(resultMarkerName,; - TKID_REGULAR_RESULT_MARKER,; - nil)) - resultMarkerName:=nil - state:=ST_TR_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_STRINGIFY_RESULT_MARKER_NAME) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Itt a v‚ge. - w:=TOKEN.resultMarkerName:str - // w:=substr(w,2,len(w)-2) - aadd(tokenList,; - C.RMARKER:copyFromToken(resultMarkerName,; - TKID_STRINGIFY_RESULT_MARKER,; - w)) - resultMarkerName:=nil - state:=ST_TR_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_SMART_STR_RESULT_MARKER_START) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_NEV) - resultMarkerName:=this:item - state:=ST_TR_SMART_STR_RESULT_MARKER_NAME - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_SMART_STR_RESULT_MARKER_NAME) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==")") - state:=ST_TR_SMART_STR_RESULT_MARKER_NAMEPAR - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_SMART_STR_RESULT_MARKER_NAMEPAR) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Itt a v‚ge. - aadd(tokenList,; - C.RMARKER:copyFromToken(resultMarkerName,; - TKID_SMART_STR_RESULT_MARKER,; - nil)) - resultMarkerName:=nil - state:=ST_TR_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_BLOCKIFY_RESULT_MARKER_START) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_NEV) - resultMarkerName:=this:item - state:=ST_TR_BLOCKIFY_RESULT_MARKER_NAME - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_BLOCKIFY_RESULT_MARKER_NAME) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr=="}") - state:=ST_TR_BLOCKIFY_RESULT_MARKER_NAMEPAR - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_BLOCKIFY_RESULT_MARKER_NAMEPAR) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Itt a v‚ge. - aadd(tokenList,; - C.RMARKER:copyFromToken(resultMarkerName,; - TKID_BLOCKIFY_RESULT_MARKER,; - nil)) - resultMarkerName:=nil - state:=ST_TR_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_LOGIFY_RESULT_MARKER_START) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_NEV) - resultMarkerName:=this:item - state:=ST_TR_LOGIFY_RESULT_MARKER_NAME - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_LOGIFY_RESULT_MARKER_NAME) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==".") - state:=ST_TR_LOGIFY_RESULT_MARKER_NAMEPAR - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - elseif (state==ST_TR_LOGIFY_RESULT_MARKER_NAMEPAR) - if (ujsor) - // V‚ge van. - exit - elseif (tkId==TKID_URES) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==">") - // Itt a v‚ge. - aadd(tokenList,; - C.RMARKER:copyFromToken(resultMarkerName,; - TKID_LOGIFY_RESULT_MARKER,; - nil)) - resultMarkerName:=nil - state:=ST_TR_START - else - // B rmi m s => rossz. - this:errorgen(this:item,HPRERR_SXTRANSLATE) - exit - endif - else - ? "HPARSER:parseRTranslate(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - this:sorNyel() - -return nil - -//******************************************************************* -implement chkEndOfFile() -local file, line,pos,i - - // A spec erre nem mond hib t (!) - // return nil // Incompatibility. - - if (len(this:ifStack)<=0) - // Minden rendben. - return nil - endif - - if (this:lastEos!=nil) - file:=TOKEN.(this:lastEos):file - line:=TOKEN.(this:lastEos):line - pos :=TOKEN.(this:lastEos):pos - else - file:=this:name - line:=0 - pos :=0 - endif - for i:=1 to len(this:ifStack) - // Sajnos a pozĄci˘t egyenl“re nem t roljuk. - // Az‚rt nem errorgen, mert itt nincs mindig token. - this:addError(C.PRSERR:onew(HPRERR_ENDIFMISSING,nil,; // Nincs token. - file,line,pos)) - end for - -return nil - - -//******************************************************************* -implement parseInclude(mnameToken) -// A #include elemz“je. -// A fil‚spec ut n mindent lenyel a sor v‚g‚ig. - -local tkId,tkStr -local item,name -local ujsor -local w,wErrCode - - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_INCLUDE) - exit - elseif (tkId==TKID_URES) - // Maradunk. - elseif (tkId==TKID_STRING) - // Ez a neve - item:=this:item - this:sorNyel() - // name:=substr(tkStr,2,len(tkStr)-2) - name:=tkStr - if (0!=(w:=INCL.(this:inclObj):openIncludeFile(name))) - if (w==1) - wErrCode:=HPRERR_INCLUDEOPEN - elseif (w==2) - wErrCode:=HPRERR_INCLUDEFIND - else - wErrCode:=HPRERR_INCLUDENEST - endif - - this:errorGen(item,wErrCode,{name}) - endif - return nil - else - // Hib s. - this:errorgen(this:item,HPRERR_INCLUDE) - exit - endif - this:rds() - end while - this:sorNyel() - -return nil - -//******************************************************************* - diff --git a/harbour/samples/cccppc/hparser2.prg b/harbour/samples/cccppc/hparser2.prg deleted file mode 100644 index ce25a82397..0000000000 --- a/harbour/samples/cccppc/hparser2.prg +++ /dev/null @@ -1,416 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// hparser2.prg: Hessmark parser(2): a '#'-al kezd“d“ sorok elemz‚se. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#define _STRICT_PARENT_ -#include "token.och" -//#include "mmarker.och" -//#include "rmarker.och" -//#include "maltrset.och" -//#include "rsmmarkr.och" -//#include "ralter.och" -#include "edefdict.och" -#include "defdict.och" -//#include "extrdict.och" -//#include "xtrdict.och" -// #include "freader.och" -//#include "incl.och" -//#include "prserr.och" -//******************************************************************* -// #include "cr_lf.ch" -#include "ctoken.ch" -// #include "prserr.ch" - -//******************************************************************* -#include "hparser.ch" - -//******************************************************************* -#include "reader.och" -#include "treader.och" -#include "hparser.och" - -//******************************************************************* -#xtranslate this: => HPARSER.(this): - -//******************************************************************* -function hpr_prsDefine(this,mNameToken) -// A # define elemz“je. -local state,tkId,tkStr -local name,params -local ujsor - -#ifdef ID_STRING - #define ST_D_START "start" - #define ST_D_TORZS "torzs" - #define ST_D_PARAM_VAGY_TORZS "param_vagy_torzs" - #define ST_D_TORZS_START "torzs_start" - #define ST_D_PARAM_START "param_start" - #define ST_D_PARAM_NEVUTAN "param_nevutan" - #define ST_D_PARAM_VESSZOUTAN "param_vesszoutan" -#else - #define ST_D_START 1 - #define ST_D_TORZS 2 - #define ST_D_PARAM_VAGY_TORZS 3 - #define ST_D_TORZS_START 4 - #define ST_D_PARAM_START 5 - #define ST_D_PARAM_NEVUTAN 6 - #define ST_D_PARAM_VESSZOUTAN 7 -#endif - state:=ST_D_START - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS - if (state==ST_D_START) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mNameToken,HPRERR_SDEFINE) - exit - elseif (tkId==TKID_URES) - // Eldobjuk. - state:=ST_D_START - elseif (tkId==TKID_NEV) - // Ez a neve - name:=tkStr - state:=ST_D_PARAM_VAGY_TORZS - else - // Hib s. - this:errorgen(this:item,HPRERR_SDEFINE) - exit - endif - elseif (state==ST_D_PARAM_VAGY_TORZS) - if (ujsor) - // A definĄci˘ res. - this:unrds() - this:clearParserbuffer() - this:addDefine(mNameToken,name,params) - // this:putParserBuffer(this:item) - exit - elseif (tkId==TKID_URES) - // tmegynk a t”rzsh”z. - this:clearParserbuffer() - state:=ST_D_TORZS_START - elseif (tkId==TKID_CHAR .and. tkStr=="(") - // A param‚terek. - state:=ST_D_PARAM_START - else - // A t”rzs. - this:clearParserBuffer() - this:putParserBuffer(this:item) - state:=ST_D_TORZS - endif - elseif (state==ST_D_PARAM_START) - // '(' ut n. N‚v vagy ')' j”het. - params:={} - if (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==")") - // Kezd“dik a t”rzs. - this:clearParserbuffer() - state:=ST_D_TORZS_START - elseif (tkId==TKID_NEV) - // Param‚ter. - aadd(params,tkStr) - state:=ST_D_PARAM_NEVUTAN - else - // B rmi m s, az nem j˘! Ebben benne van az Łj sor is! - // Hib s ‚s v‚ge is van. - this:errorgen(mNameToken,HPRERR_LDEFINE) - exit - endif - elseif (state==ST_D_PARAM_NEVUTAN) - // Param‚terlist ban egy n‚v ut n. - // ',' vagy ')' j”het. - if (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_CHAR .and. tkStr==")") - // Kezd“dik a t”rzs. - // šres param‚ter lista. - this:clearParserBuffer() - state:=ST_D_TORZS_START - elseif (tkId==TKID_CHAR .and. tkStr==",") - // Kezd“dik a k”vetkez“ param‚ter. - state:=ST_D_PARAM_VESSZOUTAN - else - // B rmi m s, az nem j˘! Ebben benne van az Łj sor is! - // Hib s ‚s v‚ge is van. - this:errorgen(mNameToken,HPRERR_PDEFINE) - exit - endif - elseif (state==ST_D_PARAM_VESSZOUTAN) - // ',' ut n. Csak n‚v j”het. - if (tkId==TKID_URES) - // Eldobjuk. - elseif (tkId==TKID_NEV) - // Param‚ter. - aadd(params,tkStr) - state:=ST_D_PARAM_NEVUTAN - else - // B rmi m s, az nem j˘! Ebben benne van az Łj sor is! - // Hib s ‚s v‚ge is van. - this:errorgen(mNameToken,HPRERR_PDEFINE) - exit - endif - elseif (state==ST_D_TORZS_START) - // Az reseket lenyeljk. - if (tkId==TKID_URES) - // Eldobjuk. - this:unputParserBuffer() - elseif (tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS) - // V‚ge a definici˘nak. - this:unrds() - this:addDefine(mNameToken,name,params) - exit - else - // B rmi m s, indul a t”rzs. - state:=ST_D_TORZS - endif - elseif (state==ST_D_TORZS) - if (tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS) - // V‚ge a definici˘nak. - this:unrds() - this:addDefine(mNameToken,name,params) - exit - else - // B rmi m s a t”rzs folytat˘dik. - endif - else - ? "HPARSER:parseDefine(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - this:sorNyel() - -return nil - -//******************************************************************* -function hpr_prsUndef(this,mnameToken) -// A # undef elemz“je. - -local state - -#ifdef ID_STRING - #define ST_UD_START "start" - #define ST_UD_VEGE "vege" -#else - #define ST_UD_START 1 - #define ST_UD_VEGE 2 -#endif - -local tkId,tkStr -local name -local ujsor - - state:=ST_UD_START - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS - if (state==ST_UD_START) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_SUNDEF) - exit - elseif (tkId==TKID_URES) - // Maradunk. - elseif (tkId==TKID_NEV) - // Ez a neve - name:=tkStr - state:=ST_UD_VEGE - else - // Hib s. - this:errorgen(mnameToken,HPRERR_SUNDEF) - exit - endif - elseif (state==ST_UD_VEGE) - if (ujsor) - // K‚sz vagyunk. - this:unrds() - this:clearParserbuffer() - // Nem kell hib t jelezni, ha nincs. - DEFDICT.(this:defdict):delKey(name) - exit - elseif (tkId==TKID_URES) - // Maradunk. - else - // Hib s - this:errorgen(this:item,HPRERR_SUNDEF) - exit - endif - else - ? "HPARSER:parseUndef(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - this:sorNyel() - -return nil - -//******************************************************************* -function hpr_addDefine(this,mnameToken,name,params) -// A t”rzs a parserBuffer-ben van. -// Az mNameToken jelzi, hogy hol volt a definĄci˘. -local w,prev,errStr - - w:=C.EDEFDICT:onew(name,params,; - this:arrayParserBuffer(),; - TOKEN.mnameToken:file,; - TOKEN.mnameToken:line,; - TOKEN.mnameToken:pos) - - this:clearParserBuffer() - - if (nil!=(prev:=DEFDICT.(this:defdict):add(w))) - // M r van ilyen makr˘ - errStr:="Previous: "+; - EDEFDICT.prev:deffilelinepos[1]+"("+; - toStr(EDEFDICT.prev:deffilelinepos[2])+")" - this:errorGen(mnameToken,HPRERR_MDUPLICATE,{name,errStr}) - endif - -return nil - -//******************************************************************* -function hpr_prsIfdef(this,mnameToken,ifdefType) -// A #ifdef/#ifndef elemz“je. - -local state - -#ifdef ID_STRING - #define ST_FD_START "start" - #define ST_FD_VEGE "vege" -#else - #define ST_FD_START 1 - #define ST_FD_VEGE 2 -#endif - -local tkId,tkStr -local name -local ujsor -local megvan - - state:=ST_FD_START - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS - if (state==ST_FD_START) - if (ujsor) - // Hib s ‚s v‚ge is van. - this:errorgen(mnameToken,HPRERR_IFDEFNL) - exit - elseif (tkId==TKID_URES) - // Maradunk. - elseif (tkId==TKID_NEV) - // Ez a neve - name:=tkStr - state:=ST_FD_VEGE - else - // Hib s. - this:errorgen(this:item,HPRERR_SIFDEF) - exit - endif - elseif (state==ST_FD_VEGE) - if (ujsor) - // K‚sz vagyunk. - this:unrds() - this:clearParserbuffer() - if (ifdefType==IFDEFTYPE_NONE) - // Hamis  gban lev“ if. - this:branch:=nil - aadd(this:ifStack,{IFB_NONEBRANCH,this:branch}) - this:sorNyel() - else - megvan:=DEFDICT.(this:defdict):atKey(name) - this:branch:=if(ifdefType==IFDEFTYPE_IFDEF,megvan!=nil,megvan==nil) - aadd(this:ifStack,{IFB_IFBRANCH,this:branch}) - endif - exit - elseif (tkId==TKID_URES) - // Maradunk. - else - // Hib s - this:errorgen(this:item,HPRERR_SIFDEF) - exit - endif - else - ? "HPARSER:parseIfdef(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - this:sorNyel() - -return nil - -//******************************************************************* -function hpr_prsElse(this,mnameToken) -// A #else elemz“je. -local w - - if (len(this:ifStack)<=0) - // Hiba, nincs hozz  if. - this:errorgen(this:item,HPRERR_ELSE) // Nincs hozz  if - elseif (this:branch!=nil) - w:=atail(this:ifStack) - // A spec-ben t”bb else is lehet, ilyenkor csak megfordĄtja a - // felt‚telt. - if (w[1]==IFB_IFBRANCH) - w[1]:=IFB_ELSEBRANCH - else - // Duplik lt else, A spec-ben ez nem hiba! - this:incompErrorgen(this:item,HPRERR_ELSE2) // Duplik lt else - endif - this:branch:=w[2]:=!w[2] - endif - this:sorNyel() - -return nil - - -//******************************************************************* -function hpr_prsEndif(this,mnameToken) -// A #endif elemz“je. -local w - - if (len(this:ifStack)<=0) - // Hiba, nincs hozz  if. - this:errorgen(this:item,HPRERR_ENDIF) // Nincs hozz  if - else - adrop(this:ifStack) - if (len(this:ifStack)<=0) - this:branch:=.t. - else - w:=atail(this:ifStack) - this:branch:=w[2] - endif - endif - this:sorNyel() - -return nil - -//******************************************************************* - - - diff --git a/harbour/samples/cccppc/incl.cls b/harbour/samples/cccppc/incl.cls deleted file mode 100644 index 1a81778043..0000000000 --- a/harbour/samples/cccppc/incl.cls +++ /dev/null @@ -1,33 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// incl.cls: Include direktorik nyilv ntart sa, Łj readerek nyit sa -// az include fil‚kre. -// 1999, Csisz r Levente - -class INCL OBJECT - - attrib lreader // Ebben vannak a nyitott include fil‚k. - - attrib includeList // A direktorik, amiben keresni kell - // az input fil‚ket. - - attrib maxInclDeep // Legfeljebb ennyi lehet egym sba - // skatuly zva. - // 0: Nincs limit. - - nmethod openIncludeFile(filename) - - rmethod oinit(lreader,includeList,maxInclDeep) - -metaclass - - rmethod onew(lreader,includeList,maxInclDeep) - - - - - - diff --git a/harbour/samples/cccppc/incl.och b/harbour/samples/cccppc/incl.och deleted file mode 100644 index e02d3b2133..0000000000 --- a/harbour/samples/cccppc/incl.och +++ /dev/null @@ -1,269 +0,0 @@ -// INCL.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:39:57, 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 _INCL_OCH_ -#define _INCL_OCH_ - - - - -#xtranslate INCL.:oinit => (OBJGEN.():(4)) -#xtranslate INCL.:getclass => (OBJGEN.():(5)) -#xtranslate INCL.:isclass => (OBJGEN.():(6)) -#xtranslate INCL.:getattrib => (OBJGEN.():(7)) -#xtranslate INCL.:setattrib => (OBJGEN.():(8)) - - -#xtranslate INCL.:lreader => \[CA_OBJECT_N+1\] -#xtranslate INCL.:includelist => \[CA_OBJECT_N+2\] -#xtranslate INCL.:maxincldeep => \[CA_OBJECT_N+3\] - -// Specifik lva: openincludefile(filename) -// ™r”k”lve: oinit(lreader,includeList,maxInclDeep) - -#xtranslate INCL.:openincludefile => (OBJGEN.():(CM_OBJECT_N+1)) -// ™r”k”lve: oinit(lreader,includeList,maxInclDeep) - -#endif // _INCL_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_INCL_N -#define CA_INCL_N CA_OBJECT_N+3 -#define CM_INCL_N CM_OBJECT_N+1 -#endif // CA_INCL_N - -#ifndef _CA_CM_ONLY_ -#ifndef _INCLCLASS_OCH_ -#define _INCLCLASS_OCH_ - -********************************************************************** -#xtranslate C.INCL: => (INCLCLASS.clINCL():) -#xtranslate C.INCL:self() => (clINCL()) - - -#xtranslate INCLCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate INCLCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate INCLCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate INCLCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate INCLCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate INCLCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate INCLCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate INCLCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate INCLCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate INCLCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate INCLCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate INCLCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate INCLCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate INCLCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate INCLCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate INCLCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate INCLCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate INCLCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate INCLCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate INCLCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate INCLCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate INCLCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate INCLCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(lreader,includeList,maxInclDeep) - -// ™r”k”lve: onew(lreader,includeList,maxInclDeep) - -#endif // _INCLCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_INCLCLASS_N -#define CA_INCLCLASS_N CA_BEHAVIOR_N+0 -#define CM_INCLCLASS_N CM_BEHAVIOR_N+0 -#endif // CA_INCLCLASS_N - - -********************************************************************** -#ifdef _INCL_PRG_ -#ifndef _INCL_PRG_OCH_ -#define _INCL_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => INCL.(othis): -#xtranslate thisclass: => INCLCLASS.(this:getClass()): -#define CTHIS INCL - - -********************************************************************** -#xtranslate this: => INCL.(this): - -#xcommand implement openincludefile(filename) => ; - static function openincludefile(this,filename) -#xcommand implement oinit(lreader,includeList,maxInclDeep) => ; - static function oinit(this,lreader,includeList,maxInclDeep) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export openincludefile(filename) => ; - function openincludefile(this,filename) -#xcommand implement export oinit(lreader,includeList,maxInclDeep) => ; - function oinit(this,lreader,includeList,maxInclDeep) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this,filename| openincludefile(this,filename)} - pOsztaly[(4)]:={|this,lreader,includeList,maxInclDeep| oinit(this,lreader,includeList,maxInclDeep)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'lreader', } - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'includelist', } - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'maxincldeep', } - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'openincludefile','filename',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','lreader,includeList,maxInclDeep',nil} -return nil - -#ifndef _NO_CLINCL_ -#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 clINCL() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcINCLCLASS():onew(; - clOBJECT(),; - "INCL",; - CA_INCL_N,; - CM_INCL_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLINCL_ - -#ifndef _NO_INCLCLASS_ - -********************************************************************** -#xtranslate class: => INCLCLASS.(class): - -#xcommand cimplement onew(lreader,includeList,maxInclDeep) => ; - static function onew(class,lreader,includeList,maxInclDeep) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(lreader,includeList,maxInclDeep) => ; - function onew(class,lreader,includeList,maxInclDeep) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,lreader,includeList,maxInclDeep| onew(class,lreader,includeList,maxInclDeep)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','lreader,includeList,maxInclDeep',nil} -return nil - -********************************************************************** -#ifndef _NO_MCINCLCLASS_ -#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 mcINCLCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "INCLCLASS",; - CA_INCLCLASS_N,; - CM_INCLCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCINCLCLASS_ - -#endif // _NO_INCLCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(lreader,includeList,maxInclDeep) -local o:=class:ocreate() - - INCL.o:oinit(lreader,includeList,maxInclDeep) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(lreader,includeList,maxInclDeep) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _INCL_PRG_OCH_ -#endif // _INCL_PRG_ diff --git a/harbour/samples/cccppc/incl.prg b/harbour/samples/cccppc/incl.prg deleted file mode 100644 index 0aca056853..0000000000 --- a/harbour/samples/cccppc/incl.prg +++ /dev/null @@ -1,88 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// incl.prg: Az INCL oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "debug.ch" - -//******************************************************************* -#include "objgen.ch" - -#include "lreader.och" -#include "freader.och" - -#define _INCL_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "incl.och" - -//******************************************************************* - -implement oinit(lreader,includeList,maxInclDeep) - super:oinit() - this:lreader:=lreader - this:includeList:=includeList - this:maxInclDeep:=maxInclDeep -return this - -//******************************************************************* -implement openIncludeFile(filename) -// Ret: 0: sikerlt, 1: nyit si hiba, 2: nem tal lhat˘, 3: tŁl sok -// egym sba skatuly z s. -// Ha a name tartalmaz path-t, akkor megn‚zi a kurrens direktoriban -// is, egy‚bk‚nt pedig csak az includeList-ben. - -local fr,l - - if (this:maxInclDeep>0 .and.; - len(LREADER.(this:lreader):readerStack)>=this:maxInclDeep) - return 3 - endif - - // Œgy k‚tszer is j”n hibazenet, egyszer az freader-t“l, egyszer - // pedig a hparser-t“l, de ez nem baj. - // Mj.: Ha csak egy zenetet akarunk, akkor az freader - // hibazeneteit ‚rtelmezni kell, ‚s hparser(include) - // hibazenetekk‚ alakĄtani. - fr:=C.FREADER:onew(LREADER.(this:lreader):errorStream) - - l:=len(FREADER.fr:errorStream) - - if (!dirFName(filename)=="") - FREADER.fr:dOpen({""},filename) - if (FREADER.fr:isError(l)) - // Nem sikerlt megnyitni. - return 1 - endif - endif - - if (!FREADER.fr:isOpen()) - FREADER.fr:dOpen(this:includeList,filename) - endif - - if (FREADER.fr:isError(l)) - // Nem sikerlt megnyitni. - return 1 - endif - - if (!FREADER.fr:isOpen()) - return 2 - endif - - // Itt kell bef–zni a l ncba. - - LREADER.(this:lreader):pushReader(fr) - - PDEBUG(outstd("include: "+filename)) - -return 0 -//******************************************************************* - - - - - diff --git a/harbour/samples/cccppc/lparser.cls b/harbour/samples/cccppc/lparser.cls deleted file mode 100644 index 525860d63a..0000000000 --- a/harbour/samples/cccppc/lparser.cls +++ /dev/null @@ -1,61 +0,0 @@ -// -// $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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 <res>-re v ltoztatja. -// - Az egym s ut n k”vetkez“ <res>-eket ”sszevonja. -// - Megcsin lja a k”vetkez“ ”sszevon st. -// Az <Łjsor>-t a fil‚ eleje is helyettesĄtheti. -// -// <Łjsor> ';' [<res>] <Łjsor> <res2> ==> -// <Łjsor> <Łjsor> ' ' -// -// <Łjsor> ';' [<res>] <Łjsor> ==> -// <Łjsor> <Łjsor> -// -// A b rmilyen token sorozat lehet, amiben nem szerepel -// ';' ‚s <Łjsor>. -// -// A b rmilyen token lehet, kiv‚ve az <res> tokent. -// -// Ha egy sor 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) - - - - diff --git a/harbour/samples/cccppc/lparser.och b/harbour/samples/cccppc/lparser.och deleted file mode 100644 index ee9ba67dcc..0000000000 --- a/harbour/samples/cccppc/lparser.och +++ /dev/null @@ -1,286 +0,0 @@ -// 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.:name => \[CA_OBJECT_N+1\] -#xtranslate LPARSER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate LPARSER.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate LPARSER.:inputreader => \[CA_READER_N+1\] -#xtranslate LPARSER.:item => \[CA_TREADER_N+1\] -#xtranslate LPARSER.:parserbuffer => \[CA_TREADER_N+2\] - - -#xtranslate LPARSER.:oinit => (OBJGEN.():(4)) -#xtranslate LPARSER.:getclass => (OBJGEN.():(5)) -#xtranslate LPARSER.:isclass => (OBJGEN.():(6)) -#xtranslate LPARSER.:getattrib => (OBJGEN.():(7)) -#xtranslate LPARSER.:setattrib => (OBJGEN.():(8)) -#xtranslate LPARSER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate LPARSER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate LPARSER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate LPARSER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate LPARSER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate LPARSER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate LPARSER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate LPARSER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate LPARSER.:readinput => (OBJGEN.():(CM_READER_N+1)) -#xtranslate LPARSER.:unreadinput => (OBJGEN.():(CM_READER_N+2)) -#xtranslate LPARSER.:addinputreader => (OBJGEN.():(CM_READER_N+3)) -#xtranslate LPARSER.:putparserbuffer => (OBJGEN.():(CM_TREADER_N+1)) -#xtranslate LPARSER.:getparserbuffer => (OBJGEN.():(CM_TREADER_N+2)) -#xtranslate LPARSER.:unputparserbuffer => (OBJGEN.():(CM_TREADER_N+3)) -#xtranslate LPARSER.:ungetparserbuffer => (OBJGEN.():(CM_TREADER_N+4)) -#xtranslate LPARSER.:clearparserbuffer => (OBJGEN.():(CM_TREADER_N+5)) -#xtranslate LPARSER.:rds => (OBJGEN.():(CM_TREADER_N+6)) -#xtranslate LPARSER.:unrds => (OBJGEN.():(CM_TREADER_N+7)) -#xtranslate LPARSER.:strparserbuffer => (OBJGEN.():(CM_TREADER_N+8)) -#xtranslate LPARSER.:arrayparserbuffer => (OBJGEN.():(CM_TREADER_N+9)) - - - -// ™r”k”lve: readinput() -// Specifik lva: readline() -// ™r”k”lve: readitem() - -// ™r”k”lve: readinput() -#xtranslate LPARSER.:readline => (OBJGEN.():(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: => (LPARSERCLASS.clLPARSER():) -#xtranslate C.LPARSER:self() => (clLPARSER()) - - -#xtranslate LPARSERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate LPARSERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate LPARSERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate LPARSERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate LPARSERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate LPARSERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate LPARSERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate LPARSERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate LPARSERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate LPARSERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate LPARSERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate LPARSERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate LPARSERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate LPARSERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate LPARSERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate LPARSERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate LPARSERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate LPARSERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate LPARSERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate LPARSERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate LPARSERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate LPARSERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate LPARSERCLASS.:isinheritfrom => (OBJGEN.():(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: => LPARSER.(othis): -#xtranslate thisclass: => LPARSERCLASS.(this:getClass()): -#define CTHIS LPARSER - - -********************************************************************** -#xtranslate this: => LPARSER.(this): - -#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 m–veleti 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 m–veleteivel. - - 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: => LPARSERCLASS.(class): - - -#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 m–veleti blokkjaival. -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - -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_ diff --git a/harbour/samples/cccppc/lparser.prg b/harbour/samples/cccppc/lparser.prg deleted file mode 100644 index 97e995ff7b..0000000000 --- a/harbour/samples/cccppc/lparser.prg +++ /dev/null @@ -1,283 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// lparser.prg: Az lparser oszt ly implement ci˘ja. -// 1999, Csisz r Levente -/* - Sor elemz“. A TREADER-t“l ”r”k”l. - Ez az elemz“ vonja ”ssze a folytat˘ sorokat. - Sajnos a hlye spec. miatt Łgy nem lehet megĄrni, hogy - folyamatosan elemezzen, mert a spec. a sor”sszevon sok ut n - az res sorokat az ”sszevon s eredm‚nyek‚nt l‚trej”tt sor EL - teszi, Ągy be kell olvasni az eg‚sz sort, hogy ezt mi is - megtehessk. - —gy m–k”dik, hogy beolvas egy teljes sort, majd megn‚zi hogy - kell-e ”sszevonni. Ha nem, akkor abb˘l ad, mĄg el nem fogy, - ha igen, akkor a v‚g‚hez hozz olvassa a k”vetkez“ sort, etc. - Amikor token-t ad, akkor vagy res, vagy az olvasott sor m‚g be - nem olvasott r‚sz‚t t rolja a sorv‚gjellel egytt. -*/ - -#include "objgen.ch" - -//******************************************************************* -#include "tbuffer.och" -#include "creader.och" -#include "token.och" - -//******************************************************************* -#include "cr_lf.ch" -#include "ctoken.ch" - -//******************************************************************* -#define _LPARSER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "lparser.och" - -//******************************************************************* -#define isNullChar(t) ((t)!=nil .and.; - TOKEN.(t):id==TKID_CHAR .and.; - TOKEN.(t):str=="") - -//******************************************************************* -implement readItem() -// A nullChar-okat eldobja. -local w - - while(.t.) - if (nil==(w:=this:getParserBuffer())) - this:readLine() - w:=this:getParserBuffer() - endif - if (!isNullChar(w)) - exit - endif - end while - -return w - -//******************************************************************* -implement readInput() -// A #line-okat itt kell lejjebb sz llĄtani. -// Az ut nuk j”v“ res sorokat t”r”lni kell, a sor sz m ‚rt‚k‚t -// pedig a t”r”lt sorok sz m val megn”velni. -local t,tkId -local bos,line,iLine,i - - while(nil!=(t:=super:readInput())) - tkId:=TOKEN.t:id - if (tkId==TKID_BOS .and.; - left(TOKEN.t:str,5)=="#line" .and.; - TOKEN.t:line>1) - // Lejjebb sz llĄt s indul - bos:=t - line:={} - iLine:=TOKEN.t:line - while(nil!=(t:=super:readInput())) - if (TOKEN.t:id==TKID_URES) - aadd(line,t) - elseif (TOKEN.t:id==TKID_UJSOR) - line:={} - iLine++ - else - super:unreadInput(t) - for i:=len(line) to 1 step -1 - super:unreadInput(line[i]) - end for - TOKEN.bos:str:=makeHSLineStr(TOKEN.bos:file,iLine) - return bos - endif - end while - endif - if !(tkId==TKID_PPCOMMENT .or. tkId==TKID_CSCOMMENT) - exit - endif - end while -return t - -//******************************************************************* -#define ST_START 0 -// #define ST_URES 1 -#define ST_PVESSZO 2 -#define ST_PVESSZO_URES 3 -#define ST_PVESSZO_UJSOR 4 -#define ST_PVESSZO_UJSOR_URES 5 - -implement readLine() -// Amikor hĄvj k a parserBuffer-nek resnek kell lennie. -// Beolvas egy teljes sort, az egy soros megjegyz‚seket eldobja, -// a t”bb sorosakat feldolgozza, a folytat˘ sorokat ”sszevonja. -// A folytat˘ sorokat Łgy vonja ”ssze, hogy annyi Łj sort rak a sor -// el‚, amennyit sort ”sszevont. -// Mj.: Az reseket nem vonja ”ssze. -local tkId,t,i -local state, numUres,nSor:={} - - state:=ST_START - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - /* A PPCOMMENT-et ‚s a CSCOMMENT-et m r a readinput-ban eldobjuk. - if (tkId==TKID_CSCOMMENT .or. tkId==TKID_PPCOMMENT) - // Eldobjuk. - this:unputParserBuffer() - this:item:=nil - else - */ - if (tkId==TKID_PCCOMMENT) - // A puffer elej‚re annyi Łj sort kell beszŁrni, mint - // ah ny itt van. - for i:=1 to xnumat(CHAR_LF,TOKEN.(this:item):str) - this:ungetParserBuffer(; - TOKEN.(this:item):copyToken(TKID_UJSOR,guessedEOL())) - end for - // Maga a megjegyz‚s nem kell, eldobjuk. - this:unputParserBuffer() - // A hely‚re egy 'semmi' karaktert rakunk, mert ezt pl ';' - // ut n ‚rt‚kesnek kell tekinteni. - this:putParserBuffer(TOKEN.(this:item):copyToken(TKID_CHAR,"")) - this:unrds() - elseif (state==ST_START) - if (tkId==TKID_UJSOR .or. tkId==TKID_BOS .or. tkId==TKID_EOS) - exit - // elseif (tkId==TKID_URES) - // state:=ST_URES - elseif (tkId==TKID_CHAR .and. TOKEN.(this:item):str==";") - state:=ST_PVESSZO - endif - elseif (state==ST_PVESSZO) - if (tkId==TKID_UJSOR .or. tkId==TKID_BOS .or. tkId==TKID_EOS) - // Az Łj sort ‚s a pontosvessz“t el kell dobni. - aadd(nSor,this:item) - this:unputParserBuffer() - this:unputParserBuffer() - state:=ST_PVESSZO_UJSOR - elseif (tkId==TKID_URES) - // Ezt el kell tenni, ‚s ha egy Łj sor j”tt, akkor el - // kell dobni. - numUres:=1 - state:=ST_PVESSZO_URES - else - // Pontosvessz“ ut n valami ‚rt‚kes. Vissza a startba. - // Mj.: Ide tartozik a pontosvessz“ ut ni pontosvessz“ is. - state:=ST_START - endif - elseif (state==ST_PVESSZO_URES) - if (tkId==TKID_UJSOR .or. tkId==TKID_BOS .or. tkId==TKID_EOS) - // Az Łj sort eldobjuk - aadd(nSor,this:item) - this:unputParserBuffer() - // šreseket eldobjuk. - - while(numUres>0) - this:unputParserBuffer() - numUres-- - end while - - // A pontosvessz“t eldobjuk. - this:unputParserBuffer() - state:=ST_PVESSZO_UJSOR - - elseif (tkId==TKID_URES) - // Ezt el kell tenni, ‚s ha egy Łj sor j”tt, akkor el - // kell dobni. - numUres++ - else - // Pontosvessz“ ut n valami ‚rt‚kes. Vissza a startba. - // Mj.: Ide tartozik a pontosvessz“ ut ni pontosvessz“ is. - state:=ST_START - endif - elseif (state==ST_PVESSZO_UJSOR) - // Ez a folytat˘ sor. - if (tkId==TKID_UJSOR .or. tkId==TKID_BOS .or. tkId==TKID_EOS) - exit - elseif (tkId==TKID_URES) - // Ezt egy darab space-ra kell helyettesĄteni. - t:=TOKEN.(this:item):copyToken(TKID_URES,space(1)) - this:unputParserBuffer() - this:putParserBuffer(t) - this:item:=t - state:=ST_PVESSZO_UJSOR_URES - elseif (tkId==TKID_CHAR .and. TOKEN.(this:item):str==";") - state:=ST_PVESSZO - else - state:=ST_START - endif - elseif (state==ST_PVESSZO_UJSOR_URES) - if (tkId==TKID_UJSOR .or. tkId==TKID_BOS .or. tkId==TKID_EOS) - exit - elseif (tkId==TKID_URES) - // Ezt el kell dobni. - this:unputParserBuffer() - else - this:unrds() - state:=ST_START - endif - // if (tkId==TKID_CHAR .and. TOKEN.(this:item):str==";") - // state:=ST_PVESSZO - // else - // state:=ST_START - // endif - else - ? "LPARSER:readline(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - aeval(nSor,{|x| this:ungetParserBuffer(x)}) -return nil - -#ifdef OLD - if (2<=(n:=TBUFFER.(this:parserBuffer):bItemNumber)) - utolsoUres:=; - TKID_URES==tkId(TBUFFER.(this:parserBuffer):getBItem(n-1)) - else - utolsoUres:=.f. - endif - - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - if (tkId==TKID_UJSOR .or. tkId==TKID_BOS .or. tkId==TKID_EOS) - // Itt kell elint‚zni a sor ”sszevon sokat. Sort akkor kell - // ”sszevonni, ha a pufferben (az resek ‚s az Łj sor kiv‚tel‚vel) - // az utols˘ token egy ';'. - // Ekkor a ';'-t t”r”ljk, ‚s ha ut na res j”n (majd), akkor azt - // egy ' '-re helyettesĄtjk (el‚g fura specifik ci˘, nemdeb r? ;) - // Itt kell elint‚zni a sor ”sszevon sokat. - exit - endif - if (tkId==TKID_PCCOMMENT) - // A puffer elej‚re annyi Łj sort kell beszŁrni, mint - // ah ny itt van. - for i:=1 to xnumat(CHAR_LF,TOKEN.(this:item):str) - this:ungetParserBuffer(; - TOKEN.(this:item):copyToken(TKID_UJSOR,guessedEOL())) - end for - // Maga a megjegyz‚s nem kell, eldobjuk. - this:unputParserBuffer() - this:item:=nil - elseif (tkId==TKID_URES .and. utolsoUres) - // Az ez el“tti is res, a kett“t ”ssze kell vonni. - n:=TBUFFER.(this:parserBuffer):bItemNumber - w:=TBUFFER.(this:parserBuffer):getBItem(n-1) - // ™sszevonjuk. - t:=TOKEN.w:copyToken(TKID_URES,; - TOKEN.w:str+TOKEN.(this:item):str) - this:unputParserBuffer() - this:unputParserBuffer() - this:putParserBuffer(t) - endif - if (this:item!=nil) - utolsoUres:=tkId==TKID_URES - endif - this:rds() - end while -return nil -#endif - -//******************************************************************* - diff --git a/harbour/samples/cccppc/lreader.cls b/harbour/samples/cccppc/lreader.cls deleted file mode 100644 index dca86d7db6..0000000000 --- a/harbour/samples/cccppc/lreader.cls +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// lreader.cls: L nc reader. -// 1999, Csisz r Levente - -// Ez a reader readerek stackj‚n keresztl olvas, Łgy, hogy olvas a -// legfels“b“l, ha az el‚rte az EOF-ot, akkor kld egy EOS (End Of -// Stream)-et, eldobja a stack tetej‚n lev“ reader-t, ‚s folytatja -// az olvas st a stack tetej‚n maradt reader-el. -// Amikor Łj stream-et kezd, akkor kld egy BOS (Begin Of Stream) -// elemet. -// Az EOS ‚s a BOF ‚rt‚ke param‚terezhet“, 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-j‚ben lev“ reader -// destructj t jelenti. -// Mj2.: Az errorStream-et nem  llĄtja, arr˘l, hogy a hib kat -// megkapjuk nek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 - // ‚rt‚k lehet (karakter is.) - // Ha nil, akkor nem kld ilyet. - - attrib EOSItem // Az EOS elem. B rmilyen objektum vagy - // ‚rt‚k lehet (karakter is.) - // Ha nil, akkor nem kld ilyet. - rmethod readItem() - // Olvas egy elemet. - // Ret: Az elem, ha OK, nil, ha v‚ge 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 tetej‚n lev“ readert. Ha nincs ret nil - - nmethod popReader() - // Visszaadja a stack tetej‚n lev“ readert, ‚s a stack-r“l t”rli. - // Nem adja ki r  a destruct()-ot. - - nmethod dropReader() - // A stackr“l t”rli a tetej‚n lev“ readert. - // Kiadja r  a destruct()-ot. - - nmethod isEmpty() - // Igaz, ha a stack res, egy‚bk‚nt 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) - - - diff --git a/harbour/samples/cccppc/lreader.och b/harbour/samples/cccppc/lreader.och deleted file mode 100644 index 9540efc0b5..0000000000 --- a/harbour/samples/cccppc/lreader.och +++ /dev/null @@ -1,356 +0,0 @@ -// LREADER.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:06, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_CREADER_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "CREADER.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "CREADER.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "CREADER.och" -#endif // _STRICT_PARENT_ -#endif // CA_CREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _LREADER_OCH_ -#define _LREADER_OCH_ - - -#xtranslate LREADER.:name => \[CA_OBJECT_N+1\] -#xtranslate LREADER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate LREADER.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate LREADER.:line => \[CA_READER_N+1\] -#xtranslate LREADER.:pos => \[CA_READER_N+2\] - - -#xtranslate LREADER.:oinit => (OBJGEN.():(4)) -#xtranslate LREADER.:getclass => (OBJGEN.():(5)) -#xtranslate LREADER.:isclass => (OBJGEN.():(6)) -#xtranslate LREADER.:getattrib => (OBJGEN.():(7)) -#xtranslate LREADER.:setattrib => (OBJGEN.():(8)) -#xtranslate LREADER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate LREADER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate LREADER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate LREADER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate LREADER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate LREADER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate LREADER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate LREADER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate LREADER.:getfile => (OBJGEN.():(CM_READER_N+1)) -#xtranslate LREADER.:getline => (OBJGEN.():(CM_READER_N+2)) -#xtranslate LREADER.:getpos => (OBJGEN.():(CM_READER_N+3)) - - -#xtranslate LREADER.:readerstack => \[CA_CREADER_N+1\] -#xtranslate LREADER.:bositem => \[CA_CREADER_N+2\] -#xtranslate LREADER.:eositem => \[CA_CREADER_N+3\] - -// ™r”k”lve: readitem() -// Specifik lva: pushreader(aReader) -// Specifik lva: topreader() -// Specifik lva: popreader() -// Specifik lva: dropreader() -// Specifik lva: isempty() -// Specifik lva: getbositem() -// Specifik lva: geteositem() -// ™r”k”lve: getfile() -// ™r”k”lve: getline() -// ™r”k”lve: getpos() -// ™r”k”lve: oinit(BOSItem,EOSItem,name,errorStream) - -// ™r”k”lve: readitem() -#xtranslate LREADER.:pushreader => (OBJGEN.():(CM_CREADER_N+1)) -#xtranslate LREADER.:topreader => (OBJGEN.():(CM_CREADER_N+2)) -#xtranslate LREADER.:popreader => (OBJGEN.():(CM_CREADER_N+3)) -#xtranslate LREADER.:dropreader => (OBJGEN.():(CM_CREADER_N+4)) -#xtranslate LREADER.:isempty => (OBJGEN.():(CM_CREADER_N+5)) -#xtranslate LREADER.:getbositem => (OBJGEN.():(CM_CREADER_N+6)) -#xtranslate LREADER.:geteositem => (OBJGEN.():(CM_CREADER_N+7)) -// ™r”k”lve: getfile() -// ™r”k”lve: getline() -// ™r”k”lve: getpos() -// ™r”k”lve: oinit(BOSItem,EOSItem,name,errorStream) - -#endif // _LREADER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_LREADER_N -#define CA_LREADER_N CA_CREADER_N+3 -#define CM_LREADER_N CM_CREADER_N+7 -#endif // CA_LREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _LREADERCLASS_OCH_ -#define _LREADERCLASS_OCH_ - -********************************************************************** -#xtranslate C.LREADER: => (LREADERCLASS.clLREADER():) -#xtranslate C.LREADER:self() => (clLREADER()) - - -#xtranslate LREADERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate LREADERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate LREADERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate LREADERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate LREADERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate LREADERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate LREADERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate LREADERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate LREADERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate LREADERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate LREADERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate LREADERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate LREADERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate LREADERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate LREADERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate LREADERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate LREADERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate LREADERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate LREADERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate LREADERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate LREADERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate LREADERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate LREADERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(BOSItem,EOSItem,name,errorStream) - -// ™r”k”lve: onew(BOSItem,EOSItem,name,errorStream) - -#endif // _LREADERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_LREADERCLASS_N -#define CA_LREADERCLASS_N CA_CREADERCLASS_N+0 -#define CM_LREADERCLASS_N CM_CREADERCLASS_N+0 -#endif // CA_LREADERCLASS_N - - -********************************************************************** -#ifdef _LREADER_PRG_ -#ifndef _LREADER_PRG_OCH_ -#define _LREADER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => LREADER.(othis): -#xtranslate thisclass: => LREADERCLASS.(this:getClass()): -#define CTHIS LREADER - - -********************************************************************** -#xtranslate this: => LREADER.(this): - -#xcommand implement readitem() => static function readitem(this) -#xcommand implement pushreader(aReader) => ; - static function pushreader(this,aReader) -#xcommand implement topreader() => static function topreader(this) -#xcommand implement popreader() => static function popreader(this) -#xcommand implement dropreader() => static function dropreader(this) -#xcommand implement isempty() => static function isempty(this) -#xcommand implement getbositem() => static function getbositem(this) -#xcommand implement geteositem() => static function geteositem(this) -#xcommand implement getfile() => static function getfile(this) -#xcommand implement getline() => static function getline(this) -#xcommand implement getpos() => static function getpos(this) -#xcommand implement oinit(BOSItem,EOSItem,name,errorStream) => ; - static function oinit(this,BOSItem,EOSItem,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export readitem() => function readitem(this) -#xcommand implement export pushreader(aReader) => ; - function pushreader(this,aReader) -#xcommand implement export topreader() => function topreader(this) -#xcommand implement export popreader() => function popreader(this) -#xcommand implement export dropreader() => function dropreader(this) -#xcommand implement export isempty() => function isempty(this) -#xcommand implement export getbositem() => function getbositem(this) -#xcommand implement export geteositem() => function geteositem(this) -#xcommand implement export getfile() => function getfile(this) -#xcommand implement export getline() => function getline(this) -#xcommand implement export getpos() => function getpos(this) -#xcommand implement export oinit(BOSItem,EOSItem,name,errorStream) => ; - function oinit(this,BOSItem,EOSItem,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(8)) -#xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+8)) -#xtranslate super:getfile => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+1)) -#xtranslate super:getline => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+2)) -#xtranslate super:getpos => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+3)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)} - pOsztaly[(CM_CREADER_N+1)]:={|this,aReader| pushreader(this,aReader)} - pOsztaly[(CM_CREADER_N+2)]:={|this| topreader(this)} - pOsztaly[(CM_CREADER_N+3)]:={|this| popreader(this)} - pOsztaly[(CM_CREADER_N+4)]:={|this| dropreader(this)} - pOsztaly[(CM_CREADER_N+5)]:={|this| isempty(this)} - pOsztaly[(CM_CREADER_N+6)]:={|this| getbositem(this)} - pOsztaly[(CM_CREADER_N+7)]:={|this| geteositem(this)} - pOsztaly[(CM_READER_N+1)]:={|this| getfile(this)} - pOsztaly[(CM_READER_N+2)]:={|this| getline(this)} - pOsztaly[(CM_READER_N+3)]:={|this| getpos(this)} - pOsztaly[(4)]:={|this,BOSItem,EOSItem,name,errorStream| oinit(this,BOSItem,EOSItem,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_CREADER_N+1-CA_NIL_N] := {CA_CREADER_N+1,'readerstack', } - ta[CA_CREADER_N+2-CA_NIL_N] := {CA_CREADER_N+2,'bositem', } - ta[CA_CREADER_N+3-CA_NIL_N] := {CA_CREADER_N+3,'eositem', } - - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil} - tm[(CM_CREADER_N+1)-CM_NIL_N] := {(CM_CREADER_N+1),'pushreader','aReader',nil} - tm[(CM_CREADER_N+2)-CM_NIL_N] := {(CM_CREADER_N+2),'topreader','',nil} - tm[(CM_CREADER_N+3)-CM_NIL_N] := {(CM_CREADER_N+3),'popreader','',nil} - tm[(CM_CREADER_N+4)-CM_NIL_N] := {(CM_CREADER_N+4),'dropreader','',nil} - tm[(CM_CREADER_N+5)-CM_NIL_N] := {(CM_CREADER_N+5),'isempty','',nil} - tm[(CM_CREADER_N+6)-CM_NIL_N] := {(CM_CREADER_N+6),'getbositem','',nil} - tm[(CM_CREADER_N+7)-CM_NIL_N] := {(CM_CREADER_N+7),'geteositem','',nil} - tm[(CM_READER_N+1)-CM_NIL_N] := {(CM_READER_N+1),'getfile','',nil} - tm[(CM_READER_N+2)-CM_NIL_N] := {(CM_READER_N+2),'getline','',nil} - tm[(CM_READER_N+3)-CM_NIL_N] := {(CM_READER_N+3),'getpos','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','BOSItem,EOSItem,name,errorStream',nil} -return nil - -#ifndef _NO_CLLREADER_ -#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 clLREADER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcLREADERCLASS():onew(; - clCREADER(),; - "LREADER",; - CA_LREADER_N,; - CM_LREADER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLLREADER_ - -#ifndef _NO_LREADERCLASS_ - -********************************************************************** -#xtranslate class: => LREADERCLASS.(class): - -#xcommand cimplement onew(BOSItem,EOSItem,name,errorStream) => ; - static function onew(class,BOSItem,EOSItem,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(BOSItem,EOSItem,name,errorStream) => ; - function onew(class,BOSItem,EOSItem,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,BOSItem,EOSItem,name,errorStream| onew(class,BOSItem,EOSItem,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','BOSItem,EOSItem,name,errorStream',nil} -return nil - -********************************************************************** -#ifndef _NO_MCLREADERCLASS_ -#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 mcLREADERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcCREADERCLASS(),; - "LREADERCLASS",; - CA_LREADERCLASS_N,; - CM_LREADERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCLREADERCLASS_ - -#endif // _NO_LREADERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(BOSItem,EOSItem,name,errorStream) -local o:=class:ocreate() - - LREADER.o:oinit(BOSItem,EOSItem,name,errorStream) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(BOSItem,EOSItem,name,errorStream) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _LREADER_PRG_OCH_ -#endif // _LREADER_PRG_ diff --git a/harbour/samples/cccppc/lreader.prg b/harbour/samples/cccppc/lreader.prg deleted file mode 100644 index f79b6aae7d..0000000000 --- a/harbour/samples/cccppc/lreader.prg +++ /dev/null @@ -1,164 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// lreader.prg: Az lreader oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "debug.ch" - -//******************************************************************* -#include "objgen.ch" - -#define _LREADER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "lreader.och" - -//******************************************************************* - -implement oinit(BOSItem,EOSItem,name,errorStream) - super:oinit(name,errorStream) - this:readerStack:={} - this:BOSItem:=BOSItem - this:EOSItem:=EOSItem -return this - -//******************************************************************* -implement readItem() -// Mj.: Ha azt a koncepci˘t v lasztjuk, hogy a getFile(),getLine(), -// getPos() a legfels“ reader-nek van  tir nyĄtva, akkor a read()-et -// ‚s az unread()-et is fell kell defini lni. -local r,t,w - - if (len(this:readerStack)<=0) - return nil - endif - - r:=alast(this:readerStack) - if (r[2]) - r[2]:=.f. - // this:name:=READER.r[1]:name - if (nil!=(w:=this:getBOSItem())) - PDEBUG(outerr("BOS: ",w,crlf())) - return w - endif - endif - - r:=r[1] - if (nil==(t:=READER.r:read())) - // if (READER.r:isError()) - // this:error:=READER.r:error - // return nil - // endif - w:=this:getEOSItem() - this:dropReader() - // apop(this:readerStack) - if (!empty(this:readerStack)) - atail(this:readerStack)[2]:=.t. - endif - if (nil!=w) - PDEBUG(outerr("EOS: ",w,newline())) - return w - endif - // Ez az‚rt kell, hogy amikor egy reader Łjra aktĄv lesz, akkor - // j”jj”n egy BOS. - return this:read() - endif - -return t - -//******************************************************************* -implement pushReader(aReader) - aadd(this:readerStack,{aReader,.t.}) -return nil - -//******************************************************************* -implement topReader() - if (len(this:readerStack)<=0) - return nil - endif -return atail(this:readerStack)[1] - -//******************************************************************* -implement popReader() - if (len(this:readerStack)<=0) - return nil - endif -return apop(this:readerStack)[1] - -//******************************************************************* -implement dropReader() -local w - - if (len(this:readerStack)<=0) - return nil - endif - w:=apop(this:readerStack)[1] // A seg‚dv ltoz˘ kell, mert az - // objektum hely‚n  ll˘ kifejez‚st - // k‚tszer ‚rt‚keli ki! - READER.w:destruct() -return nil - -//******************************************************************* -implement isEmpty() -return len(this:readerStack)<=0 - -//******************************************************************* -implement getBOSItem() -local b - - if (this:BOSItem==nil) - return nil - endif - - b:=aclone(this:BOSItem) - b[2]:=this:getFile() - b[3]:=this:getLine() - b[4]:=this:getPos() - b[5]:=len(this:readerStack) -return b - -//******************************************************************* -implement getEOSItem() -local e - - if (this:EOSItem==nil) - return nil - endif - - e:=aclone(this:EOSItem) - e[2]:=this:getFile() - e[3]:=this:getLine() - e[4]:=this:getPos() - e[5]:=len(this:readerStack) - -return e - -//******************************************************************* -implement getFile() - if (!empty(this:readerStack)) - return CREADER.(atail(this:readerStack)[1]):getFile() - endif -return this:name - - -//******************************************************************* -implement getLine() - if (!empty(this:readerStack)) - return CREADER.(atail(this:readerStack)[1]):getLine() - endif -return this:line - -//******************************************************************* -implement getPos() - if (!empty(this:readerStack)) - return CREADER.(atail(this:readerStack)[1]):getPos() - endif -return this:pos - -//******************************************************************* - - diff --git a/harbour/samples/cccppc/makefile.rmk b/harbour/samples/cccppc/makefile.rmk deleted file mode 100644 index e5c67b35b1..0000000000 --- a/harbour/samples/cccppc/makefile.rmk +++ /dev/null @@ -1,99 +0,0 @@ -// -// $Id$ -// - -#! if exist link.lnk del link.lnk - -.prg.obj: - echo file $*.obj >> link.lnk - clipper $< -o$*.obj /w /n /m /es2 - -cccppc.exe: \ - cccppc.obj \ - cccpp_pr.obj \ - creader.obj \ - crlf.obj \ - defdict.obj \ - edefdict.obj \ - expr.obj \ - extrdict.obj \ - felbont.obj \ - fnutil.obj \ - freader.obj \ - guesseol.obj \ - hparser.obj \ - hparser2.obj \ - incl.obj \ - lparser.obj \ - lreader.obj \ - maltrset.obj \ - mcontrol.obj \ - mmarker.obj \ - mparser.obj \ - newline.obj \ - nparser.obj \ - parser.obj \ - prserr.obj \ - prtree.obj \ - prtreepr.obj \ - ralter.obj \ - reader.obj \ - rmarker.obj \ - rsmmarkr.obj \ - sreader.obj \ - tbuffer.obj \ - tkstr.obj \ - token.obj \ - tokenst.obj \ - tostr.obj \ - treader.obj \ - util.obj \ - xtrdict.obj \ - object.obj \ - package.obj \ - version.obj - rtlink output cccppc.exe @link.lnk - -cccpp_pr.obj : cccpp_pr.prg -cccppc.obj : cccppc.prg -creader.obj : creader.prg -crlf.obj : crlf.prg -defdict.obj : defdict.prg -edefdict.obj : edefdict.prg -expr.obj : expr.prg -extrdict.obj : extrdict.prg -felbont.obj : felbont.prg -fnutil.obj : fnutil.prg -freader.obj : freader.prg -guesseol.obj : guesseol.prg -hparser.obj : hparser.prg -hparser2.obj : hparser2.prg -incl.obj : incl.prg -lparser.obj : lparser.prg -lreader.obj : lreader.prg -maltrset.obj : maltrset.prg -mcontrol.obj : mcontrol.prg -mmarker.obj : mmarker.prg -mparser.obj : mparser.prg -newline.obj : newline.prg -nparser.obj : nparser.prg -parser.obj : parser.prg -prserr.obj : prserr.prg -prtree.obj : prtree.prg -prtreepr.obj : prtreepr.prg -ralter.obj : ralter.prg -reader.obj : reader.prg -rmarker.obj : rmarker.prg -rsmmarkr.obj : rsmmarkr.prg -sreader.obj : sreader.prg -tbuffer.obj : tbuffer.prg -tkstr.obj : tkstr.prg -token.obj : token.prg -tokenst.obj : tokenst.prg -tostr.obj : tostr.prg -treader.obj : treader.prg -util.obj : util.prg -xtrdict.obj : xtrdict.prg -object.obj : object.prg -package.obj : package.prg -version.obj : version.prg diff --git a/harbour/samples/cccppc/maltrset.cls b/harbour/samples/cccppc/maltrset.cls deleted file mode 100644 index 701d5b848f..0000000000 --- a/harbour/samples/cccppc/maltrset.cls +++ /dev/null @@ -1,31 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// maltrset.cls : Match alternative set token oszt ly. -// 1999, Csisz r Levente - -// A bal oldalon el“fordul˘ altenatĄva halmazokat t rol˘ token. -// Az alternatĄv kat egy-egy token t”mb jelk‚pezi, ezeknek a t”mbje -// lesz egy alternatĄva halmaz. - -class MALTRSET MMARKER - - attrib alterset // Token list kat tartalmaz, minden lista - // egy-egy alternatĄva. - - - nmethod addAlter(tokenList) - // L‚trehoz egy Łj alternatĄv t, amit a tokenList reprezent l. - - rmethod getStr() - - rmethod oinit(id,str,file,line,pos) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(id,str,file,line,pos) - - diff --git a/harbour/samples/cccppc/maltrset.och b/harbour/samples/cccppc/maltrset.och deleted file mode 100644 index 7483e6b090..0000000000 --- a/harbour/samples/cccppc/maltrset.och +++ /dev/null @@ -1,303 +0,0 @@ -// MALTRSET.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:25, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_MMARKER_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "MMARKER.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "MMARKER.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "MMARKER.och" -#endif // _STRICT_PARENT_ -#endif // CA_MMARKER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _MALTRSET_OCH_ -#define _MALTRSET_OCH_ - - -#xtranslate MALTRSET.:id => \[CA_OBJECT_N+1\] -#xtranslate MALTRSET.:str => \[CA_OBJECT_N+2\] -#xtranslate MALTRSET.:file => \[CA_OBJECT_N+3\] -#xtranslate MALTRSET.:line => \[CA_OBJECT_N+4\] -#xtranslate MALTRSET.:pos => \[CA_OBJECT_N+5\] -#xtranslate MALTRSET.:classify => \[CA_OBJECT_N+6\] -#xtranslate MALTRSET.:error => \[CA_OBJECT_N+7\] -#xtranslate MALTRSET.:eqtype => \[CA_OBJECT_N+8\] -#xtranslate MALTRSET.:mnum => \[CA_TOKEN_N+1\] -#xtranslate MALTRSET.:nexttoken => \[CA_TOKEN_N+2\] - - -#xtranslate MALTRSET.:oinit => (OBJGEN.():(4)) -#xtranslate MALTRSET.:getclass => (OBJGEN.():(5)) -#xtranslate MALTRSET.:isclass => (OBJGEN.():(6)) -#xtranslate MALTRSET.:getattrib => (OBJGEN.():(7)) -#xtranslate MALTRSET.:setattrib => (OBJGEN.():(8)) -#xtranslate MALTRSET.:iserror => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate MALTRSET.:errorstr => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate MALTRSET.:printtostr => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate MALTRSET.:getstr => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate MALTRSET.:copytoken => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate MALTRSET.:getname => (OBJGEN.():(CM_TOKEN_N+1)) - - -#xtranslate MALTRSET.:alterset => \[CA_MMARKER_N+1\] - -// Specifik lva: addalter(tokenList) -// ™r”k”lve: getstr() -// ™r”k”lve: oinit(id,str,file,line,pos) - -#xtranslate MALTRSET.:addalter => (OBJGEN.():(CM_MMARKER_N+1)) -// ™r”k”lve: getstr() -// ™r”k”lve: oinit(id,str,file,line,pos) - -#endif // _MALTRSET_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_MALTRSET_N -#define CA_MALTRSET_N CA_MMARKER_N+1 -#define CM_MALTRSET_N CM_MMARKER_N+1 -#endif // CA_MALTRSET_N - -#ifndef _CA_CM_ONLY_ -#ifndef _MALTRSETCLASS_OCH_ -#define _MALTRSETCLASS_OCH_ - -********************************************************************** -#xtranslate C.MALTRSET: => (MALTRSETCLASS.clMALTRSET():) -#xtranslate C.MALTRSET:self() => (clMALTRSET()) - - -#xtranslate MALTRSETCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate MALTRSETCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate MALTRSETCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate MALTRSETCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate MALTRSETCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate MALTRSETCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate MALTRSETCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate MALTRSETCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate MALTRSETCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate MALTRSETCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate MALTRSETCLASS.:errstrarray => \[CA_BEHAVIOR_N+1\] -#xtranslate MALTRSETCLASS.:equivclass => \[CA_BEHAVIOR_N+2\] - - -#xtranslate MALTRSETCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate MALTRSETCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate MALTRSETCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate MALTRSETCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate MALTRSETCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate MALTRSETCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate MALTRSETCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate MALTRSETCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate MALTRSETCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate MALTRSETCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate MALTRSETCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate MALTRSETCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate MALTRSETCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate MALTRSETCLASS.:onewerror => (OBJGEN.():(CM_BEHAVIOR_N+1)) -#xtranslate MALTRSETCLASS.:copyfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+2)) -#xtranslate MALTRSETCLASS.:findclassify => (OBJGEN.():(CM_BEHAVIOR_N+3)) -#xtranslate MALTRSETCLASS.:ismatchmarker => (OBJGEN.():(CM_TOKENCLASS_N+1)) - - - -// ™r”k”lve: onew(id,str,file,line,pos) - -// ™r”k”lve: onew(id,str,file,line,pos) - -#endif // _MALTRSETCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_MALTRSETCLASS_N -#define CA_MALTRSETCLASS_N CA_MMARKERCLASS_N+0 -#define CM_MALTRSETCLASS_N CM_MMARKERCLASS_N+0 -#endif // CA_MALTRSETCLASS_N - - -********************************************************************** -#ifdef _MALTRSET_PRG_ -#ifndef _MALTRSET_PRG_OCH_ -#define _MALTRSET_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => MALTRSET.(othis): -#xtranslate thisclass: => MALTRSETCLASS.(this:getClass()): -#define CTHIS MALTRSET - - -********************************************************************** -#xtranslate this: => MALTRSET.(this): - -#xcommand implement addalter(tokenList) => ; - static function addalter(this,tokenList) -#xcommand implement getstr() => static function getstr(this) -#xcommand implement oinit(id,str,file,line,pos) => ; - static function oinit(this,id,str,file,line,pos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export addalter(tokenList) => ; - function addalter(this,tokenList) -#xcommand implement export getstr() => function getstr(this) -#xcommand implement export oinit(id,str,file,line,pos) => ; - function oinit(this,id,str,file,line,pos) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(8)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:errorstr => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:printtostr => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:getstr => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:copytoken => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:getname => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_TOKEN_N+1)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_MMARKER_N+1)]:={|this,tokenList| addalter(this,tokenList)} - pOsztaly[(CM_OBJECT_N+4)]:={|this| getstr(this)} - pOsztaly[(4)]:={|this,id,str,file,line,pos| oinit(this,id,str,file,line,pos)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_MMARKER_N+1-CA_NIL_N] := {CA_MMARKER_N+1,'alterset', } - - tm[(CM_MMARKER_N+1)-CM_NIL_N] := {(CM_MMARKER_N+1),'addalter','tokenList',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'getstr','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos',nil} -return nil - -#ifndef _NO_CLMALTRSET_ -#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 clMALTRSET() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcMALTRSETCLASS():onew(; - clMMARKER(),; - "MALTRSET",; - CA_MALTRSET_N,; - CM_MALTRSET_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLMALTRSET_ - -#ifndef _NO_MALTRSETCLASS_ - -********************************************************************** -#xtranslate class: => MALTRSETCLASS.(class): - -#xcommand cimplement onew(id,str,file,line,pos) => ; - static function onew(class,id,str,file,line,pos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(id,str,file,line,pos) => ; - function onew(class,id,str,file,line,pos) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) -#xtranslate superclass:onewerror => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+1)) -#xtranslate superclass:copyfromtoken => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+2)) -#xtranslate superclass:findclassify => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+3)) -#xtranslate superclass:ismatchmarker => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_TOKENCLASS_N+1)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos| onew(class,id,str,file,line,pos)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos',nil} -return nil - -********************************************************************** -#ifndef _NO_MCMALTRSETCLASS_ -#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 mcMALTRSETCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcMMARKERCLASS(),; - "MALTRSETCLASS",; - CA_MALTRSETCLASS_N,; - CM_MALTRSETCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCMALTRSETCLASS_ - -#endif // _NO_MALTRSETCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(id,str,file,line,pos) -local o:=class:ocreate() - - MALTRSET.o:oinit(id,str,file,line,pos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(id,str,file,line,pos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _MALTRSET_PRG_OCH_ -#endif // _MALTRSET_PRG_ diff --git a/harbour/samples/cccppc/maltrset.prg b/harbour/samples/cccppc/maltrset.prg deleted file mode 100644 index 709ff4d803..0000000000 --- a/harbour/samples/cccppc/maltrset.prg +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// maltrset.prg: a MALTRSET oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -#define _MALTRSET_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "maltrset.och" - -//******************************************************************* -implement oinit(id,str,file,line,pos) - super:oinit(id,str,file,line,pos) - this:alterset :={} -return this - -//******************************************************************* -implement addAlter(tokenList) - aadd(this:alterset,tokenList) -return nil - -//******************************************************************* -implement getStr() -local str,i,j,alter - - if (!this:id==TKID_MALTERSET) - return super:getStr() - endif - str:="" - for i:=1 to len(this:alterset) - str+="[" - alter:=this:alterset[i] - for j:=1 to len(alter) - str+=TOKEN.(alter[j]):getStr() - end for - str+="]" - end for - - if (this:isError()) - str+=", Error: "+this:errorStr()+guessedEol() - endif - -return str -//******************************************************************* - - - - diff --git a/harbour/samples/cccppc/mcontrol.cls b/harbour/samples/cccppc/mcontrol.cls deleted file mode 100644 index a792f14634..0000000000 --- a/harbour/samples/cccppc/mcontrol.cls +++ /dev/null @@ -1,31 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// mcontrol.cls: Ez egy olyan eszk”z, ami az inputra Łj -// 'changer'-eket tud indĄtani. -// 1999, Csisz r Levente - - -class MCONTROL TREADER - - attrib defdict - attrib xtrdict - attrib ujsor - attrib trPrsAlg - - rmethod readItem() - // Olvas egy elemet. Ha az elem megfelel bizonyos felt‚teleknek - // akkor indĄt r  egy 'changer'-t. - // Ret: Az elem, ha OK, nil, ha v‚ge van a streamnek, vagy ha - // hiba volt. - - rmethod oinit(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - -metaclass - - rmethod onew(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - - - diff --git a/harbour/samples/cccppc/mcontrol.och b/harbour/samples/cccppc/mcontrol.och deleted file mode 100644 index 9bc7e68569..0000000000 --- a/harbour/samples/cccppc/mcontrol.och +++ /dev/null @@ -1,295 +0,0 @@ -// MCONTROL.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:08, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_TREADER_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "TREADER.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "TREADER.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "TREADER.och" -#endif // _STRICT_PARENT_ -#endif // CA_TREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _MCONTROL_OCH_ -#define _MCONTROL_OCH_ - - -#xtranslate MCONTROL.:name => \[CA_OBJECT_N+1\] -#xtranslate MCONTROL.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate MCONTROL.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate MCONTROL.:inputreader => \[CA_READER_N+1\] - - -#xtranslate MCONTROL.:oinit => (OBJGEN.():(4)) -#xtranslate MCONTROL.:getclass => (OBJGEN.():(5)) -#xtranslate MCONTROL.:isclass => (OBJGEN.():(6)) -#xtranslate MCONTROL.:getattrib => (OBJGEN.():(7)) -#xtranslate MCONTROL.:setattrib => (OBJGEN.():(8)) -#xtranslate MCONTROL.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate MCONTROL.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate MCONTROL.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate MCONTROL.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate MCONTROL.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate MCONTROL.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate MCONTROL.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate MCONTROL.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate MCONTROL.:readinput => (OBJGEN.():(CM_READER_N+1)) -#xtranslate MCONTROL.:unreadinput => (OBJGEN.():(CM_READER_N+2)) -#xtranslate MCONTROL.:addinputreader => (OBJGEN.():(CM_READER_N+3)) - - -#xtranslate MCONTROL.:defdict => \[CA_TREADER_N+1\] -#xtranslate MCONTROL.:xtrdict => \[CA_TREADER_N+2\] -#xtranslate MCONTROL.:ujsor => \[CA_TREADER_N+3\] -#xtranslate MCONTROL.:trprsalg => \[CA_TREADER_N+4\] - -// ™r”k”lve: readitem() -// ™r”k”lve: oinit(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - -// ™r”k”lve: readitem() -// ™r”k”lve: oinit(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - -#endif // _MCONTROL_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_MCONTROL_N -#define CA_MCONTROL_N CA_TREADER_N+4 -#define CM_MCONTROL_N CM_TREADER_N+0 -#endif // CA_MCONTROL_N - -#ifndef _CA_CM_ONLY_ -#ifndef _MCONTROLCLASS_OCH_ -#define _MCONTROLCLASS_OCH_ - -********************************************************************** -#xtranslate C.MCONTROL: => (MCONTROLCLASS.clMCONTROL():) -#xtranslate C.MCONTROL:self() => (clMCONTROL()) - - -#xtranslate MCONTROLCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate MCONTROLCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate MCONTROLCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate MCONTROLCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate MCONTROLCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate MCONTROLCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate MCONTROLCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate MCONTROLCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate MCONTROLCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate MCONTROLCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate MCONTROLCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate MCONTROLCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate MCONTROLCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate MCONTROLCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate MCONTROLCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate MCONTROLCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate MCONTROLCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate MCONTROLCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate MCONTROLCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate MCONTROLCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate MCONTROLCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate MCONTROLCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate MCONTROLCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - -// ™r”k”lve: onew(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - -#endif // _MCONTROLCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_MCONTROLCLASS_N -#define CA_MCONTROLCLASS_N CA_TREADERCLASS_N+0 -#define CM_MCONTROLCLASS_N CM_TREADERCLASS_N+0 -#endif // CA_MCONTROLCLASS_N - - -********************************************************************** -#ifdef _MCONTROL_PRG_ -#ifndef _MCONTROL_PRG_OCH_ -#define _MCONTROL_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => MCONTROL.(othis): -#xtranslate thisclass: => MCONTROLCLASS.(this:getClass()): -#define CTHIS MCONTROL - - -********************************************************************** -#xtranslate this: => MCONTROL.(this): - -#xcommand implement readitem() => static function readitem(this) -#xcommand implement oinit(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) => ; - static function oinit(this,inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export readitem() => function readitem(this) -#xcommand implement export oinit(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) => ; - function oinit(this,inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(8)) -#xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+8)) -#xtranslate super:readinput => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_READER_N+1)) -#xtranslate super:unreadinput => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_READER_N+2)) -#xtranslate super:addinputreader => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_READER_N+3)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)} - pOsztaly[(4)]:={|this,inputReader,name,defdict,xtrdict,errorStream,trPrsAlg| oinit(this,inputReader,name,defdict,xtrdict,errorStream,trPrsAlg)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_TREADER_N+1-CA_NIL_N] := {CA_TREADER_N+1,'defdict',nil} - ta[CA_TREADER_N+2-CA_NIL_N] := {CA_TREADER_N+2,'xtrdict',nil} - ta[CA_TREADER_N+3-CA_NIL_N] := {CA_TREADER_N+3,'ujsor',nil} - ta[CA_TREADER_N+4-CA_NIL_N] := {CA_TREADER_N+4,'trprsalg',nil} - - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','inputReader,name,defdict,xtrdict,errorStream,trPrsAlg',nil} -return nil - -#ifndef _NO_CLMCONTROL_ -#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 clMCONTROL() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcMCONTROLCLASS():onew(; - clTREADER(),; - "MCONTROL",; - CA_MCONTROL_N,; - CM_MCONTROL_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLMCONTROL_ - -#ifndef _NO_MCONTROLCLASS_ - -********************************************************************** -#xtranslate class: => MCONTROLCLASS.(class): - -#xcommand cimplement onew(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) => ; - static function onew(class,inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) => ; - function onew(class,inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,inputReader,name,defdict,xtrdict,errorStream,trPrsAlg| onew(class,inputReader,name,defdict,xtrdict,errorStream,trPrsAlg)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','inputReader,name,defdict,xtrdict,errorStream,trPrsAlg',nil} -return nil - -********************************************************************** -#ifndef _NO_MCMCONTROLCLASS_ -#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 mcMCONTROLCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcTREADERCLASS(),; - "MCONTROLCLASS",; - CA_MCONTROLCLASS_N,; - CM_MCONTROLCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCMCONTROLCLASS_ - -#endif // _NO_MCONTROLCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) -local o:=class:ocreate() - - MCONTROL.o:oinit(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _MCONTROL_PRG_OCH_ -#endif // _MCONTROL_PRG_ diff --git a/harbour/samples/cccppc/mcontrol.prg b/harbour/samples/cccppc/mcontrol.prg deleted file mode 100644 index 15b5f235b0..0000000000 --- a/harbour/samples/cccppc/mcontrol.prg +++ /dev/null @@ -1,358 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// mcontrol.prg: Az MCONTROL oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -// #define DEBUG -#include "debug.ch" -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "token.och" -#include "mparser.och" -#include "tbuffer.och" -#include "defdict.och" -#include "xtrdict.och" - -//******************************************************************* -#define _MCONTROL_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "mcontrol.och" - -//******************************************************************* -implement oinit(inputReader,name,defdict,xtrdict,errorStream,trPrsAlg) - - super:oinit(inputReader,name,errorStream) - - this:defdict:=defdict - this:xtrdict:=xtrdict - this:ujsor:=.t. - this:trPrsAlg:=trPrsAlg - -return this - -//******************************************************************* -#ifdef HATULROL_ELORE - -//******************************************************************* -// H tulr˘l el“re helyettesĄt‚s. -#error "Ez m r nem m–k”dik, csak az algoritmus megmutat s ra van itt." -//******************************************************************* -implement readItem() -/* - - Egy Łj mcontrol az Łj mparser inputja, Ągy oldja meg a - rekurzi˘t. - - - Sikertelen helyettesĄt‚sn‚l az eg‚sz megvizsg lt token - sorozat mehet az outputra. - - - Sikeres helyettesĄt‚sn‚l az Łj token sorozat visszamegy az - inputra. - - - Nem ismeri az xcommand-ot. -*/ -local item,w,newMControl,nmtbuf -local i - - while(nil!=(item:=this:readInput()) .and.; - (TOKEN.item:id==TKID_NEV .or.; - TOKEN.item:id==TKID_CHAR .or.; - TOKEN.item:id==TKID_STRING .or.; - TOKEN.item:id==TKID_SZAMTOMB)) - - newMControl:=thisclass:onew(this:inputReader,; - this:name,; - this:defdict,; - this:xtrdict,; - this:errorStream) - if (nil==(w:=C.MPARSER:parse(item,; - newMControl,; - this:name,; - this:defdict,; - this:xtrdict,; - this:errorStream))) - // Nincs ilyen makr˘ - exit - endif - - // A newMControl-ban lev“ puffert rĄteni kell, mert most a - // newMControl-t t”r”lni fogjuk. Ez‚rt puffer tartalm t - // visszatesszk az inputra (sikeress‚g eset‚n), ‚s kitesszk - // az outputra (sikertelens‚g eset‚n) - // Mj.: ltal ban resnek kell lennie, egyenl“re nem sikerlt - // olyan teszt fil‚t csin lni, amiben a newMControl - // puffer‚ben lett volna valami. - - // PDEBUG(outerr("megvan!",crlf())) - if (w[1]) - // Sikeres. Az eredm‚nyt vissza kell tenni az inputra. - - // El“sz”r a newMControl-ban lev“ puffer megy. - nmtbuf:=CTHIS.newMControl:arrayTBuffer() - for i:=len(nmtbuf) to 1 step -1 - PDEBUG(outerr("newMControl vissza az inputra: "+TOKEN.(nmtbuf[i]):getStr(),crlf())) - this:unreadInput(nmtbuf[i]) - end for - - // Azut n maga az eredm‚ny. - w:=w[2] - for i:=len(w) to 1 step -1 - this:unreadInput(w[i]) - end for - else - // A newMControl-ban lev“ puffert is elkldhetjk, mert - // az m r elemezve volt. - nmtbuf:=CTHIS.newMControl:arrayTBuffer() - for i:=len(nmtbuf) to 1 step -1 - PDEBUG(outerr("newMControl az outputra: "+TOKEN.(nmtbuf[i]):getStr(),crlf())) - this:unread(nmtbuf[i]) - end for - - // Sikertelen, az eredm‚ny megy az outputra. - w:=w[2] - for i:=len(w) to 1 step -1 - this:unread(w[i]) - end for - - // Most a tbuffer-b“l kell olvasnunk. - if (nil!=(item:=this:readTBuffer())) - exit - endif - endif - end while - -return item -//******************************************************************* - -#else - -//******************************************************************* -static function findTreeMatch(dictTree,tkId,tkStr) -local i,leftToken,id - - for i:=1 to len(dictTree) - leftToken:=dictTree[i][1] - id:=TOKEN.leftToken:id - if !(id==TKID_NEV .or.; - id==TKID_CHAR .or.; - id==TKID_STRING .or.; - id==TKID_SZAMTOMB) - return i - endif - if (isMatchNToken(tkId,tkStr,; - TOKEN.leftToken:id,TOKEN.leftToken:str,; - TOKEN.leftToken:eqType)) - return i - endif - end for -return 0 -//******************************************************************* -// El“r“l h tra helyettesĄt‚s. -//******************************************************************* -implement readItem() -/* - El“r”l h tra helyettesĄt‚s. - - - Nincs szks‚g arra, hogy az mcontrol legyen az Łj mparser - inputja. - - - Sikertelen helyettesĄt‚sn‚l csak egy tokent mehetnk el“re. - - - Sikeres helyettesĄt‚sn‚l a sor elej‚ig kell visszamenni. - Ebb“l k”vetkezik, hogy csak akkor ad token-t, ha a teljes sort - beolvasta ‚s azon m r nem lehet helyettesĄt‚st v‚gezni. - - - Ez ismeri az xcommand-ot is. -*/ - -local item,w,i,edefdict,mi,mehet - - // Ha a tbuffer-ben van valami, akkor abb˘l adunk. - if (nil!=(item:=this:readTBuffer())) - return item - endif - - // A tbuffer res, Łj sor van. - this:ujsor:=.t. - mi:=array(2) - - while(nil!=(item:=this:readInput()) .and.; - !(TOKEN.item:id==TKID_UJSOR .or.; - TOKEN.item:id==TKID_BOS .or.; - TOKEN.item:id==TKID_EOS .or.; - (TOKEN.item:id==TKID_CHAR .and. TOKEN.item:str==";"))) - - if (TOKEN.item:id==TKID_NEV .or.; - TOKEN.item:id==TKID_CHAR .or.; - TOKEN.item:id==TKID_STRING .or.; - TOKEN.item:id==TKID_SZAMTOMB) - // HelyettesĄtnk. - mehet:=.f. - if (TOKEN.item:id==TKID_NEV) - if (nil!=(edefdict:=DEFDICT.(this:defdict):atKey(TOKEN.item:str))) - mehet:=.t. - endif - else - edefdict:=nil - endif - if (this:trPrsAlg==TRPRA_TREE) - if (0!=(mi[1]:=findTreeMatch(; - XTRDICT.(this:xtrdict):trdictTree,; - TOKEN.item:id,; - TOKEN.item:str))) - mehet:=.t. - endif - if (this:ujsor) - if (0!=(mi[2]:=findTreeMatch(; - XTRDICT.(this:xtrdict):cmdictTree,; - TOKEN.item:id,; - TOKEN.item:str))) - mehet:=.t. - endif - else - mi[2]:=0 - endif - // mi:=nil - else - mi[1]:=0 - mi[2]:=0 - endif - if (mehet) - if (nil==(w:=C.MPARSER:parse(item,; - this:inputReader,; - this:name,; - this:defdict,; - edefdict,; - this:xtrdict,; - mi,; - this:errorStream,; - this:ujsor,; - this:trPrsAlg))) - // Nincs ilyen makr˘. - // Az item a tbuffer-be. - TBUFFER.(this:tBuffer):put(item) - this:ujsor:=.f. - elseif (w[1]) - // Sikeres. - // Az eredm‚ny ‚s a tbuffer vissza az inputra ‚s megint sor - // elej‚n vagyunk. - - // El“sz”r az eredm‚ny. - w:=w[2] - for i:=len(w) to 1 step -1 - this:unreadInput(w[i]) - end for - - // Azut n a tbuffer - for i:=TBUFFER.(this:tBuffer):bItemNumber() to 1 step -1 - PDEBUG(outerr("tBuffer vissza az inputra: "+; - TOKEN.(TBUFFER.(this:tBuffer):getBItem(i)):getStr(),newline())) - this:unreadInput(TBUFFER.(this:tBuffer):getBItem(i)) - end for - TBUFFER.(this:tBuffer):clear() - this:ujsor:=.t. - else - // Sikertelen. - // Az eredm‚ny els“ item-je az output-ra megy, a t”bbi - // az inputra. - - w:=w[2] - for i:=len(w) to 2 step -1 - this:unreadInput(w[i]) - end for - TBUFFER.(this:tBuffer):put(w[1]) - this:ujsor:=.f. - endif - else - // ttesszk. - TBUFFER.(this:tBuffer):put(item) - endif - else - // ttesszk. - TBUFFER.(this:tBuffer):put(item) - endif - end while - if (item!=nil) - TBUFFER.(this:tBuffer):put(item) - endif -return TBUFFER.(this:tBuffer):get() - -#ifdef OLD - while(nil!=(item:=this:readInput()) .and.; - (TOKEN.item:id==TKID_NEV .or.; - TOKEN.item:id==TKID_CHAR .or.; - TOKEN.item:id==TKID_STRING .or.; - TOKEN.item:id==TKID_SZAMTOMB)) - - // newMControl:=thisclass:onew(this:inputReader,; - // this:name,; - // this:defdict,; - // this:xtrdict,; - // this:errorStream) - if (nil==(w:=C.MPARSER:parse(item,; - this:inputReader,; - this:name,; - this:defdict,; - this:xtrdict,; - this:errorStream,this:ujsor))) - // Nincs ilyen makr˘ - exit - endif - - // PDEBUG(outerr("megvan!",crlf())) - if (w[1]) - // Sikeres. - - w:=w[2] - for i:=len(w) to 1 step -1 - this:unreadInput(w[i]) - end for - else - - // Sikertelen, az eredm‚ny els“ tokenje megy az outputra, - // a t”bbi az inputra. - w:=w[2] - for i:=len(w) to 2 step -1 - this:unreadInput(w[i]) - end for - - item:=w[1] - exit - #ifdef OLD - if (len(w)>1) - this:unread(w[1]) - endif - - // Most a tbuffer-b“l kell olvasnunk. - if (nil!=(item:=this:readTBuffer())) - exit - endif - #endif - endif - end while - if (item!=nil) - if (!TOKEN.item:id==TKID_URES) - this:ujsor:=TOKEN.item:id==TKID_UJSOR .or.; - TOKEN.item:id==TKID_BOS .or.; - TOKEN.item:id==TKID_EOS .or.; - (TOKEN.item:id==TKID_CHAR .and. TOKEN.item:str==";") - endif - endif -return item -#endif - -//******************************************************************* -#endif - -//******************************************************************* - - - diff --git a/harbour/samples/cccppc/meta.cls b/harbour/samples/cccppc/meta.cls deleted file mode 100644 index fa9cb48e94..0000000000 --- a/harbour/samples/cccppc/meta.cls +++ /dev/null @@ -1,48 +0,0 @@ -// -// $Id$ -// - -class META BEHAVIOR -// Ennek az oszt lynak az elemei metaoszt lyok. - - - attrib ofClass - // Ha ennek az metaoszt lynak csak egy eleme lehet, akkor - // ez egy blokk, amit ki‚rt‚kelve megkapjuk azt az egy - // oszt lyt. Ha ennek a metaoszt lynak t”bb eleme is lehet, - // akkor ez nil. - - rmethod oinit{me_oinit}(parent,name,nAttribs,nMethods,amBlock,methodsBlock) - // Inicializ lja a 'this' metaoszt lyt. - // Mj.: HĄvja a Behavior oinit()-j‚t, ‚s inicializ lja - // az ofClass-t 'nil'-re. - - rmethod onew{me_onew}(parent,name,nAttribs,nMethods,amBlock,methodsBlock) - // L‚trehoz egy Łj oszt lyt, ‚s inicializ lja. - // Az Łj oszt ly a 'this' eleme lesz, teh t az Łj oszt ly - // oszt lya a 'this'lesz. - // Ha az ofClass nem res, akkor a 'this' meta oszt lynak m r - // van eleme. Egy (k”z”ns‚ges) metaoszt lynak csak egy eleme - // lehet, Ągy ez hiba! - // Ha az ofClass res, akkor az Łj oszt lyt oda beĄrja. - - // Mj.: Ez a 'Meta' egy elem‚nek a m–velete. A 'Meta' elemei - // pedig meta oszt lyok. Teh t ez egy meta osztaly egy elem‚t - // hozza l‚tre, a meta oszt lyok elemei pedig oszt lyok. Teh t - // ez egy Łj oszt lyt (‚s nem metaoszt lyt!!!) hoz l‚tre. - - rmethod ocreate{me_ocreate}() - // L‚trehoz egy Łj oszt lyt, de nem inicializ lja. - - - // nmethod makeClassId{me_makeClassId}(aClass) - // Hozz ad egy oszt lyt az idClass-okhoz. Az oszt ly id-j‚vel - // t‚r vissza. Ha az oszt lynak m r van id-je, akkor azzal t‚r - // vissza. - - // nmethod classFromId{me_classFromId}(id) - // Ha van olyan oszt ly, aminek az 'id' az id-je, akkor - // azt adja egy‚bk‚nt nil-t. - - // nmethod findClassId{me_findClassId}(aClass) - // Ha az oszt lynak van id-je, akkor azt adja, egy‚bk‚nt nil-t. diff --git a/harbour/samples/cccppc/meta.och b/harbour/samples/cccppc/meta.och deleted file mode 100644 index f7910867ad..0000000000 --- a/harbour/samples/cccppc/meta.och +++ /dev/null @@ -1,282 +0,0 @@ -// META.och oszt ly implement ci˘. -// Gener lva: 1999.10.10, 14:31:52, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_BEHAVIOR_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "BEHAVIOR.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "BEHAVIOR.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "BEHAVIOR.och" -#endif // _STRICT_PARENT_ -#endif // CA_BEHAVIOR_N - -#ifndef _CA_CM_ONLY_ -#ifndef _META_OCH_ -#define _META_OCH_ - - -#xtranslate META.:parent => \[CA_OBJECT_N+1\] -#xtranslate META.:name => \[CA_OBJECT_N+2\] -#xtranslate META.:objsize => \[CA_OBJECT_N+3\] -#xtranslate META.:attribs => \[CA_OBJECT_N+4\] -#xtranslate META.:methods => \[CA_OBJECT_N+5\] -#xtranslate META.:classid => \[CA_OBJECT_N+6\] -#xtranslate META.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate META.:amblock => \[CA_OBJECT_N+8\] -#xtranslate META.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate META.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate META.:oinit => (OBJGEN.():(4)) -#xtranslate META.:getclass => (OBJGEN.():(5)) -#xtranslate META.:isclass => (OBJGEN.():(6)) -#xtranslate META.:getattrib => (OBJGEN.():(7)) -#xtranslate META.:setattrib => (OBJGEN.():(8)) -#xtranslate META.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate META.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate META.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate META.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate META.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate META.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate META.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - -#xtranslate META.:ofclass => \[CA_BEHAVIOR_N+1\] - -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: ocreate() - -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: ocreate() - -#endif // _META_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_META_N -#define CA_META_N CA_BEHAVIOR_N+1 -#define CM_META_N CM_BEHAVIOR_N+0 -#xtranslate META.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#endif // CA_META_N - -#ifndef _CA_CM_ONLY_ -#ifndef _METACLAS_OCH_ -#define _METACLAS_OCH_ - -********************************************************************** -#xtranslate C.META: => (METACLAS.clMETA():) -#xtranslate C.META:self() => (clMETA()) - - -#xtranslate METACLAS.:parent => \[CA_OBJECT_N+1\] -#xtranslate METACLAS.:name => \[CA_OBJECT_N+2\] -#xtranslate METACLAS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate METACLAS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate METACLAS.:methods => \[CA_OBJECT_N+5\] -#xtranslate METACLAS.:classid => \[CA_OBJECT_N+6\] -#xtranslate METACLAS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate METACLAS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate METACLAS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate METACLAS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate METACLAS.:ofclass => \[CA_BEHAVIOR_N+1\] - - -#xtranslate METACLAS.:oinit => (OBJGEN.():(4)) -#xtranslate METACLAS.:getclass => (OBJGEN.():(5)) -#xtranslate METACLAS.:isclass => (OBJGEN.():(6)) -#xtranslate METACLAS.:getattrib => (OBJGEN.():(7)) -#xtranslate METACLAS.:setattrib => (OBJGEN.():(8)) -#xtranslate METACLAS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate METACLAS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate METACLAS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate METACLAS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate METACLAS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate METACLAS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate METACLAS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate METACLAS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - - - -#endif // _METACLAS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_METACLAS_N -#define CA_METACLAS_N CA_META_N+0 -#define CM_METACLAS_N CM_META_N+0 -#endif // CA_METACLAS_N - - -********************************************************************** -#ifdef _META_PRG_ -#ifndef _META_PRG_OCH_ -#define _META_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => META.(othis): -#xtranslate thisclass: => METACLAS.(this:getClass()): -#define CTHIS META - - -********************************************************************** -#xtranslate this: => META.(this): - -#xcommand implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - static function me_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand implement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - static function me_onew(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand implement ocreate() => static function me_ocreate(this) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - function me_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand implement export onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - function me_onew(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand implement export ocreate() => function me_ocreate(this) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(8)) -#xtranslate super:onew => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:ocreate => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:rawoinit => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:oinitclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:attribidx => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:needclassid => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(this):(CM_OBJECT_N+8)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(4)]:={|this,parent,name,nAttribs,nMethods,amBlock,methodsBlock| me_oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} - pOsztaly[(CM_OBJECT_N+1)]:={|this,parent,name,nAttribs,nMethods,amBlock,methodsBlock| me_onew(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} - pOsztaly[(CM_OBJECT_N+2)]:={|this| me_ocreate(this)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_BEHAVIOR_N+1-CA_NIL_N] := {CA_BEHAVIOR_N+1,'ofclass',nil} - - tm[(4)-CM_NIL_N] := {(4),'oinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'ocreate','',nil} -return nil - -#ifndef _NO_CLMETA_ -#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 clMETA() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.clMETACLAS():onew(; - clBEHAVIOR(),; - "META",; - CA_META_N,; - CM_META_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLMETA_ - -#ifndef _NO_METACLAS_ - -********************************************************************** -#xtranslate class: => METACLAS.(class): - - -#ifdef _IMPLEMENT_EXPORT_ -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - -return nil - -********************************************************************** -#ifndef _NO_MCMETACLAS_ -#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 mcMETACLAS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clMETA(),; - "METACLAS",; - CA_METACLAS_N,; - CM_METACLAS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCMETACLAS_ - -#endif // _NO_METACLAS_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _META_PRG_OCH_ -#endif // _META_PRG_ diff --git a/harbour/samples/cccppc/metaclas.cls b/harbour/samples/cccppc/metaclas.cls deleted file mode 100644 index dcf9249e0e..0000000000 --- a/harbour/samples/cccppc/metaclas.cls +++ /dev/null @@ -1,7 +0,0 @@ -// -// $Id$ -// - -class METACLAS META -// Itt nincs Łj m–velet. -// Ha lenne, akkor kellene METACLASSCLASS is etc. diff --git a/harbour/samples/cccppc/metaclas.och b/harbour/samples/cccppc/metaclas.och deleted file mode 100644 index 2948dfb8ff..0000000000 --- a/harbour/samples/cccppc/metaclas.och +++ /dev/null @@ -1,250 +0,0 @@ -// METACLAS.och oszt ly implement ci˘. -// Gener lva: 1999.10.10, 14:31:52, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_META_N -#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_ -#endif // CA_META_N - -#ifndef _CA_CM_ONLY_ -#ifndef _METACLAS_OCH_ -#define _METACLAS_OCH_ - - -#xtranslate METACLAS.:parent => \[CA_OBJECT_N+1\] -#xtranslate METACLAS.:name => \[CA_OBJECT_N+2\] -#xtranslate METACLAS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate METACLAS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate METACLAS.:methods => \[CA_OBJECT_N+5\] -#xtranslate METACLAS.:classid => \[CA_OBJECT_N+6\] -#xtranslate METACLAS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate METACLAS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate METACLAS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate METACLAS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate METACLAS.:ofclass => \[CA_BEHAVIOR_N+1\] - - -#xtranslate METACLAS.:oinit => (OBJGEN.():(4)) -#xtranslate METACLAS.:getclass => (OBJGEN.():(5)) -#xtranslate METACLAS.:isclass => (OBJGEN.():(6)) -#xtranslate METACLAS.:getattrib => (OBJGEN.():(7)) -#xtranslate METACLAS.:setattrib => (OBJGEN.():(8)) -#xtranslate METACLAS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate METACLAS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate METACLAS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate METACLAS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate METACLAS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate METACLAS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate METACLAS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate METACLAS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - - - -#endif // _METACLAS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_METACLAS_N -#define CA_METACLAS_N CA_META_N+0 -#define CM_METACLAS_N CM_META_N+0 -#endif // CA_METACLAS_N - -#ifndef _CA_CM_ONLY_ -#ifndef _METACLAS_OCH_ -#define _METACLAS_OCH_ - -********************************************************************** -#xtranslate C.METACLAS: => (METACLAS.clMETACLAS():) -#xtranslate C.METACLAS:self() => (clMETACLAS()) - - -#xtranslate METACLAS.:parent => \[CA_OBJECT_N+1\] -#xtranslate METACLAS.:name => \[CA_OBJECT_N+2\] -#xtranslate METACLAS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate METACLAS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate METACLAS.:methods => \[CA_OBJECT_N+5\] -#xtranslate METACLAS.:classid => \[CA_OBJECT_N+6\] -#xtranslate METACLAS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate METACLAS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate METACLAS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate METACLAS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate METACLAS.:ofclass => \[CA_BEHAVIOR_N+1\] - - -#xtranslate METACLAS.:oinit => (OBJGEN.():(4)) -#xtranslate METACLAS.:getclass => (OBJGEN.():(5)) -#xtranslate METACLAS.:isclass => (OBJGEN.():(6)) -#xtranslate METACLAS.:getattrib => (OBJGEN.():(7)) -#xtranslate METACLAS.:setattrib => (OBJGEN.():(8)) -#xtranslate METACLAS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate METACLAS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate METACLAS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate METACLAS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate METACLAS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate METACLAS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate METACLAS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate METACLAS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - - - -#endif // _METACLAS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_METACLAS_N -#define CA_METACLAS_N CA_META_N+0 -#define CM_METACLAS_N CM_META_N+0 -#endif // CA_METACLAS_N - - -********************************************************************** -#ifdef _METACLAS_PRG_ -#ifndef _METACLAS_PRG_OCH_ -#define _METACLAS_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => METACLAS.(othis): -#xtranslate thisclass: => METACLAS.(this:getClass()): -#define CTHIS METACLAS - - -********************************************************************** -#xtranslate this: => METACLAS.(this): - - -#ifdef _IMPLEMENT_EXPORT_ -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(8)) -#xtranslate super:onew => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:ocreate => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:rawoinit => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:oinitclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:attribidx => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:needclassid => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(this):(CM_OBJECT_N+8)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - -return nil - -#ifndef _NO_CLMETACLAS_ -#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 clMETACLAS() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.clMETACLAS():onew(; - clMETA(),; - "METACLAS",; - CA_METACLAS_N,; - CM_METACLAS_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLMETACLAS_ - -#ifndef _NO_METACLAS_ - -********************************************************************** -#xtranslate class: => METACLAS.(class): - - -#ifdef _IMPLEMENT_EXPORT_ -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.clMETA():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - -return nil - -********************************************************************** -#ifndef _NO_MCMETACLAS_ -#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 mcMETACLAS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clMETA(),; - "METACLAS",; - CA_METACLAS_N,; - CM_METACLAS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCMETACLAS_ - -#endif // _NO_METACLAS_ -********************************************************************** -#endif // _METACLAS_PRG_OCH_ -#endif // _METACLAS_PRG_ diff --git a/harbour/samples/cccppc/mmarker.cls b/harbour/samples/cccppc/mmarker.cls deleted file mode 100644 index a9fe64cb57..0000000000 --- a/harbour/samples/cccppc/mmarker.cls +++ /dev/null @@ -1,32 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// mmarker.cls : Match marker token oszt ly. -// 1999, Csisz r Levente - -// Match markereket t rol˘ token. - -class MMARKER TOKEN - - attrib mNum // A match marker sorsz ma egy makr˘ definĄci˘ban. - - attrib nextToken // A regular match markerek olyanok, hogy az - // elemz“ el“re n‚z a k”vetkez“ tokenhez. - // Ezt a tokent t rolja itt. Ha nil, akkor - // nincs ilyen token. - rmethod oinit(id,str,file,line,pos) - // Inicializ lja az objektumot. Az str lesz a match marker neve. - - nmethod getName() - -metaclass - - rmethod onew(id,str,file,line,pos) - - - nmethod isMatchMarker(aToken) - // Meg llpĄtja, hogy az aToken egy match marker-e. - // Ret: .t., ha igezn, .f., ha nem. - diff --git a/harbour/samples/cccppc/mmarker.och b/harbour/samples/cccppc/mmarker.och deleted file mode 100644 index 3cad893792..0000000000 --- a/harbour/samples/cccppc/mmarker.och +++ /dev/null @@ -1,299 +0,0 @@ -// MMARKER.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:25, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_TOKEN_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "TOKEN.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "TOKEN.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "TOKEN.och" -#endif // _STRICT_PARENT_ -#endif // CA_TOKEN_N - -#ifndef _CA_CM_ONLY_ -#ifndef _MMARKER_OCH_ -#define _MMARKER_OCH_ - - -#xtranslate MMARKER.:id => \[CA_OBJECT_N+1\] -#xtranslate MMARKER.:str => \[CA_OBJECT_N+2\] -#xtranslate MMARKER.:file => \[CA_OBJECT_N+3\] -#xtranslate MMARKER.:line => \[CA_OBJECT_N+4\] -#xtranslate MMARKER.:pos => \[CA_OBJECT_N+5\] -#xtranslate MMARKER.:classify => \[CA_OBJECT_N+6\] -#xtranslate MMARKER.:error => \[CA_OBJECT_N+7\] -#xtranslate MMARKER.:eqtype => \[CA_OBJECT_N+8\] - - -#xtranslate MMARKER.:oinit => (OBJGEN.():(4)) -#xtranslate MMARKER.:getclass => (OBJGEN.():(5)) -#xtranslate MMARKER.:isclass => (OBJGEN.():(6)) -#xtranslate MMARKER.:getattrib => (OBJGEN.():(7)) -#xtranslate MMARKER.:setattrib => (OBJGEN.():(8)) -#xtranslate MMARKER.:iserror => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate MMARKER.:errorstr => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate MMARKER.:printtostr => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate MMARKER.:getstr => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate MMARKER.:copytoken => (OBJGEN.():(CM_OBJECT_N+5)) - - -#xtranslate MMARKER.:mnum => \[CA_TOKEN_N+1\] -#xtranslate MMARKER.:nexttoken => \[CA_TOKEN_N+2\] - -// ™r”k”lve: oinit(id,str,file,line,pos) -// Specifik lva: getname() - -// ™r”k”lve: oinit(id,str,file,line,pos) -#xtranslate MMARKER.:getname => (OBJGEN.():(CM_TOKEN_N+1)) - -#endif // _MMARKER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_MMARKER_N -#define CA_MMARKER_N CA_TOKEN_N+2 -#define CM_MMARKER_N CM_TOKEN_N+1 -#endif // CA_MMARKER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _MMARKERCLASS_OCH_ -#define _MMARKERCLASS_OCH_ - -********************************************************************** -#xtranslate C.MMARKER: => (MMARKERCLASS.clMMARKER():) -#xtranslate C.MMARKER:self() => (clMMARKER()) - - -#xtranslate MMARKERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate MMARKERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate MMARKERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate MMARKERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate MMARKERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate MMARKERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate MMARKERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate MMARKERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate MMARKERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate MMARKERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate MMARKERCLASS.:errstrarray => \[CA_BEHAVIOR_N+1\] -#xtranslate MMARKERCLASS.:equivclass => \[CA_BEHAVIOR_N+2\] - - -#xtranslate MMARKERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate MMARKERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate MMARKERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate MMARKERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate MMARKERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate MMARKERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate MMARKERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate MMARKERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate MMARKERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate MMARKERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate MMARKERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate MMARKERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate MMARKERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate MMARKERCLASS.:onewerror => (OBJGEN.():(CM_BEHAVIOR_N+1)) -#xtranslate MMARKERCLASS.:copyfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+2)) -#xtranslate MMARKERCLASS.:findclassify => (OBJGEN.():(CM_BEHAVIOR_N+3)) - - - -// ™r”k”lve: onew(id,str,file,line,pos) -// Specifik lva: ismatchmarker(aToken) - -// ™r”k”lve: onew(id,str,file,line,pos) -#xtranslate MMARKERCLASS.:ismatchmarker => (OBJGEN.():(CM_TOKENCLASS_N+1)) - -#endif // _MMARKERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_MMARKERCLASS_N -#define CA_MMARKERCLASS_N CA_TOKENCLASS_N+0 -#define CM_MMARKERCLASS_N CM_TOKENCLASS_N+1 -#endif // CA_MMARKERCLASS_N - - -********************************************************************** -#ifdef _MMARKER_PRG_ -#ifndef _MMARKER_PRG_OCH_ -#define _MMARKER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => MMARKER.(othis): -#xtranslate thisclass: => MMARKERCLASS.(this:getClass()): -#define CTHIS MMARKER - - -********************************************************************** -#xtranslate this: => MMARKER.(this): - -#xcommand implement oinit(id,str,file,line,pos) => ; - static function oinit(this,id,str,file,line,pos) -#xcommand implement getname() => static function getname(this) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export oinit(id,str,file,line,pos) => ; - function oinit(this,id,str,file,line,pos) -#xcommand implement export getname() => function getname(this) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(8)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:errorstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:printtostr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:getstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:copytoken => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+5)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(4)]:={|this,id,str,file,line,pos| oinit(this,id,str,file,line,pos)} - pOsztaly[(CM_TOKEN_N+1)]:={|this| getname(this)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_TOKEN_N+1-CA_NIL_N] := {CA_TOKEN_N+1,'mnum', } - ta[CA_TOKEN_N+2-CA_NIL_N] := {CA_TOKEN_N+2,'nexttoken', } - - tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos',nil} - tm[(CM_TOKEN_N+1)-CM_NIL_N] := {(CM_TOKEN_N+1),'getname','',nil} -return nil - -#ifndef _NO_CLMMARKER_ -#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 clMMARKER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcMMARKERCLASS():onew(; - clTOKEN(),; - "MMARKER",; - CA_MMARKER_N,; - CM_MMARKER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLMMARKER_ - -#ifndef _NO_MMARKERCLASS_ - -********************************************************************** -#xtranslate class: => MMARKERCLASS.(class): - -#xcommand cimplement onew(id,str,file,line,pos) => ; - static function onew(class,id,str,file,line,pos) -#xcommand cimplement ismatchmarker(aToken) => ; - static function ismatchmarker(class,aToken) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(id,str,file,line,pos) => ; - function onew(class,id,str,file,line,pos) -#xcommand cimplement export ismatchmarker(aToken) => ; - function ismatchmarker(class,aToken) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) -#xtranslate superclass:onewerror => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+1)) -#xtranslate superclass:copyfromtoken => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+2)) -#xtranslate superclass:findclassify => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+3)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos| onew(class,id,str,file,line,pos)} - pOsztaly[(CM_TOKENCLASS_N+1)]:={|class,aToken| ismatchmarker(class,aToken)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos',nil} - tm[(CM_TOKENCLASS_N+1)-CM_NIL_N] := {(CM_TOKENCLASS_N+1),'ismatchmarker','aToken',nil} -return nil - -********************************************************************** -#ifndef _NO_MCMMARKERCLASS_ -#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 mcMMARKERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcTOKENCLASS(),; - "MMARKERCLASS",; - CA_MMARKERCLASS_N,; - CM_MMARKERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCMMARKERCLASS_ - -#endif // _NO_MMARKERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(id,str,file,line,pos) -local o:=class:ocreate() - - MMARKER.o:oinit(id,str,file,line,pos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(id,str,file,line,pos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _MMARKER_PRG_OCH_ -#endif // _MMARKER_PRG_ diff --git a/harbour/samples/cccppc/mmarker.prg b/harbour/samples/cccppc/mmarker.prg deleted file mode 100644 index a2d378941c..0000000000 --- a/harbour/samples/cccppc/mmarker.prg +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// mmarker.prg: az MMARKER oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -#define _MMARKER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "mmarker.och" - -//******************************************************************* -implement oinit(id,str,file,line,pos) - super:oinit(id,str,file,line,pos) - this:mNum :=nil -return this - -//******************************************************************* -implement getName() -return this:str - - -//******************************************************************* -cimplement isMatchMarker(aToken) -// Meg llpĄtja, hogy az aToken egy match marker-e. -// Ret: .t., ha igezn, .f., ha nem. -static idMatchMarkers:={; - TKID_REGULAR_MATCH_MARKER ,; - TKID_WILD_MATCH_MARKER ,; - TKID_EXT_EXPR_MATCH_MARKER ,; - TKID_LIST_MATCH_MARKER ,; - TKID_RESTRICTED_MATCH_MARKER ; -} - -return 0!=ascan(idMatchMarkers,TOKEN.aTOken:id) - -//******************************************************************* - - diff --git a/harbour/samples/cccppc/mparser.cls b/harbour/samples/cccppc/mparser.cls deleted file mode 100644 index 79d8deb0cd..0000000000 --- a/harbour/samples/cccppc/mparser.cls +++ /dev/null @@ -1,136 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// mparser.cls: A sorokban a makr˘kat (define, command, xcommand, -// translate, xtranslate) helyettesĄti. -// 1999, Csisz r Levente - -// A PARSER-t“l ”r”k”l. -// A n‚v ‚s a sor (lparser) elemz“  ltal k‚szĄtett tokeneket v r az -// inputr˘l. ltal ban a hparser ut n van. - -class MPARSER PARSER - - attrib soreleje - // attrib defdict - - attrib makroBuf // Itt tartja azokat a tokeneket, amiket egy - // makr˘ v ltoz˘hoz rendel elemz‚skor. - - nmethod startMakroBuf(item) - // Inicializ lja a makroBuf-t. Ha az item nem nil, akkor beteszi - // els“ elemnek. - - nmethod rdsMakroBuf() - // Ugyanaz, mint az rds(), csak a makro buf-ban is vezeti. - - nmethod unrdsMakroBuf(n) - // Ugyanaz, mint az unrds(n), csak a makro buf-ban is vezeti. - - rmethod readItem() - // Olvas egy elemet. - // Ret: Az elem, ha OK, nil, ha v‚ge van a streamnek, vagy ha - // hiba volt. - - nmethod parseFun(edefdict) - // Ez v‚gzi a t‚nyleges elemz‚st. - // A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - // Elemezi az inputon a '(',...')' param‚tereket. - // Az edefdict-nek a -hez tartoz˘ makr˘ definĄci˘nak kell - // lennie. - - // Ret: {sikeres,itemLista} - // Ha sikeres volt, akkor a sikeres==.t., ‚s az itemLista a csere - // eredm‚nye. - // Ha nem volt sikeres, akkor a sikeres==.f., ‚s az itemLista a - // beolvasott (el“reolvasott) itemek list ja. - // A parserBufferben csak egy token lehet, ami az item-ben is - // van. - - // nmethod printDefDict() - - nmethod parseTokenList(leftTokenList,cmd4,paramValues,toEOL) - - nmethod parseXtr(extrdict) - // Ez v‚gzi a t‚nyleges elemz‚st. - // A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - // Elemezi az inputon az extrdict tokenjeit. - - // Ret: {sikeres,itemLista} - // Ha sikeres volt, akkor a sikeres==.t., ‚s az itemLista a csere - // eredm‚nye. - // Ha nem volt sikeres, akkor a sikeres==.f., ‚s az itemLista a - // beolvasott (el“reolvasott) itemek list ja. - // A parserBufferben csak egy token lehet, ami az item-ben is - // van. - - nmethod parseXtrTree(trdictTree,mi,toEOL) - // Ez v‚gzi a t‚nyleges elemz‚st. - // A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - // Elemezi az inputon az extrdict tokenjeit. - - // Ret: {sikeres,itemLista} - // Ha sikeres volt, akkor a sikeres==.t., ‚s az itemLista a csere - // eredm‚nye. - // Ha nem volt sikeres, akkor a sikeres==.f., ‚s az itemLista a - // beolvasott (el“reolvasott) itemek list ja. - // A parserBufferben csak egy token lehet, ami az item-ben is - // van. - - nmethod mleftXNToken(leftToken,cmd4) - // Match left xtranslate normal token. - - nmethod mleftXMRToken(leftToken,cmd4,paramValues,nUres) - // Match left xtranslate malterset token - - nmethod mleftXRMMToken(leftToken,cmd4) - // Match left xtranslate regular match marker - - nmethod mleftXWMToken(leftToken) - // Match left xtranslate wild match marker - - nmethod mleftXEEMToken(leftToken) - // Match left xtranslate extended expression match marker - - nmethod mleftXLMToken(leftToken,cmd4) - // Match left xtranslate list match marker - - nmethod mleftXRSMMToken(leftToken,cmd4) - // Match left xtranslate restricted match marker - - // rmethod oinit(inputReader,name,defDict) - rmethod oinit(inputReader,name,errorStream) - - -metaclass - - // rmethod onew(inputReader,name,defDict) - rmethod onew(inputReader,name,errorStream) - - nmethod getCloseParent(aChar) - // Ha az aChar egy nyit˘ z r˘jel, akkor a a csuk˘ p rj t adja, - // egy‚bk‚nt nil-t. - - nmethod trimTokenList(tList) - // A tList elej‚r“l ‚s v‚g‚r“l elt volĄtja az res tokeneket. - // Ret: a tList. - - - nmethod parse(item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) - // Elemzi ‚s az item-el kezd“d“ ‚s az inputReader  ltal defini lt - // folyammal folytat˘d˘ folyamot, ‚s ha tal l benne az itemmel - // kezd“d“ makr˘t, akkor megadja, hogy azt mire kell cser‚lni. - // Ret: {sikeres,itemLista} - // Ha sikeres volt, akkor a sikeres==.t., ‚s az itemLista a csere - // eredm‚nye. - // Ha nem volt sikeres, akkor a sikeres==.f., ‚s az itemLista a - // beolvasott (el“reolvasott) itemek list ja. - - - // Mj.: Jelenleg az item csak nil vagy TOKEN lehet. - - - // nmethod isTkBinaryOp(tkId,tkStr) - diff --git a/harbour/samples/cccppc/mparser.och b/harbour/samples/cccppc/mparser.och deleted file mode 100644 index 6a46728dac..0000000000 --- a/harbour/samples/cccppc/mparser.och +++ /dev/null @@ -1,445 +0,0 @@ -// MPARSER.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:41:19, 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 _MPARSER_OCH_ -#define _MPARSER_OCH_ - - -#xtranslate MPARSER.:name => \[CA_OBJECT_N+1\] -#xtranslate MPARSER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate MPARSER.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate MPARSER.:inputreader => \[CA_READER_N+1\] -#xtranslate MPARSER.:item => \[CA_TREADER_N+1\] -#xtranslate MPARSER.:parserbuffer => \[CA_TREADER_N+2\] - - -#xtranslate MPARSER.:oinit => (OBJGEN.():(4)) -#xtranslate MPARSER.:getclass => (OBJGEN.():(5)) -#xtranslate MPARSER.:isclass => (OBJGEN.():(6)) -#xtranslate MPARSER.:getattrib => (OBJGEN.():(7)) -#xtranslate MPARSER.:setattrib => (OBJGEN.():(8)) -#xtranslate MPARSER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate MPARSER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate MPARSER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate MPARSER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate MPARSER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate MPARSER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate MPARSER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate MPARSER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate MPARSER.:readinput => (OBJGEN.():(CM_READER_N+1)) -#xtranslate MPARSER.:unreadinput => (OBJGEN.():(CM_READER_N+2)) -#xtranslate MPARSER.:addinputreader => (OBJGEN.():(CM_READER_N+3)) -#xtranslate MPARSER.:putparserbuffer => (OBJGEN.():(CM_TREADER_N+1)) -#xtranslate MPARSER.:getparserbuffer => (OBJGEN.():(CM_TREADER_N+2)) -#xtranslate MPARSER.:unputparserbuffer => (OBJGEN.():(CM_TREADER_N+3)) -#xtranslate MPARSER.:ungetparserbuffer => (OBJGEN.():(CM_TREADER_N+4)) -#xtranslate MPARSER.:clearparserbuffer => (OBJGEN.():(CM_TREADER_N+5)) -#xtranslate MPARSER.:rds => (OBJGEN.():(CM_TREADER_N+6)) -#xtranslate MPARSER.:unrds => (OBJGEN.():(CM_TREADER_N+7)) -#xtranslate MPARSER.:strparserbuffer => (OBJGEN.():(CM_TREADER_N+8)) -#xtranslate MPARSER.:arrayparserbuffer => (OBJGEN.():(CM_TREADER_N+9)) - - -#xtranslate MPARSER.:soreleje => \[CA_PARSER_N+1\] -#xtranslate MPARSER.:makrobuf => \[CA_PARSER_N+2\] - -// Specifik lva: startmakrobuf(item) -// Specifik lva: rdsmakrobuf() -// Specifik lva: unrdsmakrobuf(n) -// ™r”k”lve: readitem() -// Specifik lva: parsefun(edefdict) -// Specifik lva: parsetokenlist(leftTokenList,cmd4,paramValues,toEOL) -// Specifik lva: parsextr(extrdict) -// Specifik lva: parsextrtree(trdictTree,mi,toEOL) -// Specifik lva: mleftxntoken(leftToken,cmd4) -// Specifik lva: mleftxmrtoken(leftToken,cmd4,paramValues,nUres) -// Specifik lva: mleftxrmmtoken(leftToken,cmd4) -// Specifik lva: mleftxwmtoken(leftToken) -// Specifik lva: mleftxeemtoken(leftToken) -// Specifik lva: mleftxlmtoken(leftToken,cmd4) -// Specifik lva: mleftxrsmmtoken(leftToken,cmd4) -// ™r”k”lve: oinit(inputReader,name,errorStream) - -#xtranslate MPARSER.:startmakrobuf => (OBJGEN.():(CM_PARSER_N+1)) -#xtranslate MPARSER.:rdsmakrobuf => (OBJGEN.():(CM_PARSER_N+2)) -#xtranslate MPARSER.:unrdsmakrobuf => (OBJGEN.():(CM_PARSER_N+3)) -// ™r”k”lve: readitem() -#xtranslate MPARSER.:parsefun => (OBJGEN.():(CM_PARSER_N+4)) -#xtranslate MPARSER.:parsetokenlist => (OBJGEN.():(CM_PARSER_N+5)) -#xtranslate MPARSER.:parsextr => (OBJGEN.():(CM_PARSER_N+6)) -#xtranslate MPARSER.:parsextrtree => (OBJGEN.():(CM_PARSER_N+7)) -#xtranslate MPARSER.:mleftxntoken => (OBJGEN.():(CM_PARSER_N+8)) -#xtranslate MPARSER.:mleftxmrtoken => (OBJGEN.():(CM_PARSER_N+9)) -#xtranslate MPARSER.:mleftxrmmtoken => (OBJGEN.():(CM_PARSER_N+10)) -#xtranslate MPARSER.:mleftxwmtoken => (OBJGEN.():(CM_PARSER_N+11)) -#xtranslate MPARSER.:mleftxeemtoken => (OBJGEN.():(CM_PARSER_N+12)) -#xtranslate MPARSER.:mleftxlmtoken => (OBJGEN.():(CM_PARSER_N+13)) -#xtranslate MPARSER.:mleftxrsmmtoken => (OBJGEN.():(CM_PARSER_N+14)) -// ™r”k”lve: oinit(inputReader,name,errorStream) - -#endif // _MPARSER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_MPARSER_N -#define CA_MPARSER_N CA_PARSER_N+2 -#define CM_MPARSER_N CM_PARSER_N+14 -#endif // CA_MPARSER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _MPARSERCLASS_OCH_ -#define _MPARSERCLASS_OCH_ - -********************************************************************** -#xtranslate C.MPARSER: => (MPARSERCLASS.clMPARSER():) -#xtranslate C.MPARSER:self() => (clMPARSER()) - - -#xtranslate MPARSERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate MPARSERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate MPARSERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate MPARSERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate MPARSERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate MPARSERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate MPARSERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate MPARSERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate MPARSERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate MPARSERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate MPARSERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate MPARSERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate MPARSERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate MPARSERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate MPARSERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate MPARSERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate MPARSERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate MPARSERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate MPARSERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate MPARSERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate MPARSERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate MPARSERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate MPARSERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(inputReader,name,errorStream) -// Specifik lva: getcloseparent(aChar) -// Specifik lva: trimtokenlist(tList) -// Specifik lva: parse(item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) - -// ™r”k”lve: onew(inputReader,name,errorStream) -#xtranslate MPARSERCLASS.:getcloseparent => (OBJGEN.():(CM_PARSERCLASS_N+1)) -#xtranslate MPARSERCLASS.:trimtokenlist => (OBJGEN.():(CM_PARSERCLASS_N+2)) -#xtranslate MPARSERCLASS.:parse => (OBJGEN.():(CM_PARSERCLASS_N+3)) - -#endif // _MPARSERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_MPARSERCLASS_N -#define CA_MPARSERCLASS_N CA_PARSERCLASS_N+0 -#define CM_MPARSERCLASS_N CM_PARSERCLASS_N+3 -#endif // CA_MPARSERCLASS_N - - -********************************************************************** -#ifdef _MPARSER_PRG_ -#ifndef _MPARSER_PRG_OCH_ -#define _MPARSER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => MPARSER.(othis): -#xtranslate thisclass: => MPARSERCLASS.(this:getClass()): -#define CTHIS MPARSER - - -********************************************************************** -#xtranslate this: => MPARSER.(this): - -#xcommand implement startmakrobuf(item) => ; - static function startmakrobuf(this,item) -#xcommand implement rdsmakrobuf() => static function rdsmakrobuf(this) -#xcommand implement unrdsmakrobuf(n) => ; - static function unrdsmakrobuf(this,n) -#xcommand implement readitem() => static function readitem(this) -#xcommand implement parsefun(edefdict) => ; - static function parsefun(this,edefdict) -#xcommand implement parsetokenlist(leftTokenList,cmd4,paramValues,toEOL) => ; - static function parsetokenlist(this,leftTokenList,cmd4,paramValues,toEOL) -#xcommand implement parsextr(extrdict) => ; - static function parsextr(this,extrdict) -#xcommand implement parsextrtree(trdictTree,mi,toEOL) => ; - static function parsextrtree(this,trdictTree,mi,toEOL) -#xcommand implement mleftxntoken(leftToken,cmd4) => ; - static function mleftxntoken(this,leftToken,cmd4) -#xcommand implement mleftxmrtoken(leftToken,cmd4,paramValues,nUres) => ; - static function mleftxmrtoken(this,leftToken,cmd4,paramValues,nUres) -#xcommand implement mleftxrmmtoken(leftToken,cmd4) => ; - static function mleftxrmmtoken(this,leftToken,cmd4) -#xcommand implement mleftxwmtoken(leftToken) => ; - static function mleftxwmtoken(this,leftToken) -#xcommand implement mleftxeemtoken(leftToken) => ; - static function mleftxeemtoken(this,leftToken) -#xcommand implement mleftxlmtoken(leftToken,cmd4) => ; - static function mleftxlmtoken(this,leftToken,cmd4) -#xcommand implement mleftxrsmmtoken(leftToken,cmd4) => ; - static function mleftxrsmmtoken(this,leftToken,cmd4) -#xcommand implement oinit(inputReader,name,errorStream) => ; - static function oinit(this,inputReader,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export startmakrobuf(item) => ; - function startmakrobuf(this,item) -#xcommand implement export rdsmakrobuf() => function rdsmakrobuf(this) -#xcommand implement export unrdsmakrobuf(n) => ; - function unrdsmakrobuf(this,n) -#xcommand implement export readitem() => function readitem(this) -#xcommand implement export parsefun(edefdict) => ; - function parsefun(this,edefdict) -#xcommand implement export parsetokenlist(leftTokenList,cmd4,paramValues,toEOL) => ; - function parsetokenlist(this,leftTokenList,cmd4,paramValues,toEOL) -#xcommand implement export parsextr(extrdict) => ; - function parsextr(this,extrdict) -#xcommand implement export parsextrtree(trdictTree,mi,toEOL) => ; - function parsextrtree(this,trdictTree,mi,toEOL) -#xcommand implement export mleftxntoken(leftToken,cmd4) => ; - function mleftxntoken(this,leftToken,cmd4) -#xcommand implement export mleftxmrtoken(leftToken,cmd4,paramValues,nUres) => ; - function mleftxmrtoken(this,leftToken,cmd4,paramValues,nUres) -#xcommand implement export mleftxrmmtoken(leftToken,cmd4) => ; - function mleftxrmmtoken(this,leftToken,cmd4) -#xcommand implement export mleftxwmtoken(leftToken) => ; - function mleftxwmtoken(this,leftToken) -#xcommand implement export mleftxeemtoken(leftToken) => ; - function mleftxeemtoken(this,leftToken) -#xcommand implement export mleftxlmtoken(leftToken,cmd4) => ; - function mleftxlmtoken(this,leftToken,cmd4) -#xcommand implement export mleftxrsmmtoken(leftToken,cmd4) => ; - function mleftxrsmmtoken(this,leftToken,cmd4) -#xcommand implement export oinit(inputReader,name,errorStream) => ; - function oinit(this,inputReader,name,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 m–veleti blokkjaival. - pOsztaly[(CM_PARSER_N+1)]:={|this,item| startmakrobuf(this,item)} - pOsztaly[(CM_PARSER_N+2)]:={|this| rdsmakrobuf(this)} - pOsztaly[(CM_PARSER_N+3)]:={|this,n| unrdsmakrobuf(this,n)} - pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)} - pOsztaly[(CM_PARSER_N+4)]:={|this,edefdict| parsefun(this,edefdict)} - pOsztaly[(CM_PARSER_N+5)]:={|this,leftTokenList,cmd4,paramValues,toEOL| parsetokenlist(this,leftTokenList,cmd4,paramValues,toEOL)} - pOsztaly[(CM_PARSER_N+6)]:={|this,extrdict| parsextr(this,extrdict)} - pOsztaly[(CM_PARSER_N+7)]:={|this,trdictTree,mi,toEOL| parsextrtree(this,trdictTree,mi,toEOL)} - pOsztaly[(CM_PARSER_N+8)]:={|this,leftToken,cmd4| mleftxntoken(this,leftToken,cmd4)} - pOsztaly[(CM_PARSER_N+9)]:={|this,leftToken,cmd4,paramValues,nUres| mleftxmrtoken(this,leftToken,cmd4,paramValues,nUres)} - pOsztaly[(CM_PARSER_N+10)]:={|this,leftToken,cmd4| mleftxrmmtoken(this,leftToken,cmd4)} - pOsztaly[(CM_PARSER_N+11)]:={|this,leftToken| mleftxwmtoken(this,leftToken)} - pOsztaly[(CM_PARSER_N+12)]:={|this,leftToken| mleftxeemtoken(this,leftToken)} - pOsztaly[(CM_PARSER_N+13)]:={|this,leftToken,cmd4| mleftxlmtoken(this,leftToken,cmd4)} - pOsztaly[(CM_PARSER_N+14)]:={|this,leftToken,cmd4| mleftxrsmmtoken(this,leftToken,cmd4)} - pOsztaly[(4)]:={|this,inputReader,name,errorStream| oinit(this,inputReader,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - 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,'makrobuf', } - - tm[(CM_PARSER_N+1)-CM_NIL_N] := {(CM_PARSER_N+1),'startmakrobuf','item',nil} - tm[(CM_PARSER_N+2)-CM_NIL_N] := {(CM_PARSER_N+2),'rdsmakrobuf','',nil} - tm[(CM_PARSER_N+3)-CM_NIL_N] := {(CM_PARSER_N+3),'unrdsmakrobuf','n',nil} - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil} - tm[(CM_PARSER_N+4)-CM_NIL_N] := {(CM_PARSER_N+4),'parsefun','edefdict',nil} - tm[(CM_PARSER_N+5)-CM_NIL_N] := {(CM_PARSER_N+5),'parsetokenlist','leftTokenList,cmd4,paramValues,toEOL',nil} - tm[(CM_PARSER_N+6)-CM_NIL_N] := {(CM_PARSER_N+6),'parsextr','extrdict',nil} - tm[(CM_PARSER_N+7)-CM_NIL_N] := {(CM_PARSER_N+7),'parsextrtree','trdictTree,mi,toEOL',nil} - tm[(CM_PARSER_N+8)-CM_NIL_N] := {(CM_PARSER_N+8),'mleftxntoken','leftToken,cmd4',nil} - tm[(CM_PARSER_N+9)-CM_NIL_N] := {(CM_PARSER_N+9),'mleftxmrtoken','leftToken,cmd4,paramValues,nUres',nil} - tm[(CM_PARSER_N+10)-CM_NIL_N] := {(CM_PARSER_N+10),'mleftxrmmtoken','leftToken,cmd4',nil} - tm[(CM_PARSER_N+11)-CM_NIL_N] := {(CM_PARSER_N+11),'mleftxwmtoken','leftToken',nil} - tm[(CM_PARSER_N+12)-CM_NIL_N] := {(CM_PARSER_N+12),'mleftxeemtoken','leftToken',nil} - tm[(CM_PARSER_N+13)-CM_NIL_N] := {(CM_PARSER_N+13),'mleftxlmtoken','leftToken,cmd4',nil} - tm[(CM_PARSER_N+14)-CM_NIL_N] := {(CM_PARSER_N+14),'mleftxrsmmtoken','leftToken,cmd4',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','inputReader,name,errorStream',nil} -return nil - -#ifndef _NO_CLMPARSER_ -#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 clMPARSER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcMPARSERCLASS():onew(; - clPARSER(),; - "MPARSER",; - CA_MPARSER_N,; - CM_MPARSER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLMPARSER_ - -#ifndef _NO_MPARSERCLASS_ - -********************************************************************** -#xtranslate class: => MPARSERCLASS.(class): - -#xcommand cimplement onew(inputReader,name,errorStream) => ; - static function onew(class,inputReader,name,errorStream) -#xcommand cimplement getcloseparent(aChar) => ; - static function getcloseparent(class,aChar) -#xcommand cimplement trimtokenlist(tList) => ; - static function trimtokenlist(class,tList) -#xcommand cimplement parse(item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) => ; - static function parse(class,item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(inputReader,name,errorStream) => ; - function onew(class,inputReader,name,errorStream) -#xcommand cimplement export getcloseparent(aChar) => ; - function getcloseparent(class,aChar) -#xcommand cimplement export trimtokenlist(tList) => ; - function trimtokenlist(class,tList) -#xcommand cimplement export parse(item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) => ; - function parse(class,item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,inputReader,name,errorStream| onew(class,inputReader,name,errorStream)} - pOsztaly[(CM_PARSERCLASS_N+1)]:={|class,aChar| getcloseparent(class,aChar)} - pOsztaly[(CM_PARSERCLASS_N+2)]:={|class,tList| trimtokenlist(class,tList)} - pOsztaly[(CM_PARSERCLASS_N+3)]:={|class,item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg| parse(class,item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','inputReader,name,errorStream',nil} - tm[(CM_PARSERCLASS_N+1)-CM_NIL_N] := {(CM_PARSERCLASS_N+1),'getcloseparent','aChar',nil} - tm[(CM_PARSERCLASS_N+2)-CM_NIL_N] := {(CM_PARSERCLASS_N+2),'trimtokenlist','tList',nil} - tm[(CM_PARSERCLASS_N+3)-CM_NIL_N] := {(CM_PARSERCLASS_N+3),'parse','item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg',nil} -return nil - -********************************************************************** -#ifndef _NO_MCMPARSERCLASS_ -#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 mcMPARSERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcPARSERCLASS(),; - "MPARSERCLASS",; - CA_MPARSERCLASS_N,; - CM_MPARSERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCMPARSERCLASS_ - -#endif // _NO_MPARSERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(inputReader,name,errorStream) -local o:=class:ocreate() - - MPARSER.o:oinit(inputReader,name,errorStream) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(inputReader,name,errorStream) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _MPARSER_PRG_OCH_ -#endif // _MPARSER_PRG_ diff --git a/harbour/samples/cccppc/mparser.prg b/harbour/samples/cccppc/mparser.prg deleted file mode 100644 index 55fd9a8cea..0000000000 --- a/harbour/samples/cccppc/mparser.prg +++ /dev/null @@ -1,1993 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// mparser.prg: A mparser oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -// A sorokban a makr˘kat (define, command, xcommand, translate, -// xtranslate) helyettesĄti. -// A PARSER-t“l ”r”k”l. -// A n‚v ‚s a sor (lparser) elemz“  ltal k‚szĄtett tokeneket v r az -// inputr˘l. ltal ban a hparser ut n van. - - -/* - Algoritmus: - Olvas az inputj r˘l addig, amĄg el nem d”nti, hogy - helyettesĄteni kell vagy nem. Ha igen, akkor a helyettesĄt‚s - eredm‚ny‚t visszarakja az inputj ra, ha pedig nem - kellett helyettesĄteni, akkor azt kirakja az outputra. - Ezekut n mindig nil-t ad olvas sra. -*/ - -// #define DEBUG -//******************************************************************* -#include "debug.ch" - - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#define _STRICT_PARENT_ -#include "token.och" -#include "tokenst.och" -#include "edefdict.och" -#include "defdict.och" -#include "extrdict.och" -#include "xtrdict.och" -#include "reader.och" -#include "mmarker.och" -#include "tbuffer.och" -// #include "prtree.och" - -#include "maltrset.och" -#include "rsmmarkr.och" -// #include "prserr.och" - -//******************************************************************* -#include "cr_lf.ch" -#include "ctoken.ch" -// #include "prserr.ch" - -//******************************************************************* -// ™sszehasonlĄtja a (tkId, tkStr)-t egy karaterrel. -#define eqTkChar(tkId,tkStr,aChar) ((tkId)==TKID_CHAR .and.; - (tkStr)==(aChar)) - -//******************************************************************* -// Megn‚zi, hogy, ha a token TKID_CHAR, akkor a tkStr benne van-e -// az aString-ben. -#define eqTkInCharList(tkId,tkStr,aString) ((tkId)==TKID_CHAR .and.; - (tkStr)$(aString)) - - -#define PVT_IDX 1 -#define PVT_NAME 2 - -//******************************************************************* -#define _MPARSER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "mparser.och" - -//******************************************************************* -// implement oinit(inputReader,name,defdict,errorStream) -implement oinit(inputReader,name,errorStream) - - super:oinit(inputReader,name,errorStream) - // this:errorItem:=nil - // this:defdict:=defdict - -return this - -//******************************************************************* -implement startMakroBuf(item) - if (item==nil) - this:makroBuf:={} - else - this:makroBuf:={item} - endif -return nil - -//******************************************************************* -implement rdsMakroBuf() -local w - - w:=this:rds() - if (this:item!=nil) - aadd(this:makroBuf,this:item) - endif -return w - -//******************************************************************* -implement unrdsMakroBuf(n) -local w,m - - w:=this:unrds(n) - m:=len(this:makroBuf)-w - asize(this:makroBuf,if(m>0,m,0)) - -return w - -//******************************************************************* -implement readItem() - outerr("MPARSER.o:readItem(): Ez a m–velet nem hĄvhat˘!",crlf()) -return super:readItem() - -#ifdef OLD -local w,tkId,tkStr - - /* - Olvas a puffer-be: - - ha n‚v, ‚s az szerepel a define sz˘t rban, akkor - akkor indĄt egy define elemz“t. - Ez az elemz“ elmenti a parserBuffer-t, majd elv‚gzi - a define objektum elemz‚s‚t. - */ - - while(nil==(w:=this:getParserBuffer()) .and.; - nil!=(w:=super:readInput()) .and.; - TOKEN.w:id==TKID_NEV) - - this:item:=w - // Ez itt nem j”het ki! - outerr("mparser: readItem",crlf()) - this:putParserBuffer(w) - this:parseFun() - - end while -return w -#endif - -//******************************************************************* -implement parseFun(edefdict) -/* - Ez v‚gzi a t‚nyleges elemz‚st. - A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - Elemezi az inputon a '(',...')' param‚tereket. - Az edefdict-nek a -hez tartoz˘ makr˘ definĄci˘nak kell - lennie. - - Ret: {sikeres,itemLista} - Ha sikeres volt, akkor a sikeres==.t., ‚s az itemLista a csere - eredm‚nye. - Ha nem volt sikeres, akkor a sikeres==.f., ‚s az itemLista a - beolvasott (el“reolvasott) itemek list ja. - A parserBufferben csak egy token lehet, ami az item-ben is - van. -*/ - -// Mj.: Elemz‚skor elfogadja az res param‚tereket is, ezeket csak a -// helyettesĄt‚skor sz–rjk ki. Ez az‚rt van Ągy, mert res -// param‚ter Łgy is lehet res, hogy maga a token lista csupa -// res tokenb“l  ll. - -local state,tkId,tkStr,ujsor -local tList,i -local success,params,currentParam -local parentStack -#define STF_START "start" -#define STF_EXPR "expr" -#define STF_PARENT "parent" - - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - - if (EDEFDICT.edefdict:params==nil) - // Param‚terek nincsenek. - // Ez csak egy -> ,... tĄpusŁ helyettesĄt‚s. - this:unputParserBuffer() - return {.t.,EDEFDICT.edefdict:change()} - endif - - // Most elemezzk a '(',...')' -t. - - parentStack:={} // Itt vannak a z r˘jelek. - state:=STF_START - success:=.f. - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - - if (state==STF_START) - if (tkId==TKID_URES) - // Maradunk - // state:=state - elseif (tkId==TKID_CHAR .and. tkStr=="(") - // Kezd“dik az elemz‚s. - currentParam:={} - params:={} - state:=STF_EXPR - else - // V‚ge. Ide tartozik a sorv‚gjel is. - exit - endif - elseif (state==STF_EXPR) - if (tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";")) - // V‚ge. - exit - elseif (tkId==TKID_URES) - // Maradunk - // state:=state - aadd(currentParam,this:item) - elseif (tkId==TKID_CHAR .and. tkStr==")") - // V‚ge a param‚ter list nak. - aadd(params,currentParam) - success:=.t. - exit - elseif (tkId==TKID_CHAR .and. tkStr==",") - // —j param‚ter kezd“dik. - aadd(params,currentParam) - currentParam:={} - state:=STF_EXPR - elseif (tkId==TKID_CHAR .and.; - (tkStr=="(" .or. tkStr=="{" .or. tkStr=="[")) - // El kell menni a k”vetkez“ csuk˘ig, k”zben figyelni, - // hogy rendesen z r˘jelezve van-e. - aadd(currentParam,this:item) - aadd(parentStack,thisclass:getCloseParent(tkStr)) - state:=STF_PARENT - else - // Ez a param‚terhez tartozik. - aadd(currentParam,this:item) - endif - elseif (state==STF_PARENT) - if (ujsor) - // V‚ge. - exit - elseif (tkId==TKID_URES) - // Maradunk - // state:=state - aadd(currentParam,this:item) - elseif (tkId==TKID_CHAR .and.; - (tkStr=="(" .or. tkStr=="{" .or. tkStr=="[")) - // El kell menni a k”vetkez“ csuk˘ig, k”zben figyelni, - // hogy rendesen z r˘jelezve van-e. - aadd(currentParam,this:item) - aadd(parentStack,thisclass:getCloseParent(tkStr)) - // Maradunk - elseif (tkId==TKID_CHAR .and. tkStr==alast(parentStack)) - aadd(currentParam,this:item) - asize(parentStack,len(parentStack)-1) - if (len(parentStack)==0) - state:=STF_EXPR - endif - elseif (tkId==TKID_NEV) - aadd(currentParam,this:item) - else - // Ez a param‚terhez tartozik. - aadd(currentParam,this:item) - endif - else - ? "MPARSER:parseFun(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - - if (success .and.; - len(params)==1 .and.; - 0==ascan(params[1],{|x| !TOKEN.x:id==TKID_URES})) - asize(params,0) - endif - - if (success .and. len(params)==len(EDEFDICT.edefdict:params)) - // Sikerlt az elemz‚s, most meg kell csin lni a cser‚t. - for i:=1 to len(params) - params[i]:=thisclass:trimTokenList(params[i]) - if (empty(params[i])) - return {.f.,this:arrayParserBuffer()} - endif - end for - #ifdef DEBUG - outerr(crlf()) - outerr("define change: ",EDEFDICT.edefdict:printStr(),crlf()) - for i:=1 to len(params) - outerr("params[",i,"]: ") - aeval(params[i],{|t| outerr(TOKEN.t:getStr())}) - outerr(crlf()) - end for - #endif - return {.t.,EDEFDICT.edefdict:change(params)} - endif - // Nem sikerlt az elemz‚s. -return {.f.,this:arrayParserBuffer()} - -//******************************************************************* -// implement printDefDict() -// return DEFDICT.(this:defdict):printStr() - -//******************************************************************* -cimplement getCloseParent(aChar) -// Ha az aChar egy nyit˘ z r˘jel, akkor a a csuk˘ p rj t adja, -// egy‚bk‚nt nil-t. - - if (aChar=="(") - return ")" - elseif (aChar=="{") - return "}" - elseif (aChar=="[") - return "]" - endif -return nil - -//******************************************************************* -cimplement trimTokenList(tList) -// A tList elej‚r“l ‚s v‚g‚r“l elt volĄtja az res tokeneket. -// Ret: a tList. -local i - - while(!empty(tList)) - if (TOKEN.(tList[1]):id!=TKID_URES) - exit - endif - adel(tList,1) - asize(tList,len(tList)-1) - end while - - for i:=len(tList) to 1 step -1 - if (TOKEN.(tList[i]):id!=TKID_URES) - asize(tList,i) - exit - endif - end for - -return tList - -//******************************************************************* -cimplement parse(item,inputReader,name,defdict,edefdict,xtrdict,mi,errorStream,ujsor,trPrsAlg) -/* - Itt az item csak TOKEN lehet vagy nil. - Az inputReader-nek kell indĄtania az Łj elemz“ket. - - Az algoritmus: - Megn‚zi a define sz˘t rban, ha megvan, akkor indĄt egy - elemz“t r , ha az sikeres, akkor visszat‚r, ha nem sikeres, akkor - visszateszi a beolvasott token sort az inputra, elkezdi indĄtani - r  az xtranslate makr˘kat. - Egy xtranslate makr˘ indĄt sa: - - - IndĄtja a makr˘t, ha sikeres, akkor visszat‚r, ha nem, - akkor a token sort visszateszi az inputra. - - A maxim lis hosszŁs gŁ tokensort meg kell “rizni, ‚s - azt adni teljes sikertelens‚g eset‚n. - M sik lehet“s‚g, hogy ravaszkodunk: beiktatunk egy  tmeneti - puffert az inputunk el‚ (ez az mcontrol!), ‚s - azt adjuk sikertelens‚g eset‚n. -*/ - -// Nem teljesen korrekt, mert az elemz“t minden alkalommal legy rtja. - -local othis,w,match,xtrList,xcmList -local i,j - - if (nil==item) - return {item} - endif - - match:={.f.,{item}} - // if (TOKEN.item:id==TKID_NEV .and.; - // nil!=(edefdict:=DEFDICT.(defdict):atKey(TOKEN.item:str))) - if (edefdict!=nil) - - othis:=class:onew(inputReader,name,defdict,xtrdict,errorStream) - othis:item:=item - othis:putParserBuffer(item) - match:=othis:parseFun(edefdict) - // Az othis inputj ra visszatett tokeneket itt ki kellene venni! - // Persze most ilyen nem lehet, mert ebb“l az objektumb˘l senki - // sem olvas. - if (match[1]) - // Az illesz‚s sikeres volt. - return match - endif - endif - - // #define XTR_SEQ - if (trPrsAlg==TRPRA_SEQ) - // Szekvenci lis illeszt‚s. - xtrList:=XTRDICT.xtrdict:getExtrList(item) - if (ujsor) - xcmList:=XTRDICT.xtrdict:getExtrList(item,.t.) - xtrList:=aconcatenate(xcmList,xtrList) - //xtrList:=aconcatenate(xtrList,xcmList) - endif - - // H tulr˘l el“re haladunk. - for i:=len(xtrList) to 1 step -1 - // Az els“ maga az item, ez‚rt azt nem kell visszatenni. - for j:=len(match[2]) to 2 step -1 - READER.inputReader:unread(match[2][j]) - end for - othis:=class:onew(inputReader,name,defdict,xtrdict,errorStream) - othis:item:=item - othis:putParserBuffer(item) - - match:=othis:parseXtr(xtrList[i]) - - // Az othis inputj ra visszatett tokeneket itt ki kellene venni! - // Persze most ilyen nem lehet, mert ebb“l az objektumb˘l senki - // sem olvas. - - if (match[1]) - // Az illesz‚s sikeres volt. - return match - endif - end for - elseif (mi[1]!=0 .or. mi[2]!=0) - // Fa bej r sos illeszt‚s. - - // El“sz”r az xtranslate-eket illesztjk. - for j:=len(match[2]) to 2 step -1 - READER.inputReader:unread(match[2][j]) - end for - if (mi[1]!=0) - othis:=class:onew(inputReader,name,defdict,xtrdict,errorStream) - othis:item:=item - othis:putParserBuffer(item) - - match:=othis:parseXtrTree(XTRDICT.xtrdict:trdictTree,mi[1],.f.) - - // Az othis inputj ra visszatett tokeneket itt ki kellene venni! - // Persze most ilyen nem lehet, mert ebb“l az objektumb˘l senki - // sem olvas. - - if (match[1]) - // Az illesz‚s sikeres volt. - return match - endif - endif - - if (ujsor .and. mi[2]!=0) - // Azut n az xcommand-okat. - for j:=len(match[2]) to 2 step -1 - READER.inputReader:unread(match[2][j]) - end for - othis:=class:onew(inputReader,name,defdict,xtrdict,errorStream) - othis:item:=item - othis:putParserBuffer(item) - - match:=othis:parseXtrTree(XTRDICT.xtrdict:cmdictTree,mi[2],.t.) - - // Az othis inputj ra visszatett tokeneket itt ki kellene venni! - // Persze most ilyen nem lehet, mert ebb“l az objektumb˘l senki - // sem olvas. - - if (match[1]) - // Az illesz‚s sikeres volt. - return match - endif - endif - // else - // for j:=len(match[2]) to 2 step -1 - // READER.inputReader:unread(match[2][j]) - // end for - endif -return match - -//******************************************************************* -static function nextLeftToken(o) -// Az o Ągy n‚z ki: {iLeft,leftTokenlist} -// Az iLeft mindig a beolvasand˘ra mutat -local t - - while(o[1]<=len(o[2])) - t:=o[2][o[1]] - o[1]++ - if (TOKEN.t:id!=TKID_URES) - return t - endif - end while -return nil - -//******************************************************************* -static function addMatchParam(paramValues,idx,name,tokenList) - if (paramValues[1]==PVT_IDX) - if (len(paramValues[2]) Nem illeszkedik semmire. - return .f. - endif - - nUres:=0 - // utNemUresItem:=this:item - - while(this:item!=nil) - leftTkId:=TOKEN.leftToken:id - leftTkStr:=TOKEN.leftToken:str - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - - if (tkId==TKID_URES) - // Maradunk - // aadd(tokenList,this:item) - nUres++ - elseif (ujsor) - // V‚ge. - // Illeszkedett, ha a leftToken egy alternatĄva, mert r  az - // res is illeszkedik, nem illeszkedett, ha nem az. - // Ha illeszkedett, akkor a v‚g‚r“l az Łjsort ‚s az reseket - // vissza kell tenni az inputra. - if (leftTkId==TKID_MALTERSET) - this:unrds(nUres+1) - // this:item:=utNemUresItem - // Itt nem kell a toEOL-t vizsg lni. - return .t. - endif - exit - else - if (leftTkId==TKID_MALTERSET) - this:mleftXMRToken(leftToken,cmd4,paramValues,nUres) - match:=.t. - this:makroBuf:=nil - elseif (leftTkId==TKID_REGULAR_MATCH_MARKER) - match:=this:mleftXRMMToken(leftToken,cmd4) - elseif (leftTkId==TKID_WILD_MATCH_MARKER) - match:=this:mleftXWMToken(leftToken) - elseif (leftTkId==TKID_EXT_EXPR_MATCH_MARKER) - match:=this:mleftXEEMToken(leftToken) - elseif (leftTkId==TKID_LIST_MATCH_MARKER) - match:=this:mleftXLMToken(leftToken,cmd4) - elseif (leftTkId==TKID_RESTRICTED_MATCH_MARKER) - match:=this:mleftXRSMMToken(leftToken,cmd4) - else - // Egy‚b illeszked‚s. - match:=this:mleftXNToken(leftToken,cmd4) - this:makroBuf:=nil - endif - nUres:=0 - if (!match) - // Az illeszt‚s nem sikerlt ==> V‚ge. - exit - endif - // Az illeszt‚s sikerlt, az eredm‚ny a tokenList-ben van, - // megynk tov bb. - if (this:makroBuf!=nil) - addMatchParam(paramValues,; - MMARKER.leftToken:mNum,; - MMARKER.leftToken:getName(),; - this:makroBuf) - endif - leftToken:=nextLeftToken(oLeftTList) - endif - if (nil==leftToken) - // V‚gig ‚rtnk a tokenlist n. - // Ha a toEOL nem res, akkor meg kell n‚zni, hogy a sor - // v‚g‚n vagyunk-e vagy a sor v‚g‚ig csak resek vannak-e. - if (!empty(toEOL)) - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - if (tkId==TKID_URES) - // Megynk tov bb. - nUres++ - elseif (ujsor) - this:unrds(nUres+1) - return .t. - else - return .f. - endif - this:rds() - end while - endif - return .t. - endif - this:rds() - end while - -return .f. -#endif - -local oLeftTList,leftToken,retVal,gone - - oLeftTList:={1,leftTokenList} - - if (nil==(leftToken:=nextLeftToken(oLeftTList))) - // šres ==> Nem illeszkedik semmire. - return 0 - endif - - gone:=.f. - while(0!=(retVal:=matchLeftToken(this,leftToken,cmd4,paramValues,toEOL))) - if (retVal==2) - gone:=.t. - endif - if (nil==(leftToken:=nextLeftToken(oLeftTList))) - if (nilLeftToken(this,toEOL)) - return if(gone,2,1) - endif - // Nem illeszkedett. - return 0 - endif - this:rds() - end while - - // Az illeszt‚s nem sikerlt. -return 0 - -//******************************************************************* -static function nilLeftToken(this,toEOL) -// Akkor kell hĄvni, amikor a leftToken nil -local tkId,tkStr,ujsor,nUres - - nUres:=0 - // V‚gig ‚rtnk a tokenlist n. - // Ha a toEOL nem res, akkor meg kell n‚zni, hogy a sor - // v‚g‚n vagyunk-e vagy a sor v‚g‚ig csak resek vannak-e. - if (!empty(toEOL)) - this:rds() - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - if (tkId==TKID_URES) - // Megynk tov bb. - nUres++ - elseif (ujsor) - this:unrds(nUres+1) - return .t. - else - // Az illeszt‚s nem sikerlt. - return .f. - endif - this:rds() - end while - endif -return .t. - -//******************************************************************* -static function matchLeftToken(this,leftToken,cmd4,paramValues,toEOL) -// Illeszt egy matchToken-t az inputra. -// A leftToken-nek nem nil-nek kell lennie. -// Ret: 0: Ha nem sikerlt az illeszt‚s. -// Ekkor a parserBuffer-ben vannak a beolvasott tokenek. -// -// 1: Ha sikerlt az illeszt‚s, de nem ment el“re. (Pl. egy res -// alternatĄva. -// -// 2: Ha sikerlt az illeszt‚s ‚s el“re is ment. -local tkId,tkStr,ujsor -local tList,i -local oLeftTList, leftTkId, leftTkStr -local match -local w -local nUres -local gone:=.t. - - nUres:=0 - while(this:item!=nil) - leftTkId:=TOKEN.leftToken:id - leftTkStr:=TOKEN.leftToken:str - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - - if (tkId==TKID_URES) - // Maradunk - // aadd(tokenList,this:item) - nUres++ - elseif (ujsor) - // V‚ge. - // Illeszkedett, ha a leftToken egy alternatĄva, mert r  az - // res is illeszkedik, nem illeszkedett, ha nem az. - // Ha illeszkedett, akkor a v‚g‚r“l az Łjsort ‚s az reseket - // vissza kell tenni az inputra. - if (leftTkId==TKID_MALTERSET) - this:unrds(nUres+1) - // this:item:=utNemUresItem - // Itt nem kell a toEOL-t vizsg lni. - // Illeszkedik, de nem ment el“re. - return 1 - endif - // Az illeszt‚s nem sikerlt. - return 0 //exit - else - if (leftTkId==TKID_MALTERSET) - gone:=this:mleftXMRToken(leftToken,cmd4,paramValues,nUres) - match:=.t. - this:makroBuf:=nil - elseif (leftTkId==TKID_REGULAR_MATCH_MARKER) - match:=this:mleftXRMMToken(leftToken,cmd4) - elseif (leftTkId==TKID_WILD_MATCH_MARKER) - match:=this:mleftXWMToken(leftToken) - elseif (leftTkId==TKID_EXT_EXPR_MATCH_MARKER) - match:=this:mleftXEEMToken(leftToken) - elseif (leftTkId==TKID_LIST_MATCH_MARKER) - match:=this:mleftXLMToken(leftToken,cmd4) - elseif (leftTkId==TKID_RESTRICTED_MATCH_MARKER) - match:=this:mleftXRSMMToken(leftToken,cmd4) - else - // Egy‚b illeszked‚s. - match:=this:mleftXNToken(leftToken,cmd4) - this:makroBuf:=nil - endif - nUres:=0 - if (!match) - // Az illeszt‚s nem sikerlt ==> V‚ge. - return 0 // exit - endif - // Az illeszt‚s sikerlt, az eredm‚ny a tokenList-ben van, - // megynk tov bb. - if (this:makroBuf!=nil) - addMatchParam(paramValues,; - MMARKER.leftToken:mNum,; - MMARKER.leftToken:getName(),; - this:makroBuf) - endif - // Tov bb. - return if(gone,2,1) - // leftToken:=nextLeftToken(oLeftTList) - endif - this:rds() - end while - - // Egy olyan sor, aminek nincs sorv‚gjele. - if (leftTkId==TKID_MALTERSET) - this:unrds(nUres+1) - // this:item:=utNemUresItem - // Itt nem kell a toEOL-t vizsg lni. - // Illeszkedik, de nem ment el“re. - return 1 - endif - // Az illeszt‚s nem sikerlt. -return 0 //exit - - -//******************************************************************* -static function markParamValues(paramValues) -local mark,i - - mark:=array(len(paramValues[2])) - for i:=1 to len(paramValues[2]) - if (paramValues[2][i]!=nil) - mark[i]:=len(paramValues[2][i]) - endif - end for -return mark - -//******************************************************************* -static function restoreParamValues(paramValues,mark) -local i - - for i:=1 to len(mark) - if (mark[i]==nil) - paramValues[2][i]:=nil - else - asize(paramValues[2][i],mark[i]) - endif - end for - - for i:=len(mark)+1 to len(paramValues[2]) - paramValues[2][i]:=nil - endfor - -return nil - -//******************************************************************* -function parseDictTree(this,dictTree,cmd4,paramValues,toEOL,mi) -/* - Elemez egy dictTree-t. V‚gigpr˘b lja a fa minden  g t. - Elv‚gzi a helyettesĄt‚st Ąs, hogy folytathassa az elemz‚st, ha - a helyettesĄt‚s nem v‚gezhet“ el. - Ha az mi meg van adva, akkor az mi index– node-t˘l indul. - tree:=nodeList - node:={token,nodeList[,extrDict]} - nodeList:={node1,...} - - Ret: nil, ha nem sikerlt illeszteni, vagy nem lehetett - helyettesĄteni. - tokenList: A helyettesĄt‚s eredm‚nye, ha sikerlt illeszteni - ‚s sikerlt helyettesĄteni. -*/ -local l,item,markParamValues -local i//,retVal -local extrDict,befejezheto -local mL,mItem,mMarkParamValues -local resultTkList - - l:=TBUFFER.(this:parserBuffer):bItemNumber() - item:=this:item - - // Megynk a node-okon a legfels“ szinten, ha tal lunk - // illeszked‚st, akkor a fa tov bbi r‚sz‚t is illesztjk, ha - // nem, akkor visszal‚pnk. - markParamValues:=markParamValues(paramValues) - for i:=if(empty(mi),1,mi) to len(dictTree) - if (0!=(/*retVal:=*/matchLeftToken(this,dictTree[i][1],cmd4,paramValues,toEOL))) - // Illeszkedett - // Megn‚zzk, hogy lehet-e tov bb menni. - befejezheto:=len(dictTree[i])>=3 .and. dictTree[i][3]!=nil - if (len(dictTree[i][2])>0) - // Megynk lefel‚ a f ban ezen a node-on. - if (befejezheto) - mL:=TBUFFER.(this:parserBuffer):bItemNumber() - mItem:=this:item - mMarkParamValues:=markParamValues(paramValues) - endif - this:rds() - if (nil!=(resultTkList:=parseDictTree(this,dictTree[i][2],cmd4,paramValues,toEOL))) - // Sikerlt. - return resultTkList - endif - if (befejezheto) - // Vissza kell l‚pni. - this:unrds(TBUFFER.(this:parserBuffer):bItemNumber()-mL) - this:item:=mItem - restoreParamValues(paramValues,mMarkParamValues) - endif - endif - - // Megn‚zzk, hogy itt be lehet-e fejezni. - if (befejezheto) - // Be lehet fejezni! - if (nilLeftToken(this,toEOL)) - extrDict:=dictTree[i][3] - asize(paramValues[2],EXTRDICT.extrdict:numMatchMarkers) - if (nil!=(resultTkList:=EXTRDICT.extrdict:change(paramValues[2]))) - return resultTkList - endif - // Nem sikerlt az elemz‚s. - endif - // Vissza kell l‚pni. - endif - this:unrds(TBUFFER.(this:parserBuffer):bItemNumber()-l) - this:item:=item - restoreParamValues(paramValues,markParamValues) - // Nem sikerlt. - // elseif (retVal) - // // Sikerlt. - // // Ide nem j”het! - // outerr("parseDictTree: retVal==.t.: Ide nem j”het!",newline()) - // this:unrds(TBUFFER.(this:parserBuffer):bItemNumber()-l) - // this:item:=item - // restoreParamValues(paramValues,markParamValues) - // return nil - else - // Itt vissza kell l‚pni, ‚s Łjra pr˘b lkozni. - this:unrds(TBUFFER.(this:parserBuffer):bItemNumber()-l) - this:item:=item - restoreParamValues(paramValues,markParamValues) - endif - end while - // A befejez‚st itt nem kell n‚zni, mert a legfels“ szinten - // nem lehet befejezni (az az res szab ly lenne), az als˘bb - // szinteken pedig a hĄv˘ n‚zi. -return nil - -//******************************************************************* -implement parseXtr(extrdict) -/* - Ez v‚gzi a t‚nyleges elemz‚st. - A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - Elemezi az inputon az extrdict tokenjeit. - - Ret: {sikeres,itemLista} - Ha sikeres volt, akkor a sikeres==.t., ‚s az itemLista a csere - eredm‚nye. - Ha nem volt sikeres, akkor a sikeres==.f., ‚s az itemLista a - beolvasott (el“reolvasott) itemek list ja. - A parserBufferben csak egy token lehet, ami az item-ben is - van. -*/ - -local paramValues,w -#ifdef DEBUG -local i -#endif - - paramValues:={PVT_IDX,array(EXTRDICT.extrdict:numMatchMarkers)} - if (0!=this:parseTokenList(EXTRDICT.extrdict:leftSide,; - EXTRDICT.extrdict:cmdType==XTRTYPE_COMMAND .or.; - EXTRDICT.extrdict:cmdType==XTRTYPE_TRANSLATE,; - paramValues,; - EXTRDICT.extrdict:cmdType==XTRTYPE_XCOMMAND .or.; - EXTRDICT.extrdict:cmdType==XTRTYPE_COMMAND)) - // Sikerlt az elemz‚s, most meg kell csin lni a cser‚t. - #ifdef DEBUG - outerr(crlf()) - outerr("xtranslate change: ",EXTRDICT.extrdict:printStr(),crlf()) - // for i:=1 to len(tokenList) - // outerr("left[",i,"]: ",TOKEN.tokenList[i]:getStr(),crlf()) - // end for - #endif - if (nil!=(w:=EXTRDICT.extrdict:change(paramValues[2]))) - return {.t.,w} - endif - endif - // Nem sikerlt az elemz‚s. -return {.f.,this:arrayParserBuffer()} - -//******************************************************************* -implement parseXtrTree(trdictTree,mi,toEOL) -/* - Ez v‚gzi a t‚nyleges elemz‚st. - A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - Elemezi az inputon az extrdict tokenjeit. - Az mi index– node-t˘l indul. - - Ret: {sikeres,itemLista} - Ha sikeres volt, akkor a sikeres==.t., ‚s az itemLista a csere - eredm‚nye. - Ha nem volt sikeres, akkor a sikeres==.f., ‚s az itemLista a - beolvasott (el“reolvasott) itemek list ja. - A parserBufferben csak egy token lehet, ami az item-ben is - van. -*/ - -local paramValues,w//,extrDict -#ifdef DEBUG -local i -#endif - - paramValues:={PVT_IDX,{}} - if (nil!=(w:=parseDictTree(this,trdictTree,; - .f.,; - paramValues,; - toEOL,mi))) - - // Sikerlt az elemz‚s, a cser‚t a parserDict()-nek kell - // csin lnia, hogy tov bb folytathassa az elemz‚st, ha - // a helyettesĄt‚st nem lehet elv‚gezni. - #ifdef OLD - asize(paramValues[2],EXTRDICT.extrdict:numMatchMarkers) - #ifdef DEBUG - outerr(crlf()) - outerr("xtranslate change: ",EXTRDICT.extrdict:printStr(),crlf()) - // for i:=1 to len(tokenList) - // outerr("left[",i,"]: ",TOKEN.tokenList[i]:getStr(),crlf()) - // end for - #endif - if (nil!=(w:=EXTRDICT.extrdict:change(paramValues[2]))) - return {.t.,w} - endif - #endif - return {.t.,w} - endif - // Nem sikerlt az elemz‚s. -return {.f.,this:arrayParserBuffer()} - -//******************************************************************* -function isMatchNToken(tkId,tkStr,mTkId,mTkStr,cmd4) -// Egy norm l token illeszkedi-e egy norm l (bal oldalon l‚v“) -// tokenre. -// Mj.: A tk ‚s az mTk nem cser‚lhet“ fel egym ssal! - - if (tkId==TKID_NEV) - return mTkId==TKID_NEV .and. compareWNames(tkStr,mTkStr,cmd4) - elseif (tkId==TKID_STRING) - return mTkId==TKID_STRING .and. compareWNames(tkStr,mTkStr,cmd4) - endif -return tkId==mTkId .and. tkStr==mTkStr - -//******************************************************************* -implement mleftXNToken(leftToken,cmd4) -/* - Match left xtranslate normal token. - Norm l token (nem match ‚s nem malterset) elemz“. - A this:item-ben lev“ tokent vizsg lja, m‚g olvashat. - Ha az illeszt‚s sikertelen, akkor a plusz beolvasott tokeneket - visszateszi az inputra ‚s a this:item-et vissza llĄtja. -*/ -local tkId, tkStr - - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - - if (isMatchNToken(tkId,tkStr,; - TOKEN.leftToken:id,TOKEN.leftToken:str,; - TOKEN.leftToken:eqType/*cmd4*/)) - return .t. - endif -return .f. - -//******************************************************************* -static function connectParamValues(paramValues,wParamValues) -local i - - if (paramValues[1]==PVT_IDX) - if (len(paramValues[2])-kat vissza kell rakni az - // inputra. - this:unrds(nUres) -return gone - -//******************************************************************* -static function compareWNames(name,trName,cmd4) -// A name (ami az elemzend“ sorban van) illeszkedik-e a translate -// bal oldal n lev“ token-re. -// Sajnos nem n‚gy hosszan, hanem minimum 4 hosszan kell hasonlĄtani, -// ‚s nem mindegy, hogy mi illeszkedik mire. - - // Ez kell!!! - if (len(name)>len(trName)) - return .f. - endif - - if (empty(cmd4) .or. len(name)<4) - return lower(name)==lower(trName) - endif - -// Mj.: Ez l‚nyeg‚ben egy '=' (”sszehasonlĄt s), de az '=' -// obsoleted. -return (lower(name)==lower(left(trName,len(name)))) - -//******************************************************************* -static function matchLookForward(tkId,tkStr,forwTkId,forwTkStr,forwT,cmd4) - - if (forwTkId==TKID_RESTRICTED_MATCH_MARKER) - // A spec nem n‚z el“re ebben az esetben, ez‚rt ez nem kell. - #ifdef OLD - // Sajnos ez egyenl“re nem j˘, mert a wordList-ben tokeneknek - // kellene lennie, hogy a stringeket kl”n kezelhessk, - // ezenkĄv–l az resekn‚l meg kellene  llni, etc. - // De ez egyenl“re nincs kitesztelve. - // Ez‚rt egyenl“re a stringeket kihagyjuk. - if (tkId==TKID_NEV .or.; - tkId==TKID_SZAMTOMB .or.; - ;//tkId==TKID_STRING .or.; - tkId==TKID_CHAR) - return 0!=ascan(RSMMARKR.forwT:wordList,; - {|x| compareWNames(tkStr,x,RSMMARKR.forwT:eqType/*cmd4*/)}) - endif - #endif - return .f. - elseif (forwTkId==TKID_NEV .or. forwTkID==TKID_STRING) - // A neveket ‚s a stringeket 'case insensitive' m˘don kell - // ”sszehasonlĄtani. - return tkId==forwTkId .and. compareWNames(tkStr,forwTkStr,RSMMARKR.forwT:eqType/*cmd4*/) - endif - - // Itt m‚g lehetnek csavar sok pl. a sz mokat ‚rt‚kk szerint, - // vagy a stringeket Łgy, hogy nem sz mĄt mivel hat rolt k etc. -return tkId==forwTkId .and. tkStr==forwTkStr - -//******************************************************************* -implement mleftXRMMToken(leftToken,cmd4) -/* - Regular Match marker. - Addig megy, amĄg egy kifejez‚s tart, vagy el nem ‚ri a - leftToken:nextToken-t. - Sajnos a specifik ci˘ nem k”vetkezetes: - Pl: Ez nem egy kifejez‚s: 'a*+b', ez viszont igen: 'a*(+b)' - - A cmd4 az el“ren‚z‚shez kell. -*/ -local state - -#define STXRMM_START "start" -#define STXRMM_PARENT "parent" - -local tkId,tkStr,ujsor -local parentStack -// local iForwRead -local clfBuf,clfNumBuf,elvalaszt -local clf -local endToken,endTkId,endTkStr - - this:startMakrobuf(this:item) - clfBuf:={} - clfNumBuf:={} - - // iForwRead:=1 - - // Itt ki kell sz–rni az '='-t, mert azzal kifejez‚s nem kezd“dhet. - // Kihaszn ljuk, hogy this:item Łjsor ‚s res nem lehet. - if (TOKEN.(this:item):id==TKID_CHAR .and.; - TOKEN.(this:item):classify=='=') - // Vajon itt kell unrds()? - this:unrdsMakroBuf() - return .f. - endif - - endToken:=MMARKER.leftToken:nextToken - if (MMARKER.leftToken:nextToken!=nil) - endTkId:=TOKEN.(MMARKER.leftToken:nextToken):id - endTkStr:=TOKEN.(MMARKER.leftToken:nextToken):str - else - endTkId:=nil - endTkStr:=nil - endif - - elvalaszt:=nil - state:=STXRMM_START - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - - PDEBUG(outerr("mleftXRMMToken: ","state: ",state, "tkId: ",tkId, "tkStr: ", tkStr,crlf())) - if (state==STXRMM_START) - if (ujsor) - // V‚ge! - exit - elseif (matchLookForward(tkId,tkStr,endTkId,endTkStr,endToken,cmd4)) - // elseif (tkId==endTkId .and. tkStr==endTkStr) - // Ez itt probl‚m s, mert nevekn‚l, vagy stringekn‚l nem - // tudjuk, hogyan kell az ”sszehasonlĄt st csin lni. - // (case sensitive, nevekn‚l n‚gy karakter hosszan is - // lehet (translate,command) - // V‚ge! - // Mj.: Nem biztos, hogy j˘ a clBuf-beli visszal‚p‚seket - // kezelni kellene - exit - elseif (eqTkInCharList(tkId,tkStr,',')) - // V‚ge! - exit - elseif (eqTkInCharList(tkId,tkStr,')}]')) - // V‚ge! - exit - elseif (tkId==TKID_URES) - // Maradunk. - elseif (eqTkInCharList(tkId,tkStr,'({[')) - // El“sz”r megn‚zzk, hogy j”het-e itt z r˘jel. - aadd(clfBuf,TKCL_PARENT) - // Amikor kij”n a z r˘jelb“l, ide be fogja Ąrni a helyes - // sz mot. - aadd(clfNumBuf,len(this:makroBuf)) - if (nil!=(elvalaszt:=exprChk(clfBuf))) - // Nem j”het. - exit - endif - state:=STXRMM_PARENT - parentStack:={thisclass:getCloseParent(tkStr)} - elseif (nil!=(clf:=TOKEN.(this:item):classify)) - // Hozz vesszk a clfBuf-hoz, ‚s megn‚zzk, hogy - // j”het-e. - if (clf=='++' .and. len(clfBuf)>0 .and. atail(clfBuf)=='++') - clfNumBuf[len(clfNumBuf)]:=len(this:makroBuf) - else - aadd(clfBuf,clf) - aadd(clfNumBuf,len(this:makroBuf)) - if (nil!=(elvalaszt:=exprChk(clfBuf))) - // Nem j”het. - // Az elvalaszt-n l van a kifejez‚shat r. - exit - endif - endif - else - // Ide nem j”hetnk, egyenl“re elengedjk, b rmi is van - // itt. - endif - elseif (state==STXRMM_PARENT) - // Mj.: A clfNumBuf v‚g‚n a makr˘buf hossz t az‚rt kell - // vezetni, hogy az res helyeket a v‚g‚n le tudjuk - // v gni. - if (ujsor) - // V‚ge! - exit - elseif (tkId==TKID_URES) - // Maradunk. - elseif (eqTkInCharList(tkId,tkStr,'({[')) - aadd(parentStack,thisclass:getCloseParent(tkStr)) - clfNumBuf[len(clfNumBuf)]:=len(this:makroBuf) - elseif (eqTkInCharList(tkId,tkStr,')}]')) - // Ha nem illeszkedik a stack-re, akkor nem vesszk - // figyelembe, ha illeszkedik, akkor a stack-r“l - // levesszk a legfels“ elemet. - clfNumBuf[len(clfNumBuf)]:=len(this:makroBuf) - if (atail(parentStack)==tkStr) - adrop(parentStack) - if (empty(parentStack)) - state:=STXRMM_START - endif - endif - else - // B rmi m s, folytat˘dik az elemz‚s. - clfNumBuf[len(clfNumBuf)]:=len(this:makroBuf) - endif - else - ? "MPARSER:mleftXRMMToken(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rdsMakroBuf() - // iForwRead++ - end while - - if (elvalaszt==nil) - // Sor v‚ge, vessz“, etc. - // Ha a clfBuf nem res, akkor az utols˘ra l‚pnk vissza, ha - // res, nem illeszkedett! - if (len(clfBuf)==0) - this:unrdsMakroBuf(len(this:makroBuf)) - return .f. - endif - // M‚g meg kell n‚zni, hogy van-e kifejez‚shat r, Łgy, hogy - // nem lehet folytatni. - aadd(clfBuf,"newline") - aadd(clfNumBuf,len(this:makroBuf)) - if (nil==(elvalaszt:=exprChk(clfBuf))) - elvalaszt:=len(clfBuf)-1 - endif - endif - // Ilyenkor az clfNumBuf[elv laszt] azt mondja meg, hogy hova - // kell visszal‚pnnk. Ennyi tokennek kell maradnia a - // makroBuf-ban. - this:unrdsMakroBuf(len(this:makroBuf)-clfnumBuf[elvalaszt]) - // aappend(tokenList,this:makroBuf) - -return !empty(this:makroBuf) - -//******************************************************************* -#ifdef OLD -// Ez eg‚sz j˘l m–k”dik, de sokat elront. -// implement mleftXRMMToken(leftToken,tokenList) -// /* -// Regular Match marker. -// Addig megy, amĄg egy kifejez‚s tart, vagy el nem ‚ri a -// leftToken-ben megadott lez r˘ tokent. -// Sajnos a specifik ci˘ nem k”vetkezetes: -// Pl: Ez nem egy kifejez‚s: 'a*+b', ez viszont igen: 'a*(+b)' -// -// */ -// -// /* -// A kifejez‚s elemz‚s a k”vetkez“k‚ppen megy: -// -// Az elemek: -// : olyan token, ami meg llja a hely‚t ”n ll˘ -// kifejez‚sk‚nt. -// : -// '&','++','--','+','-','@','.not.','!' -// : -// '--','++' -// : -// '$','%','*','**','^','+','-','->','.and.','.or.', -// '/',':',':=', -// '<','<=','<>','!=','#','=','==','>','>=' -// -// Speci lis dolgok: -// ['.'[]] -// -// -// HelyettesĄt‚sek: -// '.not.' -> '!' -// '**' -> '^' -// -// Megjegyz‚sek: -// -// - A .and. kifejez‚sben az els“ '.' a .and.-hoz -// tartozik, mert a .and. foglalt n‚v. Ugyanez vonatkozik -// a '.or.','.not.','.t.','.f.'-re. A kis ‚s a nagybet–ket -// nem kl”nb”zteti meg. -// -// - A k‚t '&' jel ugyanŁgy megjegyz‚s, mint a '//' -// -// - Egy oper tornak tekinti a k”vetkez“ tokenek tetsz. -// kombin ci˘j t: -// -// '&','++','--','@','$','->','.and.','.or.','.not.','!',':=', -// '<','<=','<>','!=','#','=','==','>','>=','.' -// -// Mj.: A fenti oper torokat un ris oper tornak tekinti. -// -// -// Mj2.: A fentiek k”zl a k”vetkez“k maradtak ki: -// '+','-','*','**','^','/','%' -// -// - Speci lisan kezelt tokenek: -// '+': Csak bin ris lehet, el“jel nem lehet. -// '-': Bin ris ‚s el“jel lehet. -// '*','**', '^', '/','%': csak bin ris oper torok lehetnek. -// Mj.: A '*','/'-nek van egy speci lis esete l sd 'Speci lis -// esetek'. -// -// - Speci lis esetek: -// '*' '/' : Ezt elfogadja egy kifejez‚snek, de -// pl.; a '*' '/' '*' '/'-t m r nem. -// Mj.: A hely‚n nem  llhat semmit m s, m‚g Łj sor sem! -// -// - Az illeszt‚st ‚s az xtranslate elemz‚st is tokenesen -// csin lja (argh...) Pl.: ez a k‚t xtranslate parancs kl”nb”zik -// egym st˘l: -// -// #xtranslate HUHU := => let(@,) -// #xtranslate HUHU : = => let(@,) -// -// Mj.: A m sodikat el sem fogadja 'hi nyz˘ =>' hibajelz‚ssel. -// -// -// -// Lehets‚ges, hogy a kifejez‚shat rok oldal r˘l jobban meg lehet fogni -// a dolgot: -// -// :='*'|'**'|'^'|'/'|'%' -// -// : '()', '{}','[]' k”z”tt lev“ tetsz karakter -// sorozat. Az z r˘jeleken bell soha nincs -// kifejez‚shat r. -// -// : ')', '}',']' karater, amihez nincs -// megfelel“ nyit˘ z r˘jel. -// -// Ekkor a kifejez‚s hat rok: -// -// -// '+' <res> '+' -// '+' -// '-' <res> '+' -// '-' -// '-' <res> '-' <res> '-' -// -// -// -// Kiv‚tel: '*' '/' // Itt nincs kifejez‚s hat r. -// '+' -// ,,.> -// ',' -// -// Speci lis esetek: -// -// -// '~': Ezt t”rli (?) -// '`': Ezt string hat rol˘nak (") tekinti. -// '.','|': Ezeket nem tekinti hat rol˘nak. -// '&&': Ez egysoros megjegyz‚s, olyan, mint a '//' -// -// B rmilyen egy‚b esetben nincs kifejez‚s hat r. -// -// */ -// -// local state -// -// #define isTkIdNevSzam(tkId) ((tkId)==TKID_NEV .or.; -// (tkid)==TKID_SZAMTOMB) -// -// #define isTkIdLiteral(tkId) (isTkIdNevSzam(tkId) .or.; -// (tkid)==TKID_STRING) -// -// #define isTkClassify(tkId,token,clsfy) ((tkId)==TKID_CHAR .and.; -// TOKEN.(token):classify==(clsfy)) -// -// #define STXRMM_XSTART "xstart" -// #define STXRMM_START "start" -// #define STXRMM_LITERAL "literal" -// #define STXRMM_PLUS "plus" -// #define STXRMM_MINUS "minus" -// #define STXRMM_MINUS2 "minus2" -// #define STXRMM_PARENT "parent" -// #define STXRMM_CSILLAG "csillag" -// #define STXRMM_CSILLAGPER "csillagper" -// #define STXRMM_BINARY "binary" -// -// local tkId,tkStr,ujsor -// local parentStack -// local iForwRead -// local clfBuf -// -// iForwRead:=1 -// -// this:startMakrobuf(this:item) -// state:=STXRMM_XSTART -// clfBuf:={} -// -// while(this:item!=nil) -// tkId:=TOKEN.(this:item):id -// tkStr:=TOKEN.(this:item):str -// ujsor:=tkId==TKID_UJSOR .or.; -// tkId==TKID_BOS .or. tkId==TKID_EOS .or.; -// (tkId==TKID_CHAR .and. tkStr==";") -// -// PDEBUG(outerr("state: ",state, "tkId: ",tkId, "tkStr: ", tkStr,crlf())) -// if (state==STXRMM_XSTART) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (isTkClassify(tkId,this:item,'=')) -// // V‚ge! -// exit -// else -// iForwRead:=0 -// this:unrdsMakroBuf() -// state:=STXRMM_START -// endif -// elseif (state==STXRMM_START) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (isTkIdLiteral(tkId)) -// iForwRead:=0 -// state:=STXRMM_LITERAL -// elseif (eqTkInCharList(tkId,tkStr,'({[')) -// iForwRead:=0 -// state:=STXRMM_PARENT -// parentStack:={thisclass:getCloseParent(tkStr)} -// elseif (eqTkInCharList(tkId,tkStr,')}]')) -// // V‚ge (!) -// exit -// elseif (eqTkChar(tkId,tkStr,',')) -// // V‚ge (!) -// exit -// elseif (isTkClassify(tkId,this:item,'!')) -// // Ezut n soha nincs kifejez‚s hat r. -// iForwRead:=0 -// // Maradunk. -// elseif (isTkClassify(tkId,this:item,'@')) -// // Ezut n soha nincs kifejez‚s hat r. -// iForwRead:=0 -// // Maradunk. -// elseif (isTkClassify(tkId,this:item,'%')) -// // Hasonl˘ a '/'-hez ‚s a '*'-hoz, de nincs kiv‚tel. -// // Ut na j”het: '&', '- nev', '- sz m', 'nev','szam', -// // 'z r˘jel', '.t.' -// iForwRead:=0 -// // state:=STXRMM_PERCENT -// state:=STXRMM_BINARY -// elseif (isTkClassify(tkId,this:item,'^')) -// // Hasonl˘ a '/'-hez ‚s a '*'-hoz, de nincs kiv‚tel. -// // Ut na j”het: '&', '- nev', '- sz m', 'nev','szam', -// // 'z r˘jel', '.t.' -// iForwRead:=0 -// // state:=STXRMM_POW -// state:=STXRMM_BINARY -// elseif (isTkClassify(tkId,this:item,'&')) -// // Mindent elfogad. -// iForwRead:=0 -// elseif (eqTkChar(tkId,tkStr,'*')) -// // A '*' '/' speci lis eset kezel‚se. -// iForwRead:=0 -// state:=STXRMM_CSILLAG -// PDEBUG(outerr("start->csillag"+crlf())) -// elseif (eqTkChar(tkId,tkStr,'-')) -// iForwRead:=0 -// state:=STXRMM_MINUS -// elseif (eqTkChar(tkId,tkStr,'+')) -// iForwRead:=0 -// state:=STXRMM_PLUS -// elseif (isTkClassify(tkId,this:item,'=')) -// // Mivel nem ez az els“ karakter, b rmit el lehet -// // fogadni. -// iForwRead:=0 -// // Maradunk. -// /* -// elseif (isTkClassify(tkId,this:item,'/')) -// elseif (isTkClassify(tkId,this:item,'++')) -// elseif (tkId==TKID_NEV) -// elseif (tkId==TKID_SZAMTOMB) -// elseif (tkId==TKID_STRING) -// */ -// else -// // B rmi m s, maradunk. -// iForwRead:=0 -// endif -// elseif (state==STXRMM_LITERAL) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (isTkIdLiteral(tkId)) -// // V‚ge -// exit -// else -// // B rmi m s: Łjra fel kell dolgozni. -// iForwRead-- -// this:unrdsMakroBuf() -// state:=STXRMM_START -// endif -// elseif (state==STXRMM_PLUS) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (eqTkChar(tkId,tkStr,'+')) -// // V‚ge. -// exit -// elseif (thisclass:isTkBinaryOp(tkId,tkStr)) -// // *, **, ^,/,% -// // V‚ge. -// exit -// else -// // B rmi m s: Łjra fel kell -// // dolgozni. -// iForwRead-- -// this:unrdsMakroBuf() -// state:=STXRMM_START -// endif -// elseif (state==STXRMM_MINUS) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (eqTkChar(tkId,tkStr,'+')) -// // V‚ge. -// exit -// elseif (thisclass:isTkBinaryOp(tkId,tkStr)) -// // *, **, ^,/,% -// // V‚ge. -// exit -// elseif (eqTkChar(tkId,tkStr,'-')) -// state:=STXRMM_MINUS2 -// else -// // B rmi m s: Łjra fel kell dolgozni. -// iForwRead-- -// this:unrdsMakroBuf() -// state:=STXRMM_START -// endif -// elseif (state==STXRMM_MINUS2) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (isTkIdNevSzam(tkId)) // A string itt nem j˘! -// // Elmegy. -// iForwRead:=0 -// state:=STXRMM_LITERAL -// else -// // B rmi m s: kifejez‚shat r az els“ minusz ut n! -// exit -// endif -// elseif (state==STXRMM_PARENT) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (eqTkInCharList(tkId,tkStr,'({[')) -// iForwRead:=0 -// aadd(parentStack,thisclass:getCloseParent(tkStr)) -// elseif (eqTkInCharList(tkId,tkStr,')}]')) -// // Ha nem illeszkedik a stack-re, akkor nem vesszk -// // figyelembe, ha illeszkedik, akkor a stack-r“l -// // levesszk a legfels“ elemet. -// iForwRead:=0 -// if (atail(parentStack)==tkStr) -// adrop(parentStack) -// if (empty(parentStack)) -// state:=STXRMM_START -// endif -// endif -// else -// // B rmi m s, folytat˘dik az elemz‚s. -// iForwRead:=0 -// endif -// elseif (state==STXRMM_CSILLAG) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (eqTkChar(tkId,tkStr,'/')) -// state:=STXRMM_CSILLAGPER -// PDEBUG(outerr("csillag->csillagper"+crlf())) -// else -// // Az aktu lis item-et a binaris oper torok elemz“j‚vel -// // kell elemeztetni. -// iForwRead-- -// this:unrdsMakroBuf() -// state:=STXRMM_BINARY -// endif -// elseif (state==STXRMM_CSILLAGPER) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (tkId==TKID_NEV) -// // Ok. Elkerltk a kifejez‚shat rt. -// // GyorsĄtunk, egyb“l a liter lhoz megynk. -// iForwRead:=0 -// state:=STXRMM_LITERAL -// PDEBUG(outerr("csillagper->literal"+crlf())) -// else -// // A '*' ‚s a '/' k”z”tt van a kifejez‚shat r. -// exit -// endif -// elseif (state==STXRMM_BINARY) -// if (ujsor) -// // V‚ge! -// exit -// elseif (tkId==TKID_URES) -// // Maradunk. -// elseif (tkId==TKID_NEV) -// // Ok. Elkerltk a kifejez‚shat rt. -// iForwRead:=0 -// state:=STXRMM_LITERAL -// else -// // A '*' ‚s a '/' k”z”tt van a kifejez‚shat r. -// exit -// endif -// else -// ? "MPARSER:mleftXRMMToken(): Ismeretlen  llapot: ",state -// errorlevel(1) -// quit -// endif -// this:rdsMakroBuf() -// iForwRead++ -// end while -// -// this:unrdsMakroBuf(iForwRead) -// aappend(tokenList,this:makroBuf) -// -// return !empty(this:makroBuf) -#endif - -//******************************************************************* -implement mleftXWMToken(leftToken) -/* - Wild matchmarker. - - Egy '()' k”z‚ z rt sorozat, vagy a leghosszabb space mentes - sorozat. - Mj.: Ha '('-al kezd“dik, ‚s nincs lez rva, akkor is '()'-nek veszi. - Mj2.: A t”bbi z r˘jelet nem veszi figyelembe. - Mj3.: Nem n‚z el“re. - -*/ -local tkId,tkStr,ujsor - - this:startMakrobuf(this:item) - - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - - PDEBUG(outerr("mleftXWMToken: "+"tkId: ",tkId, "tkStr: ", tkStr,crlf())) - if (ujsor) - // V‚ge! - this:unrdsMakroBuf() - exit - endif - this:rdsMakroBuf() - end while - -return !empty(this:makroBuf) - - -//******************************************************************* -implement mleftXEEMToken(leftToken) -/* - Extended Expression match marker. - - Egy '()' k”z‚ z rt sorozat, vagy a leghosszabb space mentes - sorozat. - Mj.: Ha '('-al kezd“dik, ‚s nincs lez rva, akkor is '()'-nek veszi. - Mj2.: A t”bbi z r˘jelet nem veszi figyelembe. - Mj3.: Nem n‚z el“re. - -*/ -local state - -#define STXEEM_START "start" -#define STXEEM_PARENT "parent" -#define STXEEM_SOROZAT "sorozat" - -local tkId,tkStr,ujsor -local numParent - - this:startMakrobuf(this:item) - - state:=STXEEM_START - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - - PDEBUG(outerr("mleftXEEMToken: ","state: ",state, "tkId: ",tkId, "tkStr: ", tkStr,crlf())) - if (state==STXEEM_START) - if (ujsor) - // V‚ge! - this:unrdsMakroBuf() - exit - elseif (tkId==TKID_URES) - // Lenyeli - elseif (eqTkInCharList(tkId,tkStr,'(')) - // Z r˘jelezett m˘d. - numParent:=1 - state:=STXEEM_PARENT - else - // Space n‚lkli sorozat m˘d - state:=STXEEM_SOROZAT - endif - elseif (state==STXEEM_PARENT) - if (ujsor) - // V‚ge! - this:unrdsMakroBuf() - exit - elseif (eqTkInCharList(tkId,tkStr,'(')) - numParent++ - elseif (eqTkInCharList(tkId,tkStr,')')) - numParent-- - if (numParent<=0) - exit - endif - else - // B rmi m s, folytat˘dik az elemz‚s. - // Ebben benne van az res is. - endif - elseif (state==STXEEM_SOROZAT) - if (ujsor) - // V‚ge! - this:unrdsMakroBuf() - exit - elseif (tkId==TKID_URES) - // V‚ge! - this:unrdsMakroBuf() - exit - else - // B rmi m s, folytat˘dik az elemz‚s. - endif - else - ? "MPARSER:mleftXEEMToken(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rdsMakroBuf() - end while - -return !empty(this:makroBuf) - -//******************************************************************* -implement mleftXLMToken(leftToken,cmd4) -// List match marker -// Az res param‚tert (,,) megengedi. -local params:={} -local iForwRead -local tkId,tkStr,ujsor - - - this:mleftXRMMToken(leftToken,cmd4) - this:rds() - aadd(params,this:makroBuf) - - iForwRead:=1 - - while(this:item!=nil) - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - ujsor:=tkId==TKID_UJSOR .or.; - tkId==TKID_BOS .or. tkId==TKID_EOS .or.; - (tkId==TKID_CHAR .and. tkStr==";") - - if (ujsor) - // V‚ge! - exit - elseif (tkId==TKID_URES) - // Maradunk. - elseif (eqTkChar(tkId,tkStr,',')) - this:rds() - if (this:mleftXRMMToken(leftToken,cmd4)) - aadd(params,this:makroBuf) - else - aadd(params,{}) - endif - iForwRead:=0 - else - // B rmi m s, v‚ge. - exit - endif - iForwRead++ - this:rds() - end while - - this:unrds(iForwRead) - if (len(params)==1 .and. len(params[1])==0) - return .f. - endif - this:makroBuf:=params -return .t. - -//******************************************************************* -implement mleftXRSMMToken(leftToken,cmd4) -/* - Restricted match marker. - - Csan nevekre, sz mokra ‚s karakterekre illesztnk. -*/ -local tkId, tkStr,wl,i - - this:startMakrobuf(this:item) - - tkId:=TOKEN.(this:item):id - tkStr:=TOKEN.(this:item):str - - if !(tkId==TKID_NEV .or.; - tkId==TKID_SZAMTOMB .or.; - ;//tkId==TKID_STRING .or.; - tkId==TKID_CHAR) - return .f. - endif - - wl:=RSMMARKR.leftToken:wordList - if (empty(wl)) - return .f. - endif - - for i:=1 to len(wl) - if (empty(wl[i])) - this:unrdsMakrobuf() - return .t. - endif - if (compareWNames(tkStr,wl[i],TOKEN.leftToken:eqType/*cmd4*/)) - return .t. - endif - end for -return .f. - -//******************************************************************* -/* -cimplement isTkBinaryOp(tkId,tkStr) -// Ez a nem tokeniz lt v ltozat. - - if (!tkId==TKID_CHAR) - return .f. - endif - -return tkStr$"*^/%" -*/ -//******************************************************************* - - diff --git a/harbour/samples/cccppc/newline.prg b/harbour/samples/cccppc/newline.prg deleted file mode 100644 index a8a3927141..0000000000 --- a/harbour/samples/cccppc/newline.prg +++ /dev/null @@ -1,24 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// newline.prg: —j sor karakter. -// 1999, Csisz r Levente - -//******************************************************************* -function newline() -static nl -#ifdef _UNIX_ - if (nl==nil) - nl:=chr(10) - endif -#else - if (nl==nil) - nl:=chr(13)+chr(10) - endif -#endif -return nl - -//******************************************************************* - diff --git a/harbour/samples/cccppc/nparser.cls b/harbour/samples/cccppc/nparser.cls deleted file mode 100644 index eb4a3db75c..0000000000 --- a/harbour/samples/cccppc/nparser.cls +++ /dev/null @@ -1,113 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// nparser.cls: N‚v elemz“. A PARSER-t“l ”r”k”l. -// 1999, Csisz r Levente - -// Ez az elemz“ v‚gzi el az alapvet“ elemz‚seket, felbontja az input -// stream-et a k”vetkez“ tokenekre: -// - N‚v -// - sz msor (nincs benne pont '.') -// - šres -// - Megjegyz‚s (csillag, perper, percsillag) -// - String (macskak”rm”s, id‚z“jeles) -// - —jsor -// - Karakter. -// Az egy‚b tokenek mindig pontosan egy karakteresek. - -// A karaktereken kĄvl meg‚rti a k”vetkez“ egys‚geket: -// CTK_BOS,CTK_EOS,CTK_PRINTLINE -// Az EOS-ra kld egy Łj sor karatert - -// Mj.: A ';' kezel‚s‚t ‚s a sor ”sszevon sokat az lparser elemz“ -// csin lja. - -class NPARSER PARSER - - // attrib item - // attrib buf - attrib soreleje - attrib tokenPos // Egy Łj token olvas sakor a {file,line,pos}-t - // ide letesszk. A makeToken ebb“l dolgozik. - - rmethod readItem() - // Olvas egy elemet. - // Ret: Az elem, ha OK, nil, ha v‚ge van a streamnek, vagy ha - // hiba volt. - - nmethod strEolParserBuffer() - // Megadja a parserBuffer tartalm t stringk‚nt. - // A nem stringeket az eol kiv‚tel‚vel eldobja. - - nmethod makeToken(tkId,str) - // K‚szĄt egy tkId tĄpusŁ tokent 'str' tartalommal. - - nmethod makeTokenSt(tkId,stArray) - // K‚szĄt egy tkId tĄpusŁ tokenstr-t az stArray-nak megfelel“en. - - nmethod makeTokenLSt(tkId,stArray) - // K‚szĄt egy tkId tĄpusŁ tokenstr-t az stArray-nak megfelel“en. - // A str-be beĄrja a #line sort, ha a m‚lys‚g vagy a sorsz m - // nagyobb, mint 1. - - - nmethod makeErrToken(tkId,str,errCode) - // K‚szĄt egy tkId tĄpusŁ tokent 'str' tartalommal ‚s errCode - // hibak˘ddal. - - nmethod parseTPTree() - - nmethod parse() - // Ez v‚gzi a t‚nyleges elemz‚st, rekurzĄvan is lehet hĄvni. - // A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. - - nmethod parseLineComment(tkId) - // '//' vagy '*' megjegyz‚s - - nmethod parsePcComment() - // '/*'-os megjegyz‚s - - nmethod parseString(hatarolo) - // Fels“vessz“s ‚s macskak”rm”s string. - - nmethod parseName() - // N‚v. - - nmethod parseNumberArray() - // Sz m sor. Ebben csak sz mok vannak, pont nem lehet. - - - - rmethod oinit(inputReader,name,errorStream) - -metaclass - - rmethod onew(inputReader,name,errorStream) - - attrib whitespacechar - // attrib specchar - attrib startnamechar - attrib numberchar - attrib namechar - - attrib tokens - attrib tokenptree - - rmethod oinitclass() - - nmethod isWhitespacechar(c) - // nmethod isSpecchar(c) - nmethod isStartnamechar(c) - nmethod isNumberchar(c) - nmethod isNamechar(c) - - nmethod setTokens() - // Felt”lti a class:tokens v ltoz˘t az oszt lyban defini lt - // tokenekkel. - - nmethod calcTokenPTree() - // K‚szĄt egy elemz“ f t a tokenek elemz‚s‚hez a - // class:tokenPTree-be. - diff --git a/harbour/samples/cccppc/nparser.och b/harbour/samples/cccppc/nparser.och deleted file mode 100644 index 786a5564ca..0000000000 --- a/harbour/samples/cccppc/nparser.och +++ /dev/null @@ -1,463 +0,0 @@ -// NPARSER.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:39:57, 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 _NPARSER_OCH_ -#define _NPARSER_OCH_ - - -#xtranslate NPARSER.:name => \[CA_OBJECT_N+1\] -#xtranslate NPARSER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate NPARSER.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate NPARSER.:inputreader => \[CA_READER_N+1\] -#xtranslate NPARSER.:item => \[CA_TREADER_N+1\] -#xtranslate NPARSER.:parserbuffer => \[CA_TREADER_N+2\] - - -#xtranslate NPARSER.:oinit => (OBJGEN.():(4)) -#xtranslate NPARSER.:getclass => (OBJGEN.():(5)) -#xtranslate NPARSER.:isclass => (OBJGEN.():(6)) -#xtranslate NPARSER.:getattrib => (OBJGEN.():(7)) -#xtranslate NPARSER.:setattrib => (OBJGEN.():(8)) -#xtranslate NPARSER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate NPARSER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate NPARSER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate NPARSER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate NPARSER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate NPARSER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate NPARSER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate NPARSER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate NPARSER.:readinput => (OBJGEN.():(CM_READER_N+1)) -#xtranslate NPARSER.:unreadinput => (OBJGEN.():(CM_READER_N+2)) -#xtranslate NPARSER.:addinputreader => (OBJGEN.():(CM_READER_N+3)) -#xtranslate NPARSER.:putparserbuffer => (OBJGEN.():(CM_TREADER_N+1)) -#xtranslate NPARSER.:getparserbuffer => (OBJGEN.():(CM_TREADER_N+2)) -#xtranslate NPARSER.:unputparserbuffer => (OBJGEN.():(CM_TREADER_N+3)) -#xtranslate NPARSER.:ungetparserbuffer => (OBJGEN.():(CM_TREADER_N+4)) -#xtranslate NPARSER.:clearparserbuffer => (OBJGEN.():(CM_TREADER_N+5)) -#xtranslate NPARSER.:rds => (OBJGEN.():(CM_TREADER_N+6)) -#xtranslate NPARSER.:unrds => (OBJGEN.():(CM_TREADER_N+7)) -#xtranslate NPARSER.:strparserbuffer => (OBJGEN.():(CM_TREADER_N+8)) -#xtranslate NPARSER.:arrayparserbuffer => (OBJGEN.():(CM_TREADER_N+9)) - - -#xtranslate NPARSER.:soreleje => \[CA_PARSER_N+1\] -#xtranslate NPARSER.:tokenpos => \[CA_PARSER_N+2\] - -// ™r”k”lve: readitem() -// Specifik lva: streolparserbuffer() -// Specifik lva: maketoken(tkId,str) -// Specifik lva: maketokenst(tkId,stArray) -// Specifik lva: maketokenlst(tkId,stArray) -// Specifik lva: makeerrtoken(tkId,str,errCode) -// Specifik lva: parsetptree() -// Specifik lva: parse() -// Specifik lva: parselinecomment(tkId) -// Specifik lva: parsepccomment() -// Specifik lva: parsestring(hatarolo) -// Specifik lva: parsename() -// Specifik lva: parsenumberarray() -// ™r”k”lve: oinit(inputReader,name,errorStream) - -// ™r”k”lve: readitem() -#xtranslate NPARSER.:streolparserbuffer => (OBJGEN.():(CM_PARSER_N+1)) -#xtranslate NPARSER.:maketoken => (OBJGEN.():(CM_PARSER_N+2)) -#xtranslate NPARSER.:maketokenst => (OBJGEN.():(CM_PARSER_N+3)) -#xtranslate NPARSER.:maketokenlst => (OBJGEN.():(CM_PARSER_N+4)) -#xtranslate NPARSER.:makeerrtoken => (OBJGEN.():(CM_PARSER_N+5)) -#xtranslate NPARSER.:parsetptree => (OBJGEN.():(CM_PARSER_N+6)) -#xtranslate NPARSER.:parse => (OBJGEN.():(CM_PARSER_N+7)) -#xtranslate NPARSER.:parselinecomment => (OBJGEN.():(CM_PARSER_N+8)) -#xtranslate NPARSER.:parsepccomment => (OBJGEN.():(CM_PARSER_N+9)) -#xtranslate NPARSER.:parsestring => (OBJGEN.():(CM_PARSER_N+10)) -#xtranslate NPARSER.:parsename => (OBJGEN.():(CM_PARSER_N+11)) -#xtranslate NPARSER.:parsenumberarray => (OBJGEN.():(CM_PARSER_N+12)) -// ™r”k”lve: oinit(inputReader,name,errorStream) - -#endif // _NPARSER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_NPARSER_N -#define CA_NPARSER_N CA_PARSER_N+2 -#define CM_NPARSER_N CM_PARSER_N+12 -#endif // CA_NPARSER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _NPARSERCLASS_OCH_ -#define _NPARSERCLASS_OCH_ - -********************************************************************** -#xtranslate C.NPARSER: => (NPARSERCLASS.clNPARSER():) -#xtranslate C.NPARSER:self() => (clNPARSER()) - - -#xtranslate NPARSERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate NPARSERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate NPARSERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate NPARSERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate NPARSERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate NPARSERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate NPARSERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate NPARSERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate NPARSERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate NPARSERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate NPARSERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate NPARSERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate NPARSERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate NPARSERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate NPARSERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate NPARSERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate NPARSERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate NPARSERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate NPARSERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate NPARSERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate NPARSERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate NPARSERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate NPARSERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - -#xtranslate NPARSERCLASS.:whitespacechar => \[CA_PARSERCLASS_N+1\] -#xtranslate NPARSERCLASS.:startnamechar => \[CA_PARSERCLASS_N+2\] -#xtranslate NPARSERCLASS.:numberchar => \[CA_PARSERCLASS_N+3\] -#xtranslate NPARSERCLASS.:namechar => \[CA_PARSERCLASS_N+4\] -#xtranslate NPARSERCLASS.:tokens => \[CA_PARSERCLASS_N+5\] -#xtranslate NPARSERCLASS.:tokenptree => \[CA_PARSERCLASS_N+6\] - -// ™r”k”lve: onew(inputReader,name,errorStream) -// ™r”k”lve: oinitclass() -// Specifik lva: iswhitespacechar(c) -// Specifik lva: isstartnamechar(c) -// Specifik lva: isnumberchar(c) -// Specifik lva: isnamechar(c) -// Specifik lva: settokens() -// Specifik lva: calctokenptree() - -// ™r”k”lve: onew(inputReader,name,errorStream) -// ™r”k”lve: oinitclass() -#xtranslate NPARSERCLASS.:iswhitespacechar => (OBJGEN.():(CM_PARSERCLASS_N+1)) -#xtranslate NPARSERCLASS.:isstartnamechar => (OBJGEN.():(CM_PARSERCLASS_N+2)) -#xtranslate NPARSERCLASS.:isnumberchar => (OBJGEN.():(CM_PARSERCLASS_N+3)) -#xtranslate NPARSERCLASS.:isnamechar => (OBJGEN.():(CM_PARSERCLASS_N+4)) -#xtranslate NPARSERCLASS.:settokens => (OBJGEN.():(CM_PARSERCLASS_N+5)) -#xtranslate NPARSERCLASS.:calctokenptree => (OBJGEN.():(CM_PARSERCLASS_N+6)) - -#endif // _NPARSERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_NPARSERCLASS_N -#define CA_NPARSERCLASS_N CA_PARSERCLASS_N+6 -#define CM_NPARSERCLASS_N CM_PARSERCLASS_N+6 -#endif // CA_NPARSERCLASS_N - - -********************************************************************** -#ifdef _NPARSER_PRG_ -#ifndef _NPARSER_PRG_OCH_ -#define _NPARSER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => NPARSER.(othis): -#xtranslate thisclass: => NPARSERCLASS.(this:getClass()): -#define CTHIS NPARSER - - -********************************************************************** -#xtranslate this: => NPARSER.(this): - -#xcommand implement readitem() => static function readitem(this) -#xcommand implement streolparserbuffer() => ; - static function streolparserbuffer(this) -#xcommand implement maketoken(tkId,str) => ; - static function maketoken(this,tkId,str) -#xcommand implement maketokenst(tkId,stArray) => ; - static function maketokenst(this,tkId,stArray) -#xcommand implement maketokenlst(tkId,stArray) => ; - static function maketokenlst(this,tkId,stArray) -#xcommand implement makeerrtoken(tkId,str,errCode) => ; - static function makeerrtoken(this,tkId,str,errCode) -#xcommand implement parsetptree() => static function parsetptree(this) -#xcommand implement parse() => static function parse(this) -#xcommand implement parselinecomment(tkId) => ; - static function parselinecomment(this,tkId) -#xcommand implement parsepccomment() => ; - static function parsepccomment(this) -#xcommand implement parsestring(hatarolo) => ; - static function parsestring(this,hatarolo) -#xcommand implement parsename() => static function parsename(this) -#xcommand implement parsenumberarray() => ; - static function parsenumberarray(this) -#xcommand implement oinit(inputReader,name,errorStream) => ; - static function oinit(this,inputReader,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export readitem() => function readitem(this) -#xcommand implement export streolparserbuffer() => ; - function streolparserbuffer(this) -#xcommand implement export maketoken(tkId,str) => ; - function maketoken(this,tkId,str) -#xcommand implement export maketokenst(tkId,stArray) => ; - function maketokenst(this,tkId,stArray) -#xcommand implement export maketokenlst(tkId,stArray) => ; - function maketokenlst(this,tkId,stArray) -#xcommand implement export makeerrtoken(tkId,str,errCode) => ; - function makeerrtoken(this,tkId,str,errCode) -#xcommand implement export parsetptree() => function parsetptree(this) -#xcommand implement export parse() => function parse(this) -#xcommand implement export parselinecomment(tkId) => ; - function parselinecomment(this,tkId) -#xcommand implement export parsepccomment() => ; - function parsepccomment(this) -#xcommand implement export parsestring(hatarolo) => ; - function parsestring(this,hatarolo) -#xcommand implement export parsename() => function parsename(this) -#xcommand implement export parsenumberarray() => ; - function parsenumberarray(this) -#xcommand implement export oinit(inputReader,name,errorStream) => ; - function oinit(this,inputReader,name,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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)} - pOsztaly[(CM_PARSER_N+1)]:={|this| streolparserbuffer(this)} - pOsztaly[(CM_PARSER_N+2)]:={|this,tkId,str| maketoken(this,tkId,str)} - pOsztaly[(CM_PARSER_N+3)]:={|this,tkId,stArray| maketokenst(this,tkId,stArray)} - pOsztaly[(CM_PARSER_N+4)]:={|this,tkId,stArray| maketokenlst(this,tkId,stArray)} - pOsztaly[(CM_PARSER_N+5)]:={|this,tkId,str,errCode| makeerrtoken(this,tkId,str,errCode)} - pOsztaly[(CM_PARSER_N+6)]:={|this| parsetptree(this)} - pOsztaly[(CM_PARSER_N+7)]:={|this| parse(this)} - pOsztaly[(CM_PARSER_N+8)]:={|this,tkId| parselinecomment(this,tkId)} - pOsztaly[(CM_PARSER_N+9)]:={|this| parsepccomment(this)} - pOsztaly[(CM_PARSER_N+10)]:={|this,hatarolo| parsestring(this,hatarolo)} - pOsztaly[(CM_PARSER_N+11)]:={|this| parsename(this)} - pOsztaly[(CM_PARSER_N+12)]:={|this| parsenumberarray(this)} - pOsztaly[(4)]:={|this,inputReader,name,errorStream| oinit(this,inputReader,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - 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,'tokenpos', } - - 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),'streolparserbuffer','',nil} - tm[(CM_PARSER_N+2)-CM_NIL_N] := {(CM_PARSER_N+2),'maketoken','tkId,str',nil} - tm[(CM_PARSER_N+3)-CM_NIL_N] := {(CM_PARSER_N+3),'maketokenst','tkId,stArray',nil} - tm[(CM_PARSER_N+4)-CM_NIL_N] := {(CM_PARSER_N+4),'maketokenlst','tkId,stArray',nil} - tm[(CM_PARSER_N+5)-CM_NIL_N] := {(CM_PARSER_N+5),'makeerrtoken','tkId,str,errCode',nil} - tm[(CM_PARSER_N+6)-CM_NIL_N] := {(CM_PARSER_N+6),'parsetptree','',nil} - tm[(CM_PARSER_N+7)-CM_NIL_N] := {(CM_PARSER_N+7),'parse','',nil} - tm[(CM_PARSER_N+8)-CM_NIL_N] := {(CM_PARSER_N+8),'parselinecomment','tkId',nil} - tm[(CM_PARSER_N+9)-CM_NIL_N] := {(CM_PARSER_N+9),'parsepccomment','',nil} - tm[(CM_PARSER_N+10)-CM_NIL_N] := {(CM_PARSER_N+10),'parsestring','hatarolo',nil} - tm[(CM_PARSER_N+11)-CM_NIL_N] := {(CM_PARSER_N+11),'parsename','',nil} - tm[(CM_PARSER_N+12)-CM_NIL_N] := {(CM_PARSER_N+12),'parsenumberarray','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','inputReader,name,errorStream',nil} -return nil - -#ifndef _NO_CLNPARSER_ -#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 clNPARSER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcNPARSERCLASS():onew(; - clPARSER(),; - "NPARSER",; - CA_NPARSER_N,; - CM_NPARSER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLNPARSER_ - -#ifndef _NO_NPARSERCLASS_ - -********************************************************************** -#xtranslate class: => NPARSERCLASS.(class): - -#xcommand cimplement onew(inputReader,name,errorStream) => ; - static function onew(class,inputReader,name,errorStream) -#xcommand cimplement oinitclass() => static function oinitclass(class) -#xcommand cimplement iswhitespacechar(c) => ; - static function iswhitespacechar(class,c) -#xcommand cimplement isstartnamechar(c) => ; - static function isstartnamechar(class,c) -#xcommand cimplement isnumberchar(c) => ; - static function isnumberchar(class,c) -#xcommand cimplement isnamechar(c) => static function isnamechar(class,c) -#xcommand cimplement settokens() => static function settokens(class) -#xcommand cimplement calctokenptree() => ; - static function calctokenptree(class) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(inputReader,name,errorStream) => ; - function onew(class,inputReader,name,errorStream) -#xcommand cimplement export oinitclass() => function oinitclass(class) -#xcommand cimplement export iswhitespacechar(c) => ; - function iswhitespacechar(class,c) -#xcommand cimplement export isstartnamechar(c) => ; - function isstartnamechar(class,c) -#xcommand cimplement export isnumberchar(c) => ; - function isnumberchar(class,c) -#xcommand cimplement export isnamechar(c) => function isnamechar(class,c) -#xcommand cimplement export settokens() => function settokens(class) -#xcommand cimplement export calctokenptree() => ; - function calctokenptree(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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,inputReader,name,errorStream| onew(class,inputReader,name,errorStream)} - pOsztaly[(CM_OBJECT_N+4)]:={|class| oinitclass(class)} - pOsztaly[(CM_PARSERCLASS_N+1)]:={|class,c| iswhitespacechar(class,c)} - pOsztaly[(CM_PARSERCLASS_N+2)]:={|class,c| isstartnamechar(class,c)} - pOsztaly[(CM_PARSERCLASS_N+3)]:={|class,c| isnumberchar(class,c)} - pOsztaly[(CM_PARSERCLASS_N+4)]:={|class,c| isnamechar(class,c)} - pOsztaly[(CM_PARSERCLASS_N+5)]:={|class| settokens(class)} - pOsztaly[(CM_PARSERCLASS_N+6)]:={|class| calctokenptree(class)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_PARSERCLASS_N+1-CA_NIL_N] := {CA_PARSERCLASS_N+1,'whitespacechar',nil} - ta[CA_PARSERCLASS_N+2-CA_NIL_N] := {CA_PARSERCLASS_N+2,'startnamechar',nil} - ta[CA_PARSERCLASS_N+3-CA_NIL_N] := {CA_PARSERCLASS_N+3,'numberchar',nil} - ta[CA_PARSERCLASS_N+4-CA_NIL_N] := {CA_PARSERCLASS_N+4,'namechar',nil} - ta[CA_PARSERCLASS_N+5-CA_NIL_N] := {CA_PARSERCLASS_N+5,'tokens',nil} - ta[CA_PARSERCLASS_N+6-CA_NIL_N] := {CA_PARSERCLASS_N+6,'tokenptree',nil} - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','inputReader,name,errorStream',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil} - tm[(CM_PARSERCLASS_N+1)-CM_NIL_N] := {(CM_PARSERCLASS_N+1),'iswhitespacechar','c',nil} - tm[(CM_PARSERCLASS_N+2)-CM_NIL_N] := {(CM_PARSERCLASS_N+2),'isstartnamechar','c',nil} - tm[(CM_PARSERCLASS_N+3)-CM_NIL_N] := {(CM_PARSERCLASS_N+3),'isnumberchar','c',nil} - tm[(CM_PARSERCLASS_N+4)-CM_NIL_N] := {(CM_PARSERCLASS_N+4),'isnamechar','c',nil} - tm[(CM_PARSERCLASS_N+5)-CM_NIL_N] := {(CM_PARSERCLASS_N+5),'settokens','',nil} - tm[(CM_PARSERCLASS_N+6)-CM_NIL_N] := {(CM_PARSERCLASS_N+6),'calctokenptree','',nil} -return nil - -********************************************************************** -#ifndef _NO_MCNPARSERCLASS_ -#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 mcNPARSERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcPARSERCLASS(),; - "NPARSERCLASS",; - CA_NPARSERCLASS_N,; - CM_NPARSERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCNPARSERCLASS_ - -#endif // _NO_NPARSERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(inputReader,name,errorStream) -local o:=class:ocreate() - - NPARSER.o:oinit(inputReader,name,errorStream) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(inputReader,name,errorStream) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _NPARSER_PRG_OCH_ -#endif // _NPARSER_PRG_ diff --git a/harbour/samples/cccppc/nparser.prg b/harbour/samples/cccppc/nparser.prg deleted file mode 100644 index 7e491ad36c..0000000000 --- a/harbour/samples/cccppc/nparser.prg +++ /dev/null @@ -1,708 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// nparser.prg: Az nparser oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -// N‚v elemz“. A karakter folyamot tokeniz lja. -// A tokenek: n‚v, string, sz m, megjegyz‚s, etc. - -//******************************************************************* -#define NPRERRGROUP "hparser" - -#define NPRERR_ENDPCCOMMENT {NPRERRGROUP,"endpccomment"} -#define NPRERR_ENDSTRING {NPRERRGROUP,"endstring"} - -//******************************************************************* -// Ezek tulajdonk‚ppen nem kellenek, senki nem haszn lja. -#define CTID_PLUSPLUS "plusplus" -#define CTID_MINUSMINUS "minusminus" -#define CTID_ARROW "arrow" -#define CTID_AND "and" -#define CTID_OR "or" -#define CTID_NOT "not" -#define CTID_LET "let" -#define CTID_AD "ad" -#define CTID_TRUE "true" -#define CTID_FALSE "false" -#define CTID_PERPER "perper" -#define CTID_PERSTAR "perstar" - -#define CTID_EQEQ "eqeq" -#define CTID_PLUSEQ "pluseq" -#define CTID_MINUSEQ "minuseq" -#define CTID_MULEQ "muleq" -#define CTID_DIVEQ "diveq" -#define CTID_MODEQ "modeq" - -#define CTID_LESSEQ "lesseq" -#define CTID_GREATEQ "greateq" -#define CTID_NOTEQ1 "noteq1" -#define CTID_NOTEQ2 "noteq2" - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "tbuffer.och" -#include "creader.och" -#include "token.och" -#include "tokenst.och" -#include "tkstr.och" -#include "prserr.och" - -//******************************************************************* -#include "cr_lf.ch" -#include "ctoken.ch" -#include "error.ch" - -//******************************************************************* -#define _NPARSER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "nparser.och" - -//******************************************************************* -// ™sszehasonlĄtja a this:item-et egy karaterrel. -#define eqItemChar(aChar) (valtype(this:item)=="C" .and. ; - this:item==(aChar)) - -#define isItemEol() (valtype(this:item)=="A" .and. this:item[1]==CTKID_EOL) - -//******************************************************************* -cimplement oinitclass() -local i,errStr,err - - superclass:oinitclass() - class:whitespacechar :="" - for i:=1 to 32 - if (i!=10 .and. i!=13) - class:whitespacechar := class:whitespacechar+chr(i) - endif - end for - /* class:specchar :=; - CTK_CR +; - CTK_LF +; - CTK_IDEZ +; - CTK_MACS +; - CTK_PER +; - CTK_PVESSZO */ - - class:startnamechar:="abcdefghijklmnopqrtsuvwxyz"+; - "ABCDEFGHIJKLMNOPQRTSUVWXYZ"+; - "_" - - class:numberchar :="0123456789" - - class:namechar :=class:startnamechar+; - class:numberchar - - class:tokens:={} - class:setTokens() // Be llitjuk a tokeneket - if (nil!=(errStr:=class:calcTokenPTree())) // Elk‚szĄtjk az elemz“ f t. - err:=errorNew() - err:cargo:=class:tokens - err:description:=errStr - err:filename:='' - err:severity:=ES_ERROR - err:operation:="calcTokenPTree "+errStr - err:subsystem:="nparser" - err:subCode:=1 - eval(errorblock(),err) - endif - - C.PRSERR:registerError(NPRERR_ENDPCCOMMENT ,; - "Unterminated /* */ comment") - C.PRSERR:registerError(NPRERR_ENDSTRING ,; - "Unterminated string") -return class - -//******************************************************************* -cimplement isWhitespacechar(c) -return valtype(c)=="C" .and. c$class:whitespacechar - -//******************************************************************* -// cimplement isSpecchar(c) -// return valtype(c)=="C" .and. c$class:specchar - -//******************************************************************* -cimplement isStartnamechar(c) -return valtype(c)=="C" .and. c$class:startnamechar - -//******************************************************************* -cimplement isNumberchar(c) -return valtype(c)=="C" .and. c$class:numberchar - -//******************************************************************* -cimplement isNamechar(c) -return valtype(c)=="C" .and. c$class:namechar - -//******************************************************************* -cimplement setTokens() - aadd(class:tokens, {CTID_PLUSPLUS ,"++" ,nil}) - aadd(class:tokens, {CTID_MINUSMINUS ,"--" ,nil}) - aadd(class:tokens, {CTID_AD ,"**" ,"^"}) - aadd(class:tokens, {CTID_ARROW ,"->" ,nil}) - aadd(class:tokens, {CTID_LET ,":=" ,nil}) - aadd(class:tokens, {CTID_LESSEQ ,"<=" ,nil}) - aadd(class:tokens, {CTID_NOTEQ1 ,"<>" ,nil}) - aadd(class:tokens, {CTID_NOTEQ2 ,"!=" ,"<>"}) - aadd(class:tokens, {CTID_EQEQ ,"==" ,nil}) - aadd(class:tokens, {CTID_GREATEQ ,">=" ,nil}) - aadd(class:tokens, {CTID_PLUSEQ ,"+=" ,nil}) - aadd(class:tokens, {CTID_MINUSEQ ,"-=" ,nil}) - aadd(class:tokens, {CTID_MULEQ ,"*=" ,nil}) - aadd(class:tokens, {CTID_DIVEQ ,"/=" ,nil}) - aadd(class:tokens, {CTID_MODEQ ,"%=" ,nil}) - - - aadd(class:tokens, {CTID_AND ,".and." ,".AND."}) - aadd(class:tokens, {CTID_OR ,".or." ,".OR."}) - aadd(class:tokens, {CTID_NOT ,".not." ,"!"}) - aadd(class:tokens, {CTID_TRUE ,".t." ,".T."}) - aadd(class:tokens, {CTID_FALSE ,".f." ,".F."}) - - - - // aadd(class:tokens, {CTID_PERPER ,"//" }) - // aadd(class:tokens, {CTID_PERSTAR ,"/*" }) -return nil - -//******************************************************************* -static function addTPTree(tPTree,ctId,ctStr,allStr,params) -local c,i,node - - if (len(ctStr)==0) - // Itt a v‚ge. - node:={nil,ctId,allStr,params} - if (len(tPTree)==0) - aadd(tPTree,node) - return nil - endif - if (tpTree[1]==nil) - // M r van egy termin lisunk ugyanilyen tartalommal. - return "addTPTree: M r van ilyen token a f ban: '"+allStr+"'" - endif - aunget(tPTree,node) - return nil - endif - c:=left(ctStr,1) - for i:=1 to len(tPTree) - if (tPTree[i][1]==c) - return addTPTree(tPTree[i][2],ctId,substr(ctStr,2),allStr,params) - endif - end for - // Hozz  kell venni. - node:={c,{}} - aadd(tPTree,node) -return addTPTree(node[2],ctId,substr(ctStr,2),allStr,params) - -//******************************************************************* -cimplement calcTokenPTree() -// K‚szĄt egy elemz“ f t a tokenek elemz‚s‚hez a class:tokenPTree-be. -/* - Az elemz“ fa: - := - :={ [,] , , ... } - - :={karakter,} - - :={nil,,fullStr,params} - - Karakter: A i. szinten a token i. karaktere. - id: A token id-je. - fullStr: A token, mint string. -*/ -local i, errStr,wStr - - class:tokenptree:={} - - errStr:="" - for i:=1 to len(class:tokens) - if (nil!=(wStr:=addTPTree(class:tokenptree,; - class:tokens[i][1],; - class:tokens[i][2],; - class:tokens[i][2],; - class:tokens[i][3]))) - errStr:=errStr+wStr+crlf() - endif - end for -return if (len(errStr)==0,nil,errStr) - -//******************************************************************* -implement oinit(inputReader,name,errorStream) - - super:oinit(inputReader,name,errorStream) - - // this:item:=nil - // this:buf:=C.TBUFFER:onew() - this:soreleje:=.t. - -return this - -//******************************************************************* - -//******************************************************************* -implement readItem() - - this:tokenPos:={CREADER.(this:inputReader):getFile(),; - CREADER.(this:inputReader):getLine(),; - CREADER.(this:inputReader):getPos()} -// TBUFFER.(this:buf):clear() -// this:rds() - super:readItem() -return this:parse() - -//******************************************************************* -implement makeToken(tkId,str) - -return C.TOKEN:onew(tkId,str,; - this:tokenPos[1],; - this:tokenPos[2],; - this:tokenPos[3]) - -//******************************************************************* -implement makeTokenSt(tkId,stArray) -// Az stArray szerkezete: {ctkId,filename,line,pos,deep} - -return C.TOKENST:onew(tkId,"",; - stArray[2],; - stArray[3],; - stArray[4],; - stArray[5]) - -//******************************************************************* -implement makeTokenLSt(tkId,stArray) -// Az stArray szerkezete: {ctkId,filename,line,pos,deep} - -local str - - if (stArray[3]>1 .or. stArray[5]>1) - str:=makeHSLineStr(stArray[2],stArray[3]) - - // str:="#line "+toStr(stArray[3])+" "+; - // '"'+stArray[2]+'"'+guessedEol() - else - str:="" - endif - -return C.TOKENST:onew(tkId,str,; - stArray[2],; - stArray[3],; - stArray[4],; - stArray[5]) - -//******************************************************************* -implement makeErrToken(tkId,str,errCode) -local t - - t:=C.TOKEN:onew(tkId,str,; - this:tokenPos[1],; - this:tokenPos[2],; - this:tokenPos[3]) - TOKEN.t:error:=errCode -return t - -//******************************************************************* -#define LASTSTOP_NRDS 1 -#define LASTSTOP_ITEM 2 -#define LASTSTOP_ID 3 -#define LASTSTOP_STR 4 - -#define N_LASTSTOP 4 - -//******************************************************************* -static function newLastStop(nrds,item,id,str) -local o - - o:=array(N_LASTSTOP) - - o[LASTSTOP_NRDS ]:=nrds - o[LASTSTOP_ITEM ]:=item - o[LASTSTOP_ID ]:=id - o[LASTSTOP_STR ]:=str - -return o - -//******************************************************************* -static function lststUnrds(lastStop,this,nrds) - this:unrds(nrds-lastStop[LASTSTOP_NRDS]) - this:item:=lastStop[LASTSTOP_ITEM] -return nil - -//******************************************************************* -implement parseTPTree() -// Az input folyamr˘l ‚rkez“ karaktereket elemzi. A this:item-nek -// karakternek kell lennie, olvas, ha szks‚ges. -// A bet–ket 'case insensitive'-k‚nt hasonlĄtja ”ssze. -local tptree,nRds,cItem:=this:item -local str,lastStop,i - - str:=this:item - - tptree:=thisclass:tokenptree - nRds:=0 - lastStop:=newLastStop(0,this:item,nil,nil) - while(.t.) - if (0==(i:=ascan(tptree,{|x| x[1]==lower(this:item)}))) - // Nincs tov bb, viszont a lastStop-ban van olyan token, - // ami illeszkedik ennek az elej‚hez. - exit - endif - - // Van ilyen karakter, megynk lejjebb a f ban - tptree:=tptree[i][2] - // El“sz”r megn‚zzk, hogy a v‚g‚re ‚rtnk-e. - if (len(tptree)==0) - // Hiba, vagy res a fa, vissza a lastStop-hoz. - exit - endif - if (tptree[1][1]==nil) - // Itt meg lehet  llni, pl. ha a k”vetkez“ keres‚s nem hoz - // eredm‚nyt. - if (len(tptree)==1) - // Nem lehet tov bb menni, de visszal‚pni sem kell. - // id:=tptree[1][2] - if (tptree[1][4]!=nil) - // Incompatibility - // HelyettesĄtnk. - // outerr("parseTPTree: "+tptree[1][4],newline()) - return tptree[1][4] - else - return str - endif - endif - // Lehet m‚g tov bb, de ha elakad, akkor ez j˘! - lastStop[LASTSTOP_NRDS ]:=nRds - lastStop[LASTSTOP_ITEM ]:=this:item - lastStop[LASTSTOP_ID ]:=tptree[1][2] - if (tptree[1][4]!=nil) - // Incompatibility - // HelyettesĄtnk. - lastStop[LASTSTOP_STR ]:=tptree[1][4] - else - lastStop[LASTSTOP_STR ]:=str - endif - endif - - // Olvasunk. - this:rds() - nRds++ - if (valtype(this:item)!="C") - exit - endif - str+=this:item - end while - - lststUnrds(lastStop,this,nrds) - -return lastStop[LASTSTOP_STR] // Ez nil, ha nem  llĄtottuk be! - -//******************************************************************* -implement parse() -// Ez v‚gzi a t‚nyleges elemz‚st, rekurzĄvan is lehet hĄvni. -// A this:item-t elemzi, szks‚g eset‚n m‚g olvashat. -// -local wSoreleje:=this:soreleje -local perItem,crItem,wStr - - if (this:item==nil) - return nil - endif - if (!valtype(this:item)=="C") - if (this:item[1]==CTKID_PRINTLINE) - return this:makeToken(TKID_PRINTLINE,; - "#line "+toStr(CREADER.(this:inputReader):getLine())+" "+; - '"'+CREADER.(this:inputReader):getFile()+'"'+; - guessedEol()) - elseif (this:item[1]==CTKID_BOS) - this:soreleje:=.t. - // outerr("bos",newline()) - return this:makeTokenLSt(TKID_BOS,this:item) - elseif (this:item[1]==CTKID_EOS) - if (!this:soreleje) - // outerr("eos+newline",newline()) - this:unread(this:makeTokenSt(TKID_EOS,this:item)) - this:soreleje:=.t. - return this:makeToken(TKID_UJSOR,guessedEol()) - endif - // outerr("eos",newline()) - return this:makeTokenSt(TKID_EOS,this:item) - elseif (this:item[1]==CTKID_EOL) - // outerr("eol",newline()) - this:soreleje:=.t. - return this:makeToken(TKID_UJSOR,this:item[2]) - endif - else - // outerr("egyeb",newline()) - this:soreleje:=.f. - if (thisclass:isWhitespacechar(this:item)) - this:rds() - while(thisclass:isWhitespacechar(this:item)) - this:rds() - end while - this:unrds() - this:soreleje:=wSoreleje - return this:makeToken(TKID_URES,this:strParserBuffer()) - endif - if (this:item==CTK_CSILLAG .and. wSoreleje) - return this:parseLineComment(TKID_CSCOMMENT) - elseif (nil!=(wStr:=this:parseTPTree())) - // outerr("nparser: "+wStr,newline()) - return this:makeToken(TKID_CHAR,wStr) - elseif (this:item==CTK_PER) - perItem:=this:item - this:rds() - if (eqItemChar(CTK_PER)) - // '//'-es megjegyz‚s. - return this:parseLineComment(TKID_PPCOMMENT) - elseif (eqItemChar(CTK_CSILLAG)) - // '/*'-os megjegyz‚s - return this:parsePcComment() - else - // Sima '/' karakter - this:unrds() - return this:makeToken(TKID_CHAR,perItem) - endif - elseif (this:item==CTK_ET) - perItem:=this:item - this:rds() - if (eqItemChar(CTK_ET)) - // '&&'-es megjegyz‚s. - return this:parseLineComment(TKID_PPCOMMENT) - else - // Sima '&' karakter - this:unrds() - return this:makeToken(TKID_CHAR,perItem) - endif - elseif (this:item==CTK_IDEZ .or. this:item==CTK_FIDEZ) - // Fels“vessz“s string. - return this:parseString(CTK_IDEZ) - elseif (this:item==CTK_MACS) - // Macskak”rm”s string. - return this:parseString(CTK_MACS) - elseif (thisclass:isStartnamechar(this:item)) - // N‚v. (Bet–vel vagy al hŁz ssal kezd“dik, ‚s bet–vel, - // al hŁz ssal vagy sz mmal folytat˘dik). - return this:parseName() - elseif (thisclass:isNumberchar(this:item) .or. eqItemChar(".")) - // Sz m. - return this:parseNumberArray() - // elseif (item==CTK_PVESSZO) - // return this:makeToken(TKID_CHAR,item) - else - return this:makeToken(TKID_CHAR,this:item) - endif - endif -return nil - - -//******************************************************************* -implement parseLineComment(tkId) -// '//' vagy '*' megjegyz‚s - - this:rds() - while(this:item!=nil) - // if (eqItemChar(CHAR_LF) .or. eqItemChar(CHAR_CR_LF)) - if (isItemEol()) - this:unrds() - exit - elseif (valtype(this:item)!="C") - if (this:item[1]==CTKID_EOS .or. this:item[1]==CTKID_BOS) - this:unrds() - exit - endif - endif - this:rds() - end while - // this:soreleje:=.t. -return this:makeToken(tkId,this:strParserBuffer()) - -//******************************************************************* -implement parsePcComment() -// '/*'-os megjegyz‚s -// Mj.: Egy ilyen sorban: "/* huhu */ * hehe" a "* hehe" nem sz mĄt -// megjegyz‚snek, mert a '*' nem a sor elej‚n van. - - this:rds() - while(this:item!=nil) - if (eqItemChar(CTK_CSILLAG)) - this:rds() - if (eqItemChar(CTK_PER)) - exit - endif - this:unrds() - elseif (valtype(this:item)!="C") - if (this:item[1]==CTKID_EOS .or. this:item[1]==CTKID_BOS) - this:unrds() - // Befejezetlen '/*' megjegyz‚s. - return this:makeErrToken(TKID_PCCOMMENT,this:strParserBuffer(),; - NPRERR_ENDPCCOMMENT) - endif - endif - this:rds() - end while - -return this:makeToken(TKID_PCCOMMENT,this:strEolParserBuffer()) - -//******************************************************************* -implement strEolParserBuffer() -// Megadja a parserBuffer tartalm t stringk‚nt. -// A nem stringeket az eol kiv‚tel‚vel eldobja. -local i,str:="",w - - for i:=1 to TBUFFER.(this:parserBuffer):bItemNumber - w:=TBUFFER.(this:parserBuffer):getBItem(i) - if (valtype(w)=="C") - str+=w - elseif (w[1]==CTKID_EOL) - str+=w[2] - endif - end for -return str - -//******************************************************************* -static function makeStrToken(this,errCode,str,kezdo,zaro) - if (errCode!=nil) - this:addError(C.PRSERR:onew(; - errCode,; - kezdo+str+zaro,; - this:tokenPos[1],; - this:tokenPos[2],; - this:tokenPos[3])) - endif - -return C.TKSTR:onew(TKID_STRING,str,; - this:tokenPos[1],; - this:tokenPos[2],; - this:tokenPos[3],; - kezdo,zaro) - -//******************************************************************* -implement parseString(hatarolo) -// Fels“vessz“s ‚s macskak”rm”s string. -local str - - this:rds() - while(this:item!=nil) - if (eqItemChar(hatarolo)) - exit - // elseif (eqItemChar(CHAR_LF) .or. eqItemChar(CHAR_CR_LF)) - elseif (isItemEol()) - this:unrds() - // Befejezetlen string. - str:=this:strParserBuffer() - return makeStrToken(this,NPRERR_ENDSTRING,substr(str,2),left(str,1),"") - - elseif (valtype(this:item)!="C") - if (this:item[1]==CTKID_EOS .or. this:item[1]==CTKID_BOS) - this:unrds() - // Befejezetlen string. - str:=this:strParserBuffer() - return makeStrToken(this,NPRERR_ENDSTRING,substr(str,2),left(str,1),"") - endif - endif - this:rds() - end while - - str:=this:strParserBuffer() -return makeStrToken(this,nil,substr(str,2,len(str)-2),left(str,1),right(str,1)) -// return this:makeToken(TKID_STRING,this:strParserBuffer()) - -//******************************************************************* -implement parseName() -// N‚v. - - this:rds() - while(thisclass:isNamechar(this:item)) - this:rds() - end while - this:unrds() - // outstd("nev: '"+this:strParserBuffer()+"'"+guessedEol()) -return this:makeToken(TKID_NEV,this:strParserBuffer()) - -//******************************************************************* -// #define isTkPont(token) (TOKEN.(token):id==TKID_CHAR .and.; -// TOKEN.(token):str==".") - -//******************************************************************* -implement parseNumberArray() -// Sz m sor. -// Akkor kell hĄvni, ha a this:item sz m vagy pont. -/* - Lehets‚ges alakok: - - - '.' - '.' - - Mj.: Teh t '.' nem lehet! -*/ -local state -#define STPNA_START "start" -#define STPNA_NUM "num" -#define STPNA_NUMPONT "numpont" -#define STPNA_PONT "pont" -#define STPNA_PONTNUM "pontnum" - -local tkId - - // this:rds() - state:=STPNA_START - tkId:=TKID_SZAMTOMB - while(nil!=this:item) - if (state==STPNA_START) - if (thisclass:isNumberchar(this:item)) - state:=STPNA_NUM - elseif (eqItemChar(".")) - state:=STPNA_PONT - else - exit - endif - elseif (state==STPNA_NUM) - if (thisclass:isNumberchar(this:item)) - // Maradunk. - elseif (eqItemChar(".")) - state:=STPNA_NUMPONT - else - // Sz m ut n nem sz m vagy pont. - exit - endif - elseif (state==STPNA_NUMPONT) - if (thisclass:isNumberchar(this:item)) - state:=STPNA_PONTNUM - else - // Sz m ‚s pont ut n nem sz m, az item-et vissza kell - // tenni, ‚s egy sz mt”mb tokent adni. - this:unrds() // Ez kell!!! - exit - endif - elseif (state==STPNA_PONT) - if (thisclass:isNumberchar(this:item)) - state:=STPNA_PONTNUM - else - // Pont ut n nem sz m, az item-et vissza kell tenni, ‚s - // egy pont tokent adni. - tkId:=TKID_CHAR - exit - endif - elseif (state==STPNA_PONTNUM) - if (thisclass:isNumberchar(this:item)) - // Maradunk. - else - exit - endif - else - ? "NPARSER:parseNumberArray(): Ismeretlen  llapot: ",state - errorlevel(1) - quit - endif - this:rds() - end while - this:unrds() -return this:makeToken(tkId,this:strParserBuffer()) - -//******************************************************************* - diff --git a/harbour/samples/cccppc/object.cls b/harbour/samples/cccppc/object.cls deleted file mode 100644 index ce66175a17..0000000000 --- a/harbour/samples/cccppc/object.cls +++ /dev/null @@ -1,27 +0,0 @@ -// -// $Id$ -// - -class OBJECT - - nmethod oinit{ob_oinit}() - // Inicializ l egy (tetsz“leges) objektumot. - - nmethod getClass{ob_getClass}() - // Megadja az objektum oszt ly t. - - nmethod isClass{ob_isClass}() - // Az objektum oszt ly-e vagy sem. - - nmethod getAttrib{ob_getAttrib}(attribId) - // Ha az attribId string, akkor az adott nev– attribŁtum - // ‚rt‚k‚t adja. Ha sz m, akkor az adott index– attributum - // ‚rt‚k‚t adja. - - nmethod setAttrib{ob_setAttrib}(attribId,value) - // Ha az attribId string, akkor az adott nev– attribŁtum - // ‚rt‚k‚t  llĄtja be. Ha sz m, akkor az adott index– - // attributum ‚rt‚k‚t  llĄtja be. - // Mindig a 'value'-val t‚r vissza. - - \ No newline at end of file diff --git a/harbour/samples/cccppc/object.och b/harbour/samples/cccppc/object.och deleted file mode 100644 index 0dd0eb3d37..0000000000 --- a/harbour/samples/cccppc/object.och +++ /dev/null @@ -1,314 +0,0 @@ -// OBJECT.och oszt ly implement ci˘. -// Gener lva: 1999.10.10, 14:31:52, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - -#ifndef CA_NIL_N -#define CA_NIL_N 2 -#define CM_NIL_N 3 -#endif // CA_NIL_N - - -#ifndef _CA_CM_ONLY_ -#ifndef _OBJECT_OCH_ -#define _OBJECT_OCH_ - - - -// Specifik lva: oinit() -// Specifik lva: getclass() -// Specifik lva: isclass() -// Specifik lva: getattrib(attribId) -// Specifik lva: setattrib(attribId,value) - -#xtranslate OBJECT.:oinit => (OBJGEN.():(4)) -#xtranslate OBJECT.:getclass => (OBJGEN.():(5)) -#xtranslate OBJECT.:isclass => (OBJGEN.():(6)) -#xtranslate OBJECT.:getattrib => (OBJGEN.():(7)) -#xtranslate OBJECT.:setattrib => (OBJGEN.():(8)) - -#endif // _OBJECT_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_OBJECT_N -#define CA_OBJECT_N 2 -#define CM_OBJECT_N 8 -#endif // CA_OBJECT_N - -#ifndef _CA_CM_ONLY_ -#ifndef _BEHAVIOR_OCH_ -#define _BEHAVIOR_OCH_ - -********************************************************************** -#xtranslate C.OBJECT: => (BEHAVIOR.clOBJECT():) -#xtranslate C.OBJECT:self() => (clOBJECT()) - - - - -#xtranslate BEHAVIOR.:oinit => (OBJGEN.():(4)) -#xtranslate BEHAVIOR.:getclass => (OBJGEN.():(5)) -#xtranslate BEHAVIOR.:isclass => (OBJGEN.():(6)) -#xtranslate BEHAVIOR.:getattrib => (OBJGEN.():(7)) -#xtranslate BEHAVIOR.:setattrib => (OBJGEN.():(8)) - - -#xtranslate BEHAVIOR.:parent => \[CA_OBJECT_N+1\] -#xtranslate BEHAVIOR.:name => \[CA_OBJECT_N+2\] -#xtranslate BEHAVIOR.:objsize => \[CA_OBJECT_N+3\] -#xtranslate BEHAVIOR.:attribs => \[CA_OBJECT_N+4\] -#xtranslate BEHAVIOR.:methods => \[CA_OBJECT_N+5\] -#xtranslate BEHAVIOR.:classid => \[CA_OBJECT_N+6\] -#xtranslate BEHAVIOR.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate BEHAVIOR.:amblock => \[CA_OBJECT_N+8\] -#xtranslate BEHAVIOR.:methodsblock => \[CA_OBJECT_N+9\] - -// Specifik lva: onew() -// Specifik lva: ocreate() -// Specifik lva: rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// Specifik lva: oinitclass() -// Specifik lva: getmethodsimplement() -// ™r”k”lve: isclass() -// Specifik lva: attribidx(name) -// Specifik lva: needclassid() -// Specifik lva: isinheritfrom(parentClass) - -#xtranslate BEHAVIOR.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate BEHAVIOR.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate BEHAVIOR.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xtranslate BEHAVIOR.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate BEHAVIOR.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -// ™r”k”lve: isclass() -#xtranslate BEHAVIOR.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate BEHAVIOR.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate BEHAVIOR.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - -#endif // _BEHAVIOR_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_BEHAVIOR_N -#define CA_BEHAVIOR_N CA_OBJECT_N+10 -#define CM_BEHAVIOR_N CM_OBJECT_N+8 -#xtranslate BEHAVIOR.:objmethodsimplement => \[CA_OBJECT_N+10\] -#endif // CA_BEHAVIOR_N - - -********************************************************************** -#ifdef _OBJECT_PRG_ -#ifndef _OBJECT_PRG_OCH_ -#define _OBJECT_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => OBJECT.(othis): -#xtranslate thisclass: => BEHAVIOR.(this:getClass()): -#define CTHIS OBJECT - - -********************************************************************** -#xtranslate this: => OBJECT.(this): - -#xcommand implement oinit() => static function ob_oinit(this) -#xcommand implement getclass() => static function ob_getClass(this) -#xcommand implement isclass() => static function ob_isClass(this) -#xcommand implement getattrib(attribId) => ; - static function ob_getAttrib(this,attribId) -#xcommand implement setattrib(attribId,value) => ; - static function ob_setAttrib(this,attribId,value) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export oinit() => function ob_oinit(this) -#xcommand implement export getclass() => function ob_getClass(this) -#xcommand implement export isclass() => function ob_isClass(this) -#xcommand implement export getattrib(attribId) => ; - function ob_getAttrib(this,attribId) -#xcommand implement export setattrib(attribId,value) => ; - function ob_setAttrib(this,attribId,value) -#endif // _IMPLEMENT_EXPORT_ - - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(4)]:={|this| ob_oinit(this)} - pOsztaly[(5)]:={|this| ob_getClass(this)} - pOsztaly[(6)]:={|this| ob_isClass(this)} - pOsztaly[(7)]:={|this,attribId| ob_getAttrib(this,attribId)} - pOsztaly[(8)]:={|this,attribId,value| ob_setAttrib(this,attribId,value)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(4)-CM_NIL_N] := {(4),'oinit','',nil} - tm[(5)-CM_NIL_N] := {(5),'getclass','',nil} - tm[(6)-CM_NIL_N] := {(6),'isclass','',nil} - tm[(7)-CM_NIL_N] := {(7),'getattrib','attribId',nil} - tm[(8)-CM_NIL_N] := {(8),'setattrib','attribId,value',nil} -return nil - -#ifndef _NO_CLOBJECT_ -#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 clOBJECT() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.clBEHAVIOR():onew(; - nil,; - "OBJECT",; - CA_OBJECT_N,; - CM_OBJECT_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLOBJECT_ - -#ifndef _NO_BEHAVIOR_ - -********************************************************************** -#xtranslate class: => BEHAVIOR.(class): - -#xcommand cimplement onew() => static function be_onew(class) -#xcommand cimplement ocreate() => static function be_ocreate(class) -#xcommand cimplement rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - static function be_rawoinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand cimplement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - static function be_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand cimplement oinitclass() => static function retobj(class) -#xcommand cimplement getmethodsimplement() => ; - static function be_getMethodsImplement(class) -#xcommand cimplement isclass() => static function be_isClass(class) -#xcommand cimplement attribidx(name) => ; - static function be_attribIdx(class,name) -#xcommand cimplement needclassid() => static function be_needClassId(class) -#xcommand cimplement isinheritfrom(parentClass) => ; - static function be_isInheritFrom(class,parentClass) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew() => function be_onew(class) -#xcommand cimplement export ocreate() => function be_ocreate(class) -#xcommand cimplement export rawoinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - function be_rawoinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand cimplement export oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock) => ; - function be_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -#xcommand cimplement export oinitclass() => function retobj(class) -#xcommand cimplement export getmethodsimplement() => ; - function be_getMethodsImplement(class) -#xcommand cimplement export isclass() => function be_isClass(class) -#xcommand cimplement export attribidx(name) => ; - function be_attribIdx(class,name) -#xcommand cimplement export needclassid() => function be_needClassId(class) -#xcommand cimplement export isinheritfrom(parentClass) => ; - function be_isInheritFrom(class,parentClass) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(class):(8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class| be_onew(class)} - pOsztaly[(CM_OBJECT_N+2)]:={|class| be_ocreate(class)} - pOsztaly[(CM_OBJECT_N+3)]:={|class,parent,name,nAttribs,nMethods,amBlock,methodsBlock| be_rawoinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} - pOsztaly[(4)]:={|class,parent,name,nAttribs,nMethods,amBlock,methodsBlock| be_oinit(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock)} - pOsztaly[(CM_OBJECT_N+4)]:={|class| retobj(class)} - pOsztaly[(CM_OBJECT_N+5)]:={|class| be_getMethodsImplement(class)} - pOsztaly[(6)]:={|class| be_isClass(class)} - pOsztaly[(CM_OBJECT_N+6)]:={|class,name| be_attribIdx(class,name)} - pOsztaly[(CM_OBJECT_N+7)]:={|class| be_needClassId(class)} - pOsztaly[(CM_OBJECT_N+8)]:={|class,parentClass| be_isInheritFrom(class,parentClass)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'parent',nil} - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'name',nil} - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'objsize',nil} - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'attribs',nil} - ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'methods',nil} - ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'classid',nil} - ta[CA_OBJECT_N+7-CA_NIL_N] := {CA_OBJECT_N+7,'parentclassids',nil} - ta[CA_OBJECT_N+8-CA_NIL_N] := {CA_OBJECT_N+8,'amblock',nil} - ta[CA_OBJECT_N+9-CA_NIL_N] := {CA_OBJECT_N+9,'methodsblock',nil} - ta[CA_OBJECT_N+10-CA_NIL_N] := {CA_OBJECT_N+10,'objmethodsimplement',nil} - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'ocreate','',nil} - tm[(CM_OBJECT_N+3)-CM_NIL_N] := {(CM_OBJECT_N+3),'rawoinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil} - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'getmethodsimplement','',nil} - tm[(6)-CM_NIL_N] := {(6),'isclass','',nil} - tm[(CM_OBJECT_N+6)-CM_NIL_N] := {(CM_OBJECT_N+6),'attribidx','name',nil} - tm[(CM_OBJECT_N+7)-CM_NIL_N] := {(CM_OBJECT_N+7),'needclassid','',nil} - tm[(CM_OBJECT_N+8)-CM_NIL_N] := {(CM_OBJECT_N+8),'isinheritfrom','parentClass',nil} -return nil - -********************************************************************** -#ifndef _NO_MCBEHAVIOR_ -#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 mcBEHAVIOR() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clOBJECT(),; - "BEHAVIOR",; - CA_BEHAVIOR_N,; - CM_BEHAVIOR_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCBEHAVIOR_ - -#endif // _NO_BEHAVIOR_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew() -local o:=class:ocreate() - - OBJECT.o:oinit() -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit() - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _OBJECT_PRG_OCH_ -#endif // _OBJECT_PRG_ diff --git a/harbour/samples/cccppc/object.prg b/harbour/samples/cccppc/object.prg deleted file mode 100644 index e7a73d0ecf..0000000000 --- a/harbour/samples/cccppc/object.prg +++ /dev/null @@ -1,618 +0,0 @@ -/* - * $Id$ - */ - -********************************************************************** -// Ezek az a priori oszt lyok. Amikor objektumhoz nyŁlunk, akkor -// ezek automatikusan felt”lt“dnek. -static Object -static Behavior -static Meta -static MetaClass -********************************************************************** - -#include "error.ch" - -#include "objgen.ch" - -#include "object.och" -#include "behavior.och" -#include "meta.och" -#include "metaclas.och" - -#define _OBJECT_PRG_ -#define setCMethods(pOsztaly) ciOBJECT(pOsztaly) -#define setCams(ta,tm) amOBJECT(ta,tm) -#define _NO_BEHAVIOR_ -#define _NO_CLOBJECT_ -#include "object.och" -#undef _OBJECT_PRG_ -#undef setCMethods -#undef setCams -#undef _NO_CLOBJECT_ -#undef _NO_BEHAVIOR_ -#undef CTHIS - -#define _BEHAVIOR_PRG_ -#define setCMethods(pOsztaly) ciBEHAVIOR(pOsztaly) -#define setCams(ta,tm) amBEHAVIOR(ta,tm) -#define _NO_META_ -#define _NO_CLBEHAVIOR_ -#include "behavior.och" -#undef _BEHAVIOR_PRG_ -#undef setCMethods -#undef setCams -#undef _NO_CLBEHAVIOR_ -#undef _NO_META_ -#undef CTHIS - - -#define _META_PRG_ -#define setCMethods(pOsztaly) ciMETA(pOsztaly) -#define setCams(ta,tm) amMETA(ta,tm) -#define _NO_METACLAS_ -#define _NO_CLMETA_ -#include "meta.och" -#undef _META_PRG_ -#undef setCMethods -#undef setCams -#undef _NO_CLMETA_ -#undef _NO_METACLAS_ -#undef CTHIS - - -#include "metaclas.och" - -// K”telez“en ugyanaz. -// #define ciMETACLAS(pOsztaly) ciMETA(pOsztaly) - -********************************************************************** -* * -* Az OBJECT oszt ly * -* * -********************************************************************** - -********************************************************************** -function clOBJECT() - if (Object==nil) - primitiveAllAPClassCreate() - endif -return Object - -********************************************************************** -// function clOBJECTCLASS() -// Az Object oszt ly meta oszt ly t adja. -// Ez m r megvan, a Behavior az. -// return clBEHAVIOR() - -********************************************************************** -static function ob_oinit(this) -// Ez egy virtu lis m–velet, az implement ci˘ja res. -return this - -********************************************************************** -static function ob_getclass(this) -return eval(this[1][1]) - -********************************************************************** -static function ob_isClass(this) -return .f. - -********************************************************************** -static function ob_getAttrib(this,attribId) - if (valtype(attribId)=="C") - attribId:=BEHAVIOR.(OBJECT.this:getClass()):attribIdx(attribId) - if (attribId==nil) - errAttrib("getAttrib",{BEHAVIOR.(OBJECT.this:getClass()):name,attribId}) - endif - endif -return this[attribId] - -********************************************************************** -static function ob_setAttrib(this,attribId,value) - if (valtype(attribId)=="C") - attribId:=BEHAVIOR.(OBJECT.this:getClass()):attribIdx(attribId) - if (attribId==nil) - errAttrib("getAttrib",{BEHAVIOR.(OBJECT.this:getClass()):name,attribId}) - endif - endif -return this[attribId]:=value - - -********************************************************************** - - -********************************************************************** -* * -* A BEHAVIOR oszt ly * -* * -********************************************************************** - -********************************************************************** -function clBEHAVIOR() -// Az oszt ly el“szed‚se. (class) - if (Behavior==nil) - primitiveAllAPClassCreate() - endif -return Behavior - -********************************************************************** -// function clBEHAVIORCLASS() -// A Behavior oszt ly meta oszt ly t adja. -// Ez m r megvan, a Meta az. -// return clMETA() - -********************************************************************** -static function be_onew(this) -// K‚szĄt egy objektumot, ‚s inicializ lja. -// Az objektum a 'this' oszt lyba fog tartozni. - -local obj - - obj:=BEHAVIOR.this:ocreate() - OBJECT.obj:oinit() -return obj - -********************************************************************** -static function be_ocreate(this) -// K‚szĄt egy objektumot, de nem inicializ lja. -// Az objektum a 'this' oszt lyba fog tartozni. - -local obj - obj:=primitiveCreateObj(this) -return obj - -********************************************************************** -static function be_rawoinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) -// Inicializ lja a 'this' oszt lyt. - -local w - - ob_oinit(this) - primitiveInitClass(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock) - if (parent!=nil) - if (BEHAVIOR.this:classId==nil) - BEHAVIOR.this:parentClassIds:=BEHAVIOR.parent:parentClassIds - else - if (nil!=(w:=BEHAVIOR.parent:parentClassIds)) - BEHAVIOR.this:parentClassIds:=w:=aclone(w) - else - BEHAVIOR.this:parentClassIds:=w:={} - endif - if (len(w)=1 .and.; - valtype(obj[1])=='A' .and.; - len(obj[1])>=3 .and.; - valtype(obj[1][3])=='A' .and.; - obj[1][3]==ob_getObjId() - -********************************************************************** -function getNextClassId() -// Ezt kell hĄvnia annak az oszt lynak, aki id-t akar. -static id:=0 -return ++id - -********************************************************************** -static function be_needClassId(this) -return .f. - -********************************************************************** -static function be_isInheritFrom(this,parentClass) -local w - - if (parentClass==nil) - return .t. // Spec eset, v laszthatn nk a .f.-t is. - endif - if (nil!=(w:=BEHAVIOR.parentClass:classId)) - return BEHAVIOR.this:parentClassIds!=nil .and.; - len(BEHAVIOR.this:parentClassIds)>=w .and.; - BEHAVIOR.this:parentClassIds[w]==w - endif - - // Fel a f n. - // alert("M szunk: "+; - // "this: "+BEHAVIOR.this:name+";"+; - // "parentClass: "+BEHAVIOR.parentClass:name) - w:=this - while(w!=nil) - if (w==parentClass) - return .t. - endif - w:=BEHAVIOR.w:parent - end while -return .f. -********************************************************************** diff --git a/harbour/samples/cccppc/objgen.ch b/harbour/samples/cccppc/objgen.ch deleted file mode 100644 index 4341489bda..0000000000 --- a/harbour/samples/cccppc/objgen.ch +++ /dev/null @@ -1,28 +0,0 @@ -/* - * $Id$ - */ - -#ifndef _OBJGEN_DEF_ -#define _OBJGEN_DEF_ - #xtranslate (OBJGEN.():)[:=] => ; - eval(\[1\]\[\],[,]) - #xtranslate (OBJGEN.():)([])[:=] => ; - eval(\[1\]\[\],[,

][,]) - - #xtranslate (OBJGENM.().():)[:=] => ; - eval(\[\],[,]) - - #xtranslate (OBJGENM.().():)([])[:=] => ; - eval(\[\],[,

][,]) - - #xtranslate (PKGGEN.().():)[:=] => ; - eval(\[2\]\[\]\[\],[,]) - #xtranslate (PKGGEN.().():)([])[:=] => ; - eval(\[2\]\[\]\[\],[,

][,]) - - #xtranslate (PKGGENM.().():)[:=] => ; - eval(\[\],[,]) - #xtranslate (PKGGENM.().():)([])[:=] => ; - eval(\[\],[,

][,]) -#endif - diff --git a/harbour/samples/cccppc/package.cls b/harbour/samples/cccppc/package.cls deleted file mode 100644 index 9a7d844d42..0000000000 --- a/harbour/samples/cccppc/package.cls +++ /dev/null @@ -1,58 +0,0 @@ -// -// $Id$ -// - -class PACKAGE OBJECT - - attrib parentPkg - // A csomag szl“je. Ha nincs, akkor nil. - - attrib name - // A csomag neve. - - attrib nAttribs - // H ny attributum van. - - attrib attribs - // Egy t”mb az attribŁtumok sorsz m val,nev‚vel,tĄpus val - - attrib methods - // Egy t”mb a m–veletek sorsz m val, nev‚vel, - // param‚tereivel, implSpec-‚vel. - - attrib pkgId - // A csomag azonosĄt˘ja, minden csomagnak van. - // Ha egy csomagnak van “se, akkor ez megegyezik az “s‚nek - // az id-j‚vel. Ha nincs “se, akkor pedig kl”nb”zik b rmelyik - // olyan csomag pkgId-j‚t“l, aminek szint‚n nincs “se. - - attrib amBlock - // Egy blokk, aminek a v‚grehajt sa beĄrja - // egy t”mbbe a csomag  ltal defini lt - // attribŁtumokat ‚s egy m sik t”mbbe pedig - // a csomag  ltal defini lt m–veleteket. - - attrib methodsBlock - // Egy blokk, aminek a v‚grehajt sa - // beĄrja egy t”mbbe a csomag  ltal defini lt - // m–veletek blokkjait. - // (Ezt a t”mb”t adja a pkgMethodsImplement.) - - attrib pkgMethodsImplement - // Egy blokkot tartalmaz, amit ki‚rt‚kelve - // megkapjuk azt a t”mb”t, aminek az els“ - // eleme a csomag, a tov bbi elemei pedig - // a csomagban haszn lhat˘ m–veletek - // blokkjai, ‚s m s implement ci˘s elemek. - - rmethod oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) - - nmethod connectTo(obj) - -metaclass - - attrib numId - - rmethod onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) - - nmethod nextId() diff --git a/harbour/samples/cccppc/package.och b/harbour/samples/cccppc/package.och deleted file mode 100644 index 3784959438..0000000000 --- a/harbour/samples/cccppc/package.och +++ /dev/null @@ -1,287 +0,0 @@ -// PACKAGE.och oszt ly implement ci˘. -// Gener lva: 1999.10.10, 14:31:59, 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 _PACKAGE_OCH_ -#define _PACKAGE_OCH_ - - - - -#xtranslate PACKAGE.:oinit => (OBJGEN.():(4)) -#xtranslate PACKAGE.:getclass => (OBJGEN.():(5)) -#xtranslate PACKAGE.:isclass => (OBJGEN.():(6)) -#xtranslate PACKAGE.:getattrib => (OBJGEN.():(7)) -#xtranslate PACKAGE.:setattrib => (OBJGEN.():(8)) - - -#xtranslate PACKAGE.:parentpkg => \[CA_OBJECT_N+1\] -#xtranslate PACKAGE.:name => \[CA_OBJECT_N+2\] -#xtranslate PACKAGE.:nattribs => \[CA_OBJECT_N+3\] -#xtranslate PACKAGE.:attribs => \[CA_OBJECT_N+4\] -#xtranslate PACKAGE.:methods => \[CA_OBJECT_N+5\] -#xtranslate PACKAGE.:pkgid => \[CA_OBJECT_N+6\] -#xtranslate PACKAGE.:amblock => \[CA_OBJECT_N+7\] -#xtranslate PACKAGE.:methodsblock => \[CA_OBJECT_N+8\] -#xtranslate PACKAGE.:pkgmethodsimplement => \[CA_OBJECT_N+9\] - -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -// Specifik lva: connectto(obj) - -// ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -#xtranslate PACKAGE.:connectto => (OBJGEN.():(CM_OBJECT_N+1)) - -#endif // _PACKAGE_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PACKAGE_N -#define CA_PACKAGE_N CA_OBJECT_N+9 -#define CM_PACKAGE_N CM_OBJECT_N+1 -#endif // CA_PACKAGE_N - -#ifndef _CA_CM_ONLY_ -#ifndef _PACKAGECLASS_OCH_ -#define _PACKAGECLASS_OCH_ - -********************************************************************** -#xtranslate C.PACKAGE: => (PACKAGECLASS.clPACKAGE():) -#xtranslate C.PACKAGE:self() => (clPACKAGE()) - - -#xtranslate PACKAGECLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate PACKAGECLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate PACKAGECLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate PACKAGECLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate PACKAGECLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate PACKAGECLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate PACKAGECLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate PACKAGECLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate PACKAGECLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate PACKAGECLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate PACKAGECLASS.:oinit => (OBJGEN.():(4)) -#xtranslate PACKAGECLASS.:getclass => (OBJGEN.():(5)) -#xtranslate PACKAGECLASS.:isclass => (OBJGEN.():(6)) -#xtranslate PACKAGECLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate PACKAGECLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate PACKAGECLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate PACKAGECLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate PACKAGECLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate PACKAGECLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate PACKAGECLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate PACKAGECLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate PACKAGECLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate PACKAGECLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - -#xtranslate PACKAGECLASS.:numid => \[CA_BEHAVIOR_N+1\] - -// ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -// Specifik lva: nextid() - -// ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -#xtranslate PACKAGECLASS.:nextid => (OBJGEN.():(CM_BEHAVIOR_N+1)) - -#endif // _PACKAGECLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PACKAGECLASS_N -#define CA_PACKAGECLASS_N CA_BEHAVIOR_N+1 -#define CM_PACKAGECLASS_N CM_BEHAVIOR_N+1 -#endif // CA_PACKAGECLASS_N - - -********************************************************************** -#ifdef _PACKAGE_PRG_ -#ifndef _PACKAGE_PRG_OCH_ -#define _PACKAGE_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => PACKAGE.(othis): -#xtranslate thisclass: => PACKAGECLASS.(this:getClass()): -#define CTHIS PACKAGE - - -********************************************************************** -#xtranslate this: => PACKAGE.(this): - -#xcommand implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) => ; - static function oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -#xcommand implement connectto(obj) => static function connectto(this,obj) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) => ; - function oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -#xcommand implement export connectto(obj) => function connectto(this,obj) -#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 m–veleti blokkjaival. - pOsztaly[(4)]:={|this,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId| oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId)} - pOsztaly[(CM_OBJECT_N+1)]:={|this,obj| connectto(this,obj)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'parentpkg',nil} - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'name',nil} - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'nattribs',nil} - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'attribs',nil} - ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'methods',nil} - ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'pkgid',nil} - ta[CA_OBJECT_N+7-CA_NIL_N] := {CA_OBJECT_N+7,'amblock',nil} - ta[CA_OBJECT_N+8-CA_NIL_N] := {CA_OBJECT_N+8,'methodsblock',nil} - ta[CA_OBJECT_N+9-CA_NIL_N] := {CA_OBJECT_N+9,'pkgmethodsimplement',nil} - - tm[(4)-CM_NIL_N] := {(4),'oinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId',nil} - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'connectto','obj',nil} -return nil - -#ifndef _NO_CLPACKAGE_ -#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 clPACKAGE() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcPACKAGECLASS():onew(; - clOBJECT(),; - "PACKAGE",; - CA_PACKAGE_N,; - CM_PACKAGE_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLPACKAGE_ - -#ifndef _NO_PACKAGECLASS_ - -********************************************************************** -#xtranslate class: => PACKAGECLASS.(class): - -#xcommand cimplement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) => ; - static function onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -#xcommand cimplement nextid() => static function nextid(class) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) => ; - function onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -#xcommand cimplement export nextid() => function nextid(class) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId| onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId)} - pOsztaly[(CM_BEHAVIOR_N+1)]:={|class| nextid(class)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_BEHAVIOR_N+1-CA_NIL_N] := {CA_BEHAVIOR_N+1,'numid',nil} - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId',nil} - tm[(CM_BEHAVIOR_N+1)-CM_NIL_N] := {(CM_BEHAVIOR_N+1),'nextid','',nil} -return nil - -********************************************************************** -#ifndef _NO_MCPACKAGECLASS_ -#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 mcPACKAGECLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "PACKAGECLASS",; - CA_PACKAGECLASS_N,; - CM_PACKAGECLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCPACKAGECLASS_ - -#endif // _NO_PACKAGECLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -local o:=class:ocreate() - - PACKAGE.o:oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _PACKAGE_PRG_OCH_ -#endif // _PACKAGE_PRG_ diff --git a/harbour/samples/cccppc/package.prg b/harbour/samples/cccppc/package.prg deleted file mode 100644 index bfdd59abbc..0000000000 --- a/harbour/samples/cccppc/package.prg +++ /dev/null @@ -1,126 +0,0 @@ -/* - * $Id$ - */ - -#include "objgen.ch" - -#define _PACKAGE_PRG_ -#define _IMPLEMENT_ONEW_ -#include "package.och" - -********************************************************************* -implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) -local t - - this:parentPkg :=parent - this:name :=name - this:nAttribs :=nAttribs - this:amBlock :=amBlock - this:methodsBlock :=methodsBlock - this:pkgId :=pkgId - - - t:=array(nMethods) - t[1]:=this - this:pkgMethodsImplement:={||t} - - this:attribs:=array(nAttribs) - this:methods:=array(nMethods) - evalMethodsBlocks(this) - evalAmBlocks(this) - -return this - -********************************************************************* -implement connectTo(obj) - -// Ez l‚nyeg‚ben a ocreate() -local t - - // Itt meg kellene n‚zni, erre az objektumra van-e m r - // install lva valamilyen csomag ebb“l a f b˘l. - // Ha van, akkor ha az install land˘ “se az install ltnak ==> - // nem kell semmit sem csin lni, ha nem le kell cser‚lni. - // Esetleg, ha egyik sem “se a m siknak, akkor hibajelz‚st - // lehetne adni. - - // Ez az implement ci˘ nem j˘l m–k”dik, ha egyik sem “se a - // m siknak, de van k”z”s “sk. - - t:=obj[2] // Itt vannak az attribŁtumok. - - if (t==nil) - obj[2]:=t:=array(this:pkgId) - elseif (len(t):name => \[CA_OBJECT_N+1\] -#xtranslate PARSER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate PARSER.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate PARSER.:inputreader => \[CA_READER_N+1\] - - -#xtranslate PARSER.:oinit => (OBJGEN.():(4)) -#xtranslate PARSER.:getclass => (OBJGEN.():(5)) -#xtranslate PARSER.:isclass => (OBJGEN.():(6)) -#xtranslate PARSER.:getattrib => (OBJGEN.():(7)) -#xtranslate PARSER.:setattrib => (OBJGEN.():(8)) -#xtranslate PARSER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate PARSER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate PARSER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate PARSER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate PARSER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate PARSER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate PARSER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate PARSER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate PARSER.:readinput => (OBJGEN.():(CM_READER_N+1)) -#xtranslate PARSER.:unreadinput => (OBJGEN.():(CM_READER_N+2)) -#xtranslate PARSER.:addinputreader => (OBJGEN.():(CM_READER_N+3)) - - -#xtranslate PARSER.:item => \[CA_TREADER_N+1\] -#xtranslate PARSER.:parserbuffer => \[CA_TREADER_N+2\] - -// ™r”k”lve: readitem() -// Specifik lva: putparserbuffer(anItem) -// Specifik lva: getparserbuffer() -// Specifik lva: unputparserbuffer() -// Specifik lva: ungetparserbuffer(anItem) -// Specifik lva: clearparserbuffer() -// Specifik lva: rds() -// Specifik lva: unrds(n) -// Specifik lva: strparserbuffer() -// Specifik lva: arrayparserbuffer() -// ™r”k”lve: oinit(inputReader,name,errorStream) - -// ™r”k”lve: readitem() -#xtranslate PARSER.:putparserbuffer => (OBJGEN.():(CM_TREADER_N+1)) -#xtranslate PARSER.:getparserbuffer => (OBJGEN.():(CM_TREADER_N+2)) -#xtranslate PARSER.:unputparserbuffer => (OBJGEN.():(CM_TREADER_N+3)) -#xtranslate PARSER.:ungetparserbuffer => (OBJGEN.():(CM_TREADER_N+4)) -#xtranslate PARSER.:clearparserbuffer => (OBJGEN.():(CM_TREADER_N+5)) -#xtranslate PARSER.:rds => (OBJGEN.():(CM_TREADER_N+6)) -#xtranslate PARSER.:unrds => (OBJGEN.():(CM_TREADER_N+7)) -#xtranslate PARSER.:strparserbuffer => (OBJGEN.():(CM_TREADER_N+8)) -#xtranslate PARSER.:arrayparserbuffer => (OBJGEN.():(CM_TREADER_N+9)) -// ™r”k”lve: oinit(inputReader,name,errorStream) - -#endif // _PARSER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PARSER_N -#define CA_PARSER_N CA_TREADER_N+2 -#define CM_PARSER_N CM_TREADER_N+9 -#endif // CA_PARSER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _PARSERCLASS_OCH_ -#define _PARSERCLASS_OCH_ - -********************************************************************** -#xtranslate C.PARSER: => (PARSERCLASS.clPARSER():) -#xtranslate C.PARSER:self() => (clPARSER()) - - -#xtranslate PARSERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate PARSERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate PARSERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate PARSERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate PARSERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate PARSERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate PARSERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate PARSERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate PARSERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate PARSERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate PARSERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate PARSERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate PARSERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate PARSERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate PARSERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate PARSERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate PARSERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate PARSERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate PARSERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate PARSERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate PARSERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate PARSERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate PARSERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(inputReader,name,errorStream) - -// ™r”k”lve: onew(inputReader,name,errorStream) - -#endif // _PARSERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PARSERCLASS_N -#define CA_PARSERCLASS_N CA_TREADERCLASS_N+0 -#define CM_PARSERCLASS_N CM_TREADERCLASS_N+0 -#endif // CA_PARSERCLASS_N - - -********************************************************************** -#ifdef _PARSER_PRG_ -#ifndef _PARSER_PRG_OCH_ -#define _PARSER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => PARSER.(othis): -#xtranslate thisclass: => PARSERCLASS.(this:getClass()): -#define CTHIS PARSER - - -********************************************************************** -#xtranslate this: => PARSER.(this): - -#xcommand implement readitem() => static function readitem(this) -#xcommand implement putparserbuffer(anItem) => ; - static function putparserbuffer(this,anItem) -#xcommand implement getparserbuffer() => ; - static function getparserbuffer(this) -#xcommand implement unputparserbuffer() => ; - static function unputparserbuffer(this) -#xcommand implement ungetparserbuffer(anItem) => ; - static function ungetparserbuffer(this,anItem) -#xcommand implement clearparserbuffer() => ; - static function clearparserbuffer(this) -#xcommand implement rds() => static function rds(this) -#xcommand implement unrds(n) => static function unrds(this,n) -#xcommand implement strparserbuffer() => ; - static function strparserbuffer(this) -#xcommand implement arrayparserbuffer() => ; - static function arrayparserbuffer(this) -#xcommand implement oinit(inputReader,name,errorStream) => ; - static function oinit(this,inputReader,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export readitem() => function readitem(this) -#xcommand implement export putparserbuffer(anItem) => ; - function putparserbuffer(this,anItem) -#xcommand implement export getparserbuffer() => ; - function getparserbuffer(this) -#xcommand implement export unputparserbuffer() => ; - function unputparserbuffer(this) -#xcommand implement export ungetparserbuffer(anItem) => ; - function ungetparserbuffer(this,anItem) -#xcommand implement export clearparserbuffer() => ; - function clearparserbuffer(this) -#xcommand implement export rds() => function rds(this) -#xcommand implement export unrds(n) => function unrds(this,n) -#xcommand implement export strparserbuffer() => ; - function strparserbuffer(this) -#xcommand implement export arrayparserbuffer() => ; - function arrayparserbuffer(this) -#xcommand implement export oinit(inputReader,name,errorStream) => ; - function oinit(this,inputReader,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(8)) -#xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_OBJECT_N+8)) -#xtranslate super:readinput => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_READER_N+1)) -#xtranslate super:unreadinput => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_READER_N+2)) -#xtranslate super:addinputreader => (OBJGENM.(eval(BEHAVIOR.clTREADER():objmethodsimplement)).(this):(CM_READER_N+3)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)} - pOsztaly[(CM_TREADER_N+1)]:={|this,anItem| putparserbuffer(this,anItem)} - pOsztaly[(CM_TREADER_N+2)]:={|this| getparserbuffer(this)} - pOsztaly[(CM_TREADER_N+3)]:={|this| unputparserbuffer(this)} - pOsztaly[(CM_TREADER_N+4)]:={|this,anItem| ungetparserbuffer(this,anItem)} - pOsztaly[(CM_TREADER_N+5)]:={|this| clearparserbuffer(this)} - pOsztaly[(CM_TREADER_N+6)]:={|this| rds(this)} - pOsztaly[(CM_TREADER_N+7)]:={|this,n| unrds(this,n)} - pOsztaly[(CM_TREADER_N+8)]:={|this| strparserbuffer(this)} - pOsztaly[(CM_TREADER_N+9)]:={|this| arrayparserbuffer(this)} - pOsztaly[(4)]:={|this,inputReader,name,errorStream| oinit(this,inputReader,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_TREADER_N+1-CA_NIL_N] := {CA_TREADER_N+1,'item',nil} - ta[CA_TREADER_N+2-CA_NIL_N] := {CA_TREADER_N+2,'parserbuffer',nil} - - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil} - tm[(CM_TREADER_N+1)-CM_NIL_N] := {(CM_TREADER_N+1),'putparserbuffer','anItem',nil} - tm[(CM_TREADER_N+2)-CM_NIL_N] := {(CM_TREADER_N+2),'getparserbuffer','',nil} - tm[(CM_TREADER_N+3)-CM_NIL_N] := {(CM_TREADER_N+3),'unputparserbuffer','',nil} - tm[(CM_TREADER_N+4)-CM_NIL_N] := {(CM_TREADER_N+4),'ungetparserbuffer','anItem',nil} - tm[(CM_TREADER_N+5)-CM_NIL_N] := {(CM_TREADER_N+5),'clearparserbuffer','',nil} - tm[(CM_TREADER_N+6)-CM_NIL_N] := {(CM_TREADER_N+6),'rds','',nil} - tm[(CM_TREADER_N+7)-CM_NIL_N] := {(CM_TREADER_N+7),'unrds','n',nil} - tm[(CM_TREADER_N+8)-CM_NIL_N] := {(CM_TREADER_N+8),'strparserbuffer','',nil} - tm[(CM_TREADER_N+9)-CM_NIL_N] := {(CM_TREADER_N+9),'arrayparserbuffer','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','inputReader,name,errorStream',nil} -return nil - -#ifndef _NO_CLPARSER_ -#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 clPARSER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcPARSERCLASS():onew(; - clTREADER(),; - "PARSER",; - CA_PARSER_N,; - CM_PARSER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLPARSER_ - -#ifndef _NO_PARSERCLASS_ - -********************************************************************** -#xtranslate class: => PARSERCLASS.(class): - -#xcommand cimplement onew(inputReader,name,errorStream) => ; - static function onew(class,inputReader,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(inputReader,name,errorStream) => ; - function onew(class,inputReader,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcTREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,inputReader,name,errorStream| onew(class,inputReader,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','inputReader,name,errorStream',nil} -return nil - -********************************************************************** -#ifndef _NO_MCPARSERCLASS_ -#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 mcPARSERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcTREADERCLASS(),; - "PARSERCLASS",; - CA_PARSERCLASS_N,; - CM_PARSERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCPARSERCLASS_ - -#endif // _NO_PARSERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(inputReader,name,errorStream) -local o:=class:ocreate() - - PARSER.o:oinit(inputReader,name,errorStream) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(inputReader,name,errorStream) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _PARSER_PRG_OCH_ -#endif // _PARSER_PRG_ diff --git a/harbour/samples/cccppc/parser.prg b/harbour/samples/cccppc/parser.prg deleted file mode 100644 index 9147e0f629..0000000000 --- a/harbour/samples/cccppc/parser.prg +++ /dev/null @@ -1,152 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// parser.prg: A PARSER oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -static BUF_EOF:={"buf_eof"} - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -// #include "ctoken.ch" - -//******************************************************************* -#include "tbuffer.och" -// #include "token.och" - -//******************************************************************* -#define _PARSER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "parser.och" - -//******************************************************************* -implement oinit(inputReader,name,errorStream) - - super:oinit(inputReader,name,errorStream) - - this:item:=nil - this:parserBuffer:=C.TBUFFER:onew() - -return this - -//******************************************************************* -implement putParserBuffer(anItem) -// Hozz ad egy elemet a parserBufferhez. Az elem lehet speci lis is. - TBUFFER.(this:parserBuffer):put(anItem) -return nil - -//******************************************************************* -implement getParserBuffer() -// Kivesz egy elemet a puffer elej‚r“l. -// Az eof-ot eldobja. -// return TBUFFER.(this:parserBuffer):unget() - -local w - - w:=TBUFFER.(this:parserBuffer):get() - while(valtype(w)=="A" .and. w==BUF_EOF) - w:=TBUFFER.(this:parserBuffer):get() - end while -return w - -//******************************************************************* -implement unputParserBuffer() -// Kivesz egy elemet a puffer v‚g‚r“l. -// return TBUFFER.(this:parserBuffer):unput() -local w - - w:=TBUFFER.(this:parserBuffer):unput() - while(valtype(w)=="A" .and. w==BUF_EOF) - w:=TBUFFER.(this:parserBuffer):unput() - end while -return w - -//******************************************************************* -implement ungetParserBuffer(anItem) -// Betesz egy elemet a puffer elej‚re. -return TBUFFER.(this:parserBuffer):unget(anItem) - -//******************************************************************* -implement clearParserBuffer() -return TBUFFER.(this:parserBuffer):clear() - -//******************************************************************* -implement strParserBuffer() -// Megadja a parserBuffer tartalm t stringk‚nt. -// A nem stringeket eldobja. -local i,str:="",w - - for i:=1 to TBUFFER.(this:parserBuffer):bItemNumber - w:=TBUFFER.(this:parserBuffer):getBItem(i) - if (valtype(w)=="C") - str+=w - endif - end for -return str - -//******************************************************************* -implement arrayParserBuffer() -local i,r:={} - - for i:=1 to TBUFFER.(this:parserBuffer):bItemNumber - aadd(r,TBUFFER.(this:parserBuffer):getBItem(i)) - end for -return r - - -//******************************************************************* -implement readItem() - - TBUFFER.(this:parserBuffer):clear() - this:rds() - -return this:item - -//******************************************************************* -implement rds() -// Olvas egy karatert a readInput()-al a parserBuffer-be. -// Az olvasott ‚rt‚ket a parserBuffer-be is beleteszi, ha az nem az eof. -// Ha eof, akkor egy spec eof itemet tesz. - - if (nil==(this:item:=this:readInput())) - this:putParserBuffer(BUF_EOF) - else - this:putParserBuffer(this:item) - endif - -return this:item - -//******************************************************************* -implement unrds(n) -// A buf utols˘ n elem‚t visszateszi az inputra. Az item-et t”rli. -// Azt adja vissza, hogy h ny elemet sikerlt visszatenni. -// Ha az n nil, akkor egyet tesz vissza. -// Az eof-okat kihagyja. -local w,i - - this:item:=nil - if (n==nil) - n:=1 - endif - i:=0 - while(i:oinit => (OBJGEN.():(4)) -#xtranslate PRSERR.:getclass => (OBJGEN.():(5)) -#xtranslate PRSERR.:isclass => (OBJGEN.():(6)) -#xtranslate PRSERR.:getattrib => (OBJGEN.():(7)) -#xtranslate PRSERR.:setattrib => (OBJGEN.():(8)) - - -#xtranslate PRSERR.:group => \[CA_OBJECT_N+1\] -#xtranslate PRSERR.:id => \[CA_OBJECT_N+2\] -#xtranslate PRSERR.:params => \[CA_OBJECT_N+3\] -#xtranslate PRSERR.:file => \[CA_OBJECT_N+4\] -#xtranslate PRSERR.:line => \[CA_OBJECT_N+5\] -#xtranslate PRSERR.:pos => \[CA_OBJECT_N+6\] - -// Specifik lva: defaulterrformat(name) -// Specifik lva: geterrstr() -// ™r”k”lve: oinit(group_and_id,params,file,line,pos) - -#xtranslate PRSERR.:defaulterrformat => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate PRSERR.:geterrstr => (OBJGEN.():(CM_OBJECT_N+2)) -// ™r”k”lve: oinit(group_and_id,params,file,line,pos) - -#endif // _PRSERR_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PRSERR_N -#define CA_PRSERR_N CA_OBJECT_N+6 -#define CM_PRSERR_N CM_OBJECT_N+2 -#endif // CA_PRSERR_N - -#ifndef _CA_CM_ONLY_ -#ifndef _PRSERRCLASS_OCH_ -#define _PRSERRCLASS_OCH_ - -********************************************************************** -#xtranslate C.PRSERR: => (PRSERRCLASS.clPRSERR():) -#xtranslate C.PRSERR:self() => (clPRSERR()) - - -#xtranslate PRSERRCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate PRSERRCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate PRSERRCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate PRSERRCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate PRSERRCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate PRSERRCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate PRSERRCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate PRSERRCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate PRSERRCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate PRSERRCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate PRSERRCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate PRSERRCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate PRSERRCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate PRSERRCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate PRSERRCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate PRSERRCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate PRSERRCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate PRSERRCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate PRSERRCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate PRSERRCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate PRSERRCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate PRSERRCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate PRSERRCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - -#xtranslate PRSERRCLASS.:errdict => \[CA_BEHAVIOR_N+1\] - -// ™r”k”lve: onew(group_and_id,params,file,line,pos) -// Specifik lva: onewfromtoken(group_and_id,params,token) -// Specifik lva: registererror(group_and_id,name,printBlock) -// ™r”k”lve: oinitclass() - -// ™r”k”lve: onew(group_and_id,params,file,line,pos) -#xtranslate PRSERRCLASS.:onewfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+1)) -#xtranslate PRSERRCLASS.:registererror => (OBJGEN.():(CM_BEHAVIOR_N+2)) -// ™r”k”lve: oinitclass() - -#endif // _PRSERRCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PRSERRCLASS_N -#define CA_PRSERRCLASS_N CA_BEHAVIOR_N+1 -#define CM_PRSERRCLASS_N CM_BEHAVIOR_N+2 -#endif // CA_PRSERRCLASS_N - - -********************************************************************** -#ifdef _PRSERR_PRG_ -#ifndef _PRSERR_PRG_OCH_ -#define _PRSERR_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => PRSERR.(othis): -#xtranslate thisclass: => PRSERRCLASS.(this:getClass()): -#define CTHIS PRSERR - - -********************************************************************** -#xtranslate this: => PRSERR.(this): - -#xcommand implement defaulterrformat(name) => ; - static function defaulterrformat(this,name) -#xcommand implement geterrstr() => static function geterrstr(this) -#xcommand implement oinit(group_and_id,params,file,line,pos) => ; - static function oinit(this,group_and_id,params,file,line,pos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export defaulterrformat(name) => ; - function defaulterrformat(this,name) -#xcommand implement export geterrstr() => function geterrstr(this) -#xcommand implement export oinit(group_and_id,params,file,line,pos) => ; - function oinit(this,group_and_id,params,file,line,pos) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this,name| defaulterrformat(this,name)} - pOsztaly[(CM_OBJECT_N+2)]:={|this| geterrstr(this)} - pOsztaly[(4)]:={|this,group_and_id,params,file,line,pos| oinit(this,group_and_id,params,file,line,pos)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'group', } - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'id', } - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'params', } - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'file',nil} - ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'line',nil} - ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'pos',nil} - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'defaulterrformat','name',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'geterrstr','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','group_and_id,params,file,line,pos',nil} -return nil - -#ifndef _NO_CLPRSERR_ -#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 clPRSERR() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcPRSERRCLASS():onew(; - clOBJECT(),; - "PRSERR",; - CA_PRSERR_N,; - CM_PRSERR_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLPRSERR_ - -#ifndef _NO_PRSERRCLASS_ - -********************************************************************** -#xtranslate class: => PRSERRCLASS.(class): - -#xcommand cimplement onew(group_and_id,params,file,line,pos) => ; - static function onew(class,group_and_id,params,file,line,pos) -#xcommand cimplement onewfromtoken(group_and_id,params,token) => ; - static function onewfromtoken(class,group_and_id,params,token) -#xcommand cimplement registererror(group_and_id,name,printBlock) => ; - static function registererror(class,group_and_id,name,printBlock) -#xcommand cimplement oinitclass() => static function oinitclass(class) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(group_and_id,params,file,line,pos) => ; - function onew(class,group_and_id,params,file,line,pos) -#xcommand cimplement export onewfromtoken(group_and_id,params,token) => ; - function onewfromtoken(class,group_and_id,params,token) -#xcommand cimplement export registererror(group_and_id,name,printBlock) => ; - function registererror(class,group_and_id,name,printBlock) -#xcommand cimplement export oinitclass() => function oinitclass(class) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,group_and_id,params,file,line,pos| onew(class,group_and_id,params,file,line,pos)} - pOsztaly[(CM_BEHAVIOR_N+1)]:={|class,group_and_id,params,token| onewfromtoken(class,group_and_id,params,token)} - pOsztaly[(CM_BEHAVIOR_N+2)]:={|class,group_and_id,name,printBlock| registererror(class,group_and_id,name,printBlock)} - 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 m–veleteivel. - ta[CA_BEHAVIOR_N+1-CA_NIL_N] := {CA_BEHAVIOR_N+1,'errdict', } - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','group_and_id,params,file,line,pos',nil} - tm[(CM_BEHAVIOR_N+1)-CM_NIL_N] := {(CM_BEHAVIOR_N+1),'onewfromtoken','group_and_id,params,token',nil} - tm[(CM_BEHAVIOR_N+2)-CM_NIL_N] := {(CM_BEHAVIOR_N+2),'registererror','group_and_id,name,printBlock',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil} -return nil - -********************************************************************** -#ifndef _NO_MCPRSERRCLASS_ -#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 mcPRSERRCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "PRSERRCLASS",; - CA_PRSERRCLASS_N,; - CM_PRSERRCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCPRSERRCLASS_ - -#endif // _NO_PRSERRCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(group_and_id,params,file,line,pos) -local o:=class:ocreate() - - PRSERR.o:oinit(group_and_id,params,file,line,pos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(group_and_id,params,file,line,pos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _PRSERR_PRG_OCH_ -#endif // _PRSERR_PRG_ diff --git a/harbour/samples/cccppc/prserr.prg b/harbour/samples/cccppc/prserr.prg deleted file mode 100644 index 1b949646d1..0000000000 --- a/harbour/samples/cccppc/prserr.prg +++ /dev/null @@ -1,136 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// prserr.prg: A PRSERR oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "token.och" - -//******************************************************************* -#define _PRSERR_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "prserr.och" - -//******************************************************************* -implement oinit(group_and_id,params,file,line,pos) - - super:oinit() - - this:group :=group_and_id[1] - this:id :=group_and_id[2] - this:params:=params - this:file :=file - this:line :=line - this:pos :=pos - -return this - - -//******************************************************************* -implement defaultErrFormat(name) -// Egyenl“re a a $0,$1,...,$9-et cser‚li ki. -// $0 az ”sszes param‚tert jel”li, vessz“vel elv lasztva. -// Sajnos az strtran itt nem j˘, mert az az eredm‚nyben is cser‚lne. -local str,i,c,allParam,wStr - - if ("$0"$name) - allParam:="" - if (!empty(this:params)) - for i:=1 to len(this:params) - if (i>1) - allParam+="," - endif - allParam+=toStr(this:params[i]) - end for - endif - endif - - str:="" - while(0!=(i:=at("$",name))) - str+=substr(name,1,i-1) - c:=substr(name,i+1,1) - if (!empty(c) .and. c$"0123456789") - if (val(c)==0) - str+=allParam - elseif (val(c)<=len(this:params)) - str+=toStr(this:params[val(c)]) - else - str+=substr(name,i,2) - endif - name:=substr(name,i+2) - else - str+=substr(name,i,1) - name:=substr(name,i+1) - endif - end for - str+=name - wStr:=this:file+"("+toStr(this:line)+")" - if (len(wStr)<20) - wStr:=padr(wStr,20) - endif -return wStr+" Error: "+str -// return padr(this:file+"("+toStr(this:line)+")",20)+" Error: "+name - -//******************************************************************* -implement getErrStr() -local i, wIdt - - if (0!=(i:=ascan(thisclass:errDict,{|x| x[1]==this:group}))) - wIdt:=thisclass:errDict[i][2] - if (0!=(i:=ascan(wIdt,{|x| x[1]==this:id}))) - if (wIdt[i][3]==nil) - return this:defaultErrFormat(wIdt[i][2]) - endif - return eval(wIdt[i][3],this,wIdt[i][2]) - endif - endif -return this:defaultErrFormat("Unknown error $0") - -//******************************************************************* -cimplement oinitclass() - superclass:oinitclass() - class:errDict:={} -return nil - -//******************************************************************* -cimplement onewFromToken(group_and_id,params,token) -return class:onew(group_and_id,params,; - TOKEN.token:file,; - TOKEN.token:line,; - TOKEN.token:pos) - -//******************************************************************* -cimplement registerError(group_and_id,name,printBlock) -local i, wIdt - - if (0==(i:=ascan(class:errDict,{|x| x[1]==group_and_id[1]}))) - aadd(class:errDict,{group_and_id[1],{}}) - i:=len(class:errDict) - endif - - wIdt:=class:errDict[i][2] - if (0==(i:=ascan(wIdt,{|x| x[1]==group_and_id[2]}))) - aadd(wIdt,{group_and_id[2],name,printBlock}) - return group_and_id - endif -return nil - -//******************************************************************* -function evalErrorStream(errorStream,bBlock,nStart,nCount) - if (!empty(errorStream)) - return aeval(errorStream,; - {|x| eval(bBlock,PRSERR.x:getErrStr())},; - nStart,nCount) - endif -return nil - -//******************************************************************* - - diff --git a/harbour/samples/cccppc/prtree.cls b/harbour/samples/cccppc/prtree.cls deleted file mode 100644 index 6ed8608047..0000000000 --- a/harbour/samples/cccppc/prtree.cls +++ /dev/null @@ -1,31 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// prtree.cls: Parser tree. Elemz“ f t kezel“ objektum -// 1999, Csisz r Levente - -// Egy elemz“ f t lehet vele fel‚pĄteni ‚s kezelni. - -class PRTREE OBJECT - - attrib nWords // H ny sz˘ van benne. - attrib tree // Ez maga a fa. - // Az elemz“ fa: - // := - // :={ [,] , , ... } - // - // :={item,} - // - // :={nil,result} - // - // item: A fa i. szintj‚n a keresett sz˘ i. eleme. - // result: Amikor az elemz‚s k‚sz ‚s erem‚nyes, akkor a megtal lt - // -ban lev“ result lesz a this:result-ban. - - - nmethod addWord(result,itemArray) - - rmethod oinit() - diff --git a/harbour/samples/cccppc/prtree.och b/harbour/samples/cccppc/prtree.och deleted file mode 100644 index 38da5e7d16..0000000000 --- a/harbour/samples/cccppc/prtree.och +++ /dev/null @@ -1,249 +0,0 @@ -// PRTREE.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:20, 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 _PRTREE_OCH_ -#define _PRTREE_OCH_ - - - - -#xtranslate PRTREE.:oinit => (OBJGEN.():(4)) -#xtranslate PRTREE.:getclass => (OBJGEN.():(5)) -#xtranslate PRTREE.:isclass => (OBJGEN.():(6)) -#xtranslate PRTREE.:getattrib => (OBJGEN.():(7)) -#xtranslate PRTREE.:setattrib => (OBJGEN.():(8)) - - -#xtranslate PRTREE.:nwords => \[CA_OBJECT_N+1\] -#xtranslate PRTREE.:tree => \[CA_OBJECT_N+2\] - -// Specifik lva: addword(result,itemArray) -// ™r”k”lve: oinit() - -#xtranslate PRTREE.:addword => (OBJGEN.():(CM_OBJECT_N+1)) -// ™r”k”lve: oinit() - -#endif // _PRTREE_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PRTREE_N -#define CA_PRTREE_N CA_OBJECT_N+2 -#define CM_PRTREE_N CM_OBJECT_N+1 -#endif // CA_PRTREE_N - -#ifndef _CA_CM_ONLY_ -#ifndef _PRTREECLASS_OCH_ -#define _PRTREECLASS_OCH_ - -********************************************************************** -#xtranslate C.PRTREE: => (PRTREECLASS.clPRTREE():) -#xtranslate C.PRTREE:self() => (clPRTREE()) - - -#xtranslate PRTREECLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate PRTREECLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate PRTREECLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate PRTREECLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate PRTREECLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate PRTREECLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate PRTREECLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate PRTREECLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate PRTREECLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate PRTREECLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate PRTREECLASS.:oinit => (OBJGEN.():(4)) -#xtranslate PRTREECLASS.:getclass => (OBJGEN.():(5)) -#xtranslate PRTREECLASS.:isclass => (OBJGEN.():(6)) -#xtranslate PRTREECLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate PRTREECLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate PRTREECLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate PRTREECLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate PRTREECLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate PRTREECLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate PRTREECLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate PRTREECLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate PRTREECLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate PRTREECLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - - - -#endif // _PRTREECLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PRTREECLASS_N -#define CA_PRTREECLASS_N CA_BEHAVIOR_N+0 -#define CM_PRTREECLASS_N CM_BEHAVIOR_N+0 -#endif // CA_PRTREECLASS_N - - -********************************************************************** -#ifdef _PRTREE_PRG_ -#ifndef _PRTREE_PRG_OCH_ -#define _PRTREE_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => PRTREE.(othis): -#xtranslate thisclass: => PRTREECLASS.(this:getClass()): -#define CTHIS PRTREE - - -********************************************************************** -#xtranslate this: => PRTREE.(this): - -#xcommand implement addword(result,itemArray) => ; - static function addword(this,result,itemArray) -#xcommand implement oinit() => static function oinit(this) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export addword(result,itemArray) => ; - function addword(this,result,itemArray) -#xcommand implement export oinit() => function oinit(this) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this,result,itemArray| addword(this,result,itemArray)} - pOsztaly[(4)]:={|this| oinit(this)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'nwords', } - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'tree', } - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'addword','result,itemArray',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','',nil} -return nil - -#ifndef _NO_CLPRTREE_ -#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 clPRTREE() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcPRTREECLASS():onew(; - clOBJECT(),; - "PRTREE",; - CA_PRTREE_N,; - CM_PRTREE_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLPRTREE_ - -#ifndef _NO_PRTREECLASS_ - -********************************************************************** -#xtranslate class: => PRTREECLASS.(class): - - -#ifdef _IMPLEMENT_EXPORT_ -#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 m–veleti blokkjaival. -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - -return nil - -********************************************************************** -#ifndef _NO_MCPRTREECLASS_ -#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 mcPRTREECLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "PRTREECLASS",; - CA_PRTREECLASS_N,; - CM_PRTREECLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCPRTREECLASS_ - -#endif // _NO_PRTREECLASS_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit() - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _PRTREE_PRG_OCH_ -#endif // _PRTREE_PRG_ diff --git a/harbour/samples/cccppc/prtree.prg b/harbour/samples/cccppc/prtree.prg deleted file mode 100644 index 3ef107e32f..0000000000 --- a/harbour/samples/cccppc/prtree.prg +++ /dev/null @@ -1,69 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// prtree.prg: A PRTREE oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#define _PRTREE_PRG_ -// #define _IMPLEMENT_ONEW_ - -#include "prtree.och" - -//******************************************************************* -implement oinit() - - super:oinit() - this:nWords:=0 - this:tree:={} - -return this - - -//******************************************************************* -static function addTPTree(tPTree,ctId,ctArray,ctI) -local t,i,node - - if (len(ctArray)-ban lev“ result lesz itt. - - attrib itemArray // A put()-al betett itemek. - // A wordLen ut ni itemek az el“reolvasott - // itemek. - attrib wordLen // Ha az elemz‚s meg ll, akkor itt a megtal lt - // sz˘ hossza van (sikeress‚g eset‚n), vagy 0, - // sikertelens‚g eset‚n. - - // Ezekhez l‚p vissza, ha az elemz‚s elakad. - attrib lastStopWordLen // A legutols˘ illeszked“ sz˘ hossza. - // attrib lastStopResult // A legutols˘ illeszked“ sz˘hoz tartoz˘ - // result. - - nmethod start() - - nmethod put(item) - - rmethod oinit(eprtree) - -metaclass - - rmethod onew(eprtree) - diff --git a/harbour/samples/cccppc/prtreepr.och b/harbour/samples/cccppc/prtreepr.och deleted file mode 100644 index 706cc6b9f7..0000000000 --- a/harbour/samples/cccppc/prtreepr.och +++ /dev/null @@ -1,275 +0,0 @@ -// PRTREEPR.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:20, 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 _PRTREEPR_OCH_ -#define _PRTREEPR_OCH_ - - - - -#xtranslate PRTREEPR.:oinit => (OBJGEN.():(4)) -#xtranslate PRTREEPR.:getclass => (OBJGEN.():(5)) -#xtranslate PRTREEPR.:isclass => (OBJGEN.():(6)) -#xtranslate PRTREEPR.:getattrib => (OBJGEN.():(7)) -#xtranslate PRTREEPR.:setattrib => (OBJGEN.():(8)) - - -#xtranslate PRTREEPR.:eprtree => \[CA_OBJECT_N+1\] -#xtranslate PRTREEPR.:subtree => \[CA_OBJECT_N+2\] -#xtranslate PRTREEPR.:result => \[CA_OBJECT_N+3\] -#xtranslate PRTREEPR.:itemarray => \[CA_OBJECT_N+4\] -#xtranslate PRTREEPR.:wordlen => \[CA_OBJECT_N+5\] -#xtranslate PRTREEPR.:laststopwordlen => \[CA_OBJECT_N+6\] - -// Specifik lva: start() -// Specifik lva: put(item) -// ™r”k”lve: oinit(eprtree) - -#xtranslate PRTREEPR.:start => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate PRTREEPR.:put => (OBJGEN.():(CM_OBJECT_N+2)) -// ™r”k”lve: oinit(eprtree) - -#endif // _PRTREEPR_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PRTREEPR_N -#define CA_PRTREEPR_N CA_OBJECT_N+6 -#define CM_PRTREEPR_N CM_OBJECT_N+2 -#endif // CA_PRTREEPR_N - -#ifndef _CA_CM_ONLY_ -#ifndef _PRTREEPRCLASS_OCH_ -#define _PRTREEPRCLASS_OCH_ - -********************************************************************** -#xtranslate C.PRTREEPR: => (PRTREEPRCLASS.clPRTREEPR():) -#xtranslate C.PRTREEPR:self() => (clPRTREEPR()) - - -#xtranslate PRTREEPRCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate PRTREEPRCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate PRTREEPRCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate PRTREEPRCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate PRTREEPRCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate PRTREEPRCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate PRTREEPRCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate PRTREEPRCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate PRTREEPRCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate PRTREEPRCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate PRTREEPRCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate PRTREEPRCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate PRTREEPRCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate PRTREEPRCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate PRTREEPRCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate PRTREEPRCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate PRTREEPRCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate PRTREEPRCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate PRTREEPRCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate PRTREEPRCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate PRTREEPRCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate PRTREEPRCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate PRTREEPRCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(eprtree) - -// ™r”k”lve: onew(eprtree) - -#endif // _PRTREEPRCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_PRTREEPRCLASS_N -#define CA_PRTREEPRCLASS_N CA_BEHAVIOR_N+0 -#define CM_PRTREEPRCLASS_N CM_BEHAVIOR_N+0 -#endif // CA_PRTREEPRCLASS_N - - -********************************************************************** -#ifdef _PRTREEPR_PRG_ -#ifndef _PRTREEPR_PRG_OCH_ -#define _PRTREEPR_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => PRTREEPR.(othis): -#xtranslate thisclass: => PRTREEPRCLASS.(this:getClass()): -#define CTHIS PRTREEPR - - -********************************************************************** -#xtranslate this: => PRTREEPR.(this): - -#xcommand implement start() => static function start(this) -#xcommand implement put(item) => static function put(this,item) -#xcommand implement oinit(eprtree) => static function oinit(this,eprtree) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export start() => function start(this) -#xcommand implement export put(item) => function put(this,item) -#xcommand implement export oinit(eprtree) => function oinit(this,eprtree) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this| start(this)} - pOsztaly[(CM_OBJECT_N+2)]:={|this,item| put(this,item)} - pOsztaly[(4)]:={|this,eprtree| oinit(this,eprtree)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'eprtree', } - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'subtree', } - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'result', } - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'itemarray', } - ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'wordlen', } - ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'laststopwordlen', } - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'start','',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'put','item',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','eprtree',nil} -return nil - -#ifndef _NO_CLPRTREEPR_ -#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 clPRTREEPR() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcPRTREEPRCLASS():onew(; - clOBJECT(),; - "PRTREEPR",; - CA_PRTREEPR_N,; - CM_PRTREEPR_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLPRTREEPR_ - -#ifndef _NO_PRTREEPRCLASS_ - -********************************************************************** -#xtranslate class: => PRTREEPRCLASS.(class): - -#xcommand cimplement onew(eprtree) => static function onew(class,eprtree) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(eprtree) => function onew(class,eprtree) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,eprtree| onew(class,eprtree)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','eprtree',nil} -return nil - -********************************************************************** -#ifndef _NO_MCPRTREEPRCLASS_ -#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 mcPRTREEPRCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "PRTREEPRCLASS",; - CA_PRTREEPRCLASS_N,; - CM_PRTREEPRCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCPRTREEPRCLASS_ - -#endif // _NO_PRTREEPRCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(eprtree) -local o:=class:ocreate() - - PRTREEPR.o:oinit(eprtree) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(eprtree) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _PRTREEPR_PRG_OCH_ -#endif // _PRTREEPR_PRG_ diff --git a/harbour/samples/cccppc/prtreepr.prg b/harbour/samples/cccppc/prtreepr.prg deleted file mode 100644 index 9299ad0fd4..0000000000 --- a/harbour/samples/cccppc/prtreepr.prg +++ /dev/null @@ -1,101 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// prtreepr.prg: A PRTREEPR oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -#include "prtree.och" - -//******************************************************************* -#define _PRTREEPR_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "prtreepr.och" - -//******************************************************************* -implement oinit(eprtree) - - super:oinit() - this:eprtree:=eprtree - this:start() - -return this - -//******************************************************************* -implement start() - - if (this:eprtree!=nil) - this:subtree :=PRTREE.(this:eprtree):tree - else - this:subtree :={} - endif - this:result :=nil - this:itemArray :={} - this:wordLen :=0 - this:lastStopWordLen :=0 - // this:lastStopResult :=nil // Ez igaz b˘l nem kell, el‚g a result is. - -return nil - -//******************************************************************* -implement put(item) -/* - Egy item-el tov bb megy az elemz“ f ban. - Az itemeket gy–jti az itemArray-ban. - - Ret: nil, ha nincs v‚ge. - .t., ha v‚ge van ‚s elfogadta, - .f., ha v‚ge van ‚s nem fogadta el. -*/ - -local tptree,nRds -local str,lastStop,i - - aadd(this:itemArray,item) - - if (0==(i:=ascan(this:subtree,{|x| x[1]==item}))) - // Nincs tov bb, viszont a lastStop-ban van olyan token, - // ami illeszkedik ennek az elej‚hez. - this:wordLen:=this:lastStopWordLen - // this:result:=this:lastStopResult - return this:wordLen!=0 - endif - - // Van ilyen item, megynk lejjebb a f ban - this:wordLen++ - this:subtree:=this:subtree[i][2] - // El“sz”r megn‚zzk, hogy a v‚g‚re ‚rtnk-e. - if (len(this:subtree)==0) - // Hiba, vagy res a fa, vissza a lastStop-hoz. - this:wordLen:=this:lastStopWordLen - // this:result:=this:lastStopResult - return this:wordLen!=0 - endif - if (this:subtree[1][1]==nil) - // Itt meg lehet  llni, pl. ha a k”vetkez“ keres‚s nem hoz - // eredm‚nyt. - if (len(this:subtree)==1) - // Nem lehet tov bb menni, de visszal‚pni sem kell. - // id:=this:subtree[1][2] - this:result:=this:subtree[1][2] - return this:wordLen!=0 - endif - // Lehet m‚g tov bb, de ha elakad, akkor ez j˘! - this:lastStopWordLen:=this:wordLen - // this:lastStopResult:=this:subtree[1][2] - this:result:=this:subtree[1][2] - endif - - // M‚g nincs eredm‚ny, megynk tov bb. - -return nil - -//******************************************************************* - - - diff --git a/harbour/samples/cccppc/ralter.cls b/harbour/samples/cccppc/ralter.cls deleted file mode 100644 index 882a30bfbc..0000000000 --- a/harbour/samples/cccppc/ralter.cls +++ /dev/null @@ -1,26 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// ralter.cls : Result alternative token oszt ly. -// 1999, Csisz r Levente - -// A jobb oldalon el“fordul˘ altenatĄv kat t rol˘ token. -// Az alternatĄv kat egy-egy token t”mb jelk‚pezi, egy ilyen t”mb -// van a tokenList-ben. - -class RALTER RMARKER - - attrib tokenList // Az alternatĄv hoz tartoz˘ tokenek list ja. - - rmethod getStr() - - rmethod oinit(id,str,file,line,pos) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(id,str,file,line,pos) - - diff --git a/harbour/samples/cccppc/ralter.och b/harbour/samples/cccppc/ralter.och deleted file mode 100644 index ead3d53a8a..0000000000 --- a/harbour/samples/cccppc/ralter.och +++ /dev/null @@ -1,299 +0,0 @@ -// RALTER.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:26, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_RMARKER_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "RMARKER.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "RMARKER.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "RMARKER.och" -#endif // _STRICT_PARENT_ -#endif // CA_RMARKER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _RALTER_OCH_ -#define _RALTER_OCH_ - - -#xtranslate RALTER.:id => \[CA_OBJECT_N+1\] -#xtranslate RALTER.:str => \[CA_OBJECT_N+2\] -#xtranslate RALTER.:file => \[CA_OBJECT_N+3\] -#xtranslate RALTER.:line => \[CA_OBJECT_N+4\] -#xtranslate RALTER.:pos => \[CA_OBJECT_N+5\] -#xtranslate RALTER.:classify => \[CA_OBJECT_N+6\] -#xtranslate RALTER.:error => \[CA_OBJECT_N+7\] -#xtranslate RALTER.:eqtype => \[CA_OBJECT_N+8\] -#xtranslate RALTER.:mmnum => \[CA_TOKEN_N+1\] -#xtranslate RALTER.:mmtkid => \[CA_TOKEN_N+2\] - - -#xtranslate RALTER.:oinit => (OBJGEN.():(4)) -#xtranslate RALTER.:getclass => (OBJGEN.():(5)) -#xtranslate RALTER.:isclass => (OBJGEN.():(6)) -#xtranslate RALTER.:getattrib => (OBJGEN.():(7)) -#xtranslate RALTER.:setattrib => (OBJGEN.():(8)) -#xtranslate RALTER.:iserror => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate RALTER.:errorstr => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate RALTER.:printtostr => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate RALTER.:getstr => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate RALTER.:copytoken => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate RALTER.:getname => (OBJGEN.():(CM_TOKEN_N+1)) -#xtranslate RALTER.:setmmidxbymm => (OBJGEN.():(CM_TOKEN_N+2)) -#xtranslate RALTER.:changebymmlist => (OBJGEN.():(CM_TOKEN_N+3)) - - -#xtranslate RALTER.:tokenlist => \[CA_RMARKER_N+1\] - -// ™r”k”lve: getstr() -// ™r”k”lve: oinit(id,str,file,line,pos) - -// ™r”k”lve: getstr() -// ™r”k”lve: oinit(id,str,file,line,pos) - -#endif // _RALTER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_RALTER_N -#define CA_RALTER_N CA_RMARKER_N+1 -#define CM_RALTER_N CM_RMARKER_N+0 -#endif // CA_RALTER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _RALTERCLASS_OCH_ -#define _RALTERCLASS_OCH_ - -********************************************************************** -#xtranslate C.RALTER: => (RALTERCLASS.clRALTER():) -#xtranslate C.RALTER:self() => (clRALTER()) - - -#xtranslate RALTERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate RALTERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate RALTERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate RALTERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate RALTERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate RALTERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate RALTERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate RALTERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate RALTERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate RALTERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate RALTERCLASS.:errstrarray => \[CA_BEHAVIOR_N+1\] -#xtranslate RALTERCLASS.:equivclass => \[CA_BEHAVIOR_N+2\] - - -#xtranslate RALTERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate RALTERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate RALTERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate RALTERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate RALTERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate RALTERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate RALTERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate RALTERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate RALTERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate RALTERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate RALTERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate RALTERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate RALTERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate RALTERCLASS.:onewerror => (OBJGEN.():(CM_BEHAVIOR_N+1)) -#xtranslate RALTERCLASS.:copyfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+2)) -#xtranslate RALTERCLASS.:findclassify => (OBJGEN.():(CM_BEHAVIOR_N+3)) -#xtranslate RALTERCLASS.:isresultmarker => (OBJGEN.():(CM_TOKENCLASS_N+1)) - - - -// ™r”k”lve: onew(id,str,file,line,pos) - -// ™r”k”lve: onew(id,str,file,line,pos) - -#endif // _RALTERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_RALTERCLASS_N -#define CA_RALTERCLASS_N CA_RMARKERCLASS_N+0 -#define CM_RALTERCLASS_N CM_RMARKERCLASS_N+0 -#endif // CA_RALTERCLASS_N - - -********************************************************************** -#ifdef _RALTER_PRG_ -#ifndef _RALTER_PRG_OCH_ -#define _RALTER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => RALTER.(othis): -#xtranslate thisclass: => RALTERCLASS.(this:getClass()): -#define CTHIS RALTER - - -********************************************************************** -#xtranslate this: => RALTER.(this): - -#xcommand implement getstr() => static function getstr(this) -#xcommand implement oinit(id,str,file,line,pos) => ; - static function oinit(this,id,str,file,line,pos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export getstr() => function getstr(this) -#xcommand implement export oinit(id,str,file,line,pos) => ; - function oinit(this,id,str,file,line,pos) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(8)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:errorstr => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:printtostr => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:getstr => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:copytoken => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:getname => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(CM_TOKEN_N+1)) -#xtranslate super:setmmidxbymm => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(CM_TOKEN_N+2)) -#xtranslate super:changebymmlist => (OBJGENM.(eval(BEHAVIOR.clRMARKER():objmethodsimplement)).(this):(CM_TOKEN_N+3)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+4)]:={|this| getstr(this)} - pOsztaly[(4)]:={|this,id,str,file,line,pos| oinit(this,id,str,file,line,pos)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_RMARKER_N+1-CA_NIL_N] := {CA_RMARKER_N+1,'tokenlist', } - - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'getstr','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos',nil} -return nil - -#ifndef _NO_CLRALTER_ -#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 clRALTER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcRALTERCLASS():onew(; - clRMARKER(),; - "RALTER",; - CA_RALTER_N,; - CM_RALTER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLRALTER_ - -#ifndef _NO_RALTERCLASS_ - -********************************************************************** -#xtranslate class: => RALTERCLASS.(class): - -#xcommand cimplement onew(id,str,file,line,pos) => ; - static function onew(class,id,str,file,line,pos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(id,str,file,line,pos) => ; - function onew(class,id,str,file,line,pos) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) -#xtranslate superclass:onewerror => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+1)) -#xtranslate superclass:copyfromtoken => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+2)) -#xtranslate superclass:findclassify => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+3)) -#xtranslate superclass:isresultmarker => (OBJGENM.(eval(BEHAVIOR.mcRMARKERCLASS():objmethodsimplement)).(class):(CM_TOKENCLASS_N+1)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos| onew(class,id,str,file,line,pos)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos',nil} -return nil - -********************************************************************** -#ifndef _NO_MCRALTERCLASS_ -#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 mcRALTERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcRMARKERCLASS(),; - "RALTERCLASS",; - CA_RALTERCLASS_N,; - CM_RALTERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCRALTERCLASS_ - -#endif // _NO_RALTERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(id,str,file,line,pos) -local o:=class:ocreate() - - RALTER.o:oinit(id,str,file,line,pos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(id,str,file,line,pos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _RALTER_PRG_OCH_ -#endif // _RALTER_PRG_ diff --git a/harbour/samples/cccppc/ralter.prg b/harbour/samples/cccppc/ralter.prg deleted file mode 100644 index cee9726673..0000000000 --- a/harbour/samples/cccppc/ralter.prg +++ /dev/null @@ -1,50 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// ralter.prg: a RALTER oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -#define _RALTER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "ralter.och" - -//******************************************************************* -implement oinit(id,str,file,line,pos) - super:oinit(id,str,file,line,pos) - this:tokenList :={} -return this - -//******************************************************************* -implement getStr() -local i -local str - - if (!this:id==TKID_RALTER) - return super:getStr() - endif - str:="[" - for i:=1 to len(this:tokenList) - str+=TOKEN.(this:tokenList[i]):getStr() - end for - - str+="]" - if (this:isError()) - str+=", Error: "+this:errorStr()+guessedEol() - endif - -return str - -//******************************************************************* - - - - diff --git a/harbour/samples/cccppc/reader.cls b/harbour/samples/cccppc/reader.cls deleted file mode 100644 index b693c94977..0000000000 --- a/harbour/samples/cccppc/reader.cls +++ /dev/null @@ -1,69 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// reader.cls: ltal nos stream olvas˘ oszt ly. Ebb“l ”r”k”lnek a -// karakter ‚s a token olvas˘ oszt lyok. -// 1999, Csisz r Levente - -class READER OBJECT - - attrib name // Az olvasott stream azonosĄt˘ja (a - // hibajelz‚sekhez) - attrib errorStream // Ebbe a t”mbbe Ąrja a hibazeneteket. - // prsError objektumok vannak benne. - - attrib tbuffer // Ez egy TBUFFER, ide teszi be az unread()-el - // visszatett itemeket. - - nmethod read() - // Olvas egy 'elemet'. Az elem a nil kiv‚tel‚vel b rmilyen - // objektum lehet. Ha az unget puffer nem res, akkor onnan - // olvassa, ha res, akkor pedig a readItem()-el olvas egyet - // a stream-b“l. - // Ret: Az elem, ha OK, nil, ha v‚ge van a streamnek, vagy ha - // hiba volt. Hiba eset‚n be llĄtja a this:error-t. - - nmethod unread(item) - // Visszatesz az readerbe egy elemet. - - nmethod readTBuffer() - // A tbuffer-b“l olvas. Ha a tbuffer res, akkor nil - - nmethod arrayTBuffer() - // Ad egy t”mb”t, amiben a tbuffer elemi vannak. - - abstract nmethod readItem() - // Bels“ m–velet, az val˘di aloszt lyoknak implement lni kell. - // Olvas egy 'elemet' k”zvetlenl a stream-b“l az unget puffer - // megkerl‚s‚vel. Az elem a nil kiv‚tel‚vel b rmilyen - // objektum lehet. - // Ret: Az elem, ha OK, nil, ha v‚ge van a streamnek, vagy ha - // hiba volt. Hiba eset‚n be llĄtja a this:error-t. - - - nmethod isError(l) - // Igaz, ha volt hiba. - // l: Az errorStream el“z“ hossza. Ha meg van adva, akkor akkor - // ad igazat, ha az errorStream hossza nagyobb, mint az l. - - nmethod addError(prsErr) - // Hozz ad egy prsErr objektumot az errorStream-hez, ha az nem nil - - // nmethod errorStr() - // Nil, ha nem volt hiba, egy string, ami a hiba leĄr s t - // tartalmazza, ha volt hiba. - - abstract nmethod destruct{retnil}() - // T”rli az objektumhoz kapcsol˘d˘ kls“ eszk”z”ket. (Pl. lez rja - // a fil‚t etc.) - - rmethod oinit(name,errorStream) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(name,errorStream) - - diff --git a/harbour/samples/cccppc/reader.och b/harbour/samples/cccppc/reader.och deleted file mode 100644 index 7871f37829..0000000000 --- a/harbour/samples/cccppc/reader.och +++ /dev/null @@ -1,309 +0,0 @@ -// 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.:oinit => (OBJGEN.():(4)) -#xtranslate READER.:getclass => (OBJGEN.():(5)) -#xtranslate READER.:isclass => (OBJGEN.():(6)) -#xtranslate READER.:getattrib => (OBJGEN.():(7)) -#xtranslate READER.:setattrib => (OBJGEN.():(8)) - - -#xtranslate READER.:name => \[CA_OBJECT_N+1\] -#xtranslate READER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate READER.:tbuffer => \[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.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate READER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate READER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate READER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate READER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate READER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate READER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate READER.:destruct => (OBJGEN.():(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: => (READERCLASS.clREADER():) -#xtranslate C.READER:self() => (clREADER()) - - -#xtranslate READERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate READERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate READERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate READERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate READERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate READERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate READERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate READERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate READERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate READERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate READERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate READERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate READERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate READERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate READERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate READERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate READERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate READERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate READERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate READERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate READERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate READERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate READERCLASS.:isinheritfrom => (OBJGEN.():(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: => READER.(othis): -#xtranslate thisclass: => READERCLASS.(this:getClass()): -#define CTHIS READER - - -********************************************************************** -#xtranslate this: => READER.(this): - -#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 m–veleti 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 m–veleteivel. - 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: => READERCLASS.(class): - -#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 m–veleti 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 m–veleteivel. - - 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_ diff --git a/harbour/samples/cccppc/reader.prg b/harbour/samples/cccppc/reader.prg deleted file mode 100644 index 836634f6aa..0000000000 --- a/harbour/samples/cccppc/reader.prg +++ /dev/null @@ -1,96 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// reader.prg: A reader oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "tbuffer.och" - -//******************************************************************* -#define _READER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "reader.och" - -//******************************************************************* - -implement oinit(name,errorStream) - super:oinit() - this:name:=name - this:tbuffer:=C.TBUFFER:onew() - this:errorStream:=errorStream -return this - -//******************************************************************* -implement read() -local w - - if (nil!=(w:=TBUFFER.(this:tbuffer):get())) - return w - endif -return this:readItem() - -//******************************************************************* -implement unread(item) - TBUFFER.(this:tbuffer):unget(item) -return nil - -//******************************************************************* -implement readTBuffer() -return TBUFFER.(this:tbuffer):get() - -//******************************************************************* -implement arrayTBuffer() -local i,r:={} - - for i:=1 to TBUFFER.(this:tBuffer):bItemNumber - aadd(r,TBUFFER.(this:tBuffer):getBItem(i)) - end for - -return r - -//******************************************************************* -implement isError(l) - - if (empty(this:errorStream)) - return .f. - endif - - if (empty(l)) - return .t. - endif - -return len(this:errorStream)>l - -//******************************************************************* -implement addError(prsErr) - if (this:errorStream!=nil) - aadd(this:errorStream,prsErr) - endif -return nil - -//******************************************************************* -#ifdef OLD -implement errorStr() -local errStr - - if (!this:isError()) - return nil - endif - - errStr:="" - if (!empty(this:error[1])) - errStr+=this:error[1]+": " - endif - errStr+=this:error[3]+", errCode: "+toStr(this:error[2]) -return errStr -#endif - -//******************************************************************* - diff --git a/harbour/samples/cccppc/readme.txt b/harbour/samples/cccppc/readme.txt deleted file mode 100644 index a25399e350..0000000000 --- a/harbour/samples/cccppc/readme.txt +++ /dev/null @@ -1,43 +0,0 @@ -/* - * $Id$ - */ - -cccppc ------- - -This is a CA-Clipper 5.x compatible preprocessor written in -Clipper. - -The development of this program has been continued in C++, so -this Clipper version is discontinued and only serves testing -and demonstration purposes. - -Use "rmake makefile.rmk" to build it in CA-Cl*pper. - -Levente Csisz r , 1998.09.01 - --------------------------------- -Notes from the uploader [vszel]: - -These files were originally located in a separate subdirectory -named "object", they were moved to the main directory so that -the GNU-make can be used to build it: - - /object - behavior.cls - behavior.och - meta.cls - meta.och - metaclas.cls - metaclas.och - object.cls - object.och - object.prg - objgen.ch - package.cls - package.och - package.prg - version.prg - -Some files (*.OCH) don't have CVS headers, since -they were automatically generated by an external utility. diff --git a/harbour/samples/cccppc/rmarker.cls b/harbour/samples/cccppc/rmarker.cls deleted file mode 100644 index ecccb4cf49..0000000000 --- a/harbour/samples/cccppc/rmarker.cls +++ /dev/null @@ -1,51 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// rmarker.cls : Result marker token oszt ly. -// 1999, Csisz r Levente - -// Result markereket t rol˘ token. - -class RMARKER TOKEN - - attrib mmNum // A result markerhez tartoz˘ match marker sorsz ma - // egy makr˘ definĄci˘ban. - attrib mmTkId // A result markerhez tartoz˘ match marker id-je - // egy makr˘ definĄci˘ban. - - rmethod oinit(id,str,file,line,pos) - // Inicializ lja az objektumot. Az str lesz a result marker neve. - - nmethod getName() - - nmethod setMMIdxByMM(matchMarkers) - // A matchMarkers-ben keres egy ugyanolyan nev– marker-t, mint - // amilyen saj t maga, ‚s az mNum-ot be llĄtja a sorsz m ra. - // Egyenl“re case insensitive. - // Ret: .t., ha sikerlt, .f., ha nem. - - nmethod changeByMMList(paramValues,result,iLevel,oneLevel) - // A result-ba beleteszi a this  ltal meghat rozott helyettesĄt‚st - // a paramValues-b“l az iLevel szinten. Ha a paramValues-ban az - // iLevel szinten nincs helyettesĄtend“, akkor nem csin l semmit. - // Ret: - // 0: nem sikerlt a helyettesĄt‚s, - // 1: csak 'res' helyettesĄt‚s volt, (Nem volt illesztett match - // marker, de reset helyettesĄtett pl. dumb stringify result - // marker, logify result marker. - // 2: volt helyettesĄt‚s. - // - // Probl‚ma: Ha a match marker egy list_match_marker, akkor a - // stringify ‚s a blockify markerek elemenk‚nt csin lj k - // a konverzi˘t. (Ez jelenleg nincs imlement lva.) - -metaclass - - rmethod onew(id,str,file,line,pos) - - nmethod isResultMarker(aToken) - // Meg llpĄtja, hogy az aToken egy result marker-e. - // Ret: .t., ha igezn, .f., ha nem. - diff --git a/harbour/samples/cccppc/rmarker.och b/harbour/samples/cccppc/rmarker.och deleted file mode 100644 index 07fa0685d7..0000000000 --- a/harbour/samples/cccppc/rmarker.och +++ /dev/null @@ -1,315 +0,0 @@ -// RMARKER.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:40:25, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_TOKEN_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "TOKEN.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "TOKEN.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "TOKEN.och" -#endif // _STRICT_PARENT_ -#endif // CA_TOKEN_N - -#ifndef _CA_CM_ONLY_ -#ifndef _RMARKER_OCH_ -#define _RMARKER_OCH_ - - -#xtranslate RMARKER.:id => \[CA_OBJECT_N+1\] -#xtranslate RMARKER.:str => \[CA_OBJECT_N+2\] -#xtranslate RMARKER.:file => \[CA_OBJECT_N+3\] -#xtranslate RMARKER.:line => \[CA_OBJECT_N+4\] -#xtranslate RMARKER.:pos => \[CA_OBJECT_N+5\] -#xtranslate RMARKER.:classify => \[CA_OBJECT_N+6\] -#xtranslate RMARKER.:error => \[CA_OBJECT_N+7\] -#xtranslate RMARKER.:eqtype => \[CA_OBJECT_N+8\] - - -#xtranslate RMARKER.:oinit => (OBJGEN.():(4)) -#xtranslate RMARKER.:getclass => (OBJGEN.():(5)) -#xtranslate RMARKER.:isclass => (OBJGEN.():(6)) -#xtranslate RMARKER.:getattrib => (OBJGEN.():(7)) -#xtranslate RMARKER.:setattrib => (OBJGEN.():(8)) -#xtranslate RMARKER.:iserror => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate RMARKER.:errorstr => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate RMARKER.:printtostr => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate RMARKER.:getstr => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate RMARKER.:copytoken => (OBJGEN.():(CM_OBJECT_N+5)) - - -#xtranslate RMARKER.:mmnum => \[CA_TOKEN_N+1\] -#xtranslate RMARKER.:mmtkid => \[CA_TOKEN_N+2\] - -// ™r”k”lve: oinit(id,str,file,line,pos) -// Specifik lva: getname() -// Specifik lva: setmmidxbymm(matchMarkers) -// Specifik lva: changebymmlist(paramValues,result,iLevel,oneLevel) - -// ™r”k”lve: oinit(id,str,file,line,pos) -#xtranslate RMARKER.:getname => (OBJGEN.():(CM_TOKEN_N+1)) -#xtranslate RMARKER.:setmmidxbymm => (OBJGEN.():(CM_TOKEN_N+2)) -#xtranslate RMARKER.:changebymmlist => (OBJGEN.():(CM_TOKEN_N+3)) - -#endif // _RMARKER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_RMARKER_N -#define CA_RMARKER_N CA_TOKEN_N+2 -#define CM_RMARKER_N CM_TOKEN_N+3 -#endif // CA_RMARKER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _RMARKERCLASS_OCH_ -#define _RMARKERCLASS_OCH_ - -********************************************************************** -#xtranslate C.RMARKER: => (RMARKERCLASS.clRMARKER():) -#xtranslate C.RMARKER:self() => (clRMARKER()) - - -#xtranslate RMARKERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate RMARKERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate RMARKERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate RMARKERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate RMARKERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate RMARKERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate RMARKERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate RMARKERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate RMARKERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate RMARKERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate RMARKERCLASS.:errstrarray => \[CA_BEHAVIOR_N+1\] -#xtranslate RMARKERCLASS.:equivclass => \[CA_BEHAVIOR_N+2\] - - -#xtranslate RMARKERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate RMARKERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate RMARKERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate RMARKERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate RMARKERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate RMARKERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate RMARKERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate RMARKERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate RMARKERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate RMARKERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate RMARKERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate RMARKERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate RMARKERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate RMARKERCLASS.:onewerror => (OBJGEN.():(CM_BEHAVIOR_N+1)) -#xtranslate RMARKERCLASS.:copyfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+2)) -#xtranslate RMARKERCLASS.:findclassify => (OBJGEN.():(CM_BEHAVIOR_N+3)) - - - -// ™r”k”lve: onew(id,str,file,line,pos) -// Specifik lva: isresultmarker(aToken) - -// ™r”k”lve: onew(id,str,file,line,pos) -#xtranslate RMARKERCLASS.:isresultmarker => (OBJGEN.():(CM_TOKENCLASS_N+1)) - -#endif // _RMARKERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_RMARKERCLASS_N -#define CA_RMARKERCLASS_N CA_TOKENCLASS_N+0 -#define CM_RMARKERCLASS_N CM_TOKENCLASS_N+1 -#endif // CA_RMARKERCLASS_N - - -********************************************************************** -#ifdef _RMARKER_PRG_ -#ifndef _RMARKER_PRG_OCH_ -#define _RMARKER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => RMARKER.(othis): -#xtranslate thisclass: => RMARKERCLASS.(this:getClass()): -#define CTHIS RMARKER - - -********************************************************************** -#xtranslate this: => RMARKER.(this): - -#xcommand implement oinit(id,str,file,line,pos) => ; - static function oinit(this,id,str,file,line,pos) -#xcommand implement getname() => static function getname(this) -#xcommand implement setmmidxbymm(matchMarkers) => ; - static function setmmidxbymm(this,matchMarkers) -#xcommand implement changebymmlist(paramValues,result,iLevel,oneLevel) => ; - static function changebymmlist(this,paramValues,result,iLevel,oneLevel) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export oinit(id,str,file,line,pos) => ; - function oinit(this,id,str,file,line,pos) -#xcommand implement export getname() => function getname(this) -#xcommand implement export setmmidxbymm(matchMarkers) => ; - function setmmidxbymm(this,matchMarkers) -#xcommand implement export changebymmlist(paramValues,result,iLevel,oneLevel) => ; - function changebymmlist(this,paramValues,result,iLevel,oneLevel) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(8)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:errorstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:printtostr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:getstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:copytoken => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+5)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(4)]:={|this,id,str,file,line,pos| oinit(this,id,str,file,line,pos)} - pOsztaly[(CM_TOKEN_N+1)]:={|this| getname(this)} - pOsztaly[(CM_TOKEN_N+2)]:={|this,matchMarkers| setmmidxbymm(this,matchMarkers)} - pOsztaly[(CM_TOKEN_N+3)]:={|this,paramValues,result,iLevel,oneLevel| changebymmlist(this,paramValues,result,iLevel,oneLevel)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_TOKEN_N+1-CA_NIL_N] := {CA_TOKEN_N+1,'mmnum', } - ta[CA_TOKEN_N+2-CA_NIL_N] := {CA_TOKEN_N+2,'mmtkid', } - - tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos',nil} - tm[(CM_TOKEN_N+1)-CM_NIL_N] := {(CM_TOKEN_N+1),'getname','',nil} - tm[(CM_TOKEN_N+2)-CM_NIL_N] := {(CM_TOKEN_N+2),'setmmidxbymm','matchMarkers',nil} - tm[(CM_TOKEN_N+3)-CM_NIL_N] := {(CM_TOKEN_N+3),'changebymmlist','paramValues,result,iLevel,oneLevel',nil} -return nil - -#ifndef _NO_CLRMARKER_ -#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 clRMARKER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcRMARKERCLASS():onew(; - clTOKEN(),; - "RMARKER",; - CA_RMARKER_N,; - CM_RMARKER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLRMARKER_ - -#ifndef _NO_RMARKERCLASS_ - -********************************************************************** -#xtranslate class: => RMARKERCLASS.(class): - -#xcommand cimplement onew(id,str,file,line,pos) => ; - static function onew(class,id,str,file,line,pos) -#xcommand cimplement isresultmarker(aToken) => ; - static function isresultmarker(class,aToken) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(id,str,file,line,pos) => ; - function onew(class,id,str,file,line,pos) -#xcommand cimplement export isresultmarker(aToken) => ; - function isresultmarker(class,aToken) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) -#xtranslate superclass:onewerror => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+1)) -#xtranslate superclass:copyfromtoken => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+2)) -#xtranslate superclass:findclassify => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+3)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos| onew(class,id,str,file,line,pos)} - pOsztaly[(CM_TOKENCLASS_N+1)]:={|class,aToken| isresultmarker(class,aToken)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos',nil} - tm[(CM_TOKENCLASS_N+1)-CM_NIL_N] := {(CM_TOKENCLASS_N+1),'isresultmarker','aToken',nil} -return nil - -********************************************************************** -#ifndef _NO_MCRMARKERCLASS_ -#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 mcRMARKERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcTOKENCLASS(),; - "RMARKERCLASS",; - CA_RMARKERCLASS_N,; - CM_RMARKERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCRMARKERCLASS_ - -#endif // _NO_RMARKERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(id,str,file,line,pos) -local o:=class:ocreate() - - RMARKER.o:oinit(id,str,file,line,pos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(id,str,file,line,pos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _RMARKER_PRG_OCH_ -#endif // _RMARKER_PRG_ diff --git a/harbour/samples/cccppc/rmarker.prg b/harbour/samples/cccppc/rmarker.prg deleted file mode 100644 index cd3c5d8fdb..0000000000 --- a/harbour/samples/cccppc/rmarker.prg +++ /dev/null @@ -1,283 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// rmarker.prg: az RMARKER oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -//******************************************************************* -#include "mmarker.och" -#include "token.och" -#include "tkstr.och" - -//******************************************************************* -#define _RMARKER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "rmarker.och" - -//******************************************************************* -implement oinit(id,str,file,line,pos) - super:oinit(id,str,file,line,pos) - this:mmNum :=nil - this:mmTkId :=nil -return this - -//******************************************************************* -implement getName() -return this:str - -//******************************************************************* -implement setMMIdxByMM(matchMarkers) -// A matchMarkers-ben keres egy ugyanolyan nev– marker-t, mint -// amilyen saj t maga, ‚s az mmNum-ot be llĄtja a sorsz m ra, -// ‚s kit”lti a mmTkId-t. -// Egyenl“re case insensitive. -// Ret: .t., ha sikerlt, .f., ha nem. -local name,i - - name:=lower(this:getName()) - - for i:=1 to len(matchMarkers) - if (lower(MMARKER.matchMarkers[i]:getName())==name) - this:mmNum:=MMARKER.matchMarkers[i]:mNum - this:mmTkId:=MMARKER.matchMarkers[i]:id - return .t. - endif - end for -return .f. - -//******************************************************************* -cimplement isResultMarker(aToken) -// Meg llpĄtja, hogy az aToken egy result marker-e. -// Ret: .t., ha igezn, .f., ha nem. -static idResultMarkers:={; - TKID_DUMB_STR_RESULT_MARKER ,; - TKID_REGULAR_RESULT_MARKER ,; - TKID_STRINGIFY_RESULT_MARKER ,; - TKID_SMART_STR_RESULT_MARKER ,; - TKID_BLOCKIFY_RESULT_MARKER ,; - TKID_LOGIFY_RESULT_MARKER ; -} - -return 0!=ascan(idResultMarkers,TOKEN.aToken:id) - -//******************************************************************* -static function stringifyTokenList(tokenList) -local str,i - - str:="" - for i:=1 to len(tokenList) - str+=TOKEN.tokenList[i]:str - end for -return stringifyStr(alltrim(str)) - -#ifdef OLD - if ('"' $ str) - if ("'" $ str) - // Ez akkor is Ągy marad, ha van ']' az str-ben a spec - // szerint. - // Itt azt lehetne csin lni, hogy sz‚tv gjuk a "'" - // karakterekn‚l a stringet ‚s az Ągy kapott stringeket - // ”sszeadjuk, ‚s az eg‚sz kifejez‚st z r˘jelbe tesszk. - str:="["+str+"]" - else - str:="'"+str+"'" - endif - else - str:='"'+str+'"' - endif - -return str -#endif - -//******************************************************************* -static function mkTkStrFromToken(t,str) -return C.TKSTR:copyFromToken(t,TKID_STRING,; - substr(str,2,len(str)-2),; - left(str,1),; - right(str,1)) - -//******************************************************************* -static function rmListChange(this,result,tl,addBlock,addEmptyBlock) -local i -#ifdef SPEEDY -// Ez nem jelent jelent“s gyorsul st. -// Az aadd() az ami meglehet“sen lassŁ, helyettesĄteni kellene, egy -// olyannal, ami el“re lefoglal valamennyi helyet. -local comma - - comma:=C.TOKEN:copyFromToken(if(!empty(result),atail(result),this),; - TKID_CHAR,",") -#endif - if (this:mmTkId==TKID_LIST_MATCH_MARKER) - for i:=1 to len(tl) - if (i>=2) - #ifdef SPEEDY - aadd(result,comma) - #else - aadd(result,C.TOKEN:copyFromToken(atail(result),TKID_CHAR,",")) - #endif - endif - if (empty(tl[i])) - if (addEmptyBlock!=nil) - eval(addEmptyBlock,tl[i],i) - endif - else - eval(addBlock,tl[i],i) - endif - end for - elseif (!empty(tl)) - eval(addBlock,tl,0) - endif -return nil - -//******************************************************************* -implement changeByMMList(paramValues,result,iLevel,oneLevel) -/* - A result-ba beleteszi a this  ltal meghat rozott helyettesĄt‚st - a paramValues-b“l az iLevel szinten. Ha a paramValues-ban az - iLevel szinten nincs helyettesĄtend“, de van utols˘, akkor az - utols˘t helyettesĄti, ‚s ezt resnek tekinti. - Ha a oneLevel nem res, ‚s a paramValue-ban egyn‚l t”bb szint van - a this-hez tartoz˘ result markerhez, akkor nem v‚gzi el a - helyettesĄt‚st. - - Ha a oneLevel nem res, akkor az 'res' helyettesĄt‚sekn‚l 2-t - ad ‚s nem 1-et. - - Ret: - 0: nem sikerlt a helyettesĄt‚s, - 1: csak 'res' helyettesĄt‚s volt, (Nem volt illesztett match - marker, de reset helyettesĄtett pl. dumb stringify result - marker, logify result marker. - 2: volt helyettesĄt‚s. - - Probl‚ma: Ha a match marker egy list_match_marker, akkor a - stringify ‚s a blockify markerek elemenk‚nt csin lj k - a konverzi˘t. (Ez jelenleg nincs imlement lva.) - - Mj.: A paramValues-ban egy szinten egy tokenLista van, ami az - adott szinten a matchMarkerre illesztett tokeneket adja - meg, kiv‚tel a list match marker, mert ott ilyen tokenList k - list ja van, ami a list math markerre illesztett list kat - tartalmazza. -*/ -local tl,retVal,str,wtl - - if (len(paramValues)1) - return 0 - endif - - if (len(tl):id => \[CA_OBJECT_N+1\] -#xtranslate RSMMARKR.:str => \[CA_OBJECT_N+2\] -#xtranslate RSMMARKR.:file => \[CA_OBJECT_N+3\] -#xtranslate RSMMARKR.:line => \[CA_OBJECT_N+4\] -#xtranslate RSMMARKR.:pos => \[CA_OBJECT_N+5\] -#xtranslate RSMMARKR.:classify => \[CA_OBJECT_N+6\] -#xtranslate RSMMARKR.:error => \[CA_OBJECT_N+7\] -#xtranslate RSMMARKR.:eqtype => \[CA_OBJECT_N+8\] -#xtranslate RSMMARKR.:mnum => \[CA_TOKEN_N+1\] -#xtranslate RSMMARKR.:nexttoken => \[CA_TOKEN_N+2\] - - -#xtranslate RSMMARKR.:oinit => (OBJGEN.():(4)) -#xtranslate RSMMARKR.:getclass => (OBJGEN.():(5)) -#xtranslate RSMMARKR.:isclass => (OBJGEN.():(6)) -#xtranslate RSMMARKR.:getattrib => (OBJGEN.():(7)) -#xtranslate RSMMARKR.:setattrib => (OBJGEN.():(8)) -#xtranslate RSMMARKR.:iserror => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate RSMMARKR.:errorstr => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate RSMMARKR.:printtostr => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate RSMMARKR.:getstr => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate RSMMARKR.:copytoken => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate RSMMARKR.:getname => (OBJGEN.():(CM_TOKEN_N+1)) - - -#xtranslate RSMMARKR.:wordlist => \[CA_MMARKER_N+1\] - -// ™r”k”lve: getstr() -// ™r”k”lve: oinit(id,str,file,line,pos) - -// ™r”k”lve: getstr() -// ™r”k”lve: oinit(id,str,file,line,pos) - -#endif // _RSMMARKR_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_RSMMARKR_N -#define CA_RSMMARKR_N CA_MMARKER_N+1 -#define CM_RSMMARKR_N CM_MMARKER_N+0 -#endif // CA_RSMMARKR_N - -#ifndef _CA_CM_ONLY_ -#ifndef _RSMMARKRCLASS_OCH_ -#define _RSMMARKRCLASS_OCH_ - -********************************************************************** -#xtranslate C.RSMMARKR: => (RSMMARKRCLASS.clRSMMARKR():) -#xtranslate C.RSMMARKR:self() => (clRSMMARKR()) - - -#xtranslate RSMMARKRCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate RSMMARKRCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate RSMMARKRCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate RSMMARKRCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate RSMMARKRCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate RSMMARKRCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate RSMMARKRCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate RSMMARKRCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate RSMMARKRCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate RSMMARKRCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate RSMMARKRCLASS.:errstrarray => \[CA_BEHAVIOR_N+1\] -#xtranslate RSMMARKRCLASS.:equivclass => \[CA_BEHAVIOR_N+2\] - - -#xtranslate RSMMARKRCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate RSMMARKRCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate RSMMARKRCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate RSMMARKRCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate RSMMARKRCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate RSMMARKRCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate RSMMARKRCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate RSMMARKRCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate RSMMARKRCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate RSMMARKRCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate RSMMARKRCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate RSMMARKRCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate RSMMARKRCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate RSMMARKRCLASS.:onewerror => (OBJGEN.():(CM_BEHAVIOR_N+1)) -#xtranslate RSMMARKRCLASS.:copyfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+2)) -#xtranslate RSMMARKRCLASS.:findclassify => (OBJGEN.():(CM_BEHAVIOR_N+3)) -#xtranslate RSMMARKRCLASS.:ismatchmarker => (OBJGEN.():(CM_TOKENCLASS_N+1)) - - - -// ™r”k”lve: onew(id,str,file,line,pos) - -// ™r”k”lve: onew(id,str,file,line,pos) - -#endif // _RSMMARKRCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_RSMMARKRCLASS_N -#define CA_RSMMARKRCLASS_N CA_MMARKERCLASS_N+0 -#define CM_RSMMARKRCLASS_N CM_MMARKERCLASS_N+0 -#endif // CA_RSMMARKRCLASS_N - - -********************************************************************** -#ifdef _RSMMARKR_PRG_ -#ifndef _RSMMARKR_PRG_OCH_ -#define _RSMMARKR_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => RSMMARKR.(othis): -#xtranslate thisclass: => RSMMARKRCLASS.(this:getClass()): -#define CTHIS RSMMARKR - - -********************************************************************** -#xtranslate this: => RSMMARKR.(this): - -#xcommand implement getstr() => static function getstr(this) -#xcommand implement oinit(id,str,file,line,pos) => ; - static function oinit(this,id,str,file,line,pos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export getstr() => function getstr(this) -#xcommand implement export oinit(id,str,file,line,pos) => ; - function oinit(this,id,str,file,line,pos) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(8)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:errorstr => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:printtostr => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:getstr => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:copytoken => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:getname => (OBJGENM.(eval(BEHAVIOR.clMMARKER():objmethodsimplement)).(this):(CM_TOKEN_N+1)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+4)]:={|this| getstr(this)} - pOsztaly[(4)]:={|this,id,str,file,line,pos| oinit(this,id,str,file,line,pos)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_MMARKER_N+1-CA_NIL_N] := {CA_MMARKER_N+1,'wordlist', } - - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'getstr','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos',nil} -return nil - -#ifndef _NO_CLRSMMARKR_ -#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 clRSMMARKR() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcRSMMARKRCLASS():onew(; - clMMARKER(),; - "RSMMARKR",; - CA_RSMMARKR_N,; - CM_RSMMARKR_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLRSMMARKR_ - -#ifndef _NO_RSMMARKRCLASS_ - -********************************************************************** -#xtranslate class: => RSMMARKRCLASS.(class): - -#xcommand cimplement onew(id,str,file,line,pos) => ; - static function onew(class,id,str,file,line,pos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(id,str,file,line,pos) => ; - function onew(class,id,str,file,line,pos) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) -#xtranslate superclass:onewerror => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+1)) -#xtranslate superclass:copyfromtoken => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+2)) -#xtranslate superclass:findclassify => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+3)) -#xtranslate superclass:ismatchmarker => (OBJGENM.(eval(BEHAVIOR.mcMMARKERCLASS():objmethodsimplement)).(class):(CM_TOKENCLASS_N+1)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos| onew(class,id,str,file,line,pos)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos',nil} -return nil - -********************************************************************** -#ifndef _NO_MCRSMMARKRCLASS_ -#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 mcRSMMARKRCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcMMARKERCLASS(),; - "RSMMARKRCLASS",; - CA_RSMMARKRCLASS_N,; - CM_RSMMARKRCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCRSMMARKRCLASS_ - -#endif // _NO_RSMMARKRCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(id,str,file,line,pos) -local o:=class:ocreate() - - RSMMARKR.o:oinit(id,str,file,line,pos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(id,str,file,line,pos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _RSMMARKR_PRG_OCH_ -#endif // _RSMMARKR_PRG_ diff --git a/harbour/samples/cccppc/rsmmarkr.prg b/harbour/samples/cccppc/rsmmarkr.prg deleted file mode 100644 index e785d2534a..0000000000 --- a/harbour/samples/cccppc/rsmmarkr.prg +++ /dev/null @@ -1,55 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// rsmmarkr.prg: Az RSMMARKR oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -// #include "token.och" - -//******************************************************************* -#define _RSMMARKR_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "rsmmarkr.och" - -//******************************************************************* -implement oinit(id,str,file,line,pos) - super:oinit(id,str,file,line,pos) - this:wordList :={} -return this - -//******************************************************************* -implement getStr() -local str,i - - if (!this:id==TKID_RESTRICTED_MATCH_MARKER) - return super:getStr() - endif - str:="" - for i:=1 to len(this:wordList) - if (i>1) - str+="," - endif - str+=this:wordList[i] - end for - - str:="<"+if(this:str==nil,"",this:str)+":"+str+">" - if (this:isError()) - str+=", Error: "+this:errorStr()+guessedEol() - endif - -return str - -//******************************************************************* - - - - diff --git a/harbour/samples/cccppc/sreader.cls b/harbour/samples/cccppc/sreader.cls deleted file mode 100644 index cc61c47d71..0000000000 --- a/harbour/samples/cccppc/sreader.cls +++ /dev/null @@ -1,28 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// sreader.cls: Stringb“l karaktereket olvas˘ oszt ly. A CREADER-t“l -// ”r”k”l. -// 1999, Csisz r Levente - -class SREADER CREADER - - attrib str // A string, amib“l olvasunk, - - attrib istr // A pozĄci˘ a stringben. - - rmethod readItem() - // Olvas egy karaktert. - // Ret: A karakter, ha OK, nil, ha v‚ge van a streamnek, vagy ha - // hiba volt. - - rmethod oinit(str,name,errorStream) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(str,name,errorStream) - - diff --git a/harbour/samples/cccppc/sreader.och b/harbour/samples/cccppc/sreader.och deleted file mode 100644 index 4a7aad376a..0000000000 --- a/harbour/samples/cccppc/sreader.och +++ /dev/null @@ -1,292 +0,0 @@ -// SREADER.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_CREADER_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "CREADER.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "CREADER.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "CREADER.och" -#endif // _STRICT_PARENT_ -#endif // CA_CREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _SREADER_OCH_ -#define _SREADER_OCH_ - - -#xtranslate SREADER.:name => \[CA_OBJECT_N+1\] -#xtranslate SREADER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate SREADER.:tbuffer => \[CA_OBJECT_N+3\] -#xtranslate SREADER.:line => \[CA_READER_N+1\] -#xtranslate SREADER.:pos => \[CA_READER_N+2\] - - -#xtranslate SREADER.:oinit => (OBJGEN.():(4)) -#xtranslate SREADER.:getclass => (OBJGEN.():(5)) -#xtranslate SREADER.:isclass => (OBJGEN.():(6)) -#xtranslate SREADER.:getattrib => (OBJGEN.():(7)) -#xtranslate SREADER.:setattrib => (OBJGEN.():(8)) -#xtranslate SREADER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate SREADER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate SREADER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate SREADER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate SREADER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate SREADER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate SREADER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate SREADER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate SREADER.:getfile => (OBJGEN.():(CM_READER_N+1)) -#xtranslate SREADER.:getline => (OBJGEN.():(CM_READER_N+2)) -#xtranslate SREADER.:getpos => (OBJGEN.():(CM_READER_N+3)) - - -#xtranslate SREADER.:str => \[CA_CREADER_N+1\] -#xtranslate SREADER.:istr => \[CA_CREADER_N+2\] - -// ™r”k”lve: readitem() -// ™r”k”lve: oinit(str,name,errorStream) - -// ™r”k”lve: readitem() -// ™r”k”lve: oinit(str,name,errorStream) - -#endif // _SREADER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_SREADER_N -#define CA_SREADER_N CA_CREADER_N+2 -#define CM_SREADER_N CM_CREADER_N+0 -#endif // CA_SREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _SREADERCLASS_OCH_ -#define _SREADERCLASS_OCH_ - -********************************************************************** -#xtranslate C.SREADER: => (SREADERCLASS.clSREADER():) -#xtranslate C.SREADER:self() => (clSREADER()) - - -#xtranslate SREADERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate SREADERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate SREADERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate SREADERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate SREADERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate SREADERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate SREADERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate SREADERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate SREADERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate SREADERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate SREADERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate SREADERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate SREADERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate SREADERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate SREADERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate SREADERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate SREADERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate SREADERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate SREADERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate SREADERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate SREADERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate SREADERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate SREADERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(str,name,errorStream) - -// ™r”k”lve: onew(str,name,errorStream) - -#endif // _SREADERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_SREADERCLASS_N -#define CA_SREADERCLASS_N CA_CREADERCLASS_N+0 -#define CM_SREADERCLASS_N CM_CREADERCLASS_N+0 -#endif // CA_SREADERCLASS_N - - -********************************************************************** -#ifdef _SREADER_PRG_ -#ifndef _SREADER_PRG_OCH_ -#define _SREADER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => SREADER.(othis): -#xtranslate thisclass: => SREADERCLASS.(this:getClass()): -#define CTHIS SREADER - - -********************************************************************** -#xtranslate this: => SREADER.(this): - -#xcommand implement readitem() => static function readitem(this) -#xcommand implement oinit(str,name,errorStream) => ; - static function oinit(this,str,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export readitem() => function readitem(this) -#xcommand implement export oinit(str,name,errorStream) => ; - function oinit(this,str,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(8)) -#xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+8)) -#xtranslate super:getfile => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+1)) -#xtranslate super:getline => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+2)) -#xtranslate super:getpos => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+3)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)} - pOsztaly[(4)]:={|this,str,name,errorStream| oinit(this,str,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_CREADER_N+1-CA_NIL_N] := {CA_CREADER_N+1,'str', } - ta[CA_CREADER_N+2-CA_NIL_N] := {CA_CREADER_N+2,'istr', } - - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','str,name,errorStream',nil} -return nil - -#ifndef _NO_CLSREADER_ -#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 clSREADER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcSREADERCLASS():onew(; - clCREADER(),; - "SREADER",; - CA_SREADER_N,; - CM_SREADER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLSREADER_ - -#ifndef _NO_SREADERCLASS_ - -********************************************************************** -#xtranslate class: => SREADERCLASS.(class): - -#xcommand cimplement onew(str,name,errorStream) => ; - static function onew(class,str,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(str,name,errorStream) => ; - function onew(class,str,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,str,name,errorStream| onew(class,str,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','str,name,errorStream',nil} -return nil - -********************************************************************** -#ifndef _NO_MCSREADERCLASS_ -#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 mcSREADERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcCREADERCLASS(),; - "SREADERCLASS",; - CA_SREADERCLASS_N,; - CM_SREADERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCSREADERCLASS_ - -#endif // _NO_SREADERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(str,name,errorStream) -local o:=class:ocreate() - - SREADER.o:oinit(str,name,errorStream) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(str,name,errorStream) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _SREADER_PRG_OCH_ -#endif // _SREADER_PRG_ diff --git a/harbour/samples/cccppc/sreader.prg b/harbour/samples/cccppc/sreader.prg deleted file mode 100644 index 14bdbd8dc2..0000000000 --- a/harbour/samples/cccppc/sreader.prg +++ /dev/null @@ -1,40 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// sreader.prg: Az SREADER oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -#define _SREADER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "sreader.och" - -//******************************************************************* - -implement oinit(str,name,errorStream) - super:oinit(name,errorStream) - this:str:=str - this:istr:=1 -return this - -//******************************************************************* -implement readItem() -local c - - if (this:istr>len(this:str)) - return nil - endif - - c:=substr(this:str,this:istr,1) - this:istr:=this:istr+1 - -return c - -//******************************************************************* - - diff --git a/harbour/samples/cccppc/tbuffer.cls b/harbour/samples/cccppc/tbuffer.cls deleted file mode 100644 index d917da8e60..0000000000 --- a/harbour/samples/cccppc/tbuffer.cls +++ /dev/null @@ -1,52 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// tbuffer.cls: K‚tir nyŁ buffer -// 1999, Csisz r Levente - -// M–veletek: get,unget,put,unput -// A get ‚s a put egy fifo t rat val˘sĄt meg. -// A stringeket ”sszevonja. -// Nil-t nem t rol a bufferben. - -class TBUFFER OBJECT - - attrib buffer // {{tipus,tartalom[,szamlalo]},...} - - nmethod get() - // Kiveszi ‚s visszaadja a buffer els“ elem‚t. - // Ha a buffer res, akkor nil-t ad. - - nmethod unget(item) - // Az itemet visszateszi a puffer elej‚re. - // Ha az item nil, akkor nem csin l semmit. - - nmethod put(item) - // Az itemet beteszi a puffer v‚g‚re. - // Ha az item nil, akkor nem csin l semmit. - - nmethod unput() - // Kiveszi ‚s visszaadja a buffer utols˘ elem‚t. - // Ha a buffer res, akkor nil-t ad. - - nmethod clear() - // KirĄti a puffert. - - - nmethod bItemNumber() - // H ny elem– a buffer. Az ”sszevont stringeket egynek sz molja. - - nmethod getBItem(i) - // Az i. buffer elemet adja. - - nmethod appendBuffer(aTBuffer) - // Az aTBuffer tartalm t hozz appendeli a this-hez. - - rmethod oinit() - -// metaclass - -// rmethod oinitclass() - diff --git a/harbour/samples/cccppc/tbuffer.och b/harbour/samples/cccppc/tbuffer.och deleted file mode 100644 index c60ea83dd7..0000000000 --- a/harbour/samples/cccppc/tbuffer.och +++ /dev/null @@ -1,289 +0,0 @@ -// TBUFFER.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:41:08, 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 _TBUFFER_OCH_ -#define _TBUFFER_OCH_ - - - - -#xtranslate TBUFFER.:oinit => (OBJGEN.():(4)) -#xtranslate TBUFFER.:getclass => (OBJGEN.():(5)) -#xtranslate TBUFFER.:isclass => (OBJGEN.():(6)) -#xtranslate TBUFFER.:getattrib => (OBJGEN.():(7)) -#xtranslate TBUFFER.:setattrib => (OBJGEN.():(8)) - - -#xtranslate TBUFFER.:buffer => \[CA_OBJECT_N+1\] - -// Specifik lva: get() -// Specifik lva: unget(item) -// Specifik lva: put(item) -// Specifik lva: unput() -// Specifik lva: clear() -// Specifik lva: bitemnumber() -// Specifik lva: getbitem(i) -// Specifik lva: appendbuffer(aTBuffer) -// ™r”k”lve: oinit() - -#xtranslate TBUFFER.:get => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TBUFFER.:unget => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TBUFFER.:put => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TBUFFER.:unput => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TBUFFER.:clear => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate TBUFFER.:bitemnumber => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate TBUFFER.:getbitem => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate TBUFFER.:appendbuffer => (OBJGEN.():(CM_OBJECT_N+8)) -// ™r”k”lve: oinit() - -#endif // _TBUFFER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TBUFFER_N -#define CA_TBUFFER_N CA_OBJECT_N+1 -#define CM_TBUFFER_N CM_OBJECT_N+8 -#endif // CA_TBUFFER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _TBUFFERCLASS_OCH_ -#define _TBUFFERCLASS_OCH_ - -********************************************************************** -#xtranslate C.TBUFFER: => (TBUFFERCLASS.clTBUFFER():) -#xtranslate C.TBUFFER:self() => (clTBUFFER()) - - -#xtranslate TBUFFERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate TBUFFERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate TBUFFERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate TBUFFERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate TBUFFERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate TBUFFERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate TBUFFERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate TBUFFERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate TBUFFERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate TBUFFERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate TBUFFERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate TBUFFERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate TBUFFERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate TBUFFERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate TBUFFERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate TBUFFERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TBUFFERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TBUFFERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TBUFFERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TBUFFERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate TBUFFERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate TBUFFERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate TBUFFERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - - - -#endif // _TBUFFERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TBUFFERCLASS_N -#define CA_TBUFFERCLASS_N CA_BEHAVIOR_N+0 -#define CM_TBUFFERCLASS_N CM_BEHAVIOR_N+0 -#endif // CA_TBUFFERCLASS_N - - -********************************************************************** -#ifdef _TBUFFER_PRG_ -#ifndef _TBUFFER_PRG_OCH_ -#define _TBUFFER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => TBUFFER.(othis): -#xtranslate thisclass: => TBUFFERCLASS.(this:getClass()): -#define CTHIS TBUFFER - - -********************************************************************** -#xtranslate this: => TBUFFER.(this): - -#xcommand implement get() => static function get(this) -#xcommand implement unget(item) => static function unget(this,item) -#xcommand implement put(item) => static function put(this,item) -#xcommand implement unput() => static function unput(this) -#xcommand implement clear() => static function clear(this) -#xcommand implement bitemnumber() => static function bitemnumber(this) -#xcommand implement getbitem(i) => static function getbitem(this,i) -#xcommand implement appendbuffer(aTBuffer) => ; - static function appendbuffer(this,aTBuffer) -#xcommand implement oinit() => static function oinit(this) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export get() => function get(this) -#xcommand implement export unget(item) => function unget(this,item) -#xcommand implement export put(item) => function put(this,item) -#xcommand implement export unput() => function unput(this) -#xcommand implement export clear() => function clear(this) -#xcommand implement export bitemnumber() => function bitemnumber(this) -#xcommand implement export getbitem(i) => function getbitem(this,i) -#xcommand implement export appendbuffer(aTBuffer) => ; - function appendbuffer(this,aTBuffer) -#xcommand implement export oinit() => function oinit(this) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this| get(this)} - pOsztaly[(CM_OBJECT_N+2)]:={|this,item| unget(this,item)} - pOsztaly[(CM_OBJECT_N+3)]:={|this,item| put(this,item)} - pOsztaly[(CM_OBJECT_N+4)]:={|this| unput(this)} - pOsztaly[(CM_OBJECT_N+5)]:={|this| clear(this)} - pOsztaly[(CM_OBJECT_N+6)]:={|this| bitemnumber(this)} - pOsztaly[(CM_OBJECT_N+7)]:={|this,i| getbitem(this,i)} - pOsztaly[(CM_OBJECT_N+8)]:={|this,aTBuffer| appendbuffer(this,aTBuffer)} - pOsztaly[(4)]:={|this| oinit(this)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'buffer', } - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'get','',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'unget','item',nil} - tm[(CM_OBJECT_N+3)-CM_NIL_N] := {(CM_OBJECT_N+3),'put','item',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'unput','',nil} - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'clear','',nil} - tm[(CM_OBJECT_N+6)-CM_NIL_N] := {(CM_OBJECT_N+6),'bitemnumber','',nil} - tm[(CM_OBJECT_N+7)-CM_NIL_N] := {(CM_OBJECT_N+7),'getbitem','i',nil} - tm[(CM_OBJECT_N+8)-CM_NIL_N] := {(CM_OBJECT_N+8),'appendbuffer','aTBuffer',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','',nil} -return nil - -#ifndef _NO_CLTBUFFER_ -#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 clTBUFFER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcTBUFFERCLASS():onew(; - clOBJECT(),; - "TBUFFER",; - CA_TBUFFER_N,; - CM_TBUFFER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLTBUFFER_ - -#ifndef _NO_TBUFFERCLASS_ - -********************************************************************** -#xtranslate class: => TBUFFERCLASS.(class): - - -#ifdef _IMPLEMENT_EXPORT_ -#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 m–veleti blokkjaival. -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - -return nil - -********************************************************************** -#ifndef _NO_MCTBUFFERCLASS_ -#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 mcTBUFFERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "TBUFFERCLASS",; - CA_TBUFFERCLASS_N,; - CM_TBUFFERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCTBUFFERCLASS_ - -#endif // _NO_TBUFFERCLASS_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit() - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _TBUFFER_PRG_OCH_ -#endif // _TBUFFER_PRG_ diff --git a/harbour/samples/cccppc/tbuffer.prg b/harbour/samples/cccppc/tbuffer.prg deleted file mode 100644 index bd26f7aec5..0000000000 --- a/harbour/samples/cccppc/tbuffer.prg +++ /dev/null @@ -1,171 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// tbuffer.prg: A tbuffer oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -#include "objgen.ch" - -#define _TBUFFER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "tbuffer.och" - -//******************************************************************* -#define TBID_CHARARRAY "C" -#define TBID_NORMAL "N" - -//******************************************************************* -#define TB_MAXSGET 100 - -//******************************************************************* -implement oinit() - super:oinit() - this:buffer:={} -return this - -//******************************************************************* -implement put(item) -local e - - if (item==nil) - return item - endif - - if (!valtype(item)=="C") - aadd(this:buffer,{TBID_NORMAL,item}) - return item - endif - if (len(this:buffer)<=0) - aadd(this:buffer,{TBID_CHARARRAY,item,1}) - return item - endif - e:=atail(this:buffer) - if (e[1]==TBID_NORMAL) - aadd(this:buffer,{TBID_CHARARRAY,item,1}) - return item - endif - e[2]:=e[2]+item -return item - -//******************************************************************* - -//******************************************************************* -implement unget(item) -local e - - if (item==nil) - return item - endif - - if (!valtype(item)=="C") - aunget(this:buffer,{TBID_NORMAL,item}) - return item - endif - if (len(this:buffer)<=0) - aunget(this:buffer,{TBID_CHARARRAY,item,1}) - return item - endif - e:=this:buffer[1] - if (e[1]==TBID_NORMAL) - aunget(this:buffer,{TBID_CHARARRAY,item,1}) - return item - endif - if (e[3]>1) - e[2]:=substr(e[2],e[3]) - e[3]:=1 - endif - e[2]:=item+e[2] -return item - -//******************************************************************* -implement get() -local e,item - - if (len(this:buffer)<=0) - return nil - endif - - e:=this:buffer[1] - - if (e[1]==TBID_NORMAL) - return aread(this:buffer)[2] - endif - - if (e[3]>len(e[2])) - aread(this:buffer) - return this:get() - endif - - item:=substr(e[2],e[3],1) - - e[3]:=e[3]+1 - - if (e[3]>len(e[2])) - aread(this:buffer) - return item - endif - - if (e[3]>TB_MAXSGET) - e[2]:=substr(e[2],e[3]) - e[3]:=1 - endif - -return item - -//******************************************************************* -implement unput() -local e,item - - if (len(this:buffer)<=0) - return nil - endif - - e:=atail(this:buffer) - - if (e[1]==TBID_NORMAL) - return apop(this:buffer)[2] - endif - - if (e[3]>len(e[2])) - adrop(this:buffer) - return this:unput() - endif - - item:=right(e[2],1) - e[2]:=substr(e[2],1,len(e[2])-1) -return item - -//******************************************************************* -implement clear() - this:buffer:={} -return nil - -//******************************************************************* -implement bItemNumber() -return len(this:buffer) - -//******************************************************************* -implement getBItem(i) -local e - - e:=this:buffer[i] - if (e[1]==TBID_NORMAL) - return e[2] - endif -return substr(e[2],e[3]) - -//******************************************************************* -implement appendBuffer(aTBuffer) - aappend(this:buffer,CTHIS.aTBuffer:buffer) -return this - -//******************************************************************* -// cimplement oinitclass() -// superclass:oinitclass() -// return class -//******************************************************************* - - diff --git a/harbour/samples/cccppc/tkstr.cls b/harbour/samples/cccppc/tkstr.cls deleted file mode 100644 index 7a6963dc0d..0000000000 --- a/harbour/samples/cccppc/tkstr.cls +++ /dev/null @@ -1,24 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// tkstr.cls: String token reprezent ci˘. -// 1999, Csisz r Levente - -class TKSTR TOKEN - - attrib kezdo // Az eredeti kezd“. - attrib zaro // Ha hi nyzik, akkor "" - - rmethod getStr() - - rmethod oinit(id,str,file,line,pos,kezdo,zaro) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(id,str,file,line,pos,kezdo,zaro) - - rmethod copyFromToken(t,id,str,kezdo,zaro) - diff --git a/harbour/samples/cccppc/tkstr.och b/harbour/samples/cccppc/tkstr.och deleted file mode 100644 index ffd063e984..0000000000 --- a/harbour/samples/cccppc/tkstr.och +++ /dev/null @@ -1,299 +0,0 @@ -// TKSTR.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:41:38, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_TOKEN_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "TOKEN.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "TOKEN.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "TOKEN.och" -#endif // _STRICT_PARENT_ -#endif // CA_TOKEN_N - -#ifndef _CA_CM_ONLY_ -#ifndef _TKSTR_OCH_ -#define _TKSTR_OCH_ - - -#xtranslate TKSTR.:id => \[CA_OBJECT_N+1\] -#xtranslate TKSTR.:str => \[CA_OBJECT_N+2\] -#xtranslate TKSTR.:file => \[CA_OBJECT_N+3\] -#xtranslate TKSTR.:line => \[CA_OBJECT_N+4\] -#xtranslate TKSTR.:pos => \[CA_OBJECT_N+5\] -#xtranslate TKSTR.:classify => \[CA_OBJECT_N+6\] -#xtranslate TKSTR.:error => \[CA_OBJECT_N+7\] -#xtranslate TKSTR.:eqtype => \[CA_OBJECT_N+8\] - - -#xtranslate TKSTR.:oinit => (OBJGEN.():(4)) -#xtranslate TKSTR.:getclass => (OBJGEN.():(5)) -#xtranslate TKSTR.:isclass => (OBJGEN.():(6)) -#xtranslate TKSTR.:getattrib => (OBJGEN.():(7)) -#xtranslate TKSTR.:setattrib => (OBJGEN.():(8)) -#xtranslate TKSTR.:iserror => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TKSTR.:errorstr => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TKSTR.:printtostr => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TKSTR.:getstr => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TKSTR.:copytoken => (OBJGEN.():(CM_OBJECT_N+5)) - - -#xtranslate TKSTR.:kezdo => \[CA_TOKEN_N+1\] -#xtranslate TKSTR.:zaro => \[CA_TOKEN_N+2\] - -// ™r”k”lve: getstr() -// ™r”k”lve: oinit(id,str,file,line,pos,kezdo,zaro) - -// ™r”k”lve: getstr() -// ™r”k”lve: oinit(id,str,file,line,pos,kezdo,zaro) - -#endif // _TKSTR_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TKSTR_N -#define CA_TKSTR_N CA_TOKEN_N+2 -#define CM_TKSTR_N CM_TOKEN_N+0 -#endif // CA_TKSTR_N - -#ifndef _CA_CM_ONLY_ -#ifndef _TKSTRCLASS_OCH_ -#define _TKSTRCLASS_OCH_ - -********************************************************************** -#xtranslate C.TKSTR: => (TKSTRCLASS.clTKSTR():) -#xtranslate C.TKSTR:self() => (clTKSTR()) - - -#xtranslate TKSTRCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate TKSTRCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate TKSTRCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate TKSTRCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate TKSTRCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate TKSTRCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate TKSTRCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate TKSTRCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate TKSTRCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate TKSTRCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate TKSTRCLASS.:errstrarray => \[CA_BEHAVIOR_N+1\] -#xtranslate TKSTRCLASS.:equivclass => \[CA_BEHAVIOR_N+2\] - - -#xtranslate TKSTRCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate TKSTRCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate TKSTRCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate TKSTRCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate TKSTRCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate TKSTRCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TKSTRCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TKSTRCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TKSTRCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TKSTRCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate TKSTRCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate TKSTRCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate TKSTRCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate TKSTRCLASS.:onewerror => (OBJGEN.():(CM_BEHAVIOR_N+1)) -#xtranslate TKSTRCLASS.:copyfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+2)) -#xtranslate TKSTRCLASS.:findclassify => (OBJGEN.():(CM_BEHAVIOR_N+3)) - - - -// ™r”k”lve: onew(id,str,file,line,pos,kezdo,zaro) -// ™r”k”lve: copyfromtoken(t,id,str,kezdo,zaro) - -// ™r”k”lve: onew(id,str,file,line,pos,kezdo,zaro) -// ™r”k”lve: copyfromtoken(t,id,str,kezdo,zaro) - -#endif // _TKSTRCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TKSTRCLASS_N -#define CA_TKSTRCLASS_N CA_TOKENCLASS_N+0 -#define CM_TKSTRCLASS_N CM_TOKENCLASS_N+0 -#endif // CA_TKSTRCLASS_N - - -********************************************************************** -#ifdef _TKSTR_PRG_ -#ifndef _TKSTR_PRG_OCH_ -#define _TKSTR_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => TKSTR.(othis): -#xtranslate thisclass: => TKSTRCLASS.(this:getClass()): -#define CTHIS TKSTR - - -********************************************************************** -#xtranslate this: => TKSTR.(this): - -#xcommand implement getstr() => static function getstr(this) -#xcommand implement oinit(id,str,file,line,pos,kezdo,zaro) => ; - static function oinit(this,id,str,file,line,pos,kezdo,zaro) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export getstr() => function getstr(this) -#xcommand implement export oinit(id,str,file,line,pos,kezdo,zaro) => ; - function oinit(this,id,str,file,line,pos,kezdo,zaro) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(8)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:errorstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:printtostr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:getstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:copytoken => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+5)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+4)]:={|this| getstr(this)} - pOsztaly[(4)]:={|this,id,str,file,line,pos,kezdo,zaro| oinit(this,id,str,file,line,pos,kezdo,zaro)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_TOKEN_N+1-CA_NIL_N] := {CA_TOKEN_N+1,'kezdo', } - ta[CA_TOKEN_N+2-CA_NIL_N] := {CA_TOKEN_N+2,'zaro', } - - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'getstr','',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos,kezdo,zaro',nil} -return nil - -#ifndef _NO_CLTKSTR_ -#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 clTKSTR() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcTKSTRCLASS():onew(; - clTOKEN(),; - "TKSTR",; - CA_TKSTR_N,; - CM_TKSTR_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLTKSTR_ - -#ifndef _NO_TKSTRCLASS_ - -********************************************************************** -#xtranslate class: => TKSTRCLASS.(class): - -#xcommand cimplement onew(id,str,file,line,pos,kezdo,zaro) => ; - static function onew(class,id,str,file,line,pos,kezdo,zaro) -#xcommand cimplement copyfromtoken(t,id,str,kezdo,zaro) => ; - static function copyfromtoken(class,t,id,str,kezdo,zaro) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(id,str,file,line,pos,kezdo,zaro) => ; - function onew(class,id,str,file,line,pos,kezdo,zaro) -#xcommand cimplement export copyfromtoken(t,id,str,kezdo,zaro) => ; - function copyfromtoken(class,t,id,str,kezdo,zaro) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) -#xtranslate superclass:onewerror => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+1)) -#xtranslate superclass:copyfromtoken => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+2)) -#xtranslate superclass:findclassify => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+3)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos,kezdo,zaro| onew(class,id,str,file,line,pos,kezdo,zaro)} - pOsztaly[(CM_BEHAVIOR_N+2)]:={|class,t,id,str,kezdo,zaro| copyfromtoken(class,t,id,str,kezdo,zaro)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos,kezdo,zaro',nil} - tm[(CM_BEHAVIOR_N+2)-CM_NIL_N] := {(CM_BEHAVIOR_N+2),'copyfromtoken','t,id,str,kezdo,zaro',nil} -return nil - -********************************************************************** -#ifndef _NO_MCTKSTRCLASS_ -#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 mcTKSTRCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcTOKENCLASS(),; - "TKSTRCLASS",; - CA_TKSTRCLASS_N,; - CM_TKSTRCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCTKSTRCLASS_ - -#endif // _NO_TKSTRCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(id,str,file,line,pos,kezdo,zaro) -local o:=class:ocreate() - - TKSTR.o:oinit(id,str,file,line,pos,kezdo,zaro) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(id,str,file,line,pos,kezdo,zaro) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _TKSTR_PRG_OCH_ -#endif // _TKSTR_PRG_ diff --git a/harbour/samples/cccppc/tkstr.prg b/harbour/samples/cccppc/tkstr.prg deleted file mode 100644 index 9f17bfc126..0000000000 --- a/harbour/samples/cccppc/tkstr.prg +++ /dev/null @@ -1,55 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// tkstr.prg: a TKSTR oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -#define _TKSTR_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "tkstr.och" -//******************************************************************* - - -//******************************************************************* -implement oinit(id,str,file,line,pos,kezdo,zaro) - - super:oinit(id,str,file,line,pos) - this:kezdo:=kezdo - this:zaro :=zaro -return this - -//******************************************************************* -implement getStr() -local str,i - - if (!this:id==TKID_STRING) - return super:getStr() - endif - // Incompatibility - // if (empty(this:zaro)) - // return this:kezdo+this:str+this:kezdo - // else - // return this:kezdo+this:str+this:zaro - // endif - -return stringifyStr(this:str) - - -//******************************************************************* -cimplement copyFromToken(t,id,str,kezdo,zaro) -return class:onew(id,; - if(str==nil,TOKEN.t:str,str),; - TOKEN.t:file,TOKEN.t:line,TOKEN.t:pos,kezdo,zaro) - - -//******************************************************************* - diff --git a/harbour/samples/cccppc/token.cls b/harbour/samples/cccppc/token.cls deleted file mode 100644 index 2c59ed48f5..0000000000 --- a/harbour/samples/cccppc/token.cls +++ /dev/null @@ -1,60 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// token.cls: Token reprezent ci˘. -// 1999, Csisz r Levente - -class TOKEN OBJECT - - attrib id // A token azonosĄt˘ja. - attrib str // A token tartalma. Ez j”tt az inputr˘l. - attrib file // A file (reader) neve, ahol a tokent - // tal lta. - - attrib line // A sor, ahol a token volt a stream-ben. - attrib pos // A pozĄci˘ a soron bell, ahol a token volt - // a stream-ben. - attrib classify // Az ekvivalencia oszt lya. Ez egy string. - attrib error // Ha a token hib s volt (pl befejezetlen - // string etc), akkor a hiba k˘dja. - attrib eqtype - - nmethod isError() - // Igaz, ha a token hib s. - - nmethod errorStr() - // Nil, ha nem volt hiba, egy string, ami a hiba leĄr s t - // tartalmazza, ha volt hiba. - - nmethod printToStr() - // Ad egy stringet, ami a token olvashat˘ form ban. - - nmethod getStr() - // A token str-j‚t adja string form ban, ha hiba volt, akkor - // a hibak˘dot is hozz teszi sz”vegesen. - - nmethod copyToken(id,str) - // K‚szĄt egy olyan tokent, ami ennek a m solata, csak az id-je - // ‚s az str-je m s, ‚s az error nil. - - rmethod oinit(id,str,file,line,pos) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(id,str,file,line,pos) - - nmethod onewError(id,str,file,line,pos,error) - - attrib errStrArray - - rmethod oinitclass() - - nmethod copyFromToken(t,id,str) - - attrib equivClass - - nmethod findClassify(str) - diff --git a/harbour/samples/cccppc/token.och b/harbour/samples/cccppc/token.och deleted file mode 100644 index b4d70372e2..0000000000 --- a/harbour/samples/cccppc/token.och +++ /dev/null @@ -1,337 +0,0 @@ -// TOKEN.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:39:57, 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 _TOKEN_OCH_ -#define _TOKEN_OCH_ - - - - -#xtranslate TOKEN.:oinit => (OBJGEN.():(4)) -#xtranslate TOKEN.:getclass => (OBJGEN.():(5)) -#xtranslate TOKEN.:isclass => (OBJGEN.():(6)) -#xtranslate TOKEN.:getattrib => (OBJGEN.():(7)) -#xtranslate TOKEN.:setattrib => (OBJGEN.():(8)) - - -#xtranslate TOKEN.:id => \[CA_OBJECT_N+1\] -#xtranslate TOKEN.:str => \[CA_OBJECT_N+2\] -#xtranslate TOKEN.:file => \[CA_OBJECT_N+3\] -#xtranslate TOKEN.:line => \[CA_OBJECT_N+4\] -#xtranslate TOKEN.:pos => \[CA_OBJECT_N+5\] -#xtranslate TOKEN.:classify => \[CA_OBJECT_N+6\] -#xtranslate TOKEN.:error => \[CA_OBJECT_N+7\] -#xtranslate TOKEN.:eqtype => \[CA_OBJECT_N+8\] - -// Specifik lva: iserror() -// Specifik lva: errorstr() -// Specifik lva: printtostr() -// Specifik lva: getstr() -// Specifik lva: copytoken(id,str) -// ™r”k”lve: oinit(id,str,file,line,pos) - -#xtranslate TOKEN.:iserror => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TOKEN.:errorstr => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TOKEN.:printtostr => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TOKEN.:getstr => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TOKEN.:copytoken => (OBJGEN.():(CM_OBJECT_N+5)) -// ™r”k”lve: oinit(id,str,file,line,pos) - -#endif // _TOKEN_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TOKEN_N -#define CA_TOKEN_N CA_OBJECT_N+8 -#define CM_TOKEN_N CM_OBJECT_N+5 -#endif // CA_TOKEN_N - -#ifndef _CA_CM_ONLY_ -#ifndef _TOKENCLASS_OCH_ -#define _TOKENCLASS_OCH_ - -********************************************************************** -#xtranslate C.TOKEN: => (TOKENCLASS.clTOKEN():) -#xtranslate C.TOKEN:self() => (clTOKEN()) - - -#xtranslate TOKENCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate TOKENCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate TOKENCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate TOKENCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate TOKENCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate TOKENCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate TOKENCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate TOKENCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate TOKENCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate TOKENCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate TOKENCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate TOKENCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate TOKENCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate TOKENCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate TOKENCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate TOKENCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TOKENCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TOKENCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TOKENCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TOKENCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate TOKENCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate TOKENCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate TOKENCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - -#xtranslate TOKENCLASS.:errstrarray => \[CA_BEHAVIOR_N+1\] -#xtranslate TOKENCLASS.:equivclass => \[CA_BEHAVIOR_N+2\] - -// ™r”k”lve: onew(id,str,file,line,pos) -// Specifik lva: onewerror(id,str,file,line,pos,error) -// ™r”k”lve: oinitclass() -// Specifik lva: copyfromtoken(t,id,str) -// Specifik lva: findclassify(str) - -// ™r”k”lve: onew(id,str,file,line,pos) -#xtranslate TOKENCLASS.:onewerror => (OBJGEN.():(CM_BEHAVIOR_N+1)) -// ™r”k”lve: oinitclass() -#xtranslate TOKENCLASS.:copyfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+2)) -#xtranslate TOKENCLASS.:findclassify => (OBJGEN.():(CM_BEHAVIOR_N+3)) - -#endif // _TOKENCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TOKENCLASS_N -#define CA_TOKENCLASS_N CA_BEHAVIOR_N+2 -#define CM_TOKENCLASS_N CM_BEHAVIOR_N+3 -#endif // CA_TOKENCLASS_N - - -********************************************************************** -#ifdef _TOKEN_PRG_ -#ifndef _TOKEN_PRG_OCH_ -#define _TOKEN_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => TOKEN.(othis): -#xtranslate thisclass: => TOKENCLASS.(this:getClass()): -#define CTHIS TOKEN - - -********************************************************************** -#xtranslate this: => TOKEN.(this): - -#xcommand implement iserror() => static function iserror(this) -#xcommand implement errorstr() => static function errorstr(this) -#xcommand implement printtostr() => static function printtostr(this) -#xcommand implement getstr() => static function getstr(this) -#xcommand implement copytoken(id,str) => ; - static function copytoken(this,id,str) -#xcommand implement oinit(id,str,file,line,pos) => ; - static function oinit(this,id,str,file,line,pos) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export iserror() => function iserror(this) -#xcommand implement export errorstr() => function errorstr(this) -#xcommand implement export printtostr() => function printtostr(this) -#xcommand implement export getstr() => function getstr(this) -#xcommand implement export copytoken(id,str) => ; - function copytoken(this,id,str) -#xcommand implement export oinit(id,str,file,line,pos) => ; - function oinit(this,id,str,file,line,pos) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this| iserror(this)} - pOsztaly[(CM_OBJECT_N+2)]:={|this| errorstr(this)} - pOsztaly[(CM_OBJECT_N+3)]:={|this| printtostr(this)} - pOsztaly[(CM_OBJECT_N+4)]:={|this| getstr(this)} - pOsztaly[(CM_OBJECT_N+5)]:={|this,id,str| copytoken(this,id,str)} - pOsztaly[(4)]:={|this,id,str,file,line,pos| oinit(this,id,str,file,line,pos)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'id', } - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'str', } - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'file', } - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'line', } - ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'pos', } - ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'classify', } - ta[CA_OBJECT_N+7-CA_NIL_N] := {CA_OBJECT_N+7,'error', } - ta[CA_OBJECT_N+8-CA_NIL_N] := {CA_OBJECT_N+8,'eqtype',nil} - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'iserror','',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'errorstr','',nil} - tm[(CM_OBJECT_N+3)-CM_NIL_N] := {(CM_OBJECT_N+3),'printtostr','',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'getstr','',nil} - tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'copytoken','id,str',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos',nil} -return nil - -#ifndef _NO_CLTOKEN_ -#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 clTOKEN() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcTOKENCLASS():onew(; - clOBJECT(),; - "TOKEN",; - CA_TOKEN_N,; - CM_TOKEN_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLTOKEN_ - -#ifndef _NO_TOKENCLASS_ - -********************************************************************** -#xtranslate class: => TOKENCLASS.(class): - -#xcommand cimplement onew(id,str,file,line,pos) => ; - static function onew(class,id,str,file,line,pos) -#xcommand cimplement onewerror(id,str,file,line,pos,error) => ; - static function onewerror(class,id,str,file,line,pos,error) -#xcommand cimplement oinitclass() => static function oinitclass(class) -#xcommand cimplement copyfromtoken(t,id,str) => ; - static function copyfromtoken(class,t,id,str) -#xcommand cimplement findclassify(str) => ; - static function findclassify(class,str) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(id,str,file,line,pos) => ; - function onew(class,id,str,file,line,pos) -#xcommand cimplement export onewerror(id,str,file,line,pos,error) => ; - function onewerror(class,id,str,file,line,pos,error) -#xcommand cimplement export oinitclass() => function oinitclass(class) -#xcommand cimplement export copyfromtoken(t,id,str) => ; - function copyfromtoken(class,t,id,str) -#xcommand cimplement export findclassify(str) => ; - function findclassify(class,str) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos| onew(class,id,str,file,line,pos)} - pOsztaly[(CM_BEHAVIOR_N+1)]:={|class,id,str,file,line,pos,error| onewerror(class,id,str,file,line,pos,error)} - pOsztaly[(CM_OBJECT_N+4)]:={|class| oinitclass(class)} - pOsztaly[(CM_BEHAVIOR_N+2)]:={|class,t,id,str| copyfromtoken(class,t,id,str)} - pOsztaly[(CM_BEHAVIOR_N+3)]:={|class,str| findclassify(class,str)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_BEHAVIOR_N+1-CA_NIL_N] := {CA_BEHAVIOR_N+1,'errstrarray',nil} - ta[CA_BEHAVIOR_N+2-CA_NIL_N] := {CA_BEHAVIOR_N+2,'equivclass',nil} - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos',nil} - tm[(CM_BEHAVIOR_N+1)-CM_NIL_N] := {(CM_BEHAVIOR_N+1),'onewerror','id,str,file,line,pos,error',nil} - tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil} - tm[(CM_BEHAVIOR_N+2)-CM_NIL_N] := {(CM_BEHAVIOR_N+2),'copyfromtoken','t,id,str',nil} - tm[(CM_BEHAVIOR_N+3)-CM_NIL_N] := {(CM_BEHAVIOR_N+3),'findclassify','str',nil} -return nil - -********************************************************************** -#ifndef _NO_MCTOKENCLASS_ -#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 mcTOKENCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "TOKENCLASS",; - CA_TOKENCLASS_N,; - CM_TOKENCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCTOKENCLASS_ - -#endif // _NO_TOKENCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(id,str,file,line,pos) -local o:=class:ocreate() - - TOKEN.o:oinit(id,str,file,line,pos) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(id,str,file,line,pos) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _TOKEN_PRG_OCH_ -#endif // _TOKEN_PRG_ diff --git a/harbour/samples/cccppc/token.prg b/harbour/samples/cccppc/token.prg deleted file mode 100644 index 1bff4cdfa0..0000000000 --- a/harbour/samples/cccppc/token.prg +++ /dev/null @@ -1,234 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// token.prg: a TOKEN oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" - -//******************************************************************* -#include "objgen.ch" - -#define _TOKEN_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "token.och" - -// #define TKCL_NEV "nev" -// #define TKCL_STRING '"string"' -// #define TKCL_SZAMTOMB "1" - -//******************************************************************* -implement oinit(id,str,file,line,pos) - super:oinit() - this:id :=id - this:str :=str - this:file :=file - this:line :=line - this:pos :=pos - - if (id==TKID_CHAR) - if (nil==(this:classify:=thisclass:findClassify(str))) - if (len(str)==1 .and. str$"(){}[]") - this:classify:=TKCL_PARENT - else - this:classify:=str - endif - endif - elseif (id==TKID_NEV) - this:classify:=TKCL_NEV - elseif (id==TKID_STRING) - this:classify:=TKCL_TRUE//TKCL_STRING - elseif (id==TKID_SZAMTOMB) - this:classify:=TKCL_SZAMTOMB - endif -return this - -//******************************************************************* -implement copyToken(id,str) -// K‚szĄt egy olyan tokent, ami ennek a m solata, csak az id-je -// ‚s az str-je m s, ‚s az error nil. -// Ha az str nil, akkor behelyettesĄti a saj t str-j‚t. -return thisclass:onew(id,; - if(str==nil,this:str,str),; - this:file,this:line,this:pos) - -//******************************************************************* -cimplement onewError(id,str,file,line,pos,error) -local o - - o:=class:onew(id,str,file,line,pos) - CTHIS.o:error:=error -return o - -//******************************************************************* -implement isError() -return this:error!=nil - -//******************************************************************* -static function strTkErrCode(tkErrCode) -// Egy hibak˘db˘l stringet csin l. -local str,i - - str:=padr(tkErrCode,4,' ')+" " - - if (0==(i:=ascan(C.TOKEN:errStrArray,{|x| x[1]==tkErrCode}))) - str+="Unknown error" - else - str+=C.TOKEN:errStrArray[i][2] - endif -return str - -********************************************************************* -static function levag(str,n) - - if (len(str)<=n) - return str - endif -return left(str,len(str)-4)+" ..." - -//******************************************************************* -implement errorStr() - - if (!this:isError()) - return nil - endif - - if (valtype(this:error)=="A") - return toStr(this:error[1])+; - " Error: "+strTkErrCode(this:error)+" "+; - toStr(this:error[3]) - endif -return padr(this:file+"("+toStr(this:line)+")",20)+" Error: "+; - strTkErrCode(this:error)+" "+; - levag(if(this:str==nil,"",this:str),20) - -//******************************************************************* -cimplement oinitclass() - - superclass:oinitclass() - - class:errStrArray:={} - - #ifdef KESOBB - aadd(class:errStrArray,{RDERR_ENDSTR ,"Unterminated string: "}) - aadd(class:errStrArray,{RDERR_ENDPCCOMMENT ,"Unterminated /* */ comment"}) - aadd(class:errStrArray,{RDERR_INCOMPLETE ,"Incomplete statement (;;x)"}) - - aadd(class:errStrArray,{PPCERR_INVALIDMN ,"Invalid name follows '#'"}) - aadd(class:errStrArray,{PPCERR_UNSUPPORTED ,"Unsupported '#' command"}) - aadd(class:errStrArray,{PPCERR_SDEFINE ,"Syntax error in #define"}) - aadd(class:errStrArray,{PPCERR_LDEFINE ,"Label missing in #define"}) - aadd(class:errStrArray,{PPCERR_PDEFINE ,"Comma or right parenthesis missing in #define"}) - aadd(class:errStrArray,{PPCERR_MDUPLICATE ,"Redefinition or duplicate definition of #define"}) - aadd(class:errStrArray,{PPCERR_UNDEF ,"Label missing in #undef"}) - aadd(class:errStrArray,{PPCERR_IFDEF ,"Label missing in #ifdef"}) - aadd(class:errStrArray,{PPCERR_IFNDEF ,"Label missing in #ifndef"}) - aadd(class:errStrArray,{PPCERR_ELSE ,"Syntax error in #else"}) - aadd(class:errStrArray,{PPCERR_ENDIF ,"Syntax error in #endif"}) - aadd(class:errStrArray,{PPCERR_NMENDIF ,"#endif does not match #if"}) - aadd(class:errStrArray,{PPCERR_INCLUDE ,"Bad filename in #include"}) - aadd(class:errStrArray,{PPCERR_MAXINCLUDE ,"Too many nested include"}) - aadd(class:errStrArray,{PPCERR_FINDINCLUDE ,"Can't find include file"}) - aadd(class:errStrArray,{PPCERR_OPENINCLUDE ,"Can't open include file"}) - - aadd(class:errStrArray,{PPCERR_STRANCMD ,"Missing => in #translate/#command"}) - aadd(class:errStrArray,{PPCERR_BTRANCMD ,"Bad match marker in #translate/#command"}) - aadd(class:errStrArray,{PPCERR_LTRANCMD ,"Label error in #translate/#command"}) - aadd(class:errStrArray,{PPCERR_UTRANCMD ,"Unclosed optional clause in #translate/#command"}) - aadd(class:errStrArray,{PPCERR_UTRANCMD ,"Result pattern contains nested clauses in #translate/#command"}) - #endif - class:equivClass:={} - aadd(class:equivClass,{"!","<>"}) - aadd(class:equivClass,{"@","#","$","|","\","<",">",".","?","->","<=",">=",".AND.",".OR."}) - aadd(class:equivClass,{"=",":",":=","==","+=","-=","*=","/=","%="}) - aadd(class:equivClass,{"++","--"}) - // aadd(class:equivClass,{"(a)","{a}"}) - aadd(class:equivClass,{".T.",".F.",'""'}) - // aadd(class:equivClass,{1,.1,1.1}) - -return class - -//******************************************************************* -implement printToStr() -local str - - #ifdef OLD - str:="Token: "+toStr(this:id)+": "+if(this:str==nil,"",this:str) - if (this:isError()) - str+=", Error: "+this:errorStr() - endif - #endif - - str:="Token: "+toStr(this:id)+": "+this:getStr() -return str - -//******************************************************************* -implement getStr() -local str - - str:=if(this:str==nil,"",this:str) - if (this:id==TKID_REGULAR_MATCH_MARKER) - str:="<"+str+">" - elseif (this:id==TKID_WILD_MATCH_MARKER) - str:="<*"+str+"*>" - elseif (this:id==TKID_EXT_EXPR_MATCH_MARKER) - str:="<("+str+")>" - elseif (this:id==TKID_LIST_MATCH_MARKER) - str:="<"+str+",...>" - elseif (this:id==TKID_RESTRICTED_MATCH_MARKER) - // Ennek kl”n oszt lya van, ‚s a getStr meg van Ąrva. - str:="<"+str+": nem Ąrhat˘ ki>" - - elseif (this:id==TKID_DUMB_STR_RESULT_MARKER) - str:="#<"+str+">" - elseif (this:id==TKID_REGULAR_RESULT_MARKER) - str:="<"+str+">" - elseif (this:id==TKID_STRINGIFY_RESULT_MARKER) - str:='<"'+str+'">' - elseif (this:id==TKID_SMART_STR_RESULT_MARKER) - str:="<("+str+")>" - elseif (this:id==TKID_BLOCKIFY_RESULT_MARKER) - str:="<{"+str+"}>" - elseif (this:id==TKID_LOGIFY_RESULT_MARKER) - str:="<."+str+".>" - - elseif (this:id==TKID_MALTERSET) - // Ennek kl”n oszt lya van, ‚s a getStr meg van Ąrva. - str:="[ 'malterset: nem Ąrhat˘ ki' ]" - - elseif (this:id==TKID_RALTER) - // Ennek kl”n oszt lya van, ‚s a getStr meg van Ąrva. - str:="[ 'ralter: nem Ąrhat˘ ki' ]" - endif - - if (this:isError()) - str+=", Error: "+this:errorStr()+guessedEol() - endif -return str - -//******************************************************************* -cimplement copyFromToken(t,id,str) -// K‚szĄt egy olyan tokent, ami a t-nek a m solata, csak az id-je -// ‚s az str-je m s, ‚s az error nil. -// Ha az str nil, akkor behelyettesĄti a t:str-t. -return class:onew(id,; - if(str==nil,TOKEN.t:str,str),; - TOKEN.t:file,TOKEN.t:line,TOKEN.t:pos) - -//******************************************************************* -cimplement findClassify(str) -local i - - for i:=1 to len(class:equivClass) - if (0!=ascan(class:equivClass[i],{|x| x==str})) - return class:equivClass[i][1] - endif - end for -return nil - -//******************************************************************* - diff --git a/harbour/samples/cccppc/tokenst.cls b/harbour/samples/cccppc/tokenst.cls deleted file mode 100644 index 825e01da49..0000000000 --- a/harbour/samples/cccppc/tokenst.cls +++ /dev/null @@ -1,21 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// tokenst.cls: Stream token reprezent ci˘. (BOS ‚s EOS) -// 1999, Csisz r Levente - -class TOKENST TOKEN - - attrib deep // Az egym sba skatuly z s m‚lys‚ge. 1-t“l - // sz moz˘dik. - - rmethod oinit(id,str,file,line,pos,deep) - // Inicializ lja az objektumot. - -metaclass - - rmethod onew(id,str,file,line,pos,deep) - - diff --git a/harbour/samples/cccppc/tokenst.och b/harbour/samples/cccppc/tokenst.och deleted file mode 100644 index 566f3be4f9..0000000000 --- a/harbour/samples/cccppc/tokenst.och +++ /dev/null @@ -1,283 +0,0 @@ -// TOKENST.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:41:25, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_TOKEN_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "TOKEN.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "TOKEN.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "TOKEN.och" -#endif // _STRICT_PARENT_ -#endif // CA_TOKEN_N - -#ifndef _CA_CM_ONLY_ -#ifndef _TOKENST_OCH_ -#define _TOKENST_OCH_ - - -#xtranslate TOKENST.:id => \[CA_OBJECT_N+1\] -#xtranslate TOKENST.:str => \[CA_OBJECT_N+2\] -#xtranslate TOKENST.:file => \[CA_OBJECT_N+3\] -#xtranslate TOKENST.:line => \[CA_OBJECT_N+4\] -#xtranslate TOKENST.:pos => \[CA_OBJECT_N+5\] -#xtranslate TOKENST.:classify => \[CA_OBJECT_N+6\] -#xtranslate TOKENST.:error => \[CA_OBJECT_N+7\] -#xtranslate TOKENST.:eqtype => \[CA_OBJECT_N+8\] - - -#xtranslate TOKENST.:oinit => (OBJGEN.():(4)) -#xtranslate TOKENST.:getclass => (OBJGEN.():(5)) -#xtranslate TOKENST.:isclass => (OBJGEN.():(6)) -#xtranslate TOKENST.:getattrib => (OBJGEN.():(7)) -#xtranslate TOKENST.:setattrib => (OBJGEN.():(8)) -#xtranslate TOKENST.:iserror => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TOKENST.:errorstr => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TOKENST.:printtostr => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TOKENST.:getstr => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TOKENST.:copytoken => (OBJGEN.():(CM_OBJECT_N+5)) - - -#xtranslate TOKENST.:deep => \[CA_TOKEN_N+1\] - -// ™r”k”lve: oinit(id,str,file,line,pos,deep) - -// ™r”k”lve: oinit(id,str,file,line,pos,deep) - -#endif // _TOKENST_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TOKENST_N -#define CA_TOKENST_N CA_TOKEN_N+1 -#define CM_TOKENST_N CM_TOKEN_N+0 -#endif // CA_TOKENST_N - -#ifndef _CA_CM_ONLY_ -#ifndef _TOKENSTCLASS_OCH_ -#define _TOKENSTCLASS_OCH_ - -********************************************************************** -#xtranslate C.TOKENST: => (TOKENSTCLASS.clTOKENST():) -#xtranslate C.TOKENST:self() => (clTOKENST()) - - -#xtranslate TOKENSTCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate TOKENSTCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate TOKENSTCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate TOKENSTCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate TOKENSTCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate TOKENSTCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate TOKENSTCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate TOKENSTCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate TOKENSTCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate TOKENSTCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] -#xtranslate TOKENSTCLASS.:errstrarray => \[CA_BEHAVIOR_N+1\] -#xtranslate TOKENSTCLASS.:equivclass => \[CA_BEHAVIOR_N+2\] - - -#xtranslate TOKENSTCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate TOKENSTCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate TOKENSTCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate TOKENSTCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate TOKENSTCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate TOKENSTCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TOKENSTCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TOKENSTCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TOKENSTCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TOKENSTCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate TOKENSTCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate TOKENSTCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate TOKENSTCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) -#xtranslate TOKENSTCLASS.:onewerror => (OBJGEN.():(CM_BEHAVIOR_N+1)) -#xtranslate TOKENSTCLASS.:copyfromtoken => (OBJGEN.():(CM_BEHAVIOR_N+2)) -#xtranslate TOKENSTCLASS.:findclassify => (OBJGEN.():(CM_BEHAVIOR_N+3)) - - - -// ™r”k”lve: onew(id,str,file,line,pos,deep) - -// ™r”k”lve: onew(id,str,file,line,pos,deep) - -#endif // _TOKENSTCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TOKENSTCLASS_N -#define CA_TOKENSTCLASS_N CA_TOKENCLASS_N+0 -#define CM_TOKENSTCLASS_N CM_TOKENCLASS_N+0 -#endif // CA_TOKENSTCLASS_N - - -********************************************************************** -#ifdef _TOKENST_PRG_ -#ifndef _TOKENST_PRG_OCH_ -#define _TOKENST_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => TOKENST.(othis): -#xtranslate thisclass: => TOKENSTCLASS.(this:getClass()): -#define CTHIS TOKENST - - -********************************************************************** -#xtranslate this: => TOKENST.(this): - -#xcommand implement oinit(id,str,file,line,pos,deep) => ; - static function oinit(this,id,str,file,line,pos,deep) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export oinit(id,str,file,line,pos,deep) => ; - function oinit(this,id,str,file,line,pos,deep) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(8)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:errorstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:printtostr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:getstr => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:copytoken => (OBJGENM.(eval(BEHAVIOR.clTOKEN():objmethodsimplement)).(this):(CM_OBJECT_N+5)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(4)]:={|this,id,str,file,line,pos,deep| oinit(this,id,str,file,line,pos,deep)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_TOKEN_N+1-CA_NIL_N] := {CA_TOKEN_N+1,'deep', } - - tm[(4)-CM_NIL_N] := {(4),'oinit','id,str,file,line,pos,deep',nil} -return nil - -#ifndef _NO_CLTOKENST_ -#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 clTOKENST() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcTOKENSTCLASS():onew(; - clTOKEN(),; - "TOKENST",; - CA_TOKENST_N,; - CM_TOKENST_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLTOKENST_ - -#ifndef _NO_TOKENSTCLASS_ - -********************************************************************** -#xtranslate class: => TOKENSTCLASS.(class): - -#xcommand cimplement onew(id,str,file,line,pos,deep) => ; - static function onew(class,id,str,file,line,pos,deep) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(id,str,file,line,pos,deep) => ; - function onew(class,id,str,file,line,pos,deep) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) -#xtranslate superclass:onewerror => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+1)) -#xtranslate superclass:copyfromtoken => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+2)) -#xtranslate superclass:findclassify => (OBJGENM.(eval(BEHAVIOR.mcTOKENCLASS():objmethodsimplement)).(class):(CM_BEHAVIOR_N+3)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,id,str,file,line,pos,deep| onew(class,id,str,file,line,pos,deep)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','id,str,file,line,pos,deep',nil} -return nil - -********************************************************************** -#ifndef _NO_MCTOKENSTCLASS_ -#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 mcTOKENSTCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcTOKENCLASS(),; - "TOKENSTCLASS",; - CA_TOKENSTCLASS_N,; - CM_TOKENSTCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCTOKENSTCLASS_ - -#endif // _NO_TOKENSTCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(id,str,file,line,pos,deep) -local o:=class:ocreate() - - TOKENST.o:oinit(id,str,file,line,pos,deep) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(id,str,file,line,pos,deep) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _TOKENST_PRG_OCH_ -#endif // _TOKENST_PRG_ diff --git a/harbour/samples/cccppc/tokenst.prg b/harbour/samples/cccppc/tokenst.prg deleted file mode 100644 index 05ffbe344e..0000000000 --- a/harbour/samples/cccppc/tokenst.prg +++ /dev/null @@ -1,27 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// tokenst.prg: a TOKENST oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -#define _TOKENST_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "tokenst.och" -//******************************************************************* - - -//******************************************************************* -implement oinit(id,str,file,line,pos,deep) - - super:oinit(id,str,file,line,pos) - this:deep:=deep -return this - -//******************************************************************* - diff --git a/harbour/samples/cccppc/tostr.prg b/harbour/samples/cccppc/tostr.prg deleted file mode 100644 index e0434fb0e3..0000000000 --- a/harbour/samples/cccppc/tostr.prg +++ /dev/null @@ -1,35 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// tostr.prg: rt‚k -> string konverzi˘. -// 1998, Csisz r Levente - -/* - 1998.05.,21, Csisz r Levente - - - Kiv‚ve a cslutils.prg -b“l. - -*/ - -//******************************************************************* -function toStr(val) -// A val-t stringg‚ alakĄtja -local type:=valType(val) - if (type=="N") - return allTrim(str(val)) - elseif (type=="D") - return dtoc(val) - elseif (type=="L") - return if(val,"T","F") - elseif (type=="C" .or. type=="M") - return val - elseif (val==nil) - return "nil" - endif - alert("toStr: Nem konvert lhat˘ tĄpus: '"+type+"'") -return "" - -//******************************************************************* - diff --git a/harbour/samples/cccppc/treader.cls b/harbour/samples/cccppc/treader.cls deleted file mode 100644 index 673dfee5ce..0000000000 --- a/harbour/samples/cccppc/treader.cls +++ /dev/null @@ -1,27 +0,0 @@ -// -// $Id$ -// - -//******************************************************************* -// treader.cls: ltal nos 'token' olvas˘ oszt ly. -// 1999, Csisz r Levente - -// Meg kell adni neki egy reader-t -// amib“l olvas. A reader adhat tokent is ‚s karaktert is. -// Az olvasott karakterekb“l ‚s tokenekb“l k‚szĄt egy token sorozatot -// ami reprezent lja az eredeti input folyamot. - -class TREADER READER - - attrib inputReader - nmethod readInput() // Olvas egy elemet az inputReader-r“l. - nmethod unReadInput(item) // Visszatesz egy elemet az inputReader - // inputj ra. - - nmethod addInputReader(reader) - - rmethod oinit(inputReader,name,errorStream) - -metaclass - - rmethod onew(inputReader,name,errorStream) diff --git a/harbour/samples/cccppc/treader.och b/harbour/samples/cccppc/treader.och deleted file mode 100644 index d56b4b2dcc..0000000000 --- a/harbour/samples/cccppc/treader.och +++ /dev/null @@ -1,298 +0,0 @@ -// TREADER.och oszt ly implement ci˘. -// Gener lva: 1999.06.10, 14:39:57, OBJCCC v2.2.03 -// Meta oszt ly definĄci˘: Van - - -#ifndef CA_READER_N -#ifdef _STRICT_PARENT_ -#ifdef _CA_CM_ONLY_ -#include "READER.och" -#else // _CA_CM_ONLY_ -#define _CA_CM_ONLY_ -#include "READER.och" -#undef _CA_CM_ONLY_ -#endif // _CA_CM_ONLY_ -#else -#include "READER.och" -#endif // _STRICT_PARENT_ -#endif // CA_READER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _TREADER_OCH_ -#define _TREADER_OCH_ - - -#xtranslate TREADER.:name => \[CA_OBJECT_N+1\] -#xtranslate TREADER.:errorstream => \[CA_OBJECT_N+2\] -#xtranslate TREADER.:tbuffer => \[CA_OBJECT_N+3\] - - -#xtranslate TREADER.:oinit => (OBJGEN.():(4)) -#xtranslate TREADER.:getclass => (OBJGEN.():(5)) -#xtranslate TREADER.:isclass => (OBJGEN.():(6)) -#xtranslate TREADER.:getattrib => (OBJGEN.():(7)) -#xtranslate TREADER.:setattrib => (OBJGEN.():(8)) -#xtranslate TREADER.:read => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TREADER.:unread => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TREADER.:readtbuffer => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TREADER.:arraytbuffer => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TREADER.:readitem => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate TREADER.:iserror => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate TREADER.:adderror => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate TREADER.:destruct => (OBJGEN.():(CM_OBJECT_N+8)) - - -#xtranslate TREADER.:inputreader => \[CA_READER_N+1\] - -// Specifik lva: readinput() -// Specifik lva: unreadinput(item) -// Specifik lva: addinputreader(reader) -// ™r”k”lve: oinit(inputReader,name,errorStream) - -#xtranslate TREADER.:readinput => (OBJGEN.():(CM_READER_N+1)) -#xtranslate TREADER.:unreadinput => (OBJGEN.():(CM_READER_N+2)) -#xtranslate TREADER.:addinputreader => (OBJGEN.():(CM_READER_N+3)) -// ™r”k”lve: oinit(inputReader,name,errorStream) - -#endif // _TREADER_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TREADER_N -#define CA_TREADER_N CA_READER_N+1 -#define CM_TREADER_N CM_READER_N+3 -#endif // CA_TREADER_N - -#ifndef _CA_CM_ONLY_ -#ifndef _TREADERCLASS_OCH_ -#define _TREADERCLASS_OCH_ - -********************************************************************** -#xtranslate C.TREADER: => (TREADERCLASS.clTREADER():) -#xtranslate C.TREADER:self() => (clTREADER()) - - -#xtranslate TREADERCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate TREADERCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate TREADERCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate TREADERCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate TREADERCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate TREADERCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate TREADERCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate TREADERCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate TREADERCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate TREADERCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate TREADERCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate TREADERCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate TREADERCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate TREADERCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate TREADERCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate TREADERCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate TREADERCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate TREADERCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate TREADERCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate TREADERCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate TREADERCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate TREADERCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate TREADERCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - -// ™r”k”lve: onew(inputReader,name,errorStream) - -// ™r”k”lve: onew(inputReader,name,errorStream) - -#endif // _TREADERCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_TREADERCLASS_N -#define CA_TREADERCLASS_N CA_READERCLASS_N+0 -#define CM_TREADERCLASS_N CM_READERCLASS_N+0 -#endif // CA_TREADERCLASS_N - - -********************************************************************** -#ifdef _TREADER_PRG_ -#ifndef _TREADER_PRG_OCH_ -#define _TREADER_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => TREADER.(othis): -#xtranslate thisclass: => TREADERCLASS.(this:getClass()): -#define CTHIS TREADER - - -********************************************************************** -#xtranslate this: => TREADER.(this): - -#xcommand implement readinput() => static function readinput(this) -#xcommand implement unreadinput(item) => ; - static function unreadinput(this,item) -#xcommand implement addinputreader(reader) => ; - static function addinputreader(this,reader) -#xcommand implement oinit(inputReader,name,errorStream) => ; - static function oinit(this,inputReader,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export readinput() => function readinput(this) -#xcommand implement export unreadinput(item) => ; - function unreadinput(this,item) -#xcommand implement export addinputreader(reader) => ; - function addinputreader(this,reader) -#xcommand implement export oinit(inputReader,name,errorStream) => ; - function oinit(this,inputReader,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(4)) -#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(5)) -#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(6)) -#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(7)) -#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(8)) -#xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+1)) -#xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+2)) -#xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+3)) -#xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+4)) -#xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+5)) -#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+6)) -#xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+7)) -#xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clREADER():objmethodsimplement)).(this):(CM_OBJECT_N+8)) - -********************************************************************** -static function setCMethods(pOsztaly) -// Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. - pOsztaly[(CM_READER_N+1)]:={|this| readinput(this)} - pOsztaly[(CM_READER_N+2)]:={|this,item| unreadinput(this,item)} - pOsztaly[(CM_READER_N+3)]:={|this,reader| addinputreader(this,reader)} - pOsztaly[(4)]:={|this,inputReader,name,errorStream| oinit(this,inputReader,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_READER_N+1-CA_NIL_N] := {CA_READER_N+1,'inputreader',nil} - - tm[(CM_READER_N+1)-CM_NIL_N] := {(CM_READER_N+1),'readinput','',nil} - tm[(CM_READER_N+2)-CM_NIL_N] := {(CM_READER_N+2),'unreadinput','item',nil} - tm[(CM_READER_N+3)-CM_NIL_N] := {(CM_READER_N+3),'addinputreader','reader',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','inputReader,name,errorStream',nil} -return nil - -#ifndef _NO_CLTREADER_ -#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 clTREADER() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcTREADERCLASS():onew(; - clREADER(),; - "TREADER",; - CA_TREADER_N,; - CM_TREADER_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLTREADER_ - -#ifndef _NO_TREADERCLASS_ - -********************************************************************** -#xtranslate class: => TREADERCLASS.(class): - -#xcommand cimplement onew(inputReader,name,errorStream) => ; - static function onew(class,inputReader,name,errorStream) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand cimplement export onew(inputReader,name,errorStream) => ; - function onew(class,inputReader,name,errorStream) -#endif // _IMPLEMENT_EXPORT_ - -#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(4)) -#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(5)) -#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(6)) -#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(7)) -#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(8)) -#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1)) -#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2)) -#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3)) -#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4)) -#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5)) -#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6)) -#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7)) -#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8)) - -********************************************************************** -static function setMCMethods(pOsztaly) -// Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|class,inputReader,name,errorStream| onew(class,inputReader,name,errorStream)} -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','inputReader,name,errorStream',nil} -return nil - -********************************************************************** -#ifndef _NO_MCTREADERCLASS_ -#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 mcTREADERCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - mcREADERCLASS(),; - "TREADERCLASS",; - CA_TREADERCLASS_N,; - CM_TREADERCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCTREADERCLASS_ - -#endif // _NO_TREADERCLASS_ -#ifdef _IMPLEMENT_ONEW_ -********************************************************************** -cimplement onew(inputReader,name,errorStream) -local o:=class:ocreate() - - TREADER.o:oinit(inputReader,name,errorStream) -return o -#endif // _IMPLEMENT_ONEW_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit(inputReader,name,errorStream) - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _TREADER_PRG_OCH_ -#endif // _TREADER_PRG_ diff --git a/harbour/samples/cccppc/treader.prg b/harbour/samples/cccppc/treader.prg deleted file mode 100644 index c0f276786d..0000000000 --- a/harbour/samples/cccppc/treader.prg +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// treader.prg: A TREADER oszt ly implement ci˘ja. -// 1999, Csisz r Levente - -//******************************************************************* -#include "objgen.ch" - -#include "lreader.och" - -#define _TREADER_PRG_ -#define _IMPLEMENT_ONEW_ - -#include "treader.och" - -//******************************************************************* - -implement oinit(inputReader,name,errorStream) - super:oinit(name,errorStream) - this:inputReader:=inputReader -return this - -//******************************************************************* -implement readInput() - if (this:inputReader==nil) - return nil - endif -return READER.(this:inputReader):read() - -//******************************************************************* -implement unReadInput(item) - if (this:inputReader==nil) - return nil - endif -return READER.(this:inputReader):unread(item) - -//******************************************************************* -implement addInputReader(reader) -local r,w - - r:=this:inputReader - - if !(BEHAVIOR.(OBJECT.r:getClass()):isInheritFrom(C.LREADER:self())) - w:=C.LREADER:onew(nil,nil,READER.r:name) - LREADER.w:pushReader(r) - r:=w - this:inputReader:=r - endif - LREADER.r:pushReader(reader) -return nil - -//******************************************************************* - diff --git a/harbour/samples/cccppc/util.prg b/harbour/samples/cccppc/util.prg deleted file mode 100644 index e41d735ab5..0000000000 --- a/harbour/samples/cccppc/util.prg +++ /dev/null @@ -1,425 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************** -// util.prg: General utilities. -// 1999, Csisz r Levente - - -//******************************************************************** -function alast(anArray) -return atail(anArray) -// return anArray[len(anArray)] - -//******************************************************************** -function aappend(anArray,appArray) -local n - - asize(anArray,(n:=len(anArray))+len(appArray)) - acopy(appArray,anArray,,,n+1) -return anArray - -//******************************************************************** -function axappend(anArray,appArray,from,len) -local n - - if (from==nil) - from:=1 - endif - if (len==nil) - len:=len(appArray)-from+1 - endif - asize(anArray,(n:=len(anArray))+len) - acopy(appArray,anArray,from,len,n+1) -return anArray - -//******************************************************************** -function apop(anArray) -local w - - w:=alast(anArray) - asize(anArray,len(anArray)-1) -return w - -//******************************************************************** -function adrop(anArray) - asize(anArray,len(anArray)-1) -return nil - -//******************************************************************** -function aread(anArray) -local w - - w:=anArray[1] - adel(anArray,1) - asize(anArray,len(anArray)-1) -return w - -//******************************************************************** -function asub(anArray,pos,len) -// Az anArray pos pozĄci˘n kezd“d“ len hosszŁ r‚sz‚t adja. - -local w - - if (pos==nil) - pos:=1 - elseif (pos>len(anArray)) - return {} - endif - if (len==nil .or.; - pos+len-1>len(anArray)) - len:=len(anArray)-pos+1 - endif - w:=array(len) - acopy(anArray,w,pos,len) -return w - -//******************************************************************** -function aconcatenate(t1,t2) -// A t1 ‚s a t2 konkaten ci˘j t adja. - -local wt,t1len - - t1len:=len(t1) - wt:=array(t1len+len(t2)) - acopy(t1,wt) - acopy(t2,wt,nil,nil,t1len+1) -return wt - -//******************************************************************** -function axconcatenate(t1,t1from,t1len,t2,t2from,t2len) -// A t1 t1from-t˘l kezd“d“ t1len hosszŁ darabj nak ‚s a t2 t2from-t˘l -// kezd“d“ t2len hosszŁ konkaten ci˘j t adja. -// Minden param‚tert k”telez“ megadni, az ‚rv‚nyess‚gket nem -// vizsg lja. - -local wt - - wt:=array(t1len+t2len) - acopy(t1,wt,t1from,t1len) - acopy(t2,wt,t2from,t2len,t1len+1) -return wt - -//******************************************************************** -function aunget(t,e) -// A t array elej‚re beszŁra az e-t. A t hossza eggyel n“, az els“ -// eleme az e lesz. - - aadd(t,nil) - ains(t,1) - t[1]:=e -return t - -//******************************************************************** -function axinsert(t,pos,n) -// A 't' 'pos' pozĄci˘ja el‚ beszŁr n res helyet. A t hossza n-el n“. - if (n<=0) - return t - endif - asize(t,len(t)+n) - for n:=n to 1 step -1 - ains(t,pos) - end for -return t - -#ifdef OLD -local wt - wt:=array(len(t)+n) - acopy(t,wt,1,pos-1) - acopy(t,wt,pos,,pos+n) -return wt -#endif -//******************************************************************** -function xnumat(ch,str) -// A ch h nyszor van meg az str-ben. - -local i,n:=0 - - if (!ch$str) - return 0 - endif - for i:=1 to len(str) - if (ch==substr(str,i,1)) - n++ - endif - end for -return n - -//******************************************************************* -function toExprStr(val,deep) -// A val-t kifejez‚ss‚ alakĄtja. -// A blokkokat block, az objektumokat pedig object v ltoz˘val -// helyettesĄti. A t”mb”ket kifejti maximum TOEXPRSTR_MAXDEEP -// m‚lys‚gig, ha ezt tŁll‚pi, akkor a too_many_nested_arrays v ltoz˘t -// Ąrja a t”mb hely‚re. - -#define TOEXPRSTR_MAXDEEP 100 - -local str -local type:=valType(val) - - if (type=="N") - return allTrim(str(val)) - elseif (type=="D") - return 'stod("'+dtos(val)+'")' - elseif (type=="L") - return if(val,".T.",".F.") - elseif (type=="C" .or. type=="M") - if (!'"'$val) - return '"'+val+'"' - endif - // Itt meg kellen n‚zni, van-e benne "'", ‚s ha van, akkor - // felbontogatni. - return "'"+val+"'" - elseif (type=="B") - return "block" - elseif (type=="O") - return "object" - elseif (type=="A") - if (deep==nil) - deep:=0 - endif - - if (deep++>TOEXPRSTR_MAXDEEP) - return "too_many_nested_arrays" - endif - - str:=nil - aeval(val,{|x| if(str==nil,; - str:=toExprStr(x,deep),; - str+=","+toExprStr(x,deep))}) - return "{"+str+"}" - elseif (val==nil) - return "nil" - endif -return "" - - -//******************************************************************** -static function findOpt(ot,opt,levag) -// Ha a lev g igaz, akkor azokat az opci˘kat, amiknek lehetnek -// param‚terei lev gva keresi. -local i - - if (0==(i:=ascan(ot,{|x| x[1]==if(levag==.t. .and. x[2]!=nil,; - left(opt,len(x)),; - opt)}))) - return nil - endif -return ot[i] - -//******************************************************************** -function parseOpt(opt,paramArray,hibaSzoveg) -/* - Opci˘k elemz‚se. - - opt:= ',' ... - - optSpec:=[:] - - :={'-' | '--' } - - Az opt spcifik ci˘kat vessz“vel kell elv lasztani egym st˘l. - - A '-'-al kezd“d“ opci˘ n‚v r”vid form t (pl. -o) jelent - A '--'-al kezd“d“ opci˘ n‚v hosszŁ form t (pl. --output) jelent - - A ':' az optSpec v‚g‚n azt jelzi, hogy ut na  llhat egy param‚ter. - R”vid form n l ez az opci˘val ”sszevonva (-oproba) vagy az opci˘ - ut n (-o proba)  llhat. Ha a param‚ter hi nyzik, akkor betesz - egy ""-t. - - HosszŁ form n l egy '=' ut n (--output=proba) vagy az opci˘ - m”g”tt (--output proba)  llhat. - - A sima neveket a nem b ntja, a '--' ut n nem v‚gez elemz‚st. - - A paramArray-ban a felismert opci˘kat mindig elv lasztja a - param‚tereit“l. - - Ha egy r”vid opci˘ egy bet–s ‚s nem tartozik hozz  param‚ter, - akkor az ilyen opci˘kat megengedi egybe Ąrni: grep -il - Mj.: Ezeket sz‚tv lasztja -i -l -re. - - Az ”nmag ban  ll˘ '-' -t nem t”rli, viszont, ha egy param‚tert - ig‚nyl“ opci˘ ut n '-'-os opci˘  ll, akkor egy ""-t betesz opci˘nak. - - Pl.: parseOpt("-o:,--output:",; - {"-oproba1","-o","proba2",; - "--output=proba3","--output","proba4",; - "--",; - "-oproba5"}) - - Eredm‚nye: - - {"-o","proba1",; - "-o","proba2",; - "--output","proba3",; - "--output","proba4",; - "--",; - "-oproba5"; - } - - lesz. - Mj.: A -oproba5 az‚rt maradt egyben, mert a '--' ut n m r - nem v‚gez elemz‚st. - - -*/ - -local ot,wOptArray,wOpt,pOpt,i,j,pos,result -local otOssze,w -local attesz - - hibaSzoveg:="" - wOptArray:=felbont(opt,",") - ot:={} - otOssze:="" - for i:=1 to len(wOptArray) - wOpt:=alltrim(wOptArray[i]) - if (right(wOpt,1)==":") - // Param‚teres. - aadd(ot,{left(wOpt,len(wOpt)-1),":"}) - else - // Nem param‚teres - if (len(wOpt)==2 .and.; - left(wOpt,1)=="-" .and.; - !right(wOpt,1)=="-") - // ™sszevonhat˘ r”vid opci˘. - otOssze+=right(wOpt,1) - else - // Nem vonhat˘ ”ssze. Nincs param‚ter. - aadd(ot,{wOpt,nil}) - endif - endif - end for - - result:={} - attesz:=.f. - for i:=1 to len(paramArray) - if (paramArray[i]=="--") - attesz:=.t. - endif - if (attesz) - aadd(result,paramArray[i]) - elseif (left(paramArray[i],2)=="--") - // HosszŁ param‚ter. - if (nil!=(pOpt:=findOpt(ot,paramArray[i]))) - // Megvagyunk. - aadd(result,paramArray[i]) - // Ha param‚teres, akkor meg kell n‚zni mi a k”vetkez“. - if (pOpt[2]!=nil .and.; - (i+1>len(paramArray) .or.; - left(paramArray[i+1],1)=='-')) - aadd(result,"") - endif - elseif (0==(pos:=at(paramArray[i],"="))) // Van-e benne '='? - // Nincs benne '=', ‚s nincs is meg, hib s param‚ter! - hibaSzoveg+="Unknown option: "+paramArray[i]+crlf() - elseif (nil==(pOpt:=findOpt(ot,left(paramArray[i],pos-1)))) - // Nincs meg a param‚ter. - hibaSzoveg+="Unknown option: "+paramArray[i]+newline() - else - // Felbontjuk - aadd(result,left(paramArray[i],pos-1)) - aadd(result,substr(paramArray[i],pos+1)) - endif - elseif (left(paramArray[i],1)=="-") - // R”vid param‚ter. - if (nil!=(pOpt:=findOpt(ot,paramArray[i]))) - // Megvagyunk, nem kell semmit sem csin lni. - aadd(result,paramArray[i]) - // Ha param‚teres, akkor meg kell n‚zni mi a k”vetkez“. - if (pOpt[2]!=nil .and.; - (i+1>len(paramArray) .or.; - left(paramArray[i+1],1)=='-')) - aadd(result,"") - endif - elseif (nil!=(pOpt:=findOpt(ot,paramArray[i],.t.))) - // Megvan, de lehet ut na opci˘. - aadd(result,left(paramArray[i],len(pOpt[1]))) - w:=substr(paramArray[i],len(pOpt[1])+1) - if (len(w)>0) - aadd(result,w) - endif - elseif (paramArray[i]=="-") - aadd(result,paramArray[i]) - else - // Lehet m‚g r”vid ”sszevonhat˘k sorozata. - for j:=2 to len(paramArray[i]) - w:=substr(paramArray[i],j,1) - if (w$otOssze) - aadd(result,"-"+w) - else - hibaSzoveg+="Unknown option: -"+w+newline() - endif - end for - endif - else - // Nem opci˘, sim n  ttesszk. - aadd(result,paramArray[i]) - endif - end for - -return result - -//******************************************************************** -function stringifyStr(str,safe) -// KiĄrhat˘ stringet csin l az str-b“l, vagyis el‚ ‚s m”g‚ teszi a -// hat rol˘ jeleket. Ha a safe igaz, akkor a '['-t ‚s a ']'-t -// nem haszn lja. - if ('"' $ str) - if ("'" $ str) - // A spec szerint ez akkor is Ągy marad, ha van ']' az - // str-ben. - // Itt azt lehetne csin lni, hogy sz‚tv gjuk a "'" - // karakterekn‚l a stringet ‚s az Ągy kapott stringeket - // ”sszeadjuk, ‚s az eg‚sz kifejez‚st z r˘jelbe tesszk. - // Incompatibility - if (!empty(safe)) - return nil - endif - str:="["+str+"]" - else - str:="'"+str+"'" - endif - else - str:='"'+str+'"' - endif - -return str - -//******************************************************************* -function beloleAll(mi,mibol) -// Az mi string ”sszes karaktere benne kell, hogy legyen a mibol -// stringben. -local i - for i:=1 to len(mi) - if !(substr(mi,i,1)$mibol) - return .f. - endif - next -return .t. - -//******************************************************************* -function matchShortNames(name,tName,l) -// Az elemzend“ n‚v illeszkedik-e a c‚l n‚vre. -// Sajnos nem 'l' hosszan, hanem minimum l hosszan kell hasonlĄtani, -// ‚s nem mindegy, hogy mi illeszkedik mire. - - // Ez kell!!! - if (len(name)>len(tName)) - return .f. - endif - - if (empty(l) .or. len(name)iVersion[i]) - exit - elseif (version[i]:oinit => (OBJGEN.():(4)) -#xtranslate XTRDICT.:getclass => (OBJGEN.():(5)) -#xtranslate XTRDICT.:isclass => (OBJGEN.():(6)) -#xtranslate XTRDICT.:getattrib => (OBJGEN.():(7)) -#xtranslate XTRDICT.:setattrib => (OBJGEN.():(8)) - - -#xtranslate XTRDICT.:cmdict => \[CA_OBJECT_N+1\] -#xtranslate XTRDICT.:trdict => \[CA_OBJECT_N+2\] -#xtranslate XTRDICT.:cmdicttree => \[CA_OBJECT_N+3\] -#xtranslate XTRDICT.:trdicttree => \[CA_OBJECT_N+4\] - -// Specifik lva: add(extrdict) -// Specifik lva: printstr(printBlock,xcmd) -// ™r”k”lve: oinit() -// Specifik lva: getextrlist(item,xcmd) - -#xtranslate XTRDICT.:add => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate XTRDICT.:printstr => (OBJGEN.():(CM_OBJECT_N+2)) -// ™r”k”lve: oinit() -#xtranslate XTRDICT.:getextrlist => (OBJGEN.():(CM_OBJECT_N+3)) - -#endif // _XTRDICT_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_XTRDICT_N -#define CA_XTRDICT_N CA_OBJECT_N+4 -#define CM_XTRDICT_N CM_OBJECT_N+3 -#endif // CA_XTRDICT_N - -#ifndef _CA_CM_ONLY_ -#ifndef _XTRDICTCLASS_OCH_ -#define _XTRDICTCLASS_OCH_ - -********************************************************************** -#xtranslate C.XTRDICT: => (XTRDICTCLASS.clXTRDICT():) -#xtranslate C.XTRDICT:self() => (clXTRDICT()) - - -#xtranslate XTRDICTCLASS.:parent => \[CA_OBJECT_N+1\] -#xtranslate XTRDICTCLASS.:name => \[CA_OBJECT_N+2\] -#xtranslate XTRDICTCLASS.:objsize => \[CA_OBJECT_N+3\] -#xtranslate XTRDICTCLASS.:attribs => \[CA_OBJECT_N+4\] -#xtranslate XTRDICTCLASS.:methods => \[CA_OBJECT_N+5\] -#xtranslate XTRDICTCLASS.:classid => \[CA_OBJECT_N+6\] -#xtranslate XTRDICTCLASS.:parentclassids => \[CA_OBJECT_N+7\] -#xtranslate XTRDICTCLASS.:amblock => \[CA_OBJECT_N+8\] -#xtranslate XTRDICTCLASS.:methodsblock => \[CA_OBJECT_N+9\] -#xtranslate XTRDICTCLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] - - -#xtranslate XTRDICTCLASS.:oinit => (OBJGEN.():(4)) -#xtranslate XTRDICTCLASS.:getclass => (OBJGEN.():(5)) -#xtranslate XTRDICTCLASS.:isclass => (OBJGEN.():(6)) -#xtranslate XTRDICTCLASS.:getattrib => (OBJGEN.():(7)) -#xtranslate XTRDICTCLASS.:setattrib => (OBJGEN.():(8)) -#xtranslate XTRDICTCLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) -#xtranslate XTRDICTCLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) -#xtranslate XTRDICTCLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) -#xtranslate XTRDICTCLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) -#xtranslate XTRDICTCLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) -#xtranslate XTRDICTCLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) -#xtranslate XTRDICTCLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) -#xtranslate XTRDICTCLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) - - - - - -#endif // _XTRDICTCLASS_OCH_ -#endif // _CA_CM_ONLY_ - -#ifndef CA_XTRDICTCLASS_N -#define CA_XTRDICTCLASS_N CA_BEHAVIOR_N+0 -#define CM_XTRDICTCLASS_N CM_BEHAVIOR_N+0 -#endif // CA_XTRDICTCLASS_N - - -********************************************************************** -#ifdef _XTRDICT_PRG_ -#ifndef _XTRDICT_PRG_OCH_ -#define _XTRDICT_PRG_OCH_ - - -********************************************************************** -#xtranslate othis: => XTRDICT.(othis): -#xtranslate thisclass: => XTRDICTCLASS.(this:getClass()): -#define CTHIS XTRDICT - - -********************************************************************** -#xtranslate this: => XTRDICT.(this): - -#xcommand implement add(extrdict) => static function add(this,extrdict) -#xcommand implement printstr(printBlock,xcmd) => ; - static function printstr(this,printBlock,xcmd) -#xcommand implement oinit() => static function oinit(this) -#xcommand implement getextrlist(item,xcmd) => ; - static function getextrlist(this,item,xcmd) - -#ifdef _IMPLEMENT_EXPORT_ -#xcommand implement export add(extrdict) => function add(this,extrdict) -#xcommand implement export printstr(printBlock,xcmd) => ; - function printstr(this,printBlock,xcmd) -#xcommand implement export oinit() => function oinit(this) -#xcommand implement export getextrlist(item,xcmd) => ; - function getextrlist(this,item,xcmd) -#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 m–veleti blokkjaival. - pOsztaly[(CM_OBJECT_N+1)]:={|this,extrdict| add(this,extrdict)} - pOsztaly[(CM_OBJECT_N+2)]:={|this,printBlock,xcmd| printstr(this,printBlock,xcmd)} - pOsztaly[(4)]:={|this| oinit(this)} - pOsztaly[(CM_OBJECT_N+3)]:={|this,item,xcmd| getextrlist(this,item,xcmd)} -return pOsztaly - -********************************************************************** -static function setCams(ta,tm) -// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'cmdict', } - ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'trdict', } - ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'cmdicttree', } - ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'trdicttree', } - - tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'add','extrdict',nil} - tm[(CM_OBJECT_N+2)-CM_NIL_N] := {(CM_OBJECT_N+2),'printstr','printBlock,xcmd',nil} - tm[(4)-CM_NIL_N] := {(4),'oinit','',nil} - tm[(CM_OBJECT_N+3)-CM_NIL_N] := {(CM_OBJECT_N+3),'getextrlist','item,xcmd',nil} -return nil - -#ifndef _NO_CLXTRDICT_ -#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 clXTRDICT() -// El“szedi az oszt lyt. (class) -static osztaly - if (osztaly==nil) - osztaly:=META.mcXTRDICTCLASS():onew(; - clOBJECT(),; - "XTRDICT",; - CA_XTRDICT_N,; - CM_XTRDICT_N,; - {|ta,tm|setCams(ta,tm)},; - {|t|setCMethods(t)}) - endif -return osztaly -#endif // _NO_CLXTRDICT_ - -#ifndef _NO_XTRDICTCLASS_ - -********************************************************************** -#xtranslate class: => XTRDICTCLASS.(class): - - -#ifdef _IMPLEMENT_EXPORT_ -#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 m–veleti blokkjaival. -return pOsztaly - -********************************************************************** -static function setMCams(ta,tm) -// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attribŁtumaival ‚s m–veleteivel. - -return nil - -********************************************************************** -#ifndef _NO_MCXTRDICTCLASS_ -#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 mcXTRDICTCLASS() -// El“szedi az oszt ly metaoszt ly t. (metaclass) -static metaOsztaly - if (metaOsztaly==nil) - metaOsztaly:=META.clMETA():onew(; - clBEHAVIOR(),; - "XTRDICTCLASS",; - CA_XTRDICTCLASS_N,; - CM_XTRDICTCLASS_N,; - {|ta,tm|setMCams(ta,tm)},; - {|t|setMCMethods(t)}) - endif -return metaOsztaly -#endif // _NO_MCXTRDICTCLASS_ - -#endif // _NO_XTRDICTCLASS_ - -********************************************************************** -#ifdef _IMPLEMENT_OINIT_ -implement oinit() - super:oinit() -return this -#endif // _IMPLEMENT_OINIT_ - -********************************************************************** -********************************************************************** -#endif // _XTRDICT_PRG_OCH_ -#endif // _XTRDICT_PRG_ diff --git a/harbour/samples/cccppc/xtrdict.prg b/harbour/samples/cccppc/xtrdict.prg deleted file mode 100644 index 5e04baada4..0000000000 --- a/harbour/samples/cccppc/xtrdict.prg +++ /dev/null @@ -1,244 +0,0 @@ -/* - * $Id$ - */ - -//******************************************************************* -// xtrdict.prg: #xtranslate sz˘t r -// 1999, Csisz r Levente - -//******************************************************************* -#include "ctoken.ch" -#include "objgen.ch" - -//******************************************************************* -#include "token.och" -#include "extrdict.och" -#include "mmarker.och" - -//******************************************************************* - -#define _XTRDICT_PRG_ -// #define _IMPLEMENT_ONEW_ - -#include "xtrdict.och" - - -//******************************************************************* -implement oinit() - - super:oinit() - - this:cmdict:={} - this:trdict:={} - this:cmdictTree:={} - this:trdictTree:={} -return nil - -//******************************************************************* -implement add(extrdict) - if (EXTRDICT.extrdict:cmdType==XTRTYPE_XCOMMAND .or.; - EXTRDICT.extrdict:cmdType==XTRTYPE_COMMAND) - aadd(this:cmdict,extrdict) - addToTree(this:cmdictTree,extrdict) - else - aadd(this:trdict,extrdict) - addToTree(this:trdictTree,extrdict) - endif -return nil - -//******************************************************************* -implement printStr(printBlock,xcmd) -local i,w -local str:="" - - if (!empty(xcmd)) - - for i:=1 to len(this:cmdict) - w:=toStr(i)+": "+EXTRDICT.(this:cmdict[i]):printStr() - if (printBlock!=nil) - eval(printBlock,w) - else - str+=w+newline() - endif - end for - else - for i:=1 to len(this:trdict) - w:=toStr(i)+": "+EXTRDICT.(this:trdict[i]):printStr() - if (printBlock!=nil) - eval(printBlock,w) - else - str+=w+newline() - endif - end for - endif -return str - -//******************************************************************* -implement getExtrList(item,xcmd) -// Egyenl“re az ”sszes extrdict-et adja, k‚s“bb majd gyorsĄtunk. - if (!empty(xcmd)) - return this:cmdict - endif -return this:trdict -//******************************************************************* - -//******************************************************************* -// -// Fa ‚pĄt‚s -// -//******************************************************************* - -//******************************************************************* -static function eqNextToken(t1,t2) -// KiderĄti, hogy a t1, t2 tokenek azonosak-e, ha next tokenek. -local tk1Id - - if (t1==nil) - return t2==nil - elseif (t2==nil) - return .f. - endif - tk1Id:=TOKEN.t1:id - if (tk1Id==TKID_NEV .or.; - tk1Id==TKID_SZAMTOMB .or.; - tk1Id==TKID_STRING .or.; - tk1Id==TKID_CHAR) - return tk1Id==TOKEN.t2:id .and.; - lower(TOKEN.t1:str)==lower(TOKEN.t2:str) .and.; - TOKEN.t1:eqType==TOKEN.t2:eqType - endif -return .f. - -//******************************************************************* -static function addToTree(treeNodeList,extrDict) -// Az extrdict bal oldal lt hozz veszi a f hoz. -// Az (Łj) lez r˘ elembe beĄrja az extrDict-et. (Mj.: Ez nem -// felt‚tlenl lev‚l) -/* - tree:=nodeList - node:={token,nodeList[,extrDict]} - nodeList:={node1,...} - Mj.: Ha egy node-ba betesznk egy extrDict-et, akkor a nodeList-et - t”r”lni kell, mert soha nem fog ‚rv‚nyre jutni (‚s hib t is - okoz, ha itt megpr˘b lunk tov bb menni). - Ha m‚gis meg akarjuk tartani, akkor a r‚gi nodeList-et -  t kell tenni m shova. - - Egyenl“re az alternatĄv kat mindig egyben kezeljk, ‚s - k‚t alternatĄva soha sem azonos, ‚s 'v laszt˘ vonalk‚nt' - viselkednek, vagyis, a k‚t oldalukra es“ tokenek soha sem - teintend“k azonosnak. - - Mj.: Jobb lenne az alternatĄv kat  gank‚nt bele illeszteni a - f ba, Łgy, hogy az res  gat is beleillesztjk, de ekkor - az ism‚tl“d‚seket csak akkor tudjuk felvenni ha a f b˘l - gr fot csin lunk (lesz benne k”r). - - Mj.: K‚t alternatĄv t azonosnak tekinthetn‚nk, ha minden  gukon - minden tokenlista ugyanaz. De ekkor is v laszt˘ vonalk‚nt - kell, hogy viselkedjenek. - - A k‚s“bb hozz adott node-ok vannak el“r‚bb a nodeList-ekben. -*/ - -local tokenList, lastNode,i,j -local megvan -local t,tkId,tkStr,tkEqType -local tn,tkNextTk - - tokenList:=EXTRDICT.extrDict:leftSide - lastNode:=nil - - for i:=1 to len(tokenList) - t:=tokenList[i] - tkId:=TOKEN.t:id - tkStr:=TOKEN.t:str - tkEqType:=TOKEN.t:eqType - if (tkId==TKID_MALTERSET) - lastNode:={t,{}} - aunget(treeNodeList,lastNode) - treeNodeList:=treeNodelist[1][2] - elseif (tkId==TKID_NEV .or.; - tkId==TKID_SZAMTOMB .or.; - tkId==TKID_STRING .or.; - tkId==TKID_CHAR) - - // Az els“ malterset-ig keresnk egy olyan tokent, ami - // azonos vele. - /* - Mj.: Az eqType hi ba EQTYPE_4LEN, akkor sem lehet 4-re - csonkĄtva vizsg lni. - */ - // Egyenl“re mindegyik case insensitive. - megvan:=.f. - for j:=1 to len(treeNodeList) - tn:=treeNodeList[j][1] - if (TOKEN.tn:id==TKID_MALTERSET) - // Meg llunk, Łj  g lefel‚. - exit - elseif (TOKEN.tn:id==tkId .and.; - lower(TOKEN.tn:str)==lower(tkStr) .and.; - TOKEN.tn:eqType==tkEqType) - // Megvan! Megynk lefel‚ a f n. - megvan:=.t. - lastNode:=treeNodelist[j] - treeNodeList:=treeNodelist[j][2] - exit - endif - end for - if (!megvan) - // Nem tal lt semmit, Łj  g lefel‚. - lastNode:={t,{}} - aunget(treeNodeList,lastNode) - treeNodelist:=treeNodelist[1][2] - endif - elseif (C.MMARKER:isMatchMarker(t)) - // Match markerek. - // Itt a tĄpusnak az index-nek ‚s a nextToken-ek kell egyeznie. - // Mj.: Az, hogy a nextTokennek milyen match markerekn‚l - // kell egyeznie, nincs kitesztelve! - // - tkNextTk:=MMARKER.t:nextToken - megvan:=.f. - for j:=1 to len(treeNodeList) - tn:=treeNodeList[j][1] - if (TOKEN.tn:id==TKID_MALTERSET) - // Meg llunk, Łj  g lefel‚. - exit - elseif (TOKEN.tn:id==tkId .and.; - ;//MMARKER.tn:getName()==MMARKER.t:getName() .and.; - MMARKER.tn:mNum==MMARKER.t:mNum .and.; - eqNextToken(tkNextTk,MMARKER.tn:nextToken)) - // Megvan! - megvan:=.t. - lastNode:=treeNodelist[j] - treeNodeList:=treeNodelist[j][2] - exit - endif - end for - if (!megvan) - // Nem tal lt semmit, Łj  g lefel‚. - lastNode:={t,{}} - aunget(treeNodeList,lastNode) - treeNodeList:=treeNodelist[1][2] - endif - else - // Minden m st kihagyunk. Ebben benne van az res is. - endif - end for - // V‚ge. - // Ilyenkor az utols˘ node-ban t”r”lni kell a nodeList-et, ‚s - // az extrdict-et, ha van, ‚s betenni egy res nodeList-et, - // ‚s a mi extrDict-nket. - if (lastNode!=nil) - asize(lastNode,3) - asize(lastNode[2],0) - lastNode[3]:=extrDict - // else - // Az extrDict res volt. Az resek definĄci˘ szerint semmire - // sem illeszkednek. - endif -return nil - -//******************************************************************* -