func Parse(src []byte) (*ast.File, error) {
	p := newParser(src)
	return p.Parse()
}
Parse returns the fully parsed source and returns the abstract syntax tree.
package parser
import (
	"errors"
	"fmt"
	"github.com/hashicorp/hcl/hcl/ast"
	hcltoken "github.com/hashicorp/hcl/hcl/token"
	"github.com/hashicorp/hcl/json/scanner"
	"github.com/hashicorp/hcl/json/token"
)
type Parser struct {
	sc *scanner.Scanner
	tok       token.Token
	commaPrev token.Token
	enableTrace bool
	indent      int
	n           int  
}
func newParser(src []byte) *Parser {
	return &Parser{
		sc: scanner.New(src),
	}
}