]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_mathmlstream.C
rename commandtags.h to lfuns.h and renumber/cleanup. Rebuild the tree !
[lyx.git] / src / mathed / math_mathmlstream.C
index 0d5bfc35a497852be961f41624d6a3dfae3ea387..8a226ac17f1f550153e4ac44a84e41facebe4353 100644 (file)
@@ -1,8 +1,10 @@
+
 #include <config.h>
 
 #include "math_mathmlstream.h"
 #include "math_inset.h"
 #include "math_extern.h"
+#include "debug.h"
 #include "support/lyxalgo.h"
 #include "support/LOstream.h"
 
 using std::ostream;
 using std::strlen;
 
+namespace {
+
+       bool isAlpha(char c)
+       {
+               return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z');
+       }
+
+}
+
+WriteStream::WriteStream(ostream & os, bool fragile, bool latex)
+       : os_(os), fragile_(fragile), firstitem_(false), latex_(latex),
+         pendingspace_(false), line_(0)
+{}
+
+
+WriteStream::WriteStream(ostream & os)
+       : os_(os), fragile_(false), firstitem_(false), latex_(false),
+         pendingspace_(false), line_(0)
+{}
+
+
+WriteStream::~WriteStream()
+{
+       if (pendingspace_)
+               os_ << ' ';
+}
+
+
+void WriteStream::addlines(unsigned int n)
+{
+       line_ += n;
+}
+
+
+void WriteStream::pendingSpace(bool how)
+{
+       pendingspace_ = how;
+}
+
+
+WriteStream & operator<<(WriteStream & ws, MathAtom const & at)
+{
+       at->write(ws);
+       return ws;
+}
+
+
+WriteStream & operator<<(WriteStream & ws, MathArray const & ar)
+{
+       write(ar, ws);
+       return ws;
+}
+
+
+WriteStream & operator<<(WriteStream & ws, char const * s)
+{
+       if (ws.pendingSpace() && strlen(s) > 0) {
+               if (isAlpha(s[0]))
+                       ws.os() << ' ';
+               ws.pendingSpace(false);
+       }
+       ws.os() << s;
+       ws.addlines(int(lyx::count(s, s + strlen(s), '\n')));
+       return ws;
+}
+
+
+WriteStream & operator<<(WriteStream & ws, char c)
+{
+       if (ws.pendingSpace()) {
+               if (isAlpha(c))
+                       ws.os() << ' ';
+               ws.pendingSpace(false);
+       }
+       ws.os() << c;
+       if (c == '\n')
+               ws.addlines(1);
+       return ws;
+}
+
+
+WriteStream & operator<<(WriteStream & ws, int i)
+{
+       ws.os() << i;
+       return ws;
+}
+
+
+WriteStream & operator<<(WriteStream & ws, unsigned int i)
+{
+       ws.os() << i;
+       return ws;
+}
+
+
+//////////////////////////////////////////////////////////////////////
+
 
 MathMLStream::MathMLStream(ostream & os)
        : os_(os), tab_(0), line_(0), lastchar_(0)
@@ -71,20 +170,19 @@ void MathMLStream::cr()
 }
 
 
-
 //////////////////////////////////////////////////////////////////////
 
 
 MapleStream & operator<<(MapleStream & ms, MathAtom const & at)
 {
-       at->maplize(ms);
+       at->maple(ms);
        return ms;
 }
 
 
 MapleStream & operator<<(MapleStream & ms, MathArray const & ar)
 {
-       maplize(ar, ms);
+       maple(ar, ms);
        return ms;
 }
 
@@ -113,16 +211,54 @@ MapleStream & operator<<(MapleStream & ms, int i)
 //////////////////////////////////////////////////////////////////////
 
 
+MaximaStream & operator<<(MaximaStream & ms, MathAtom const & at)
+{
+       at->maxima(ms);
+       return ms;
+}
+
+
+MaximaStream & operator<<(MaximaStream & ms, MathArray const & ar)
+{
+       maxima(ar, ms);
+       return ms;
+}
+
+
+MaximaStream & operator<<(MaximaStream & ms, char const * s)
+{
+       ms.os() << s;
+       return ms;
+}
+
+
+MaximaStream & operator<<(MaximaStream & ms, char c)
+{
+       ms.os() << c;
+       return ms;
+}
+
+
+MaximaStream & operator<<(MaximaStream & ms, int i)
+{
+       ms.os() << i;
+       return ms;
+}
+
+
+//////////////////////////////////////////////////////////////////////
+
+
 MathematicaStream & operator<<(MathematicaStream & ms, MathAtom const & at)
 {
-       at->mathematicize(ms);
+       at->mathematica(ms);
        return ms;
 }
 
 
 MathematicaStream & operator<<(MathematicaStream & ms, MathArray const & ar)
 {
-       mathematicize(ar, ms);
+       mathematica(ar, ms);
        return ms;
 }
 
@@ -154,14 +290,14 @@ MathematicaStream & operator<<(MathematicaStream & ms, int i)
 
 OctaveStream & operator<<(OctaveStream & ns, MathAtom const & at)
 {
-       at->octavize(ns);
+       at->octave(ns);
        return ns;
 }
 
 
 OctaveStream & operator<<(OctaveStream & ns, MathArray const & ar)
 {
-       octavize(ar, ns);
+       octave(ar, ns);
        return ns;
 }
 
@@ -227,64 +363,3 @@ NormalStream & operator<<(NormalStream & ns, int i)
 
 
 //////////////////////////////////////////////////////////////////////
-
-
-WriteStream::WriteStream(ostream & os, bool fragile, bool latex)
-       : os_(os), fragile_(fragile), latex_(latex), firstitem_(false), line_(0)
-{}
-
-
-WriteStream::WriteStream(ostream & os)
-       : os_(os), fragile_(false), latex_(false), firstitem_(false), line_(0)
-{}
-
-
-void WriteStream::addlines(unsigned int n)
-{
-       line_ += n;
-}
-
-
-WriteStream & operator<<(WriteStream & ws, MathAtom const & at)
-{
-       at->write(ws);
-       return ws;
-}
-
-
-WriteStream & operator<<(WriteStream & ws, MathArray const & ar)
-{
-       write(ar, ws);
-       return ws;
-}
-
-
-WriteStream & operator<<(WriteStream & ws, char const * s)
-{
-       ws.os() << s;
-       ws.addlines(int(lyx::count(s, s + strlen(s), '\n')));
-       return ws;
-}
-
-
-WriteStream & operator<<(WriteStream & ws, char c)
-{
-       ws.os() << c;
-       if (c == '\n')
-               ws.addlines(1);
-       return ws;
-}
-
-
-WriteStream & operator<<(WriteStream & ws, int i)
-{
-       ws.os() << i;
-       return ws;
-}
-
-
-WriteStream & operator<<(WriteStream & ws, unsigned int i)
-{
-       ws.os() << i;
-       return ws;
-}