From 680de03e65941df70489eee5f69f8ddcdf5e2119 Mon Sep 17 00:00:00 2001 From: Marty Schoch Date: Mon, 25 Aug 2014 20:09:53 -0400 Subject: [PATCH] query syntax now accepts floats for boost --- query_syntax.nex | 8 +- query_syntax.nn.go | 786 ++++++++++++++++++++++++--------------------- query_syntax.y | 12 +- y.go | 12 +- 4 files changed, 432 insertions(+), 386 deletions(-) diff --git a/query_syntax.nex b/query_syntax.nex index aa55a1f9..419ecef7 100644 --- a/query_syntax.nex +++ b/query_syntax.nex @@ -9,11 +9,11 @@ /^/ { logDebugTokens("BOOST"); return BOOST } /\(/ { logDebugTokens("LPAREN"); return LPAREN } /\)/ { 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()); - logDebugTokens("INT - %d", lval.n); - return INT + lval.f,_ = strconv.ParseFloat(yylex.Text(), 64); + logDebugTokens("NUMBER - %f", lval.f); + return NUMBER } /[ \t\n]+/ { logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ } /[^\t\n\f\r :^\+\-]+/ { diff --git a/query_syntax.nn.go b/query_syntax.nn.go index fb7c230f..69464dc6 100644 --- a/query_syntax.nn.go +++ b/query_syntax.nn.go @@ -23,65 +23,44 @@ a = make([]family, 1) { var acc [18]bool var fun [18]func(rune) int -fun[8] = func(r rune) int { +fun[7] = func(r rune) int { switch(r) { - case 110: return 5 - case 117: return 6 - case 47: return 7 - case 92: return 8 - case 34: return 9 - case 114: return 10 - case 116: return 11 - case 102: return 12 - case 98: return 13 + 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 4 - case 65 <= r && r <= 70: return 4 - case 97 <= r && r <= 102: return 4 - default: return 4 + 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 { +fun[1] = func(r rune) int { switch(r) { - case 110: return 4 - case 117: return 4 - case 47: return 4 - case 92: return 2 + case 110: return 2 + case 114: return 2 case 34: return 3 - case 114: return 4 - case 116: return 4 - case 102: return 16 - case 98: return 16 + 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 16 - case 65 <= r && r <= 70: return 16 - case 97 <= r && r <= 102: return 16 - default: return 4 - } - } - 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 + 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") @@ -89,36 +68,15 @@ fun[10] = func(r rune) int { acc[3] = true fun[3] = func(r rune) int { 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 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[0] = func(r rune) int { - switch(r) { - case 114: return -1 - case 116: 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 117: return -1 - case 47: return -1 - case 92: return -1 - case 34: return 1 + case 114: return -1 default: switch { case 48 <= r && r <= 57: return -1 @@ -129,276 +87,318 @@ fun[0] = func(r rune) int { } panic("unreachable") } -fun[16] = func(r rune) int { +fun[9] = func(r rune) int { switch(r) { - case 47: return 4 - case 92: return 2 + case 110: return 2 + case 114: return 2 case 34: return 3 - case 114: return 4 - case 116: return 4 - case 102: return 17 - case 98: return 17 - case 110: return 4 - case 117: return 4 + 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 17 - case 65 <= r && r <= 70: return 17 - case 97 <= r && r <= 102: return 17 - default: return 4 + 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[11] = func(r rune) int { +fun[8] = func(r rune) int { switch(r) { - case 117: return 4 - case 47: return 4 - case 92: return 2 + 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 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") -} -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 + 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[13] = func(r rune) int { switch(r) { - case 110: return 4 - case 117: return 4 - case 47: return 4 - case 92: return 2 + case 110: return 2 + case 114: return 2 case 34: return 3 - case 114: return 4 - case 116: return 4 - case 102: return 4 - case 98: return 4 + 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 4 - case 65 <= r && r <= 70: return 4 - case 97 <= r && r <= 102: return 4 - default: return 4 - } - } - 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 + 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[2] = func(r rune) int { switch(r) { - case 110: return 5 - case 117: return 6 - case 47: return 7 - case 92: return 8 - case 34: return 9 - case 114: return 10 - case 116: return 11 - case 102: return 12 - case 98: return 13 + 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 + 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 + 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[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") @@ -438,10 +438,9 @@ a0[1].id = 1 { var acc [2]bool var fun [2]func(rune) int -acc[1] = true -fun[1] = func(r rune) int { +fun[0] = func(r rune) int { switch(r) { - case 45: return -1 + case 45: return 1 default: switch { default: return -1 @@ -449,9 +448,10 @@ fun[1] = func(r rune) int { } panic("unreachable") } -fun[0] = func(r rune) int { +acc[1] = true +fun[1] = func(r rune) int { switch(r) { - case 45: return 1 + case 45: return -1 default: switch { default: return -1 @@ -466,10 +466,9 @@ a0[2].id = 2 { var acc [2]bool var fun [2]func(rune) int -acc[1] = true -fun[1] = func(r rune) int { +fun[0] = func(r rune) int { switch(r) { - case 58: return -1 + case 58: return 1 default: switch { default: return -1 @@ -477,9 +476,10 @@ fun[1] = func(r rune) int { } panic("unreachable") } -fun[0] = func(r rune) int { +acc[1] = true +fun[1] = func(r rune) int { switch(r) { - case 58: return 1 + case 58: return -1 default: switch { default: return -1 @@ -550,10 +550,9 @@ a0[5].id = 5 { var acc [2]bool var fun [2]func(rune) int -acc[1] = true -fun[1] = func(r rune) int { +fun[0] = func(r rune) int { switch(r) { - case 41: return -1 + case 41: return 1 default: switch { default: return -1 @@ -561,9 +560,10 @@ fun[1] = func(r rune) int { } panic("unreachable") } -fun[0] = func(r rune) int { +acc[1] = true +fun[1] = func(r rune) int { switch(r) { - case 41: return 1 + case 41: return -1 default: switch { default: return -1 @@ -576,24 +576,12 @@ a0[6].f = fun[:] a0[6].id = 6 } { -var acc [5]bool -var fun [5]func(rune) int -acc[4] = true -fun[4] = func(r rune) int { +var acc [8]bool +var fun [8]func(rune) int +fun[1] = func(r rune) int { switch(r) { case 45: return -1 - default: - 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 + case 46: return -1 default: switch { case 48 <= r && r <= 48: return 2 @@ -607,22 +595,25 @@ acc[3] = true fun[3] = func(r rune) int { switch(r) { case 45: return -1 + case 46: return 4 default: switch { - case 48 <= r && r <= 48: return 4 - case 49 <= r && r <= 57: return 4 + case 48 <= r && r <= 48: return 5 + case 49 <= r && r <= 57: return 5 default: return -1 } } panic("unreachable") } -fun[1] = func(r rune) int { +acc[5] = true +fun[5] = func(r rune) int { switch(r) { case 45: return -1 + case 46: return 4 default: switch { - case 48 <= r && r <= 48: return 2 - case 49 <= r && r <= 57: return 2 + case 48 <= r && r <= 48: return 5 + case 49 <= r && r <= 57: return 5 default: return -1 } } @@ -631,6 +622,7 @@ fun[1] = func(r rune) int { acc[2] = true fun[2] = func(r rune) int { switch(r) { + case 46: return 4 case 45: return -1 default: switch { @@ -641,6 +633,60 @@ fun[2] = func(r rune) int { } 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].f = fun[:] a0[7].id = 7 @@ -648,11 +694,12 @@ a0[7].id = 7 { var acc [2]bool var fun [2]func(rune) int -fun[0] = func(r rune) int { +acc[1] = true +fun[1] = func(r rune) int { switch(r) { - case 9: return 1 - case 10: return 1 case 32: return 1 + case 10: return 1 + case 9: return 1 default: switch { default: return -1 @@ -660,12 +707,11 @@ fun[0] = func(r rune) int { } panic("unreachable") } -acc[1] = true -fun[1] = func(r rune) int { +fun[0] = func(r rune) int { switch(r) { case 9: return 1 - case 10: return 1 case 32: return 1 + case 10: return 1 default: switch { default: return -1 @@ -683,15 +729,15 @@ var fun [2]func(rune) int acc[1] = true fun[1] = func(r rune) int { switch(r) { - case 58: return -1 - case 10: return -1 - case 94: return -1 - case 32: return -1 + case 45: return -1 case 43: return -1 case 9: return -1 - case 45: return -1 case 12: return -1 case 13: return -1 + case 94: return -1 + case 32: return -1 + case 58: return -1 + case 10: return -1 default: switch { default: return 1 @@ -701,15 +747,15 @@ fun[1] = func(r rune) int { } fun[0] = func(r rune) int { switch(r) { - case 9: return -1 - case 45: return -1 case 12: return -1 case 13: return -1 - case 58: return -1 - case 10: return -1 case 94: return -1 case 32: return -1 + case 58: return -1 + case 10: return -1 + case 45: return -1 case 43: return -1 + case 9: return -1 default: switch { default: return 1 @@ -840,11 +886,11 @@ func (yylex Lexer) Lex(lval *yySymType) int { { logDebugTokens("LPAREN"); return LPAREN } case 6: //\)/ { 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()); - logDebugTokens("INT - %d", lval.n); - return INT + lval.f,_ = strconv.ParseFloat(yylex.Text(), 64); + logDebugTokens("NUMBER - %f", lval.f); + return NUMBER } case 8: //[ \t\n]+/ { logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ } diff --git a/query_syntax.y b/query_syntax.y index 58ca162c..34a0ca5c 100644 --- a/query_syntax.y +++ b/query_syntax.y @@ -14,7 +14,7 @@ s string n int 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: -BOOST INT { - boost := $2.n +BOOST NUMBER { + boost := $2.f if parsingLastQuery != nil { switch parsingLastQuery := parsingLastQuery.(type) { case *MatchQuery: - parsingLastQuery.SetBoost(float64(boost)) + parsingLastQuery.SetBoost(boost) case *MatchPhraseQuery: - parsingLastQuery.SetBoost(float64(boost)) + parsingLastQuery.SetBoost(boost) } } - logDebugGrammar("BOOST %d", boost) + logDebugGrammar("BOOST %f", boost) }; searchSuffix: diff --git a/y.go b/y.go index 9210a4cd..8f69b434 100644 --- a/y.go +++ b/y.go @@ -28,7 +28,7 @@ const COLON = 57350 const BOOST = 57351 const LPAREN = 57352 const RPAREN = 57353 -const INT = 57354 +const NUMBER = 57354 var yyToknames = []string{ "STRING", @@ -39,7 +39,7 @@ var yyToknames = []string{ "BOOST", "LPAREN", "RPAREN", - "INT", + "NUMBER", } var yyStatenames = []string{} @@ -451,16 +451,16 @@ yydefault: case 13: //line query_syntax.y:130 { - boost := yyS[yypt-0].n + boost := yyS[yypt-0].f if parsingLastQuery != nil { switch parsingLastQuery := parsingLastQuery.(type) { case *MatchQuery: - parsingLastQuery.SetBoost(float64(boost)) + parsingLastQuery.SetBoost(boost) case *MatchPhraseQuery: - parsingLastQuery.SetBoost(float64(boost)) + parsingLastQuery.SetBoost(boost) } } - logDebugGrammar("BOOST %d", boost) + logDebugGrammar("BOOST %f", boost) } case 14: //line query_syntax.y:144