Boost logo

Boost Users :

From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2005-05-17 00:21:05


 
Thorsten Ottosen wrote:

> | > It should be:
> | >
> | > std::string text( "fooooo");
> | > static rule<std::string::iterator> r =
> | > *space_p >> '"' >> (*alnum_p)[assign_a(name)] >> '"';
> | > parse_info<std::string::const_iterator> info =
> |
> | It should be:
> |
> | parse_info<std::string::iterator> info =
> |
> | > boost::spirit::parse( text.begin(), text.end(), r );
>
> I still can't get it to work. Apparently the template
> argument for rule is a scanner...so we cannot pass an
> iterator there, right?
>
> This should be a pretty simple thing...what should I do to
> fix the example?

Doh! You are right, that's my fault, sorry.

I never use rule's with Spirits's API functions (probably for this reason).
I'd suggest to don't use it either. The better way is to switch to grammar's
these are scanner agnostic.

But for the curious souls out there here is the way to write it with rule's
(for the default use case):

    rule<scanner<std::string::iterator, scanner_policies<> > > r = ...;

HTH
Regards Hartmut


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net