kawa.lang

Class Lambda

Implemented Interfaces:
Named, Printable
Known Direct Subclasses:
lambda

public class Lambda
extends Syntax

The Syntax transformer that re-writes the lambda builtin.

Field Summary

Expression
defaultDefault
Object
keyKeyword
static Keyword
nameKeyword
Object
optionalKeyword
Object
restKeyword

Method Summary

void
print(Consumer out)
Expression
rewrite(Object obj, Translator tr)
void
rewrite(LambdaExp lexp, Object formals, Object body, Translator tr, TemplateScope templateScopeRest)
Higher-level constructor, that does the re-writing.
Object
rewriteAttrs(LambdaExp lexp, Object body, Translator tr)
void
rewriteBody(LambdaExp lexp, Object body, Translator tr)
Expression
rewriteForm(Pair form, Translator tr)
void
rewriteFormals(LambdaExp lexp, Object formals, Translator tr, TemplateScope templateScopeRest)
void
setKeywords(Object optional, Object rest, Object key)
Object
skipAttrs(LambdaExp lexp, Object body, Translator tr)

Methods inherited from class kawa.lang.Syntax

getName, getSymbol, print, rewrite, rewriteForm, rewriteForm, scanForDefinitions, scanForm, setName, setName

Field Details

defaultDefault

public Expression defaultDefault

keyKeyword

public Object keyKeyword

nameKeyword

public static final Keyword nameKeyword

optionalKeyword

public Object optionalKeyword

restKeyword

public Object restKeyword

Method Details

print

public void print(Consumer out)
Specified by:
print in interface Printable
Overrides:
print in interface Syntax

rewrite

public Expression rewrite(Object obj,
                          Translator tr)
Overrides:
rewrite in interface Syntax

rewrite

public void rewrite(LambdaExp lexp,
                    Object formals,
                    Object body,
                    Translator tr,
                    TemplateScope templateScopeRest)
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

rewriteAttrs

public Object rewriteAttrs(LambdaExp lexp,
                           Object body,
                           Translator tr)

rewriteBody

public void rewriteBody(LambdaExp lexp,
                        Object body,
                        Translator tr)

rewriteForm

public Expression rewriteForm(Pair form,
                              Translator tr)
Overrides:
rewriteForm in interface Syntax

rewriteFormals

public void rewriteFormals(LambdaExp lexp,
                           Object formals,
                           Translator tr,
                           TemplateScope templateScopeRest)

setKeywords

public void setKeywords(Object optional,
                        Object rest,
                        Object key)

skipAttrs

public Object skipAttrs(LambdaExp lexp,
                        Object body,
                        Translator tr)