]> git.donarmstrong.com Git - lilypond.git/commitdiff
Allow embedded Scheme inside of markup expressions
authorDavid Kastrup <dak@gnu.org>
Wed, 16 Nov 2011 22:18:35 +0000 (23:18 +0100)
committerDavid Kastrup <dak@gnu.org>
Tue, 22 Nov 2011 22:37:36 +0000 (23:37 +0100)
lily/parser.yy

index 24c2bdcd34653a314085bb8bb78683175351547a..eef98eb8cbb55f5b418a1d04e76ebeba30edb76e 100644 (file)
@@ -2862,6 +2862,21 @@ markup_top:
        }
        ;
 
+markup_scm:
+       embedded_scm_bare
+       {
+               if (Text_interface::is_markup ($1))
+                       MYBACKUP (MARKUP_IDENTIFIER, $1, @1);
+               else if (Text_interface::is_markup_list ($1))
+                       MYBACKUP (MARKUPLIST_IDENTIFIER, $1, @1);
+               else {
+                       PARSER->parser_error (@1, _("markup expected"));
+                       MYBACKUP (MARKUP_IDENTIFIER, scm_string (SCM_EOL), @1);
+               }
+       } BACKUP
+       ;
+                       
+
 markup_list:
        MARKUPLIST_IDENTIFIER {
                $$ = $1;
@@ -2875,6 +2890,10 @@ markup_list:
        | markup_command_list {
                $$ = scm_list_1 ($1);
        }
+       | markup_scm MARKUPLIST_IDENTIFIER
+       {
+               $$ = $2;
+       }
        ;
 
 markup_composed_list:
@@ -2965,6 +2984,10 @@ simple_markup:
        | MARKUP_FUNCTION markup_command_basic_arguments {
                $$ = scm_cons ($1, scm_reverse_x ($2, SCM_EOL));
        }
+       | markup_scm MARKUP_IDENTIFIER
+       {
+               $$ = $2;
+       }
        ;
 
 markup: