0
0

made parsing token constants private

This commit is contained in:
Marty Schoch 2014-08-29 14:37:38 -04:00
parent d0f4146789
commit 5c4d5e230f
4 changed files with 384 additions and 384 deletions

View File

@ -1,28 +1,28 @@
/\"((\\\")|(\\\\)|(\\\/)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])|[^\"])*\"/ { /\"((\\\")|(\\\\)|(\\\/)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])|[^\"])*\"/ {
lval.s = yylex.Text()[1:len(yylex.Text())-1] lval.s = yylex.Text()[1:len(yylex.Text())-1]
logDebugTokens("PHRASE - %s", lval.s); logDebugTokens("PHRASE - %s", lval.s);
return PHRASE return tPHRASE
} }
/\+/ { logDebugTokens("PLUS"); return PLUS } /\+/ { logDebugTokens("PLUS"); return tPLUS }
/-/ { logDebugTokens("MINUS"); return MINUS } /-/ { logDebugTokens("MINUS"); return tMINUS }
/:/ { logDebugTokens("COLON"); return COLON } /:/ { logDebugTokens("COLON"); return tCOLON }
/^/ { logDebugTokens("BOOST"); return BOOST } /^/ { logDebugTokens("BOOST"); return tBOOST }
/\(/ { logDebugTokens("LPAREN"); return LPAREN } /\(/ { logDebugTokens("LPAREN"); return tLPAREN }
/\)/ { logDebugTokens("RPAREN"); return RPAREN } /\)/ { logDebugTokens("RPAREN"); return tRPAREN }
/>/ { logDebugTokens("GREATER"); return GREATER } />/ { logDebugTokens("GREATER"); return tGREATER }
/</ { logDebugTokens("LESS"); return LESS } /</ { logDebugTokens("LESS"); return tLESS }
/=/ { logDebugTokens("EQUAL"); return EQUAL } /=/ { logDebugTokens("EQUAL"); return tEQUAL }
/-?([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?/ /-?([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?/
{ {
lval.f,_ = strconv.ParseFloat(yylex.Text(), 64); lval.f,_ = strconv.ParseFloat(yylex.Text(), 64);
logDebugTokens("NUMBER - %f", lval.f); logDebugTokens("NUMBER - %f", lval.f);
return NUMBER return tNUMBER
} }
/[ \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 :^\+\-><=]+/ {
lval.s = yylex.Text() lval.s = yylex.Text()
logDebugTokens("STRING - %s", lval.s); logDebugTokens("STRING - %s", lval.s);
return STRING return tSTRING
} }
// //
package bleve package bleve

View File

@ -23,17 +23,59 @@ 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[1] = func(r rune) int { fun[15] = func(r rune) int {
switch(r) {
case 114: return 2
case 98: return 16
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 16
case 110: return 2
case 47: 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 2
}
}
panic("unreachable")
}
fun[13] = func(r rune) int {
switch(r) {
case 47: return 2
case 114: return 2
case 98: return 14
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 14
case 110: return 2
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")
}
fun[17] = func(r rune) int {
switch(r) { switch(r) {
case 116: return 2 case 116: return 2
case 114: return 2 case 92: return 3
case 110: return 2
case 34: return 3
case 98: return 2
case 117: return 2
case 47: return 2
case 92: return 4
case 102: return 2 case 102: return 2
case 110: return 2
case 47: return 2
case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
default: default:
switch { switch {
case 48 <= r && r <= 57: return 2 case 48 <= r && r <= 57: return 2
@ -46,36 +88,15 @@ fun[1] = func(r rune) int {
} }
fun[6] = func(r rune) int { fun[6] = func(r rune) int {
switch(r) { switch(r) {
case 34: return 3 case 34: return 12
case 98: return 14 case 117: return 13
case 117: return 2 case 116: return 5
case 47: return 2 case 92: return 6
case 92: return 4 case 102: return 7
case 102: return 14 case 110: return 8
case 116: return 2 case 47: return 9
case 114: return 2 case 114: return 10
case 110: return 2 case 98: return 11
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")
}
fun[8] = func(r rune) int {
switch(r) {
case 110: return 12
case 34: return 13
case 98: return 5
case 117: return 6
case 47: return 7
case 92: return 8
case 102: return 9
case 116: return 10
case 114: return 11
default: default:
switch { switch {
case 48 <= r && r <= 57: return 2 case 48 <= r && r <= 57: return 2
@ -86,17 +107,17 @@ fun[8] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
fun[11] = func(r rune) int { fun[1] = func(r rune) int {
switch(r) { switch(r) {
case 34: return 3 case 116: return 2
case 98: return 2 case 92: return 3
case 117: return 2
case 47: return 2
case 92: return 4
case 102: return 2 case 102: return 2
case 116: return 2
case 114: return 2
case 110: return 2 case 110: return 2
case 47: return 2
case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
default: default:
switch { switch {
case 48 <= r && r <= 57: return 2 case 48 <= r && r <= 57: return 2
@ -107,38 +128,59 @@ fun[11] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
fun[15] = func(r rune) int { fun[9] = func(r rune) int {
switch(r) { switch(r) {
case 92: return 4
case 102: return 16
case 116: return 2
case 114: return 2
case 110: return 2 case 110: return 2
case 34: return 3
case 98: return 16
case 117: return 2
case 47: return 2 case 47: return 2
case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: 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 2 default: return 2
} }
} }
panic("unreachable") panic("unreachable")
} }
fun[0] = func(r rune) int {
switch(r) {
case 92: return -1
case 102: return -1
case 110: return -1
case 47: return -1
case 114: return -1
case 98: return -1
case 34: return 1
case 117: return -1
case 116: 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[10] = func(r rune) int { fun[10] = func(r rune) int {
switch(r) { switch(r) {
case 34: return 3
case 98: return 2
case 117: return 2
case 47: return 2
case 92: return 4
case 102: return 2
case 116: return 2
case 114: return 2 case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 2
case 110: return 2 case 110: return 2
case 47: return 2
default: default:
switch { switch {
case 48 <= r && r <= 57: return 2 case 48 <= r && r <= 57: return 2
@ -149,17 +191,17 @@ fun[10] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
fun[12] = func(r rune) int { fun[3] = func(r rune) int {
switch(r) { switch(r) {
case 47: return 2 case 116: return 5
case 92: return 4 case 92: return 6
case 102: return 2 case 102: return 7
case 116: return 2 case 110: return 8
case 114: return 2 case 47: return 9
case 110: return 2 case 114: return 10
case 34: return 3 case 98: return 11
case 98: return 2 case 34: return 12
case 117: return 2 case 117: return 13
default: default:
switch { switch {
case 48 <= r && r <= 57: return 2 case 48 <= r && r <= 57: return 2
@ -170,17 +212,39 @@ fun[12] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
acc[4] = true
fun[4] = func(r rune) int {
switch(r) {
case 110: return -1
case 47: return -1
case 114: return -1
case 98: return -1
case 34: return -1
case 117: return -1
case 116: return -1
case 92: return -1
case 102: 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[2] = func(r rune) int { fun[2] = func(r rune) int {
switch(r) { switch(r) {
case 110: return 2
case 34: return 3
case 98: return 2
case 117: return 2
case 47: return 2 case 47: return 2
case 92: return 4
case 102: return 2
case 116: return 2
case 114: return 2 case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 2
case 110: return 2
default: default:
switch { switch {
case 48 <= r && r <= 57: return 2 case 48 <= r && r <= 57: return 2
@ -193,15 +257,15 @@ fun[2] = func(r rune) int {
} }
fun[16] = func(r rune) int { fun[16] = func(r rune) int {
switch(r) { switch(r) {
case 92: return 4
case 102: return 17
case 116: return 2
case 114: return 2
case 110: return 2 case 110: return 2
case 34: return 3
case 98: return 17
case 117: return 2
case 47: return 2 case 47: return 2
case 114: return 2
case 98: return 17
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 17
default: default:
switch { switch {
case 48 <= r && r <= 57: return 17 case 48 <= r && r <= 57: return 17
@ -212,101 +276,59 @@ fun[16] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
fun[4] = func(r rune) int {
switch(r) {
case 98: return 5
case 117: return 6
case 47: return 7
case 92: return 8
case 102: return 9
case 116: return 10
case 114: return 11
case 110: return 12
case 34: 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 102: return 2
case 116: return 2
case 114: return 2
case 110: return 2
case 34: return 3
case 98: return 2
case 117: return 2
case 47: return 2
case 92: return 4
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[17] = func(r rune) int {
switch(r) {
case 92: return 4
case 102: return 2
case 116: return 2
case 114: return 2
case 110: return 2
case 34: return 3
case 98: return 2
case 117: return 2
case 47: 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")
}
acc[3] = true
fun[3] = func(r rune) int {
switch(r) {
case 92: return -1
case 102: return -1
case 116: return -1
case 114: return -1
case 110: return -1
case 34: return -1
case 98: return -1
case 117: return -1
case 47: 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[7] = func(r rune) int { fun[7] = func(r rune) int {
switch(r) { switch(r) {
case 116: return 2
case 114: return 2
case 110: return 2 case 110: return 2
case 34: return 3
case 98: return 2
case 117: return 2
case 47: return 2 case 47: return 2
case 92: return 4 case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: 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[11] = func(r rune) int {
switch(r) {
case 47: return 2
case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 2
case 110: 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")
}
acc[12] = true
fun[12] = func(r rune) int {
switch(r) {
case 110: return 2
case 47: return 2
case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 2 case 102: return 2
default: default:
switch { switch {
@ -320,15 +342,15 @@ fun[7] = func(r rune) int {
} }
fun[14] = func(r rune) int { fun[14] = func(r rune) int {
switch(r) { switch(r) {
case 47: return 2
case 92: return 4
case 102: return 15
case 116: return 2
case 114: return 2
case 110: return 2 case 110: return 2
case 34: return 3 case 47: return 2
case 114: return 2
case 98: return 15 case 98: return 15
case 34: return 4
case 117: return 2 case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 15
default: default:
switch { switch {
case 48 <= r && r <= 57: return 15 case 48 <= r && r <= 57: return 15
@ -339,18 +361,17 @@ fun[14] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
acc[13] = true fun[5] = func(r rune) int {
fun[13] = func(r rune) int {
switch(r) { switch(r) {
case 92: return 4
case 102: return 2
case 116: return 2
case 114: return 2
case 110: return 2 case 110: return 2
case 34: return 3
case 98: return 2
case 117: return 2
case 47: return 2 case 47: return 2
case 114: return 2
case 98: return 2
case 34: return 4
case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 2
default: default:
switch { switch {
case 48 <= r && r <= 57: return 2 case 48 <= r && r <= 57: return 2
@ -361,38 +382,17 @@ fun[13] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
fun[0] = func(r rune) int { fun[8] = func(r rune) int {
switch(r) { switch(r) {
case 117: return -1 case 34: return 4
case 47: return -1
case 92: return -1
case 102: return -1
case 116: return -1
case 114: return -1
case 110: return -1
case 34: return 1
case 98: 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[9] = func(r rune) int {
switch(r) {
case 47: return 2
case 92: return 4
case 102: return 2
case 116: return 2
case 114: return 2
case 110: return 2
case 34: return 3
case 98: return 2
case 117: return 2 case 117: return 2
case 116: return 2
case 92: return 3
case 102: return 2
case 110: return 2
case 47: return 2
case 114: return 2
case 98: return 2
default: default:
switch { switch {
case 48 <= r && r <= 57: return 2 case 48 <= r && r <= 57: return 2
@ -410,9 +410,10 @@ a0[0].id = 0
{ {
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 43: return 1 case 43: return -1
default: default:
switch { switch {
default: return -1 default: return -1
@ -420,10 +421,9 @@ 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 43: return -1 case 43: return 1
default: default:
switch { switch {
default: return -1 default: return -1
@ -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
@ -578,10 +578,9 @@ a0[6].id = 6
{ {
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 62: return -1 case 62: return 1
default: default:
switch { switch {
default: return -1 default: return -1
@ -589,9 +588,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 62: return 1 case 62: return -1
default: default:
switch { switch {
default: return -1 default: return -1
@ -634,9 +634,10 @@ a0[8].id = 8
{ {
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 61: return 1 case 61: return -1
default: default:
switch { switch {
default: return -1 default: return -1
@ -644,10 +645,9 @@ 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 61: return -1 case 61: return 1
default: default:
switch { switch {
default: return -1 default: return -1
@ -662,52 +662,11 @@ a0[9].id = 9
{ {
var acc [8]bool var acc [8]bool
var fun [8]func(rune) int var fun [8]func(rune) int
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 5
case 49 <= r && r <= 57: return 5
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
case 49 <= r && r <= 57: return 3
default: return -1
}
}
panic("unreachable")
}
acc[7] = true
fun[7] = 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")
}
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
case 46: return 4
default: default:
switch { switch {
case 48 <= r && r <= 48: return -1 case 48 <= r && r <= 48: return -1
@ -717,10 +676,23 @@ fun[2] = func(r rune) int {
} }
panic("unreachable") 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")
}
fun[1] = func(r rune) int { fun[1] = func(r rune) int {
switch(r) { switch(r) {
case 46: return -1
case 45: return -1 case 45: return -1
case 46: return -1
default: default:
switch { switch {
case 48 <= r && r <= 48: return 2 case 48 <= r && r <= 48: return 2
@ -730,6 +702,33 @@ fun[1] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
fun[0] = func(r rune) int {
switch(r) {
case 46: return -1
case 45: return 1
default:
switch {
case 48 <= r && r <= 48: return 2
case 49 <= r && r <= 57: return 3
default: return -1
}
}
panic("unreachable")
}
acc[5] = true
fun[5] = func(r rune) int {
switch(r) {
case 46: return 4
case 45: return -1
default:
switch {
case 48 <= r && r <= 48: return 5
case 49 <= r && r <= 57: return 5
default: return -1
}
}
panic("unreachable")
}
acc[6] = true acc[6] = true
fun[6] = func(r rune) int { fun[6] = func(r rune) int {
switch(r) { switch(r) {
@ -744,28 +743,29 @@ fun[6] = func(r rune) int {
} }
panic("unreachable") panic("unreachable")
} }
fun[4] = func(r rune) int { acc[3] = true
fun[3] = func(r rune) int {
switch(r) { switch(r) {
case 46: return -1 case 46: return 4
case 45: return -1 case 45: return -1
default: default:
switch { switch {
case 48 <= r && r <= 48: return 6 case 48 <= r && r <= 48: return 5
case 49 <= r && r <= 57: return 6 case 49 <= r && r <= 57: return 5
default: return -1 default: return -1
} }
} }
panic("unreachable") panic("unreachable")
} }
acc[5] = true acc[7] = true
fun[5] = func(r rune) int { fun[7] = func(r rune) int {
switch(r) { switch(r) {
case 46: return -1
case 45: return -1 case 45: return -1
case 46: return 4
default: default:
switch { switch {
case 48 <= r && r <= 48: return 5 case 48 <= r && r <= 48: return 7
case 49 <= r && r <= 57: return 5 case 49 <= r && r <= 57: return 7
default: return -1 default: return -1
} }
} }
@ -778,12 +778,11 @@ a0[10].id = 10
{ {
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 10: return 1 case 10: return 1
case 9: return 1
case 32: return 1 case 32: return 1
case 9: return 1
default: default:
switch { switch {
default: return -1 default: return -1
@ -791,11 +790,12 @@ 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 10: return 1 case 10: return 1
case 9: return 1
case 32: return 1 case 32: return 1
case 9: return 1
default: default:
switch { switch {
default: return -1 default: return -1
@ -812,18 +812,18 @@ var acc [2]bool
var fun [2]func(rune) int var fun [2]func(rune) int
fun[0] = func(r rune) int { fun[0] = func(r rune) int {
switch(r) { switch(r) {
case 60: return -1 case 43: return -1
case 9: return -1 case 9: return -1
case 62: return -1 case 62: return -1
case 61: return -1
case 12: return -1 case 12: return -1
case 60: return -1
case 10: return -1
case 13: return -1 case 13: return -1
case 32: return -1 case 45: return -1
case 94: return -1 case 94: return -1
case 58: return -1 case 58: return -1
case 10: return -1 case 61: return -1
case 43: return -1 case 32: return -1
case 45: return -1
default: default:
switch { switch {
default: return 1 default: return 1
@ -834,18 +834,18 @@ fun[0] = func(r 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 62: return -1
case 61: return -1
case 12: return -1
case 13: return -1 case 13: return -1
case 32: return -1 case 45: return -1
case 94: return -1 case 94: return -1
case 58: return -1 case 58: return -1
case 10: return -1 case 61: return -1
case 32: return -1
case 43: return -1 case 43: return -1
case 45: return -1
case 60: return -1
case 9: return -1 case 9: return -1
case 62: return -1
case 12: return -1
case 60: return -1
case 10: return -1
default: default:
switch { switch {
default: return 1 default: return 1
@ -962,31 +962,31 @@ func (yylex Lexer) Lex(lval *yySymType) int {
{ {
lval.s = yylex.Text()[1:len(yylex.Text())-1] lval.s = yylex.Text()[1:len(yylex.Text())-1]
logDebugTokens("PHRASE - %s", lval.s); logDebugTokens("PHRASE - %s", lval.s);
return PHRASE return tPHRASE
} }
case 1: //\+/ case 1: //\+/
{ logDebugTokens("PLUS"); return PLUS } { logDebugTokens("PLUS"); return tPLUS }
case 2: //-/ case 2: //-/
{ logDebugTokens("MINUS"); return MINUS } { logDebugTokens("MINUS"); return tMINUS }
case 3: //:/ case 3: //:/
{ logDebugTokens("COLON"); return COLON } { logDebugTokens("COLON"); return tCOLON }
case 4: //^/ case 4: //^/
{ logDebugTokens("BOOST"); return BOOST } { logDebugTokens("BOOST"); return tBOOST }
case 5: //\(/ case 5: //\(/
{ logDebugTokens("LPAREN"); return LPAREN } { logDebugTokens("LPAREN"); return tLPAREN }
case 6: //\)/ case 6: //\)/
{ logDebugTokens("RPAREN"); return RPAREN } { logDebugTokens("RPAREN"); return tRPAREN }
case 7: //>/ case 7: //>/
{ logDebugTokens("GREATER"); return GREATER } { logDebugTokens("GREATER"); return tGREATER }
case 8: //</ case 8: //</
{ logDebugTokens("LESS"); return LESS } { logDebugTokens("LESS"); return tLESS }
case 9: //=/ case 9: //=/
{ logDebugTokens("EQUAL"); return EQUAL } { logDebugTokens("EQUAL"); return tEQUAL }
case 10: //-?([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?/ case 10: //-?([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?/
{ {
lval.f,_ = strconv.ParseFloat(yylex.Text(), 64); lval.f,_ = strconv.ParseFloat(yylex.Text(), 64);
logDebugTokens("NUMBER - %f", lval.f); logDebugTokens("NUMBER - %f", lval.f);
return NUMBER return tNUMBER
} }
case 11: //[ \t\n]+/ case 11: //[ \t\n]+/
{ logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ } { logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ }
@ -994,7 +994,7 @@ func (yylex Lexer) Lex(lval *yySymType) int {
{ {
lval.s = yylex.Text() lval.s = yylex.Text()
logDebugTokens("STRING - %s", lval.s); logDebugTokens("STRING - %s", lval.s);
return STRING return tSTRING
} }
case 13: /// case 13: ///
// [END] // [END]

View File

@ -14,7 +14,7 @@ s string
n int n int
f float64} f float64}
%token STRING PHRASE PLUS MINUS COLON BOOST LPAREN RPAREN NUMBER STRING GREATER LESS EQUAL %token tSTRING tPHRASE tPLUS tMINUS tCOLON tBOOST tLPAREN tRPAREN tNUMBER tSTRING tGREATER tLESS tEQUAL
%% %%
@ -48,18 +48,18 @@ searchMustMustNot {
; ;
searchMustMustNot: searchMustMustNot:
PLUS { tPLUS {
logDebugGrammar("PLUS") logDebugGrammar("PLUS")
parsingMust = true parsingMust = true
} }
| |
MINUS { tMINUS {
logDebugGrammar("MINUS") logDebugGrammar("MINUS")
parsingMustNot = true parsingMustNot = true
}; };
searchBase: searchBase:
STRING { tSTRING {
str := $1.s str := $1.s
logDebugGrammar("STRING - %s", str) logDebugGrammar("STRING - %s", str)
q := NewMatchQuery(str) q := NewMatchQuery(str)
@ -75,7 +75,7 @@ STRING {
parsingLastQuery = q parsingLastQuery = q
} }
| |
PHRASE { tPHRASE {
phrase := $1.s phrase := $1.s
logDebugGrammar("PHRASE - %s", phrase) logDebugGrammar("PHRASE - %s", phrase)
q := NewMatchPhraseQuery(phrase) q := NewMatchPhraseQuery(phrase)
@ -91,7 +91,7 @@ PHRASE {
parsingLastQuery = q parsingLastQuery = q
} }
| |
STRING COLON STRING { tSTRING tCOLON tSTRING {
field := $1.s field := $1.s
str := $3.s str := $3.s
logDebugGrammar("FIELD - %s STRING - %s", field, str) logDebugGrammar("FIELD - %s STRING - %s", field, str)
@ -108,7 +108,7 @@ STRING COLON STRING {
parsingLastQuery = q parsingLastQuery = q
} }
| |
STRING COLON PHRASE { tSTRING tCOLON tPHRASE {
field := $1.s field := $1.s
phrase := $3.s phrase := $3.s
logDebugGrammar("FIELD - %s PHRASE - %s", field, phrase) logDebugGrammar("FIELD - %s PHRASE - %s", field, phrase)
@ -125,7 +125,7 @@ STRING COLON PHRASE {
parsingLastQuery = q parsingLastQuery = q
} }
| |
STRING COLON GREATER NUMBER { tSTRING tCOLON tGREATER tNUMBER {
field := $1.s field := $1.s
min := $4.f min := $4.f
minInclusive := false minInclusive := false
@ -143,7 +143,7 @@ STRING COLON GREATER NUMBER {
parsingLastQuery = q parsingLastQuery = q
} }
| |
STRING COLON GREATER EQUAL NUMBER { tSTRING tCOLON tGREATER tEQUAL tNUMBER {
field := $1.s field := $1.s
min := $5.f min := $5.f
minInclusive := true minInclusive := true
@ -161,7 +161,7 @@ STRING COLON GREATER EQUAL NUMBER {
parsingLastQuery = q parsingLastQuery = q
} }
| |
STRING COLON LESS NUMBER { tSTRING tCOLON tLESS tNUMBER {
field := $1.s field := $1.s
max := $4.f max := $4.f
maxInclusive := false maxInclusive := false
@ -179,7 +179,7 @@ STRING COLON LESS NUMBER {
parsingLastQuery = q parsingLastQuery = q
} }
| |
STRING COLON LESS EQUAL NUMBER { tSTRING tCOLON tLESS tEQUAL tNUMBER {
field := $1.s field := $1.s
max := $5.f max := $5.f
maxInclusive := true maxInclusive := true
@ -199,7 +199,7 @@ STRING COLON LESS EQUAL NUMBER {
searchBoost: searchBoost:
BOOST NUMBER { tBOOST tNUMBER {
boost := $2.f boost := $2.f
if parsingLastQuery != nil { if parsingLastQuery != nil {
switch parsingLastQuery := parsingLastQuery.(type) { switch parsingLastQuery := parsingLastQuery.(type) {

48
y.go
View File

@ -19,32 +19,32 @@ type yySymType struct {
f float64 f float64
} }
const STRING = 57346 const tSTRING = 57346
const PHRASE = 57347 const tPHRASE = 57347
const PLUS = 57348 const tPLUS = 57348
const MINUS = 57349 const tMINUS = 57349
const COLON = 57350 const tCOLON = 57350
const BOOST = 57351 const tBOOST = 57351
const LPAREN = 57352 const tLPAREN = 57352
const RPAREN = 57353 const tRPAREN = 57353
const NUMBER = 57354 const tNUMBER = 57354
const GREATER = 57355 const tGREATER = 57355
const LESS = 57356 const tLESS = 57356
const EQUAL = 57357 const tEQUAL = 57357
var yyToknames = []string{ var yyToknames = []string{
"STRING", "tSTRING",
"PHRASE", "tPHRASE",
"PLUS", "tPLUS",
"MINUS", "tMINUS",
"COLON", "tCOLON",
"BOOST", "tBOOST",
"LPAREN", "tLPAREN",
"RPAREN", "tRPAREN",
"NUMBER", "tNUMBER",
"GREATER", "tGREATER",
"LESS", "tLESS",
"EQUAL", "tEQUAL",
} }
var yyStatenames = []string{} var yyStatenames = []string{}