streamline boost just like tilde
This commit is contained in:
parent
37d3750157
commit
46f70bfa12
@ -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 }
|
||||
/</ { logDebugTokens("LESS"); return tLESS }
|
||||
/=/ { 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]*)/
|
||||
{
|
||||
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},
|
||||
|
||||
// \^
|
||||
{[]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
|
||||
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},
|
||||
|
||||
// \^([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]*)
|
||||
{[]bool{false, false, true, true, true}, []func(rune) int{ // Transitions
|
||||
func(r rune) int {
|
||||
@ -1316,58 +1440,65 @@ OUTER0:
|
||||
return tCOLON
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
logDebugTokens("BOOST")
|
||||
return tBOOST
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
logDebugTokens("LPAREN")
|
||||
return tLPAREN
|
||||
}
|
||||
case 6:
|
||||
case 5:
|
||||
{
|
||||
logDebugTokens("RPAREN")
|
||||
return tRPAREN
|
||||
}
|
||||
case 7:
|
||||
case 6:
|
||||
{
|
||||
logDebugTokens("GREATER")
|
||||
return tGREATER
|
||||
}
|
||||
case 8:
|
||||
case 7:
|
||||
{
|
||||
logDebugTokens("LESS")
|
||||
return tLESS
|
||||
}
|
||||
case 9:
|
||||
case 8:
|
||||
{
|
||||
logDebugTokens("EQUAL")
|
||||
return tEQUAL
|
||||
}
|
||||
case 9:
|
||||
{
|
||||
lval.s = yylex.Text()[1:]
|
||||
logDebugTokens("BOOST")
|
||||
return tBOOST
|
||||
}
|
||||
case 10:
|
||||
{
|
||||
lval.s = "1"
|
||||
logDebugTokens("BOOST")
|
||||
return tBOOST
|
||||
}
|
||||
case 11:
|
||||
{
|
||||
lval.s = yylex.Text()[1:]
|
||||
logDebugTokens("TILDENUMBER - %s", lval.s)
|
||||
return tTILDE
|
||||
}
|
||||
case 11:
|
||||
case 12:
|
||||
{
|
||||
lval.s = "1"
|
||||
logDebugTokens("TILDE")
|
||||
return tTILDE
|
||||
}
|
||||
case 12:
|
||||
case 13:
|
||||
{
|
||||
lval.s = yylex.Text()
|
||||
logDebugTokens("NUMBER - %s", lval.s)
|
||||
return tNUMBER
|
||||
}
|
||||
case 13:
|
||||
case 14:
|
||||
{
|
||||
logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */
|
||||
}
|
||||
case 14:
|
||||
case 15:
|
||||
{
|
||||
lval.s = yylex.Text()
|
||||
logDebugTokens("STRING - %s", lval.s)
|
||||
|
@ -25,10 +25,10 @@ tEQUAL tTILDE
|
||||
%type <s> tPHRASE
|
||||
%type <s> tNUMBER
|
||||
%type <s> tTILDE
|
||||
%type <s> tBOOST
|
||||
%type <q> searchBase
|
||||
%type <f> searchSuffix
|
||||
%type <n> searchPrefix
|
||||
%type <f> 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)
|
||||
};
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user