Path: news.cs.au.dk!news.net.uni-c.dk!howland.erols.net!europa.netcrusader.net!194.176.220.130!newsfeed.icl.net!skynet.be!poster!not-for-mail From: Atle Newsgroups: comp.lang.beta Subject: tokenizer.bet Date: Fri, 23 Jun 2000 12:22:46 -0100 Organization: Belgacom Skynet SA/NV Lines: 61 Message-ID: <395364A6.6698F778@skynet.be> NNTP-Posting-Host: dialup280.charleroi.skynet.be Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news1.skynet.be 961755470 30884 194.78.236.152 (23 Jun 2000 10:17:50 GMT) X-Complaints-To: abuse@skynet.be NNTP-Posting-Date: 23 Jun 2000 10:17:50 GMT X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.5-15 i686) X-Accept-Language: en Xref: news.cs.au.dk comp.lang.beta:12482 (* program added separately *) ORIGIN '~beta/basiclib/betaenv'; INCLUDE '~beta/basiclib/file'; INCLUDE '~beta/basiclib/formatio'; -- Program : Descriptor -- (# FileScan : (# separator: @char; fileName: ^text; fil: @File (# OK: @Boolean; accessError:: (# do false->OK #); noSuchFileError:: (# do true->continue; false->OK #); otherError:: (# do false->OK #); LineScan: (# jalla: ^text; separator: @char; enter separator do &text[]->jalla[]; scan(# do (if ch // separator then inner linescan else ch->screen.put if) #) #) #); enter (fileName[], separator) do TRUE -> fil.OK; fileName[]->fil.Name; fil.openRead; (if not fil.OK then 'error in '->putText; fileName[]->putLine; leave FileScan else 'Contents of '->putText; fileName[]->putLine; if); readTheFile: (# do (if not fil.eos then ';'->fil.LineScan(# do '[%c]'->putFormat(# do separator->c #) #); restart readTheFile else fil.Close; ''->fil.Name; leave readTheFile if); #); #) do (for i:noOfArguments-1 repeat ((i+1 -> arguments),';')->FileScan for) #)