grammemes

package module
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2020 License: MIT Imports: 7 Imported by: 1

README

Определения грамматических категорий для работы с текстами на русском языке

Documentation

Overview

Package grammemes defines grammar category type, index and list types with helper functions to deal with grammar categories for russian language

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewErrorf

func NewErrorf(format string, args ...interface{}) error

NewErrorf is a default error constructor. Takes format and arguments to make error description using fmt.Sprintf() formatting rules.

Types

type Error

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

Error type implements error interface and used in package routines.

func WrapErrorf

func WrapErrorf(wrap error, format string, args ...interface{}) *Error

WrapErrorf wraps underlying error into new text error Takes format and arguments to make error description using fmt.Sprintf() formatting rules.

func (Error) Error

func (e Error) Error() string

Error returns formatted error string. Implements error interface.

func (Error) GoString

func (e Error) GoString() string

GoString returns formatted error string prefixes with package name and type. Implements GoStringer.

type Grammeme

type Grammeme struct {
	ParentAttr  GrammemeName     // Parent grammeme name.
	Name        GrammemeName     // Grammeme name.
	Alias       text.RussianText // Localized grammeme name.
	Description text.RussianText // Grammeme description.
}

Grammeme implements storage for grammatical category structure data..

func NewGrammeme added in v0.2.3

func NewGrammeme(parent GrammemeName, name GrammemeName, alias text.RussianText, desc text.RussianText) *Grammeme

NewGrammeme makes new grammeme with required parent, name, alias and description.

func (Grammeme) MarshalBinary

func (g Grammeme) MarshalBinary() ([]byte, error)

MarshalBinary makes binary grammeme data. Все строковые параметры записываются как строки, завершённые нулевым байтом.

func (Grammeme) String

func (g Grammeme) String() string

String returns string representation of grammeme. Implements Stringer.

func (*Grammeme) UnmarshalBinary

func (g *Grammeme) UnmarshalBinary(data []byte) error

UnmarshalBinary распаковывает байтовую строку в данные граммемы.

func (*Grammeme) UnmarshalFromBuffer

func (g *Grammeme) UnmarshalFromBuffer(buffer *binutils.Buffer) error

UnmarshalFromBuffer takes required bytes fro buffer to unmarshal binary grammeme data.

type GrammemeIndexer

type GrammemeIndexer interface {
	GrammemeIndex() *Index
}

GrammemeIndexer задаёт интерфейс для типов, возвращающих индекс граммем

type GrammemeName

type GrammemeName string

GrammemeName represents name of grammatical category. Always 4 ASCII characters.

func (GrammemeName) MarshalBinary

func (g GrammemeName) MarshalBinary() (data []byte, err error)

MarshalBinary makes binary representation bytes slice. Always 4 bytes. Empty grammeme name represents as 4 spaces.

func (GrammemeName) String

func (g GrammemeName) String() string

String returns grammeme name as string type. Implements stringer.

func (*GrammemeName) UnmarshalBinary

func (g *GrammemeName) UnmarshalBinary(data []byte) error

UnmarshalBinary loads grammeme name from bytes slice. Requires slice len of grammemeNameLength bytes. If takes 0x20202020 replaces spaces into empty grammeme name. Returns error if data slice len mismatch.

func (*GrammemeName) UnmarshalFromBuffer

func (g *GrammemeName) UnmarshalFromBuffer(buffer *binutils.Buffer) (err error)

UnmarshalFromBuffer loads grammeme name from buffer. If takes 0x20202020 replaces spaces into empty grammeme name. Implements buffer.BufferUnmarshaler.

type Index

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

Index реализует индекс известных граммем и предоставляет уникальные идентификаторы граммем в индексе.

func NewIndex added in v0.2.2

func NewIndex(grammemes ...Grammeme) *Index

NewIndex создаёт новый индекс с заданными граммемами.

func (*Index) Add

func (x *Index) Add(grammeme Grammeme) error

Add добавляет новую граммему в индекс. Имя граммемы не должно совпадать с именем уже существующей граммемы. Группа (родительская граммема) должна быть уже добавлена (за исключением граммем не имеющих группы). Кириллическая аббревиатура наименования не должна совпадать с аббревиатурой уже существующей граммемы.

func (Index) ByIdx

func (x Index) ByIdx(requiredIdx uint8) (*Grammeme, error)

ByIdx позволяет получить граммему из индекса по известному идентификатору. Возвращает ошибку, если идентификатор в индексе не найден.

func (*Index) ByName

func (x *Index) ByName(name GrammemeName) (*Grammeme, error)

ByName находит граммему в индексе по имени. Имя граммемы не должно совпадать с именем уже существующей граммемы. Группа (родительская граммема) должна быть уже добавлена (за исключением граммем не имеющих группы). Кириллическая аббревиатура наименования не должна совпадать с аббревиатурой уже существующей граммемы.

func (Index) Idx

func (x Index) Idx(name GrammemeName) (uint8, error)

Idx позволяет получить уникальный идентификатор граммемы в индексе. Возвращает ошибку, если граммема в индексе не найдена.

func (Index) Len added in v0.2.5

func (x Index) Len() int

Len возвращает количество граммем в индексе.

func (Index) MarshalBinary

