mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 20:30:28 +02:00
* objects.c, objects.h (scm_entity_p): New procedure. Together
with the predicates scm_procedure_p and scm_struct_p, this predicate makes it possible to differ between structs, entities and operators.
This commit is contained in:
parent
90184345a0
commit
19c0dec231
1 changed files with 11 additions and 1 deletions
|
@ -56,6 +56,16 @@
|
||||||
SCM scm_metaclass_standard;
|
SCM scm_metaclass_standard;
|
||||||
SCM scm_metaclass_operator;
|
SCM scm_metaclass_operator;
|
||||||
|
|
||||||
|
SCM_PROC (s_entity_p, "entity?", 1, 0, 0, scm_entity_p);
|
||||||
|
|
||||||
|
SCM
|
||||||
|
scm_entity_p (SCM obj)
|
||||||
|
{
|
||||||
|
return (SCM_NIMP (obj) && SCM_STRUCTP (obj) && SCM_I_ENTITYP (obj)
|
||||||
|
? SCM_BOOL_T
|
||||||
|
: SCM_BOOL_F);
|
||||||
|
}
|
||||||
|
|
||||||
SCM_PROC (s_set_object_procedure_x, "set-object-procedure!", 1, 0, 1, scm_set_object_procedure_x);
|
SCM_PROC (s_set_object_procedure_x, "set-object-procedure!", 1, 0, 1, scm_set_object_procedure_x);
|
||||||
|
|
||||||
SCM
|
SCM
|
||||||
|
@ -219,7 +229,7 @@ scm_init_objects ()
|
||||||
SCM et = scm_make_struct (mt, SCM_INUM0,
|
SCM et = scm_make_struct (mt, SCM_INUM0,
|
||||||
SCM_LIST4 (el, SCM_BOOL_F, SCM_EOL, SCM_EOL));
|
SCM_LIST4 (el, SCM_BOOL_F, SCM_EOL, SCM_EOL));
|
||||||
|
|
||||||
scm_sysintern ("<standard-class>", mt);
|
scm_sysintern ("<class>", mt);
|
||||||
scm_metaclass_standard = mt;
|
scm_metaclass_standard = mt;
|
||||||
scm_sysintern ("<operator-class>", ot);
|
scm_sysintern ("<operator-class>", ot);
|
||||||
scm_metaclass_operator = ot;
|
scm_metaclass_operator = ot;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue