code: func (v *evalVisitor) evalDataPathExpression(node *ast.PathExpression, exprRoot bool) interface{} {
  	// find data frame
  	frame := v.dataFrame
  	for i := node.Depth; i > 0; i-- {
  		if frame.parent == nil {
  			return nil
  		}
  		frame = frame.parent
  	}
  
  	// resolve data
  	// @note Can be changed to v.evalCtx() as context can't be an array
  	result, _ := v.evalCtxPath(reflect.ValueOf(frame.data), node.Parts, exprRoot)
  	return result
  }
docs: // evalDataPathExpression evaluates a private data path expression