}
;
+context_prefix:
+ CONTEXT symbol optional_id optional_context_mod {
+ Context_mod *ctxmod = Context_mod::unsmob ($4);
+ SCM mods = SCM_EOL;
+ if (ctxmod)
+ mods = ctxmod->get_mods ();
+ $$ = START_MAKE_SYNTAX ("context-specification", $2, $3, mods, SCM_BOOL_F);
+ }
+ | NEWCONTEXT symbol optional_id optional_context_mod {
+ Context_mod *ctxmod = Context_mod::unsmob ($4);
+ SCM mods = SCM_EOL;
+ if (ctxmod)
+ mods = ctxmod->get_mods ();
+ $$ = START_MAKE_SYNTAX ("context-specification", $2, $3, mods, SCM_BOOL_T);
+ }
+ ;
+
composite_music:
- complex_music
+ music_function_call
+ | repeated_music { $$ = $1; }
+ | re_rhythmed_music { $$ = $1; }
+ | context_prefix music
+ {
+ $$ = FINISH_MAKE_SYNTAX ($1, @$, $2);
+ }
| music_bare
;
| MUSIC_IDENTIFIER
;
-complex_music:
- music_function_call
- | repeated_music { $$ = $1; }
- | re_rhythmed_music { $$ = $1; }
- | complex_music_prefix music
- {
- $$ = FINISH_MAKE_SYNTAX ($1, @$, $2);
- }
- ;
-
-complex_music_prefix:
- CONTEXT symbol optional_id optional_context_mod {
- Context_mod *ctxmod = Context_mod::unsmob ($4);
- SCM mods = SCM_EOL;
- if (ctxmod)
- mods = ctxmod->get_mods ();
- $$ = START_MAKE_SYNTAX ("context-specification", $2, $3, mods, SCM_BOOL_F);
- }
- | NEWCONTEXT symbol optional_id optional_context_mod {
- Context_mod *ctxmod = Context_mod::unsmob ($4);
- SCM mods = SCM_EOL;
- if (ctxmod)
- mods = ctxmod->get_mods ();
- $$ = START_MAKE_SYNTAX ("context-specification", $2, $3, mods, SCM_BOOL_T);
- }
- ;
-
mode_changed_music:
mode_changing_head grouped_music_list {
if ($1 == ly_symbol2scm ("chords"))