sql_search_parser 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sql_search/parser.racc.rb +223 -202
- data/lib/sql_search/parser.rex +0 -8
- data/lib/sql_search/parser.y +18 -7
- data/lib/sql_search/version.rb +1 -1
- data/lib/sql_search_parser.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5da80d4b6af51b0fe6b20c6cb2538ae29f48f5e3
|
4
|
+
data.tar.gz: febf40867211a64eb053ce4e8b808b17dee99d86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b93a359aaa31a2e256f9f28625eb442e3f881f42dccfd006c19d2ebac05d83d697b362dc7bc494ba5c49d1835a8e6dfd1a15fcbe4f6b0148d685f507a51f0246
|
7
|
+
data.tar.gz: 1d3ceda260c0ad6c88a43ce342c707b55f1a7eb46c78d555d3750e4fa6e2f597a1b93114b747da5281091d38e7dead9b27dd945ab67e624b65c1956bdef5e932
|
@@ -12,7 +12,7 @@ require 'racc/parser.rb'
|
|
12
12
|
module SQLSearch
|
13
13
|
class Parser < Racc::Parser
|
14
14
|
|
15
|
-
module_eval(<<'...end parser.y/module_eval...', 'parser.y',
|
15
|
+
module_eval(<<'...end parser.y/module_eval...', 'parser.y', 105)
|
16
16
|
def parse(input)
|
17
17
|
scan_str(input)
|
18
18
|
end
|
@@ -20,163 +20,167 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 94)
|
|
20
20
|
##### State transition tables begin ###
|
21
21
|
|
22
22
|
racc_action_table = [
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
nil,
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
nil,
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
23
|
+
4, 8, 52, 53, 26, 62, 85, 54, 49, 4,
|
24
|
+
8, 16, 17, 63, 82, 20, 21, 22, 23, 24,
|
25
|
+
16, 17, 4, 8, 20, 21, 22, 23, 24, 46,
|
26
|
+
71, 4, 8, 16, 17, 71, 68, 20, 21, 22,
|
27
|
+
23, 24, 16, 17, 43, 27, 20, 21, 22, 23,
|
28
|
+
24, 57, 75, 43, 16, 17, 83, 45, 20, 21,
|
29
|
+
22, 23, 24, 16, 17, 43, 40, 20, 21, 22,
|
30
|
+
23, 24, 27, 74, 43, 16, 17, 65, nil, 20,
|
31
|
+
21, 22, 23, 24, 16, 17, 8, nil, 20, 21,
|
32
|
+
22, 23, 24, nil, nil, 43, 16, 17, nil, nil,
|
33
|
+
20, 21, 22, 23, 24, 16, 17, 43, nil, 20,
|
34
|
+
21, 22, 23, 24, nil, nil, 43, 16, 17, nil,
|
35
|
+
nil, 20, 21, 22, 23, 24, 16, 17, 43, nil,
|
36
|
+
20, 21, 22, 23, 24, nil, nil, 43, 16, 17,
|
37
|
+
nil, nil, 20, 21, 22, 23, 24, 16, 17, 43,
|
38
|
+
nil, 20, 21, 22, 23, 24, nil, nil, 43, 16,
|
39
|
+
17, nil, nil, 20, 21, 22, 23, 24, 16, 17,
|
40
|
+
43, 81, 20, 21, 22, 23, 24, 69, nil, 82,
|
41
|
+
16, 17, 76, nil, 20, 21, 22, 23, 24, 36,
|
42
|
+
37, 38, 39, nil, 36, 37, 38, 39, 32, nil,
|
43
|
+
nil, 31, 33, 34, 25, nil, 26, 35, nil, 36,
|
44
|
+
37, 38, 39, 32, nil, 50, 31, 33, 34, 50,
|
45
|
+
nil, nil, 35, nil, 36, 37, 38, 39, 36, 37,
|
46
|
+
38, 39, 36, 37, 38, 39, 36, 37, 38, 39,
|
47
|
+
36, 37, 38, 39, 36, 37, 38, 39, 20, 21,
|
48
|
+
22, 23, 20, 21, 22, 23, 20, 21, 22, 23,
|
49
|
+
20, 21, 22, 23, 20, 21, 22, 23, 20, 21,
|
50
|
+
22, 23, 36, 37, 38, 39, 36, 37, 38, 39,
|
51
|
+
36, 37, 38, 39, 36, 37, 38, 39, 36, 37,
|
52
|
+
38, 39 ]
|
53
53
|
|
54
54
|
racc_action_check = [
|
55
|
-
0, 0,
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
nil,
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
nil,
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
55
|
+
0, 0, 32, 32, 29, 40, 78, 32, 29, 27,
|
56
|
+
27, 0, 0, 40, 78, 0, 0, 0, 0, 0,
|
57
|
+
27, 27, 26, 26, 27, 27, 27, 27, 27, 25,
|
58
|
+
56, 8, 8, 26, 26, 67, 54, 26, 26, 26,
|
59
|
+
26, 26, 8, 8, 17, 47, 8, 8, 8, 8,
|
60
|
+
8, 35, 65, 43, 17, 17, 75, 24, 17, 17,
|
61
|
+
17, 17, 17, 43, 43, 39, 15, 43, 43, 43,
|
62
|
+
43, 43, 2, 62, 16, 39, 39, 45, nil, 39,
|
63
|
+
39, 39, 39, 39, 16, 16, 4, nil, 16, 16,
|
64
|
+
16, 16, 16, nil, nil, 76, 4, 4, nil, nil,
|
65
|
+
4, 4, 4, 4, 4, 76, 76, 38, nil, 76,
|
66
|
+
76, 76, 76, 76, nil, nil, 69, 38, 38, nil,
|
67
|
+
nil, 38, 38, 38, 38, 38, 69, 69, 52, nil,
|
68
|
+
69, 69, 69, 69, 69, nil, nil, 37, 52, 52,
|
69
|
+
nil, nil, 52, 52, 52, 52, 52, 37, 37, 33,
|
70
|
+
nil, 37, 37, 37, 37, 37, nil, nil, 31, 33,
|
71
|
+
33, nil, nil, 33, 33, 33, 33, 33, 31, 31,
|
72
|
+
36, 72, 31, 31, 31, 31, 31, 55, nil, 72,
|
73
|
+
36, 36, 66, nil, 36, 36, 36, 36, 36, 55,
|
74
|
+
55, 55, 55, nil, 66, 66, 66, 66, 14, nil,
|
75
|
+
nil, 14, 14, 14, 1, nil, 1, 14, nil, 14,
|
76
|
+
14, 14, 14, 30, nil, 30, 30, 30, 30, 64,
|
77
|
+
nil, nil, 30, nil, 30, 30, 30, 30, 64, 64,
|
78
|
+
64, 64, 79, 79, 79, 79, 41, 41, 41, 41,
|
79
|
+
44, 44, 44, 44, 51, 51, 51, 51, 82, 82,
|
80
|
+
82, 82, 53, 53, 53, 53, 68, 68, 68, 68,
|
81
|
+
71, 71, 71, 71, 34, 34, 34, 34, 57, 57,
|
82
|
+
57, 57, 58, 58, 58, 58, 59, 59, 59, 59,
|
83
|
+
60, 60, 60, 60, 61, 61, 61, 61, 84, 84,
|
84
|
+
84, 84 ]
|
85
85
|
|
86
86
|
racc_action_pointer = [
|
87
|
-
-4,
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
nil,
|
95
|
-
|
87
|
+
-4, 204, 69, nil, 81, nil, nil, nil, 27, nil,
|
88
|
+
nil, nil, nil, nil, 194, 55, 69, 39, nil, nil,
|
89
|
+
nil, nil, nil, nil, 33, 29, 18, 5, nil, 2,
|
90
|
+
209, 153, -6, 144, 245, 46, 165, 132, 102, 60,
|
91
|
+
1, 221, nil, 48, 225, 54, nil, 42, nil, nil,
|
92
|
+
nil, 229, 123, 233, 31, 174, 20, 249, 257, 261,
|
93
|
+
265, 269, 61, nil, 213, 28, 179, 25, 237, 111,
|
94
|
+
nil, 241, 165, nil, nil, 33, 90, nil, 0, 217,
|
95
|
+
nil, nil, 229, nil, 273, nil, nil ]
|
96
96
|
|
97
97
|
racc_action_default = [
|
98
|
-
-
|
99
|
-
-
|
100
|
-
-38, -
|
101
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
106
|
-
-
|
98
|
+
-45, -45, -1, -3, -45, -6, -7, -8, -45, -10,
|
99
|
+
-11, -12, -13, -14, -45, -35, -45, -45, -34, -37,
|
100
|
+
-38, -39, -40, -41, -42, -45, -45, -45, -5, -45,
|
101
|
+
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
|
102
|
+
-45, -32, -35, -45, -33, -45, 87, -2, -4, -9,
|
103
|
+
-36, -15, -45, -45, -45, -45, -20, -45, -28, -29,
|
104
|
+
-30, -31, -45, -23, -45, -43, -45, -20, -45, -45,
|
105
|
+
-19, -45, -45, -26, -22, -45, -45, -18, -45, -17,
|
106
|
+
-21, -25, -45, -44, -16, -24, -27 ]
|
107
107
|
|
108
108
|
racc_goto_table = [
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
nil, nil,
|
115
|
-
nil,
|
109
|
+
30, 70, 72, 56, 47, 48, 15, 1, 41, 44,
|
110
|
+
15, 28, 77, 78, 15, 29, nil, nil, nil, nil,
|
111
|
+
nil, nil, 67, 51, nil, 55, 73, nil, 58, 59,
|
112
|
+
60, 61, 15, 15, nil, 64, nil, 73, nil, nil,
|
113
|
+
80, nil, nil, nil, 66, nil, nil, nil, nil, nil,
|
114
|
+
nil, 86, nil, nil, nil, nil, nil, nil, nil, nil,
|
115
|
+
nil, 79, nil, nil, nil, nil, nil, nil, 84 ]
|
116
116
|
|
117
117
|
racc_goto_check = [
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
nil, nil,
|
124
|
-
nil,
|
118
|
+
12, 14, 16, 13, 2, 3, 15, 1, 12, 12,
|
119
|
+
15, 4, 14, 16, 15, 1, nil, nil, nil, nil,
|
120
|
+
nil, nil, 13, 12, nil, 12, 13, nil, 12, 12,
|
121
|
+
12, 12, 15, 15, nil, 12, nil, 13, nil, nil,
|
122
|
+
13, nil, nil, nil, 12, nil, nil, nil, nil, nil,
|
123
|
+
nil, 13, nil, nil, nil, nil, nil, nil, nil, nil,
|
124
|
+
nil, 12, nil, nil, nil, nil, nil, nil, 12 ]
|
125
125
|
|
126
126
|
racc_goto_pointer = [
|
127
|
-
nil,
|
128
|
-
|
127
|
+
nil, 7, -22, -22, 7, nil, nil, nil, nil, nil,
|
128
|
+
nil, nil, -8, -31, -55, 6, -55, nil ]
|
129
129
|
|
130
130
|
racc_goto_default = [
|
131
|
-
nil, nil,
|
132
|
-
nil,
|
131
|
+
nil, nil, 2, 3, 5, 6, 7, 9, 10, 11,
|
132
|
+
12, 13, 14, 18, nil, 42, nil, 19 ]
|
133
133
|
|
134
134
|
racc_reduce_table = [
|
135
135
|
0, 0, :racc_error,
|
136
|
-
3, 26, :_reduce_1,
|
137
|
-
3, 26, :_reduce_2,
|
138
|
-
2, 26, :_reduce_3,
|
139
|
-
3, 26, :_reduce_none,
|
140
136
|
1, 26, :_reduce_none,
|
137
|
+
3, 26, :_reduce_2,
|
141
138
|
1, 27, :_reduce_none,
|
142
|
-
|
143
|
-
|
144
|
-
1,
|
145
|
-
1,
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
5,
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
3,
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
3,
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
1,
|
173
|
-
1,
|
174
|
-
3,
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
139
|
+
3, 27, :_reduce_4,
|
140
|
+
2, 28, :_reduce_5,
|
141
|
+
1, 28, :_reduce_none,
|
142
|
+
1, 29, :_reduce_none,
|
143
|
+
1, 30, :_reduce_none,
|
144
|
+
3, 30, :_reduce_9,
|
145
|
+
1, 31, :_reduce_none,
|
146
|
+
1, 31, :_reduce_none,
|
147
|
+
1, 31, :_reduce_none,
|
148
|
+
1, 31, :_reduce_none,
|
149
|
+
1, 31, :_reduce_none,
|
150
|
+
3, 32, :_reduce_15,
|
151
|
+
6, 33, :_reduce_none,
|
152
|
+
5, 33, :_reduce_none,
|
153
|
+
5, 34, :_reduce_18,
|
154
|
+
4, 34, :_reduce_19,
|
155
|
+
0, 39, :_reduce_none,
|
156
|
+
2, 39, :_reduce_none,
|
157
|
+
4, 35, :_reduce_22,
|
158
|
+
3, 35, :_reduce_23,
|
159
|
+
6, 36, :_reduce_24,
|
160
|
+
5, 36, :_reduce_25,
|
161
|
+
1, 41, :_reduce_26,
|
162
|
+
3, 41, :_reduce_27,
|
163
|
+
3, 37, :_reduce_28,
|
164
|
+
3, 37, :_reduce_29,
|
165
|
+
3, 37, :_reduce_30,
|
166
|
+
3, 37, :_reduce_31,
|
167
|
+
2, 37, :_reduce_32,
|
168
|
+
2, 37, :_reduce_33,
|
169
|
+
1, 37, :_reduce_none,
|
170
|
+
1, 37, :_reduce_none,
|
171
|
+
3, 37, :_reduce_none,
|
172
|
+
1, 38, :_reduce_none,
|
173
|
+
1, 42, :_reduce_38,
|
174
|
+
1, 42, :_reduce_39,
|
175
|
+
1, 42, :_reduce_40,
|
176
|
+
1, 42, :_reduce_41,
|
177
|
+
1, 40, :_reduce_42,
|
178
|
+
3, 40, :_reduce_43,
|
179
|
+
5, 40, :_reduce_44 ]
|
180
|
+
|
181
|
+
racc_reduce_n = 45
|
182
|
+
|
183
|
+
racc_shift_n = 87
|
180
184
|
|
181
185
|
racc_token_table = {
|
182
186
|
false => 0,
|
@@ -253,6 +257,10 @@ Racc_token_to_s_table = [
|
|
253
257
|
"DOT",
|
254
258
|
"$start",
|
255
259
|
"search_condition",
|
260
|
+
"boolean_term",
|
261
|
+
"boolean_factor",
|
262
|
+
"boolean_test",
|
263
|
+
"boolean_primary",
|
256
264
|
"predicate",
|
257
265
|
"comparison_predicate",
|
258
266
|
"between_predicate",
|
@@ -272,206 +280,219 @@ Racc_debug_parser = false
|
|
272
280
|
|
273
281
|
# reduce 0 omitted
|
274
282
|
|
275
|
-
|
276
|
-
|
283
|
+
# reduce 1 omitted
|
284
|
+
|
285
|
+
module_eval(<<'.,.,', 'parser.y', 7)
|
286
|
+
def _reduce_2(val, _values, result)
|
277
287
|
result = Conditions::Or.new(:left => val[0], :right => val[2])
|
278
288
|
result
|
279
289
|
end
|
280
290
|
.,.,
|
281
291
|
|
282
|
-
|
283
|
-
|
292
|
+
# reduce 3 omitted
|
293
|
+
|
294
|
+
module_eval(<<'.,.,', 'parser.y', 11)
|
295
|
+
def _reduce_4(val, _values, result)
|
284
296
|
result = Conditions::And.new(:left => val[0], :right => val[2])
|
285
297
|
result
|
286
298
|
end
|
287
299
|
.,.,
|
288
300
|
|
289
|
-
module_eval(<<'.,.,', 'parser.y',
|
290
|
-
def
|
301
|
+
module_eval(<<'.,.,', 'parser.y', 14)
|
302
|
+
def _reduce_5(val, _values, result)
|
291
303
|
result = Conditions::Not.new(:value => val[1])
|
292
304
|
result
|
293
305
|
end
|
294
306
|
.,.,
|
295
307
|
|
296
|
-
# reduce 4 omitted
|
297
|
-
|
298
|
-
# reduce 5 omitted
|
299
|
-
|
300
308
|
# reduce 6 omitted
|
301
309
|
|
302
310
|
# reduce 7 omitted
|
303
311
|
|
304
312
|
# reduce 8 omitted
|
305
313
|
|
306
|
-
|
314
|
+
module_eval(<<'.,.,', 'parser.y', 22)
|
315
|
+
def _reduce_9(val, _values, result)
|
316
|
+
result = val[1]
|
317
|
+
result
|
318
|
+
end
|
319
|
+
.,.,
|
307
320
|
|
308
321
|
# reduce 10 omitted
|
309
322
|
|
310
|
-
|
311
|
-
|
323
|
+
# reduce 11 omitted
|
324
|
+
|
325
|
+
# reduce 12 omitted
|
326
|
+
|
327
|
+
# reduce 13 omitted
|
328
|
+
|
329
|
+
# reduce 14 omitted
|
330
|
+
|
331
|
+
module_eval(<<'.,.,', 'parser.y', 33)
|
332
|
+
def _reduce_15(val, _values, result)
|
312
333
|
result = Comparison.new(:left => val[0], :right => val[2], :operator => val[1].to_sym)
|
313
334
|
result
|
314
335
|
end
|
315
336
|
.,.,
|
316
337
|
|
317
|
-
# reduce
|
338
|
+
# reduce 16 omitted
|
318
339
|
|
319
|
-
# reduce
|
340
|
+
# reduce 17 omitted
|
320
341
|
|
321
|
-
module_eval(<<'.,.,', 'parser.y',
|
322
|
-
def
|
342
|
+
module_eval(<<'.,.,', 'parser.y', 42)
|
343
|
+
def _reduce_18(val, _values, result)
|
323
344
|
result = Conditions::Not.new(:value => Comparison.new(:left => val[0], :right => val[3], :operator => :LIKE))
|
324
345
|
result
|
325
346
|
end
|
326
347
|
.,.,
|
327
348
|
|
328
|
-
module_eval(<<'.,.,', 'parser.y',
|
329
|
-
def
|
349
|
+
module_eval(<<'.,.,', 'parser.y', 43)
|
350
|
+
def _reduce_19(val, _values, result)
|
330
351
|
result = Comparison.new(:left => val[0], :right => val[2], :operator => :LIKE)
|
331
352
|
result
|
332
353
|
end
|
333
354
|
.,.,
|
334
355
|
|
335
|
-
# reduce
|
356
|
+
# reduce 20 omitted
|
336
357
|
|
337
|
-
# reduce
|
358
|
+
# reduce 21 omitted
|
338
359
|
|
339
|
-
module_eval(<<'.,.,', 'parser.y',
|
340
|
-
def
|
360
|
+
module_eval(<<'.,.,', 'parser.y', 52)
|
361
|
+
def _reduce_22(val, _values, result)
|
341
362
|
result = Comparison.new(:left => val[0], :right => val[3], :operator => :'<>')
|
342
363
|
result
|
343
364
|
end
|
344
365
|
.,.,
|
345
366
|
|
346
|
-
module_eval(<<'.,.,', 'parser.y',
|
347
|
-
def
|
367
|
+
module_eval(<<'.,.,', 'parser.y', 53)
|
368
|
+
def _reduce_23(val, _values, result)
|
348
369
|
result = Comparison.new(:left => val[0], :right => val[2], :operator => :'=')
|
349
370
|
result
|
350
371
|
end
|
351
372
|
.,.,
|
352
373
|
|
353
|
-
module_eval(<<'.,.,', 'parser.y',
|
354
|
-
def
|
374
|
+
module_eval(<<'.,.,', 'parser.y', 57)
|
375
|
+
def _reduce_24(val, _values, result)
|
355
376
|
result = Conditions::Not.new(:value => In.new(:left => val[0], :right => Atoms::InValues.new(:values => val[4])))
|
356
377
|
result
|
357
378
|
end
|
358
379
|
.,.,
|
359
380
|
|
360
|
-
module_eval(<<'.,.,', 'parser.y',
|
361
|
-
def
|
381
|
+
module_eval(<<'.,.,', 'parser.y', 58)
|
382
|
+
def _reduce_25(val, _values, result)
|
362
383
|
result = In.new(:left => val[0], :right => Atoms::InValues.new(:values => val[3]))
|
363
384
|
result
|
364
385
|
end
|
365
386
|
.,.,
|
366
387
|
|
367
|
-
module_eval(<<'.,.,', 'parser.y',
|
368
|
-
def
|
388
|
+
module_eval(<<'.,.,', 'parser.y', 62)
|
389
|
+
def _reduce_26(val, _values, result)
|
369
390
|
result = [val[0]]
|
370
391
|
result
|
371
392
|
end
|
372
393
|
.,.,
|
373
394
|
|
374
|
-
module_eval(<<'.,.,', 'parser.y',
|
375
|
-
def
|
395
|
+
module_eval(<<'.,.,', 'parser.y', 63)
|
396
|
+
def _reduce_27(val, _values, result)
|
376
397
|
result = val[0].concat([val[2]])
|
377
398
|
result
|
378
399
|
end
|
379
400
|
.,.,
|
380
401
|
|
381
|
-
module_eval(<<'.,.,', 'parser.y',
|
382
|
-
def
|
402
|
+
module_eval(<<'.,.,', 'parser.y', 69)
|
403
|
+
def _reduce_28(val, _values, result)
|
383
404
|
result = Atoms::Scalar.new(:left => val[0], :right => val[2], :operation => :'+')
|
384
405
|
result
|
385
406
|
end
|
386
407
|
.,.,
|
387
408
|
|
388
|
-
module_eval(<<'.,.,', 'parser.y',
|
389
|
-
def
|
409
|
+
module_eval(<<'.,.,', 'parser.y', 70)
|
410
|
+
def _reduce_29(val, _values, result)
|
390
411
|
result = Atoms::Scalar.new(:left => val[0], :right => val[2], :operation => :'-')
|
391
412
|
result
|
392
413
|
end
|
393
414
|
.,.,
|
394
415
|
|
395
|
-
module_eval(<<'.,.,', 'parser.y',
|
396
|
-
def
|
416
|
+
module_eval(<<'.,.,', 'parser.y', 71)
|
417
|
+
def _reduce_30(val, _values, result)
|
397
418
|
result = Atoms::Scalar.new(:left => val[0], :right => val[2], :operation => :'*')
|
398
419
|
result
|
399
420
|
end
|
400
421
|
.,.,
|
401
422
|
|
402
|
-
module_eval(<<'.,.,', 'parser.y',
|
403
|
-
def
|
423
|
+
module_eval(<<'.,.,', 'parser.y', 72)
|
424
|
+
def _reduce_31(val, _values, result)
|
404
425
|
result = Atoms::Scalar.new(:left => val[0], :right => val[2], :operation => :'/')
|
405
426
|
result
|
406
427
|
end
|
407
428
|
.,.,
|
408
429
|
|
409
|
-
module_eval(<<'.,.,', 'parser.y',
|
410
|
-
def
|
430
|
+
module_eval(<<'.,.,', 'parser.y', 73)
|
431
|
+
def _reduce_32(val, _values, result)
|
411
432
|
result = Atoms::UnaryScalar.new(:value => val[1], :operation => :'+')
|
412
433
|
result
|
413
434
|
end
|
414
435
|
.,.,
|
415
436
|
|
416
|
-
module_eval(<<'.,.,', 'parser.y',
|
417
|
-
def
|
437
|
+
module_eval(<<'.,.,', 'parser.y', 74)
|
438
|
+
def _reduce_33(val, _values, result)
|
418
439
|
result = Atoms::UnaryScalar.new(:value => val[1], :operation => :'-')
|
419
440
|
result
|
420
441
|
end
|
421
442
|
.,.,
|
422
443
|
|
423
|
-
# reduce
|
444
|
+
# reduce 34 omitted
|
424
445
|
|
425
|
-
# reduce
|
446
|
+
# reduce 35 omitted
|
426
447
|
|
427
|
-
# reduce
|
448
|
+
# reduce 36 omitted
|
428
449
|
|
429
|
-
# reduce
|
450
|
+
# reduce 37 omitted
|
430
451
|
|
431
|
-
module_eval(<<'.,.,', 'parser.y',
|
432
|
-
def
|
452
|
+
module_eval(<<'.,.,', 'parser.y', 85)
|
453
|
+
def _reduce_38(val, _values, result)
|
433
454
|
result = Atoms::Literal.new(:value => val[0], :type => :string)
|
434
455
|
result
|
435
456
|
end
|
436
457
|
.,.,
|
437
458
|
|
438
|
-
module_eval(<<'.,.,', 'parser.y',
|
439
|
-
def
|
459
|
+
module_eval(<<'.,.,', 'parser.y', 86)
|
460
|
+
def _reduce_39(val, _values, result)
|
440
461
|
result = Atoms::Literal.new(:value => val[0], :type => :float)
|
441
462
|
result
|
442
463
|
end
|
443
464
|
.,.,
|
444
465
|
|
445
|
-
module_eval(<<'.,.,', 'parser.y',
|
446
|
-
def
|
466
|
+
module_eval(<<'.,.,', 'parser.y', 87)
|
467
|
+
def _reduce_40(val, _values, result)
|
447
468
|
result = Atoms::Literal.new(:value => val[0], :type => :int)
|
448
469
|
result
|
449
470
|
end
|
450
471
|
.,.,
|
451
472
|
|
452
|
-
module_eval(<<'.,.,', 'parser.y',
|
453
|
-
def
|
473
|
+
module_eval(<<'.,.,', 'parser.y', 88)
|
474
|
+
def _reduce_41(val, _values, result)
|
454
475
|
result = Atoms::Literal.new(:value => val[0], :type => :datetime)
|
455
476
|
result
|
456
477
|
end
|
457
478
|
.,.,
|
458
479
|
|
459
|
-
module_eval(<<'.,.,', 'parser.y',
|
460
|
-
def
|
480
|
+
module_eval(<<'.,.,', 'parser.y', 92)
|
481
|
+
def _reduce_42(val, _values, result)
|
461
482
|
result = Atoms::Column.new(:name => val[0])
|
462
483
|
result
|
463
484
|
end
|
464
485
|
.,.,
|
465
486
|
|
466
|
-
module_eval(<<'.,.,', 'parser.y',
|
467
|
-
def
|
487
|
+
module_eval(<<'.,.,', 'parser.y', 93)
|
488
|
+
def _reduce_43(val, _values, result)
|
468
489
|
result = Atoms::Column.new(:name => val[0], :table=> val[2])
|
469
490
|
result
|
470
491
|
end
|
471
492
|
.,.,
|
472
493
|
|
473
|
-
module_eval(<<'.,.,', 'parser.y',
|
474
|
-
def
|
494
|
+
module_eval(<<'.,.,', 'parser.y', 94)
|
495
|
+
def _reduce_44(val, _values, result)
|
475
496
|
result = Atoms::Column.new(:name => val[4], :table=> val[2], :space => val[0])
|
476
497
|
result
|
477
498
|
end
|
data/lib/sql_search/parser.rex
CHANGED
data/lib/sql_search/parser.y
CHANGED
@@ -3,13 +3,24 @@ class SQLSearch::Parser
|
|
3
3
|
rule
|
4
4
|
/* search conditions */
|
5
5
|
|
6
|
-
search_condition
|
7
|
-
|
8
|
-
|search_condition
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
search_condition
|
7
|
+
: boolean_term
|
8
|
+
| search_condition OR boolean_term { result = Conditions::Or.new(:left => val[0], :right => val[2]) }
|
9
|
+
|
10
|
+
boolean_term
|
11
|
+
: boolean_factor
|
12
|
+
| boolean_term AND boolean_factor { result = Conditions::And.new(:left => val[0], :right => val[2]) }
|
13
|
+
|
14
|
+
boolean_factor:
|
15
|
+
: NOT boolean_test { result = Conditions::Not.new(:value => val[1]) }
|
16
|
+
| boolean_test
|
17
|
+
|
18
|
+
boolean_test
|
19
|
+
: boolean_primary
|
20
|
+
|
21
|
+
boolean_primary
|
22
|
+
: predicate
|
23
|
+
| LPAREN search_condition RPAREN { result = val[1] }
|
13
24
|
|
14
25
|
predicate:
|
15
26
|
comparison_predicate
|
data/lib/sql_search/version.rb
CHANGED
data/lib/sql_search_parser.rb
CHANGED