Boost logo

Boost :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2004-05-05 10:43:49

Joel de Guzman wrote:

>Arkadiy Vertleyb wrote:
>>"Joel de Guzman" wrote
>>>I'd like
>>>to start a new CVS branch for typeof/auto experimentations. This would
>>>involve not only Spirit but Phoenix as well. I have a feeling that this
>>>will take more than a week or two. Yet, I'm sure that the results would
>>>be gratifying, at the very least.
>>Actually, I do think that this should be done fast, since it is intended
>>close the gap (maybe a year or two) until the real typeof becomes
>Agreed. Let's do it!

I would also like to help, as I think that Spirit is an awesome library/tool
and would benefit greatly with auto/typeof support.

One question though: I have a parser where I have created several external
grammars to help modularize the grammar and employ the trick suggested in
the techniques section (c.f. sub-grammar):

      using namespace boost::spirit;

      struct identifier_parser: public sub_grammar< identifier_parser >
            typedef sequence_t
               alternative< alpha_parser, chlit<> >,
               kleene_alternative_t< alnum_parser, chlit<> >::type
            start_t start;
            inline identifier_parser():
                  ( alpha_p | '_' ) >> *( alnum_p | '_' )
      } identifier;

NOTE: This is using various type construction helpers.

Once you have a (sub-)rule like this, you can use it like:

   rule_t<ScannerT> tagName = !( identifier >> ':' ) >> identifier;

I was wondering if this would cause any major problems when implemented with
the typeof/auto hack (since it could then be implemented as a grammar).


Tired of 56k? Get a FREE BT Broadband connection

Boost list run by bdawes at, gregod at, cpdaniel at, john at