func (env *Env) Parse(name string) (*parse.Tree, error) {
	return env.load(name)
}
Parse loads and parses the given template.
package stick  
import (
	"io"
	"github.com/tyler-sommer/stick/parse"
)
type Template interface {
	Name() string
	Contents() io.Reader
}
type Func func(ctx Context, args ...Value) Value
type Filter func(ctx Context, val Value, args ...Value) Value
type Test func(ctx Context, val Value, args ...Value) bool
type Env struct {
	Loader    Loader               
	Functions map[string]Func      
	Filters   map[string]Filter    
	Tests     map[string]Test      
	Visitors  []parse.NodeVisitor  
}
type Extension interface {
	Init(*Env) error
}
type ContextMetadata interface {
	All() map[string]string          
	Set(name, val string)            
	Get(name string) (string, bool)  
	noexport()  
}
type ContextScope interface {
	All() map[string]Value     
	Get(string) (Value, bool)  
	Set(string, Value)         
	noexport()  
}
type Context interface {
	Name() string           
	Meta() ContextMetadata  
	Scope() ContextScope    
	Env() *Env
	noexport()  
}
func New(loader Loader) *Env {
	if loader == nil {
		loader = &StringLoader{}
	}
	return &Env{loader, make(map[string]Func), make(map[string]Filter), make(map[string]Test), make([]parse.NodeVisitor, 0)}
}
func (env *Env) Register(e Extension) error {
	return e.Init(env)
}
func (env *Env) Execute(tpl string, out io.Writer, ctx map[string]Value) error {
	return execute(tpl, out, ctx, env)
}