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