Bonjour à tous,

J'essaie actuellement de créer un parseur en utilisant Boost::Spirit, mais je rencontre des problèmes pour récupérer la valeur d'un token matché. J'ai tenté d'utiliser la fonction assign_a pour affecter la valeur à un string pour l'utiliser ensuite, mais ça ne semble pas marcher.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
struct Grammar : public boost::spirit::grammar<Grammar>
{
  template <typename ScannerT>
  struct definition
  {
    std::string s;
    definition (Grammar const&)
    {
      string = ('"' >> *(boost::spirit::anychar_p - '"')
                >> '"');
      tag_value = string
        [boost::spirit::assign_a (s)]
        [boost::bind (&load::id, s)];
    }
  };
};
avec load::id qui ne fait que afficher s.

Quelqu'un pourrait m'éclairer sur la marche à suivre pour récupérer la valeur du string en question ?

Merci d'avance.