2008-09-17 4 views
2

Kann jemand mir eine hilfreiche Programmiersprache vorschlagen, die verwendet werden kann, um ein Tool zu erstellen, das das angegebene C-Programm analysiert und einen TXT-Bericht oder HTML-Bericht mit Informationen darüber generiert das angegebene Programm (Funktionsliste, Variablenliste usw.). Das Programm, das ich bauen möchte, ist ähnlich wie Doxygen, aber ich möchte es für meinen persönlichen Gebrauch.Welche Sprache ist nützlich, um einen Bericht für ein gültiges C-Programm zu erstellen?

Antwort

3

Sowohl Python als auch Perl verfügen über ausgezeichnete Funktionen zur Zeichenfolgenverarbeitung.

Ich würde vorschlagen, etwas wie Ctags verwenden, um das Programm zu analysieren, und erstellen Sie einfach ein Skript zum Lesen der Ctags-Datei und Ausgabe in txt/html.

Das von Ctags verwendete Dateiformat ist gut definiert, so dass andere Programme es lesen können. Weitere Informationen zu den Ctags selbst und der verwendeten Datei finden Sie unter http://ctags.sourceforge.net.

1

In Skriptsprachen suchen. Ich würde Python oder Perl empfehlen.

4

ctags, vielleicht?

Ctags erzeugt eine Index- (oder Tag-) Datei von Sprachobjekten, die in Quelldateien enthalten sind und die es ermöglichen, diese Elemente schnell und einfach mit einem Texteditor oder einem anderen Dienstprogramm zu finden. Ein Tag kennzeichnet ein Sprachobjekt, für das ein Indexeintrag verfügbar ist (oder alternativ der Indexeintrag, der für dieses Objekt erstellt wurde).

0

Wenn es eine Programmiersprache ist, dann möchte ich etwas sagen, das für die String-Verarbeitungsleistung bekannt ist, also würde das Perl bedeuten.

Allerdings kann die Aufgabe, die Sie benötigen, ziemlich kompliziert sein, da Sie die Sprache "kennen" müssen. Sie müssen also die gleichen Schritte wie der Compiler machen, indem Sie die Sprache lexikalisch und grammatikalisch analysieren (think flex, think yacc), um wirklich zu wissen, welche Bedeutung diese Saiten haben.

Vielleicht ist der beste Ausgangspunkt ist es, einen Blick auf doxygen zu nehmen und versuchen, so viel von der Arbeit dort wie möglich getan wieder verwendet

1

Haskell hat ein relativ neues Sprache-c Projekt http://www.sivity.net/projects/language.c, die die Analyse von C-Code ermöglicht .

Wenn Sie mit Haskell vertraut sind, dann könnte es einen Blick wert sein. Selbst wenn Sie es nicht sind, könnte es interessant sein, es zu versuchen.

2

Sie eine große Dose Würmer öffnen, ist dies nicht eine effektive Nutzung Ihrer Zeit, bla bla bla usw.

zu einer Antwort bewegen auf, wenn Sie über irgendetwas über trivial sprechen Analyse und Sie brauchen Genauigkeit, müssen Sie den C-Quellcode analysieren. Sie können dies in jeder Sprache tun, aber Sie werden Ihren Parser mit hoher Wahrscheinlichkeit aus einer höheren Grammatik generieren wollen. Dafür gibt es eine Reihe von Tools. Ein moderner und besonders leistungsfähiger Parser-Generator ist ANTLR; Es gibt eine Reihe von ANTLR-Grammatiken für C, einschließlich einfacher zu verwendender Untergruppen.

0

pycparser ist ein vollständiger Parser für ANSI C89/C90 in reinem Python geschrieben. Es ist weit verbreitet, um C-Quellcode für verschiedene Bedürfnisse zu analysieren. Es enthält einen Beispielcode, z. B. alle Funktionsdefinitionen in Dateien usw.

Verwandte Themen