SimonX
2010-03-05, 16:33:39
Hi,
Ich suche allgemeine Information zum C/C++ Front-End vom GCC 4.x.
Ich habe das: http://gcc.gnu.org/onlinedocs/gccint/index.html
bereits gefunden, aber es hilft mir nicht meine allgemeine Fragen zum Output vom Front-End zu beantworten.
Die wichtigsten Fragen sind:
- Kann man den Output vom Front-End benutzen um original C/C++ Code unverändert wieder als C/C++ Code auszugeben? (Inklusive C/C++ Kommentare im Orginal?)
- Hat der Output vom Front-End auch noch detail-Infos von #define Marcro's, so das man auch diese unverändert ausgeben kann?
Kennt jemand vielleicht ein GCC-Developer Forum in dem ich solche Fragen stellen könnte?
Warum stelle ich diese Frage?:
Ich möchte den GCC-Front-End benutzen um ein vollständiges und vernünftiges Reformatieren von C/C++-Code zu implementieren.
Tools wie Uncrustify habe alle ihre Schwächen und nach meinem ersten Einblick in den Code von Uncrustify ist mein Eindruck der, das der C/C++ Parser zu wenig Infos sammelt und dadurch kein vollständiges Reformatieren möglich ist.
Beispiel:
if (a
||b||
c) {
....
}
kann uncrustify nicht wirklich reformatieren. Wenn ich eine maximal Zeilenlänge von 80 Zeichen im style vorgeschrieben habe, dann würde ich dies erwarten:
if (a || b || c) {
........
}
Aber bei uncrustify kommt irgendwas wie:
if ( a
|| b ||
c)
{
.....
}
raus.
Ich glaube, das liegt am Parser, der die eigentlich C/C++ Syntax nur pro Zeile versteht.
Ich suche allgemeine Information zum C/C++ Front-End vom GCC 4.x.
Ich habe das: http://gcc.gnu.org/onlinedocs/gccint/index.html
bereits gefunden, aber es hilft mir nicht meine allgemeine Fragen zum Output vom Front-End zu beantworten.
Die wichtigsten Fragen sind:
- Kann man den Output vom Front-End benutzen um original C/C++ Code unverändert wieder als C/C++ Code auszugeben? (Inklusive C/C++ Kommentare im Orginal?)
- Hat der Output vom Front-End auch noch detail-Infos von #define Marcro's, so das man auch diese unverändert ausgeben kann?
Kennt jemand vielleicht ein GCC-Developer Forum in dem ich solche Fragen stellen könnte?
Warum stelle ich diese Frage?:
Ich möchte den GCC-Front-End benutzen um ein vollständiges und vernünftiges Reformatieren von C/C++-Code zu implementieren.
Tools wie Uncrustify habe alle ihre Schwächen und nach meinem ersten Einblick in den Code von Uncrustify ist mein Eindruck der, das der C/C++ Parser zu wenig Infos sammelt und dadurch kein vollständiges Reformatieren möglich ist.
Beispiel:
if (a
||b||
c) {
....
}
kann uncrustify nicht wirklich reformatieren. Wenn ich eine maximal Zeilenlänge von 80 Zeichen im style vorgeschrieben habe, dann würde ich dies erwarten:
if (a || b || c) {
........
}
Aber bei uncrustify kommt irgendwas wie:
if ( a
|| b ||
c)
{
.....
}
raus.
Ich glaube, das liegt am Parser, der die eigentlich C/C++ Syntax nur pro Zeile versteht.