Erstes Projekt: "Validator" für CSS, HTML, etc.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Fallen][Angel
User
Beiträge: 39
Registriert: Dienstag 20. Mai 2008, 12:38

veers hat geschrieben:Das Grammar von CSS scheint mir auf den ersten Blick nicht sonderlich Komplex zu sein:
http://www.w3.org/TR/CSS21/grammar.html

Mit HTML und PHP wird das dann noch viel lustiger. Vorallem scheint PHP gar keine Dokumentierte Grammatik zu haben, und in ihrem cvs finde ich auch nichts. Kann aber auch daran liegen das es da so unübersichtlich ist.

Als Anfänger Projekt kann ich dir das jedoch auch nicht empfehlen ;)
Okay, ich hab mir nun einmal EBNF angesehen und muss gestehen, dass ich es noch nicht wirklich gekannt habe :oops: Jedenfalls keine leichte Kost!

Muss dann wohl vorerst wirklich Abstand von diesem Projekt nehmen, auch wenns schwer fällt. Die Frage wäre aber dann, was könnte ich machen, was mich wenigstens schon etwas in diese Richtung führt?

Spontan mag mir dafür nämlich nichts einfallen :(
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

veers hat geschrieben:Mit HTML und PHP wird das dann noch viel lustiger. Vorallem scheint PHP gar keine Dokumentierte Grammatik zu haben, und in ihrem cvs finde ich auch nichts. Kann aber auch daran liegen das es da so unübersichtlich ist.
PHP ist auch nicht so weit zu Perl, das wohl mit abstand die am schwierigsten zu parsende Syntax hat.

EBNF ist auch nicht so kompliziert, das kann man mit PLY recht passabel abbilden. Ist natürlich weniger gut, wenn man niemanden fragen kann (Prof) der das alltäglich macht denn mir ist keine Quelle untergekommen wo das brauchbar beschrieben wäre.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Um CSS, HTML und PHP auf stilistische Probleme hin zu prüfen, kommt man um einen "echten" Parser IMHO nicht herum. Leider reicht auch nicht ein Parser, wie ihn typische Parser-Generatoren erzeugen, da dies AST-Parser (Abstrakter Syntax Baum/Tree) sind und in diesem Fall ein CST-Parser (C=Concrete) notwendig ist, der auch alle Kommentare und Leerzeichen (und bei HTML die Schreibweise der Tags) bewahrt, die in einem AST fehlen.

Ich würde dazu eine PEG (Parsing Expression Grammar, ein Mittelding aus regulären und kontextfreien Grammatiken) empfehlen, doch das ist definitiv kein Anfängerprojekt.

Hinzu kommt, dass man sich eine Grammatik für PHP erarbeiten muss. Diese könnte man aus dem Original-Quelltext von PHP ableiten (da könnte es ein von Hand geschriebener Parser sein oder etwas, das yacc/bison generiert haben) oder mal schauen, ob es bei ANTLR (einem LL(*)-Parsergenerator) etwas gibt oder schauen, wie es der PHP-Modus von Netbeans (die möglicherweise Schlieman benutzen, ein auf kontextfreien Grammatiken basierender semantischer Syntax-Highlighter) macht oder den Java-PHP-Port Quercus anschauen. Dazu sind aber C bzw. Java-Kentnisse unabdingbar.

Übrigens: Wenn man schon in Netbeans stöbert, könnte man eigentlich die Prüfungen auch gleich dort einbauen, sodass diese IDE einem die Warnungen ausgibt und vielleicht auch gleich mittels Quickfix eine Lösung anbietet. Für HTML und CSS gibt es solche Funktionen schon (und wenn nicht bei Netbeans, dann in jedem Fall bei Intellij IDEA, welches ich ja für den besten HTML/CSS-Editor halte).

Stefan
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Leonidas hat geschrieben:
veers hat geschrieben:Mit HTML und PHP wird das dann noch viel lustiger. Vorallem scheint PHP gar keine Dokumentierte Grammatik zu haben, und in ihrem cvs finde ich auch nichts. Kann aber auch daran liegen das es da so unübersichtlich ist.
PHP ist auch nicht so weit zu Perl, das wohl mit abstand die am schwierigsten zu parsende Syntax hat.
C++ soll da aber auch ganz toll sein...
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Fallen][Angel
User
Beiträge: 39
Registriert: Dienstag 20. Mai 2008, 12:38

okay okay, bin nun endgültig überzeugt. Habs mir so in der Theorie irgendwie einfacher vorgestellt gehabt ;)

Werd mich dann nach einem alternativen Projekt umsehen müssen.
Antworten