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 :

Boost::Spirit classic (Parser)


Sujet :

Boost C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Boost::Spirit classic (Parser)
    Bonjour à tous,

    Je travail actuellement sur un parser pour un jeu d'échec format PGN, à l'aide de Spirit classique. J'ai donc fais une grammaire mais le problème pour l'instant vient de de la fonction "parse" et du typage de ses arguments.

    Voici l'erreur à la compile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    error: no matching function for call to ‘parse(pgn::iterator_t&, pgn::iterator_t&, pgn::Parser (&)(), boost::spirit::classic::rule<boost::spirit::classic::scanner<boost::spirit::classic::file_iterator<char> > >&)’
    src/Parse/loader.cc:22:77: note: candidates are:
    /usr/include/boost/spirit/home/classic/core/impl/parser.ipp:23:5: note: template<class IteratorT, class DerivedT> boost::spirit::classic::parse_info<IteratorT> boost::spirit::classic::parse(const IteratorT&, const IteratorT&, const boost::spirit::classic::parser<DerivedT>&)
    /usr/include/boost/spirit/home/classic/core/impl/parser.ipp:42:5: note: template<class CharT, class DerivedT> boost::spirit::classic::parse_info<const CharT*> boost::spirit::classic::parse(const CharT*, const boost::spirit::classic::parser<DerivedT>&)
    /usr/include/boost/spirit/home/classic/core/scanner/impl/skipper.ipp:148:5: note: template<class IteratorT, class ParserT, class SkipT> boost::spirit::classic::parse_info<IteratorT> boost::spirit::classic::parse(const IteratorT&, const IteratorT&, const boost::spirit::classic::parser<ParserT>&, const boost::spirit::classic::parser<SkipT>&)
    /usr/include/boost/spirit/home/classic/core/scanner/impl/skipper.ipp:165:5: note: template<class CharT, class ParserT, class SkipT> boost::spirit::classic::parse_info<const CharT*> boost::spirit::classic::parse(const CharT*, const boost::spirit::classic::parser<ParserT>&, const boost::spirit::classic::parser<SkipT>&)
    Si vous avez une idée, je suis preneur merci !

  2. #2
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Bonjour,

    C'est extrêmement difficile avec spirit de trouver l’origine d’une erreur sans un exemple complet minimale compilable reproduisant le problème.
    Comme expliqué sur le site officiel de Spirit :
    Citation Envoyé par Getting Help with Spirit
    In order to make providing you with technical support as easy as possible on the volunteers who might answer your questions, please provide a minimal test case that exhibits your problem.

    Your test case should be in the form of a single source file complete with a main() that triggers the parsing or generation function that illustrates the problem. The input should be contained in the same source file. Ideally, you should include logic to report whether the result is what’s expected. For example, if your parsing should produce certain values, then test for those values and report whether they were found.
    Au fait par curiosité pourquoi Spirit Classic ? Il n'est plus maintenu et a été remplacé par la version actuelle de spirit depuis au bon bout de temps maintenant.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Résolu]
    Je suis parti sur Spirit Classic sans le savoir dès le début, je découvre la bibliothèque et j'avais pas remarqué les grands changements entre les version :s. De plus, beaucoup d'aides/tuto sur le net sont "out of date". Et je trouve Spirit Classic assez simple d'utilisation pour un petit parser PGN.

    PS: J'ai résolu le problème de compilation, c'était pas compliqué, j'avais mal instancié le parser. Tout cet amas d'erreur juste pour ça^^.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boost::Spirit - Parser pour listes énumérées
    Par pbartolo dans le forum Boost
    Réponses: 2
    Dernier message: 05/11/2009, 10h39
  2. boost::spirit trace et avancement.
    Par 3DArchi dans le forum Boost
    Réponses: 3
    Dernier message: 13/10/2008, 09h37
  3. [BOOST.Spirit] Absence génante
    Par Invité2 dans le forum Boost
    Réponses: 27
    Dernier message: 10/10/2008, 12h45
  4. [BOOST.Spirit] Types de bases inéxistant
    Par Invité2 dans le forum Boost
    Réponses: 4
    Dernier message: 14/09/2008, 21h31
  5. Comment utiliser Boost::spirit ?
    Par kimels dans le forum Boost
    Réponses: 8
    Dernier message: 11/06/2008, 19h04

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