From: André Pönitz Date: Fri, 16 Nov 2001 08:26:41 +0000 (+0000) Subject: 'maplize' for math macros X-Git-Tag: 1.6.10~20331 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=b0a9053e7fc6588b4145675d90b2266bceb52c59;p=features.git 'maplize' for math macros git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3034 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/mathed/math_extern.C b/src/mathed/math_extern.C index ff48405a75..4cf321c2b6 100644 --- a/src/mathed/math_extern.C +++ b/src/mathed/math_extern.C @@ -688,6 +688,8 @@ void extractDiff(MathArray & ar) lyxerr << "\nDiffs to: " << ar << "\n"; } + + // // combine searches // diff --git a/src/mathed/math_macro.C b/src/mathed/math_macro.C index 3d89fbad0b..2d511683bf 100644 --- a/src/mathed/math_macro.C +++ b/src/mathed/math_macro.C @@ -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 << ' '; +} diff --git a/src/mathed/math_macro.h b/src/mathed/math_macro.h index f80c18c561..bce7f5b0f2 100644 --- a/src/mathed/math_macro.h +++ b/src/mathed/math_macro.h @@ -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 &);