50 lines
664 B
Go
50 lines
664 B
Go
package lexer
|
|
|
|
// что есть в запросе?
|
|
// строковые литералы
|
|
// двоеточия
|
|
// знак равенства
|
|
// знак неравенства
|
|
// AND
|
|
// NOT
|
|
// открытые скобки
|
|
// закрытые скобки
|
|
// комментарии
|
|
// пайп-символы
|
|
// числа
|
|
// строки
|
|
|
|
type TokenType int
|
|
|
|
const (
|
|
SYMBOL TokenType = iota
|
|
COLON
|
|
EXCLAMATION
|
|
EQUAL
|
|
NOT_EQUAL
|
|
AND
|
|
NOT
|
|
OR
|
|
MORE
|
|
LESS
|
|
MORE_EQUAL
|
|
LESS_EQUAL
|
|
OPEN_BRACE
|
|
CLOSED_BRACE
|
|
COMMENT
|
|
PIPE
|
|
NUMBER
|
|
FLOAT_NUMBER
|
|
STRING_LITERAL
|
|
SPACE
|
|
)
|
|
|
|
type Token struct {
|
|
tokenType TokenType
|
|
value string
|
|
}
|
|
|
|
func Parse(str string) {
|
|
|
|
}
|