Ich versuche zu lernen boost::spirit
. Als Beispiel versuche ich eine Folge von Wörtern in eine vector<string>
zu parsen. Ich versuchte dies:Wie boost :: spirit verwenden, um eine Folge von Wörtern in einen Vektor zu analysieren?
#include <boost/spirit/include/qi.hpp>
#include <boost/foreach.hpp>
namespace qi = boost::spirit::qi;
int main() {
std::vector<std::string> words;
std::string input = "this is a test";
bool result = qi::phrase_parse(
input.begin(), input.end(),
+(+qi::char_),
qi::space,
words);
BOOST_FOREACH(std::string str, words) {
std::cout << "'" << str << "'" << std::endl;
}
}
das gibt mir diese Ausgabe:
'thisisatest'
aber ich wollte die folgende Ausgabe, wobei jedes Wort einzeln abgestimmt ist:
'this'
'is'
'a'
'test'
Wenn möglich, ich Ich möchte vermeiden, dass ich für diesen einfachen Fall meine eigene Unterklasse qi::grammar
definieren muss.
gut erklärt, +1 – sehe