uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel

Можно ли скомпилировать ast.File?

Пакеты go/ast, go/paser предоставляют возможность получить дерево разбора, AST кода. Его можно править и потом вылить обратно в исходный код с помощью go/printer. А можно ли его скомпилировать не переводя обратно в исходный код? Вроде так и делает штатный компилятор -- сначала строит AST, потом переходит к следующей стадии компиляции. Предоставлена ли такая возможность разработчику -- докомпилировать ast.File?
package main
import (
	"go/printer"
	"go/parser"
	"go/token"
)
func main() {
	src := `
package main
func main() {
	println("Hello, World!")
}
`
	fset := token.NewFileSet()
    // дерево получить просто
	f, _ := parser.ParseFile(fset, "", src, 0)
	// просто его вывести обратно в исходный код
	printer.Fprint(os.Stdout, fset, f)
    // а можно ли его сбилдить?
}
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы