.ly version update.
[lilypond.git] / lily / translator.cc
blob3e440ab335965a980109ee2f61e7e1dea3610518
1 /*
2 translator.cc -- implement Translator
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
10 #include "translator.hh"
11 #include "warn.hh"
12 #include "translator-group.hh"
13 #include "translator-def.hh"
15 #include "moment.hh"
16 #include "ly-smobs.icc"
19 Translator::~Translator ()
23 void
24 Translator::init ()
26 simple_trans_list_ = SCM_EOL;
27 trans_group_list_ = SCM_EOL;
28 properties_scm_ = SCM_EOL;
29 definition_ = SCM_EOL;
30 daddy_trans_ =0;
33 Translator::Translator ()
35 self_scm_ = SCM_EOL;
36 init ();
37 output_def_ = 0;
38 smobify_self ();
41 Translator::Translator (Translator const &s)
43 self_scm_ = SCM_EOL;
44 init ();
45 output_def_ = s.output_def_;
47 smobify_self ();
50 bool
51 Translator::is_alias_b (SCM sym) const
53 Translator_def * td = unsmob_translator_def (definition_);
54 bool b = (sym == td->type_name_);
56 for (SCM a = td->type_aliases_; !b && gh_pair_p (a); a = ly_cdr (a))
57 b = b || sym == ly_car (a);
59 return b;
62 bool
63 Translator::try_music (Music *)
65 return false;
69 Moment
70 Translator::now_mom () const
72 return daddy_trans_->now_mom ();
75 void
76 Translator::removal_processing ()
78 finalize ();
81 void
82 Translator::do_announces ()
86 Music_output_def *
87 Translator::get_output_def () const
89 return output_def_;
92 SCM
93 Translator::internal_get_property (SCM sym) const
95 return daddy_trans_->internal_get_property (sym);
98 void
99 Translator:: stop_translation_timestep ()
103 void
104 Translator::start_translation_timestep ()
108 void
109 Translator::initialize ()
113 void
114 Translator::finalize ()
121 SMOBS
125 Translator::mark_smob (SCM sm)
127 Translator * me = (Translator*) SCM_CELL_WORD_1 (sm);
128 scm_gc_mark (me->simple_trans_list_);
129 scm_gc_mark (me->trans_group_list_);
130 scm_gc_mark (me->definition_);
131 scm_gc_mark (me->properties_scm_);
133 return me->properties_scm_;
137 Translator::translator_description () const
139 return SCM_EOL;
143 Translator::static_translator_description ()const
145 return SCM_EOL;
149 IMPLEMENT_SMOBS (Translator);
150 IMPLEMENT_DEFAULT_EQUAL_P (Translator);
151 IMPLEMENT_TYPE_P(Translator,"ly:translator?");