func (a Any) Ref() *SourceRef {
	return a.ref
}
Ref funcrion return current value by reference
package parser
import (
	"fmt"
	"strings"
)
type Value interface {
	Value() interface{}
	String() string
	Ref() *SourceRef
}
type Identifier string
func (id Identifier) String() string {
	return string(id)
}
type Any struct {
	value interface{}
	ref   *SourceRef
}
func (a Any) Value() interface{} {
	return a.value
}
func (a Any) String() string {
	switch data := a.value.(type) {
	case []Value:
		var elt []string
		for _, v := range data {
			elt = append(elt, v.String())
		}
		return fmt.Sprintf("<[]Value>(%s)", strings.Join(elt, " "))
	case Identifier:
		return data.String()
	default:
		return fmt.Sprintf("<%T>%#+v", data, data)
	}
}