X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMacroTable.h;h=3a1fed4fa682bb89d833f54d4d4dc1cb6b51e215;hb=30d3fcd640c180407a8a1db7679cca42eaa9e0c1;hp=5fa88cee2b2e43eb996126af9d803f8b4aabe3fc;hpb=36dbec45069bf3d9db923200835e44f44d904eb8;p=lyx.git diff --git a/src/mathed/MacroTable.h b/src/mathed/MacroTable.h index 5fa88cee2b..3a1fed4fa6 100644 --- a/src/mathed/MacroTable.h +++ b/src/mathed/MacroTable.h @@ -16,9 +16,9 @@ #include "DocIterator.h" #include "support/docstring.h" -#include "support/types.h" #include +#include #include namespace lyx { @@ -28,22 +28,21 @@ class MathData; class MathMacroTemplate; class Paragraph; - enum MacroType { MacroTypeNewcommand, + MacroTypeNewcommandx, MacroTypeDef }; - - + /// class MacroData { public: /// Constructor to make STL containers happy - MacroData(); + MacroData(Buffer * buf = 0); /// Create lazy MacroData which only queries the macro template when needed - MacroData(Buffer const & buf, DocIterator const & pos); + MacroData(Buffer * buf, DocIterator const & pos); /// Create non-lazy MacroData which directly queries the macro template - MacroData(MathMacroTemplate const & macro); + MacroData(Buffer * buf, MathMacroTemplate const & macro); /// docstring const & definition() const { updateData(); return definition_; } @@ -81,7 +80,7 @@ public: MacroType & type() { return type_; } /// output as TeX macro, only works for lazy MacroData!!! - void write(odocstream & os, bool overwriteRedefinition) const; + int write(odocstream & os, bool overwriteRedefinition) const; /// bool operator==(MacroData const & x) const { @@ -135,6 +134,12 @@ private: mutable MacroType type_; }; + +/// +class MacroNameSet : public std::set {}; +/// +class MacroSet : public std::set {}; + /// A lookup table of macro definitions. /** @@ -147,13 +152,15 @@ class MacroTable : public std::map { public: /// Parse full "\\def..." or "\\newcommand..." or ... - void insert(docstring const & definition, std::string const &); + iterator insert(Buffer * buf, docstring const & definition, std::string const &); /// Insert pre-digested macro definition - void insert(docstring const & name, MacroData const & data); + iterator insert(docstring const & name, MacroData const & data); /// MacroData const * get(docstring const & name) const; /// void dump(); + /// + void getMacroNames(std::set & names) const; /// the global list static MacroTable & globalMacros(); @@ -171,14 +178,14 @@ public: class MacroContext { public: /// construct context for the insets at pos - MacroContext(Buffer const & buf, DocIterator const & pos); + MacroContext(Buffer const * buf, DocIterator const & pos); /// Lookup macro MacroData const * get(docstring const & name) const; private: /// - Buffer const & buf_; + Buffer const * buf_; /// DocIterator const & pos_; };