'maplize' for math macros

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3034 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2001-11-16 08:26:41 +00:00
parent 0e793113ca
commit b0a9053e7f
3 changed files with 40 additions and 26 deletions

View File

@ -688,6 +688,8 @@ void extractDiff(MathArray & ar)
lyxerr << "\nDiffs to: " << ar << "\n";
}
//
// combine searches
//

View File

@ -19,14 +19,15 @@
#endif
#include "math_macro.h"
#include "support/lstrings.h"
#include "support/LAssert.h"
#include "debug.h"
#include "math_support.h"
#include "math_cursor.h"
#include "math_extern.h"
#include "math_macrotable.h"
#include "math_macrotemplate.h"
#include "math_mathmlstream.h"
#include "support/lstrings.h"
#include "support/LAssert.h"
#include "debug.h"
#include "Painter.h"
#include "LaTeXFeatures.h"
@ -161,25 +162,6 @@ void MathMacro::dump() const
}
void MathMacro::write(WriteStream & os) const
{
os << '\\' << name();
for (idx_type i = 0; i < nargs(); ++i)
os << '{' << cell(i) << '}';
if (nargs() == 0)
os << ' ';
}
void MathMacro::normalize(NormalStream & os) const
{
os << "[macro " << name() << " ";
for (idx_type i = 0; i < nargs(); ++i)
os << cell(i) << ' ';
os << ']';
}
bool MathMacro::idxUp(idx_type & idx, pos_type & pos) const
{
return MathNestInset::idxLeft(idx, pos);
@ -210,3 +192,30 @@ void MathMacro::validate(LaTeXFeatures & features) const
features.binom = true;
//MathInset::validate(features);
}
void MathMacro::maplize(MapleStream & os) const
{
expanded_ = tmplate_->xcell(0);
expanded_.data_.substitute(*this);
::maplize(expanded_.data_, os);
}
void MathMacro::normalize(NormalStream & os) const
{
os << "[macro " << name() << " ";
for (idx_type i = 0; i < nargs(); ++i)
os << cell(i) << ' ';
os << ']';
}
void MathMacro::write(WriteStream & os) const
{
os << '\\' << name();
for (idx_type i = 0; i < nargs(); ++i)
os << '{' << cell(i) << '}';
if (nargs() == 0)
os << ' ';
}

View File

@ -48,10 +48,6 @@ public:
///
MathInset * clone() const;
///
void write(WriteStream & os) const;
///
void normalize(NormalStream &) const;
///
void dump() const;
///
@ -68,6 +64,13 @@ public:
///
bool isMacro() const { return true; }
///
void normalize(NormalStream &) const;
///
void maplize(MapleStream &) const;
///
void write(WriteStream & os) const;
private:
///
void operator=(MathMacro const &);