|
|||||||||||||||||||||||||||
On Mon, 19 Nov 2001 15:40:25 +0100, sslug@sslug wrote:
> On Mon, Nov 19, 2001 at 02:10:43PM +0000, Michael Schmidt wrote:
> > On Mon, 19 Nov 2001 13:44:21 +0100 (CET), Ole Tange <sslug@sslug> wrote:
> > >
> > > Det kommer meget an på, hvad du vil.
> >
> > Plukke ord ud af helheden, som er placeret efter eller mellem nøgleord.
> > Bruger:
> >
> > for($i=$[;$i<=$#words;$i++)
> > {
> > if($words[$i]=~/ELEMENT/)
> > {
> > if($words[$i+2]=~/EMPTY/)
> > {
> > print EMPTY\n;
> > $tag[$i]="<$words[$i+1] <$words[$i+1]/> ";
> > }#if(EMPTY)
> > else
> > {
> > print ELEMENT\n;
> > $tag[$i]="<$words[$i+1] <$words[$i+1]> </$words[$i+1]> ";
> > }#else
> > }#if(ELEMENT)
> > }#for
>
> Umiddelbart ligner det her en del af en parser, men til det formål
> ville jeg benytte mig af regulære udtryk direkte på strengen, og ikke
> kontertere den til et array.
Det er vel ikke helt forkert at kalde det en parser.
> Og hvis du kunne komme med et eksempel på hvad du derne ville lave,
> ville det være lettere at komme med et kodeeksempel der kan gøre det.
Jeg bruger scriptet til at gennerere tekstfiler indeholdende de nøgleord, der skal syntaks-highlightes i en editor.
(kode eks. taget fra det til UltraEdit (win-editor, der "minder" om xemacs) )
Input data er (indtil videre) dtd-filer og output er lister af elemnter, attributter og deres mulige værdier efter hinanden i
samme fil.
Hver af de 3 nævnte gennemløber arrayet på samme vis; altså 4 komplette parsinger (1. til at danne arrayet)
Mit ønske er at gøre det hele i et gennemløb/parse, da jeg forudser lange procsestider på større dtd'er (eks. den til
MathML).
Min test dtd har hele tiden været xhtml1-frameset (33 kb) og et par små selvskrevne.
Med xhtml dtd'en kommer resultatfilen efter ca. 5 sec (P133 IBM Laptop)
:o) M.Schmidt
|
||||||||||||||
|
||||||||||||||