made some interfaces exportable and fixed/enhaaced some selector operator versions
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user