]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lexer.ll
Issue 2984: Use define-void-function rather than define-music-function in several...
[lilypond.git] / lily / lexer.ll
index 60a41943a61ce2b2148e2717fa5d972370d7ea87..e74dced0885534a2bee9ad22115dec42d60b4ef5 100644 (file)
@@ -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
@@ -165,7 +159,7 @@ WHITE               [ \n\t\f\r]
 HORIZONTALWHITE                [ \t]
 BLACK          [^ \n\t\f\r]
 RESTNAME       [rs]
-ESCAPED                [nt\\'"]
+ESCAPED                [nt\\''""]
 EXTENDER       __
 HYPHEN         --
 BOM_UTF8       \357\273\277
@@ -253,7 +247,7 @@ BOM_UTF8    \357\273\277
 <INITIAL,chords,lyrics,notes,figures>\\sourcefileline{WHITE}*  {
        yy_push_state (sourcefileline);
 }
-<version>\"[^"]*\"     { /* got the version number */
+<version>\"[^""]*\"     { /* got the version number */
        string s (YYText_utf8 () + 1);
        s = s.substr (0, s.rfind ('\"'));
 
@@ -318,6 +312,7 @@ BOM_UTF8    \357\273\277
        if (!is_main_input_)
        {
                start_main_input ();
+               main_input_level_ = include_stack_.size ();
                is_main_input_ = true;
        }
        else
@@ -510,7 +505,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),
@@ -540,7 +535,7 @@ BOM_UTF8    \357\273\277
 
 <lyrics>{
        \" {
-               start_lyric_quote ();
+               start_quote ();
        }
        {FRACTION}      {
                yylval =  scan_fraction (YYText ());
@@ -704,11 +699,9 @@ BOM_UTF8   \357\273\277
         yylval = SCM_UNSPECIFIED;
         if (is_main_input_)
        {
-               /* 2 = init.ly + current file.
-                  > because we're before closing, but is_main_input_ should
-                  reflect after.
-               */ 
-               is_main_input_ = include_stack_.size () > 2;
+               is_main_input_ = include_stack_.size () > main_input_level_;
+               if (!is_main_input_)
+                       main_input_level_ = 0;
                if (!close_input () || !is_main_input_)
                /* Returns YY_NULL */
                        yyterminate ();