43 lines
891 B
Markdown
43 lines
891 B
Markdown
# GOAST
|
|
|
|
> GoAst 是一个go文件解析器
|
|
|
|
提供能力:
|
|
|
|
- 获取所有的变量定义
|
|
- 获取所有的常量定义
|
|
- 获取所有的函数定义
|
|
- 获取所有的结构体定义
|
|
- 获取所有的方法定义
|
|
|
|
## 用例
|
|
|
|
```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")
|
|
``` |