>  기사  >  백엔드 개발  >  Go AST를 소스 코드로 다시 변환하는 방법은 무엇입니까?

Go AST를 소스 코드로 다시 변환하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-01 15:34:02262검색

How to Convert Go AST Back to Source Code?

Go 소스 코드를 생성하는 방법

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.