32 lines
616 B
Go
32 lines
616 B
Go
package expr
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/PaesslerAG/gval"
|
|
)
|
|
|
|
func Parser(ll ...gval.Language) gval.Language {
|
|
return gval.Full(append(AllFunctions(), ll...)...)
|
|
}
|
|
|
|
func AllFunctions() []gval.Language {
|
|
ff := make([]gval.Language, 0, 100)
|
|
|
|
//ff = append(ff, GenericFunctions()...)
|
|
ff = append(ff, StringFunctions()...)
|
|
ff = append(ff, NumericFunctions()...)
|
|
ff = append(ff, TimeFunctions()...)
|
|
|
|
return ff
|
|
}
|
|
|
|
// utility function for examples
|
|
func eval(e string, p interface{}) {
|
|
result, err := Parser().Evaluate(e, p)
|
|
if err != nil {
|
|
fmt.Printf("error: %v", err)
|
|
} else {
|
|
fmt.Printf("%v", result)
|
|
}
|
|
}
|