6
votes

Meilleur analyseur pour C #?

J'ai besoin d'un analyseur ou d'une grammaire pour C # 3.0 (licence Open-Source). Quel est le meilleur choix aujourd'hui?


3 commentaires

Juste curieux .. pourquoi voudriez-vous un?


Expérimenter avec des transformations de code.


Si vous utilisez Visual Studio SDK, vous pouvez obtenir un modèle d'objet de document complet du projet C # pour effectuer de telles transformations. Vs l'utilise déjà pour réfracter et intellisense et beaucoup d'addins utilisent aussi.


4 Réponses :


3
votes

Vérifiez Parser C # de Metaspec :

L'analyseur METASPEC C # est complètement Conforme avec ECMA-334 et ECMA-335 normes. De plus, il soutient Extensions spécifiques à Microsoft. Pour Détails sur la bibliothèque de parser C #, Voir la documentation en ligne (C # édition ou édition C ++).

C # 3.0 Caractéristiques prises en charge:

  • Algorithme d'inférence de type C # 3.0 de type C # 3.0
  • variables locales typées implicitement
  • Initializers d'objets
  • Initializers de collection
  • Expressions de création d'objets anonymes
  • Lambda Expressions
  • Types anonymes
  • Méthodes d'extension
  • Expressions de requête
  • Méthodes partielles

    C # 2.0 Caractéristiques prises en charge:

    • GENRES
    • Nullable Types
    • Méthodes anonymes

1 commentaires

Je ne suis pas sûr - vous auriez besoin de contacter Metaspec pour une copie de leur licence.



2
votes

Découvrez le projet ANTLR. http://www.antlr.org/

Vous pouvez obtenir C # grammaire d'ici: http://www.antlr.org/grammar/list


0 commentaires

0
votes

dépend de ce que vous optimez.

Si vous optimisez la capacité de transformer C #, Voir le C # Front End pour un analyseur qui gère C # 1.2, 2.0 et 3.0 (y compris la syntaxe LINQ). L'extrémité frontale C # est construite sur Toolkit de réengagement logiciel DMS qui fournit l'analyse , Bâtiment automatique des asts, prise en charge des tables de symboles, transformation du programme source-à-source à l'aide de la syntaxe de niveau source avec des motifs et de l'AST Retour au texte source Prettyprinting. Si vous souhaitez transformer le code C #, c'est l'outil pour le faire. (DMS est également utilisé pour analyser et transformer le code dans Java, C, C ++, JavaScript, Cobol et de nombreux autres langueurs).

Si vous optimisez sur Open Source, ce n'est pas l'outil souhaité.


0 commentaires

1
votes

Je recommande au moins de regarder le projet Linqoverc # hébergé sur codeProject.com.

URL: http: //www.codeplex.com/linqovercshaarp

Il y a des problèmes connus (mineurs?), et celui-ci n'a pas été mis à jour depuis Jan 2008 (qui pourrait Soyez un très gros problème), mais le code source d'un analyseur (rapide et 100% .NET) C # 3.0 est là pour la prise.

Mes choses préférées à propos de cet analyseur: < ol>

  • Il peut charger un fichier de projet Visual Studio (CSPROJ) à peu près hors de la boîte et analyser l'ensemble du shebang (y compris les références d'assemblage).

  • Vous pouvez interroger, énumérer, filtrer, etc., le modèle d'objet analysé (arbre) à l'aide de LINQ. Que cela rend presque trivial de traverser de haut en bas et de tout autour de ce que vous analysez.

    Voici un exemple de requête LINQ pour rechercher une variable ou un paramètre dans une méthode, où la nom de variable = variablename: xxx


  • 0 commentaires