parser包的作用是将go源文件 转换为 抽象语法树(AST)

FUNC

  1. // ParseDir 对指定path下以".go"结尾的文件做ParseFile操作
  2. // filter 过滤".go"文件,只用返回true 时才会被考虑
  3. func ParseDir(fset *token.FileSet, path string, filter func(os.FileInfo) bool, mode Mode)
  4. (pkgs map[string]*ast.Package, first error)
  5. // ParseExpr是一个方便的函数,用于获取表达式x的AST
  6. func ParseExpr(x string) (ast.Expr, error)
  7. // ParseFile解析单个Go源文件的源代码,并返回相应的ast.File节点。
  8. // 源代码可以通过源文件的文件名或src参数提供。
  9. // 如果src为nil,才会去读filename
  10. func ParseFile(fset *token.FileSet, filename string, src interface{}, mode Mode)
  11. (f *ast.File, err error)

type Mode

控制解析行为

  1. const (
  2. PackageClauseOnly Mode = 1 << iota // stop parsing after package clause
  3. ImportsOnly // stop parsing after import declarations
  4. ParseComments // parse comments and add them to AST
  5. Trace // print a trace of parsed productions
  6. DeclarationErrors // report declaration errors
  7. SpuriousErrors // same as AllErrors, for backward-compatibility
  8. AllErrors = SpuriousErrors // report all errors (not just the first 10 on different lines)
  9. )