X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmy-lily-lexer.cc;h=bd57eb0899ddb7e365d0d8f27d9ef4fabf7d1cd1;hb=74d6716dba8eb960e7d973b5473fa07758304328;hp=4ff5298864e759fd46ff48b759ca67086acad1d7;hpb=42a9b7a38ecd88df8e89a4266a951e0525328615;p=lilypond.git diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index 4ff5298864..bd57eb0899 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--2002 Han-Wen Nienhuys + (c) 1997--2003 Han-Wen Nienhuys */ #include @@ -26,18 +26,19 @@ static Keyword_ent the_key_tab[]={ + {"acciaccatura", ACCIACCATURA}, + {"accepts", ACCEPTS}, + {"addlyrics", ADDLYRICS}, {"alias", ALIAS}, + {"alternative", ALTERNATIVE}, {"apply", APPLY}, {"applycontext", APPLYCONTEXT}, + {"applyoutput", APPLYOUTPUT}, + {"appoggiatura", APPOGGIATURA}, {"autochange", AUTOCHANGE}, - {"simultaneous", SIMULTANEOUS}, - {"sequential", SEQUENTIAL}, - {"accepts", ACCEPTS}, - {"alternative", ALTERNATIVE}, {"bar", BAR}, {"breathe", BREATHE}, {"chordmodifiers", CHORDMODIFIERS}, - {"chordnames", CHORDNAMES}, {"chords", CHORDS}, {"clef", CLEF}, {"consists", CONSISTS}, @@ -45,39 +46,41 @@ static Keyword_ent the_key_tab[]={ {"context", CONTEXT}, {"default", DEFAULT}, {"denies", DENIES}, - {"duration", DURATION}, - {"grobdescriptions", GROBDESCRIPTIONS}, + {"description", DESCRIPTION}, {"figures",FIGURES}, {"grace", GRACE}, + {"grobdescriptions", GROBDESCRIPTIONS}, {"header", HEADER}, - {"lyrics", LYRICS}, {"key", KEY}, + {"lyrics", LYRICS}, {"mark", MARK}, {"markup", MARKUP}, - {"once", ONCE}, - {"pitch", PITCH}, - {"time", TIME_T}, - {"times", TIMES}, {"midi", MIDI}, {"name", NAME}, - {"pitchnames", PITCHNAMES}, + {"new", NEWCONTEXT}, {"notes", NOTES}, - {"outputproperty", OUTPUTPROPERTY}, + {"octave", OCTAVE}, + {"once", ONCE}, {"override", OVERRIDE}, - {"set", SET}, - {"rest", REST}, - {"revert", REVERT}, - {"partial", PARTIAL}, {"paper", PAPER}, + {"partcombine", PARTCOMBINE}, + {"partial", PARTIAL}, + {"pitchnames", PITCHNAMES}, {"property", PROPERTY}, {"relative", RELATIVE}, {"remove", REMOVE}, {"repeat", REPEAT}, - {"addlyrics", ADDLYRICS}, - {"partcombine", PARTCOMBINE}, + {"rest", REST}, + {"revert", REVERT}, {"score", SCORE}, + {"sequential", SEQUENTIAL}, + {"set", SET}, + {"simultaneous", SIMULTANEOUS}, {"skip", SKIP}, + {"tag", TAG}, {"tempo", TEMPO}, + {"time", TIME_T}, + {"times", TIMES}, {"translator", TRANSLATOR}, {"transpose", TRANSPOSE}, {"type", TYPE}, @@ -88,7 +91,13 @@ static Keyword_ent the_key_tab[]={ My_lily_lexer::My_lily_lexer () { + // yy_flex_debug = 1; + keytable_ = new Keyword_table (the_key_tab); + + chordmodifier_tab_ = scm_make_vector (gh_int2scm (1), SCM_EOL); + pitchname_tab_ = scm_make_vector (gh_int2scm (1), SCM_EOL); + scopes_ = SCM_EOL; add_scope(ly_make_anonymous_module()); @@ -146,7 +155,7 @@ My_lily_lexer::lookup_identifier (String s) return scm_variable_ref(var); } - return SCM_UNSPECIFIED; + return SCM_UNDEFINED; } void @@ -154,6 +163,10 @@ My_lily_lexer::start_main_input () { new_input (main_input_string_, &global_input_file->sources_); allow_includes_b_ = allow_includes_b_ && ! (safe_global_b); + + scm_module_define (gh_car (scopes_), + ly_symbol2scm ("input-file-name"), + scm_makfrom0str (main_input_string_.to_str0())); } void @@ -227,21 +240,3 @@ My_lily_lexer::prepare_for_next_token () { last_input_ = here_input(); } - -#if 0 -SCM -My_lily_lexer::scan_markup_word (String s) -{ - /* - TODO: better implementation: - - - make a table of markup functions, for quicker lookup - - - error handling. - - */ - SCM s = scm_c_eval_str ((s + "-markup").to_str0()); - yylval.scm = s; - return MARKUP_HEAD; -} -#endif