]> git.donarmstrong.com Git - lilypond.git/blob - lily/translator.cc
($(outdir)/%.pdf): add DVIPS_FLAGS. This will
[lilypond.git] / lily / translator.cc
1 /*
2   translator.cc -- implement Translator
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #include "translator.hh"
11 #include "warn.hh"
12 #include "translator-group.hh"
13 #include "context-def.hh"
14
15 #include "moment.hh"
16 #include "ly-smobs.icc"
17
18
19 Translator::~Translator ()
20 {
21 }
22
23 void
24 Translator::init ()
25 {
26   simple_trans_list_ = SCM_BOOL_F;
27   trans_group_list_ = SCM_EOL;
28   properties_scm_ = SCM_EOL;
29   definition_ = SCM_EOL;
30   daddy_trans_ =0;
31   accepts_list_ = SCM_EOL;
32 }
33
34 Translator::Translator ()
35 {
36   self_scm_ = SCM_EOL;
37   init ();
38   output_def_ = 0;
39   smobify_self ();
40 }
41
42 Translator::Translator (Translator const &s)
43 {
44   self_scm_ = SCM_EOL;
45   init ();
46   output_def_ = s.output_def_;
47
48   smobify_self ();
49 }
50
51
52 bool
53 Translator::try_music (Music *)
54 {
55   return false;
56 }
57                             
58
59 Moment
60 Translator::now_mom () const
61 {
62   return daddy_trans_->now_mom ();
63 }
64
65 void
66 Translator::do_announces ()
67 {
68 }
69
70 Music_output_def *
71 Translator::get_output_def () const
72 {
73   return
74     (daddy_trans_)
75     ? daddy_trans_->get_output_def ()
76     : 0;
77 }
78
79 SCM
80 Translator::internal_get_property (SCM sym) const
81 {
82   return daddy_trans_->internal_get_property (sym);
83 }
84
85 void
86 Translator::stop_translation_timestep ()
87 {
88 }
89
90 /*
91   this function has 2 properties
92
93   - It is called before try_music()
94
95   - It is called before any user information enters the translators.
96   (i.e. any \property or event is not processed yet.)
97
98   */
99 void
100 Translator::start_translation_timestep ()
101 {
102 }
103
104 void
105 Translator::initialize ()
106 {
107 }
108
109 void
110 Translator::finalize ()
111 {
112 }
113
114
115 /*
116
117   SMOBS
118
119 */
120 SCM
121 Translator::mark_smob (SCM sm)
122 {
123   Translator * me = (Translator*) SCM_CELL_WORD_1 (sm);
124   scm_gc_mark (me->simple_trans_list_);
125   scm_gc_mark (me->trans_group_list_);
126   scm_gc_mark (me->definition_);  
127   scm_gc_mark (me->properties_scm_);  
128   scm_gc_mark (me->accepts_list_);
129
130   return me->properties_scm_;
131 }
132
133 SCM
134 Translator::translator_description () const
135 {
136   return SCM_EOL;
137 }
138
139 SCM
140 Translator::static_translator_description ()const
141 {
142   return SCM_EOL;
143 }
144
145
146 IMPLEMENT_SMOBS (Translator);
147 IMPLEMENT_DEFAULT_EQUAL_P (Translator);
148 IMPLEMENT_TYPE_P(Translator,"ly:translator?");
149
150 SCM
151 Translator::get_simple_trans_list()
152 {
153   return SCM_EOL;
154 }