Пример #1
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);
            }
        }
Пример #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);
            }
        }