Boost logo

Boost :

From: Hartmut Kaiser (hartmutkaiser_at_[hidden])
Date: 2003-08-31 13:29:36

James W. Walker wrote:

> Thanks, that helps, but I still have a question or two. The FAQ says
> "it is best to avoid rules as arguments to the parse functions", but
> then what are rules good for? How else am I going to do any
> nontrivial parsing?

Use grammars (see here: This is the best way
to implement non-trivial parsers with Spirit.

> I've been looking at the Spirit article in the C/C++ Users
> Journal. It
> contains a code example that defines rule<> expression, and
> later says
> if (parse( str, expression, space ).full)... I supposed that "space"
> was a typo for "space_p". How do you reconcile that code sample with
> the FAQ?

The article describes Spirit V1.2 (it was written nearly two years ago).

Spirit has undergone some minor interface changes since then (all
predefined parser objects have a '_p' appended).
Another change was a slight change of the scanner<> idiom, which lead to
the subtleties you've encountered. Generally the CUJ article is a good
starting point, but nevertheless you should have a look at the current
doc's and, may be, at the samples contained with Spirit.

Regrads Hartmut

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