
On 05/27/2004 08:04 PM, Joel de Guzman wrote:
Eric Niebler wrote: [snip] and, yes, stored_rule(s) use shared_ptr. So, again, be wary of cycles. I was so eager when Lary Evans hinted at a shared_ptr implementatiion with GC. I'm still so eager! I'm having problems with it. I could upload the files to sandbox; however, I don't think anybody would be eager to debug it.
My reply to a private email from Eric contained:
Well, after I read the recent mention of this problem, I started going back to work on managed_ptr which is Held's policy_ptr with cycle collection. Unfortunately, I'm having problems: <----------------- cd /home/evansl/prog_dev/boost-root.ln/development/libs/managed_ptr/test/ make run /opt/intel_cc_80/bin/icc -c -MMD -g -I/home/evansl/prog_dev/boost-root.ln/development -I/home/evansl/prog_dev/boost-root.ln smart_ptr_test.cpp
... ===>Enter:<refcycle_counted_node_scalar_type>::refcycle_enum_children_test +owner::CTOR(void):overhead=0 ===>Enter:sp_parent=i.as_basis_source() make: *** [run] Interrupt
------------------- I
I'm also working on the deterministic parser. I also described in that reply to Eric the use of a symbol class: class exp_tree:: symbol //Purpose: // Represents "symbols", i.e. // inputs and variables. : public exp_tree::top { public: typedef unsigned id_type ; symbol(id_type a_id) : my_id(a_id) {} ... }; to represent occurences of inputs(terminals) and variables (non-terminals). The my_id serves as an index into a std:vector of right-hand-sides for the variables and as argument to bitset<NumInputs>::test in the case of inputs to test whether the next input from the lexer belongs to the "direction set" for a variable. Currently I'm trying to solve for the first and follow sets which are used to determine the direction set.