Einzelnen Beitrag anzeigen

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, 19: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