static int Main(string[] args) { log.Info("Processing started."); try { var fso = new FileSystem(); var runner = new PreProcessRunner(fso, new PropertyManager(fso), new TokenisationRunner(fso, new Tokeniser())); runner.Run(args); log.Info("Processing complete."); return EXIT_CODE_OK; } catch (Exception ex) { log.Error(ex); log.Error(ex.StackTrace); return EXIT_CODE_ERROR; } }