GCC: Eigener Präprozessor



  • Hallo,
    ich wollte fragen, ob es möglich ist, gcc anzuweisen, einen eigenen Präprozessor statt des «normalen» zu benutzen, und welche Eigenschaften ein solcher dann erfüllen müsste. Gibt es eine solche Möglichkeit? Ich habe leider nix finden können, aber bevor ich in selbstmitleid aufgehe, frage ich lieber doch noch mal nach 😉



  • Habe mir grade GCC Manual pdf-Datei angeschaut und nach "preprocessor" gesucht. Da gibt es recht viel Info. Habe sogar einen für mich verwirrenden Abschnitt gefunden:

    Historically, compilers for many languages, including C++ and Fortran, have been implemented
    as “preprocessors” which emit another high level language such as C. None of
    the compilers included in GCC are implemented this way; they all generate machine code
    directly. This sort of preprocessor should not be confused with the C preprocessor, which
    is an integral feature of the C, C++, Objective-C and Objective-C++ languages.

    Hmm, frage mich jetzt, was habe ich bis jetzt unter einem "Präprozessor" verstanden, was verstehst du unter einem "Präprozessor"?



  • Ein Name für zwei unterschiedliche Dinge.

    1. Die Bedeutung als C-Präprozessors 😉
    2. Es gab (und gibt) Compiler, die Erzeugen aus Ihrer Hochsprache Quellcode einer sekundären Sprache, der dann eigentlich erst Maschinencode erzeugt.

    Immer noch unklar?



  • Nun, ich meine den C-Präprozessor... oder doch den anderen? Naja, ersterer scannt ja auch nur die datei, sucht nach besonderen Konstrukten (#-Anweisungen, Makro-Nutzung), und ersetzt sie durch andere, wo dann eine andere high-level Sprache (reines C++) raus kommt. Und davon möchte ich einen eigenen einsetzen.



  • Schreib ihn doch einfach als eigenständiges Programm und lass die generierten Dateien in irgendein temporäres Verzeichnis schreiben. Oder nenne die Dateien vorher *.cxy oder so und lasse dein Programm daraus *.cpp erzeugen.



  • zomg! Das tut weh darauf nicht zu kommen, dass ich ja auch mit temp. dateien arbeiten kann. -.- danke... so was blödes 😃


Anmelden zum Antworten