Documentation ¶
Index ¶
- Constants
- Variables
- type PLexem
- type TKeyword
- type TKeywordId
- type TLanguageItem
- type TLanguageItemType
- type TLexem
- type TLexemType
- type TReader
- type TStringArray
- type TSyntaxDescriptor
- func (self *TSyntaxDescriptor) AppendIdent(AName string)
- func (self *TSyntaxDescriptor) AppendItem(AType TLanguageItemType)
- func (self *TSyntaxDescriptor) AppendNumber(S string)
- func (self *TSyntaxDescriptor) AppendString(S string)
- func (self *TSyntaxDescriptor) ExtractComplexIdent() (error, string, TKeywordId)
- func (self *TSyntaxDescriptor) Init()
- func (self *TSyntaxDescriptor) NextLexem()
Constants ¶
View Source
const (
LF = 0xA // LineFeed
)
Variables ¶
View Source
var ( EUnterminatedString = &lsaError{Msg: "Незакрытая строка, ожидается \""} EUnterminatedChar = &lsaError{Msg: "Незакрытый символ, ожидается '"} )
View Source
var ( EExpectedExpression = &lsaError{Msg: "Отсутствует выражение после знака ="} ESyntaxError = &lsaError{Msg: "Синтаксическая ошибка"} EExpectedArgument = &lsaError{Msg: "Ожидается операнд"} ETooMuchCloseRB = &lsaError{Msg: "Слишком много )"} ETooMuchOpenRB = &lsaError{Msg: "Слишком много ("} EExpectedCloseOper = &lsaError{Msg: "Отсутствует 'конец'"} EUnExpectedKeyword = &lsaError{Msg: "Встретилось зарезервированное слово"} )
ошибки синтаксиса
View Source
var InvalidRune = errors.New("Invalid utf8 char, support russian only")
Functions ¶
This section is empty.
Types ¶
type TKeyword ¶
type TKeyword struct { Id TKeywordId Name string }
type TKeywordId ¶
type TKeywordId uint
type TLanguageItem ¶
type TLanguageItem struct { Type TLanguageItemType // идентификаторы будут держать здесь номер строки из массива // всех идентификаторов Index uint }
type TLanguageItemType ¶
type TLanguageItemType uint
type TLexem ¶
type TLexem struct { Next PLexem Text memfs.PBigByteArray Size uint Type TLexemType LineNo uint ColumnNo uint }
func (*TLexem) LexemAsString ¶
type TLexemType ¶
type TLexemType uint
type TReader ¶
type TReader struct { Text memfs.PBigByteArray Size uint64 Index uint64 NextIndex uint64 LineNo uint ColumnNo uint }
func (*TReader) BuildLexems ¶
type TStringArray ¶
type TStringArray []string
type TSyntaxDescriptor ¶
type TSyntaxDescriptor struct { Lexem *TLexem // лексема к которой надо будет вернуться, чтобы продолжить перевод // например, если название переменной состоит из нескольких слов, то // после нахождения знака =, надо будет вернуться к первому слову // переменной, чтобы записать её полное название StartLexem *TLexem LanguageItems []TLanguageItem Parenthesis int BeginCount int StrNumbers TStringArray StrIdents TStringArray StrStrings TStringArray Keyword TKeywordId }
func TranslateCode ¶
func TranslateCode(ALexem PLexem) (TSyntaxDescriptor, error)
Переводит текст в лексемах в массив элементов языка
func (*TSyntaxDescriptor) AppendIdent ¶
func (self *TSyntaxDescriptor) AppendIdent(AName string)
func (*TSyntaxDescriptor) AppendItem ¶
func (self *TSyntaxDescriptor) AppendItem(AType TLanguageItemType)
func (*TSyntaxDescriptor) AppendNumber ¶
func (self *TSyntaxDescriptor) AppendNumber(S string)
func (*TSyntaxDescriptor) AppendString ¶
func (self *TSyntaxDescriptor) AppendString(S string)
func (*TSyntaxDescriptor) ExtractComplexIdent ¶
func (self *TSyntaxDescriptor) ExtractComplexIdent() (error, string, TKeywordId)
Извлекает из лексем идентификатор, состоящий из нескольких слов Возвращает: (1)ошибку не nil, если первая лексема не ltIdent или первое
слово — зарезервированное слово; (2)строку — идентификатор, состоящий из нескольких слов, разделённых пробелом(кол-во пробелов между словами не различается; (3)номер зарезервированного слова, если не равен kwiUnknown, значит такое слово встретилось
func (*TSyntaxDescriptor) Init ¶
func (self *TSyntaxDescriptor) Init()
func (*TSyntaxDescriptor) NextLexem ¶
func (self *TSyntaxDescriptor) NextLexem()
Click to show internal directories.
Click to hide internal directories.