32 lines
671 B
Go
32 lines
671 B
Go
package saccharine
|
|
|
|
import (
|
|
"git.maximhutz.com/max/lambda/pkg/repr"
|
|
)
|
|
|
|
type Statement interface {
|
|
repr.Repr
|
|
}
|
|
|
|
/** ------------------------------------------------------------------------- */
|
|
|
|
type LetStatement struct {
|
|
Name string
|
|
Parameters []string
|
|
Body Expression
|
|
}
|
|
|
|
func NewLet(name string, parameters []string, body Expression) *LetStatement {
|
|
return &LetStatement{Name: name, Parameters: parameters, Body: body}
|
|
}
|
|
|
|
/** ------------------------------------------------------------------------- */
|
|
|
|
type DeclareStatement struct {
|
|
Value Expression
|
|
}
|
|
|
|
func NewDeclare(value Expression) *DeclareStatement {
|
|
return &DeclareStatement{Value: value}
|
|
}
|