function.java

来自「A framework written in Java for implemen」· Java 代码 · 共 45 行

JAVA
45
字号
package gnu.commonlisp.lang;import gnu.mapping.*;import gnu.expr.*;import gnu.lists.*;import kawa.lang.*;public class function extends Syntax{  Syntax lambda;  public function(Syntax lambda)  {    this.lambda = lambda;  }  public Expression rewriteForm (Pair form, Translator tr)  {    Object obj = form.cdr;    if (obj instanceof Pair)      {	Pair pair = (Pair) obj;	if (pair.cdr != LList.Empty)	  return tr.syntaxError("too many forms after 'function'");	Object name = pair.car;	if (name instanceof String || name instanceof Symbol)	  {	    ReferenceExp rexp = new ReferenceExp(name);	    rexp.setProcedureName(true);	    rexp.setFlag(ReferenceExp.PREFER_BINDING2);	    return rexp;	  }	if (name instanceof Pair)	  {	    pair = (Pair) name;	    name = pair.car;	    if (name instanceof String ? "lambda".equals(name)		: (name instanceof Symbol		   && "lambda".equals(((Symbol) name).getName())))	      return lambda.rewriteForm(pair, tr);	  }      }    return tr.syntaxError("function must be followed by name or lambda expression");  }}

⌨️ 快捷键说明

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