Package kawa.lang
Class Lambda
- java.lang.Object
-
- kawa.lang.Syntax
-
- kawa.lang.Lambda
-
-
Field Summary
Fields Modifier and Type Field Description BindDecls
bindParser
Expression
defaultDefault
Object
keyKeyword
static Keyword
nameKeyword
Object
optionalKeyword
Object
restKeyword
-
Constructor Summary
Constructors Constructor Description Lambda()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Declaration
addParam(Symbol name, TemplateScope templateScope, LambdaExp lexp, Translator tr)
Expression
auxillaryRewrite(Object body, Translator tr)
static boolean
isAnnotationSymbol(Object key)
Object[]
parsePatternCar(Pair patList, TemplateScope templateScope, LambdaExp lexp, Translator comp)
void
print(Consumer out)
void
rewrite(LambdaExp lexp, Object formals, Object body, Translator tr, TemplateScope templateScopeRest)
Higher-level constructor, that does the re-writing.Expression
rewrite(Object obj, Translator tr)
Re-write an expression that is an "application" of this Syntax object.static void
rewriteAnnotations(Declaration decl, Translator tr)
Object
rewriteAttrs(LambdaExp lexp, Object body, Translator tr)
void
rewriteBody(LambdaExp lexp, Object body, 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, rewriteForm, scanForDefinitions, scanForm, setName, setName
-
-
-
-
Method Detail
-
rewrite
public Expression rewrite(Object obj, Translator tr)
Description copied from class:Syntax
Re-write an expression that is an "application" of this Syntax object.
-
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 proceduretr
- the (Scheme) Translator
-
rewriteFormals
public void rewriteFormals(LambdaExp lexp, Object formals, Translator tr, TemplateScope templateScopeRest)
-
addParam
protected Declaration addParam(Symbol name, TemplateScope templateScope, LambdaExp lexp, Translator tr)
-
rewriteAttrs
public Object rewriteAttrs(LambdaExp lexp, Object body, Translator tr)
-
skipAttrs
public Object skipAttrs(LambdaExp lexp, Object body, Translator tr)
-
rewriteBody
public void rewriteBody(LambdaExp lexp, Object body, Translator tr)
-
auxillaryRewrite
public Expression auxillaryRewrite(Object body, Translator tr)
-
print
public void print(Consumer out)
-
isAnnotationSymbol
public static boolean isAnnotationSymbol(Object key)
-
rewriteAnnotations
public static void rewriteAnnotations(Declaration decl, Translator tr)
-
parsePatternCar
public Object[] parsePatternCar(Pair patList, TemplateScope templateScope, LambdaExp lexp, Translator comp)
-
-