2012-05-22 5 views
1

Quel niveau d'analyse C++ peut-on effectuer avec Eclipse pour le développement de plug-ins? Je suis intéressé à savoir s'il y a moyen d'accéder aux types de classe C++, aux signatures de méthodes, etc. et de créer une autre classe en utilisant les informations que je rassemble de la classe originale analysée/lue/analysée. J'ai regardé de nombreux outils frontaux C++ tels que EDG, ROSE et CodeBoost, mais ils semblent très impliqués (EDG même si beaucoup disent que c'est le meilleur, c'est un peu hors de mon fourchette de prix), le La prochaine chose à laquelle j'ai pensé était Eclipse puisque je sais qu'elle peut générer l'AST pour Java mais je ne sais pas si elle peut faire la même chose pour C++. J'ai cherché des tutoriels en vain alors je viens ici à la recherche d'aide/conseil.Analyse C++ avec Eclipse

+0

La possibilité d'analyser Java ne signifie rien concernant la capacité d'analyser C++. Cependant, Eclipse a une sorte d'analyseur C++ sous la forme de CDT. AFAIK, l'analyseur est complètement indépendant de celui pour Java, y compris avoir des API radicalement différentes. –

+0

Je serais toujours intéressé par une solution Eclipse à ce problème. Pardonnez mon langage, je ne voulais pas dire que juste parce qu'Eclipse analyse Java, il doit analyser C++, mais j'ai lu que c'est le cas. Je ne suis simplement pas capable de trouver de bons exemples sur la façon d'analyser un fichier source C++. – trigoman

Répondre

0

EDIT 5/23:

GIYF: L'expression "Eclipse analyseur C++" envoyé à Google produit cette ligne à la documentation CDT: http://wiki.eclipse.org/CDT/designs/Overview_of_Parsing

Quelle que soit l'analyseur que vous choisissez, vous trouverez qu'il est impliqué dans le traitement. Ce n'est pas la machine de l'analyseur; son C++ lui-même.

CDT analyse C++. Je ne sais pas si c'est le cas pour C++ 11. Je sais qu'il y a une tentative pour construire des outils de refactoring sur C++, et ce processus produit des résultats apparemment utilisables mais pas géniaux. Un des problèmes est que CDT ne peut apparemment pas modifier ses ASTs; vous devez émettre une sorte de patch de texte et retraiter le code source.

Si vous avez examiné cet ensemble d'analyseurs C++, vous devez considérer notre C++11 front end.

Il produit des AST et des tables de symboles, ainsi qu'une analyse de flux de contrôle. Il peut analyser/transformer le code et régénérer le code source compilable. Et il comprend des machines de transformation polyvalentes qui s'appliquent directement aux arbres. Vous n'êtes pas obligé d'émettre des correctifs et de les analyser.

PS: EDG et Rose sont vraiment les mêmes; Rose utilise simplement EDG. EDG n'a aucune capacité de transformation. Rose l'a mais il semble alambiqué, mais ensuite je suis gâté par mes propres outils.

+0

Comment puis-je obtenir une version de démonstration de ce produit? – trigoman

+0

Contactez la société pour une discussion hors ligne. –