%token <scm> MUSIC_FUNCTION_SCM_MUSIC
%token <scm> MUSIC_FUNCTION_SCM_MUSIC_MUSIC
%token <scm> MUSIC_FUNCTION_SCM_SCM_MUSIC
+%token <scm> MUSIC_FUNCTION_MARKUP
+%token <scm> MUSIC_FUNCTION_MARKUP_MARKUP
+%token <scm> MUSIC_FUNCTION_MARKUP_MUSIC
+%token <scm> MUSIC_FUNCTION_MARKUP_MUSIC_MUSIC
+%token <scm> MUSIC_FUNCTION_MARKUP_MARKUP_MUSIC
%token DRUMS
%token DRUMMODE
} embedded_scm {
$$ = scm_list_3 ($1, make_input (THIS->pop_spot ()), $3);
}
+ | MUSIC_FUNCTION_MARKUP {
+ THIS->push_spot ();
+ } full_markup {
+ $$ = scm_list_3 ($1, make_input (THIS->pop_spot ()), $3);
+ }
| MUSIC_FUNCTION_MUSIC {
THIS->push_spot ();
} Music {
} embedded_scm embedded_scm {
$$ = scm_list_4 ($1, make_input (THIS->pop_spot ()), $3, $4);
}
+ | MUSIC_FUNCTION_MARKUP_MUSIC {
+ THIS->push_spot ();
+ } full_markup Music {
+ $$ = scm_list_4 ($1, make_input (THIS->pop_spot ()), $3, $4->self_scm ());
+ scm_gc_unprotect_object ($4->self_scm ());
+ }
+ | MUSIC_FUNCTION_MARKUP_MARKUP {
+ THIS->push_spot ();
+ } full_markup full_markup {
+ $$ = scm_list_4 ($1, make_input (THIS->pop_spot ()), $3, $4);
+ }
| MUSIC_FUNCTION_MUSIC_MUSIC {
THIS->push_spot ();
} Music Music {
scm_gc_unprotect_object ($5->self_scm ());
scm_gc_unprotect_object ($4->self_scm ());
}
+ | MUSIC_FUNCTION_MARKUP_MUSIC_MUSIC {
+ THIS->push_spot ();
+ } full_markup Music Music {
+ $$ = scm_list_5 ($1, make_input (THIS->pop_spot ()),
+ $3, $4->self_scm (), $5->self_scm ());
+ scm_gc_unprotect_object ($5->self_scm ());
+ scm_gc_unprotect_object ($4->self_scm ());
+ }
;
Generic_prefix_music: