throws ParseError, IOException
throws IOException
  public void selectTifs(String tool)    throws ParseError, IOException    {      ATermList list = tifs;      AFun fun = factory.makeAFun(tool, 0, false);      ATerm T = factory.makePlaceholder(factory.makeAppl(fun));      while(!list.isEmpty()) {	ATermAppl appl = (ATermAppl)list.getFirst();	if (!appl.getArguments().isEmpty() && appl.getName().startsWith("rec-") &&	   appl.getArguments().getFirst().equals(T)) {	  found_one = true;	  if (appl.getName().equals("rec-do")) {	    appl = (ATermAppl)appl.getArguments().getNext().getFirst();	    appl = normalize(appl);	    SpecOrderVector v = (SpecOrderVector)doEvents.get(appl.getName());	    if (v == null) {	      v = new SpecOrderVector();	      doEvents.put(appl.getName(), v);	    }	    v.insert(appl);	  } else if (appl.getName().equals("rec-eval")) {	    appl = (ATermAppl)appl.getArguments().getNext().getFirst();	    appl = normalize(appl);	    SpecOrderVector v = (SpecOrderVector)evalEvents.get(appl.getName());	    if (v == null) {	      v = new SpecOrderVector();	      evalEvents.put(appl.getName(), v);	    }	    v.insert(appl);	  } else {	    // Dump first argument (<tool>)	    AFun oldfun = appl.getAFun();	    AFun newfun = factory.makeAFun(oldfun.getName(), oldfun.getArity()-1,					   oldfun.isQuoted());	    appl = factory.makeAppl(newfun, appl.getArguments().getNext());	    appl = normalize(appl);	    SpecOrderVector v = (SpecOrderVector)otherEvents.get(appl.getName());	    if (v == null) {	      v = new SpecOrderVector();	      otherEvents.put(appl.getName(), v);	    }	    v.insert(appl);	  	  }	}	list = list.getNext();      }    }