Example: Lambda Calculus, Expressions and Statements
The support code generated for this example is based on the following signature:
Const: Int → Expr
Add: Expr × Expr → Expr
Id: String → Expr
Lambda: String × Expr → Expr
Call: Expr × Expr → Expr
Assign: String × Expr → Stmt
Seq: Stmt × Stmt → Stmt
ExprStmt: Expr → Stmt
As extension:
Let: String × Expr × Expr → Expr
The following table illustrates the mapping between names used in the paper and names in the source files of this example:
Paper | This Example |
---|---|
mix |
Compose |
ExprAssemble |
Expr.AttributeGrammar |
ExprCompose |
Expr.Signature.DepProduct |
PreExprSig |
Expr.Signature |
ExprSig |
Expr.Syn.Complete |
InhSig |
Expr.Inh.Complete |
CtxExprSig |
Expr.Syn |
CtxInhSig |
Expr.Inh |