18 #ifndef VCSN_XML_CONTEXTS_FMP_HH
19 # define VCSN_XML_CONTEXTS_FMP_HH
33 # include <xercesc/sax2/Attributes.hpp>
34 # include <xercesc/util/XMLString.hpp>
36 # include <vaucanson/xml/handlers_base.hh>
38 # include <vaucanson/xml/regexp.hh>
40 # include <vaucanson/automata/concept/automata.hh>
41 # include <vaucanson/automata/concept/automata_kind.hh>
42 # include <vaucanson/algebra/implementation/series/series.hh>
43 # include <vaucanson/algebra/concept/freemonoid_product.hh>
48 vcsn::algebra::Series<S, vcsn::algebra::FreeMonoidProduct<M1, M2> >, \
52 # define TParamFMP template <class S, class T, class M1, class M2>
53 # define FMPsreptype algebra::SeriesRep<S, algebra::FreeMonoidProduct<M1, M2> >
55 # define FMPseries Element<vcsn::algebra::Series<S, vcsn::algebra::FreeMonoidProduct<M1, M2> >, T>
56 # define SParamFMP template <class S, class T, class M1, class M2>
75 start (
const XMLCh*
const uri,
76 const XMLCh*
const localname,
77 const XMLCh*
const qname,
78 const xercesc::Attributes& attrs);
80 end (
const XMLCh*
const uri,
81 const XMLCh*
const localname,
82 const XMLCh*
const qname);
94 template <
typename S,
typename M1,
typename M2>
99 typedef FMPsreptype srep_t;
105 void start(
const XMLCh*
const uri,
106 const XMLCh*
const localname,
107 const XMLCh*
const qname,
108 const xercesc::Attributes& attrs);
110 void end(
const XMLCh*
const uri,
111 const XMLCh*
const localname,
112 const XMLCh*
const qname);
125 typename FMPtype::monoid_t*
126 create_monoid (FMPtype& aut,
127 const XMLCh*
const localname,
128 const xercesc::Attributes& attrs,
131 template <
typename M1,
typename M2>
134 const xercesc::Attributes& attrs,
135 xercesc::SAX2XMLReader* parser,
142 template <
typename T>
159 start (
const XMLCh*
const uri,
160 const XMLCh*
const localname,
161 const XMLCh*
const qname,
162 const xercesc::Attributes& attrs);
164 end (
const XMLCh*
const uri,
165 const XMLCh*
const localname,
166 const XMLCh*
const qname);
172 typedef typename T::monoid_elt_t::first_monoid_t first_monoid_t;
173 typedef typename T::monoid_elt_t::second_monoid_t second_monoid_t;
174 typedef typename T::monoid_elt_t::first_monoid_elt_t first_monoid_elt_t;
175 typedef typename T::monoid_elt_t::second_monoid_elt_t second_monoid_elt_t;
176 first_monoid_elt_t m1_;
177 second_monoid_elt_t m2_;
184 create_monElmth(xercesc::SAX2XMLReader* parser,
196 check_monoid_consistency (FMPtype&,
197 const XMLCh*
const localname,
198 const xercesc::Attributes& attrs,
209 create_type_writingData_node(
const FMPtype& aut,
210 xercesc::DOMDocument* doc,
211 xercesc::DOMElement* root);
215 create_type_writingData_node(
const FMPseries& aut,
216 xercesc::DOMDocument* doc,
217 xercesc::DOMElement* root);
221 create_monoid_node(
const FMPtype& aut,
222 xercesc::DOMDocument* doc,
223 xercesc::DOMElement* root);
227 create_monoid_node(
const FMPseries& aut,
228 xercesc::DOMDocument* doc,
229 xercesc::DOMElement* root);
234 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
235 # include <vaucanson/xml/contexts/fmp.hxx>
236 # endif // VCSN_USE_INTERFACE_ONLY || !VCSN_USE_LIB
243 #endif // !VCSN_XML_CONTEXTS_FMP_HH