3 #include "math_mathmlstream.h"
4 #include "math_inset.h"
5 #include "math_extern.h"
7 #include "support/lyxalgo.h"
8 #include "support/LOstream.h"
15 WriteStream::WriteStream(ostream & os, bool fragile, bool latex)
16 : os_(os), fragile_(fragile), firstitem_(false), latex_(latex),
17 pendingspace_(false), line_(0)
21 WriteStream::WriteStream(ostream & os)
22 : os_(os), fragile_(false), firstitem_(false), latex_(false),
23 pendingspace_(false), line_(0)
27 WriteStream::~WriteStream()
34 void WriteStream::addlines(unsigned int n)
40 void WriteStream::pendingSpace(bool how)
48 WriteStream & operator<<(WriteStream & ws, MathAtom const & at)
55 WriteStream & operator<<(WriteStream & ws, MathArray const & ar)
62 WriteStream & operator<<(WriteStream & ws, char const * s)
64 if (ws.pendingSpace()) {
65 lyxerr << "writing a space in a string\n";
67 ws.pendingSpace(false);
70 ws.addlines(int(lyx::count(s, s + strlen(s), '\n')));
75 WriteStream & operator<<(WriteStream & ws, char c)
77 if (ws.pendingSpace()) {
81 lyxerr << "I'd like to suppress writing a space\n";
84 ws.pendingSpace(false);
93 WriteStream & operator<<(WriteStream & ws, int i)
100 WriteStream & operator<<(WriteStream & ws, unsigned int i)
107 //////////////////////////////////////////////////////////////////////
110 MathMLStream::MathMLStream(ostream & os)
111 : os_(os), tab_(0), line_(0), lastchar_(0)
115 MathMLStream & operator<<(MathMLStream & ms, MathAtom const & at)
122 MathMLStream & operator<<(MathMLStream & ms, MathArray const & ar)
129 MathMLStream & operator<<(MathMLStream & ms, char const * s)
136 MathMLStream & operator<<(MathMLStream & ms, char c)
143 MathMLStream & operator<<(MathMLStream & ms, MTag const & t)
147 ms.os() << '<' << t.tag_ << '>';
152 MathMLStream & operator<<(MathMLStream & ms, ETag const & t)
157 ms.os() << "</" << t.tag_ << '>';
162 void MathMLStream::cr()
165 for (int i = 0; i < tab(); ++i)
171 //////////////////////////////////////////////////////////////////////
174 MapleStream & operator<<(MapleStream & ms, MathAtom const & at)
181 MapleStream & operator<<(MapleStream & ms, MathArray const & ar)
188 MapleStream & operator<<(MapleStream & ms, char const * s)
195 MapleStream & operator<<(MapleStream & ms, char c)
202 MapleStream & operator<<(MapleStream & ms, int i)
209 //////////////////////////////////////////////////////////////////////
212 MathematicaStream & operator<<(MathematicaStream & ms, MathAtom const & at)
214 at->mathematicize(ms);
219 MathematicaStream & operator<<(MathematicaStream & ms, MathArray const & ar)
221 mathematicize(ar, ms);
226 MathematicaStream & operator<<(MathematicaStream & ms, char const * s)
233 MathematicaStream & operator<<(MathematicaStream & ms, char c)
240 MathematicaStream & operator<<(MathematicaStream & ms, int i)
248 //////////////////////////////////////////////////////////////////////
251 OctaveStream & operator<<(OctaveStream & ns, MathAtom const & at)
258 OctaveStream & operator<<(OctaveStream & ns, MathArray const & ar)
265 OctaveStream & operator<<(OctaveStream & ns, char const * s)
272 OctaveStream & operator<<(OctaveStream & ns, char c)
279 OctaveStream & operator<<(OctaveStream & ns, int i)
286 //////////////////////////////////////////////////////////////////////
289 NormalStream & operator<<(NormalStream & ns, MathAtom const & at)
296 NormalStream & operator<<(NormalStream & ns, MathArray const & ar)
303 NormalStream & operator<<(NormalStream & ns, char const * s)
310 NormalStream & operator<<(NormalStream & ns, char c)
317 NormalStream & operator<<(NormalStream & ns, int i)
325 //////////////////////////////////////////////////////////////////////