made some interfaces exportable and fixed/enhaaced some selector operator versions

This commit is contained in:
2024-04-08 23:17:56 +02:00
parent aa195b9a68
commit 9ac88bf446
29 changed files with 99 additions and 98 deletions
+7 -11
View File
@@ -10,7 +10,8 @@ import (
)
type Expr interface {
Eval(ctx exprContext, preset bool) (result any, err error)
Eval(ctx ExprContext) (result any, err error)
eval(ctx ExprContext, preset bool) (result any, err error)
}
//-------- ast
@@ -58,15 +59,6 @@ func (self *ast) addToken(tk *Token) (err error) {
return
}
// func (self *ast) addToken(tk *Token) (err error) {
// if t := newTerm(tk, nil); t != nil {
// err = self.addTerm(t)
// } else {
// err = tk.Errorf("No term constructor for token %q", tk.String())
// }
// return
// }
func (self *ast) addToken2(tk *Token) (t *term, err error) {
if t = newTerm(tk, nil); t != nil {
err = self.addTerm(t)
@@ -112,7 +104,11 @@ func (self *ast) Finish() {
}
}
func (self *ast) Eval(ctx exprContext, preset bool) (result any, err error) {
func (self *ast) Eval(ctx ExprContext) (result any, err error) {
return self.eval(ctx, true)
}
func (self *ast) eval(ctx ExprContext, preset bool) (result any, err error) {
self.Finish()
if self.root != nil {