streamline boost just like tilde
This commit is contained in:
parent
37d3750157
commit
46f70bfa12
@ -6,12 +6,21 @@
|
|||||||
/\+/ { logDebugTokens("PLUS"); return tPLUS }
|
/\+/ { logDebugTokens("PLUS"); return tPLUS }
|
||||||
/-/ { logDebugTokens("MINUS"); return tMINUS }
|
/-/ { logDebugTokens("MINUS"); return tMINUS }
|
||||||
/:/ { logDebugTokens("COLON"); return tCOLON }
|
/:/ { logDebugTokens("COLON"); return tCOLON }
|
||||||
/\^/ { logDebugTokens("BOOST"); return tBOOST }
|
|
||||||
/\(/ { logDebugTokens("LPAREN"); return tLPAREN }
|
/\(/ { logDebugTokens("LPAREN"); return tLPAREN }
|
||||||
/\)/ { logDebugTokens("RPAREN"); return tRPAREN }
|
/\)/ { logDebugTokens("RPAREN"); return tRPAREN }
|
||||||
/>/ { logDebugTokens("GREATER"); return tGREATER }
|
/>/ { logDebugTokens("GREATER"); return tGREATER }
|
||||||
/</ { logDebugTokens("LESS"); return tLESS }
|
/</ { logDebugTokens("LESS"); return tLESS }
|
||||||
/=/ { logDebugTokens("EQUAL"); return tEQUAL }
|
/=/ { logDebugTokens("EQUAL"); return tEQUAL }
|
||||||
|
/\^([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?/
|
||||||
|
{
|
||||||
|
lval.s = yylex.Text()[1:]
|
||||||
|
logDebugTokens("BOOST");
|
||||||
|
return tBOOST }
|
||||||
|
/\^/ {
|
||||||
|
lval.s = "1"
|
||||||
|
logDebugTokens("BOOST");
|
||||||
|
return tBOOST
|
||||||
|
}
|
||||||
/~([0-9]|[1-9][0-9]*)/
|
/~([0-9]|[1-9][0-9]*)/
|
||||||
{
|
{
|
||||||
lval.s = yylex.Text()[1:]
|
lval.s = yylex.Text()[1:]
|
||||||
|
@ -779,24 +779,6 @@ func newLexerWithInit(in io.Reader, initFun func(*lexer)) *lexer {
|
|||||||
},
|
},
|
||||||
}, []int{ /* Start-of-input transitions */ -1, -1}, []int{ /* End-of-input transitions */ -1, -1}, nil},
|
}, []int{ /* Start-of-input transitions */ -1, -1}, []int{ /* End-of-input transitions */ -1, -1}, nil},
|
||||||
|
|
||||||
// \^
|
|
||||||
{[]bool{false, true}, []func(rune) int{ // Transitions
|
|
||||||
func(r rune) int {
|
|
||||||
switch r {
|
|
||||||
case 94:
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
return -1
|
|
||||||
},
|
|
||||||
func(r rune) int {
|
|
||||||
switch r {
|
|
||||||
case 94:
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
return -1
|
|
||||||
},
|
|
||||||
}, []int{ /* Start-of-input transitions */ -1, -1}, []int{ /* End-of-input transitions */ -1, -1}, nil},
|
|
||||||
|
|
||||||
// \(
|
// \(
|
||||||
{[]bool{false, true}, []func(rune) int{ // Transitions
|
{[]bool{false, true}, []func(rune) int{ // Transitions
|
||||||
func(r rune) int {
|
func(r rune) int {
|
||||||
@ -887,6 +869,148 @@ func newLexerWithInit(in io.Reader, initFun func(*lexer)) *lexer {
|
|||||||
},
|
},
|
||||||
}, []int{ /* Start-of-input transitions */ -1, -1}, []int{ /* End-of-input transitions */ -1, -1}, nil},
|
}, []int{ /* Start-of-input transitions */ -1, -1}, []int{ /* End-of-input transitions */ -1, -1}, nil},
|
||||||
|
|
||||||
|
// \^([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?
|
||||||
|
{[]bool{false, false, true, true, false, true, true, true}, []func(rune) int{ // Transitions
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 46:
|
||||||
|
return -1
|
||||||
|
case 94:
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48:
|
||||||
|
return -1
|
||||||
|
case 49 <= r && r <= 57:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 46:
|
||||||
|
return -1
|
||||||
|
case 94:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48:
|
||||||
|
return 2
|
||||||
|
case 49 <= r && r <= 57:
|
||||||
|
return 3
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 46:
|
||||||
|
return 4
|
||||||
|
case 94:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48:
|
||||||
|
return -1
|
||||||
|
case 49 <= r && r <= 57:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 46:
|
||||||
|
return 4
|
||||||
|
case 94:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48:
|
||||||
|
return 5
|
||||||
|
case 49 <= r && r <= 57:
|
||||||
|
return 5
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 46:
|
||||||
|
return -1
|
||||||
|
case 94:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48:
|
||||||
|
return 6
|
||||||
|
case 49 <= r && r <= 57:
|
||||||
|
return 6
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 46:
|
||||||
|
return 4
|
||||||
|
case 94:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48:
|
||||||
|
return 5
|
||||||
|
case 49 <= r && r <= 57:
|
||||||
|
return 5
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 46:
|
||||||
|
return -1
|
||||||
|
case 94:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48:
|
||||||
|
return 7
|
||||||
|
case 49 <= r && r <= 57:
|
||||||
|
return 7
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 46:
|
||||||
|
return -1
|
||||||
|
case 94:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
switch {
|
||||||
|
case 48 <= r && r <= 48:
|
||||||
|
return 7
|
||||||
|
case 49 <= r && r <= 57:
|
||||||
|
return 7
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
}, []int{ /* Start-of-input transitions */ -1, -1, -1, -1, -1, -1, -1, -1}, []int{ /* End-of-input transitions */ -1, -1, -1, -1, -1, -1, -1, -1}, nil},
|
||||||
|
|
||||||
|
// \^
|
||||||
|
{[]bool{false, true}, []func(rune) int{ // Transitions
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 94:
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
func(r rune) int {
|
||||||
|
switch r {
|
||||||
|
case 94:
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
},
|
||||||
|
}, []int{ /* Start-of-input transitions */ -1, -1}, []int{ /* End-of-input transitions */ -1, -1}, nil},
|
||||||
|
|
||||||
// ~([0-9]|[1-9][0-9]*)
|
// ~([0-9]|[1-9][0-9]*)
|
||||||
{[]bool{false, false, true, true, true}, []func(rune) int{ // Transitions
|
{[]bool{false, false, true, true, true}, []func(rune) int{ // Transitions
|
||||||
func(r rune) int {
|
func(r rune) int {
|
||||||
@ -1316,58 +1440,65 @@ OUTER0:
|
|||||||
return tCOLON
|
return tCOLON
|
||||||
}
|
}
|
||||||
case 4:
|
case 4:
|
||||||
{
|
|
||||||
logDebugTokens("BOOST")
|
|
||||||
return tBOOST
|
|
||||||
}
|
|
||||||
case 5:
|
|
||||||
{
|
{
|
||||||
logDebugTokens("LPAREN")
|
logDebugTokens("LPAREN")
|
||||||
return tLPAREN
|
return tLPAREN
|
||||||
}
|
}
|
||||||
case 6:
|
case 5:
|
||||||
{
|
{
|
||||||
logDebugTokens("RPAREN")
|
logDebugTokens("RPAREN")
|
||||||
return tRPAREN
|
return tRPAREN
|
||||||
}
|
}
|
||||||
case 7:
|
case 6:
|
||||||
{
|
{
|
||||||
logDebugTokens("GREATER")
|
logDebugTokens("GREATER")
|
||||||
return tGREATER
|
return tGREATER
|
||||||
}
|
}
|
||||||
case 8:
|
case 7:
|
||||||
{
|
{
|
||||||
logDebugTokens("LESS")
|
logDebugTokens("LESS")
|
||||||
return tLESS
|
return tLESS
|
||||||
}
|
}
|
||||||
case 9:
|
case 8:
|
||||||
{
|
{
|
||||||
logDebugTokens("EQUAL")
|
logDebugTokens("EQUAL")
|
||||||
return tEQUAL
|
return tEQUAL
|
||||||
}
|
}
|
||||||
|
case 9:
|
||||||
|
{
|
||||||
|
lval.s = yylex.Text()[1:]
|
||||||
|
logDebugTokens("BOOST")
|
||||||
|
return tBOOST
|
||||||
|
}
|
||||||
case 10:
|
case 10:
|
||||||
|
{
|
||||||
|
lval.s = "1"
|
||||||
|
logDebugTokens("BOOST")
|
||||||
|
return tBOOST
|
||||||
|
}
|
||||||
|
case 11:
|
||||||
{
|
{
|
||||||
lval.s = yylex.Text()[1:]
|
lval.s = yylex.Text()[1:]
|
||||||
logDebugTokens("TILDENUMBER - %s", lval.s)
|
logDebugTokens("TILDENUMBER - %s", lval.s)
|
||||||
return tTILDE
|
return tTILDE
|
||||||
}
|
}
|
||||||
case 11:
|
case 12:
|
||||||
{
|
{
|
||||||
lval.s = "1"
|
lval.s = "1"
|
||||||
logDebugTokens("TILDE")
|
logDebugTokens("TILDE")
|
||||||
return tTILDE
|
return tTILDE
|
||||||
}
|
}
|
||||||
case 12:
|
case 13:
|
||||||
{
|
{
|
||||||
lval.s = yylex.Text()
|
lval.s = yylex.Text()
|
||||||
logDebugTokens("NUMBER - %s", lval.s)
|
logDebugTokens("NUMBER - %s", lval.s)
|
||||||
return tNUMBER
|
return tNUMBER
|
||||||
}
|
}
|
||||||
case 13:
|
case 14:
|
||||||
{
|
{
|
||||||
logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */
|
logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */
|
||||||
}
|
}
|
||||||
case 14:
|
case 15:
|
||||||
{
|
{
|
||||||
lval.s = yylex.Text()
|
lval.s = yylex.Text()
|
||||||
logDebugTokens("STRING - %s", lval.s)
|
logDebugTokens("STRING - %s", lval.s)
|
||||||
|
@ -25,10 +25,10 @@ tEQUAL tTILDE
|
|||||||
%type <s> tPHRASE
|
%type <s> tPHRASE
|
||||||
%type <s> tNUMBER
|
%type <s> tNUMBER
|
||||||
%type <s> tTILDE
|
%type <s> tTILDE
|
||||||
|
%type <s> tBOOST
|
||||||
%type <q> searchBase
|
%type <q> searchBase
|
||||||
%type <f> searchSuffix
|
%type <f> searchSuffix
|
||||||
%type <n> searchPrefix
|
%type <n> searchPrefix
|
||||||
%type <f> searchBoost
|
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
@ -233,18 +233,13 @@ tSTRING tCOLON tLESS tEQUAL tPHRASE {
|
|||||||
$$ = q
|
$$ = q
|
||||||
};
|
};
|
||||||
|
|
||||||
searchBoost:
|
|
||||||
tBOOST tNUMBER {
|
|
||||||
boost, _ := strconv.ParseFloat($2, 64)
|
|
||||||
$$ = boost
|
|
||||||
logDebugGrammar("BOOST %f", boost)
|
|
||||||
};
|
|
||||||
|
|
||||||
searchSuffix:
|
searchSuffix:
|
||||||
/* empty */ {
|
/* empty */ {
|
||||||
$$ = 1.0
|
$$ = 1.0
|
||||||
}
|
}
|
||||||
|
|
|
|
||||||
searchBoost {
|
tBOOST {
|
||||||
|
boost, _ := strconv.ParseFloat($1, 64)
|
||||||
|
$$ = boost
|
||||||
|
logDebugGrammar("BOOST %f", boost)
|
||||||
};
|
};
|
||||||
|
@ -71,57 +71,57 @@ var yyExca = [...]int{
|
|||||||
-2, 5,
|
-2, 5,
|
||||||
}
|
}
|
||||||
|
|
||||||
const yyNprod = 27
|
const yyNprod = 26
|
||||||
const yyPrivate = 57344
|
const yyPrivate = 57344
|
||||||
|
|
||||||
var yyTokenNames []string
|
var yyTokenNames []string
|
||||||
var yyStates []string
|
var yyStates []string
|
||||||
|
|
||||||
const yyLast = 33
|
const yyLast = 32
|
||||||
|
|
||||||
var yyAct = [...]int{
|
var yyAct = [...]int{
|
||||||
|
|
||||||
18, 20, 23, 17, 29, 26, 14, 3, 19, 21,
|
16, 18, 21, 13, 27, 24, 3, 1, 17, 19,
|
||||||
22, 27, 24, 16, 28, 25, 9, 11, 33, 31,
|
20, 25, 22, 15, 26, 23, 9, 11, 31, 29,
|
||||||
1, 15, 5, 6, 10, 32, 30, 2, 13, 4,
|
4, 14, 5, 6, 10, 30, 28, 2, 12, 8,
|
||||||
12, 7, 8,
|
0, 7,
|
||||||
}
|
}
|
||||||
var yyPact = [...]int{
|
var yyPact = [...]int{
|
||||||
|
|
||||||
16, -1000, -1000, 16, 12, -1000, -1000, -1000, -3, 5,
|
16, -1000, -1000, 16, 12, -1000, -1000, -1000, -6, 5,
|
||||||
-1000, -1000, -1000, -1000, -9, -1000, -4, -1000, -14, -1000,
|
-1000, -1000, -1000, -1000, -1000, -4, -14, -1000, -1000, 0,
|
||||||
-1000, 0, -1, -1000, -1000, 14, -1000, -1000, 13, -1000,
|
-1, -1000, -1000, 14, -1000, -1000, 13, -1000, -1000, -1000,
|
||||||
-1000, -1000, -1000, -1000,
|
-1000, -1000,
|
||||||
}
|
}
|
||||||
var yyPgo = [...]int{
|
var yyPgo = [...]int{
|
||||||
|
|
||||||
0, 32, 30, 29, 28, 20, 27, 7,
|
0, 29, 28, 20, 7, 27, 6,
|
||||||
}
|
}
|
||||||
var yyR1 = [...]int{
|
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, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 4, 2, 2,
|
1, 1, 1, 1, 2, 2,
|
||||||
}
|
}
|
||||||
var yyR2 = [...]int{
|
var yyR2 = [...]int{
|
||||||
|
|
||||||
0, 1, 2, 1, 3, 0, 1, 1, 1, 2,
|
0, 1, 2, 1, 3, 0, 1, 1, 1, 2,
|
||||||
4, 1, 1, 3, 3, 3, 4, 5, 4, 5,
|
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{
|
var yyChk = [...]int{
|
||||||
|
|
||||||
-1000, -5, -6, -7, -3, 6, 7, -6, -1, 4,
|
-1000, -4, -5, -6, -3, 6, 7, -5, -1, 4,
|
||||||
12, 5, -2, -4, 9, 16, 8, 12, 4, 12,
|
12, 5, -2, 9, 16, 8, 4, 12, 5, 13,
|
||||||
5, 13, 14, 16, 12, 15, 5, 12, 15, 5,
|
14, 16, 12, 15, 5, 12, 15, 5, 12, 5,
|
||||||
12, 5, 12, 5,
|
12, 5,
|
||||||
}
|
}
|
||||||
var yyDef = [...]int{
|
var yyDef = [...]int{
|
||||||
|
|
||||||
5, -2, 1, -2, 0, 6, 7, 2, 25, 8,
|
5, -2, 1, -2, 0, 6, 7, 2, 24, 8,
|
||||||
11, 12, 4, 26, 0, 9, 0, 24, 13, 14,
|
11, 12, 4, 25, 9, 0, 13, 14, 15, 0,
|
||||||
15, 0, 0, 10, 16, 0, 20, 18, 0, 22,
|
0, 10, 16, 0, 20, 18, 0, 22, 17, 21,
|
||||||
17, 21, 19, 23,
|
19, 23,
|
||||||
}
|
}
|
||||||
var yyTok1 = [...]int{
|
var yyTok1 = [...]int{
|
||||||
|
|
||||||
@ -715,24 +715,18 @@ yydefault:
|
|||||||
yyVAL.q = q
|
yyVAL.q = q
|
||||||
}
|
}
|
||||||
case 24:
|
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]
|
yyDollar = yyS[yypt-0 : yypt+1]
|
||||||
//line query_string.y:244
|
//line query_string.y:237
|
||||||
{
|
{
|
||||||
yyVAL.f = 1.0
|
yyVAL.f = 1.0
|
||||||
}
|
}
|
||||||
case 26:
|
case 25:
|
||||||
yyDollar = yyS[yypt-1 : yypt+1]
|
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 */
|
goto yystack /* stack new state and value */
|
||||||
|
Loading…
Reference in New Issue
Block a user