8 Lookup::parse(Text_db&t)
15 symtables_ = new Symtables;
29 Symtable * st = (*symtables_)("balls");
30 return st->lookup(String(j));
36 return (*symtables_)("rests")->lookup(String(j));
43 return (*symtables_)("bars")->lookup(s);
50 return (*symtables_)("dots")->lookup(j);
56 return (*symtables_)("flags")->lookup(j);
60 Lookup::streepjes(int i)
73 Symbol ret = (*symtables_)("streepjes")->lookup(idx);
77 ret.tex = substitute_args(ret.tex, a);
82 /****************************************************************/
85 struct Linestaf_symbol : Parametric_symbol {
87 Linestaf_symbol(int n, Symtables*s): Parametric_symbol(s) { lines = n;}
88 Symbol eval(svec<String>)const;
93 Linestaf_symbol::eval(svec<String> w)const
95 Real wid = w[0].fvalue();
98 s.dim.x = Interval(0,wid);
99 Real dy=(lines-1)*convert_dimen(5,"pt"); // TODO!
100 s.dim.y = Interval(0,dy);
104 s.tex = (*symtables_)("param")->lookup("linestaf").tex;
105 s.tex = substitute_args(s.tex, a);
109 /****************************************************************/
112 struct Meter_sym:Parametric_symbol {
114 Meter_sym(Symtables*s) : Parametric_symbol(s){ }
115 Symbol eval(svec<String> a) const{
117 s.dim.x = Interval( convert_dimen(-5,"pt"),
118 convert_dimen(5,"pt"));
119 s.dim.y = Interval(0, convert_dimen(10,"pt") ); // todo
120 String src = (*symtables_)("param")->lookup("meter").tex;
121 s.tex = substitute_args(src,a);
125 /****************************************************************/
127 struct Stem_sym:Parametric_symbol {
129 Stem_sym(Symtables*s) : Parametric_symbol(s) { }
130 Symbol eval(svec<String> a) const {
131 Real y1 = a[0].fvalue();
132 Real y2 = a[1].fvalue();
135 s.dim.x = Interval(0,0);
136 s.dim.y = Interval(y1,y2);
138 String src = (*symtables_)("param")->lookup("stem").tex;
139 s.tex = substitute_args(src,a);
145 Lookup::meter(String )
147 return new Meter_sym(symtables_);
151 Lookup::linestaff(int n)
153 return new Linestaf_symbol(n,symtables_);
159 return new Stem_sym(symtables_);