2013-02-06 5 views
5

Go kaynak kodunu oluşturmanın bir yolunu arıyorum.Generate Go kaynak koduna git

AST formuna bir Go kaynak dosyası oluşturmak için go/ayrıştırıcı buldum ancak AST kaynağından Go kaynağı oluşturmanın bir yolunu bulamadım.

cevap

15

AST'yi kaynak forma dönüştürmek için go/printer paketini kullanabilirsiniz.

Örnek (başka example ait uyarlanmış biçimi) (ayrıca here)

package main 

import (
     "go/parser" 
     "go/printer" 
     "go/token" 
     "os" 
) 

func main() { 
     // src is the input 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) 

} 


Çıktı:

package main 

func main() { 
     println("Hello, World!") 
} 
+0

teşekkür ederiz! Çok yararlı. –