Наследование: System.Exception
 internal int Compile(CompilerParameters options, string partialCmdLine, string[] sourceFiles, string outputFile)
 {
     StreamWriter output = null;
     int num = 0;
     try
     {
         output = new StreamWriter(outputFile) {
             AutoFlush = true
         };
         if (options.IncludeDebugInformation)
         {
             this.PrintOptions(output, options);
             this.debugCommandLine = partialCmdLine;
         }
         VsaEngine engine = null;
         try
         {
             engine = this.CreateAndInitEngine(options, sourceFiles, outputFile, output);
         }
         catch (CmdLineException exception)
         {
             output.WriteLine(exception.Message);
             num = 10;
         }
         catch (Exception exception2)
         {
             output.WriteLine("fatal error JS2999: " + exception2);
             num = 10;
         }
         if (engine == null)
         {
             return num;
         }
         if (options.IncludeDebugInformation)
         {
             StringBuilder builder = new StringBuilder(this.debugCommandLine);
             foreach (string str in sourceFiles)
             {
                 builder.Append(" \"");
                 builder.Append(str);
                 builder.Append("\"");
             }
             this.debugCommandLine = builder.ToString();
             string path = options.TempFiles.AddExtension("cmdline");
             StreamWriter writer2 = null;
             try
             {
                 writer2 = new StreamWriter(path);
                 writer2.WriteLine(this.debugCommandLine);
                 writer2.Flush();
             }
             finally
             {
                 if (writer2 != null)
                 {
                     writer2.Close();
                 }
             }
             StringBuilder builder2 = new StringBuilder();
             builder2.Append(Environment.NewLine);
             builder2.Append(JScriptException.Localize("CmdLine helper", CultureInfo.CurrentUICulture));
             builder2.Append(":");
             builder2.Append(Environment.NewLine);
             builder2.Append("    ");
             builder2.Append(options.TempFiles.TempDir);
             builder2.Append("> jsc.exe @\"");
             builder2.Append(path);
             builder2.Append("\"");
             builder2.Append(Environment.NewLine);
             output.WriteLine(builder2.ToString());
             this.PrintBanner(engine, output);
         }
         try
         {
             if (!engine.Compile())
             {
                 return 10;
             }
             return 0;
         }
         catch (JSVsaException exception3)
         {
             if (exception3.ErrorCode == JSVsaError.AssemblyExpected)
             {
                 if ((exception3.InnerException != null) && (exception3.InnerException is BadImageFormatException))
                 {
                     CmdLineException exception4 = new CmdLineException(CmdLineError.InvalidAssembly, exception3.Message, engine.ErrorCultureInfo);
                     output.WriteLine(exception4.Message);
                 }
                 else if ((exception3.InnerException != null) && (exception3.InnerException is FileNotFoundException))
                 {
                     CmdLineException exception5 = new CmdLineException(CmdLineError.AssemblyNotFound, exception3.Message, engine.ErrorCultureInfo);
                     output.WriteLine(exception5.Message);
                 }
                 else
                 {
                     CmdLineException exception6 = new CmdLineException(CmdLineError.InvalidAssembly, engine.ErrorCultureInfo);
                     output.WriteLine(exception6.Message);
                 }
             }
             else if (exception3.ErrorCode == JSVsaError.SaveCompiledStateFailed)
             {
                 CmdLineException exception7 = new CmdLineException(CmdLineError.ErrorSavingCompiledState, exception3.Message, engine.ErrorCultureInfo);
                 output.WriteLine(exception7.Message);
             }
             else
             {
                 output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
                 output.WriteLine(exception3);
             }
             num = 10;
         }
         catch (Exception exception8)
         {
             output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
             output.WriteLine(exception8);
             num = 10;
         }
     }
     finally
     {
         if (output != null)
         {
             output.Close();
         }
     }
     return num;
 }
 internal int Compile(CompilerParameters options, string partialCmdLine, string[] sourceFiles, string outputFile){
   // write compiler output to a stream with outputFile as the name
   StreamWriter output = null;
   int nativeReturnValue = 0;
   try{
     // Compiler output must be UTF-8 encoded
     output = new StreamWriter(outputFile);
     output.AutoFlush = true;
     if (options.IncludeDebugInformation){
       Debug.Assert(partialCmdLine != null);
       this.PrintOptions(output, options);
       this.debugCommandLine = partialCmdLine;
     }
     VsaEngine engine = null;
     try{
       engine = this.CreateAndInitEngine(options, sourceFiles, outputFile, output);
     }catch(CmdLineException e){
       output.WriteLine(e.Message);
       nativeReturnValue = 10;
     }catch(Exception e){
       output.WriteLine("fatal error JS2999: " + e);
       nativeReturnValue = 10;
     }catch{
       output.WriteLine("fatal error JS2999");
       nativeReturnValue = 10;
     }
     if (engine == null)
       return nativeReturnValue;
     if (options.IncludeDebugInformation){
       // this.debugCommandLine was completed during CreateAndInitEngine (except for filenames)
       StringBuilder fullCmdLine = new StringBuilder(this.debugCommandLine);
       foreach (string sourceFile in sourceFiles){
         fullCmdLine.Append(" \"");
         fullCmdLine.Append(sourceFile);
         fullCmdLine.Append("\"");
       }
       this.debugCommandLine = fullCmdLine.ToString();
       // write the full command line to a response file for debugging
       string responseFileName = options.TempFiles.AddExtension("cmdline");
       StreamWriter responseFile = null;
       try{
         responseFile = new StreamWriter(responseFileName);
         responseFile.WriteLine(this.debugCommandLine);
         responseFile.Flush();
       }finally{
         if (responseFile != null)
           responseFile.Close();
       }
       // show full debug command line in compiler output
       StringBuilder sb = new StringBuilder();
       sb.Append(Environment.NewLine);
       sb.Append(JScriptException.Localize("CmdLine helper", CultureInfo.CurrentUICulture));
       sb.Append(":");
       sb.Append(Environment.NewLine);
       sb.Append("    ");
       sb.Append(options.TempFiles.TempDir);
       sb.Append("> jsc.exe @\"");
       sb.Append(responseFileName);
       sb.Append("\"");
       sb.Append(Environment.NewLine);
       output.WriteLine(sb.ToString());
       this.PrintBanner(engine, output);
     }
     try{
       if (!engine.Compile())
         nativeReturnValue = 10;
       else
         nativeReturnValue = 0;
     }catch(VsaException e){
       // check for expected errors
       if (e.ErrorCode == VsaError.AssemblyExpected){
         if (e.InnerException != null && e.InnerException is System.BadImageFormatException){
           // the reference was not for an assembly
           CmdLineException cmdLineError = new CmdLineException(CmdLineError.InvalidAssembly, e.Message, engine.ErrorCultureInfo);
           output.WriteLine(cmdLineError.Message);
         }else if (e.InnerException != null && e.InnerException is System.IO.FileNotFoundException){
           // the referenced file not valid
           CmdLineException cmdLineError = new CmdLineException(CmdLineError.AssemblyNotFound, e.Message, engine.ErrorCultureInfo);
           output.WriteLine(cmdLineError.Message);
         }else{
           CmdLineException cmdLineError = new CmdLineException(CmdLineError.InvalidAssembly, engine.ErrorCultureInfo);
           output.WriteLine(cmdLineError.Message);
         }
       }else if (e.ErrorCode == VsaError.SaveCompiledStateFailed){
         CmdLineException cmdLineError = new CmdLineException(CmdLineError.ErrorSavingCompiledState, e.Message, engine.ErrorCultureInfo);
         output.WriteLine(cmdLineError.Message);
       }else{
         output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
         output.WriteLine(e);
       }
       nativeReturnValue = 10;
     }catch(Exception e){
       output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
       output.WriteLine(e);
       nativeReturnValue = 10;
     }catch{
       output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
       nativeReturnValue = 10;
     }
   }finally{
     if (output != null)
       output.Close();
   }
   return nativeReturnValue;
 }
        internal int Compile(CompilerParameters options, string partialCmdLine, string[] sourceFiles, string outputFile)
        {
            // write compiler output to a stream with outputFile as the name
            StreamWriter output            = null;
            int          nativeReturnValue = 0;

            try
            {
                // Compiler output must be UTF-8 encoded
                output           = new StreamWriter(outputFile);
                output.AutoFlush = true;
                if (options.IncludeDebugInformation)
                {
                    Debug.Assert(partialCmdLine != null);
                    this.PrintOptions(output, options);
                    this.debugCommandLine = partialCmdLine;
                }
                VsaEngine engine = null;
                try
                {
                    engine = this.CreateAndInitEngine(options, sourceFiles, outputFile, output);
                }
                catch (CmdLineException e)
                {
                    output.WriteLine(e.Message);
                    nativeReturnValue = 10;
                }
                catch (Exception e)
                {
                    output.WriteLine("fatal error JS2999: " + e);
                    nativeReturnValue = 10;
                }
                catch
                {
                    output.WriteLine("fatal error JS2999");
                    nativeReturnValue = 10;
                }
                if (engine == null)
                {
                    return(nativeReturnValue);
                }
                if (options.IncludeDebugInformation)
                {
                    // this.debugCommandLine was completed during CreateAndInitEngine (except for filenames)
                    StringBuilder fullCmdLine = new StringBuilder(this.debugCommandLine);
                    foreach (string sourceFile in sourceFiles)
                    {
                        fullCmdLine.Append(" \"");
                        fullCmdLine.Append(sourceFile);
                        fullCmdLine.Append("\"");
                    }
                    this.debugCommandLine = fullCmdLine.ToString();
                    // write the full command line to a response file for debugging
                    string       responseFileName = options.TempFiles.AddExtension("cmdline");
                    StreamWriter responseFile     = null;
                    try
                    {
                        responseFile = new StreamWriter(responseFileName);
                        responseFile.WriteLine(this.debugCommandLine);
                        responseFile.Flush();
                    }
                    finally
                    {
                        if (responseFile != null)
                        {
                            responseFile.Close();
                        }
                    }
                    // show full debug command line in compiler output
                    StringBuilder sb = new StringBuilder();
                    sb.Append(Environment.NewLine);
                    sb.Append(JScriptException.Localize("CmdLine helper", CultureInfo.CurrentUICulture));
                    sb.Append(":");
                    sb.Append(Environment.NewLine);
                    sb.Append("    ");
                    sb.Append(options.TempFiles.TempDir);
                    sb.Append("> jsc.exe @\"");
                    sb.Append(responseFileName);
                    sb.Append("\"");
                    sb.Append(Environment.NewLine);
                    output.WriteLine(sb.ToString());
                    this.PrintBanner(engine, output);
                }
                try
                {
                    if (!engine.Compile())
                    {
                        nativeReturnValue = 10;
                    }
                    else
                    {
                        nativeReturnValue = 0;
                    }
                }
                catch (VsaException e)
                {
                    // check for expected errors
                    if (e.ErrorCode == VsaError.AssemblyExpected)
                    {
                        if (e.InnerException != null && e.InnerException is System.BadImageFormatException)
                        {
                            // the reference was not for an assembly
                            CmdLineException cmdLineError = new CmdLineException(CmdLineError.InvalidAssembly, e.Message, engine.ErrorCultureInfo);
                            output.WriteLine(cmdLineError.Message);
                        }
                        else if (e.InnerException != null && e.InnerException is System.IO.FileNotFoundException)
                        {
                            // the referenced file not valid
                            CmdLineException cmdLineError = new CmdLineException(CmdLineError.AssemblyNotFound, e.Message, engine.ErrorCultureInfo);
                            output.WriteLine(cmdLineError.Message);
                        }
                        else
                        {
                            CmdLineException cmdLineError = new CmdLineException(CmdLineError.InvalidAssembly, engine.ErrorCultureInfo);
                            output.WriteLine(cmdLineError.Message);
                        }
                    }
                    else if (e.ErrorCode == VsaError.SaveCompiledStateFailed)
                    {
                        CmdLineException cmdLineError = new CmdLineException(CmdLineError.ErrorSavingCompiledState, e.Message, engine.ErrorCultureInfo);
                        output.WriteLine(cmdLineError.Message);
                    }
                    else
                    {
                        output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
                        output.WriteLine(e);
                    }
                    nativeReturnValue = 10;
                }
                catch (Exception e)
                {
                    output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
                    output.WriteLine(e);
                    nativeReturnValue = 10;
                }
                catch
                {
                    output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
                    nativeReturnValue = 10;
                }
            }
            finally
            {
                if (output != null)
                {
                    output.Close();
                }
            }
            return(nativeReturnValue);
        }
