# Functions
FileExportsは、GoのソースファイルのASTを現在の場所でトリムします。 エクスポートされたノードのみが残り、エクスポートされていないトップレベルの識別子とそれに関連する情報 (型、初期値、または関数本体など)は削除されます。エクスポートされた型の非エクスポートフィールドとメソッドも剥ぎ取られます。 [File.Comments] リストは変更されません。
FileExportsは、エクスポートされた宣言があるかどうかを報告します。.
FilterDeclはGoの宣言のASTを変更して、フィルターfを通過しない名前(構造体フィールドやインタフェースメソッドの名前を含むが、パラメーターリストからは除外)を削除します。
FilterDeclは、フィルタリング後に残された宣言された名前があるかどうかを報告します。.
FilterFileは、フィルタfを通過しない(構造体のフィールドやインターフェースのメソッド名を含むが、パラメータリストからは含まれない)トップレベルの宣言からすべての名前を削除することで、GoファイルのASTを修正します。もし宣言が空になった場合、宣言はASTから削除されます。Import宣言は必ず削除されます。[File.Comments] のリストは変更されません。 FilterFileは、フィルタリング後にトップレベルの宣言が残っているかどうかを報告します。.
FilterPackageは、フィルターfを通過しない(構造体フィールドやインターフェースメソッド名を含むが、パラメータリストからは除かれない)トップレベル宣言のすべての名前を削除することにより、GoパッケージのASTを修正します。 宣言がその後空になった場合、宣言はASTから削除されます。 pkg.Filesリストは変更されないため、ファイル名やトップレベルのパッケージコメントが失われることはありません。
FilterPackageは、フィルタリング後にトップレベルの宣言が残っているかどうかを報告します。.
FprintはASTノードxから始まる(サブ)ツリーをwに出力します。 もしfset != nilなら、位置情報はそのファイルセットに対して相対的に解釈されます。 それ以外の場合は位置は整数値(ファイルセット固有のオフセット)として表示されます。
非nilの [FieldFilter] fが提供された場合、出力を制御するために使用されます: f(fieldname, fieldvalue)がtrueを返す構造体フィールドだけが出力されます。 それ以外のものは出力からフィルタリングされます。エクスポートされていない構造体フィールドは常に出力されません。.
InspectはASTを深さ優先順で走査します:まずf(node)を呼び出します。nodeはnilであってはなりません。fがtrueを返す場合、Inspectはnodeの非nilな子のそれぞれに対して再帰的にfを呼び出し、その後にf(nil)を呼び出します。.
IsExportedは、名前が大文字で始まるかどうかを報告します。.
IsGeneratedは、プログラムによって生成されたファイルか、手書きではないかを報告します。 https://go.dev/s/generatedcodeに記載されている特殊コメントを検出します。
構文木は [parser.ParseComments] フラグを使用して解析されている必要があります。 例:
f, err := parser.ParseFile(fset, filename, src, parser.ParseComments|parser.PackageClauseOnly) if err != nil { ..
MergePackageFilesはパッケージに所属するファイルのASTをマージしてファイルASTを作成します。モードフラグはマージの動作を制御します。.
NewCommentMapは、コメントリストのコメントグループをASTのノードと関連付けて新しいコメントマップを作成します。 コメントグループgは、ノードnと関連付けられます。以下の条件を満たす場合です: - gは、nの終了する行と同じ行で開始します。 - gは、nの直後の行で始まり、gと次のノードの間に少なくとも1つの空行がある場合。 - gは、nよりも前に開始され、前のルールを介してnの前のノードに関連付けられていない場合。
NewCommentMapは、コメントグループを「最大の」ノードに関連付けようとします。たとえば、コメントが代入文の後に続く行コメントの場合、コメントは代入文全体ではなく、代入文の最後のオペランドに関連づけられます。.
NewIdentは位置情報のない新しい [Ident] を作成します。 Goパーサー以外のコードで生成されたASTに便利です。.
NewObjは指定された種類と名前の新しいオブジェクトを作成します。.
NewPackageは、[File] ノードのセットから新しい [Package] ノードを作成します。それは ファイル間の未解決の識別子を解決し、それぞれのファイルのUnresolvedリストを それに応じて更新します。非nilのimporterとuniverseスコープが提供されている場合、 パッケージファイルのいずれにも宣言されていない識別子を解決するために使用されます。任意の 残りの未解決の識別子は未宣言として報告されます。ファイルが 異なるパッケージに属している場合、一つのパッケージ名が選択され、 異なるパッケージ名を持つファイルが報告され、その後無視されます。 結果はパッケージノードと、エラーがあった場合は [scanner.ErrorList] です。
Deprecated: 代わりに型チェッカー [go/types] を使用してください。詳細は [Object] を参照してください。.
NewScopeは外部スコープにネストされた新しいスコープを作成します。.
NotNilFilterは、フィールド値がnilでない場合にtrueを返す [FieldFilter] です。 それ以外の場合はfalseを返します。.
PackageExportsは、GoパッケージのASTを変更して、エクスポートされたノードのみが残るようにします。pkg.Filesリストは変更されず、ファイル名とトップレベルのパッケージコメントは失われません。
PackageExportsは、エクスポートされた宣言があるかどうかを報告します。エクスポートされた宣言がない場合、falseを返します。.
Preorderは、指定されたルート以下(ルートを含む)の構文木のすべてのノードに対するイテレータを返します。 これは深さ優先のプレオーダーで行われます。
各サブツリーの走査をより細かく制御するには、[Inspect] を使用します。.
Print関数は、nilのフィールドをスキップしてxを標準出力に出力します。 Print(fset, x)は、Fprint(os.Stdout, fset, x, NotNilFilter)と同じです。.
SortImportsはfのimportブロック内の連続したimport行をソートします。 データの損失なしに重複するimportを削除することも可能です。.
Unparen returns the expression with any enclosing parentheses removed.
WalkはASTを深さ優先でトラバースします。最初にv.Visit(node)を呼び出します。nodeはnilであってはいけません。v.Visit(node)から返されるビジターwがnilでない場合、Walkはnodeのnilでない子要素ごとに再帰的にビジターwを用いて呼び出され、その後にw.Visit(nil)が呼び出されます。.
# Constants
可能な [Object] の種類のリスト。.
可能な [Object] の種類のリスト。.
セットされている場合、重複する関数宣言は除外されます。.
もし設定されていた場合、重複したインポート宣言は除外されます。.
セットされている場合、特定のASTノード(DocやCommentなど)に関連付けられていないコメントは除外されます。.
可能な [Object] の種類のリスト。.
可能な [Object] の種類のリスト。.
可能な [Object] の種類のリスト。.
No description provided by the author
No description provided by the author
可能な [Object] の種類のリスト。.
可能な [Object] の種類のリスト。.
# Structs
型は、次の型固有の式ノードの1つ以上からなるツリーで表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
宣言は次の宣言ノードのいずれかによって表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
型は、次の型固有の式ノードの1つ以上からなるツリーで表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
Commentノードは、単一の//-スタイルまたは/*-スタイルのコメントを表します。
Textフィールドには、ソースに存在した可能性のあるキャリッジリターン(\r)を含まないコメントテキストが含まれます。コメントの終了位置はlen(Text)を使用して計算されるため、[Comment.End] によって報告される位置は、キャリッジリターンを含むコメントの真のソース終了位置と一致しません。.
CommentGroupは、他のトークンや空の行がないコメントのシーケンスを表します。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
Fieldは、struct型のフィールド宣言リスト、インタフェース型のメソッドリスト、またはシグネチャのパラメータ/結果の宣言を表します。 [Field.Names] は、無名のパラメータ(型のみを含むパラメータリスト)や埋め込まれたstructフィールドの場合はnilです。 後者の場合、フィールド名は型名です。.
FieldList は、かっこ、中かっこ、又は角かっこで囲まれたフィールドのリストを表します。.
FileノードはGoのソースファイルを表します。
Commentsリストには、出現順にソースファイル内のすべてのコメントが含まれており、 DocとCommentフィールドを介して他のノードから指し示されるコメントも含まれます。
コメントを含むソースコードを正しく出力するために(パッケージgo/formatとgo/printerを使用して)特別な注意が必要です: コメントは、位置に基づいてトークンの間に挿入されます。構文木ノードが削除または移動される場合、 その近くにある関連するコメントも削除( [File.Comments] リストから)またはそれらの位置を更新して移動しなければなりません。 これらの操作の一部を容易にするために、[CommentMap] を使用することもできます。
コメントがノードとどのように関連付けられるかは、操作するプログラムによる構文木の解釈に依存します: Docと [Comment] コメント以外の残りのコメントは、「free-floating」です(イシュー [#18593]、[#20744] も参照)。
[#18593]: https://go.dev/issue/18593 [#20744]: https://go.dev/issue/20744.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
宣言は次の宣言ノードのいずれかによって表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
型は、次の型固有の式ノードの1つ以上からなるツリーで表されます。.
宣言は次の宣言ノードのいずれかによって表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
Spec ノードは、単一の(括弧で囲まれていない)import、定数、型、または変数の宣言を表します。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
型は、次の型固有の式ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
型は、次の型固有の式ノードの1つ以上からなるツリーで表されます。.
オブジェクトは、パッケージ、定数、型、変数、関数(メソッドを含む)、またはラベルなど、名前付きの言語エンティティを表します。
データフィールドには、オブジェクト固有のデータが含まれます:
Kind Data type Data value Pkg *Scope package scope Con int iota for the respective declaration
Deprecated: IdentsとObjectsの関係は、型情報なしでは正しく計算できません。 例えば、式T{K: 0}は、Tの型によって、構造体、マップ、スライス、または配列リテラルを表す可能性があります。 Tが構造体の場合、KはTのフィールドを参照しますが、他の型では環境内の値を参照します。
新しいプログラムは、[parser.SkipObjectResolution] パーサーフラグを設定して、 構文的なオブジェクト解決を無効にするべきです(これによりCPUとメモリも節約されます)。 そして、オブジェクト解決が必要な場合は代わりに型チェッカー [go/types] を使用します。 詳細は、[types.Info] 構造体のDefs、Uses、およびImplicitsフィールドを参照してください。.
A Package node represents a set of source files collectively building a Go package.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
Scopeは、スコープ内で宣言された名前付き言語エンティティのセットと、 直接囲む(外側の)スコープへのリンクを維持します。
Deprecated: 代わりに型チェッカー [go/types] を使用してください。詳細は [Object] を参照してください。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
型は、次の型固有の式ノードの1つ以上からなるツリーで表されます。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
Spec ノードは、単一の(括弧で囲まれていない)import、定数、型、または変数の宣言を表します。.
文は、以下の具象文ノードの1つ以上からなるツリーで表されます。.
式は、以下の具体的な式ノードを1つ以上含む木で表されます。.
Spec ノードは、単一の(括弧で囲まれていない)import、定数、型、または変数の宣言を表します。.
# Interfaces
すべての宣言ノードはDeclインターフェースを実装します。.
すべての式のノードは、Exprインターフェースを実装しています。.
すべてのノードタイプはNodeインターフェースを実装します。.
Spec ノードは、単一の(括弧で囲まれていない)import、定数、型、または変数の宣言を表します。.
すべてのステートメントノードは、Stmtインターフェースを実装しています。.
VisitorのVisitメソッドは、[Walk] によって遭遇した各ノードに対して呼び出されます。 結果のビジターwがnilでない場合、[Walk] はノードの各子に対してビジターwで訪問し、 その後にw.Visit(nil)を呼び出します。.
# Type aliases
No description provided by the author
CommentMapはASTノードをそのノードに関連付けられたコメントグループのリストにマップします。 関連付けについては、[NewCommentMap] の説明を参照してください。.
出力を制御するために、[Fprint] にFieldFilterを指定することができます。.
No description provided by the author
Importerは、インポートパスをパッケージオブジェクトに解決します。 importsマップは、すでにインポートされたパッケージを記録し、 パッケージID(正規のインポートパス)でインデックス付けします。 Importerは、正規のインポートパスを決定し、 それがすでにimportsマップに存在するかどうかを確認する必要があります。 もしそうであれば、Importerはマップエントリを返すことができます。そうでなければ、 Importerは指定されたパスのパッケージデータを新しい *[Object](pkg)にロードし、 pkgをimportsマップに記録し、その後pkgを返すべきです。
Deprecated: 代わりに型チェッカー [go/types] を使用してください。詳細は [Object] を参照してください。.
[MergePackageFiles] の動作を制御するMergeModeフラグ。.
ObjKindは [Object] が表すものを説明します。.