feat: no constructors for expressions and statements for saccharine

This commit is contained in:
2026-02-09 19:37:49 -05:00
parent d24cbd9d86
commit c4ba80924a
4 changed files with 22 additions and 50 deletions

View File

@@ -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() {}