#include "symbol.hh"
+
Symbol::Symbol()
: dim(Interval(0,0),Interval(0,0))
{
- tex = "\\unknown";
+ tex = "\\unknown";
}
Symbol::Symbol(String s, Box b)
- : tex(s), dim(b)
+ : dim(b)
+{
+ tex = s;
+}
+
+/****************************************************************/
+
+Symbol
+Parametric_symbol::eval(String args1)const
{
+ svec<String> a;
+ a.add(args1);
+ return eval(a);
}
+Symbol
+Parametric_symbol::eval(String args1,String arg2)const
+{
+ svec<String> a;
+ a.add(args1);
+ a.add(arg2);
+ return eval(a);
+}
+
+Parametric_symbol::~Parametric_symbol()
+{
+}
#define SYMBOL_HH
#include "string.hh"
#include "boxes.hh"
+
struct Symbol {
String tex;
Box dim;
- Symbol (String, Box );
- static const Symbol*find_ball(int);
- static const Symbol*find_rest(int);
- static const Symbol*find_bar(String);
- Symbol() ;
+ Symbol (String, Box);
+ Symbol();
};
-/// a symbol with a variable width
-struct Stretchable_symbol {
-public:
-
- /// return a string for a symbol in this width.
- virtual String operator ()(Real width)=0;
- virtual Interval height(Real width) const =0;
- static const Stretchable_symbol* get_linestaff(int n);
+struct Parametric_symbol {
+
+ Symbol eval(String args1) const; // convenience
+ Symbol eval(String args1,String arg2) const; // convenience
+ virtual Symbol eval(svec<String> args)const =0;
+ virtual ~Parametric_symbol();
};
#endif