52 lines
718 B
Go
52 lines
718 B
Go
|
package mmql
|
||
|
|
||
|
type TokenType int
|
||
|
|
||
|
type Token struct {
|
||
|
Type TokenType
|
||
|
Value string
|
||
|
}
|
||
|
|
||
|
const (
|
||
|
K_SPACES = "\t\n\r "
|
||
|
K_BRACKETS = "()[]{}"
|
||
|
K_QUOTES = "'\"`"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
UnknownToken TokenType = iota
|
||
|
KeywordToken
|
||
|
BracketToken
|
||
|
SquareBracketToken
|
||
|
CurlyBracketToken
|
||
|
SingleQuote
|
||
|
DoubleQuote
|
||
|
AccuteAccentQuote
|
||
|
)
|
||
|
|
||
|
var KEYWORDS = []string {
|
||
|
"ANYWHERE",
|
||
|
"BOUGHT",
|
||
|
"BUY",
|
||
|
"CREATE",
|
||
|
"EVERY",
|
||
|
"EXCHANGE",
|
||
|
"FOR",
|
||
|
"FROM",
|
||
|
"GET",
|
||
|
"LIMIT",
|
||
|
"LIST",
|
||
|
"OF",
|
||
|
"SELL",
|
||
|
"SOLD",
|
||
|
"TRIGGER",
|
||
|
"TRIGGERS",
|
||
|
"TYPE",
|
||
|
"UPDATE",
|
||
|
"WITH",
|
||
|
}
|
||
|
|
||
|
var STATEMENTS = map[string] func() ( IStatement, error ) {
|
||
|
"BUY": _buyStatement,
|
||
|
}
|