[linux-l] Grammar Design
Ihno Krumreich
ihno at lst.de
Mo Jul 11 12:03:43 CEST 2005
On Mon, Jul 11, 2005 at 01:12:57AM +0200, Oliver Bandel wrote:
> On Mon, Jul 11, 2005 at 12:54:59AM +0200, Oliver Bandel wrote:
> [...]
> > > - Oder sollen fortlaufend Daten eingelesen und verarbeitet werden?
> >
> > Sp?tere Sprachen sollen auch das mal tun. Also entweder als Streamingfilter
> > oder wie man das nennen mag.
>
> Habe auch schon dr?ber nachgedacht, ob man nicht Eventgesteuerte Sachen,
> also quasi GUI-like zeugs mit lex/yacc abarbeiten k?nnte...
> ...ist sicherlich sinnvoller, als so krudes zeugs zu machen, wie die meisten
> GUI-Toolkits einem aufschwatzen wollen, also alles irgendwie mit
> Programmieranweisungen in allg. Programmiersprachen und irgendwelchen
> API-Aufrufen machen zu m?ssen...
Naja. Was macht man den bei einer GUI-Prog? Man erzeugt ein Objekt und
sagt dem Eventmanager fuer welche Events das Objekt sich zustaendig
fuehlt. Das kann man auch in einer Grammatik beschreiben und dann mit
lex&yacc verarbeiten.
>
> Kannst Du zu dem Thema was sagen?
> lex&yacc f?r GUIs?
>
> Oder gibt's da noch nix?
>
>
> [...]
> > Beispiel:
> > =================
> > monday = "Montag" above "Aufstehen" above "Kaffee kochen" above "arbeiten" above "schlafen gehen"
> > tuesday = "Dienstag" above "Ausschlafen" below "schlafe noch"
> >
> > monday leftof (tuesday)
> > end
> > =================
> [...]
>
> > =================
> > @SysInclude {doc}
> >
> > @Doc
> > @Text @Begin
> >
> > monday = "Montag" above "Aufstehen" above "Kaffee kochen" above "arbeiten" above "schlafen gehen"
> > tuesday = "Dienstag" above "Ausschlafen" below "schlafe noch"
> >
> > monday leftof (tuesday)
> > end
> > {{"Montag"} /1.0f "Aufstehen" /1.0f "Kaffee kochen" /1.0f "arbeiten" /1.0f "schlafen gehen"} |1.0f {"schlafe noch" /1.0f {"Dienstag"} /1.0f "Ausschlafen"}
> >
> >
> > @End @Text
> > =================
>
>
> War nat?rlich nicht ganz richtig... das war, was am Bildschirm zu sehen war...
> ...da waren aber Ein- und Ausgabe beide drauf auf der Konsole sichtbar.
>
> So sieht das Ergebnis aus:
>
> =================
>
> @SysInclude {doc}
>
> @Doc
> @Text @Begin
>
> {{"Montag"} /1.0f "Aufstehen" /1.0f "Kaffee kochen" /1.0f "arbeiten" /1.0f "schlafen gehen"} |1.0f {"schlafe noch" /1.0f {"Dienstag"} /1.0f "Ausschlafen"}
>
>
> @End @Text
> =================
>
Warum heist es {"schlafe noch" /1.0f {"Dienstag"} /1.0f "Ausschlafen"}
und nicht {"Dienstag" /1.0f {"schlafe noch"} /1.0f "Ausschlafen"} ?
Gruss
Ihno
Mehr Informationen über die Mailingliste linux-l