code: func newEvalVisitor(tpl *Template, ctx interface{}, privData *DataFrame) *evalVisitor {
  	frame := privData
  	if frame == nil {
  		frame = NewDataFrame()
  	}
  
  	return &evalVisitor{
  		tpl:       tpl,
  		ctx:       []reflect.Value{reflect.ValueOf(ctx)},
  		dataFrame: frame,
  		exprFunc:  make(map[*ast.Expression]bool),
  	}
  }
docs: // NewEvalVisitor instanciate a new evaluation visitor with given context and initial private data frame
  //
  // If privData is nil, then a default data frame is created