testdata | ||
.gitignore | ||
go.mod | ||
go.sum | ||
goast_test.go | ||
goast.go | ||
README.md | ||
util.go |
GOAST
GoAst 是一个go文件解析器
提供能力:
- 获取所有的变量定义
- 获取所有的常量定义
- 获取所有的函数定义
- 获取所有的结构体定义
- 获取所有的方法定义
用例
package main
import
gitter.top/coco/goast
func
func main() {
parser, err := NewParser("hello.go")
if err != nil {
// do something
}
defines, err := parser.Parse()
if err != nil {
// do something
}
// 是否存在变量Hello
defines.ExistVariable("Hello")
// 是否存在常量 World
defines.ExistConstant("World")
// 是否存在函数 Add
defines.ExistFunction("Add")
// 是否存在Calc结构体的方法 Sub
defines.ExistMethod("Calc.Sub")
// 是否存在导入包 "a/b/c"
defines.ExistImport("a/b/c")
// 是否存在结构体定义 Calc
defines.ExistType("Calc")