]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lexer.ll
lexer.ll: lyric_quote was not necessary as separate state.
[lilypond.git] / lily / lexer.ll
index f0fed79c7f9b8b936233034f435acb43c09bbb32..bad1cd795461e9fe273554220d37960408940bf7 100644 (file)
@@ -1,4 +1,4 @@
-%{ // -*- mode: c++; c-file-style: "linux" -*-
+%{ // -*- mode: c++; c-file-style: "linux"; indent-tabs-mode: t -*-
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
@@ -91,11 +91,6 @@ bool is_valid_version (string s);
                 yylval = SCM_EOL;               \
         } while (0)
 
-#define start_lyric_quote() do {                \
-                yy_push_state (lyric_quote);    \
-                yylval = SCM_EOL;               \
-        } while (0)
-
 #define yylval (*lexval_)
 
 #define yylloc (*lexloc_)
@@ -124,7 +119,6 @@ SCM (* scm_parse_error_handler) (void *);
 %x figures
 %x incl
 %x lyrics
-%x lyric_quote
 %x longcomment
 %x markup
 %x notes
@@ -153,10 +147,6 @@ A          [a-zA-Z\200-\377]
 AA             {A}|_
 N              [0-9]
 ANY_CHAR       (.|\n)
-PUNCT          [][()?!:'`]
-SPECIAL_CHAR           [&@]
-NATIONAL       [\001-\006\021-\027\031\036]
-TEX            {AA}|-|{PUNCT}|{NATIONAL}|{SPECIAL_CHAR}
 WORD           {A}([-_]{A}|{A})*
 COMMAND                \\{WORD}
 
@@ -169,7 +159,6 @@ WHITE               [ \n\t\f\r]
 HORIZONTALWHITE                [ \t]
 BLACK          [^ \n\t\f\r]
 RESTNAME       [rs]
-LYRICS         ({AA}|{TEX})[^0-9 \t\n\r\f]*
 ESCAPED                [nt\\'"]
 EXTENDER       __
 HYPHEN         --
@@ -320,7 +309,7 @@ BOM_UTF8    \357\273\277
 
 
 <INITIAL,chords,lyrics,notes,figures>\\maininput           {
-       if (!is_main_input_)
+       if (!is_main_input_ && include_stack_.size () == 1)
        {
                start_main_input ();
                is_main_input_ = true;
@@ -515,7 +504,7 @@ BOM_UTF8    \357\273\277
        }
 }
 
-<quote,lyric_quote>{
+<quote>{
        \\{ESCAPED}     {
                 char c = escaped_char (YYText ()[1]);
                yylval = scm_cons (scm_from_locale_stringn (&c, 1),
@@ -545,7 +534,7 @@ BOM_UTF8    \357\273\277
 
 <lyrics>{
        \" {
-               start_lyric_quote ();
+               start_quote ();
        }
        {FRACTION}      {
                yylval =  scan_fraction (YYText ());
@@ -560,7 +549,12 @@ BOM_UTF8   \357\273\277
        {COMMAND}       {
                return scan_escaped_word (YYText_utf8 () + 1);
        }
-       {LYRICS} {
+       /* Characters needed to express durations, assignments, barchecks */
+       [*.=|]  {
+                yylval = SCM_UNSPECIFIED;
+               return YYText ()[0];
+       }
+       [^$#{}\"\\ \t\n\r\f0-9]+ {
                /* ugr. This sux. */
                string s (YYText_utf8 ());
                 yylval = SCM_UNSPECIFIED;
@@ -569,19 +563,14 @@ BOM_UTF8  \357\273\277
                if (s == "--")
                        return HYPHEN;
                s = lyric_fudge (s);
-
-               char c = s[s.length () - 1];
-               if (c == '{' ||  c == '}') // brace open is for not confusing dumb tools.
-                       here_input ().warning (
-                               _ ("Brace found at end of lyric.  Did you forget a space?"));
                yylval = ly_string2scm (s);
 
-
                return LYRICS_STRING;
        }
+       /* This should really just cover {} */
        . {
                 yylval = SCM_UNSPECIFIED;
-               return YYText ()[0]; // LYRICS already catches all multibytes.
+               return YYText ()[0]; // above catches all multibytes.
        }
 }
 <chords>{
@@ -685,26 +674,15 @@ BOM_UTF8  \357\273\277
                }
                return token_type;
        }
-       [{}]    {
-                yylval = SCM_UNSPECIFIED;
-               return YYText ()[0];
-       }
        [^$#{}\"\\ \t\n\r\f]+ {
                string s (YYText_utf8 ()); 
 
-               char c = s[s.length () - 1];
-               /* brace open is for not confusing dumb tools.  */
-               if (c == '{' ||  c == '}')
-                       here_input ().warning (
-                               _ ("Brace found at end of markup.  Did you forget a space?"));
                yylval = ly_string2scm (s);
-
-
                return STRING;
        }
        .  {
                 yylval = SCM_UNSPECIFIED;
-               return YYText()[0];  // Above is catchall for multibyte
+               return YYText ()[0];  // Above is catchall for multibyte
        }
 }