Protect SCM members in Instrument_name_engraver/Instrument_switch_engraver.
[lilypond/mpolesky.git] / lily / music-function-scheme.cc
blobc22634f1522d370fd5fd099a1c4485c01f35291a
1 #include "music-function.hh"
3 LY_DEFINE (ly_music_function_p, "ly:music-function?", 1, 0, 0,
4 (SCM x),
5 "Is @var{x} a @code{music-function}?")
7 return is_music_function (x) ? SCM_BOOL_T : SCM_BOOL_F;
10 LY_DEFINE (ly_music_function_extract, "ly:music-function-extract", 1, 0, 0,
11 (SCM x),
12 "Return the Scheme function inside@tie{}@var{x}.")
14 LY_ASSERT_TYPE (is_music_function, x, 1);
16 return SCM_CELL_OBJECT_1(x);
19 LY_DEFINE (ly_make_music_function, "ly:make-music-function", 2, 0, 0,
20 (SCM signature, SCM func),
21 "Make a function to process music, to be used for the"
22 " parser. @code{func} is the function, and @code{signature}"
23 " describes its arguments. @code{signature} is a list"
24 " containing either @code{ly:music?} predicates or other type"
25 " predicates.")
27 LY_ASSERT_TYPE (ly_is_procedure, func, 1);
28 return make_music_function (signature, func);