They cannot be embedded LilyPond since #{ 2 . 2 #} already is valid
music.
Property paths must have at least two syntactic elements to be
recognized as such and must not start with a Scheme expression.
Technically, 3 . #'() counts.
This affects overrides and sets as well.
identifier_init:
identifier_init_nonumber
| number_expression
identifier_init:
identifier_init_nonumber
| number_expression
+ | symbol_list_part_bare '.' property_path
+ {
+ $$ = scm_reverse_x ($1, $3);
+ }
+ | symbol_list_part_bare ',' property_path
+ {
+ $$ = scm_reverse_x ($1, $3);
+ }
| post_event_nofinger post_events
{
$$ = scm_reverse_x ($2, SCM_EOL);
| post_event_nofinger post_events
{
$$ = scm_reverse_x ($2, SCM_EOL);
+symbol_list_part_bare:
+ STRING
+ {
+ $$ = try_string_variants (Lily::key_list_p, $1);
+ if (SCM_UNBNDP ($$)) {
+ parser->parser_error (@1, _("not a key"));
+ $$ = SCM_EOL;
+ } else
+ $$ = scm_reverse ($$);
+ }
+ | UNSIGNED
+ {
+ $$ = scm_list_1 ($1);
+ }
+ ;
function_arglist_nonbackup:
function_arglist_common
function_arglist_nonbackup:
function_arglist_common
$$ = scm_difference ($2, SCM_UNDEFINED);
}
| string
$$ = scm_difference ($2, SCM_UNDEFINED);
}
| string
+ | symbol_list_part_bare '.' property_path
+ {
+ $$ = scm_reverse_x ($1, $3);
+ }
+ | symbol_list_part_bare ',' property_path
+ {
+ $$ = scm_reverse_x ($1, $3);
+ }