Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Mission Impossible] CSS Parser erstellen... (https://www.delphipraxis.net/74998-%5Bmission-impossible%5D-css-parser-erstellen.html)

Daniel G 12. Aug 2006 18:54

Re: [Mission Impossible] CSS Parser erstellen...
 
Igitt :shock:

Aber wenn man's weiß, kann man das glaube ich auch handeln....

mael 12. Aug 2006 19:07

Re: [Mission Impossible] CSS Parser erstellen...
 
Um einen Parser zu schreiben mit den Sachen die man im Netz findet ist etwas schwierig ohne theoretische Informatik zu verstehen.
Hauptsächlich wegen den Begriffen und weil viele Details angesprochen werden.
Z.B. ob LL, LR, LALR, ... Parser ist erst einmal egal.

Das gibt nur die Ausdruckstärke an (also welche Sprache so beschreibbar ist) und damit auch die mögliche Geschwindigkeit des Parsers. Übliche Werkzeuge wie Yacc/Bison sollten aber die meisten Programmiersprachen beschreiben können, und im besonderen sollte CSS kein Problem sein.

Wenn man es von Hand schreibt, also direkt Delphi, hat man aber sowieso die vollständige Mächtigkeit einer Programmiersprache und kann alles parsen.
Dazu kannst Du Dir mal den SynEdit-Quelltext des CSS-Highlighters anschauen. Der kann die einzelnen Tokens erkennen und entspricht einem Lexer mit etwas Zusatz. Das könnte eventuell schon ausreichen, falls Du nur eine bestimme Stelle im Quelltext finden willst.

Falls Du trotzdem kurz über die Theorie drüberschauen möchtest, schaue nach Kontextfreie Grammatiken (Produktionen, Ableitungen, akzeptieren) und reguläre Sprachen.
Kellerautomaten bzw. DEAs entsprechen den oben genannten Grammatiken und sind zu ihnen äquivalent, in der Praxis wirst Du aber Grammatiken schreiben.

Delphi Parser Generator: Delphi Yacc und Lex

Hier ist noch eine gute Einführung in Lex und Yacc mit kurzer Erklärung der Theorie:
http://epaperpress.com/lexandyacc/

Hoffe das hilft ein wenig.

Daniel G 12. Aug 2006 19:24

Re: [Mission Impossible] CSS Parser erstellen...
 
Zitat:

Zitat von mael
Dazu kannst Du Dir mal den SynEdit-Quelltext des CSS-Highlighters anschauen. Der kann die einzelnen Tokens erkennen und entspricht einem Lexer mit etwas Zusatz.

Hmm, stimmt, an SynEdit habe ich gar nicht gedacht, man muss das Rad ja auch nicht immer neu erfinden.

Zitat:

Zitat von mael
Das könnte eventuell schon ausreichen, falls Du nur eine bestimme Stelle im Quelltext finden willst.

Hehe, ich sach mal so: Wenn ich das komplette CSS - Dokument in einer Baumstruktur vorliegen habe, bin ich glücklich. :wink:

Zitat:

Zitat von mael
Falls Du trotzdem kurz über die Theorie drüberschauen möchtest [...]

Jabb, interessieren würde es mich schon, zumindest in Grundzügen...

Zitat:

Zitat von mael
Hoffe das hilft ein wenig.

Bestimmt, danke dir. ;)

Über den Begriff "Lexer" bin ich schon gestolpert, allerdings produzierten die alle C - Code...

//Edit: "Quote" - Tag repariert
//Edit2: "Edit" - Tag repariert. Ich hasse Opera :wall:

mael 12. Aug 2006 19:32

Re: [Mission Impossible] CSS Parser erstellen...
 
Zitat:

Zitat von Daniel G
Hehe, ich sach mal so: Wenn ich das komplette CSS - Dokument in einer Baumstruktur vorliegen habe, bin ich glücklich. :wink:

Hmm, du kannst natürlich darauf aufbauen, aber eine Baumstruktur erfordert da schon noch ein gutes Stück arbeit, d.h. die Syntax wird vom Highlighter nicht verarbeitet.
In diesem Fall ist vielleicht doch Yacc einfacher, muß man sich aber auch ne Weile reindenken.

Zitat:

Zitat von Daniel G
Über den Begriff "Lexer" bin ich schon gestolpert, allerdings produzierten die alle C - Code...

Der Link in meinem obigen Beitrag (bzw. das Programm dahinter) erzeugt Delphi-Code.

Daniel G 12. Aug 2006 19:44

Re: [Mission Impossible] CSS Parser erstellen...
 
Zitat:

Zitat von mael
Zitat:

Zitat von Daniel G
Über den Begriff "Lexer" bin ich schon gestolpert, allerdings produzierten die alle C - Code...

Der Link in meinem obigen Beitrag (bzw. das Programm dahinter) erzeugt Delphi-Code.

"...also danke für den Link" hatte ich vergessen dazu zu schreiben. :wink:

Ich werde mich dann mal durch die vorhanden Sourcen, Specs und what ever wühlen...

marabu 12. Aug 2006 19:53

Re: [Mission Impossible] CSS Parser erstellen...
 
Hallo Daniel,

ich will dich nicht davon abhalten einen neuen CSS-Editor zu erschaffen, aber wenn du dir einen Überblick über dein CSS-Monster verschaffen möchtest, dann hilft dir vielleicht TopStyle Lite (1.8 MB).

marabu

Daniel G 12. Aug 2006 20:09

Re: [Mission Impossible] CSS Parser erstellen...
 
Zitat:

Zitat von marabu
ich will dich nicht davon abhalten einen neuen CSS-Editor zu erschaffen [..]

Das nehme ich mit Freude zur Kenntnis. :lol:

TopStyle kannte ich schon, auch ein paar andere Freeware - Editoren habe ich mir angesehen (selbst hier in der DP), nur hatte der eine ein Feature, das ich gerne gehabt hätte, der andere ein Feature, das ich gerne gehabt hätte. Also habe ich beschlossen, einen Editor zu schreiben, der das kann, was ich gerne an Features hätte.

Und vllt. kann ich dann ganz nebenbei auch endlich CSS mal vernünftig lernen... :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 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