From: David Kastrup Date: Thu, 31 Oct 2013 14:22:07 +0000 (+0100) Subject: Issue 3639/2: allow chords in optional arguments X-Git-Tag: release/2.17.95-1~4^2~4 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=792175df3301a04ba29f3f5b9d2d7f50c318b5e3;p=lilypond.git Issue 3639/2: allow chords in optional arguments --- diff --git a/lily/parser.yy b/lily/parser.yy index 79afe5ac11..ab09f537b2 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -325,6 +325,7 @@ If we give names, Bison complains. %token EMBEDDED_LILY "#{" %token BOOK_IDENTIFIER +%token CHORD_BODY_IDENTIFIER %token CHORD_MODIFIER %token CHORD_REPETITION %token CONTEXT_DEF_IDENTIFIER @@ -1519,6 +1520,17 @@ function_arglist_backup_common: MYBACKUP (REPEAT_IDENTIFIER, scm_cons ($5, $6), @4); } } + | EXPECT_OPTIONAL EXPECT_SCM function_arglist_backup chord_body + { + if (scm_is_true (scm_call_1 ($2, $4))) + { + $$ = $3; + MYREPARSE (@4, $2, CHORD_BODY_IDENTIFIER, $4); + } else { + $$ = scm_cons (loc_on_music (@3, $1), $3); + MYBACKUP (CHORD_BODY_IDENTIFIER, $4, @4); + } + } | EXPECT_OPTIONAL EXPECT_SCM function_arglist_backup post_event_nofinger { if (scm_is_true (scm_call_1 ($2, $4))) @@ -2533,6 +2545,7 @@ chord_body: { $$ = MAKE_SYNTAX ("event-chord", @$, scm_reverse_x ($2, SCM_EOL)); } + | CHORD_BODY_IDENTIFIER ; chord_body_elements: