code: @Override
      protected GeneratedData genVdmToTargetLang(List<IRStatus<PIR>> statuses) throws AnalysisException {
          GeneratedData r = new GeneratedData();
          try {
              // Apply transformations
              for (IRStatus<PIR> status : statuses) {
                  // make init expression an op
                  StateInit stateInit = new StateInit(getInfo());
                  generator.applyPartialTransformation(status, stateInit);
  
                  // transform away any recursion cycles
                  GroupMutRecs groupMR = new GroupMutRecs();
                  generator.applyTotalTransformation(status, groupMR);
  
                  if (status.getIrNode() instanceof AModuleDeclIR) {
                      AModuleDeclIR cClass = (AModuleDeclIR) status.getIrNode();
                      // then sort remaining dependencies
                      SortDependencies sortTrans = new SortDependencies(cClass.getDecls());
                      generator.applyPartialTransformation(status, sortTrans);
                  }
              }
  
              r.setClasses(prettyPrint(statuses));
          } catch (org.overture.codegen.ir.analysis.AnalysisException e) {
              throw new AnalysisException(e);
          }
          return r;
  
      }
docs: Main entry point into the Isabelle Translator component. Takes an AST and returns corresponding Isabelle Syntax.
  
  @param statuses The IR statuses holding the nodes to be code generated.
  @return The generated Isabelle syntax
  @throws AnalysisException