[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