Main { {{ static ClassGraph cg; static public void main(String args[]) throws Exception { CSP cs = CSP.parse(System.in); ClassGraph cgc = new ClassGraph(true, false); cg = new ClassGraph(cgc, "from CSP bypassing -> *,tail,* to *"); cs.process(); } }} } CSP { {{ void process(){ ForcedVisitor fV = new ForcedVisitor(); Main.cg.traverse(this,"from CSP to Variable", fV); } }} } ForcedVisitor { {{ private int relationNumber; private int variablePosition; private boolean forced; public void before(Constraint c){ variablePosition=1; forced=false; relationNumber=c.get_relationNumber(); } public void before(Variable v){ if (!forced) { if (Relation.forced(relationNumber,variablePosition)!=-1){ System.out.println(relationNumber); forced = true; } else variablePosition++; } } }} } Relation { {{ static int forced( int r , int v ){return 1;} }} }