+
+ Music *t = set_property_music (scm_string_to_symbol ($4), $6);
+ Context_specced_music *csm = new Context_specced_music (SCM_EOL);
+
+ csm->set_mus_property ("element", t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
+
+ $$ = csm;
+ $$->set_spot (THIS->here_input ());
+
+ csm-> set_mus_property ("context-type", $2);
+ }
+ | PROPERTY STRING '.' STRING UNSET {
+ Music *t = new Music (SCM_EOL);
+
+ t->set_mus_property ("iterator-ctor",
+ Property_unset_iterator::constructor_cxx_function);
+ t->set_mus_property ("symbol", scm_string_to_symbol ($4));
+
+ Context_specced_music *csm = new Context_specced_music (SCM_EOL);
+ csm->set_mus_property ("element", t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
+
+ $$ = csm;
+ $$->set_spot (THIS->here_input ());
+
+ csm-> set_mus_property ("context-type", $2);
+ }
+ | PROPERTY STRING '.' STRING SET embedded_scm '=' embedded_scm {
+ Music *t = new Music (SCM_EOL);
+ t->set_mus_property ("iterator-ctor",
+ Push_property_iterator::constructor_cxx_function);
+ t->set_mus_property ("symbols", scm_string_to_symbol ($4));
+ t->set_mus_property ("pop-first", SCM_BOOL_T);
+ t->set_mus_property ("grob-property", $6);
+ t->set_mus_property ("grob-value", $8);
+ Context_specced_music *csm = new Context_specced_music (SCM_EOL);
+ csm->set_mus_property ("element", t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
+ $$ = csm;
+ $$->set_spot (THIS->here_input ());