Example #1
0
 public void InitApp(string[] args)
 {
     ProcessArgs(args);
     ConfigXmlDoc.Load(ConfigFile);
     GetInputInfo();
     CodeProviders[InPrvId] = new CodeProviderInfo(ConfigXmlDoc, InPrvId);
 }
Example #2
0
        private CompilerResults GetCompilerResults()
        {
            CodeProviderInfo ProviderInfo = (CodeProviderInfo)CodeProviders[InPrvId];

            CodeDomProvider provider = (CodeDomProvider)ProviderInfo.CodeProvider;

            // Obtain an ICodeCompiler from a CodeDomProvider class.
            //ICodeCompiler compiler = provider.CreateCompiler();
            //ICodeGenerator g = provider.CreateGenerator();

            // Configure a CompilerParameters that links System.dll and
            // produces a file name based on the specified source file name.

            string[] Dlls = { "System.dll", "CSymphonyLib.dll" };

            //CompilerParameters cp = new CompilerParameters(Dlls, .DllFile, false);
            CompilerParameters cp = new CompilerParameters(Dlls);

            cp.GenerateExecutable = false;
            cp.GenerateInMemory   = true;

            // Invoke compilation.
            return(provider.CompileAssemblyFromFile(cp, InputFile));             //+ "." + ProviderInfo.FileExtension);
            //CompilerResults cr = compiler.CompileAssemblyFromSource(cp, reCode.Text);
        }
Example #3
0
        public void AddProvider(string PrvId)
        {
            // if the provider does not exist in the hashtable then add the provider
            //if (CodeProviders[PrvId] == null)
            //{

            CodeProviders[PrvId] = new CodeProviderInfo(ConfigXmlDoc, PrvId);
            //}
        }
Example #4
0
        private void GenerateCode(CodeCompileUnit CompileUnit)
        {
            // CreateProvidersOut

            XmlNodeList list = ConfigXmlDoc.SelectNodes("/csy/codeGen/*");

            //Console.WriteLine(list);


            // Config each of the datastores
            foreach (XmlElement e in list)
            {
                string PrvId = e.Attributes["prvId"].InnerText;

                AddProvider(PrvId);

                CodeProviderInfo PrvInfo = (CodeProviderInfo)CodeProviders[PrvId];

                CodeDomProvider CodePrv = PrvInfo.CodeProvider;

                // Obtain an ICodeGenerator from a CodeDomProvider class.
                //ICodeGenerator gen = CodePrv.CreateGenerator();

                // Create a TextWriter to a StreamWriter to an output file.

                string OutPath = InnerText(e.Attributes, "path", false) + "/" + Path.GetFileNameWithoutExtension(InputFile) + "." + PrvInfo.FileExtension;

                IndentedTextWriter tw = new IndentedTextWriter(new StreamWriter(OutPath, false), "    ");
                // Generate source code using the code generator.

                CodeGeneratorOptions opts = new CodeGeneratorOptions();
                //opts.BlankLinesBetweenMembers = true;
                opts.BracingStyle = "C";
                try
                {
                    CodePrv.GenerateCodeFromCompileUnit(CompileUnit, tw, opts);
                }
                catch (SystemException ex)
                {
                    Wait(" ERROR : " + "\n" + ex.Message + "\n");
                }
                finally
                {
                    tw.Close();
                }
            }
        }