using std::size_t;
+/////////////////////////////////////////////////////////////////////
+//
+// MacroData
+//
+/////////////////////////////////////////////////////////////////////
+
MacroData::MacroData()
: numargs_(0), lockCount_(0), redefinition_(false)
{}
-MacroData::MacroData(docstring const & definition, std::vector<docstring> const & defaults,
- int numargs, int optionals, docstring const & display, string const & requires)
+MacroData::MacroData(docstring const & definition,
+ std::vector<docstring> const & defaults,
+ int numargs, int optionals, docstring const & display,
+ string const & requires)
: definition_(definition), numargs_(numargs), display_(display),
- requires_(requires), lockCount_(0), redefinition_(false), optionals_(optionals),
- defaults_(defaults)
+ requires_(requires), lockCount_(0), redefinition_(false),
+ optionals_(optionals), defaults_(defaults)
{
defaults_.resize(optionals);
}
}
-// The global table.
+void MacroData::unlock() const
+{
+ --lockCount_;
+ BOOST_ASSERT(lockCount_ >= 0);
+}
+
+
+/////////////////////////////////////////////////////////////////////
+//
+// The global table of macros
+//
+/////////////////////////////////////////////////////////////////////
+
MacroTable & MacroTable::globalMacros()
{
static MacroTable theGlobalMacros;
#include "support/docstring.h"
-#include <boost/assert.hpp>
-
#include <map>
#include <vector>
///
MacroData();
///
- MacroData(docstring const & definition, std::vector<docstring> const & defaults,
- int nargs, int optionals,
- docstring const & display, std::string const & requires);
+ MacroData(docstring const & definition,
+ std::vector<docstring> const & defaults, int nargs, int optionals,
+ docstring const & display, std::string const & requires);
///
docstring const & definition() const { return definition_; }
///
docstring const & display() const { return display_; }
/// arity including optional arguments (if there is any)
size_t numargs() const { return numargs_; }
- /// replace #1,#2,... by given MathAtom 0,1,.., _including_ the possible optional argument
+ /// replace #1,#2,... by given MathAtom 0,1,.., _including_ the possible
+ /// optional argument
void expand(std::vector<MathData> const & from, MathData & to) const;
/// number of optional arguments
size_t optionals() const;
/// is it being drawn?
bool locked() const { return lockCount_ != 0; }
///
- void unlock() const { --lockCount_; BOOST_ASSERT(lockCount_ >= 0); }
+ void unlock() const;
///
bool redefinition() const { return redefinition_; }
**/
class MacroContext {
public:
- /// construct context for insets in par (not including the ones defined in par itself)
+ /// construct context for insets in par (not including the ones
+ /// defined in par itself)
MacroContext(Buffer const & buf, Paragraph const & par);
/// Look for macro