func (x Index) MarshalBinary() (data []byte, err error)

MarshalBinary упаковывает индекс граммем в двоичную последовательность. В двоичном виде список граммем содержит длину списка listLen в 1м байте. и набор элементов списка длиной listLen. В случае, размер данных в последовательности не соответствует списку категорий, возвращает ошибку.

func (*Index) NewList

func (x *Index) NewList(grammemes ...*Grammeme) *List

NewList создаёт новый список граммем привязанных к индексу.

func (Index) Slice added in v0.2.5

func (x Index) Slice() []Grammeme

Slice возвращает список граммем в индексе.

func (*Index) UnmarshalBinary

func (x *Index) UnmarshalBinary(data []byte) error

UnmarshalBinary распаковывает бинарные данные индекса из бинарной последовательности. В двоичном виде список граммем содержит длину списка listLen в 1м байте и набор элементов списка длиной listLen. В случае, если размер данных в последовательности не соответствует списку граммем, возвращает ошибку.

func (*Index) UnmarshalFromBuffer

func (x *Index) UnmarshalFromBuffer(buffer *binutils.Buffer) error

UnmarshalFromBuffer загружает индекс граммем из двоичного буфера. В двоичном виде список граммем содержит длину списка listLen в 1м байте и набор элементов списка длиной listLen. Данные за пределами длины списка listLen остаются в буфере нетронутыми.

type List

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

List хранит список граммем, определённых в индексе.

func NewList

func NewList(index *Index, grammemes ...*Grammeme) *List

NewList создаёт новый список граммем для заданного индекса.

func (*List) Add

func (g *List) Add(grammeme *Grammeme) error

Add добавляет граммему в список. Возвращает ошибку, если граммема уже в списке.

func (*List) EqualTo

func (g *List) EqualTo(another *List) bool

EqualTo сравнивает список граммем с другим списком. Возвращает true если списки граммем используют одинаковый индекс и содержат одинаковый набор граммем, независимо от порядка в списке.

func (*List) GrammemeIndex

func (g *List) GrammemeIndex() *Index

GrammemeIndex возвращает указатель на использованный индекс.

func (List) Len added in v0.2.5

func (g List) Len() int

Len возвращает список граммем.

func (List) MarshalBinary

func (g List) MarshalBinary() (data []byte, err error)

MarshalBinary сохраняет данные списка граммем в двоичном виде. При сохранении в двоичном виде список граммем записывает только идентификаторы граммем в индексе. Первый байт записи всегда размер списка.

func (List) Slice added in v0.2.4

func (g List) Slice() []*Grammeme

Slice возвращает список граммем.

func (*List) String added in v0.2.5

func (g *List) String() string

String возвращает строковое представление списка граммем.

func (*List) UnmarshalFromBuffer

func (g *List) UnmarshalFromBuffer(buffer *binutils.Buffer) error

UnmarshalFromBuffer загружает данные списка граммем из бинарного буфера. При загрузке бинарных данных список граммем получает размер списка и идентификаторы граммем в индексе. Первый байт записи всегда размер списка, затем следуют байты идентификаторов граммем. При загрузке списка из буфера список граммем вычитывает необходимое количество байт, оставляя лишние данные в буфере.

type ListIndex added in v0.2.5

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

ListIndex allow store indexed grammemes lists.

func NewListIndex added in v0.2.5

func NewListIndex(index *Index, lists ...*List) *ListIndex

NewListIndex creates new grammemes lists index for requested grammemes index.

func (*ListIndex) Add added in v0.2.5

func (listIndex *ListIndex) Add(list *List)

Add adds grammemes list into index if such list not added before.

func (*ListIndex) GetOrCreateIdx added in v0.3.2

func (listIndex *ListIndex) GetOrCreateIdx(list *List) uint64

GetOrCreateIdx get list id from index. Adds list into index if not added before.

func (*ListIndex) Idx added in v0.3.2

func (listIndex *ListIndex) Idx(list *List) (uint64, error)

Idx returns id of specified list in index. Returns error if no such grammemes list in index found.

func (ListIndex) Len added in v0.2.5

func (listIndex ListIndex) Len() int

Len returns count of registered grammemes sets.

func (*ListIndex) MarshalBinary added in v0.2.5

func (listIndex *ListIndex) MarshalBinary() (data []byte, err error)

MarshalBinary returns binary representation of known grammemes sets. Returns error if anything goes wrong.

func (ListIndex) Slice added in v0.2.5

func (listIndex ListIndex) Slice() ListList

Slice returns slice of grammemes lists.

func (ListIndex) String added in v0.2.5

func (listIndex ListIndex) String() string

String returns string representation of grammemes lists index.

func (*ListIndex) UnmarshalFromBuffer added in v0.2.5

func (listIndex *ListIndex) UnmarshalFromBuffer(buffer *binutils.Buffer) (err error)

UnmarshalFromBuffer takes required bytes from buffer to unmarshal grammemes sets. Returns error if anything goes wrong.

type ListList added in v0.2.5

type ListList []*List

ListList предоставляет контейнер для хранения списка наборов граммем.

func (ListList) String added in v0.2.5

func (listOfList ListList) String() string

String возвращает строковое представления списка наборов граммем.

Jump to

Keyboard shortcuts

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