/// <summary> /// Constructor which sets up a default specification. Can be used to /// construct a specification 'by hand' (i.e, using function calls and setting public /// members). /// </summary> public Specification() { m_inputDirectory = System.IO.Directory.GetCurrentDirectory(); InitFloatTypes(); m_copyright = ""; m_outputLanguage = OUTPUT_LANGUAGE.NONE; m_coordStorage = COORD_STORAGE.ARRAY; SetDimension(1); InitMetric(); InitBasisBladeParser(); System.Console.WriteLine("Specification.Specification(): todo: set members to default values"); }
/// <summary> /// Constructor which reads an XML specification file. /// </summary> /// <param name="filename">Filename of XML file.</param> public Specification(string filename) { try { m_inputDirectory = System.IO.Path.GetDirectoryName(filename); } catch (Exception) { m_inputDirectory = System.IO.Directory.GetCurrentDirectory(); } InitFloatTypes(); m_copyright = ""; m_outputLanguage = OUTPUT_LANGUAGE.NONE; InitMetric(); InitBasisBladeParser(); SetOutputDir(System.IO.Directory.GetCurrentDirectory()); m_outputDirectoryExplicitlySet = false; // force to false XmlDocument doc = new XmlDocument(); doc.Load(filename); // todo: maybe remember what 'filename' refers to, so we can use it as // a relative path for e.g., licenses. XML.InitFromXmlDocument(this, doc); }
/// <summary> /// Sets language of emitted code. /// </summary> /// <param name="language">valid values are "cpp", "java" and "csharp". /// (XML_C, XML_CPP, XML_JAVA, XML_CSHARP, XML_PYTHON, XML_MATLAB) /// </param> public void SetLanguage(string language) { switch (language.ToLower()) { case XML.XML_C: m_outputLanguage = OUTPUT_LANGUAGE.C; break; case XML.XML_CPP: m_outputLanguage = OUTPUT_LANGUAGE.CPP; break; case XML.XML_CSHARP: m_outputLanguage = OUTPUT_LANGUAGE.CSHARP; break; case XML.XML_JAVA: m_outputLanguage = OUTPUT_LANGUAGE.JAVA; break; case XML. XML_MATLAB: m_outputLanguage = OUTPUT_LANGUAGE.MATLAB; break; case XML.XML_PYTHON: m_outputLanguage = OUTPUT_LANGUAGE.PYTHON; break; default: throw new G25.UserException("Unknown output language " + language); } }