@Override
 protected void visitRoutine(Routine routine) {
   this.filemanGlobals = new HashSet<String>();
   this.filemanCalls = new HashSet<String>();
   this.currentRoutineName = routine.getName();
   super.visitRoutine(routine);
 }
 @Override
 protected void visitInnerEntryList(InnerEntryList entryList) {
   if (entryList != this.lastInnerEntryList) {
     this.lastInnerEntryList = entryList;
     super.visitInnerEntryList(entryList);
   }
 }
 @Override
 protected void visitExtrinsic(Extrinsic extrinsic) {
   super.visitExtrinsic(extrinsic);
   this.updateFanout(extrinsic.getFanoutId(), extrinsic.getCallArguments());
 }
 @Override
 protected void visitAtomicDo(AtomicDo atomicDo) {
   super.visitAtomicDo(atomicDo);
   this.updateFanout(atomicDo.getFanoutId(), atomicDo.getCallArguments());
 }