コード例 #1
0
ファイル: PhpCompiler.CLR.cs プロジェクト: jiahao42/weverca
        /// <summary>
        /// Performs the compilation.
        /// </summary>
        /// <param name="parameters">Parameters that already contain the source files/streams to compile.</param>
        /// <param name="options">The options specified by CodeCom user.</param>
        /// <returns>The compiler results.</returns>
        private CompilerResults /*!*/ Compile(CompilationParameters /*!*/ parameters, CompilerParameters /*!*/ options)
        {
            // translate options to parameters
            SetupCompilerParameters(parameters, options);

            // set up compiler results
            CompilerResults  results    = new CompilerResults(options.TempFiles); // J: SecurityAction.LinkDemand, "FullTrust"
            CodeDomErrorSink error_sink = new CodeDomErrorSink(results);

            results.Output.Add("Phalanger - the PHP Language Compiler - commencing compilation in a separate appdomain");
            results.Output.Add("Source files to compile:");
            for (int i = 0; i < parameters.SourcePaths.Count; i++)
            {
                results.Output.Add(parameters.SourcePaths[i].ToString());
            }

            // compile the files/streams in a separate appdomain
            AppCompilerStack.Compile(error_sink, parameters);

            // set up the compiler results
            results.PathToAssembly            = parameters.OutPath.ToString();
            results.NativeCompilerReturnValue = (results.Errors.HasErrors ? 1 : 0);

            // J: obsolete, FullTrust demanded earlier
            //new SecurityPermission(SecurityPermissionFlag.ControlEvidence).Assert();
            //try
            //{
            //    results.Evidence = options.Evidence;   // J: SecurityAction.LinkDemand, "FullTrust" // same as CompilerResults above
            //}
            //finally
            //{
            //    CodeAccessPermission.RevertAssert();
            //}

            return(results);
        }
コード例 #2
0
ファイル: PhpCompiler.CLR.cs プロジェクト: dw4dev/Phalanger
		/// <summary>
		/// Performs the compilation.
		/// </summary>
		/// <param name="parameters">Parameters that already contain the source files/streams to compile.</param>
		/// <param name="options">The options specified by CodeCom user.</param>
		/// <returns>The compiler results.</returns>
		private CompilerResults/*!*/ Compile(CompilationParameters/*!*/ parameters, CompilerParameters/*!*/ options)
		{
			// translate options to parameters
			SetupCompilerParameters(parameters, options);

			// set up compiler results
            CompilerResults results = new CompilerResults(options.TempFiles);   // J: SecurityAction.LinkDemand, "FullTrust"
			CodeDomErrorSink error_sink = new CodeDomErrorSink(results);

			results.Output.Add("Phalanger - the PHP Language Compiler - commencing compilation in a separate appdomain");
			results.Output.Add("Source files to compile:");
			for (int i = 0; i < parameters.SourcePaths.Count; i++)
			{
				results.Output.Add(parameters.SourcePaths[i].ToString());
			}

			// compile the files/streams in a separate appdomain
			AppCompilerStack.Compile(error_sink, parameters);

			// set up the compiler results
			results.PathToAssembly = parameters.OutPath.ToString();
			results.NativeCompilerReturnValue = (results.Errors.HasErrors ? 1 : 0);

            // J: obsolete, FullTrust demanded earlier
            //new SecurityPermission(SecurityPermissionFlag.ControlEvidence).Assert();
            //try
            //{
            //    results.Evidence = options.Evidence;   // J: SecurityAction.LinkDemand, "FullTrust" // same as CompilerResults above
            //}
            //finally
            //{
            //    CodeAccessPermission.RevertAssert();
            //}

			return results;
		}