18 #ifndef VCSN_XML_XML_EXP_VISITOR_HH
19 # define VCSN_XML_XML_EXP_VISITOR_HH
29 # include <xercesc/dom/DOM.hpp>
30 # include <xercesc/util/XMLString.hpp>
31 # include <xercesc/util/PlatformUtils.hpp>
32 # include <vaucanson/misc/usual_macros.hh>
36 # include <vaucanson/algebra/implementation/series/rat/nodes.hh>
37 # include <vaucanson/algebra/implementation/series/rat/exp.hh>
44 template<
typename M_,
typename W_>
45 class XmlExpVisitor :
public ConstNodeVisitor<M_, W_>
48 XmlExpVisitor(xercesc::DOMDocument* doc,
const char* node_name);
51 product(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
54 sum(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
57 star(
const Node<M_, W_>* node);
60 left_weight(
const W_&,
const Node<M_, W_>* node);
63 right_weight(
const W_&,
const Node<M_, W_>* node);
66 constant(
const M_& m);
72 xercesc::DOMElement*
get()
const;
74 xercesc::DOMDocument*
set(xercesc::DOMDocument* v);
77 void sum_or_product(
const Node<M_, W_>* left_,
const Node<M_, W_>* right_);
78 void weight_or_star(
const Node<M_, W_>* node);
80 void set_weight(
const T& w, xercesc::DOMElement* node);
81 template <
typename S,
typename T>
82 void set_weight(
const rat::exp<S, T>& w, xercesc::DOMElement* node);
85 xercesc::DOMDocument* doc_;
86 xercesc::DOMElement* label_;
87 xercesc::DOMElement* current_;
94 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
95 # include <vaucanson/xml/xml_exp_visitor.hxx>
96 # endif // VCSN_USE_INTERFACE_ONLY
98 #endif // ! VCSN_XML_XML_EXP_VISITOR_HH