Exemplo n.º 1
0
 public override object MacroExpand(Executive engine, object[] lval, ref bool proceed)
 {
     object[] args = new object[lval.Length];
     for (int k = 0; k < args.Length; k++)
     {
         args[k] = Lisp.List(engine.MacroExpand(Lisp.First(lval[k]), ref proceed),
             engine.MacroExpand(Lisp.Second(lval[k]), ref proceed));
     }
     return Lisp.Functor(ID, args);
 }
Exemplo n.º 2
0
 public override object MacroExpand(Executive engine, object[] lval, ref bool proceed)
 {
     object[] arg = Lisp.ToArray(lval[0]);
     for (int k = 0; k < arg.Length; k++)
     {
         object[] pair = Lisp.ToArray(arg[k]);
         pair[1] = engine.MacroExpand(pair[1], ref proceed);
         arg[k] = Lisp.List(pair);
     }
     return Lisp.List(ID, Lisp.List(arg), 
         engine.MacroExpand(lval[1], ref proceed));
 }
Exemplo n.º 3
0
 public virtual object MacroExpand(Executive engine, object[] lval, ref bool proceed)
 {
     return engine.MacroExpand(ID, lval, ref proceed);
 }