id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 11824,[spirit][qi] skip_flag::dont_postskip not working as expected,Daniel Starke ,Joel de Guzman,"Assuming we want to create a primitive which checks if the skip parser is called at least once before the next terminal we need to disable post-skipping for this purpose. However, disabling post-skipping alone will not work if the previous parser failed on a input because all terminals do not revert to the position before the skip parser but just after it. A workaround could be add an and-prediction in front of each terminal but this makes the code unreadable. Attached is a possible patch for spirit qi which changes all terminals to revert to the position before the skip parser in case of a mismatch. Note: This might introduce some performance regression. Example: {{{ string input(""a b""); string::const_iterator first(input.begin()), last(input.end()); phrase_parse(first, last, ((+char_(""a"", ""z"")) > no_skip[&blank]) >> char_, blank, dont_postskip); }}} This will fail to match in the current implementation even though it looks perfectly fine.",Bugs,new,To Be Determined,spirit,Boost 1.59.0,Showstopper,,qi skip post-skip,