Пример #4
0
        internal int Compile(CompilerParameters options, string partialCmdLine, string[] sourceFiles, string outputFile)
        {
            StreamWriter output = null;
            int          num    = 0;

            try
            {
                output = new StreamWriter(outputFile)
                {
                    AutoFlush = true
                };
                if (options.IncludeDebugInformation)
                {
                    this.PrintOptions(output, options);
                    this.debugCommandLine = partialCmdLine;
                }
                VsaEngine engine = null;
                try
                {
                    engine = this.CreateAndInitEngine(options, sourceFiles, outputFile, output);
                }
                catch (CmdLineException exception)
                {
                    output.WriteLine(exception.Message);
                    num = 10;
                }
                catch (Exception exception2)
                {
                    output.WriteLine("fatal error JS2999: " + exception2);
                    num = 10;
                }
                if (engine == null)
                {
                    return(num);
                }
                if (options.IncludeDebugInformation)
                {
                    StringBuilder builder = new StringBuilder(this.debugCommandLine);
                    foreach (string str in sourceFiles)
                    {
                        builder.Append(" \"");
                        builder.Append(str);
                        builder.Append("\"");
                    }
                    this.debugCommandLine = builder.ToString();
                    string       path    = options.TempFiles.AddExtension("cmdline");
                    StreamWriter writer2 = null;
                    try
                    {
                        writer2 = new StreamWriter(path);
                        writer2.WriteLine(this.debugCommandLine);
                        writer2.Flush();
                    }
                    finally
                    {
                        if (writer2 != null)
                        {
                            writer2.Close();
                        }
                    }
                    StringBuilder builder2 = new StringBuilder();
                    builder2.Append(Environment.NewLine);
                    builder2.Append(JScriptException.Localize("CmdLine helper", CultureInfo.CurrentUICulture));
                    builder2.Append(":");
                    builder2.Append(Environment.NewLine);
                    builder2.Append("    ");
                    builder2.Append(options.TempFiles.TempDir);
                    builder2.Append("> jsc.exe @\"");
                    builder2.Append(path);
                    builder2.Append("\"");
                    builder2.Append(Environment.NewLine);
                    output.WriteLine(builder2.ToString());
                    this.PrintBanner(engine, output);
                }
                try
                {
                    if (!engine.Compile())
                    {
                        return(10);
                    }
                    return(0);
                }
                catch (JSVsaException exception3)
                {
                    if (exception3.ErrorCode == JSVsaError.AssemblyExpected)
                    {
                        if ((exception3.InnerException != null) && (exception3.InnerException is BadImageFormatException))
                        {
                            CmdLineException exception4 = new CmdLineException(CmdLineError.InvalidAssembly, exception3.Message, engine.ErrorCultureInfo);
                            output.WriteLine(exception4.Message);
                        }
                        else if ((exception3.InnerException != null) && (exception3.InnerException is FileNotFoundException))
                        {
                            CmdLineException exception5 = new CmdLineException(CmdLineError.AssemblyNotFound, exception3.Message, engine.ErrorCultureInfo);
                            output.WriteLine(exception5.Message);
                        }
                        else
                        {
                            CmdLineException exception6 = new CmdLineException(CmdLineError.InvalidAssembly, engine.ErrorCultureInfo);
                            output.WriteLine(exception6.Message);
                        }
                    }
                    else if (exception3.ErrorCode == JSVsaError.SaveCompiledStateFailed)
                    {
                        CmdLineException exception7 = new CmdLineException(CmdLineError.ErrorSavingCompiledState, exception3.Message, engine.ErrorCultureInfo);
                        output.WriteLine(exception7.Message);
                    }
                    else
                    {
                        output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
                        output.WriteLine(exception3);
                    }
                    num = 10;
                }
                catch (Exception exception8)
                {
                    output.WriteLine(JScriptException.Localize("INTERNAL COMPILER ERROR", engine.ErrorCultureInfo));
                    output.WriteLine(exception8);
                    num = 10;
                }
            }
            finally
            {
                if (output != null)
                {
                    output.Close();
                }
            }
            return(num);
        }