Lexical jumps
This commit is contained in:
+22
@@ -281,6 +281,8 @@ DEFOBJTYPE(Vector, VECTOR, VECTORP, {
|
||||
LispVal *F##cname cargs
|
||||
#define DEFSPECIAL(cname, lisp_name, cargs, lisp_args, doc) \
|
||||
DEFUN(cname, lisp_name, cargs, lisp_args, doc)
|
||||
#define DEFSPECIAL_NOINTERN(cname, lisp_name, cargs, lisp_args, doc) \
|
||||
DEFUN(cname, lisp_name, cargs, lisp_args, doc)
|
||||
#define DEFINE_CONDITION_CLASS(cname, parent_cname) \
|
||||
LispVal **internal_Q##cname##_parent_condition_class = &Q##parent_cname
|
||||
|
||||
@@ -292,6 +294,14 @@ DEFOBJTYPE(Vector, VECTOR, VECTORP, {
|
||||
((LispSymbol *) Q##cname)->value_type = SYMBOL_NORMAL; \
|
||||
lisp_gc_register_static_object(Q##cname); \
|
||||
}
|
||||
#define REGISTER_GLOBAL_SYMBOL_NOINTERN(cname) \
|
||||
{ \
|
||||
Q##cname = Fmake_symbol(make_lisp_string(internal_Q##cname##_name, \
|
||||
internal_Q##cname##_name_len, \
|
||||
false, false)); \
|
||||
((LispSymbol *) Q##cname)->value_type = SYMBOL_NORMAL; \
|
||||
lisp_gc_register_static_object(Q##cname); \
|
||||
}
|
||||
#define REGISTER_GLOBAL_VARIABLE(cname) \
|
||||
REGISTER_GLOBAL_SYMBOL(cname); \
|
||||
{ \
|
||||
@@ -303,12 +313,22 @@ DEFOBJTYPE(Vector, VECTOR, VECTORP, {
|
||||
#define REGISTER_GLOBAL_FUNCTION(cname) \
|
||||
{ \
|
||||
REGISTER_GLOBAL_SYMBOL(cname); \
|
||||
((LispSymbol *) Q##cname)->flags |= SYMBOL_CONST_FUNCTION; \
|
||||
((LispSymbol *) Q##cname)->function = BUILTIN_FUNCTION_OBJ(cname); \
|
||||
}
|
||||
#define REGISTER_GLOBAL_SPECIAL_NOINTERN(cname) \
|
||||
{ \
|
||||
REGISTER_GLOBAL_SYMBOL_NOINTERN(cname); \
|
||||
((LispSymbol *) Q##cname)->flags |= SYMBOL_CONST_FUNCTION; \
|
||||
((LispSymbol *) Q##cname)->function = BUILTIN_FUNCTION_OBJ(cname); \
|
||||
((LispFunction *) ((LispSymbol *) Q##cname)->function) \
|
||||
->impl.native.no_eval_args = true; \
|
||||
}
|
||||
|
||||
#define REGISTER_GLOBAL_SPECIAL(cname) \
|
||||
{ \
|
||||
REGISTER_GLOBAL_SYMBOL(cname); \
|
||||
((LispSymbol *) Q##cname)->flags |= SYMBOL_CONST_FUNCTION; \
|
||||
((LispSymbol *) Q##cname)->function = BUILTIN_FUNCTION_OBJ(cname); \
|
||||
((LispFunction *) ((LispSymbol *) Q##cname)->function) \
|
||||
->impl.native.no_eval_args = true; \
|
||||
@@ -321,8 +341,10 @@ DEFOBJTYPE(Vector, VECTOR, VECTORP, {
|
||||
|
||||
DECLARE_SYMBOL(nil);
|
||||
DECLARE_SYMBOL(t);
|
||||
// these are uninterned
|
||||
DECLARE_SYMBOL(unbound);
|
||||
DECLARE_VARIABLE(lexical_environment);
|
||||
DECLARE_VARIABLE(lexical_tags);
|
||||
|
||||
extern LispVal *Vlexical_environment;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user