From dougo@ccs.neu.edu Mon Jan 22 07:09:15 2001 X-UIDL: 778edaf2668dc16607045a2e37685f62 Return-Path: Received: from vega.ccs.neu.edu (dougo@vega.ccs.neu.edu [129.10.116.206]) by amber.ccs.neu.edu (8.10.0.Beta10/8.10.0.Beta10) with ESMTP id f0MC9FX02839 for ; Mon, 22 Jan 2001 07:09:15 -0500 (EST) Received: (from dougo@localhost) by vega.ccs.neu.edu (8.10.0.Beta10/8.10.0.Beta10) id f0MC9DZ01956; Mon, 22 Jan 2001 07:09:13 -0500 (EST) From: Doug Orleans Message-ID: <14956.8936.233174.820151@vega.ccs.neu.edu> Date: Mon, 22 Jan 2001 07:09:12 -0500 (EST) To: Karl Lieberherr Subject: Re: DJ question In-Reply-To: <200012182014.eBIKEk407706@gomeisa.ccs.neu.edu> References: <200012182014.eBIKEk407706@gomeisa.ccs.neu.edu> X-Mailer: VM 6.72 under 21.1 (patch 3) "Acadia" XEmacs Lucid X-Face: (4D-osoq?}7M3\EgvbWKo Hi Doug: > > why does the traversal go into Compound > although it is bypassed? > The D and E should not be reported as not unique. > > /proj/adaptive2/course/com1205/f00/project/martino/f/bug > -- Karl > > DemeterJ version 0.8.2 > Copyright (c) 2000 Northeastern University > Reading project file g.prj... > Running the test... > Element B is not unique. > Element G is not unique. > Element D is not unique. > Element E is not unique. > Element Term is not unique. > Element Factor is not unique. > done The strategy from Statement through Expression bypassing Compound to NonTerminal doesn't exclude the path Statement,expression,Expression, ~,Term, ~,Factor, =,Compound, expression,Expression, nonterminal,NonTerminal because the "bypassing Compound" clause only applies to the second edge in the strategy graph, i.e. Expression -> NonTerminal. Because of the loop in the classgraph, Statement -> Expression can go through a Compound. You can see this by printing out the traversal graph (which is in general the best way to debug this kind of problem). If you add another bypassing clause, then it works, i.e. from Statement bypassing Compound through Expression bypassing Compound to NonTerminal --Doug