#include <string>
#include <vector>
-class MathArray;
+#include "support/docstring.h"
+
+namespace lyx {
+class MathArray;
///
class MacroData {
///
MacroData();
///
- MacroData(std::string const & def, int nargs, std::string const & disp);
+ MacroData(docstring const & def, int nargs, docstring const & disp, std::string const &);
///
- std::string def() const { return def_; }
+ docstring def() const { return def_; }
///
- std::string disp() const { return disp_; }
+ docstring disp() const { return disp_; }
///
int numargs() const { return numargs_; }
/// replace #1,#2,... by given MathAtom 0,1,..
void expand(std::vector<MathArray> const & from, MathArray & to) const;
+ ///
+ std::string requires() const { return requires_; }
+ ///
+ std::string & requires() { return requires_; }
private:
///
- std::string def_;
+ docstring def_;
///
int numargs_;
///
- std::string disp_;
+ docstring disp_;
+ ///
+ std::string requires_;
};
// either because they implement a feature of standard LaTeX or some
// hack to display certain contents nicely.
-class MacroTable : public std::map<std::string, MacroData>
+class MacroTable : public std::map<docstring, MacroData>
{
public:
- /// Parse full "\def..." or "\newcommand..." or ...
- void insert(std::string const & definition);
+ /// Parse full "\\def..." or "\\newcommand..." or ...
+ void insert(docstring const & definition, std::string const &);
/// Insert pre-digested macro definition
- void insert(std::string const & name, MacroData const & data);
+ void insert(docstring const & name, MacroData const & data);
/// Do we have a macro by that name?
- bool has(std::string const & name) const;
+ bool has(docstring const & name) const;
///
- MacroData const & get(std::string const & name) const;
+ MacroData const & get(docstring const & name) const;
///
void dump();
//static MacroTable & localMacros();
};
+
+} // namespace lyx
+
#endif