AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [Mission Impossible] CSS Parser erstellen...
Thema durchsuchen
Ansicht
Themen-Optionen

[Mission Impossible] CSS Parser erstellen...

Ein Thema von Daniel G · begonnen am 12. Aug 2006 · letzter Beitrag vom 12. Aug 2006
Antwort Antwort
Seite 2 von 2     12   
Daniel G
(Gast)

n/a Beiträge
 
#11

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

  Alt 12. Aug 2006, 19:54
Igitt

Aber wenn man's weiß, kann man das glaube ich auch handeln....
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#12

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

  Alt 12. Aug 2006, 20:07
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.
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#13

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

  Alt 12. Aug 2006, 20:24
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 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.

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 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
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#14

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

  Alt 12. Aug 2006, 20:32
Zitat von Daniel G:
Hehe, ich sach mal so: Wenn ich das komplette CSS - Dokument in einer Baumstruktur vorliegen habe, bin ich glücklich.
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 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.
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#15

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

  Alt 12. Aug 2006, 20:44
Zitat von mael:
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.

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

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

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

  Alt 12. Aug 2006, 20:53
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
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#17

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

  Alt 12. Aug 2006, 21:09
Zitat von marabu:
ich will dich nicht davon abhalten einen neuen CSS-Editor zu erschaffen [..]
Das nehme ich mit Freude zur Kenntnis.

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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 Uhr.
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