Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }