public class OrdinaryLambda extends Lambda
(&key (secret password))
.
Most of it is implemented in comments, but there are a few bugs
to iron out.
- This class and its superclass could do with a refactoring. The
goal would be to identify methods than can be sensibly overridden
by the various parameter passing protocols in CL.
- ANSI, related to refactoring, should differentiate between the
lambda lists.Modifier and Type | Field and Description |
---|---|
protected java.lang.Object |
allowOtherKeysKeyword |
protected java.lang.Object |
auxKeyword |
protected java.lang.Object |
bodyKeyword |
bindParser, defaultDefault, keyKeyword, nameKeyword, optionalKeyword, restKeyword
Constructor and Description |
---|
OrdinaryLambda() |
Modifier and Type | Method and Description |
---|---|
Expression |
auxillaryRewrite(java.lang.Object body,
Translator tr) |
void |
print(Consumer out) |
void |
rewrite(LambdaExp lexp,
java.lang.Object formals,
java.lang.Object body,
Translator tr,
TemplateScope templateScopeRest)
Top-level rewriter of lambda expressions.
|
void |
rewriteFormals(LambdaExp lexp,
java.lang.Object formals,
Translator tr,
TemplateScope templateScopeRest)
Rewrite the formal parameters in a lambda expression.
|
void |
setKeywords(java.lang.Object optional,
java.lang.Object rest,
java.lang.Object key,
java.lang.Object allowOthers,
java.lang.Object aux,
java.lang.Object body) |
addParam, isAnnotationSymbol, parsePatternCar, rewrite, rewriteAnnotations, rewriteAttrs, rewriteBody, setKeywords, skipAttrs
getName, getSymbol, rewriteForm, scanForDefinitions, scanForm, setName, setName
protected java.lang.Object allowOtherKeysKeyword
protected java.lang.Object auxKeyword
protected java.lang.Object bodyKeyword
public void setKeywords(java.lang.Object optional, java.lang.Object rest, java.lang.Object key, java.lang.Object allowOthers, java.lang.Object aux, java.lang.Object body)
public void rewrite(LambdaExp lexp, java.lang.Object formals, java.lang.Object body, Translator tr, TemplateScope templateScopeRest)
rewrite
in class Lambda
formals
- the formal parameter list (or symbol)body
- the body of the proceduretr
- the Translator
public void rewriteFormals(LambdaExp lexp, java.lang.Object formals, Translator tr, TemplateScope templateScopeRest)
rewriteFormals
in class Lambda
lexp
- the lambda expression to rewrite.formals
- the formal parameters list (or symbol)public Expression auxillaryRewrite(java.lang.Object body, Translator tr)
auxillaryRewrite
in class Lambda