X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmy-lily-lexer.cc;h=82948a3067447e6fe31c043f95d8257895575015;hb=30270f615f32a6b93e7b09bf55d1b8a7d7aad7ca;hp=1a46c7994cd31195627f23beff14bc683dc3f873;hpb=6bc0a8a090e82c4bce57df8e980b48cc78cb422b;p=lilypond.git diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index 1a46c7994c..82948a3067 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys + (c) 1997--1998 Han-Wen Nienhuys */ #include @@ -23,30 +23,30 @@ #include "scope.hh" static Keyword_ent the_key_tab[]={ + {"absdynamic", ABSDYNAMIC}, {"accepts", ACCEPTS}, {"bar", BAR}, {"cadenza", CADENZA}, - {"clear", CLEAR}, {"clef", CLEF}, {"cm", CM_T}, {"consists", CONSISTS}, - {"contains", CONTAINS}, {"duration", DURATION}, - {"absdynamic", ABSDYNAMIC}, + {"font", FONT}, + {"grouping", GROUPING}, + {"header", HEADER}, {"in", IN_T}, - {"translator", TRANSLATOR}, - {"type", TYPE}, - {"lyric", LYRIC}, + {"lyrics", LYRICS}, {"key", KEY}, - {"melodic" , MELODIC}, - {"musical_pitch", MUSICAL_PITCH}, - {"meter", METER}, + {"keysignature", KEYSIGNATURE}, + {"mark", MARK}, + {"musicalpitch", MUSICAL_PITCH}, + {"time", TIME_T}, + {"times", TIMES}, {"midi", MIDI}, {"mm", MM_T}, - {"multi", MULTI}, - {"header", HEADER}, + {"name", NAME}, {"notenames", NOTENAMES}, - {"octave", OCTAVE}, + {"notes" , NOTES}, {"output", OUTPUT}, {"partial", PARTIAL}, {"paper", PAPER}, @@ -54,20 +54,19 @@ static Keyword_ent the_key_tab[]={ {"property", PROPERTY}, {"pt", PT_T}, {"relative", RELATIVE}, + {"remove", REMOVE}, {"score", SCORE}, {"script", SCRIPT}, {"shape", SHAPE}, {"skip", SKIP}, - {"staff", STAFF}, {"table", TABLE}, {"spandynamic", SPANDYNAMIC}, {"symboltables", SYMBOLTABLES}, {"tempo", TEMPO}, - {"texid", TEXID}, - {"textstyle", TEXTSTYLE}, + {"translator", TRANSLATOR}, + {"type", TYPE}, {"transpose", TRANSPOSE}, {"version", VERSION}, - {"grouping", GROUPING}, {0,0} }; @@ -90,7 +89,7 @@ Identifier* My_lily_lexer::lookup_identifier (String s) { for (int i = scope_l_arr_.size (); i--; ) - if (scope_l_arr_[i]->elt_b (s)) + if (scope_l_arr_[i]->elem_b (s)) return (*scope_l_arr_[i])[s]; return 0; } @@ -111,13 +110,24 @@ My_lily_lexer::start_main_input () void My_lily_lexer::set_identifier (String name_str, Identifier* i, bool unique_b) { - Identifier *old = lookup_identifier (name_str); + Identifier *old =0; + if (scope_l_arr_.top ()->elem_b (name_str)) + old = scope_l_arr_.top ()->elem(name_str); + + if (old) { +#if 0 if (unique_b) - old->warning(_("redeclaration of \\") + name_str); + 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)); + } + (*scope_l_arr_.top ())[name_str] = i; } @@ -125,8 +135,6 @@ My_lily_lexer::~My_lily_lexer() { delete keytable_p_; delete toplevel_scope_p_ ; - - delete note_tab_p_; } @@ -135,7 +143,7 @@ My_lily_lexer::print_declarations (bool init_b) const { for (int i=scope_l_arr_.size (); i--; ) { - DOUT << "Scope no. " << i << "\n"; + DOUT << "Scope no. " << i << '\n'; scope_l_arr_[i]->print (); } } @@ -145,7 +153,7 @@ My_lily_lexer::LexerError (char const *s) { if (include_stack_.empty()) { - *mlog << _("error at EOF") << s << '\n'; + *mlog << _f ("error at EOF: %s", s) << endl; } else { @@ -164,7 +172,7 @@ My_lily_lexer::lookup_pitch (String s) bool My_lily_lexer::notename_b (String s) const { - return note_tab_p_->elt_b (s); + return note_tab_p_->elem_b (s); } void @@ -174,10 +182,10 @@ My_lily_lexer::add_notename (String s, Musical_pitch p) } void -My_lily_lexer::clear_notenames() +My_lily_lexer::set_notename_table(Notename_table *p) { delete note_tab_p_; - note_tab_p_ = new Notename_table; + note_tab_p_ = p; } char