query syntax now accepts floats for boost
This commit is contained in:
parent
78db88897c
commit
680de03e65
@ -9,11 +9,11 @@
|
|||||||
/^/ { logDebugTokens("BOOST"); return BOOST }
|
/^/ { logDebugTokens("BOOST"); return BOOST }
|
||||||
/\(/ { logDebugTokens("LPAREN"); return LPAREN }
|
/\(/ { logDebugTokens("LPAREN"); return LPAREN }
|
||||||
/\)/ { logDebugTokens("RPAREN"); return RPAREN }
|
/\)/ { logDebugTokens("RPAREN"); return RPAREN }
|
||||||
/-?[0-9]|[1-9][0-9]*/
|
/-?([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?/
|
||||||
{
|
{
|
||||||
lval.n,_ = strconv.Atoi(yylex.Text());
|
lval.f,_ = strconv.ParseFloat(yylex.Text(), 64);
|
||||||
logDebugTokens("INT - %d", lval.n);
|
logDebugTokens("NUMBER - %f", lval.f);
|
||||||
return INT
|
return NUMBER
|
||||||
}
|
}
|
||||||
/[ \t\n]+/ { logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ }
|
/[ \t\n]+/ { logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ }
|
||||||
/[^\t\n\f\r :^\+\-]+/ {
|
/[^\t\n\f\r :^\+\-]+/ {
|
||||||
|
@ -23,65 +23,44 @@ a = make([]family, 1)
|
|||||||
{
|
{
|
||||||
var acc [18]bool
|
var acc [18]bool
|
||||||
var fun [18]func(rune) int
|
var fun [18]func(rune) int
|
||||||
fun[8] = func(r rune) int {
|
fun[7] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 110: return 5
|
case 110: return 2
|
||||||
case 117: return 6
|
case 114: return 2
|
||||||
case 47: return 7
|
case 34: return 3
|
||||||
case 92: return 8
|
case 92: return 4
|
||||||
case 34: return 9
|
case 102: return 2
|
||||||
case 114: return 10
|
case 117: return 2
|
||||||
case 116: return 11
|
case 116: return 2
|
||||||
case 102: return 12
|
case 47: return 2
|
||||||
case 98: return 13
|
case 98: return 2
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 57: return 4
|
case 48 <= r && r <= 57: return 2
|
||||||
case 65 <= r && r <= 70: return 4
|
case 65 <= r && r <= 70: return 2
|
||||||
case 97 <= r && r <= 102: return 4
|
case 97 <= r && r <= 102: return 2
|
||||||
default: return 4
|
default: return 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[15] = func(r rune) int {
|
fun[1] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 110: return 4
|
case 110: return 2
|
||||||
case 117: return 4
|
case 114: return 2
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
case 34: return 3
|
||||||
case 114: return 4
|
case 92: return 4
|
||||||
case 116: return 4
|
case 102: return 2
|
||||||
case 102: return 16
|
case 117: return 2
|
||||||
case 98: return 16
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 2
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 57: return 16
|
case 48 <= r && r <= 57: return 2
|
||||||
case 65 <= r && r <= 70: return 16
|
case 65 <= r && r <= 70: return 2
|
||||||
case 97 <= r && r <= 102: return 16
|
case 97 <= r && r <= 102: return 2
|
||||||
default: return 4
|
default: return 2
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[10] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
case 110: return 4
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 4
|
|
||||||
case 65 <= r && r <= 70: return 4
|
|
||||||
case 97 <= r && r <= 102: return 4
|
|
||||||
default: return 4
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
@ -89,36 +68,15 @@ fun[10] = func(r rune) int {
|
|||||||
acc[3] = true
|
acc[3] = true
|
||||||
fun[3] = func(r rune) int {
|
fun[3] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 116: return -1
|
|
||||||
case 102: return -1
|
|
||||||
case 98: return -1
|
|
||||||
case 110: return -1
|
|
||||||
case 117: return -1
|
|
||||||
case 47: return -1
|
|
||||||
case 92: return -1
|
|
||||||
case 34: return -1
|
case 34: return -1
|
||||||
case 114: return -1
|
case 92: return -1
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return -1
|
|
||||||
case 65 <= r && r <= 70: return -1
|
|
||||||
case 97 <= r && r <= 102: return -1
|
|
||||||
default: return -1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[0] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 114: return -1
|
|
||||||
case 116: return -1
|
|
||||||
case 102: return -1
|
case 102: return -1
|
||||||
|
case 117: return -1
|
||||||
|
case 116: return -1
|
||||||
|
case 47: return -1
|
||||||
case 98: return -1
|
case 98: return -1
|
||||||
case 110: return -1
|
case 110: return -1
|
||||||
case 117: return -1
|
case 114: return -1
|
||||||
case 47: return -1
|
|
||||||
case 92: return -1
|
|
||||||
case 34: return 1
|
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 57: return -1
|
case 48 <= r && r <= 57: return -1
|
||||||
@ -129,276 +87,318 @@ fun[0] = func(r rune) int {
|
|||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[16] = func(r rune) int {
|
fun[9] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 47: return 4
|
case 110: return 2
|
||||||
case 92: return 2
|
case 114: return 2
|
||||||
case 34: return 3
|
case 34: return 3
|
||||||
case 114: return 4
|
case 92: return 4
|
||||||
case 116: return 4
|
case 102: return 2
|
||||||
case 102: return 17
|
case 117: return 2
|
||||||
case 98: return 17
|
case 116: return 2
|
||||||
case 110: return 4
|
case 47: return 2
|
||||||
case 117: return 4
|
case 98: return 2
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 57: return 17
|
case 48 <= r && r <= 57: return 2
|
||||||
case 65 <= r && r <= 70: return 17
|
case 65 <= r && r <= 70: return 2
|
||||||
case 97 <= r && r <= 102: return 17
|
case 97 <= r && r <= 102: return 2
|
||||||
default: return 4
|
default: return 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[11] = func(r rune) int {
|
fun[8] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 117: return 4
|
case 92: return 4
|
||||||
case 47: return 4
|
case 102: return 2
|
||||||
case 92: return 2
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 2
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
case 34: return 3
|
case 34: return 3
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
case 110: return 4
|
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 57: return 4
|
case 48 <= r && r <= 57: return 2
|
||||||
case 65 <= r && r <= 70: return 4
|
case 65 <= r && r <= 70: return 2
|
||||||
case 97 <= r && r <= 102: return 4
|
case 97 <= r && r <= 102: return 2
|
||||||
default: return 4
|
default: return 2
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[6] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 14
|
|
||||||
case 98: return 14
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 14
|
|
||||||
case 65 <= r && r <= 70: return 14
|
|
||||||
case 97 <= r && r <= 102: return 14
|
|
||||||
default: return 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[1] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 4
|
|
||||||
case 65 <= r && r <= 70: return 4
|
|
||||||
case 97 <= r && r <= 102: return 4
|
|
||||||
default: return 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[7] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 4
|
|
||||||
case 65 <= r && r <= 70: return 4
|
|
||||||
case 97 <= r && r <= 102: return 4
|
|
||||||
default: return 4
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[13] = func(r rune) int {
|
fun[13] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 110: return 4
|
case 110: return 2
|
||||||
case 117: return 4
|
case 114: return 2
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
case 34: return 3
|
||||||
case 114: return 4
|
case 92: return 4
|
||||||
case 116: return 4
|
case 102: return 2
|
||||||
case 102: return 4
|
case 117: return 2
|
||||||
case 98: return 4
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 2
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 57: return 4
|
case 48 <= r && r <= 57: return 2
|
||||||
case 65 <= r && r <= 70: return 4
|
case 65 <= r && r <= 70: return 2
|
||||||
case 97 <= r && r <= 102: return 4
|
case 97 <= r && r <= 102: return 2
|
||||||
default: return 4
|
default: return 2
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[5] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 4
|
|
||||||
case 65 <= r && r <= 70: return 4
|
|
||||||
case 97 <= r && r <= 102: return 4
|
|
||||||
default: return 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[17] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 4
|
|
||||||
case 65 <= r && r <= 70: return 4
|
|
||||||
case 97 <= r && r <= 102: return 4
|
|
||||||
default: return 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[12] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 4
|
|
||||||
case 65 <= r && r <= 70: return 4
|
|
||||||
case 97 <= r && r <= 102: return 4
|
|
||||||
default: return 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[14] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 15
|
|
||||||
case 98: return 15
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 15
|
|
||||||
case 65 <= r && r <= 70: return 15
|
|
||||||
case 97 <= r && r <= 102: return 15
|
|
||||||
default: return 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
acc[9] = true
|
|
||||||
fun[9] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
case 114: return 4
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 4
|
|
||||||
case 65 <= r && r <= 70: return 4
|
|
||||||
case 97 <= r && r <= 102: return 4
|
|
||||||
default: return 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[4] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 116: return 4
|
|
||||||
case 102: return 4
|
|
||||||
case 98: return 4
|
|
||||||
case 110: return 4
|
|
||||||
case 117: return 4
|
|
||||||
case 47: return 4
|
|
||||||
case 92: return 2
|
|
||||||
case 34: return 3
|
|
||||||
case 114: return 4
|
|
||||||
default:
|
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 57: return 4
|
|
||||||
case 65 <= r && r <= 70: return 4
|
|
||||||
case 97 <= r && r <= 102: return 4
|
|
||||||
default: return 4
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[2] = func(r rune) int {
|
fun[2] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 110: return 5
|
case 92: return 4
|
||||||
case 117: return 6
|
case 102: return 2
|
||||||
case 47: return 7
|
case 117: return 2
|
||||||
case 92: return 8
|
case 116: return 2
|
||||||
case 34: return 9
|
case 47: return 2
|
||||||
case 114: return 10
|
case 98: return 2
|
||||||
case 116: return 11
|
case 110: return 2
|
||||||
case 102: return 12
|
case 114: return 2
|
||||||
case 98: return 13
|
case 34: return 3
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 57: return 4
|
case 48 <= r && r <= 57: return 2
|
||||||
case 65 <= r && r <= 70: return 4
|
case 65 <= r && r <= 70: return 2
|
||||||
case 97 <= r && r <= 102: return 4
|
case 97 <= r && r <= 102: return 2
|
||||||
default: return 4
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[17] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
|
case 34: return 3
|
||||||
|
case 92: return 4
|
||||||
|
case 102: return 2
|
||||||
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 2
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 2
|
||||||
|
case 65 <= r && r <= 70: return 2
|
||||||
|
case 97 <= r && r <= 102: return 2
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[15] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
|
case 34: return 3
|
||||||
|
case 92: return 4
|
||||||
|
case 102: return 16
|
||||||
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 16
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 16
|
||||||
|
case 65 <= r && r <= 70: return 16
|
||||||
|
case 97 <= r && r <= 102: return 16
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[14] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 34: return 3
|
||||||
|
case 92: return 4
|
||||||
|
case 102: return 15
|
||||||
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 15
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 15
|
||||||
|
case 65 <= r && r <= 70: return 15
|
||||||
|
case 97 <= r && r <= 102: return 15
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[10] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
|
case 34: return 3
|
||||||
|
case 92: return 4
|
||||||
|
case 102: return 2
|
||||||
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 2
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 2
|
||||||
|
case 65 <= r && r <= 70: return 2
|
||||||
|
case 97 <= r && r <= 102: return 2
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[12] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 117: return 5
|
||||||
|
case 116: return 6
|
||||||
|
case 47: return 7
|
||||||
|
case 98: return 8
|
||||||
|
case 110: return 9
|
||||||
|
case 114: return 10
|
||||||
|
case 34: return 11
|
||||||
|
case 92: return 12
|
||||||
|
case 102: return 13
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 2
|
||||||
|
case 65 <= r && r <= 70: return 2
|
||||||
|
case 97 <= r && r <= 102: return 2
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[5] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 92: return 4
|
||||||
|
case 102: return 14
|
||||||
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 14
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
|
case 34: return 3
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 14
|
||||||
|
case 65 <= r && r <= 70: return 14
|
||||||
|
case 97 <= r && r <= 102: return 14
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
acc[11] = true
|
||||||
|
fun[11] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 34: return 3
|
||||||
|
case 92: return 4
|
||||||
|
case 102: return 2
|
||||||
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 2
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 2
|
||||||
|
case 65 <= r && r <= 70: return 2
|
||||||
|
case 97 <= r && r <= 102: return 2
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[16] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
|
case 34: return 3
|
||||||
|
case 92: return 4
|
||||||
|
case 102: return 17
|
||||||
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 17
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 17
|
||||||
|
case 65 <= r && r <= 70: return 17
|
||||||
|
case 97 <= r && r <= 102: return 17
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[4] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 117: return 5
|
||||||
|
case 116: return 6
|
||||||
|
case 47: return 7
|
||||||
|
case 98: return 8
|
||||||
|
case 110: return 9
|
||||||
|
case 114: return 10
|
||||||
|
case 34: return 11
|
||||||
|
case 92: return 12
|
||||||
|
case 102: return 13
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 2
|
||||||
|
case 65 <= r && r <= 70: return 2
|
||||||
|
case 97 <= r && r <= 102: return 2
|
||||||
|
default: return 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[0] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 34: return 1
|
||||||
|
case 92: return -1
|
||||||
|
case 102: return -1
|
||||||
|
case 117: return -1
|
||||||
|
case 116: return -1
|
||||||
|
case 47: return -1
|
||||||
|
case 98: return -1
|
||||||
|
case 110: return -1
|
||||||
|
case 114: return -1
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return -1
|
||||||
|
case 65 <= r && r <= 70: return -1
|
||||||
|
case 97 <= r && r <= 102: return -1
|
||||||
|
default: return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[6] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 47: return 2
|
||||||
|
case 98: return 2
|
||||||
|
case 110: return 2
|
||||||
|
case 114: return 2
|
||||||
|
case 34: return 3
|
||||||
|
case 92: return 4
|
||||||
|
case 102: return 2
|
||||||
|
case 117: return 2
|
||||||
|
case 116: return 2
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 57: return 2
|
||||||
|
case 65 <= r && r <= 70: return 2
|
||||||
|
case 97 <= r && r <= 102: return 2
|
||||||
|
default: return 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
@ -438,10 +438,9 @@ a0[1].id = 1
|
|||||||
{
|
{
|
||||||
var acc [2]bool
|
var acc [2]bool
|
||||||
var fun [2]func(rune) int
|
var fun [2]func(rune) int
|
||||||
acc[1] = true
|
fun[0] = func(r rune) int {
|
||||||
fun[1] = func(r rune) int {
|
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 45: return -1
|
case 45: return 1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return -1
|
default: return -1
|
||||||
@ -449,9 +448,10 @@ fun[1] = func(r rune) int {
|
|||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[0] = func(r rune) int {
|
acc[1] = true
|
||||||
|
fun[1] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 45: return 1
|
case 45: return -1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return -1
|
default: return -1
|
||||||
@ -466,10 +466,9 @@ a0[2].id = 2
|
|||||||
{
|
{
|
||||||
var acc [2]bool
|
var acc [2]bool
|
||||||
var fun [2]func(rune) int
|
var fun [2]func(rune) int
|
||||||
acc[1] = true
|
fun[0] = func(r rune) int {
|
||||||
fun[1] = func(r rune) int {
|
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 58: return -1
|
case 58: return 1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return -1
|
default: return -1
|
||||||
@ -477,9 +476,10 @@ fun[1] = func(r rune) int {
|
|||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[0] = func(r rune) int {
|
acc[1] = true
|
||||||
|
fun[1] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 58: return 1
|
case 58: return -1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return -1
|
default: return -1
|
||||||
@ -550,10 +550,9 @@ a0[5].id = 5
|
|||||||
{
|
{
|
||||||
var acc [2]bool
|
var acc [2]bool
|
||||||
var fun [2]func(rune) int
|
var fun [2]func(rune) int
|
||||||
acc[1] = true
|
fun[0] = func(r rune) int {
|
||||||
fun[1] = func(r rune) int {
|
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 41: return -1
|
case 41: return 1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return -1
|
default: return -1
|
||||||
@ -561,9 +560,10 @@ fun[1] = func(r rune) int {
|
|||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[0] = func(r rune) int {
|
acc[1] = true
|
||||||
|
fun[1] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 41: return 1
|
case 41: return -1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return -1
|
default: return -1
|
||||||
@ -576,24 +576,12 @@ a0[6].f = fun[:]
|
|||||||
a0[6].id = 6
|
a0[6].id = 6
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
var acc [5]bool
|
var acc [8]bool
|
||||||
var fun [5]func(rune) int
|
var fun [8]func(rune) int
|
||||||
acc[4] = true
|
fun[1] = func(r rune) int {
|
||||||
fun[4] = func(r rune) int {
|
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 45: return -1
|
case 45: return -1
|
||||||
default:
|
case 46: return -1
|
||||||
switch {
|
|
||||||
case 48 <= r && r <= 48: return 4
|
|
||||||
case 49 <= r && r <= 57: return 4
|
|
||||||
default: return -1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
fun[0] = func(r rune) int {
|
|
||||||
switch(r) {
|
|
||||||
case 45: return 1
|
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 48: return 2
|
case 48 <= r && r <= 48: return 2
|
||||||
@ -607,22 +595,25 @@ acc[3] = true
|
|||||||
fun[3] = func(r rune) int {
|
fun[3] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 45: return -1
|
case 45: return -1
|
||||||
|
case 46: return 4
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 48: return 4
|
case 48 <= r && r <= 48: return 5
|
||||||
case 49 <= r && r <= 57: return 4
|
case 49 <= r && r <= 57: return 5
|
||||||
default: return -1
|
default: return -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
fun[1] = func(r rune) int {
|
acc[5] = true
|
||||||
|
fun[5] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 45: return -1
|
case 45: return -1
|
||||||
|
case 46: return 4
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
case 48 <= r && r <= 48: return 2
|
case 48 <= r && r <= 48: return 5
|
||||||
case 49 <= r && r <= 57: return 2
|
case 49 <= r && r <= 57: return 5
|
||||||
default: return -1
|
default: return -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -631,6 +622,7 @@ fun[1] = func(r rune) int {
|
|||||||
acc[2] = true
|
acc[2] = true
|
||||||
fun[2] = func(r rune) int {
|
fun[2] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
|
case 46: return 4
|
||||||
case 45: return -1
|
case 45: return -1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
@ -641,6 +633,60 @@ fun[2] = func(r rune) int {
|
|||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
|
fun[0] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 45: return 1
|
||||||
|
case 46: return -1
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48: return 2
|
||||||
|
case 49 <= r && r <= 57: return 3
|
||||||
|
default: return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
acc[6] = true
|
||||||
|
fun[6] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 45: return -1
|
||||||
|
case 46: return -1
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48: return 7
|
||||||
|
case 49 <= r && r <= 57: return 7
|
||||||
|
default: return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
fun[4] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 45: return -1
|
||||||
|
case 46: return -1
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48: return 6
|
||||||
|
case 49 <= r && r <= 57: return 6
|
||||||
|
default: return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
acc[7] = true
|
||||||
|
fun[7] = func(r rune) int {
|
||||||
|
switch(r) {
|
||||||
|
case 46: return -1
|
||||||
|
case 45: return -1
|
||||||
|
default:
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48: return 7
|
||||||
|
case 49 <= r && r <= 57: return 7
|
||||||
|
default: return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
a0[7].acc = acc[:]
|
a0[7].acc = acc[:]
|
||||||
a0[7].f = fun[:]
|
a0[7].f = fun[:]
|
||||||
a0[7].id = 7
|
a0[7].id = 7
|
||||||
@ -648,11 +694,12 @@ a0[7].id = 7
|
|||||||
{
|
{
|
||||||
var acc [2]bool
|
var acc [2]bool
|
||||||
var fun [2]func(rune) int
|
var fun [2]func(rune) int
|
||||||
fun[0] = func(r rune) int {
|
acc[1] = true
|
||||||
|
fun[1] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 9: return 1
|
|
||||||
case 10: return 1
|
|
||||||
case 32: return 1
|
case 32: return 1
|
||||||
|
case 10: return 1
|
||||||
|
case 9: return 1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return -1
|
default: return -1
|
||||||
@ -660,12 +707,11 @@ fun[0] = func(r rune) int {
|
|||||||
}
|
}
|
||||||
panic("unreachable")
|
panic("unreachable")
|
||||||
}
|
}
|
||||||
acc[1] = true
|
fun[0] = func(r rune) int {
|
||||||
fun[1] = func(r rune) int {
|
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 9: return 1
|
case 9: return 1
|
||||||
case 10: return 1
|
|
||||||
case 32: return 1
|
case 32: return 1
|
||||||
|
case 10: return 1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return -1
|
default: return -1
|
||||||
@ -683,15 +729,15 @@ var fun [2]func(rune) int
|
|||||||
acc[1] = true
|
acc[1] = true
|
||||||
fun[1] = func(r rune) int {
|
fun[1] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 58: return -1
|
case 45: return -1
|
||||||
case 10: return -1
|
|
||||||
case 94: return -1
|
|
||||||
case 32: return -1
|
|
||||||
case 43: return -1
|
case 43: return -1
|
||||||
case 9: return -1
|
case 9: return -1
|
||||||
case 45: return -1
|
|
||||||
case 12: return -1
|
case 12: return -1
|
||||||
case 13: return -1
|
case 13: return -1
|
||||||
|
case 94: return -1
|
||||||
|
case 32: return -1
|
||||||
|
case 58: return -1
|
||||||
|
case 10: return -1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return 1
|
default: return 1
|
||||||
@ -701,15 +747,15 @@ fun[1] = func(r rune) int {
|
|||||||
}
|
}
|
||||||
fun[0] = func(r rune) int {
|
fun[0] = func(r rune) int {
|
||||||
switch(r) {
|
switch(r) {
|
||||||
case 9: return -1
|
|
||||||
case 45: return -1
|
|
||||||
case 12: return -1
|
case 12: return -1
|
||||||
case 13: return -1
|
case 13: return -1
|
||||||
case 58: return -1
|
|
||||||
case 10: return -1
|
|
||||||
case 94: return -1
|
case 94: return -1
|
||||||
case 32: return -1
|
case 32: return -1
|
||||||
|
case 58: return -1
|
||||||
|
case 10: return -1
|
||||||
|
case 45: return -1
|
||||||
case 43: return -1
|
case 43: return -1
|
||||||
|
case 9: return -1
|
||||||
default:
|
default:
|
||||||
switch {
|
switch {
|
||||||
default: return 1
|
default: return 1
|
||||||
@ -840,11 +886,11 @@ func (yylex Lexer) Lex(lval *yySymType) int {
|
|||||||
{ logDebugTokens("LPAREN"); return LPAREN }
|
{ logDebugTokens("LPAREN"); return LPAREN }
|
||||||
case 6: //\)/
|
case 6: //\)/
|
||||||
{ logDebugTokens("RPAREN"); return RPAREN }
|
{ logDebugTokens("RPAREN"); return RPAREN }
|
||||||
case 7: //-?[0-9]|[1-9][0-9]*/
|
case 7: //-?([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?/
|
||||||
{
|
{
|
||||||
lval.n,_ = strconv.Atoi(yylex.Text());
|
lval.f,_ = strconv.ParseFloat(yylex.Text(), 64);
|
||||||
logDebugTokens("INT - %d", lval.n);
|
logDebugTokens("NUMBER - %f", lval.f);
|
||||||
return INT
|
return NUMBER
|
||||||
}
|
}
|
||||||
case 8: //[ \t\n]+/
|
case 8: //[ \t\n]+/
|
||||||
{ logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ }
|
{ logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ }
|
||||||
|
@ -14,7 +14,7 @@ s string
|
|||||||
n int
|
n int
|
||||||
f float64}
|
f float64}
|
||||||
|
|
||||||
%token STRING PHRASE PLUS MINUS COLON BOOST LPAREN RPAREN INT STRING
|
%token STRING PHRASE PLUS MINUS COLON BOOST LPAREN RPAREN NUMBER STRING
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
@ -127,17 +127,17 @@ STRING COLON PHRASE {
|
|||||||
|
|
||||||
|
|
||||||
searchBoost:
|
searchBoost:
|
||||||
BOOST INT {
|
BOOST NUMBER {
|
||||||
boost := $2.n
|
boost := $2.f
|
||||||
if parsingLastQuery != nil {
|
if parsingLastQuery != nil {
|
||||||
switch parsingLastQuery := parsingLastQuery.(type) {
|
switch parsingLastQuery := parsingLastQuery.(type) {
|
||||||
case *MatchQuery:
|
case *MatchQuery:
|
||||||
parsingLastQuery.SetBoost(float64(boost))
|
parsingLastQuery.SetBoost(boost)
|
||||||
case *MatchPhraseQuery:
|
case *MatchPhraseQuery:
|
||||||
parsingLastQuery.SetBoost(float64(boost))
|
parsingLastQuery.SetBoost(boost)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logDebugGrammar("BOOST %d", boost)
|
logDebugGrammar("BOOST %f", boost)
|
||||||
};
|
};
|
||||||
|
|
||||||
searchSuffix:
|
searchSuffix:
|
||||||
|
12
y.go
12
y.go
@ -28,7 +28,7 @@ const COLON = 57350
|
|||||||
const BOOST = 57351
|
const BOOST = 57351
|
||||||
const LPAREN = 57352
|
const LPAREN = 57352
|
||||||
const RPAREN = 57353
|
const RPAREN = 57353
|
||||||
const INT = 57354
|
const NUMBER = 57354
|
||||||
|
|
||||||
var yyToknames = []string{
|
var yyToknames = []string{
|
||||||
"STRING",
|
"STRING",
|
||||||
@ -39,7 +39,7 @@ var yyToknames = []string{
|
|||||||
"BOOST",
|
"BOOST",
|
||||||
"LPAREN",
|
"LPAREN",
|
||||||
"RPAREN",
|
"RPAREN",
|
||||||
"INT",
|
"NUMBER",
|
||||||
}
|
}
|
||||||
var yyStatenames = []string{}
|
var yyStatenames = []string{}
|
||||||
|
|
||||||
@ -451,16 +451,16 @@ yydefault:
|
|||||||
case 13:
|
case 13:
|
||||||
//line query_syntax.y:130
|
//line query_syntax.y:130
|
||||||
{
|
{
|
||||||
boost := yyS[yypt-0].n
|
boost := yyS[yypt-0].f
|
||||||
if parsingLastQuery != nil {
|
if parsingLastQuery != nil {
|
||||||
switch parsingLastQuery := parsingLastQuery.(type) {
|
switch parsingLastQuery := parsingLastQuery.(type) {
|
||||||
case *MatchQuery:
|
case *MatchQuery:
|
||||||
parsingLastQuery.SetBoost(float64(boost))
|
parsingLastQuery.SetBoost(boost)
|
||||||
case *MatchPhraseQuery:
|
case *MatchPhraseQuery:
|
||||||
parsingLastQuery.SetBoost(float64(boost))
|
parsingLastQuery.SetBoost(boost)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logDebugGrammar("BOOST %d", boost)
|
logDebugGrammar("BOOST %f", boost)
|
||||||
}
|
}
|
||||||
case 14:
|
case 14:
|
||||||
//line query_syntax.y:144
|
//line query_syntax.y:144
|
||||||
|
Loading…
Reference in New Issue
Block a user