parser

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateServiceMethodContent added in v0.1.1

func GenerateServiceMethodContent(pd *CtxData, funcMap template.FuncMap) ([]byte, error)

func GenerateTemplate

func GenerateTemplate(fPath string, tempFile string, data interface{}) error

func GoModule added in v0.1.1

func GoModule(ctx *CtxData, command string) string

func ParsePbFile

func ParsePbFile(inputPath string, src interface{}, xxxSkip []string) (areas []textArea, err error)

func ToUnique added in v0.1.1

func ToUnique(list []string) []string

func WritePbFile

func WritePbFile(inputPath string, areas []textArea, removeTagComment bool) (err error)

Types

type CtxData added in v0.1.1

type CtxData struct {
	Cfg          *config.Config
	Command      string
	GoVersion    string
	Ports        []int
	StartErrCode int
	EndErrCode   int
	ModuleID     int
	// ModulePrefix string
	// GoModule string
	Name      string
	Group     string
	ClientDir string

	// from proto file
	FilePath         string
	PackageName      string
	GoPackage        string
	Options          map[string]string
	ImportMap        map[string]bool
	ServiceImportMap map[string][]string
	ListOptionMap    map[string]*ListReqOption
	ServiceList      []*Service
	ErrCodeList      []Enum
	ModelList        []*proto.Message
	MessageList      []*Message
	ModelFieldList   []string

	// Deprecated: from go file
	ServiceMethodMap map[string]map[string]struct {
		Req string
		Rsp string
	}
	// Deprecated: from go file
	ObjectMap map[string]string
	// Deprecated: from go file
	FuncBodyMap map[string]string

	// parse the specified go file
	ExistedGoFile *GoFileAST
}

func NewCtxData added in v0.1.1

func NewCtxData() *CtxData

func ParseProtoFile added in v0.1.1

func ParseProtoFile(protoFilepath string) (*CtxData, error)

ParseProtoFile 解析proto文件

func (*CtxData) GetFirstGoPackage added in v0.1.1

func (pd *CtxData) GetFirstGoPackage() (string, error)

func (*CtxData) ParseGoFile added in v0.1.1

func (pd *CtxData) ParseGoFile(filePath string) error

ParseGoFile 从一个go文件从找出制定后缀的结构体,然后分析结构体里面的方法函数,并排除私有方法函数。

type Enum

type Enum struct {
	Name          string
	EnumFieldList []*proto.EnumField
}

type GoFileAST added in v0.1.1

type GoFileAST struct {
	Consts map[string]struct{}
	// dbUser:var
	// NewUserService:func
	// UserService:type
	Objects map[string]string
	Funcs   map[string]struct{}
	Structs map[string]*StructAST
}

func ParseFile added in v0.1.1

func ParseFile(filePath string) (*GoFileAST, error)

type ListReqOption

type ListReqOption struct {
	ReqName      string // the name of request
	EnumName     string
	EnumFieldMap map[string]string
}

type Message

type Message struct {
	Name      string
	FieldList []*MessageField
}

type MessageField

type MessageField struct {
	*proto.MapField
	*proto.NormalField
	*Message
}

type MethodAST added in v0.1.1

type MethodAST struct {
	Name    string
	ReqArgs []string
	RspArgs []string
}

type ProtoVisitor

type ProtoVisitor struct {
	// proto.Visitor
	// proto.RPC
	Name          string
	FieldNameList []string
	EnumFieldList []*proto.EnumField
	Message       *Message
}

func (*ProtoVisitor) VisitComment

func (p *ProtoVisitor) VisitComment(e *proto.Comment)

func (*ProtoVisitor) VisitEnum

func (p *ProtoVisitor) VisitEnum(e *proto.Enum)

func (*ProtoVisitor) VisitEnumField

func (p *ProtoVisitor) VisitEnumField(i *proto.EnumField)

func (*ProtoVisitor) VisitExtensions

func (p *ProtoVisitor) VisitExtensions(e *proto.Extensions)

func (*ProtoVisitor) VisitGroup

func (p *ProtoVisitor) VisitGroup(g *proto.Group)

func (*ProtoVisitor) VisitImport

func (p *ProtoVisitor) VisitImport(i *proto.Import)

func (*ProtoVisitor) VisitMapField

func (p *ProtoVisitor) VisitMapField(f *proto.MapField)

func (*ProtoVisitor) VisitMessage

func (p *ProtoVisitor) VisitMessage(m *proto.Message)

func (*ProtoVisitor) VisitNormalField

func (p *ProtoVisitor) VisitNormalField(i *proto.NormalField)

func (*ProtoVisitor) VisitOneof

func (p *ProtoVisitor) VisitOneof(o *proto.Oneof)

func (*ProtoVisitor) VisitOneofField

func (p *ProtoVisitor) VisitOneofField(o *proto.OneOfField)

func (*ProtoVisitor) VisitOption

func (p *ProtoVisitor) VisitOption(o *proto.Option)

func (*ProtoVisitor) VisitPackage

func (p *ProtoVisitor) VisitPackage(pkg *proto.Package)

func (*ProtoVisitor) VisitRPC

func (p *ProtoVisitor) VisitRPC(rpc *proto.RPC)

func (*ProtoVisitor) VisitReserved

func (p *ProtoVisitor) VisitReserved(rs *proto.Reserved)

func (*ProtoVisitor) VisitService

func (p *ProtoVisitor) VisitService(v *proto.Service)

func (*ProtoVisitor) VisitSyntax

func (p *ProtoVisitor) VisitSyntax(s *proto.Syntax)

type RpcMethod

type RpcMethod struct {
	Name         string
	RequestType  string
	ResponseType string
	//  StreamRequest	bool
	//  StreamResponse	bool
	//  Comment
	Options map[string]string

	CommentLines []string
}

type Service

type Service struct {
	ServiceName string
	RpcList     []*RpcMethod
}

type StructAST added in v0.1.1

type StructAST struct {
	StructName string
	Fields     map[string]string
	Methods    map[string]*MethodAST
}

Jump to

Keyboard shortcuts

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