public final class BetaNormalize extends Visitor.NoPrepareEvents<Expr>
This is a stateless visitor intended for use as a singleton.
Visitor.Constant<A>, Visitor.Identity, Visitor.NoPrepareEvents<A>, Visitor.Property| Constructor and Description |
|---|
BetaNormalize() |
| Modifier and Type | Method and Description |
|---|---|
void |
bind(java.lang.String name,
Expr type) |
Expr |
onAnnotated(Expr base,
Expr type) |
Expr |
onApplication(Expr base,
java.util.List<Expr> args) |
Expr |
onAssert(Expr type) |
Expr |
onBuiltIn(Expr self,
java.lang.String name) |
Expr |
onClasspathImport(java.nio.file.Path path,
Expr.ImportMode mode,
byte[] hash) |
Expr |
onDouble(Expr self,
double value) |
Expr |
onEmptyList(Expr type) |
Expr |
onEnvImport(java.lang.String value,
Expr.ImportMode mode,
byte[] hash) |
Expr |
onFieldAccess(Expr base,
java.lang.String fieldName) |
Expr |
onIdentifier(Expr self,
java.lang.String name,
long index) |
Expr |
onIf(Expr predicate,
Expr thenValue,
Expr elseValue) |
Expr |
onInteger(Expr self,
java.math.BigInteger value) |
Expr |
onLambda(java.lang.String name,
Expr type,
Expr result) |
Expr |
onLet(java.util.List<Expr.LetBinding<Expr>> bindings,
Expr body) |
Expr |
onLocalImport(java.nio.file.Path path,
Expr.ImportMode mode,
byte[] hash) |
Expr |
onMerge(Expr handlers,
Expr union,
Expr type) |
Expr |
onMissingImport(Expr.ImportMode mode,
byte[] hash) |
Expr |
onNatural(Expr self,
java.math.BigInteger value) |
Expr |
onNonEmptyList(java.util.List<Expr> values) |
Expr |
onNote(Expr base,
Source source) |
Expr |
onOperatorApplication(Operator operator,
Expr lhs,
Expr rhs) |
Expr |
onPi(java.lang.String name,
Expr type,
Expr result) |
Expr |
onProjection(Expr base,
java.lang.String[] fieldNames) |
Expr |
onProjectionByType(Expr base,
Expr arg) |
Expr |
onRecord(java.util.List<java.util.Map.Entry<java.lang.String,Expr>> fields) |
Expr |
onRecordType(java.util.List<java.util.Map.Entry<java.lang.String,Expr>> fields) |
Expr |
onRemoteImport(java.net.URI url,
Expr using,
Expr.ImportMode mode,
byte[] hash) |
Expr |
onText(java.lang.String[] parts,
java.util.List<Expr> interpolated) |
Expr |
onToMap(Expr base,
Expr type) |
Expr |
onUnionType(java.util.List<java.util.Map.Entry<java.lang.String,Expr>> fields) |
Expr |
onWith(Expr base,
java.lang.String[] path,
Expr value) |
flattenToMapLists, prepareAnnotated, prepareApplication, prepareAssert, prepareEmptyList, prepareFieldAccess, prepareIf, prepareLambda, prepareLet, prepareLetBinding, prepareMerge, prepareNonEmptyList, prepareNonEmptyListElement, prepareOperatorApplication, preparePi, prepareProjection, prepareProjectionByType, prepareProjectionByType, prepareRecord, prepareRecordField, prepareRecordType, prepareRecordTypeField, prepareRemoteImport, prepareText, prepareTextPart, prepareToMap, prepareUnionType, prepareUnionTypeField, prepareWith, prepareWithValue, sortFieldspublic void bind(java.lang.String name,
Expr type)
public Expr onLet(java.util.List<Expr.LetBinding<Expr>> bindings, Expr body)
public Expr onRecordType(java.util.List<java.util.Map.Entry<java.lang.String,Expr>> fields)
public Expr onUnionType(java.util.List<java.util.Map.Entry<java.lang.String,Expr>> fields)
public Expr onMissingImport(Expr.ImportMode mode, byte[] hash)
public Expr onEnvImport(java.lang.String value, Expr.ImportMode mode, byte[] hash)
public Expr onLocalImport(java.nio.file.Path path, Expr.ImportMode mode, byte[] hash)
public Expr onClasspathImport(java.nio.file.Path path, Expr.ImportMode mode, byte[] hash)
public Expr onRemoteImport(java.net.URI url, Expr using, Expr.ImportMode mode, byte[] hash)