parser

package
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Field

type Field struct {
	Name    string `json:"name"`    //字段名
	Type    *Type  `json:"type"`    //字段类型
	Bind    string `json:"bind"`    //字段绑定 //[]*FieldBind
	Comment string `json:"comment"` //注释
}

Field 消息字段

func (*Field) String

func (f *Field) String() string

type File

type File struct {
	*ast.File
	// contains filtered or unexported fields
}

type Func

type Func struct {
	Path    string   `json:"path"`    //包名
	Sel     string   `json:"sel"`     //选择器
	Name    string   `json:"name"`    //名
	Router  string   `json:"router"`  //路由
	Params  []*Param `json:"params"`  //输入参数
	Results []*Param `json:"results"` //输出参数
	Method  []string `json:"method"`  //请求方法
	Comment []string `json:"comment"` //注释
}

Func 方法

func (*Func) Go

func (f *Func) Go() string

func (*Func) ID

func (f *Func) ID() string

func (*Func) Package

func (f *Func) Package() string

func (*Func) ParamIDs

func (f *Func) ParamIDs() string

func (*Func) ResultIDs

func (f *Func) ResultIDs() string

type Import

type Import struct {
	Name  string `json:"name"`  //别名
	Path  string `json:"path"`  //包名
	Alias bool   `json:"alias"` //是否别名
}

Import 导入 <alias> "<package>"

func (*Import) String

func (imp *Import) String() string

type Imports

type Imports struct {
	Imports []*Import `json:"imports"`
	// contains filtered or unexported fields
}

func (*Imports) Find

func (imp *Imports) Find(path string) (name string)

type Param

type Param struct {
	Index int    `json:"index"` //索引位置
	Name  string `json:"name"`  //参数名
	Type  *Type  `json:"type"`  //参数类型
}

Param 参数

func (*Param) Context

func (p *Param) Context() bool

func (*Param) Err

func (p *Param) Err() bool

func (*Param) NoName

func (p *Param) NoName() bool

type Project

type Project struct {
	Root string `json:"root"` //跟目录
	Mod  string `json:"mod"`  //模块名

	Imports *Imports  `json:"imports"` //导入
	Structs []*Struct `json:"structs"` //消息
	Funs    []*Func   `json:"funcs"`   //方法

}

Project 项目

func Parse

func Parse(srcMod *mod.File) (prj *Project, err error)

type Struct

type Struct struct {
	Type   *Type    `json:"type"`   //结构体类型
	Fields []*Field `json:"fields"` //结构体字段
}

Struct 消息

type Type

type Type struct {
	Path  string `json:"path"`  //类型所在包
	Sel   string `json:"sel"`   //类型选择前缀
	Name  string `json:"name"`  //类型名称
	Star  bool   `json:"star"`  //加星
	Len   string `json:"array"` //集合: 集合长度
	Key   *Type  `json:"key"`   //表: 表键类型
	Value *Type  `json:"value"` //表、星: 值类型
}

Type 类型标识, <package>.<name>

func (*Type) Elem

func (t *Type) Elem() *Type

func (*Type) Go

func (t *Type) Go() string

func (*Type) String

func (t *Type) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL