2013-06-18 7 views
8

Ich arbeite an der C Code-Parser in Perl.C-Code-Vorverarbeitung in Perl

Im Moment muss ich den Code vorverarbeiten. Die Implementierung der Vorverarbeitung scheint eine Menge Arbeit zu sein, deshalb suche ich nach einem Skript oder einer Bibliothek, die es erlauben wird, die Datei vorzuverarbeiten.

fand ich folgende Möglichkeiten:

  1. Text::CPP
  2. Filter::CPP

Beide cpp erfordern, die ich nicht auf meinem Windows-Rechner haben. Gibt es noch andere Möglichkeiten?

+0

http://search.cpan.org/perldoc?Filter%3A%3Acpp sagt 'Dieser Quellfilter leitet die aktuelle Quelldatei über den C-Preprozessor (cpp), sofern dieser verfügbar ist. – devnull

+0

' Text :: CPP sagt, dass es einen funktionierenden C-Compiler erfordert. – devnull

+0

@devnull das ist ein Problem ... – Alex

Antwort

5

Ich bin mir nicht sicher, ob ich Ihre Bedürfnisse verstehe, aber Sie haben recht, dass die Implementierung dieser selbst wahrscheinlich eine schlechte Wahl ist. Ich suchte kürzlich nach alternativen C-Präprozessoren.

Das Text::CPP Modul sollte nur einen Compiler benötigen, um sich selbst zu kompilieren. Wenn Sie eine vorkompilierte Version finden können, sollte es für Sie arbeiten.

Die JCPP Java C Preprocessor vom selben Autor könnte wahrscheinlich gemacht werden, um zu arbeiten. Sie müssten wahrscheinlich extern verarbeiten und dann das Ergebnis laden.

Filepp ist ein älteres Perl-Programm, das CPP-Kompatibilität beansprucht. Es gibt eine vorkompilierte Windows-Binärdatei zum Herunterladen.

Es gibt ein brandneues Lua C-Preprocessor LCPP, das etwas sein könnte, mit dem Sie arbeiten könnten. Wahrscheinlich am besten als Standalone, aber Sie könnten möglicherweise Inline::Lua verwenden.

SWIG kommt mit einer eigenen Präprozessorimplementierung. Ich vermute, dass dies für Windows verfügbar wäre.

Was noch? Die Boost Wave Preprocessor funktioniert möglicherweise gut und ist für Windows verfügbar. Der MSVC Compiler kann preprocess to a file.

Dennoch ist die einfachste und beste langfristige Lösung, einfach CPP zu installieren. Es kommt als Teil von GCC, die Sie von Cygwin oder MinGW erhalten können.