helpers.go: two new functions: EvalStream() and EvalFile()
This commit is contained in:
parent
723976b37e
commit
9dbf472630
23
helpers.go
23
helpers.go
@ -6,6 +6,8 @@ package expr
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@ -59,3 +61,24 @@ func EvalStringV(source string, args []Arg) (result any, err error) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func EvalStream(ctx ExprContext, r io.Reader) (result any, err error) {
|
||||
var tree *ast
|
||||
scanner := NewScanner(r, DefaultTranslations())
|
||||
parser := NewParser(ctx)
|
||||
|
||||
if tree, err = parser.Parse(scanner); err == nil {
|
||||
result, err = tree.Eval(ctx)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func EvalFile(ctx ExprContext, filePath string) (result any, err error) {
|
||||
var fh *os.File
|
||||
if fh, err = os.Open(filePath); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer fh.Close()
|
||||
result, err = EvalStream(ctx, fh)
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user