Aurora.ScriptEngine.AuroraDotNetEngine.CompilerTools.YPConverter.Compile C# (CSharp) Method

Compile() public method

public Compile ( CompilerParameters parameters, bool isFilePath, string Script ) : CompilerResults
parameters System.CodeDom.Compiler.CompilerParameters
isFilePath bool
Script string
return System.CodeDom.Compiler.CompilerResults
        public CompilerResults Compile(CompilerParameters parameters, bool isFilePath, string Script)
        {
            bool complete = false;
            bool retried = false;
            CompilerResults results;
            do
            {
                lock (YPcodeProvider)
                {
                    if (isFilePath)
                        results = YPcodeProvider.CompileAssemblyFromFile (
                            parameters, Script);
                    else
                        results = YPcodeProvider.CompileAssemblyFromSource(
                        parameters, Script);
                }
                // Deal with an occasional segv in the compiler.
                // Rarely, if ever, occurs twice in succession.
                // Line # == 0 and no file name are indications that
                // this is a native stack trace rather than a normal
                // error log.
                if (results.Errors.Count > 0)
                {
                    if (!retried && (results.Errors[0].FileName == null || results.Errors[0].FileName == String.Empty) &&
                        results.Errors[0].Line == 0)
                    {
                        // System.Console.WriteLine("retrying failed compilation");
                        retried = true;
                    }
                    else
                    {
                        complete = true;
                    }
                }
                else
                {
                    complete = true;
                }
            } while (!complete);
            return results;
        }