1 /*! 2 * \file mfront/include/MFront/ModelDSL.hxx 3 * \brief 4 * \author Thomas Helfer 5 * \brief 11 jun 2010 6 * \copyright Copyright (C) 2006-2018 CEA/DEN, EDF R&D. All rights 7 * reserved. 8 * This project is publicly released under either the GNU GPL Licence 9 * or the CECILL-A licence. A copy of thoses licences are delivered 10 * with the sources of TFEL. CEA or EDF may also distribute this 11 * project under specific licensing conditions. 12 */ 13 14 #ifndef LIB_MFRONTMODELPARSER_HXX 15 #define LIB_MFRONTMODELPARSER_HXX 16 17 #include"MFront/MFrontConfig.hxx" 18 #include"MFront/ModelDSLBase.hxx" 19 #include"MFront/ModelDescription.hxx" 20 21 namespace mfront{ 22 23 /*! 24 * \brief default class for analysing models 25 */ 26 struct MFRONT_VISIBILITY_EXPORT ModelDSL 27 : public ModelDSLBase<ModelDSL> 28 { 29 //! \return the name of the dsl 30 static std::string getName(); 31 //! \return the description of the dsl 32 static std::string getDescription(); 33 /*! 34 * \brief add interfaces used for generating output files 35 * \param[in] i: list of interfaces 36 */ 37 virtual void 38 setInterfaces(const std::set<std::string>&) override; 39 /*! 40 * \return a copy of the description of the model treated by the 41 * dsl. 42 * \note This method shall be called after the `analyseFile` 43 * method. 44 */ 45 virtual ModelDescription 46 getModelDescription() const; 47 }; // end of ModelDSL 48 49 } // end of namespace mfront 50 51 #endif /* LIB_MFRONTMODELPARSER_HXX */ 52 53