]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.74pre
authorfred <fred>
Sun, 24 Mar 2002 19:47:42 +0000 (19:47 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:47:42 +0000 (19:47 +0000)
ANNOUNCE
lily/input-translator.cc [new file with mode: 0644]

index 96ae973635d97cdfd8511465d63175ed24aa7b41..987b26c7cbd998a4c4f524d95d4cda27b13fb101 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -29,11 +29,10 @@ Wendy (hanwen@stack.nl)
 
        Those deserving special mention (in no particular order):
 Esther, Marijke, Heike, Inge, Judith, Hannah, Auke, Ilse, Evelyn,
-Maartje, Suzanne, Ilse (gee, again?), my friends in the
-Eindhovens Jongeren Ensemble and last (but certainly not least)
+Maartje, Suzanne, Ilse (gee, again?) and last (but certainly not least)
 Janneke!
 
-       HW
+       HWN
 
        That's a nice thought, Wendy.  I've got a few too, to spread
 the credits a bit (Again, no particular order) Michelle, Illushka, 
@@ -42,6 +41,11 @@ Eva, Roos, Judith, and, of course, Wendy!
 
        JCN
  
+
+Of course, our other friends in the `Eindhovens Jongeren Ensemble'
+(http://www.stack.nl/~hanwen/eje.html) cannot go unmentioned too.
+
+
                               --- * ---
 
 [ And now the serious part ]
@@ -120,7 +124,7 @@ general n-plet (triplet, quadruplets, etc.), lyrics, transposition
 dynamics (both absolute and hairpin style) clef changes, meter
 changes, cadenza-mode, key changes, repeat bars
 
-[Kudos to the FSF, all linux hackers, and --of course-- especially
+[Kudos to the FSF, all Linux hackers, and --of course-- especially
 GrandMaster Linus T, for The Kernel and The Announce :-]
 
        Han-Wen Nienhuys <hanwen@stack.nl>
diff --git a/lily/input-translator.cc b/lily/input-translator.cc
new file mode 100644 (file)
index 0000000..a90325b
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+  input-translator.cc -- implement Input_translator
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+//#include "translator-admin.hh"
+#include "debug.hh"
+#include "engraver.hh"
+#include "input-translator.hh"
+#include "parray.hh"
+#include "input-translator.hh"
+#include "engraver-group.hh"
+
+bool
+Input_translator::is_name_b(String n)
+{
+    for (int i=0; i < alias_str_arr_.size(); i++)
+       if (alias_str_arr_[i] == n)
+           return true;
+    return false;
+}
+
+void
+Input_translator::print() const
+{
+#ifndef NPRINT
+    mtor << base_str_ <<" " << type_str_<<" {\n";
+    mtor << "Consists of ";
+    for (int i=0; i< consists_str_arr_.size(); i++)
+       mtor << consists_str_arr_[i] << ',';
+    if (contains_itrans_p_list_.size())
+       mtor << "\nContains " ;
+    for (iter(contains_itrans_p_list_.top(), i); i.ok(); i++) 
+       i->print();
+    mtor << "}\n";
+#endif 
+}
+
+
+
+Input_translator *
+Input_translator::recursive_find(String nm)
+{
+    if ( is_name_b( nm) )
+       return this;
+
+    Input_translator * r =0;
+    iter(contains_itrans_p_list_.top(), i);
+    for (; !r &&i.ok(); i++) {
+       if (i->recursive_find(nm))
+           r = i.ptr();
+    }
+
+    return r;
+}
+
+Input_translator *
+Input_translator::find_itrans_l(String nm)
+{
+    for (iter(contains_itrans_p_list_.top(), i); i.ok(); i++)
+       if (i->is_name_b( nm))
+           return i;
+
+    return 0;
+}
+
+
+Engraver_group_engraver *
+Input_translator::get_group_engraver_p()
+{
+    assert (base_str_ == "Engraver");
+    Engraver_group_engraver * grav_p = (Engraver_group_engraver*)
+       get_engraver_p(type_str_);
+
+    for (int i=0; i < consists_str_arr_.size(); i++) {
+       grav_p->add( get_engraver_p( consists_str_arr_[i]) );
+    }
+    grav_p->itrans_l_ = this;
+    grav_p->id_str_ = default_id_str_;
+    return grav_p;
+}
+
+#if 0
+Performer_group_performer*
+Input_translator::get_group_performer_p()
+{    
+    assert (base_str_ == "Performer");
+    Performer_group_performer * grav_p = (Performer_group_performer*)
+       get_performer_p(type_str_);
+
+    for (int i=0; i < consists_str_arr_.size(); i++) {
+       grav_p->add( get_performer_p( consists_str_arr_[i]) );
+    }
+    grav_p->itrans_l_ = this;
+    grav_p->id_str_ = default_id_str_;
+    return grav_p;
+}
+#endif    
+
+bool
+Input_translator::accept_req_b()
+{
+    return ! contains_itrans_p_list_.size();
+}
+
+void
+Input_translator::add(Input_translator *ip)
+{
+    contains_itrans_p_list_.bottom().add(ip);
+}
+
+Input_translator*
+Input_translator::get_default_itrans_l()
+{
+    if ( contains_itrans_p_list_.size() )
+       return contains_itrans_p_list_.top();
+    else
+       return 0;
+}
+
+
+Input_translator_list::Input_translator_list(Input_translator_list const &s)
+{
+    for (PCursor<Input_translator*> pc(s); pc.ok(); pc++) {
+       Input_translator *q = pc;
+       Input_translator *p=new Input_translator(*q) ; 
+       bottom().add(p);
+    }
+}