]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/my-lily-parser.cc
release: 0.0.75
[lilypond.git] / lily / my-lily-parser.cc
index 5389803e63dff272b66fdfa09607361334fb9656..69be888d94c3bebcdea41904490e6bacb2c9dcae 100644 (file)
@@ -1,7 +1,7 @@
 /*
   my-lily-parser.cc -- implement My_lily_parser
 
-  source file of the LilyPond music typesetter
+  source file of the GNU LilyPond music typesetter
 
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
@@ -10,7 +10,7 @@
 #include "my-lily-lexer.hh"
 #include "debug.hh"
 #include "main.hh"
-#include "voice-element.hh"
+#include "music-list.hh"
 #include "musical-request.hh"
 #include "command-request.hh"
 #include "parser.hh"
@@ -42,6 +42,7 @@ My_lily_parser::print_declarations()
 {
 #ifndef NPRINT
     String s = "";
+    
     if (init_parse_b_) 
        s = "Init";
     if (!monitor->silence(s+"Declarations") && check_debug) {
@@ -50,31 +51,25 @@ My_lily_parser::print_declarations()
 #endif   
 }
 
-void
-My_lily_parser::do_init_file()
-{
-    init_parse_b_ = true;
-    set_debug();
-    lexer_p_->new_input(init_str_, source_l_);
-}
-
 void
 My_lily_parser::parse_file(String init, String s)
 {
     lexer_p_ = new My_lily_lexer;
     init_str_ = init;
     
+    *mlog << "Parsing ... ";
     
+    init_parse_b_ = true;
+    lexer_p_->new_input( init, source_l_);
+    do_yyparse();
+    print_declarations();
 
-    *mlog << "Parsing ... ";
-    lexer_p_->new_input(s, source_l_);
-    if (!lexer_p_->source_file_l()) {
-       warning("Can not find toplevel file. Ignoring " + s);
-       return; 
-    }
+    init_parse_b_ = false;
+    lexer_p_->new_input( s , source_l_);
     do_yyparse();
     print_declarations();
 
+    
     if(!define_spot_array_.empty())
        warning("Braces don't match.");
 }
@@ -109,13 +104,13 @@ void
 My_lily_parser::set_duration_mode(String s)
 {
     s = s.upper_str();
-    last_duration_mode = (s== "LAST");
+    last_duration_mode_b_ = (s== "LAST");
 }
 
 void
 My_lily_parser::set_default_duration(Duration const *d)
 {
-    last_duration_mode = false;
+    last_duration_mode_b_ = false;
     default_duration_ = *d;
 }
 
@@ -123,15 +118,15 @@ My_lily_parser::set_default_duration(Duration const *d)
 void
 My_lily_parser::set_last_duration(Duration const *d)
 {
-    if (last_duration_mode)
+    if (last_duration_mode_b_)
        default_duration_ = *d;
 }
 
 
-Voice_element*
+Chord*
 My_lily_parser::get_word_element(Text_def* tdef_p, Duration * duration_p)
 {
-    Voice_element* velt_p = new Voice_element;
+    Chord* velt_p = new Voice_element;
     
     Lyric_req* lreq_p = new Lyric_req(tdef_p);
 
@@ -144,15 +139,16 @@ My_lily_parser::get_word_element(Text_def* tdef_p, Duration * duration_p)
     return velt_p;
 }
 
-Voice_element *
+Chord *
 My_lily_parser::get_rest_element(String s,  Duration * duration_p )
 {    
-    Voice_element* velt_p = new Voice_element;
+    Chord* velt_p = new Voice_element;
     velt_p->set_spot( here_input());
 
     if (s=="s") { /* Space */
        Skip_req * skip_p = new Skip_req;
-       skip_p->duration_ = duration_p->length();
+       skip_p->duration_ = *duration_p;
+
        skip_p->set_spot( here_input());
        velt_p->add(skip_p);
     }
@@ -172,10 +168,10 @@ My_lily_parser::get_rest_element(String s,  Duration * duration_p )
     return velt_p;
 }
 
-Voice_element *
+Chord *
 My_lily_parser::get_note_element(Note_req *rq, Duration * duration_p )
 {
-    Voice_element*v = new Voice_element;
+    Chord*v = new Voice_element;
     v->set_spot( here_input());
 
     v->add(rq);
@@ -264,12 +260,12 @@ My_lily_parser::My_lily_parser(Sources * source_l)
     default_octave_i_ = 0;
     textstyle_str_="roman";            // in lexer?
     error_level_i_ = 0;
-    last_duration_mode = false;
+    last_duration_mode_b_ = true;
     fatal_error_i_ = 0;
 }
 
 void
-My_lily_parser::add_requests(Voice_element*v)
+My_lily_parser::add_requests(Chord*v)
 {
     for (int i = 0; i < pre_reqs.size(); i++) {
        v->add(pre_reqs[i]);