Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Parser (https://www.delphipraxis.net/84771-parser.html)

marabu 23. Jan 2007 08:41

Re: Parser
 
Hallo Manuel,

Zitat:

Zitat von 3_of_8
... momentan stehe ich kurz davor. ...

vor den ersten Ergebnissen oder vor dem Motivationsverlust?

Zitat:

Zitat von 3_of_8
... Stackautomat mit GoTo-Tabelle ...

das scheint mir der gleiche zu sein, den ich mit LALR bezeichnet habe.

Zitat:

Zitat von 3_of_8
... Kein Semikolon? Hab ich bei Wikipedia aber anders gesehen. ...

Wikipedia ist ein Wiki - da darf jeder irgendwas schreiben. Aber ich muss zugeben, dass die ISO-Standardisierung des Semikolon als Indikator für Line-End Kommentare unbemerkt an mir vorüber ging. Ich selbst würde mich aber weiterhin auf ganzzeilige Kommentare beschränken.

Zitat:

Zitat von 3_of_8
... Produktionen nummerieren? Was bringt das? Was meinst du mit Produktionen? Die Ableitungen?

Eine Produktion (Ableitung) ohne fortlaufende Nummer kann nur über ihr non-terminales Symbol identifiziert werden - und das können Wort-Ungetüme sein. Bei P42 weiß jeder, dass es sich um die Produktion (42) handelt. Die Nummern dienen nicht nur der Bequemlichkeit. Beim Aufbau deiner Tabellen wirst du sie brauchen.

Übrigens: Ein wesentlicher Unterschied zwischen den beiden von mir genannten Parsertypen ist der, dass ich einen Recursive-Descent Parser oft selbst schreibe, aber einen tabellengesteuerten LALR Parser in der Regel von einem Generator erstellen lasse. Der streng formale Ansatz beim LALR macht ihn zum idealen Kandidaten einer Automatisierung.

Freundliche Grüße

3_of_8 23. Jan 2007 10:20

Re: Parser
 
Vor dem Motivationsverlust. ;)

Wie genau gehe ich denn jetzt an diesen LALR-Parser ran? Was soll ich zuerst erstellen und wie soll ich ihn implementieren?

3_of_8 24. Jan 2007 14:08

Re: Parser
 
*push*

Sidorion 24. Jan 2007 14:29

Re: Parser
 
@topic: das Zauberwort heisst XML!
Dein Text ist das TXMLDocument, die Unit das DocumentElement dieses TXMLDocument. Dessen NodeName wäre 'Unit' und dieser hätte ein Attribut namens 'Name' mit dem Wert 'Test'.
In diesem DocumentElement befindet sich nun der Knoten 'includes', in diesem wieder ein Knoten 'include' mit dem Attribut 'name' und Wert 'io.*'...
.. und vóilà: eine Baubstruktur.

p.s.: die XML-Knoten kann man dann noch typisieren.

H4ndy 24. Jan 2007 14:46

Re: Parser
 
Ich bin gerade selber dran, einen Parser zu schreiben (VRML).
Allerdings habe ich auch noch nicht so richtig einen Plan,
wie ich diesen rein programmtechnisch umsetzen soll. Man findet
im Netz nur tonnenweise theoretische Grundlagen zu Parsern allgemein.
Gibt es da nicht irgendwas, was man sich anschauen kann, wie man
effizient den Text durchläuft und solche "Knoten" dann anlegt (Objekte?).

Bis jetzt suche ich einfach relativ "doof" und dreckig nach bestimmten
Schlüsselwörtern und versuche dann die einzelnen Properties zu lesen.
Allerdings wird das ein riesen Code um alle benötigten Teil abzudecken -.-

3_of_8 25. Jan 2007 13:16

Re: Parser
 
Das Programm selbst ist nicht das Problem, ein LR-Parser ist relativ leicht zu implementieren. Ich überlege mir gerade das wirklich Schwere an der Sache: Die Aktions- und GoTo-Tabelle.

St.Pauli 25. Jan 2007 13:55

Re: Parser
 
Vieleicht kann dir das freie Buch "Parsing Techniques - A Practical Guide" von Dick Grune und Ceriel J.H. Jacobs weiterhelfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz