1
0
mirror of https://git.mills.io/kayos/bitraft.git synced 2024-06-29 18:21:39 +00:00
bitraft/keywords.go
Josh Baker 339e6e6ffb wip
2017-01-31 03:24:15 -07:00

90 lines
1.9 KiB
Go

package roam
type keyword int
const (
kwUnknown keyword = iota
kwSET
kwGET
kwDEL
kwKEYS
kwDUMP
kwDELIF
kwLISTEX
kwFLUSHDB
kwSHUTDOWN
)
func pkeyword(b []byte) keyword {
switch len(b) {
case 3:
if (b[0] == 's' || b[0] == 'S') &&
(b[1] == 'e' || b[1] == 'E') &&
(b[2] == 't' || b[2] == 'T') {
return kwSET
}
if (b[0] == 'g' || b[0] == 'G') &&
(b[1] == 'e' || b[1] == 'E') &&
(b[2] == 't' || b[2] == 'T') {
return kwGET
}
if (b[0] == 'd' || b[0] == 'D') &&
(b[1] == 'e' || b[1] == 'E') &&
(b[2] == 'l' || b[2] == 'L') {
return kwDEL
}
case 4:
if (b[0] == 'k' || b[0] == 'K') &&
(b[1] == 'e' || b[1] == 'E') &&
(b[2] == 'y' || b[2] == 'Y') &&
(b[3] == 's' || b[3] == 'S') {
return kwKEYS
}
if (b[0] == 'd' || b[0] == 'D') &&
(b[1] == 'u' || b[1] == 'U') &&
(b[2] == 'm' || b[2] == 'M') &&
(b[3] == 'p' || b[3] == 'P') {
return kwDUMP
}
case 5:
if (b[0] == 'd' || b[0] == 'D') &&
(b[1] == 'e' || b[1] == 'E') &&
(b[2] == 'l' || b[2] == 'L') &&
(b[3] == 'i' || b[3] == 'I') &&
(b[4] == 'f' || b[4] == 'F') {
return kwDELIF
}
case 6:
if (b[0] == 'l' || b[0] == 'L') &&
(b[1] == 'i' || b[1] == 'I') &&
(b[2] == 's' || b[2] == 'S') &&
(b[3] == 't' || b[3] == 'T') &&
(b[4] == 'e' || b[4] == 'E') &&
(b[5] == 'x' || b[5] == 'X') {
return kwLISTEX
}
case 7:
if (b[0] == 'f' || b[0] == 'F') &&
(b[1] == 'l' || b[1] == 'L') &&
(b[2] == 'u' || b[2] == 'U') &&
(b[3] == 's' || b[3] == 'S') &&
(b[4] == 'h' || b[4] == 'H') &&
(b[5] == 'd' || b[5] == 'D') &&
(b[6] == 'b' || b[6] == 'B') {
return kwFLUSHDB
}
case 8:
if (b[0] == 's' || b[0] == 'S') &&
(b[1] == 'h' || b[1] == 'H') &&
(b[2] == 'u' || b[2] == 'U') &&
(b[3] == 't' || b[3] == 'T') &&
(b[4] == 'd' || b[4] == 'D') &&
(b[5] == 'o' || b[5] == 'O') &&
(b[6] == 'w' || b[6] == 'W') &&
(b[7] == 'n' || b[7] == 'N') {
return kwSHUTDOWN
}
}
return kwUnknown
}