blob: 1fca53c4cee2a727fba5fcc5e5c7d1d94411847d [file] [log] [blame]
package hcl
import (
hclParser ""
jsonParser ""
// ParseBytes accepts as input byte slice and returns ast tree.
// Input can be either JSON or HCL
func ParseBytes(in []byte) (*ast.File, error) {
return parse(in)
// ParseString accepts input as a string and returns ast tree.
func ParseString(input string) (*ast.File, error) {
return parse([]byte(input))
func parse(in []byte) (*ast.File, error) {
switch lexMode(in) {
case lexModeHcl:
return hclParser.Parse(in)
case lexModeJson:
return jsonParser.Parse(in)
return nil, fmt.Errorf("unknown config format")
// Parse parses the given input and returns the root object.
// The input format can be either HCL or JSON.
func Parse(input string) (*ast.File, error) {
return parse([]byte(input))