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