ninette111
15-09-2005, 10:42
Hallo!
Ich bin gerade dabei ein awk-Script als Filter in Doxygen (ein Werkzeug zur automatischen erstellung von Dokumentationen zu einem Quellcode) einzubauen. Dabei ist mir folgendes aufgefallen:
wenn ich mein script so aufrufe:
sh filter.sh
Wobei filter.sh so aussieht
#!/bin/sh
awk '{ if($0 ~ /^["\t"| ]*\/\*\*/) {
comment=1;
mycomment=" ";
printcomment=0;
}; if($0 ~ /@since\ 2\.6/) {
printcomment=1;
}; if (comment==1) {
mycomment=mycomment "\n" $0;
}else {
print $0;
}; if($0 ~ / \/$/) {
comment=0;
if(printcomment==1) {
print mycomment;
}else {
printcomment=0;
};
}; }' Font.hpp > test5.hpp
..dann funktioniert alles, und macht genau das richtige.
Wenn ich allerdings mein script mit
awk -f filter.awk Font.hpp > test5.hpp
aufrufe, mit folgender datei filter.awk
]#!/bin/awk
{ if($0 ~ /^["\t"| ]*\/\*\*/) {
comment=1;
mycomment=" ";
printcomment=0;
} if($0 ~ /@since\ 2\.6/) {
printcomment=1;
} if (comment==1) {
mycomment=mycomment "\n" $0;
}else { print $0;}
if($0 ~ / \/$/) {
comment=0;
if(printcomment==1) {
print mycomment;
}else {
printcomment=0; }} }
Dann bekomme ich plötzlich sehr viele Parser-Errors (meist " ^ invalid char ' ' in expression:2:")
". Außerdem erkennt er keine Zeilenumbrüche , weil das für ihn ebenfalls invalid characters sind. Warum ist denn das? Wie ist es möglich das Script auf die 2. Variante zum laufen zu bringen (so bräuchte ich es nämlich für Doxygen).
Bitte um Tipps!
LG
Nine.
PS: Die Zeilenumbrüche in den Scriptdateien habe ich nur zur besseren Lesbarkeit eingefügt!
Ich bin gerade dabei ein awk-Script als Filter in Doxygen (ein Werkzeug zur automatischen erstellung von Dokumentationen zu einem Quellcode) einzubauen. Dabei ist mir folgendes aufgefallen:
wenn ich mein script so aufrufe:
sh filter.sh
Wobei filter.sh so aussieht
#!/bin/sh
awk '{ if($0 ~ /^["\t"| ]*\/\*\*/) {
comment=1;
mycomment=" ";
printcomment=0;
}; if($0 ~ /@since\ 2\.6/) {
printcomment=1;
}; if (comment==1) {
mycomment=mycomment "\n" $0;
}else {
print $0;
}; if($0 ~ / \/$/) {
comment=0;
if(printcomment==1) {
print mycomment;
}else {
printcomment=0;
};
}; }' Font.hpp > test5.hpp
..dann funktioniert alles, und macht genau das richtige.
Wenn ich allerdings mein script mit
awk -f filter.awk Font.hpp > test5.hpp
aufrufe, mit folgender datei filter.awk
]#!/bin/awk
{ if($0 ~ /^["\t"| ]*\/\*\*/) {
comment=1;
mycomment=" ";
printcomment=0;
} if($0 ~ /@since\ 2\.6/) {
printcomment=1;
} if (comment==1) {
mycomment=mycomment "\n" $0;
}else { print $0;}
if($0 ~ / \/$/) {
comment=0;
if(printcomment==1) {
print mycomment;
}else {
printcomment=0; }} }
Dann bekomme ich plötzlich sehr viele Parser-Errors (meist " ^ invalid char ' ' in expression:2:")
". Außerdem erkennt er keine Zeilenumbrüche , weil das für ihn ebenfalls invalid characters sind. Warum ist denn das? Wie ist es möglich das Script auf die 2. Variante zum laufen zu bringen (so bräuchte ich es nämlich für Doxygen).
Bitte um Tipps!
LG
Nine.
PS: Die Zeilenumbrüche in den Scriptdateien habe ich nur zur besseren Lesbarkeit eingefügt!