func Parse(name, text, leftDelim, rightDelim string, funcs ...map[string]interface{}) (treeSet map[string]*Tree, err error) {
	treeSet = make(map[string]*Tree)
	t := New(name)
	t.text = text
	_, err = t.Parse(text, leftDelim, rightDelim, treeSet, funcs...)
	return
}
Parse returns a map from template name to parse.Tree, created by parsing the
templates described in the argument string. The top-level template will be
given the specified name. If an error is encountered, parsing stops and an
empty map is returned with the error.
package parse
import (
	"bytes"
	"fmt"
	"runtime"
	"strconv"
	"strings"
)
type Tree struct {
	Name      string     
	ParseName string     
	Root      *ListNode  
	text      string     
	funcs     []map[string]interface{}
	lex       *lexer
	token     [3]item  
	peekCount int
	vars      []string  
}
func (t *Tree) Copy() *Tree {
	if t == nil {
		return nil
	}
	return &Tree{
		Name:      t.Name,
		ParseName: t.ParseName,
		Root:      t.Root.CopyList(),
		text:      t.text,
	}
}