⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 q2apply.java

📁 A framework written in Java for implementing high-level and dynamic languages, compiling them into J
💻 JAVA
字号:
package gnu.q2.lang;import gnu.mapping.*;import gnu.lists.*;import gnu.expr.*;import java.util.Vector;public class Q2Apply extends MethodProc{  public static Q2Apply q2Apply = new Q2Apply();  public void apply (CallContext ctx)  throws Throwable  {    Object endMarker = Special.dfault;    Object arg = ctx.getNextArg(endMarker);    if (arg instanceof Procedure)      {	Procedure proc = (Procedure) arg;	Vector vec = new Vector();	for (;;)	  {	    arg = ctx.getNextArg(endMarker);	    if (arg == endMarker)	      break;	    if (arg instanceof Values)	      {		Object[] vals = ((Values) arg).getValues();		for (int i = 0;  i < vals.length;  i++)		  vec.add(vals[i]);	      }	    else	      vec.add(arg);  // requires collections FIXME	  }	arg = proc.applyN(vec.toArray());	if (arg instanceof Consumable)	  ((Consumable) arg).consume(ctx.consumer);	else	  ctx.writeValue(arg);	return;      }    for (;;)      {	if (arg == endMarker)	  break;	if (arg instanceof Consumable)	  ((Consumable) arg).consume(ctx.consumer);	else	  ctx.writeValue(arg);	arg = ctx.getNextArg(endMarker);      }  }  /*  public Object applyN (Object[] args)  throws Throwable  {    if (args.length == 0)      return Values.empty;    Object arg0 = args[0];    if (arg0 instanceof Procedure)      {	Object[] xargs = new Object[args.length-1];	System.arraycopy(args, 1, xargs, 0, xargs.length);	return ((Procedure) arg0).applyN(xargs);      }    return gnu.kawa.functions.AppendValues.appendValues.applyN(args);  }  */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -