IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Boost C++ Discussion :

Fonctionnalités de Boost::Wave


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 33
    Par défaut Fonctionnalités de Boost::Wave
    Bonjour,

    Je cherche un moyen de parser du code C++ et C++/CLI, pour en extraire des informations tel que les classes declarées, leurs methodes, attributs ...

    Après quelques recherches sur les possibilités de trouver un parseur servant mes besoins, je suis finalement tombé sur boost::spirit qui permet de decrire un parseur, mais avec lequel tout reste à faire. Puis finalement sur Boost::wave, bien que je ne soit pas vraiment sur du service qu'il peut me rendre.

    Pensez vous que wave puisse me rendre le service que j'attend ?

    Etant donné que la doc et les exemples sur Wave sont assez chiches, pourriez-vous m'aiguiller sur la facon de faire, si cela est possible ?

    Ou si vous avez autres choses à me proposer ??

    Merci.

  2. #2
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Bonjour,

    Je travaille actuellement sur un projet d'analyseur de code C++ (voir signature).

    Effectivement, je me sers de boost::spirit pour l'analyse syntaxique, ainsi que de boost::wave pour le preprocessing.

    boost::wave est une implémentation d'un préprocesseur C. Le rôle du préprocesseur C est de résoudre tous ce qui est #define, #if/#else et compagnie, suppression des commentaires, ni plus ni moins.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 33
    Par défaut
    Merci pour la réponse,
    c'est bien ce qu'il m'avait semblait à propos de wave

    Ou en es-tu de ton developpement ?
    Est-ce fonctionnel ? Dans le cas contraire, je suis pret à donner un coup de main, car j'en ai marre de chercher du tout fait ^^'

    Bon le plus simple et que je recupere le code de ton parseur pour y jeter un oeil

  4. #4
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Eh bien… ça avance, mais le chemin est long !

    En C++, l'analyse syntaxique requiert elle-même une analyse sémantique.
    J'ai déjà fait des bouts d'analyse syntaxique. En l'occurrence toute la grammaire est écrite (src/socoa/cpp/grammar.cpp, que j'admire tous les matins au réveil ).
    Je suis en train de travailler sur l'analyse sémantique qui me permettra de compléter l'analyse syntaxique. En particulier, je travaille sur la résolution de nom (associer un nom de variable/type/namespace/… à une déclaration).

    Je te laisse regarder un peu le code source et si tu t'en sens le courage je te donnerai plus de détails
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 33
    Par défaut
    Personnellement, mes petits jeux avec spirit n'ont pas ete tres tres loin, mais sutout à l'epoque je n'avais pas de temps a y consacrer ...

    Si toute la grammaire est ecrite et validée, tu as deja fait un bon travail . Je vais jeter un coup d'oeil, comprendre ce qui a été fait, et voir dans quelle mesure je peux t'aider à avancer sur ce projet.

    Mes petites recherches autour de wave m'ont par ailleurs conduit aupres d'une tentative similaire malheureusement arrétée. Je te met le lien ci dessous, si cela peut te rendre service :
    http://havenith-verlinden.nl/hannibal/

    Je pense que ce genre d'outil est attendu par nombre de personne, et je te souhaite de l'ammener jusqu'au bout.


    Je reprendrai contact avec toi lorsque j'aurai amélioré mes connaissances sur le sujet. En tout cas bon courage !!!

  6. #6
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Je reprendrai contact avec toi lorsque j'aurai amélioré mes connaissances sur le sujet.
    Il faudrait surtout que j'écrive un peu de doc sur le fonctionnement de la lib, ce serait pas du luxe !

    Merci pour ces mots d'encouragement
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

Discussions similaires

  1. installation de boost
    Par heinquoi dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 18/04/2005, 17h20
  2. Installation de boost (librairie)
    Par dj.motte dans le forum Autres éditeurs
    Réponses: 14
    Dernier message: 21/11/2004, 03h11
  3. PostGreSQL et les fonctionnalités spatiales
    Par luta dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/05/2004, 17h29
  4. cherchecomment utiliser boost sous linux
    Par Krost dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 25/02/2004, 22h03
  5. [Fonctionnalités] MSDE
    Par goupil_32x dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/10/2003, 19h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo