parser/parser.go
func Parse(s string) (*ast.Program, error) {
	p := newParser(lexer.New(s))
	prog := p.parseProgram()
	if len(p.errors) > 0 {
		return prog, p.errors
	}
	return prog, nil
}
func Parse(s string) (*ast.Program, error) {
	p := newParser(lexer.New(s))
	prog := p.parseProgram()
	if len(p.errors) > 0 {
		return prog, p.errors
	}
	return prog, nil
}
// Parse the string and return an AST or an error