/// <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))); } }
/// <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; } }
/// <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; } }
/// <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 (); } }
/// <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)); } }