Hat jemand einen regulären Ausdruck für den Abgleich von Funktionsaufrufen in C-Programmen?
Antworten
Zu viele Anzeigen?Da C keine reguläre Sprache und C-Funktionsaufrufe beliebige Argumentausdrücke enthalten können, fürchte ich, dass die Antwort auf Ihre Frage "nein" lautet.
Nach einigem Suchen beschloss ich, den Compiler die harte Arbeit machen zu lassen.
Bringen Sie den Compiler dazu, eine Register Transfer Language (RTL) Datei mit den -dr Optionen von gcc.
Die erzeugte RTL-Datei hat die Endung .rtl oder .expand.
Diese Datei ist viel einfacher zu analysieren, da die Funktionsaufrufe bereits identifiziert sind.
Ich bezweifle, dass Sie einen Regex finden können, der auf alle (und nur auf die) Funktionsaufrufe in einem Quellcode passt. Aber vielleicht können Sie ein Werkzeug wie Verstehen Sie oder Ihre IDE, um Ihren Code zu durchsuchen.