ast

package
v0.14.1 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2020 License: MIT Imports: 9 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetFieldKey added in v0.7.0

func GetFieldKey(k Unique, fieldAddr interface{}) string

GetFieldKey получает ключ для поля данного k

func GetUnique added in v0.10.0

func GetUnique(k Unique) string

GetUnique получает ключ для данного k

func SetUnique added in v0.10.0

func SetUnique(k Unique, ctx UniqueContext)

SetUnique устанавливает уникальное в рамках UniqueContext значение для данного Unique

Types

type Any

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

Any представление типа golang.protobuf.Any

type Bool

type Bool struct {
	// contains filtered or unexported fields
}

Bool представление булевского типа

type Bytes

type Bytes struct {
	// contains filtered or unexported fields
}

Bytes представление типа bytes

type Comment added in v0.7.0

type Comment struct {
	Value string
	Lines []string
	// contains filtered or unexported fields
}

Comment представление комментария

type Enum

type Enum struct {
	File      *File
	ParentMsg *Message

	Name   string
	Values []*EnumValue
	// contains filtered or unexported fields
}

Enum представление типа enum

type EnumValue

type EnumValue struct {
	Name    string
	Integer int
	Options []*Option
	// contains filtered or unexported fields
}

EnumValue представление поля для Enum-а

type Extension added in v0.10.0

type Extension struct {
	File      *File
	ParentMsg *Message

	Name   string
	Fields []*ExtensionField
	Types  []Type
	// contains filtered or unexported fields
}

Extension представление extension

func MessageToExtension added in v0.10.0

func MessageToExtension(msg *Message) *Extension

MessageToExtension копирует Message в Extension с сохранением всей информации

type ExtensionField added in v0.10.0

type ExtensionField struct {
	Name     string
	Sequence int
	Type     Type
	Options  []*Option
	// contains filtered or unexported fields
}

ExtensionField представление поля extension-а

type File

type File struct {
	Name    string
	Package string
	Syntax  string

	Imports    []*Import
	Types      []Type
	Extensions []*Extension
	Services   []*Service
	Options    []*Option
	// contains filtered or unexported fields
}

File представление для файла

type FileManager added in v0.13.2

type FileManager interface {
	// Create возвращаем пару writer и функцию закрытия файла вместо одного io.WriteClose для удобства в тестах
	// Плюс, этот интерфейс будет использоваться только внутри приложения
	Create(name string) (writer io.Writer, closer func() error, err error)
}

FileManager работа с записываемыми файлами

func NewFileManager added in v0.13.2

func NewFileManager(root string) FileManager

NewFileManager реализация управления файлами на уровне файловой системы

type Fixed32

type Fixed32 struct {
	// contains filtered or unexported fields
}

Fixed32 представление типа fixed32

type Fixed64

type Fixed64 struct {
	// contains filtered or unexported fields
}

Fixed64 представление типа fixed64

type Float32

type Float32 struct {
	// contains filtered or unexported fields
}

Float32 представление типа float

type Float64

type Float64 struct {
	// contains filtered or unexported fields
}

Float64 представление типа double

type Hashable

type Hashable interface {
	ScalarNode
	// contains filtered or unexported methods
}

Hashable типы могущие являться ключами словарей

type Import added in v0.7.0

type Import struct {
	Path string
	File *File
	// contains filtered or unexported fields
}

Import представление для импортов

type Int32

type Int32 struct {
	// contains filtered or unexported fields
}

Int32 представление типа int32

type Int64

type Int64 struct {
	// contains filtered or unexported fields
}

Int64 представление типа int64

type Map

type Map struct {
	KeyType   Hashable
	ValueType Type
	// contains filtered or unexported fields
}

Map представление типа map<KeyType, ValueType>

type Message

type Message struct {
	File      *File
	ParentMsg *Message

	Name   string
	Fields []*MessageField
	Types  []Type
	// contains filtered or unexported fields
}

