Hallo, ich benötige ein Tipp.
Ich muss in einem C-Code den Anfang und das Ende einer Funktion bestimmen, den Anfang kann ich finden weil die Syntax bekannt ist, das Ende könnte ich mittels Klammern, "{", "}" zählen bestimmen. Wenn ich die Anfangs und Endzeile der Funktion kenne, muss ich bestimmte Kommentare finden finden und ändern, die Änderung betrifft dann auch die nächste Zeile.
Wie kann ich jetzt wie ein Pointer durch die C-Datei fliegen?
01 /* Funktionskopf */
02
03 void Func1
04 {
05 /* Kommentar A */
06 Befehl A
07 /* Kommentar B */
08 Befehl B
09 /* Kommentar C */
10 Befehl C
11 }
Ich muss nun die Funktion suchen und den Anfang (Zeile 03) und das Ende (Zeile 11) bestimmen. Dann muss ich wieder bei Anfang Funktion starten und die Kommentare untersuchen, wenn ich Kommentar B (Zeile 07) finde, dann muss ich den Kommentar und Befehl B ändern.
Muss ich das alles per readline machen oder gibt es da etwas schöneres?
C-File Parsen und editieren
Evtl. ist auch ``pycparser`` einen Blick wert:
https://pypi.org/project/pycparser/
https://pypi.org/project/pycparser/
Ich schlage antlr mit einer Grammatik für C vor:
https://github.com/antlr/antlr4
https://github.com/antlr/grammars-v4/tree/master/c
(Unterstützt auch Python als target)
https://github.com/antlr/antlr4
https://github.com/antlr/grammars-v4/tree/master/c
(Unterstützt auch Python als target)