Пример #1
0
        /// <summary>
        /// Loads the default plugins for the output language of 'L'
        /// </summary>
        static public void LoadDefaultCodeGenerators(CodeGeneratorLoader L)
        {
            switch (L.Language)
            {
            case XML.XML_C:
                L.AddAssembly(typeof(G25.CG.C.MainGenerator).Assembly);
                break;

            case XML.XML_CPP:
                L.AddAssembly(typeof(G25.CG.CPP.MainGenerator).Assembly);
                break;

            case XML.XML_JAVA:
                L.AddAssembly(typeof(G25.CG.Java.MainGenerator).Assembly);
                break;

            case XML.XML_CSHARP:
                L.AddAssembly(typeof(G25.CG.CSharp.MainGenerator).Assembly);
                break;

            case XML.XML_PYTHON:
                L.AddAssembly(typeof(G25.CG.Python.MainGenerator).Assembly);
                break;

            case XML.XML_MATLAB:
                L.AddAssembly(typeof(G25.CG.Matlab.MainGenerator).Assembly);
                break;
            }
        }
Пример #2
0
        public static void Generate(string filename)
        {
            try
            {
                G25.Specification S = new G25.Specification(filename);

                // get the code generator and plugins ready
                CodeGeneratorLoader L = new CodeGeneratorLoader(S.GetOutputLanguageString());
                LoadDefaultCodeGenerators(L);
                // todo: load custom plugins (their location will be in the specification XML?)
                if (L.GetMainCodeGenerator() == null)
                    throw new G25.UserException("No code generator for language " + S.GetOutputLanguageString());

                // generate the code
                List<string> generatedFiles = L.GetMainCodeGenerator().GenerateCode(S, L.GetCodeGeneratorPlugins());

                // insert verbatim code:
                S.InsertVerbatimCode(generatedFiles);

                // write list of generated files
                if (OptionSaveFileListFile != null)
                    SaveGenerateFileList(OptionSaveFileListFile, generatedFiles);
            }
            catch (G25.UserException E)
            {
                System.Console.WriteLine("Error:");
                System.Console.Write(E.GetErrorReport());
            }
            catch (System.Exception E)
            {
                System.Console.WriteLine("Exception:");
                System.Console.WriteLine(E.ToString());
                System.Console.WriteLine(E.Message);
            }
        }
Пример #3
0
        public static void Generate(string filename)
        {
            try
            {
                G25.Specification S = new G25.Specification(filename);

                // get the code generator and plugins ready
                CodeGeneratorLoader L = new CodeGeneratorLoader(S.GetOutputLanguageString());
                LoadDefaultCodeGenerators(L);
                // todo: load custom plugins (their location will be in the specification XML?)
                if (L.GetMainCodeGenerator() == null)
                {
                    throw new G25.UserException("No code generator for language " + S.GetOutputLanguageString());
                }

                // generate the code
                List <string> generatedFiles = L.GetMainCodeGenerator().GenerateCode(S, L.GetCodeGeneratorPlugins());

                // insert verbatim code:
                S.InsertVerbatimCode(generatedFiles);

                // write list of generated files
                if (OptionSaveFileListFile != null)
                {
                    SaveGenerateFileList(OptionSaveFileListFile, generatedFiles);
                }
            }
            catch (G25.UserException E)
            {
                System.Console.WriteLine("Error:");
                System.Console.Write(E.GetErrorReport());
            }
            catch (System.Exception E)
            {
                System.Console.WriteLine("Exception:");
                System.Console.WriteLine(E.ToString());
                System.Console.WriteLine(E.Message);
            }
        }
Пример #4
0
 /// <summary>
 /// Loads the default plugins for the output language of 'L'
 /// </summary>
 public static void LoadDefaultCodeGenerators(CodeGeneratorLoader L)
 {
     switch (L.Language)
     {
         case XML.XML_C:
             L.AddAssembly(typeof(G25.CG.C.MainGenerator).Assembly);
             break;
         case XML.XML_CPP:
             L.AddAssembly(typeof(G25.CG.CPP.MainGenerator).Assembly);
             break;
         case XML.XML_JAVA:
             L.AddAssembly(typeof(G25.CG.Java.MainGenerator).Assembly);
             break;
         case XML.XML_CSHARP:
             L.AddAssembly(typeof(G25.CG.CSharp.MainGenerator).Assembly);
             break;
         case XML.XML_PYTHON:
             L.AddAssembly(typeof(G25.CG.Python.MainGenerator).Assembly);
             break;
         case XML.XML_MATLAB:
             L.AddAssembly(typeof(G25.CG.Matlab.MainGenerator).Assembly);
             break;
     }
 }