Message представление message

type MessageField

type MessageField struct {
	Name     string
	Sequence int
	Type     Type
	Options  []*Option
	// contains filtered or unexported fields
}

MessageField представление поля message-а

type Method

type Method struct {
	File    *File
	Service *Service

	Name   string
	Input  Type
	Output Type

	Options []*MethodOption
	// contains filtered or unexported fields
}

Method представление для метода

type MethodOption

type MethodOption struct {
	Name      string
	Extension *Extension
	Values    []*MethodOptionValue
	// contains filtered or unexported fields
}

MethodOption представление для опции метода

type MethodOptionValue added in v0.7.0

type MethodOptionValue struct {
	Name  string
	Value string
	// contains filtered or unexported fields
}

MethodOptionValue представление для значения опции метода

type Node

type Node interface {
	Unique
	// contains filtered or unexported methods
}

Node представление базовой ноды

type OneOf

type OneOf struct {
	ParentMsg *Message

	Name     string
	Branches []*OneOfBranch
	// contains filtered or unexported fields
}

OneOf представление для oneof поля message-а

type OneOfBranch

type OneOfBranch struct {
	Name     string
	Type     Type
	Sequence int
	Options  []*Option
	// contains filtered or unexported fields
}

OneOfBranch представление для ветви

type Option added in v0.7.0

type Option struct {
	Name      string
	Value     string
	Extension *Extension
	// contains filtered or unexported fields
}

Option опция

type Optional

type Optional struct {
	Type Type
	// contains filtered or unexported fields
}

Optional представление для опциональных полей

type Printer added in v0.13.2

type Printer struct {
	// contains filtered or unexported fields
}

Printer печать файлов

func NewPrinter added in v0.13.2

func NewPrinter(fm FileManager) *Printer

NewPrinter конструктор принтера файлов

func (*Printer) Plan added in v0.13.2

func (p *Printer) Plan(f *File)

Plan добавить файл в план печати

func (*Printer) Print added in v0.13.2

func (p *Printer) Print(file *File) error

Print печать файла и всех его зависимостей

type Repeated

type Repeated struct {
	Type Type
	// contains filtered or unexported fields
}

Repeated представление для полей с repeeated

type ScalarNode

type ScalarNode interface {
	Type
	// contains filtered or unexported methods
}

ScalarNode скалярные типы

type Service

type Service struct {
	File *File

	Name    string
	Methods []*Method
	// contains filtered or unexported fields
}

Service представление для сервисов

type Sfixed32

type Sfixed32 struct {
	// contains filtered or unexported fields
}

Sfixed32 представление для типа sfixed32

type Sfixed64

type Sfixed64 struct {
	// contains filtered or unexported fields
}

Sfixed64 представление для типа sfixed64

type Sint32

type Sint32 struct {
	// contains filtered or unexported fields
}

Sint32 представление для типа sint32

type Sint64

type Sint64 struct {
	// contains filtered or unexported fields
}

Sint64 представление типа sint64

type Stream

type Stream struct {
	Type Type
	// contains filtered or unexported fields
}

Stream представление для stream-аргументов и возвращаемых значений метода

type String

type String struct {
	// contains filtered or unexported fields
}

String представление для стрового типа

type Type

type Type interface {
	Node
	// contains filtered or unexported methods
}

Type представление типа

type Uint32

type Uint32 struct {
	// contains filtered or unexported fields
}

Uint32 представление для типа uint32

type Uint64

type Uint64 struct {
	// contains filtered or unexported fields
}

Uint64 представление для типа uint64

type Unique added in v0.7.0

type Unique interface {
	// contains filtered or unexported methods
}

Unique интерфейс для уникализации инстансов в AST привязывающий к данному объекту некое уникальное для контекстного множества значение

type UniqueContext added in v0.7.0

type UniqueContext map[string]struct{}

UniqueContext контекст для создания уникальных значений

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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