1
0
mirror of https://github.com/MontFerret/ferret.git synced 2024-12-23 01:24:30 +02:00
ferret/pkg/stdlib/lib.go

40 lines
959 B
Go
Raw Normal View History

2018-09-18 22:42:38 +02:00
package stdlib
import (
"fmt"
2018-09-18 22:42:38 +02:00
"github.com/MontFerret/ferret/pkg/runtime/core"
"github.com/MontFerret/ferret/pkg/stdlib/arrays"
2018-09-18 22:42:38 +02:00
"github.com/MontFerret/ferret/pkg/stdlib/collections"
"github.com/MontFerret/ferret/pkg/stdlib/html"
"github.com/MontFerret/ferret/pkg/stdlib/math"
2018-10-07 23:58:22 +02:00
"github.com/MontFerret/ferret/pkg/stdlib/objects"
2018-09-18 22:42:38 +02:00
"github.com/MontFerret/ferret/pkg/stdlib/strings"
"github.com/MontFerret/ferret/pkg/stdlib/types"
"github.com/MontFerret/ferret/pkg/stdlib/utils"
)
func NewLib() map[string]core.Function {
lib := make(map[string]core.Function)
add := func(l map[string]core.Function) {
for name, fn := range l {
if _, exists := lib[name]; exists {
panic(fmt.Sprintf("%s function already exists", name))
}
2018-09-18 22:42:38 +02:00
lib[name] = fn
}
}
add(types.NewLib())
add(strings.NewLib())
add(math.NewLib())
2018-09-18 22:42:38 +02:00
add(collections.NewLib())
add(arrays.NewLib())
2018-10-07 23:58:22 +02:00
add(objects.NewLib())
2018-09-18 22:42:38 +02:00
add(html.NewLib())
add(utils.NewLib())
return lib
}