code: func (p *Parser) Parse() (*ast.File, error) {
  	f := &ast.File{}
  	var err, scerr error
  	p.sc.Error = func(pos token.Pos, msg string) {
  		scerr = &PosError{Pos: pos, Err: errors.New(msg)}
  	}
  
  	f.Node, err = p.objectList(false)
  	if scerr != nil {
  		return nil, scerr
  	}
  	if err != nil {
  		return nil, err
  	}
  
  	f.Comments = p.comments
  	return f, nil
  }
docs: // Parse returns the fully parsed source and returns the abstract syntax tree.