Hi Carl: You are right, parsers usually create tree objects for you (no directed acyclic object graphs and no cyclic object graphs). That is what the parsers created by Demeter/Java using Java/CC do. I agree with your analysis of possibilities below. My favorite way to link the objects is to traverse to the objects that contain the objects to be modified as immediate objects. You cannot traverse to the object to be replaced; you need to stop "one object earlier". This is not as structure-shy as it could be. -- Karl ================== Hello, It is my impression that Structure-Shy Object as studied and the parsing facility of Demeter/Java can only handle parsing of a single object and its aggregated parts (which may be objects). That is, there is no facility for parsing in one instance of an object and allowing it to be referenced multiple times. For example, if a company has employees who are people and people have spouses who are also people, there is no way for Demeter/Java to create a parser that will allow a single instatiation of a person object that is both a spouse of an employee person and an employee. This is important to my project (and I would believe to any interesting OO system). The options that I see are to parse everything in and than write your own code to go through the objects of the system and change your references so that if two objects are "equal" than make all links to just one of the objects. Or, perhaps use more capabilities of the JavaCC to somehow identify equal objects and reference existing objects rather than creating new ones. Am I correct in my understanding? Are there other options I have missed? Thanks, Carl Carl R. Putscher putscher@us.ibm.com