1 #ifndef MATH_MATHMLSTREAM_H
2 #define MATH_MATHMLSTREAM_H
5 #include "support/LOstream.h"
13 MTag(char const * const tag) : tag_(tag) {}
15 char const * const tag_;
20 ETag(char const * const tag) : tag_(tag) {}
22 char const * const tag_;
27 explicit MathMLStream(std::ostream & os);
29 MathMLStream & operator<<(MathInset const *);
31 MathMLStream & operator<<(MathArray const &);
33 MathMLStream & operator<<(char const *);
35 MathMLStream & operator<<(char);
37 MathMLStream & operator<<(MTag const &);
39 MathMLStream & operator<<(ETag const &);
54 explicit NormalStream(std::ostream & os) : os_(os) {}
58 NormalStream & operator<<(MathInset const *);
60 NormalStream & operator<<(MathArray const &);
62 NormalStream & operator<<(char const *);
64 NormalStream & operator<<(char);
70 explicit MapleStream(std::ostream & os) : os_(os) {}
74 MapleStream & operator<<(MathInset const *);
76 MapleStream & operator<<(MathArray const &);
78 MapleStream & operator<<(char const *);
80 MapleStream & operator<<(char);
86 explicit OctaveStream(std::ostream & os) : os_(os) {}
90 OctaveStream & operator<<(MathInset const *);
92 OctaveStream & operator<<(MathArray const &);
94 OctaveStream & operator<<(char const *);
96 OctaveStream & operator<<(char);
100 struct MathWriteInfo {
102 MathWriteInfo(Buffer const * buffer_, std::ostream & os_, bool fragile_);
104 explicit MathWriteInfo(std::ostream & os_);
107 MathWriteInfo & operator<<(MathInset const *);
109 MathWriteInfo & operator<<(MathArray const &);
111 MathWriteInfo & operator<<(char const *);
113 MathWriteInfo & operator<<(char);
116 Buffer const * buffer;