[Python-de] Parsen einer Grammatik

Sebastian Wiesner lunaryorn at gmail.com
Mi Jan 2 10:56:42 CET 2013


Am 2. Januar 2013 09:50 schrieb Philipp Kraus <philipp.kraus at flashpixx.de>:
> Hallo,
>
> ich suche eine Möglichkeit eine Grammatik zu definieren und zu parsen. Im
> speziellen geht es darum, dass ich für C++ & C Code Dateien einen Styleguide
> definieren kann und diesen mit Hilfe eines Python Scriptes überprüfe. Was
> bietet Python an Möglichkeiten um eine Grammatik zu definieren bzw. zu
> verarbeiten. Reguläre Ausdrücke sind definitiv ein Ansatz, reichen aber
> nicht aus, um z.B. Blockstrukturen zu prüfen. Für mich relevant sind z.B.
> Funktions-, Namespace-, Methoden-, Variablenbenennung, Einrückung,
> Kommentierung, Präprozessoranweisungen, if-then-else / case Strukturen (z.B.
> kein If (i==0) oder ein case ohne default).

Ich rate Dir davon ab, C oder C++ selbst zu parsen.  Beide Sprachen
sind kontextsensitiv, komplex und ungeheuer aufwendig zu parsen.

Nutze clang und dessen Python-Bindings.  Obwohl diese unvollständig
sind, wirst Du damit wahrscheinlich schneller ans Ziel kommen als mit
einer eigenen Grammatik.

Oder versuche, auf cppcheck aufzubauen, und dessen Quelltext um Deine
eigenen Prüfungen zu erweitern.


Mehr Informationen über die Mailingliste python-de