/[gcl]/gcl/o/macros.c
ViewVC logotype

Diff of /gcl/o/macros.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by wfs, Mon Dec 6 22:44:11 1999 UTC revision 1.2 by camm, Sat Jul 20 07:10:55 2002 UTC
# Line 30  object sLwarn; Line 30  object sLwarn;
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)
# Line 49  siLdefine_macro() Line 50  siLdefine_macro()
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;
# Line 68  siLdefine_macro() Line 69  siLdefine_macro()
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    
# Line 109  object form; Line 110  object form;
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;
# Line 135  object form; Line 136  object form;
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);
# Line 148  object exp_fun,form; Line 148  object exp_fun,form;
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    
# Line 176  object form ; Line 175  object form ;
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                    
# Line 220  va_dcl Line 219  va_dcl
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;
# Line 261  Lmacroexpand_1() Line 261  Lmacroexpand_1()
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;
# Line 340  DEF_ORDINARY("FUNCALL",sLfuncall,LISP,"" Line 339  DEF_ORDINARY("FUNCALL",sLfuncall,LISP,""
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    

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26