AddMacros() public method

public AddMacros ( Assembly assembly, bool writeToSink = true ) : bool
assembly System.Reflection.Assembly
writeToSink bool
return bool
示例#1
0
        MacroProcessor NewLemp(int maxExpand)
        {
            var lemp = new MacroProcessor(typeof(LeMP.Prelude.Macros), _sink);

            lemp.AddMacros(typeof(LeMP.Prelude.Les.Macros));
            lemp.AddMacros(typeof(LeMP.StandardMacros));
            lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP"));
            lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude"));
            lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude.Les"));
            lemp.MaxExpansions = maxExpand;
            return(lemp);
        }
示例#2
0
 public TestCompiler(IMessageSink sink, ICharSource text, string fileName = "")
     : base(sink, typeof(LeMP.Prelude.BuiltinMacros), new[] { new InputOutput(text, fileName) })
 {
     Parallel = false;
     MacroProcessor.AddMacros(typeof(LeMP.Prelude.Les.Macros));
     MacroProcessor.AddMacros(typeof(LeMP.Test.TestMacros));
     MacroProcessor.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude"));
     MacroProcessor.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude.Les"));
 }
示例#3
0
 public TestCompiler(IMessageSink sink, ICharSource text, params string[] preOpenedNamespaces)
     : base(sink, typeof(LeMP.Prelude.BuiltinMacros), new[] { new InputOutput(text, "TEST") })
 {
     Parallel = false;
     MacroProcessor.AddMacros(typeof(LeMP.les2.to.ecs.Macros));
     MacroProcessor.AddMacros(typeof(LeMP.les3.to.ecs.Macros));
     MacroProcessor.AddMacros(typeof(LeMP.Tests.TestMacros));
     MacroProcessor.AddMacros(typeof(LeMP.Tests.A.AliasTest));
     MacroProcessor.AddMacros(typeof(LeMP.Tests.B.AliasTest));
     // Register all the old names, as we would in production
     MacroProcessor.AddMacros(typeof(LeMP.Prelude.Les.Macros));
     MacroProcessor.AddMacros(typeof(LeMP.Prelude.Les3.Macros));
     MacroProcessor.AddMacros(typeof(LeMP.Les3.To.CSharp.Macros));
     MacroProcessor.PreOpenedNamespaces.Add((Symbol)"LeMP.Prelude");
     foreach (var ns in preOpenedNamespaces)
     {
         MacroProcessor.PreOpenedNamespaces.Add((Symbol)ns);
     }
 }
示例#4
0
 public bool AddMacros(Assembly assembly)
 {
     return(MacroProcessor.AddMacros(assembly));
 }
示例#5
0
 /// <summary>Adds standard macros from LeMP.StdMacros.dll, and adds the
 /// namespaces LeMP and LeMP.Prelude to the pre-opened namespace list.</summary>
 /// <remarks>Note: prelude macros were already added by the constructor.</remarks>
 public void AddStdMacros()
 {
     MacroProcessor.AddMacros(typeof(global::LeMP.StandardMacros).Assembly);
     MacroProcessor.PreOpenedNamespaces.Add(GSymbol.Get("LeMP"));
     MacroProcessor.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude"));
 }
示例#6
0
		MacroProcessor NewLemp(int maxExpand)
		{
			var lemp = new MacroProcessor(typeof(LeMP.Prelude.Macros), _sink);
			lemp.AddMacros(typeof(LeMP.Prelude.Les.Macros));
			lemp.AddMacros(typeof(LeMP.StandardMacros));
			lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP"));
			lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude"));
			lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude.Les"));
			lemp.MaxExpansions = maxExpand;
			return lemp;
		}
示例#7
0
		MacroProcessor NewLemp(int maxExpand)
		{
			var lemp = new MacroProcessor(typeof(LeMP.Prelude.BuiltinMacros), MessageSink.Current);
			lemp.AddMacros(typeof(LeMP.Prelude.Les.Macros));
			lemp.AddMacros(typeof(LeMP.StandardMacros).Assembly);
			lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP"));
			lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude"));
			lemp.PreOpenedNamespaces.Add(GSymbol.Get("LeMP.Prelude.Les"));
			lemp.MaxExpansions = maxExpand;
			return lemp;
		}
        public static Task<IFunctionalNamespace[]> ParseCompilationUnitsAsync(List<IProjectSourceItem> SourceItems, CompilationParameters Parameters, IBinder Binder, IAssembly DeclaringAssembly)
        {
            var sink = new CompilerLogMessageSink(Parameters.Log);
            var processor = new MacroProcessor(typeof(LeMP.Prelude.BuiltinMacros), sink);

            processor.AddMacros(typeof(global::LeMP.StandardMacros).Assembly, false);

            return ParseCompilationUnitsAsync(SourceItems, Parameters, Binder, DeclaringAssembly, processor, sink);
        }