docs: public void parseAndEmit(String srcPath, final String destDir) {    	
      	final String version = new Version().getVersion();
      	logger.info("jADT version " + version + ".");
      	logger.info("Will read from source " + srcPath);
      	logger.info("Will write to destDir " + destDir);
     	
          final List<? extends Source> sources = sourceFactory.createSources(srcPath);
          for (Source source : sources) {
              final List<UserError> errors = new ArrayList<UserError>();
                   
              final ParseResult result = parser.parse(source);
              for (SyntaxError error : result.errors) {
                  errors.add(UserError._Syntactic(error));
              }               
              final List<SemanticError> semanticErrors = checker.check(result.doc);
              for (SemanticError error : semanticErrors) {
                  errors.add(UserError._Semantic(error));
              }            
              if (!errors.isEmpty()) {
                  throw new JADTUserErrorsException(errors);
              }
              emitter.emit(factoryFactory.createSinkFactory(destDir), result.doc);
          }
      }