From: David Kastrup Date: Wed, 16 May 2012 18:32:00 +0000 (+0200) Subject: parser.yy: split function_arglist_nonbackup rule into closed and open variants X-Git-Tag: release/2.15.39-1~9 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d06ebc90ec926e435ec00f5fb18dec838928df20;p=lilypond.git parser.yy: split function_arglist_nonbackup rule into closed and open variants This allows more cases where optional arguments are not really optional to accept music arguments not enclosed in braces. --- diff --git a/lily/parser.yy b/lily/parser.yy index 49acd012d5..08e3ed7adf 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -481,6 +481,8 @@ If we give names, Bison complains. %type function_arglist_optional %type function_arglist_backup %type function_arglist_nonbackup +%type function_arglist_nonbackup_common +%type function_arglist_closed_nonbackup %type function_arglist_skip %type function_arglist_bare %type function_arglist_closed @@ -1309,21 +1311,13 @@ function_arglist_skip: ; -function_arglist_nonbackup: +function_arglist_nonbackup_common: EXPECT_OPTIONAL EXPECT_PITCH function_arglist pitch_also_in_chords { $$ = scm_cons ($4, $3); } | EXPECT_OPTIONAL EXPECT_DURATION function_arglist_closed duration_length { $$ = scm_cons ($4, $3); } - | EXPECT_OPTIONAL EXPECT_SCM function_arglist embedded_scm_arg_closed - { - $$ = check_scheme_arg (parser, @4, $4, $3, $2); - } - | EXPECT_OPTIONAL EXPECT_SCM function_arglist_closed bare_number_closed - { - $$ = check_scheme_arg (parser, @4, $4, $3, $2); - } | EXPECT_OPTIONAL EXPECT_SCM function_arglist_closed FRACTION { $$ = check_scheme_arg (parser, @4, $4, $3, $2); @@ -1362,6 +1356,29 @@ function_arglist_nonbackup: } ; +function_arglist_closed_nonbackup: + function_arglist_nonbackup_common + | EXPECT_OPTIONAL EXPECT_SCM function_arglist embedded_scm_arg_closed + { + $$ = check_scheme_arg (parser, @4, $4, $3, $2); + } + | EXPECT_OPTIONAL EXPECT_SCM function_arglist_closed bare_number_closed + { + $$ = check_scheme_arg (parser, @4, $4, $3, $2); + } + ; + +function_arglist_nonbackup: + function_arglist_nonbackup_common + | EXPECT_OPTIONAL EXPECT_SCM function_arglist embedded_scm_arg + { + $$ = check_scheme_arg (parser, @4, $4, $3, $2); + } + | EXPECT_OPTIONAL EXPECT_SCM function_arglist_closed bare_number + { + $$ = check_scheme_arg (parser, @4, $4, $3, $2); + } + ; function_arglist_keep: function_arglist_common @@ -1630,7 +1647,7 @@ function_arglist_common_minus: function_arglist_closed: function_arglist_closed_common - | function_arglist_nonbackup + | function_arglist_closed_nonbackup ; function_arglist_closed_common: