From: Hartmut K. <har...@gm...> - 2011-01-24 23:41:49
|
> On 1/25/11 4:22 AM, teajay wrote: > > Le 24/01/2011 19:22, Aaron Graham a écrit : > >> I'm planning to submit this simple parser component to the repository. > >> The opportunities I get to work on this are few and far between, so I > >> thought I'd go ahead and request comments before proceeding further > >> with documentation and tests. > > [snip] > > >> Some questions: > >> > >> 1) Should it be named "iter_advance" or just "advance"? > >> > > > > How about something like skip_chars, skip or jump ? > > skip sounds good! We already have skip[]. Either we overload the existing name (which is possible as currently a plain 'skip' is not allowed, only skip[...] and skip(...)[...]), or we use a different name. I'd prefer a different name, though. What about 'advance'? > >> 2) I considered supporting negative advancement, but there are > >> complications. One of the nice things about the current > >> implementation is that you can't skip over the end (it will fail to > >> parse, keeping the iterator position unmoved, if last/end is > >> reached). Such a thing will be difficult to guarantee if negative > >> advancement is allowed. Currently, the implementation won't prevent > >> you from using negative advancement in the case of random access > >> iterators, but I intend to document that it is unsupported. > > forward skip is good enough, IMO. Yes, and I believe you should check whether the requested advancement is non-negative. > > There's one spot that might make things tricky when using this parser > > that should appear in the docs: it will pre-skip before advancing the > > iterator. It all depends on how the input is formed but this could > > lead to misinterpretations on the start position used when advancing > > the iterator. > > Why do we have to do a pre-skip in the first place? That's exactly my question. I believe this parser component should not pre-skip. Regards Hartmut --------------- http://boost-spirit.com |