[spirit-karma] skipping tokens while generation

Hello *, I am somehow stuck when trying to skip tokens to be generated. My configuration is boost 1.47 and visual c++ 2010. I also do not understand how some mechanics are intended to work. Example 1: Lets say I have a string: /// And I want my generator to generate: / from it or if the string is not '///' leave it as it is. So I wrote: using namespace std; string result; typedef std::back_insert_iterator<string> oiter_t; oiter_t out(result); string input = "///"; namespace k=karma; k::generate(out, &k::string("///") << "/" | k::string, input); And that works fine. Example 2: Now I would like to the slash to be a dynamic part, so I go ahead and define a rule: string root("/"); k::rule<oiter_t, std::string()> repeating_slash = +k::lit(root); k::generate(out, &repeating_slash << "/" | k::string, input); Here the generate never returns (infinite loop???).... Next test: Example 3: use in the rule instead of k::lit a k::string. This does not compile. Why? I was going through the docs over and over again but somehow I miss smth. Many thanks, Ovanes
participants (1)
-
Ovanes Markarian