func (s *Scope) EnteringNewChildScope() *Scope {
	return &Scope{
		Vars:     make(map[string]interface{}),
		Consts:   make(map[string]interface{}),
		Funcs:    make(map[string]interface{}),
		parent:   s,
		fileText: s.fileText,
	}
}
EnteringNewChildScope returns a new Scope that is the
child of s and internally sets the current scope to be
the returned scope.
package godebug
import (
	"fmt"
	"reflect"
	"strings"
	"github.com/mailgun/godebug/Godeps/_workspace/src/github.com/0xfaded/eval"
)
type Scope struct {
	Vars, Consts, Funcs map[string]interface{}
	parent              *Scope
	fileText            []string
}
func EnteringNewFile(parent *Scope, fileText string) *Scope {
	return &Scope{
		Vars:     make(map[string]interface{}),
		Consts:   make(map[string]interface{}),
		Funcs:    make(map[string]interface{}),
		parent:   parent,
		fileText: parseLines(fileText),
	}
}
func parseLines(text string) []string {
	lines := strings.Split(text, "\n")
	if len(lines) > 0 && lines[len(lines)-1] == "" {
		lines = lines[:len(lines)-1]
	}
	return lines
}