1// Package hcl contains the main modelling types and general utility functions
2// for HCL.
3//
4// For a simple entry point into HCL, see the package in the subdirectory
5// "hclsimple", which has an opinionated function Decode that can decode HCL
6// configurations in either native HCL syntax or JSON syntax into a Go struct
7// type:
8//
9//     package main
10//
11//     import (
12//     	"log"
13//     	"github.com/hashicorp/hcl/v2/hclsimple"
14//     )
15//
16//     type Config struct {
17//     	LogLevel string `hcl:"log_level"`
18//     }
19//
20//     func main() {
21//     	var config Config
22//     	err := hclsimple.DecodeFile("config.hcl", nil, &config)
23//     	if err != nil {
24//     		log.Fatalf("Failed to load configuration: %s", err)
25//     	}
26//     	log.Printf("Configuration is %#v", config)
27//     }
28//
29// If your application needs more control over the evaluation of the
30// configuration, you can use the functions in the subdirectories hclparse,
31// gohcl, hcldec, etc. Splitting the handling of configuration into multiple
32// phases allows for advanced patterns such as allowing expressions in one
33// part of the configuration to refer to data defined in another part.
34package hcl
35