// -*- C++ -*-
-#ifndef MATHMACROTABLE
-#define MATHMACROTABLE
+#ifndef MATH_MACROTABLE_H
+#define MATH_MACROTABLE_H
#include <map>
#include "LString.h"
-
-#ifdef __GNUG__
-#pragma interface
-#endif
+#include "math_atom.h"
-class MathMacro;
-class MathMacroTemplate;
///
-struct MathMacroTable {
+class MathMacroTable {
public:
///
- static MathMacroTemplate & provideTemplate(string const &, int);
+ static void create(MathAtom const &);
///
- static MathMacroTemplate & provideTemplate(string const &);
+ static MathAtom & provide(string const & name);
///
- static bool hasTemplate(string const &);
+ static bool has(string const & name);
///
- static MathMacro * cloneTemplate(string const &);
+ static void dump();
private:
///
- static void builtinMacros();
- ///
- static bool built;
- ///
- typedef std::map<string, MathMacroTemplate *> table_type;
+ typedef std::map<string, MathAtom> table_type;
//
static table_type macro_table;
- ///
- static void dump();
};
+
#endif