Пример #1
0
        /// <summary>
        /// Compiles the program in memory and returns either the generated assembly or the errors.
        /// </summary>
        /// <param name="outputType">Defines the type of assembly to generate</param>
        /// <param name="assemblyName">Defines the name of the assembly to generate.</param>
        /// <param name="assemblyVersion">Defines the version of the assembly.</param>
        /// <param name="assemblyCopyright">Defines the copyright of the assembly.</param>
        /// <param name="releaseMode">Defines whether the compiler must build in release mode or debug mode.</param>
        /// <returns>Returns a <seealso cref="CompilerResult"/>.</returns>
        private CompilerResult Build(BaZicCompilerOutputType outputType, string assemblyName, string assemblyVersion, string assemblyCopyright, bool releaseMode)
        {
            LoadAssemblies();

            if (_releaseModeRuntime == null)
            {
                _releaseModeRuntime = new CompiledProgramRunner(this, Program, _assemblySandbox);
            }

            return(_releaseModeRuntime.Build(outputType, assemblyName, assemblyVersion, assemblyCopyright, releaseMode));
        }
Пример #2
0
        /// <summary>
        /// Should be called when the object is being disposed.
        /// </summary>
        /// <param name="disposing">Was Dispose() called or did we get here from the finalizer?</param>
        private void OnDispose(bool disposing)
        {
            if (disposing)
            {
                if (!IsDisposed)
                {
                    if (State == BaZicInterpreterState.Running || State == BaZicInterpreterState.Idle || (_mainInterpreterTask != null && _mainInterpreterTask.Status == TaskStatus.Running))
                    {
                        Stop(true);
                    }

                    FreePauseModeWaiter();
                    _mainInterpreterTask?.Dispose();
                    _stateChangedHistory.Clear();
                    _releaseModeRuntime = null;
                    DebugInfos          = null;
                }
            }

            IsDisposed = true;
        }