Boost logo

Boost :

Subject: Re: [boost] [spirit] Support for one-pass iterators?
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2009-10-19 09:31:51


Joel de Guzman wrote:
> Andrey Semashev wrote:
>
>> The docs say that the grammar should pass a reference to the starting
>> rule to the base class constructor (qi::grammar specialization). But
>> at this point the rule's constructor has not yet been called. What's
>> more, the base class calls a method on the passed reference.
>
> Where did you get that info? The base class does not call a method on
> the passed reference. That is not correct. It only does so at parse
> time and at that time, everything has already been constructed.

Hmm... I may be misinterpreting what I see at
boost/spirit/home/qi/nonterminal/grammar.hpp:54, in the release branch:

     grammar(
         start_type const& start
       , std::string const& name_ = "unnamed-grammar")
=> : proto::extends<terminal, base_type>(terminal::make(start.alias()))
     , name_(name_)
     {}

Here "start" is a reference to a not yet constructed object.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk