public CompilerResult StartCompiler(ref dynamic languageConfiguration, string submissionId, string fileLocation) { // Инициализируем объект CompilerRefs var cRefs = new CompilerRefs(); // Запуск компилятора с заранее определёнными аргументами var result = cRefs.RunCompiler( (string)languageConfiguration.compiler_path, ((string)languageConfiguration.compiler_arguments).Replace("{%fileLocation%}", fileLocation) ); /* * Выполняем все необходимые действия * в блоке обработки исключений для * исключения возможности возникновения * непредвиденных исключений. */ try { // Получаем информацию о файле исходного кода var fileInfo = new FileInfo(fileLocation); // Указываем полный путь к главному исполняемому файлу result.ExeFullname = fileInfo.DirectoryName + "\\" + (string)languageConfiguration.default_class_name + ".class"; // Проверяем на существование главного класса if (!File.Exists(result.ExeFullname)) { throw new FileNotFoundException(); } // Ошибок не найдено! result.HasErrors = false; } catch (Exception) { /* * В случае любой ошибки считаем что она * произошла по прямой вине пользователя */ result.HasErrors = true; } // Возвращаем результат компиляции return(cRefs.ReturnCompilerResult(result)); }
public CompilerResult StartCompiler(ref dynamic languageConfiguration, string submissionId, string fileLocation) { // Инициализируем объект CompilerRefs var cRefs = new CompilerRefs(); // Будущее местонахождение исполняемого файла var exeLocation = cRefs.GenerateExeFileLocation( fileLocation, submissionId ); // Запуск компилятора с заранее определёнными аргументами var result = cRefs.RunCompiler( (string)languageConfiguration.compiler_path, ((string)languageConfiguration.compiler_arguments).Replace("{%fileLocation%}", fileLocation) ); // Передаём полный путь к исполняемому файлу result.ExeFullname = exeLocation; // Возвращаем результат компиляции return(cRefs.ReturnCompilerResult(result)); }