Ich möchte Quellcode analysieren, der in mehreren Sprachen geschrieben ist. Die Bibliothek sollte mir also zumindest sagen, welche Zeilen Kommentare sind und welche nicht. Optimalerweise könnte es mir auch spezifischere Dinge mitteilen, wie Variablendeklarationen, sprachspezifische Schlüsselwörter usw.
Es ähnelt also tatsächlich einem sprachspezifischen Syntax-Highlighter, nur dass es den Quellcode nicht hervorhebt, sondern kommentiert und so etwas wie eine JSON-Ausgabe druckt.
Ich habe Markdown-it für Markdown gefunden, aber naja, ich bräuchte es für viele Sprachen, wie Shell, JavaScript, Python, Scala, Go …
Ich weiß nicht, ob es alle Sprachen abdeckt, die Sie benötigen, oder alle Metadaten ausgibt, die Sie benötigen, aber Doxygen könnte ausreichen. Es kann XML ausgeben, das Dinge wie Funktions- und Variablendeklarationen enthält.
Unser DMS Software Reengineering Toolkit ist ein Allzweck-Tool zur Programmanalyse und -transformation, parametrisiert durch explizite Sprachdefinitionen. Bis heute sind etwa 40 Sprachen (ohne Dialekte) für DMS definiert.
Für jede solche Sprache, die durch eine explizite Grammatik definiert ist (ja, wir handhaben C++17 auf diese Weise), kann DMS die Quelle parsen und einen abstrakten Syntaxbaum erzeugen. [Ja, Sie können es als XML exportieren (JSON wäre auch einfach), wenn Sie möchten, aber es ist einfacher, wenn Sie andere Analysen mit anderen DMS-Mechanismen durchführen, was bedeutet, dass Sie sie nicht exportieren müssen. Von dort aus ist es ziemlich einfach, Kommentare vs. Deklarationen vs. Funktionsheader vs. Code zu kennzeichnen.
DMS kann so konfiguriert werden, dass es viel mehr Informationen als nur diese herauszieht.
Kodiologe