code: func (p *Parser) parseLocation() (*time.Location, error) {
  	// Parse the expression first.
  	tok, _, lit := p.ScanIgnoreWhitespace()
  	p.Unscan()
  	if tok != IDENT || strings.ToLower(lit) != "tz" {
  		return nil, nil
  	}
  
  	expr, err := p.ParseExpr()
  	if err != nil {
  		return nil, err
  	}
  	tz, ok := expr.(*Call)
  	if !ok {
  		return nil, errors.New("tz must be a function call")
  	} else if len(tz.Args) != 1 {
  		return nil, errors.New("tz requires exactly one argument")
  	}
  
  	tzname, ok := tz.Args[0].(*StringLiteral)
  	if !ok {
  		return nil, errors.New("expected string argument in tz()")
  	}
  
  	loc, err := time.LoadLocation(tzname.Val)
  	if err != nil {
  		// Do not pass the same error message as the error may contain sensitive pathnames.
  		return nil, fmt.Errorf("unable to find time zone %s", tzname.Val)
  	}
  	return loc, nil
  }
docs: // parseLocation parses the timezone call and its arguments.