Boost logo

Boost :

From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2008-01-15 08:27:28


> I'm posting an early version of a library for manipulating
> hierarchical data structures, for example the parse trees
> that are produced by Spirit2. The library enables traversals,
> and local modifications of complex data structures, without
> the need to implement large amounts of repetitive traversal
> code. The library is in a very early state, but has a pretty
> large introduction and quick start guide, which (hopefully)
> will help get people started with the library. Formal
> documentation is unfortunately non-existent at this point.
>
> The library is based on techniques from the Haskell
> community, links to relevant papers are provided in the documentation.
>
> The library is intended to play well with the rest of Boost,
> it already contains support for structures built with
> Boost.Optional and Boost.Variant, and Boost.Fusion, and will
> support other Boost libraries in future releases. The library
> makes heavy use of function objects, and is intended to work
> with Boost.Lambda, Phoenix, and other function object
> libraries in Boost.

I second the expressed opinion that this library is a very important piece
of work and I'm looking forward to having it available.

IIUC, the traversal library is designed to help traversing arbitrary data
structures and to apply local _value_ changes. My question is:
Is the used concept extensible in a way allowing for _structural_ changes of
the traversed data structure? This would make it usable for tree
transformations, which would be especially interesting if used with
Spirit.Qi (parsing) and Spirit.Karma (generation).

Regards Hartmut


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