$$ = parser->lexer_->eval_scm_token ($1, @1);
}
| FRACTION
+ | partial_markup
| full_markup_list
| context_modification
| score_block
| FRACTION
| string
| embedded_scm
+ | partial_markup
| full_markup_list
| context_modification
| partial_function ETC
+ {
+ $$ = MAKE_SYNTAX (partial_music_function, @$,
+ scm_reverse_x ($1, SCM_EOL));
+ }
;
+// Partial functions
partial_function:
MUSIC_FUNCTION function_arglist_partial
{
- $$ = MAKE_SYNTAX (partial_music_function, @$,
- $1, $2);
+ $$ = scm_acons ($1, $2, SCM_EOL);
}
| EVENT_FUNCTION function_arglist_partial
{
- $$ = MAKE_SYNTAX (partial_music_function, @$,
- $1, $2);
+ $$ = scm_acons ($1, $2, SCM_EOL);
}
| SCM_FUNCTION function_arglist_partial
{
- $$ = MAKE_SYNTAX (partial_music_function, @$,
- $1, $2);
+ $$ = scm_acons ($1, $2, SCM_EOL);
+ }
+ | OVERRIDE grob_prop_path '='
+ {
+ $$ = scm_acons (Lily::property_override, scm_list_1 ($2), SCM_EOL);
+ }
+ | SET context_prop_spec '='
+ {
+ $$ = scm_acons (Lily::property_set, scm_list_1 ($2), SCM_EOL);
+ }
+ | MUSIC_FUNCTION EXPECT_SCM function_arglist_optional partial_function
+ {
+ $$ = scm_acons ($1, $3, $4);
+ }
+ | EVENT_FUNCTION EXPECT_SCM function_arglist_optional partial_function
+ {
+ $$ = scm_acons ($1, $3, $4);
+ }
+ | SCM_FUNCTION EXPECT_SCM function_arglist_optional partial_function
+ {
+ $$ = scm_acons ($1, $3, $4);
+ }
+ | OVERRIDE grob_prop_path '=' partial_function
+ {
+ $$ = scm_acons (Lily::property_override, scm_list_1 ($2), $4);
+ }
+ | SET context_prop_spec '=' partial_function
+ {
+ $$ = scm_acons (Lily::property_set, scm_list_1 ($2), $4);
+ }
+ | MUSIC_FUNCTION EXPECT_OPTIONAL EXPECT_SCM function_arglist_nonbackup partial_function
+ {
+ $$ = scm_acons ($1, $4, $5);
+ }
+ | EVENT_FUNCTION EXPECT_OPTIONAL EXPECT_SCM function_arglist_nonbackup partial_function
+ {
+ $$ = scm_acons ($1, $4, $5);
+ }
+ | SCM_FUNCTION EXPECT_OPTIONAL EXPECT_SCM function_arglist_nonbackup partial_function
+ {
+ $$ = scm_acons ($1, $4, $5);
}
;
}
;
-full_markup:
+markup_mode:
MARKUP
- { parser->lexer_->push_markup_state (); }
- markup_top {
- $$ = $3;
+ {
+ parser->lexer_->push_markup_state ();
+ }
+ ;
+
+full_markup:
+ markup_mode markup_top {
+ $$ = $2;
+ parser->lexer_->pop_state ();
+ }
+ ;
+
+partial_markup:
+ markup_mode markup_head_1_list ETC
+ {
+ $$ = MAKE_SYNTAX (partial_markup, @2, $2);
parser->lexer_->pop_state ();
}
;