Boost logo

Boost :

From: James Kanze (kanze_at_[hidden])
Date: 2002-03-03 09:26:32

Douglas Gregor <gregod_at_[hidden]> writes:

|> > The Spirit parser is not what I am looking for, as it is limited
|> > to recursive-descent parsing, and is hence unsuitable for many
|> > applications (say, parsing a C++ program).

|> As Dave Abrahams already mentioned, several of the better C++
|> parsers uses recursive descent parsing.

Strictly speaking, this isn't true; you cannot parse C++ using recursive
descent. Most C++ are based on a hand written recursive descent parsing
strategy, however, because it is easier to break out of the idiom in
special cases and use ad hoc solutions.

|> This is generally because recursive descent parsers handle context
|> sensitivity and arbitrary lookahead _much_ better than any
|> Yacc-based solution.

Formally, recursive descent doesn't allow arbitrary look ahead at all.
On the other hand, it is far easier to add backtracking to a recursive
descent parser than to any other type -- the results aren't formally
recursive descent, even if the initial analysis and coding are based on
recursive descent.

James Kanze                                mailto:kanze_at_[hidden]
Conseils en informatique orientée objet/
                    Beratung in objektorientierter Datenverarbeitung
Ziegelhüttenweg 17a, 60598 Frankfurt, Germany Tel. +49(0)179 2607481

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