feat: no constructors for expressions and statements for saccharine
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package saccharine
|
||||
|
||||
type Expression interface {
|
||||
isExpression()
|
||||
expression()
|
||||
}
|
||||
|
||||
/** ------------------------------------------------------------------------- */
|
||||
@@ -25,25 +25,7 @@ type Clause struct {
|
||||
Returns Expression
|
||||
}
|
||||
|
||||
func (Abstraction) isExpression() {}
|
||||
func (Application) isExpression() {}
|
||||
func (Atom) isExpression() {}
|
||||
func (Clause) isExpression() {}
|
||||
|
||||
/** ------------------------------------------------------------------------- */
|
||||
|
||||
func NewAbstraction(parameter []string, body Expression) *Abstraction {
|
||||
return &Abstraction{Parameters: parameter, Body: body}
|
||||
}
|
||||
|
||||
func NewApplication(abstraction Expression, arguments []Expression) *Application {
|
||||
return &Application{Abstraction: abstraction, Arguments: arguments}
|
||||
}
|
||||
|
||||
func NewAtom(name string) *Atom {
|
||||
return &Atom{Name: name}
|
||||
}
|
||||
|
||||
func NewClause(statements []Statement, returns Expression) *Clause {
|
||||
return &Clause{Statements: statements, Returns: returns}
|
||||
}
|
||||
func (Abstraction) expression() {}
|
||||
func (Application) expression() {}
|
||||
func (Atom) expression() {}
|
||||
func (Clause) expression() {}
|
||||
|
||||
Reference in New Issue
Block a user