code: func (f *Field) Name() string {
  	// Return alias, if set.
  	if f.Alias != "" {
  		return f.Alias
  	}
  
  	// Return the function name or variable name, if available.
  	switch expr := f.Expr.(type) {
  	case *Call:
  		return expr.Name
  	case *BinaryExpr:
  		return BinaryExprName(expr)
  	case *ParenExpr:
  		f := Field{Expr: expr.Expr}
  		return f.Name()
  	case *VarRef:
  		return expr.Val
  	}
  
  	// Otherwise return a blank name.
  	return ""
  }
docs: // Name returns the name of the field. Returns alias, if set.
  // Otherwise uses the function name or variable name.