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 + -
显示快捷键?