github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/importer/importer.go (about)

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // パッケージインポーターは、エクスポートデータのインポートを提供します。
     6  package importer
     7  
     8  import (
     9  	"github.com/shogo82148/std/go/token"
    10  	"github.com/shogo82148/std/go/types"
    11  	"github.com/shogo82148/std/io"
    12  )
    13  
    14  // Lookup 関数は、与えられたインポートパスに対してパッケージデータにアクセスするためのリーダー、または一致するパッケージが見つからない場合はエラーを返します。
    15  type Lookup func(path string) (io.ReadCloser, error)
    16  
    17  // ForCompilerは、インストールされたパッケージからインポートするためのImporterを返します。
    18  // コンパイラの引数が「gc」または「gccgo」の場合、またはコンパイラの引数が「source」の場合はソースから直接インポートするためのものです。
    19  // この後者の場合、純粋なGoソースコードに完全に定義されていない場合には、インポートが失敗することがあります
    20  // (パッケージAPIがcgoで定義されたエンティティに依存する場合、型チェッカはそれにアクセスできません)。
    21  // 結果のImporterがインポートパスの解決に必要な場合、lookup関数が呼び出されます。
    22  // このモードでは、インポータには正規のインポートパス(相対的または絶対のものではない)でのみ呼び出されるものとします。
    23  // 正規のインポートパスへの変換は、インポータのクライアントによって行われているものとします。
    24  // 正しいモジュール対応動作のためには、lookup関数を提供する必要があります。
    25  // Deprecated: もしlookupがnilの場合、後方互換性のためにインポータは$GOPATHワークスペースでインポートを解決しようとします。
    26  func ForCompiler(fset *token.FileSet, compiler string, lookup Lookup) types.Importer
    27  
    28  // 新しいFileSetで [ForCompiler] を呼び出します。
    29  //
    30  // Deprecated:  importerによって作成されたオブジェクトの位置を
    31  // FileSetで設定するために [ForCompiler] を使用してください。
    32  func For(compiler string, lookup Lookup) types.Importer
    33  
    34  // Defaultは実行バイナリをビルドしたコンパイラのためのImporterを返します。
    35  // もし利用可能であれば、結果は [types.ImporterFrom] を実装します。
    36  func Default() types.Importer