code: func (v *printVisitor) VisitExpression(node *Expression) interface{} {
  	if v.inBlock {
  		v.indent()
  	}
  
  	// path
  	node.Path.Accept(v)
  
  	// params
  	v.str(" [")
  	for i, n := range node.Params {
  		if i > 0 {
  			v.str(", ")
  		}
  		n.Accept(v)
  	}
  	v.str("]")
  
  	// hash
  	if node.Hash != nil {
  		v.str(" ")
  		node.Hash.Accept(v)
  	}
  
  	if v.inBlock {
  		v.nl()
  	}
  
  	return nil
  }
docs: // Expressions
  // VisitExpression implements corresponding Visitor interface method