]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/parser.yy
Issue 1334: A \score-lines markup list command for multi-lines embedded scores
[lilypond.git] / lily / parser.yy
index 3f4faf5d7c06ceadc599fade3b9a08355ed3ee16..478d05377540e10033d55fb569792645d35e3612 100644 (file)
@@ -3236,7 +3236,7 @@ full_markup:
        ;
 
 markup_top:
-       markup_list {
+       simple_markup_list {
                $$ = scm_list_2 (ly_lily_module_constant ("line-markup"),  $1);
        }
        | markup_head_1_list simple_markup      {
@@ -3262,7 +3262,7 @@ markup_scm:
        ;
                        
 
-markup_list:
+simple_markup_list:
        markup_composed_list {
                $$ = $1;
        }
@@ -3278,6 +3278,24 @@ markup_list:
        }
        ;
 
+markup_list:
+       simple_markup_list
+       | markup_score
+       {
+               $$ = scm_list_1 (scm_list_2 (ly_lily_module_constant ("score-lines-markup-list"), $1));
+       }
+       ;
+
+markup_score:
+       SCORE {
+               SCM nn = parser->lexer_->lookup_identifier ("pitchnames");
+               parser->lexer_->push_note_state (nn);
+       } '{' score_body '}' {
+               $$ = $4;
+               parser->lexer_->pop_state ();
+       }
+       ;
+
 markup_composed_list:
        markup_head_1_list markup_braced_list {
                $$ = scm_call_2 (ly_lily_module_constant ("map-markup-command-list"), $1, $2);
@@ -3296,7 +3314,7 @@ markup_braced_list_body:
        | markup_braced_list_body markup {
                $$ = scm_cons ($2, $1);
        }
-       | markup_braced_list_body markup_list {
+       | markup_braced_list_body simple_markup_list {
                $$ = scm_reverse_x ($2, $1);
        }
        ;
@@ -3345,13 +3363,6 @@ simple_markup:
        STRING {
                $$ = make_simple_markup ($1);
        }
-       | SCORE {
-               SCM nn = parser->lexer_->lookup_identifier ("pitchnames");
-               parser->lexer_->push_note_state (nn);
-       } '{' score_body '}' {
-               $$ = scm_list_2 (ly_lily_module_constant ("score-markup"), $4);
-               parser->lexer_->pop_state ();
-       }
        | MARKUP_FUNCTION markup_command_basic_arguments {
                $$ = scm_cons ($1, scm_reverse_x ($2, SCM_EOL));
        }
@@ -3359,6 +3370,10 @@ simple_markup:
        {
                $$ = $2;
        }
+       | markup_score
+       {
+               $$ = scm_list_2 (ly_lily_module_constant ("score-markup"), $1);
+       }
        ;
 
 markup: