code: 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
  }
docs: // Parse the string and return an AST or an error