30 |
|
|
31 |
object sSAinhibit_macro_specialA; |
object sSAinhibit_macro_specialA; |
32 |
|
|
33 |
siLdefine_macro() |
void |
34 |
|
siLdefine_macro(void) |
35 |
{ |
{ |
36 |
check_arg(2); |
check_arg(2); |
37 |
if (type_of(vs_base[0]) != t_symbol) |
if (type_of(vs_base[0]) != t_symbol) |
50 |
vs_push(make_simple_string( |
vs_push(make_simple_string( |
51 |
"~S is being redefined.")); |
"~S is being redefined.")); |
52 |
ifuncall2(sLwarn, vs_head, vs_base[0]); |
ifuncall2(sLwarn, vs_head, vs_base[0]); |
53 |
vs_pop; |
vs_popp; |
54 |
} |
} |
55 |
vs_base[0]->s.s_gfdef = MMcaddr(vs_base[1]); |
vs_base[0]->s.s_gfdef = MMcaddr(vs_base[1]); |
56 |
vs_base[0]->s.s_mflag = TRUE; |
vs_base[0]->s.s_mflag = TRUE; |
69 |
vs_top = vs_base+1; |
vs_top = vs_base+1; |
70 |
} |
} |
71 |
|
|
72 |
Fdefmacro(form) |
void |
73 |
object form; |
Fdefmacro(object form) |
74 |
{ |
{ |
75 |
object endp_temp; |
object endp_temp; |
76 |
|
|
110 |
vs_push(make_simple_string( |
vs_push(make_simple_string( |
111 |
"~S is being redefined.")); |
"~S is being redefined.")); |
112 |
ifuncall2(sLwarn, vs_head, name); |
ifuncall2(sLwarn, vs_head, name); |
113 |
vs_pop; |
vs_popp; |
114 |
} |
} |
115 |
name->s.s_gfdef = MMcaddr(top[0]); |
name->s.s_gfdef = MMcaddr(top[0]); |
116 |
name->s.s_mflag = TRUE; |
name->s.s_mflag = TRUE; |
136 |
in VS_BASE[0]. |
in VS_BASE[0]. |
137 |
*/ |
*/ |
138 |
object |
object |
139 |
Imacro_expand1(exp_fun, form) |
Imacro_expand1(object exp_fun, object form) |
|
object exp_fun,form; |
|
140 |
{ |
{ |
141 |
return Ifuncall_n(sLAmacroexpand_hookA->s.s_dbind, |
return Ifuncall_n(sLAmacroexpand_hookA->s.s_dbind, |
142 |
3,exp_fun,form,MACRO_EXPAND_ENV); |
3,exp_fun,form,MACRO_EXPAND_ENV); |
148 |
MACRO_DEF returns NIL. |
MACRO_DEF returns NIL. |
149 |
*/ |
*/ |
150 |
object |
object |
151 |
macro_def(form) |
macro_def(object form) |
|
object form; |
|
152 |
{ |
{ |
153 |
object head, fd; |
object head, fd; |
154 |
|
|
175 |
va_dcl |
va_dcl |
176 |
{ int n=VFUN_NARGS; |
{ int n=VFUN_NARGS; |
177 |
object envir; |
object envir; |
178 |
object exp_fun, env; |
object exp_fun; |
179 |
object *lex=lex_env; |
object *lex=lex_env; |
180 |
object buf[3]; |
object buf[3]; |
181 |
|
|
219 |
} |
} |
220 |
} |
} |
221 |
|
|
222 |
Lmacroexpand_1() |
void |
223 |
|
Lmacroexpand_1(void) |
224 |
{ |
{ |
225 |
object exp_fun; |
object exp_fun; |
226 |
object *base=vs_base; |
object *base=vs_base; |
261 |
marked. |
marked. |
262 |
*/ |
*/ |
263 |
object |
object |
264 |
macro_expand(form) |
macro_expand(object form) |
|
object form; |
|
265 |
{ |
{ |
266 |
object exp_fun, head, fd; |
object exp_fun, head, fd; |
267 |
object *base = vs_base; |
object *base = vs_base; |
339 |
DEFVAR("*MACROEXPAND-HOOK*",sLAmacroexpand_hookA,LISP,sLfuncall,""); |
DEFVAR("*MACROEXPAND-HOOK*",sLAmacroexpand_hookA,LISP,sLfuncall,""); |
340 |
DEF_ORDINARY("DEFMACRO*",sSdefmacroA,SI,""); |
DEF_ORDINARY("DEFMACRO*",sSdefmacroA,SI,""); |
341 |
DEFVAR("*INHIBIT-MACRO-SPECIAL*",sSAinhibit_macro_specialA,SI,Cnil,""); |
DEFVAR("*INHIBIT-MACRO-SPECIAL*",sSAinhibit_macro_specialA,SI,Cnil,""); |
342 |
init_macros() |
void |
343 |
|
init_macros(void) |
344 |
{ |
{ |
345 |
make_si_function("DEFINE-MACRO", siLdefine_macro); |
make_si_function("DEFINE-MACRO", siLdefine_macro); |
346 |
|
|