From b29bd8c074843e26aba40cebc5e226bea69d045a Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Mon, 4 Aug 2014 09:55:17 +0200 Subject: [PATCH] Refactor grammar, folding complex_music into composite_music --- lily/parser.yy | 52 +++++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/lily/parser.yy b/lily/parser.yy index eac4dad0f3..89c4a0036a 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -1404,8 +1404,31 @@ context_mod_list: } ; +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 ; @@ -2138,33 +2161,6 @@ lyric_mode_music: | 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")) -- 2.39.2