]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lexer.ll
(set_spacing_rods): new
[lilypond.git] / lily / lexer.ll
index 2e4d96401ef029c1881a2e09e8d3f9713d4ff53f..2372e6827859f7d12e1f4b8a550b210a418f0224 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1996--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1996--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
            Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
@@ -109,7 +109,7 @@ SCM (* scm_parse_error_handler) (void *);
 %x lyrics
 %x lyric_quote
 %x longcomment
-%x markup 
+%x markup
 %x notes
 %x quote
 %x renameinput
@@ -149,7 +149,7 @@ HYPHEN              --
        // windows-suck-suck-suck
 }
 
-<INITIAL,chords,incl,markup,lyrics,notes,figures>{
+<INITIAL,chords,figures,incl,lyrics,markup,notes>{
   "%{" {
        yy_push_state (longcomment);
   }
@@ -216,7 +216,7 @@ HYPHEN              --
        }
        <<EOF>>         {
                LexerError (_ ("EOF found inside a comment").to_str0 ());
-               main_input_b_ = false;
+               is_main_input_ = false;
                if (! close_input ()) 
                  yyterminate (); // can't move this, since it actually rets a YY_NULL
        }
@@ -224,10 +224,10 @@ HYPHEN            --
 
 
 <INITIAL,chords,lyrics,notes,figures>\\maininput           {
-       if (!main_input_b_)
+       if (!is_main_input_)
        {
                start_main_input ();
-               main_input_b_ = true;
+               is_main_input_ = true;
        }
        else
                error (_ ("\\maininput not allowed outside init files"));
@@ -274,12 +274,12 @@ HYPHEN            --
 <chords,notes,figures>R                {
        return MULTI_MEASURE_REST;
 }
-<INITIAL,markup,chords,lyrics,notes,figures>#  { //embedded scm
+<INITIAL,chords,figures,lyrics,markup,notes>#  { //embedded scm
        int n = 0;
        Input hi = here_input();
        hi.step_forward ();
        SCM sval = ly_parse_scm (hi.start_, &n, hi,
-               be_safe_global && main_input_b_);
+               be_safe_global && is_main_input_);
 
        if (sval == SCM_UNDEFINED)
        {
@@ -536,9 +536,9 @@ HYPHEN              --
 }
 
 <<EOF>> {
-       if (main_input_b_)
+       if (is_main_input_)
        {
-               main_input_b_ = false;
+               is_main_input_ = false;
                if (!close_input ())
                /* Returns YY_NULL */
                        yyterminate ();
@@ -681,15 +681,16 @@ Lily_lexer::scan_escaped_word (String str)
 
 //     SCM sym = ly_symbol2scm (str.to_str0 ());
 
-       int l = lookup_keyword (str);
-       if (l != -1) {
-               return l;
-       }
+       int i = lookup_keyword (str);
+       if (i == MARKUP && is_lyric_state ())
+               return LYRIC_MARKUP;
+       if (i != -1)
+               return i;
+
        SCM sid = lookup_identifier (str);
        if (is_music_function (sid))
        {
                yylval.scm = get_music_function_transform (sid);
-               
                return music_function_type (yylval.scm);
        }