この質問は、go/parser パッケージを使用して Go ソース ファイルを適切な構文ツリー表現に変換するという課題に対処します。ただし、構文ツリーから Go ソース コードを生成することは未解決の問題のままでした。
go/printer パッケージは、この問題の解決策を提供します。これにより、抽象構文ツリー (AST) をソース コードに変換し直すことができます。
次のコード サンプルを考えてみましょう:
<code class="go">package main import ( "go/parser" "go/printer" "go/token" "os" ) func main() { // Input source code src := ` package main func main() { println("Hello, World!") } ` // Parse the source code into an AST fset := token.NewFileSet() f, err := parser.ParseFile(fset, "", src, 0) if err != nil { panic(err) } // Print the AST as source code printer.Fprint(os.Stdout, fset, f) }</code>
このコード スニペットは実行されると、ソース文字列を読み取り、解析して次のようにします。 AST を取得し、その AST を Go ソース コードとして出力します。結果は、元の入力ソース コードです。
以上がGo AST をソース コードに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。