이 질문은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!