Go 언어 parser 알아보기
오늘은 Go 언어 기본 패키지에 포함되있는 go/parser를 이용하여 실습해보려 합니다.
package main
import (
"go/parser"
"go/token"
"fmt"
)
이번 포스트에서 필요한 go/parser 패키지와 go/token 패키지를 준비해줍니다.
출력을 위한 fmt 패키지도 준비해줍니다.
func main() {
fileSet := token.NewFileSet()
token 패키지를 통해 파일셋을 생성해줍니다.
source :=
`
package main
import (
"fmt"
)
func main() {
fmt.Println("hello, world!")
}
`
go언어 파일을 가져온 것 같은 효과로 문자열을 만들어줍니다.
file, _ := parser.ParseFile(fileSet, "", source, parser.ImportsOnly)
parser 패키지의 ParseFile로 파일셋과 코드 문자열, 파서의 모드를 넣어줍니다.
fmt.Println(file.Name)
for _, spec := range file.Imports {
fmt.Println(spec.Path.Value)
}
}
출력해보면 해당 패키지 이름이 출력되고 이어서 import된 패키지의 이름들도 for문으로 반복하면서 출력됩니다.
Written on October 22, 2018