Esempio n. 1
0
        /// <summary>
        ///   Optional initialization for the Evaluator.
        /// </summary>
        /// <remarks>
        ///  Initializes the Evaluator with the command line
        ///  options that would be processed by the command
        ///  line compiler.  Only the first call to
        ///  InitAndGetStartupFiles or Init will work, any future
        ///  invocations are ignored.
        ///
        ///  You can safely avoid calling this method if your application
        ///  does not need any of the features exposed by the command line
        ///  interface.
        ///
        ///  This method return an array of strings that contains any
        ///  files that were specified in `args'.
        /// </remarks>
        public static string [] InitAndGetStartupFiles(string [] args)
        {
            lock (evaluator_lock){
                if (inited)
                {
                    return(new string [0]);
                }

                driver = Driver.Create(args, false, new ConsoleReportPrinter());
                if (driver == null)
                {
                    throw new Exception("Failed to create compiler driver with the given arguments");
                }

                RootContext.ToplevelTypes = new ModuleContainer(ctx, true);

                driver.ProcessDefaultConfig();

                ArrayList startup_files = new ArrayList();
                foreach (CompilationUnit file in Location.SourceFiles)
                {
                    startup_files.Add(file.Path);
                }

                CompilerCallableEntryPoint.Reset();
                RootContext.ToplevelTypes = new ModuleContainer(ctx, true);

                driver.LoadReferences();
                RootContext.EvalMode = true;
                inited = true;

                return((string [])startup_files.ToArray(typeof(string)));
            }
        }
Esempio n. 2
0
		/// <summary>
		///   Optional initialization for the Evaluator.
		/// </summary>
		/// <remarks>
		///  Initializes the Evaluator with the command line options
		///  that would be processed by the command line compiler.  Only
		///  the first call to Init will work, any future invocations are
		///  ignored.
		///
		///  You can safely avoid calling this method if your application
		///  does not need any of the features exposed by the command line
		///  interface.
		/// </remarks>
		public static void Init (string [] args)
		{
			lock (evaluator_lock){
				if (inited)
					return;
				
				RootContext.Version = LanguageVersion.Default;
				driver = Driver.Create (args, false);
				if (driver == null)
					throw new Exception ("Failed to create compiler driver with the given arguments");
				
				driver.ProcessDefaultConfig ();
				CompilerCallableEntryPoint.Reset ();
				Driver.LoadReferences ();
				RootContext.EvalMode = true;
				inited = true;
			}
		}
Esempio n. 3
0
        /// <summary>
        ///   Optional initialization for the Evaluator.
        /// </summary>
        /// <remarks>
        ///  Initializes the Evaluator with the command line options
        ///  that would be processed by the command line compiler.  Only
        ///  the first call to Init will work, any future invocations are
        ///  ignored.
        ///
        ///  You can safely avoid calling this method if your application
        ///  does not need any of the features exposed by the command line
        ///  interface.
        /// </remarks>
        public static void Init(string [] args)
        {
            lock (evaluator_lock){
                if (inited)
                {
                    return;
                }

                RootContext.Version = LanguageVersion.Default;
                driver = Driver.Create(args, false);
                if (driver == null)
                {
                    throw new Exception("Failed to create compiler driver with the given arguments");
                }

                driver.ProcessDefaultConfig();
                CompilerCallableEntryPoint.Reset();
                Driver.LoadReferences();
                RootContext.EvalMode = true;
                inited = true;
            }
        }
Esempio n. 4
0
		/// <summary>
		///   Optional initialization for the Evaluator.
		/// </summary>
		/// <remarks>
		///  Initializes the Evaluator with the command line
		///  options that would be processed by the command
		///  line compiler.  Only the first call to
		///  InitAndGetStartupFiles or Init will work, any future
		///  invocations are ignored.
		///
		///  You can safely avoid calling this method if your application
		///  does not need any of the features exposed by the command line
		///  interface.
		///
		///  This method return an array of strings that contains any
		///  files that were specified in `args'.
		/// </remarks>
		public static string [] InitAndGetStartupFiles (string [] args)
		{
			lock (evaluator_lock){
				if (inited)
					return new string [0];
				
				driver = Driver.Create (args, false, new ConsoleReportPrinter ());
				if (driver == null)
					throw new Exception ("Failed to create compiler driver with the given arguments");

				ctx = driver.ctx;

				RootContext.ToplevelTypes = new ModuleCompiled (ctx, true);
				
				driver.ProcessDefaultConfig ();

				var startup_files = new List<string> ();
				foreach (CompilationUnit file in Location.SourceFiles)
					startup_files.Add (file.Path);
				
				CompilerCallableEntryPoint.Reset ();
				RootContext.ToplevelTypes = new ModuleCompiled (ctx, true);
				var ctypes = TypeManager.InitCoreTypes ();

				ctx.MetaImporter.Initialize ();
				driver.LoadReferences ();
				TypeManager.InitCoreTypes (ctx, ctypes);
				TypeManager.InitOptionalCoreTypes (ctx);

				RootContext.EvalMode = true;
				inited = true;

				return startup_files.ToArray ();
			}
		}
Esempio n. 5
0
		/// <summary>
		///   Optional initialization for the Evaluator.
		/// </summary>
		/// <remarks>
		///  Initializes the Evaluator with the command line
		///  options that would be processed by the command
		///  line compiler.  Only the first call to
		///  InitAndGetStartupFiles or Init will work, any future
		///  invocations are ignored.
		///
		///  You can safely avoid calling this method if your application
		///  does not need any of the features exposed by the command line
		///  interface.
		///
		///  This method return an array of strings that contains any
		///  files that were specified in `args'.
		/// </remarks>
		public static string [] InitAndGetStartupFiles (string [] args)
		{
			lock (evaluator_lock){
				if (inited)
					return new string [0];
				
				driver = Driver.Create (args, false, new ConsoleReportPrinter ());
				if (driver == null)
					throw new Exception ("Failed to create compiler driver with the given arguments");

				RootContext.ToplevelTypes = new ModuleContainer (ctx, true);
				
				driver.ProcessDefaultConfig ();

				ArrayList startup_files = new ArrayList ();
				foreach (CompilationUnit file in Location.SourceFiles)
					startup_files.Add (file.Path);
				
				CompilerCallableEntryPoint.Reset ();
				RootContext.ToplevelTypes = new ModuleContainer (ctx, true);

				driver.LoadReferences ();
				RootContext.EvalMode = true;
				inited = true;

				return (string []) startup_files.ToArray (typeof (string));
			}
		}