diff --git a/query_string.nex b/query_string.nex index 16ed73de..d78fca84 100644 --- a/query_string.nex +++ b/query_string.nex @@ -6,12 +6,21 @@ /\+/ { logDebugTokens("PLUS"); return tPLUS } /-/ { logDebugTokens("MINUS"); return tMINUS } /:/ { logDebugTokens("COLON"); return tCOLON } -/\^/ { logDebugTokens("BOOST"); return tBOOST } /\(/ { logDebugTokens("LPAREN"); return tLPAREN } /\)/ { logDebugTokens("RPAREN"); return tRPAREN } />/ { logDebugTokens("GREATER"); return tGREATER } / tPHRASE %type tNUMBER %type tTILDE +%type tBOOST %type searchBase %type searchSuffix %type searchPrefix -%type searchBoost %% @@ -233,18 +233,13 @@ tSTRING tCOLON tLESS tEQUAL tPHRASE { $$ = q }; -searchBoost: -tBOOST tNUMBER { - boost, _ := strconv.ParseFloat($2, 64) - $$ = boost - logDebugGrammar("BOOST %f", boost) -}; - searchSuffix: /* empty */ { $$ = 1.0 } | -searchBoost { - +tBOOST { + boost, _ := strconv.ParseFloat($1, 64) + $$ = boost + logDebugGrammar("BOOST %f", boost) }; diff --git a/query_string.y.go b/query_string.y.go index b36b06fb..5f10aab8 100644 --- a/query_string.y.go +++ b/query_string.y.go @@ -71,57 +71,57 @@ var yyExca = [...]int{ -2, 5, } -const yyNprod = 27 +const yyNprod = 26 const yyPrivate = 57344 var yyTokenNames []string var yyStates []string -const yyLast = 33 +const yyLast = 32 var yyAct = [...]int{ - 18, 20, 23, 17, 29, 26, 14, 3, 19, 21, - 22, 27, 24, 16, 28, 25, 9, 11, 33, 31, - 1, 15, 5, 6, 10, 32, 30, 2, 13, 4, - 12, 7, 8, + 16, 18, 21, 13, 27, 24, 3, 1, 17, 19, + 20, 25, 22, 15, 26, 23, 9, 11, 31, 29, + 4, 14, 5, 6, 10, 30, 28, 2, 12, 8, + 0, 7, } var yyPact = [...]int{ - 16, -1000, -1000, 16, 12, -1000, -1000, -1000, -3, 5, - -1000, -1000, -1000, -1000, -9, -1000, -4, -1000, -14, -1000, - -1000, 0, -1, -1000, -1000, 14, -1000, -1000, 13, -1000, - -1000, -1000, -1000, -1000, + 16, -1000, -1000, 16, 12, -1000, -1000, -1000, -6, 5, + -1000, -1000, -1000, -1000, -1000, -4, -14, -1000, -1000, 0, + -1, -1000, -1000, 14, -1000, -1000, 13, -1000, -1000, -1000, + -1000, -1000, } var yyPgo = [...]int{ - 0, 32, 30, 29, 28, 20, 27, 7, + 0, 29, 28, 20, 7, 27, 6, } var yyR1 = [...]int{ - 0, 5, 6, 6, 7, 3, 3, 3, 1, 1, + 0, 4, 5, 5, 6, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 2, 2, + 1, 1, 1, 1, 2, 2, } var yyR2 = [...]int{ 0, 1, 2, 1, 3, 0, 1, 1, 1, 2, 4, 1, 1, 3, 3, 3, 4, 5, 4, 5, - 4, 5, 4, 5, 2, 0, 1, + 4, 5, 4, 5, 0, 1, } var yyChk = [...]int{ - -1000, -5, -6, -7, -3, 6, 7, -6, -1, 4, - 12, 5, -2, -4, 9, 16, 8, 12, 4, 12, - 5, 13, 14, 16, 12, 15, 5, 12, 15, 5, - 12, 5, 12, 5, + -1000, -4, -5, -6, -3, 6, 7, -5, -1, 4, + 12, 5, -2, 9, 16, 8, 4, 12, 5, 13, + 14, 16, 12, 15, 5, 12, 15, 5, 12, 5, + 12, 5, } var yyDef = [...]int{ - 5, -2, 1, -2, 0, 6, 7, 2, 25, 8, - 11, 12, 4, 26, 0, 9, 0, 24, 13, 14, - 15, 0, 0, 10, 16, 0, 20, 18, 0, 22, - 17, 21, 19, 23, + 5, -2, 1, -2, 0, 6, 7, 2, 24, 8, + 11, 12, 4, 25, 9, 0, 13, 14, 15, 0, + 0, 10, 16, 0, 20, 18, 0, 22, 17, 21, + 19, 23, } var yyTok1 = [...]int{ @@ -715,24 +715,18 @@ yydefault: yyVAL.q = q } case 24: - yyDollar = yyS[yypt-2 : yypt+1] - //line query_string.y:237 - { - boost, _ := strconv.ParseFloat(yyDollar[2].s, 64) - yyVAL.f = boost - logDebugGrammar("BOOST %f", boost) - } - case 25: yyDollar = yyS[yypt-0 : yypt+1] - //line query_string.y:244 + //line query_string.y:237 { yyVAL.f = 1.0 } - case 26: + case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line query_string.y:248 + //line query_string.y:241 { - + boost, _ := strconv.ParseFloat(yyDollar[1].s, 64) + yyVAL.f = boost + logDebugGrammar("BOOST %f", boost) } } goto yystack /* stack new state and value */