X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmy-lily-lexer.cc;h=ab0bd3f3a82b295e16ec8a753acd2b7bbc05e50d;hb=d3c90f63573d53cfb191cc48f8f6ee672a5ca37a;hp=c1051d60191501cc9cc7ccf7af1e4a28b2f17370;hpb=76014fe170f4217374f4726d54c2a46c60f73e67;p=lilypond.git diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index c1051d6019..ab0bd3f3a8 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -3,14 +3,15 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1999 Han-Wen Nienhuys + (c) 1997--2000 Han-Wen Nienhuys */ #include #include -#include "notename-table.hh" + #include "interval.hh" #include "identifier.hh" +#include "lily-guile.hh" #include "parser.hh" #include "keyword.hh" #include "my-lily-lexer.hh" @@ -19,16 +20,19 @@ #include "main.hh" #include "scope.hh" #include "input.hh" +#include "moment.hh" static Keyword_ent the_key_tab[]={ + {"autochange", AUTOCHANGE}, {"spanrequest", SPANREQUEST}, + {"commandspanrequest", COMMANDSPANREQUEST}, {"simultaneous", SIMULTANEOUS}, {"sequential", SEQUENTIAL}, {"accepts", ACCEPTS}, {"alternative", ALTERNATIVE}, {"bar", BAR}, {"breathe", BREATHE}, - {"cadenza", CADENZA}, + {"char", CHAR_T}, {"chordmodifiers", CHORDMODIFIERS}, {"chords", CHORDS}, {"clef", CLEF}, @@ -53,6 +57,7 @@ static Keyword_ent the_key_tab[]={ {"name", NAME}, {"notenames", NOTENAMES}, {"notes", NOTES}, + {"outputproperty", OUTPUTPROPERTY}, {"partial", PARTIAL}, {"paper", PAPER}, {"penalty", PENALTY}, @@ -63,18 +68,14 @@ static Keyword_ent the_key_tab[]={ {"repeat", REPEAT}, {"repetitions", REPETITIONS}, {"addlyrics", ADDLYRICS}, - {"scm", SCM_T}, - {"scmfile", SCMFILE}, {"score", SCORE}, {"script", SCRIPT}, - {"shape", SHAPE}, {"skip", SKIP}, {"textscript", TEXTSCRIPT}, {"tempo", TEMPO}, {"translator", TRANSLATOR}, {"transpose", TRANSPOSE}, {"type", TYPE}, - {"version", VERSION}, {0,0} }; @@ -84,8 +85,6 @@ My_lily_lexer::My_lily_lexer() toplevel_scope_p_ = new Scope; scope_l_arr_.push (toplevel_scope_p_); errorlevel_i_ = 0; - note_tab_p_ = new Notename_table; - chordmodifier_tab_p_ = new Notename_table; main_input_b_ = false; } @@ -98,7 +97,7 @@ My_lily_lexer::lookup_keyword (String s) Identifier* My_lily_lexer::lookup_identifier (String s) { - SCM sym = ly_symbol (s.ch_C()); + SCM sym = ly_symbol2scm (s.ch_C()); for (int i = scope_l_arr_.size (); i--; ) if (scope_l_arr_[i]->elem_b (sym)) @@ -109,17 +108,8 @@ My_lily_lexer::lookup_identifier (String s) void My_lily_lexer::start_main_input () { - if (!lily_monitor->silent_b ("InitDeclarations") && check_debug) - print_declarations (true); - if (!lily_monitor->silent_b ("InitLexer") && check_debug) - set_debug (1); - - new_input (main_input_str_, source_global_l); - if (safe_global_b) - allow_includes_b_ = false; - - print_declarations(true); + allow_includes_b_ = allow_includes_b_ && !(safe_global_b); } void @@ -132,15 +122,11 @@ My_lily_lexer::set_identifier (String name_str, Identifier* i, bool ) if (old) { -#if 0 - if (unique_b) - old->warning(_f ("redeclaration of `\\%s\'", name_str)); -#endif delete old; } if (lookup_keyword (name_str) >= 0) { - warning ( _f ("Identifier name is a keyword (`%s')", name_str)); + warning ( _f ("Identifier name is a keyword: `%s'", name_str)); } scope_l_arr_.top ()->elem (name_str) = i; @@ -148,28 +134,18 @@ My_lily_lexer::set_identifier (String name_str, Identifier* i, bool ) My_lily_lexer::~My_lily_lexer() { - delete chordmodifier_tab_p_; delete keytable_p_; delete toplevel_scope_p_ ; - delete note_tab_p_; } -void -My_lily_lexer::print_declarations (bool ) const -{ - for (int i=scope_l_arr_.size (); i--; ) - { - DOUT << "Scope no. " << i << '\n'; - scope_l_arr_[i]->print (); - } -} + void My_lily_lexer::LexerError (char const *s) { if (include_stack_.empty()) { - *mlog << _f ("error at EOF: %s", s) << endl; + progress_indication (_f ("error at EOF: %s", s)+ String ("\n")); } else { @@ -179,44 +155,6 @@ My_lily_lexer::LexerError (char const *s) } } -Musical_pitch -My_lily_lexer::lookup_notename (String s) -{ - return (*note_tab_p_)[s]; -} - -Musical_pitch -My_lily_lexer::lookup_chordmodifier (String s) -{ - return (*chordmodifier_tab_p_)[s]; -} - -bool -My_lily_lexer::notename_b (String s) const -{ - return note_tab_p_->elem_b (s); -} - -void -My_lily_lexer::set_notename_table (Notename_table *p) -{ - delete note_tab_p_; - note_tab_p_ = p; -} - -bool -My_lily_lexer::chordmodifier_b (String s) const -{ - return chordmodifier_tab_p_->elem_b (s); -} - -void -My_lily_lexer::set_chordmodifier_table (Notename_table *p) -{ - delete chordmodifier_tab_p_; - chordmodifier_tab_p_ = p; -} - char My_lily_lexer::escaped_char(char c) const {