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