From: Larry Evans (cppljevans_at_[hidden])
Date: 2004-02-28 09:24:05


On 02/28/2004 08:08 AM, Larry Evans wrote:
> On 02/27/2004 11:01 PM, Brian McNamara wrote:
[snip]
One thing I forgot to emphasize is that this design pattern seeks
to, in essence, replace a tree<A>, with a tree<B> where A and B
represent inheritance heirarchies. In addition, the instance
of tree<A> transformed should remain untouched. For example,
the tree<A> in the regexp_first example is the regexp_tree_top
and tree<B> is regexp_first_top. The whole idea is to perform
passes over tree<A>, adding information (via attributes attached
to nodes of tree<A> by a pointer (e.g. regexp_tree_top::my_subtype )
used by subsequent passes (regexp_nilable_top::my_nilable is used
to calculate regexp_first_top::my_first), and then to remove
the information when it's no longer needed.

Hope that clarifies things.