gnu.jemacs.lang
Class lambda

java.lang.Object
  |
  +--gnu.expr.Declaration
        |
        +--kawa.lang.Syntax
              |
              +--gnu.jemacs.lang.lambda

public class lambda
extends Syntax
implements Printable

The Syntax transformer that re-writes the lambda builtin.


Field Summary
static java.lang.String optionalKeyword
           
static java.lang.String restKeyword
           
 
Fields inherited from class gnu.expr.Declaration
context, firstCall, flags, id, type, value
 
Constructor Summary
lambda()
           
 
Method Summary
 void print(java.io.PrintWriter ps)
           
static void rewrite(LambdaExp lexp, java.lang.Object formals, java.lang.Object body, Translator tr)
          Higher-level constructor, that does the re-writing.
 Expression rewrite(java.lang.Object obj, Translator tr)
          Re-write an expression that is an "application" of this Syntax object.
 
Methods inherited from class kawa.lang.Syntax
rewriteForm, scanForDefinitions
 
Methods inherited from class gnu.expr.Declaration
allocateVariable, assignField, compileStore, getCanCall, getCanRead, getCanWrite, getColumn, getContext, getFile, getLine, getName, getType, getValue, getVariable, ignorable, initBinding, isFluid, isIndirectBinding, isLexical, isPrivate, isProcedureDecl, isPublic, isSimple, isStatic, load, loadOwningObject, nextDecl, noteValue, pushIndirectBinding, setCanCall, setCanRead, setCanWrite, setFile, setFlag, setFluid, setIndirectBinding, setLine, setLine, setName, setPrivate, setProcedureDecl, setSimple, setType, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

optionalKeyword

public static final java.lang.String optionalKeyword

restKeyword

public static final java.lang.String restKeyword
Constructor Detail

lambda

public lambda()
Method Detail

rewrite

public Expression rewrite(java.lang.Object obj,
                          Translator tr)
Description copied from class: Syntax
Re-write an expression that is an "application" of this Syntax object.
Overrides:
rewrite in class Syntax
Tags copied from class: Syntax
Parameters:
obj - the arguments to this "application" (i.e. the cdr of the macro/builtin invokation)
tr - the Translator that provides context
Returns:
the re-written expression

rewrite

public static void rewrite(LambdaExp lexp,
                           java.lang.Object formals,
                           java.lang.Object body,
                           Translator tr)
Higher-level constructor, that does the re-writing.
Parameters:
formals - the formal parameter list (or symbol)
body - the body of the procedure
tr - the (Scheme) Translator

print

public void print(java.io.PrintWriter ps)
Specified by:
print in interface Printable
Overrides:
print in class Syntax