2009-06-15 8 views
4

Est-ce que quelqu'un connaît une bonne bibliothèque .NET qui me permet d'analyser les fichiers de code source, mais pas seulement les fichiers de code source .NET (comme java, perl, ruby, etc.)?. Bibliothèque Net pour l'analyse des fichiers de code source?

J'ai besoin d'un accès programmé au contenu de divers fichiers de code source (par exemple, classe, méthode, noms de paramètres, types, etc.).

Est-ce que quelqu'un est tombé sur quelque chose comme ça? Je sais qu'au sein de .NET c'est raisonnablement possible et il y a quelques bibliothèques là-bas, mais j'ai besoin que cela soit résumé à plus de types de langages de programmation.

Répondre

3

Quelques possibilités:

  1. Vous pourriez choisir un cadre d'analyse qui a beaucoup de grammaires existants (comme Antlr ou plus récents comme ceux Irony) et l'utiliser. Cela offrira le plus de fidélité.
  2. Si vous pouviez coller uniquement aux langages .NET, vous pouvez utiliser le Common Compiler Infrastructure tools pour lire les données d'un fichier compilé.
  3. Vous pourriez faire une approche basée sur l'heuristique comme les utilisations du composant SyntaxHighlighter.
  4. Vous pouvez récupérer des outils existants qui offrent une syntaxe enfichable en mettant en évidence des fichiers tels que VIM. Vous devez créer ou trouver un analyseur qui a bien compris ces fichiers.
+0

L'ironie me semble bien plus confortable. ça va aller avec ça pour une évaluation plus profonde .. merci Jeff! –

0

Souhaitez Antlr répondre à vos besoins?

+0

Eh bien Antler semble bien, mais comme un tout nouveau monde à explorer/apprendre et s'habituer. Je suis plus ou moins à la recherche d'un produit «fini» adapté à des langues spécifiques (par exemple quelque chose comme http://www.metaspec.net pour C#, mais aussi pour d'autres langues) ... –

0

Un outil conçu pour analyser le code source, construire des structures de données du compilateur correspondant (arbres, etc.), vous permettent de naviguer/manipuler ces structures, et régénérer le code source valide (y compris les commentaires!) Est le DMS Software Reengineering Toolkit.

Il a une extrémité avant C# 4.0 complète.

Il ne permet pas d'accéder à ces structures à partir de C#; il fournit plutôt son propre environnement pour coder l'analyse et les transformations du programme, avec une énorme quantité de support pour le faire relativement facilement (et considérablement plus facile que de le faire en C# pur).

Questions connexes