source file of the GNU LilyPond music typesetter
- (c) 1998--2002 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1998--2004 Jan Nieuwenhuizen <janneke@gnu.org>
*/
#ifndef LILY_GUILE_HH
#include "drul-array.hh"
+
/* Guile 1.4.x compatibility */
#if GUILE_MINOR_VERSION < 5
#if GUILE_MINOR_VERSION < 7
#define scm_gc_unregister_collectable_memory(a,b,c) scm_done_free(b)
#define scm_gc_register_collectable_memory(a,b,c) scm_done_malloc(b)
+#define SCM_VECTOR_REF(v,i) (SCM_VELTS((v))[(i)])
+
+
#endif
#include "direction.hh"
SCM ly_assoc_chain (SCM key, SCM achain);
SCM ly_assoc_cdr (SCM key, SCM alist);
Interval ly_scm2interval (SCM);
+Drul_array<Real> ly_scm2realdrul (SCM);
Slice int_list_to_slice (SCM l);
SCM ly_interval2scm (Drul_array<Real>);
-
+Real robust_scm2double (SCM, double);
+int robust_scm2int (SCM, int);
+Drul_array<Real> robust_scm2drul (SCM, Drul_array<Real>);
+Interval robust_scm2interval (SCM, Drul_array<Real>);
+Offset robust_scm2offset (SCM, Offset);
SCM ly_quote_scm (SCM s);
bool type_check_assignment (SCM val, SCM sym, SCM type_symbol) ;
SCM parse_symbol_list (char const *);
SCM robust_list_ref(int i, SCM l);
-
+SCM alist_to_hashq (SCM);
inline SCM ly_cdr (SCM x) { return SCM_CDR (x); }
inline SCM ly_car (SCM x) { return SCM_CAR (x); }
void read_lily_scm_file (String);
void ly_init_guile ();
-bool ly_dir_p (SCM s);
-bool ly_number_pair_p (SCM);
-bool ly_axis_p (SCM);
+bool is_direction (SCM s);
+bool is_number_pair (SCM);
+bool is_axis (SCM);
/*
these conversion functions also do a typecheck on the argument, and
SCM index_get_cell (SCM cell, Direction d);
SCM index_set_cell (SCM cell, Direction d, SCM val);
-
-
SCM ly_snoc (SCM s, SCM list);
SCM ly_split_list (SCM s, SCM list);
SCM ly_unique (SCM list);
*/
void add_scm_init_func (void (*) ());
-
+extern "C" {
typedef SCM (*Scheme_function_unknown) ();
+}
#if __GNUC__ > 2 || __GNUC_MINOR__ >= 96
typedef SCM (*Scheme_function_0) ();