403
26-04-2007, 03:48
Guten Morgen :)
Mit folgendem Quick and Dirty Regex
sed 's/\(.*\)/& \*\//g;s/\/\//\/\*/g' pattern
konnte ich bei diesem Pattern
// foo
// baz spam qnx
// grrr
alle // Kommentare durch /* Kommentar */ ersetzen.
Leider frisst der obige Ausdruck aber zuviel. Nur * wird z.B. auch
erwischt und das ist in C natuerlich Mist ;)
Folgendes Vorgehen habe ich mir ueberlegt. (kann redundant sein)
wenn schon /* oder */ dann skippe diese Line
wenn schon nur / oder * dann skippe diese Line
opt. wenn /*/* */*/ dann skippe diese Line
opt. wenn multilinecomment (suche nach \n\r) dann skippe diese Line
solange wie line matches // und nur //
s'////* bzw. */
Kann mir jemand einen kleinen Tip geben? Mir wurde schon empfohlen
eine State Machine in C zu schreiben, das waere dann die naechste
Aufgabe, momentan will ich erstmal den Regex weiter verbessern.
Gruss 403
Mit folgendem Quick and Dirty Regex
sed 's/\(.*\)/& \*\//g;s/\/\//\/\*/g' pattern
konnte ich bei diesem Pattern
// foo
// baz spam qnx
// grrr
alle // Kommentare durch /* Kommentar */ ersetzen.
Leider frisst der obige Ausdruck aber zuviel. Nur * wird z.B. auch
erwischt und das ist in C natuerlich Mist ;)
Folgendes Vorgehen habe ich mir ueberlegt. (kann redundant sein)
wenn schon /* oder */ dann skippe diese Line
wenn schon nur / oder * dann skippe diese Line
opt. wenn /*/* */*/ dann skippe diese Line
opt. wenn multilinecomment (suche nach \n\r) dann skippe diese Line
solange wie line matches // und nur //
s'////* bzw. */
Kann mir jemand einen kleinen Tip geben? Mir wurde schon empfohlen
eine State Machine in C zu schreiben, das waere dann die naechste
Aufgabe, momentan will ich erstmal den Regex weiter verbessern.
Gruss 403