// 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) { switch lexMode(input) { case lexModeHcl: return hclParser.Parse([]byte(input)) case lexModeJson: return jsonParser.Parse([]byte(input)) } return nil, fmt.Errorf("unknown config format") }
// Format formats src HCL and returns the result. func Format(src []byte) ([]byte, error) { node, err := parser.Parse(src) if err != nil { return nil, err } var buf bytes.Buffer if err := DefaultConfig.Fprint(&buf, node); err != nil { return nil, err } return buf.Bytes(), nil }