sql_search_parser 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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