]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lexer.ll
*** empty log message ***
[lilypond.git] / lily / lexer.ll
index 39c9ce81d7376db1af56c9f7792f6e3d4ae9bcc6..c3f469a6b8c8ef7f8458076d5abd74862c4e2398 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1996--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1996--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
            Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
@@ -124,6 +124,7 @@ HORIZONTALWHITE             [ \t]
 BLACK          [^ \n\t\f\r]
 RESTNAME       [rs]
 NOTECOMMAND    \\{A}+
+MARKUPCOMMAND  \\({A}|[-_])+
 LYRICS         ({AA}|{TEX})[^0-9 \t\n\f]*
 ESCAPED                [nt\\'"]
 EXTENDER       __
@@ -135,7 +136,7 @@ HYPHEN              --
        // windows-suck-suck-suck
 }
 
-<INITIAL,chords,incl,lyrics,notes,figures>{
+<INITIAL,chords,incl,markup,lyrics,notes,figures>{
   "%{" {
        yy_push_state (longcomment);
   }
@@ -285,7 +286,7 @@ HYPHEN              --
        yylval.scm = sval;
        return SCM_T;
 }
-<INITIAL,notes>{ 
+<INITIAL,notes,markup>{ 
        \<\<   {
                return CHORD_OPEN;
        }
@@ -441,11 +442,11 @@ HYPHEN            --
        \" {
                start_quote ();
        }
-       {NOTECOMMAND} {
+       {MARKUPCOMMAND} {
                String str (YYText() + 1);
                SCM s = lookup_markup_command (str);
 
-               if (gh_pair_p (s)) {
+               if (gh_pair_p (s) && gh_symbol_p (gh_cdr (s)) ) {
                        yylval.scm = gh_car(s);
                        SCM tag = gh_cdr(s);
                        if (tag == ly_symbol2scm("markup0"))
@@ -454,13 +455,13 @@ HYPHEN            --
                                return MARKUP_HEAD_MARKUP0_MARKUP1;
                        else if (tag == ly_symbol2scm ("markup-list0"))
                                return MARKUP_HEAD_LIST0;
-                       else if (tag == ly_symbol2scm ("scm0"))
+                       else if (tag == ly_symbol2scm ("scheme0"))
                                return MARKUP_HEAD_SCM0;
-                       else if (tag == ly_symbol2scm ("scm0-scm1"))
+                       else if (tag == ly_symbol2scm ("scheme0-scheme1"))
                                return MARKUP_HEAD_SCM0_SCM1;
-                       else if (tag == ly_symbol2scm ("scm0-markup1"))
+                       else if (tag == ly_symbol2scm ("scheme0-markup1"))
                                return MARKUP_HEAD_SCM0_MARKUP1;
-                       else if (tag == ly_symbol2scm ("scm0-scm1-markup2"))
+                       else if (tag == ly_symbol2scm ("scheme0-scheme1-markup2"))
                                return MARKUP_HEAD_SCM0_SCM1_MARKUP2;
                        else {
                                ly_display_scm (s);
@@ -469,14 +470,8 @@ HYPHEN             --
                } else
                        return scan_escaped_word (str);
        }
-       {WORD} {
-               /* ugr. This sux. */
+       {LYRICS} {
                String s (YYText ()); 
-               if (s == "__")
-                       return yylval.i = EXTENDER;
-               if (s == "--")
-                       return yylval.i = HYPHEN;
-               s = lyric_fudge (s);
 
                char c = s[s.length () - 1];
                if (c == '{' ||  c == '}') // brace open is for not confusing dumb tools.
@@ -744,6 +739,9 @@ valid_version_b (String s)
 }
        
 
+/*
+  substittute _ adn \,
+*/
 String
 lyric_fudge (String s)
 {