Go ソース コードの生成
Go ソース コードの生成についてお問い合わせがありました。 go/parser パッケージは、Go ソース ファイルから AST (抽象構文ツリー) を生成する機能を提供します。しかし、AST から Go ソース コードを生成するのが難しいとおっしゃっていました。
幸いなことに、go/printer パッケージがこの問題の解決策を提供します。このパッケージを利用すると、AST をソース コード形式に簡単に変換できます。
次の例を考えてみましょう (別のソースから改変したものです)。
<code class="go">package main import ( "go/parser" "go/printer" "go/token" "os" ) func main() { // src represents the input source code for which we want to print the AST. src := ` package main func main() { println("Hello, World!") } ` // Create the AST by parsing src. fset := token.NewFileSet() // positions are relative to fset f, err := parser.ParseFile(fset, "", src, 0) if err != nil { panic(err) } printer.Fprint(os.Stdout, fset, f) }</code>
この例を実行すると、次の出力:
package main func main() { println("Hello, World!") }
これは、AST をソース コード表現に変換する際の go/printer パッケージの効果的な使用法を示しています。
以上がAST から Go ソースコードを生成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。