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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b2ab804539b84da0f1bc6e89928e416c2bd0de7c
4
- data.tar.gz: f16b5d3a83c01b7a6e602ee86c483cf45d8a3be8
3
+ metadata.gz: 5da80d4b6af51b0fe6b20c6cb2538ae29f48f5e3
4
+ data.tar.gz: febf40867211a64eb053ce4e8b808b17dee99d86
5
5
  SHA512:
6
- metadata.gz: eab2351be9f14eaab61ceee88b564b94f6f1424eb9da01300cbe067d4d6fecc332438ef2323c226759360c35a560f2a841dbb3da1de6c195effc07dd7a03010f
7
- data.tar.gz: 9c577e2c7b9fa4074468475df197cfb803bfecc346aaeaa9a77b7f6e48ea0a0739c869741f5869ab6dc1e6c4b4366dd6de6ff2defc6c0a60a9c9bf572f2d685e
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', 94)
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
- 2, 3, 48, 49, 53, 58, 77, 50, 64, 2,
24
- 3, 12, 13, 59, 78, 16, 17, 18, 19, 20,
25
- 12, 13, 2, 3, 16, 17, 18, 19, 20, 22,
26
- 23, 2, 3, 12, 13, 22, 23, 16, 17, 18,
27
- 19, 20, 12, 13, 2, 3, 16, 17, 18, 19,
28
- 20, 22, 23, 70, 39, 12, 13, 67, 67, 16,
29
- 17, 18, 19, 20, 12, 13, 39, 79, 16, 17,
30
- 18, 19, 20, 71, 42, 39, 12, 13, 41, 36,
31
- 16, 17, 18, 19, 20, 12, 13, 39, 61, 16,
32
- 17, 18, 19, 20, nil, nil, 39, 12, 13, nil,
33
- nil, 16, 17, 18, 19, 20, 12, 13, 39, nil,
34
- 16, 17, 18, 19, 20, nil, nil, 39, 12, 13,
35
- nil, nil, 16, 17, 18, 19, 20, 12, 13, 39,
36
- nil, 16, 17, 18, 19, 20, nil, nil, 39, 12,
37
- 13, nil, nil, 16, 17, 18, 19, 20, 12, 13,
38
- 39, nil, 16, 17, 18, 19, 20, nil, nil, 39,
39
- 12, 13, nil, nil, 16, 17, 18, 19, 20, 12,
40
- 13, 39, 81, 16, 17, 18, 19, 20, 65, nil,
41
- 78, 12, 13, 72, nil, 16, 17, 18, 19, 20,
42
- 32, 33, 34, 35, nil, 32, 33, 34, 35, 28,
43
- nil, nil, 27, 29, 30, 22, 23, nil, 31, 45,
44
- 32, 33, 34, 35, 28, nil, 46, 27, 29, 30,
45
- 46, nil, nil, 31, nil, 32, 33, 34, 35, 32,
46
- 33, 34, 35, 16, 17, 18, 19, 16, 17, 18,
47
- 19, 32, 33, 34, 35, 32, 33, 34, 35, 32,
48
- 33, 34, 35, 21, nil, 22, 23, 16, 17, 18,
49
- 19, 16, 17, 18, 19, 32, 33, 34, 35, 16,
50
- 17, 18, 19, 16, 17, 18, 19, 32, 33, 34,
51
- 35, 32, 33, 34, 35, 32, 33, 34, 35, 32,
52
- 33, 34, 35, 32, 33, 34, 35 ]
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, 28, 28, 31, 36, 68, 28, 50, 23,
56
- 23, 0, 0, 36, 68, 0, 0, 0, 0, 0,
57
- 23, 23, 2, 2, 23, 23, 23, 23, 23, 44,
58
- 44, 3, 3, 2, 2, 24, 24, 2, 2, 2,
59
- 2, 2, 3, 3, 22, 22, 3, 3, 3, 3,
60
- 3, 43, 43, 58, 35, 22, 22, 52, 63, 22,
61
- 22, 22, 22, 22, 35, 35, 12, 71, 35, 35,
62
- 35, 35, 35, 61, 21, 13, 12, 12, 20, 11,
63
- 12, 12, 12, 12, 12, 13, 13, 39, 41, 13,
64
- 13, 13, 13, 13, nil, nil, 34, 39, 39, nil,
65
- nil, 39, 39, 39, 39, 39, 34, 34, 65, nil,
66
- 34, 34, 34, 34, 34, nil, nil, 48, 65, 65,
67
- nil, nil, 65, 65, 65, 65, 65, 48, 48, 72,
68
- nil, 48, 48, 48, 48, 48, nil, nil, 29, 72,
69
- 72, nil, nil, 72, 72, 72, 72, 72, 29, 29,
70
- 32, nil, 29, 29, 29, 29, 29, nil, nil, 27,
71
- 32, 32, nil, nil, 32, 32, 32, 32, 32, 27,
72
- 27, 33, 74, 27, 27, 27, 27, 27, 51, nil,
73
- 74, 33, 33, 62, nil, 33, 33, 33, 33, 33,
74
- 51, 51, 51, 51, nil, 62, 62, 62, 62, 10,
75
- nil, nil, 10, 10, 10, 25, 25, nil, 10, 25,
76
- 10, 10, 10, 10, 26, nil, 26, 26, 26, 26,
77
- 60, nil, nil, 26, nil, 26, 26, 26, 26, 60,
78
- 60, 60, 60, 67, 67, 67, 67, 78, 78, 78,
79
- 78, 40, 40, 40, 40, 37, 37, 37, 37, 47,
80
- 47, 47, 47, 1, nil, 1, 1, 49, 49, 49,
81
- 49, 64, 64, 64, 64, 75, 75, 75, 75, 30,
82
- 30, 30, 30, 53, 53, 53, 53, 54, 54, 54,
83
- 54, 55, 55, 55, 55, 56, 56, 56, 56, 57,
84
- 57, 57, 57, 80, 80, 80, 80 ]
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, 253, 18, 27, nil, nil, nil, nil, nil, nil,
88
- 195, 68, 61, 70, nil, nil, nil, nil, nil, nil,
89
- 54, 74, 40, 5, 33, 203, 210, 154, -6, 133,
90
- 250, -1, 145, 166, 91, 49, 1, 230, nil, 82,
91
- 226, 65, nil, 49, 27, nil, nil, 234, 112, 238,
92
- 3, 175, 47, 254, 262, 266, 270, 274, 41, nil,
93
- 214, 49, 180, 48, 242, 103, nil, 214, 0, nil,
94
- nil, 44, 124, nil, 166, 250, nil, nil, 218, nil,
95
- 278, nil, nil ]
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
- -41, -41, -41, -41, -5, -6, -7, -8, -9, -10,
99
- -41, -31, -41, -41, -30, -33, -34, -35, -36, -37,
100
- -38, -41, -41, -41, -3, -41, -41, -41, -41, -41,
101
- -41, -41, -41, -41, -41, -41, -41, -28, -31, -41,
102
- -29, -41, 83, -1, -2, -4, -32, -11, -41, -41,
103
- -41, -41, -16, -41, -24, -25, -26, -27, -41, -19,
104
- -41, -39, -41, -16, -41, -41, -15, -41, -41, -22,
105
- -18, -41, -41, -14, -41, -13, -17, -21, -41, -40,
106
- -12, -20, -23 ]
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
- 26, 66, nil, nil, 52, 68, nil, nil, nil, 37,
110
- 40, 1, 73, 24, 25, nil, 74, 11, nil, 11,
111
- 11, nil, nil, 63, 47, nil, 51, 69, nil, 54,
112
- 55, 56, 57, 43, 44, nil, 60, nil, 69, 11,
113
- 11, 76, nil, nil, nil, 62, nil, nil, nil, nil,
114
- nil, nil, 82, nil, nil, nil, nil, nil, nil, nil,
115
- nil, nil, 75, nil, nil, nil, nil, nil, nil, 80 ]
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
- 8, 10, nil, nil, 9, 12, nil, nil, nil, 8,
119
- 8, 1, 10, 1, 1, nil, 12, 11, nil, 11,
120
- 11, nil, nil, 9, 8, nil, 8, 9, nil, 8,
121
- 8, 8, 8, 1, 1, nil, 8, nil, 9, 11,
122
- 11, 9, nil, nil, nil, 8, nil, nil, nil, nil,
123
- nil, nil, 9, nil, nil, nil, nil, nil, nil, nil,
124
- nil, nil, 8, nil, nil, nil, nil, nil, nil, 8 ]
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, 11, nil, nil, nil, nil, nil, nil, -3, -26,
128
- -51, 17, -48, nil ]
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, 4, 5, 6, 7, 8, 9, 10, 14,
132
- nil, 38, nil, 15 ]
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
- 1, 27, :_reduce_none,
143
- 1, 27, :_reduce_none,
144
- 1, 27, :_reduce_none,
145
- 1, 27, :_reduce_none,
146
- 3, 28, :_reduce_11,
147
- 6, 29, :_reduce_none,
148
- 5, 29, :_reduce_none,
149
- 5, 30, :_reduce_14,
150
- 4, 30, :_reduce_15,
151
- 0, 35, :_reduce_none,
152
- 2, 35, :_reduce_none,
153
- 4, 31, :_reduce_18,
154
- 3, 31, :_reduce_19,
155
- 6, 32, :_reduce_20,
156
- 5, 32, :_reduce_21,
157
- 1, 37, :_reduce_22,
158
- 3, 37, :_reduce_23,
159
- 3, 33, :_reduce_24,
160
- 3, 33, :_reduce_25,
161
- 3, 33, :_reduce_26,
162
- 3, 33, :_reduce_27,
163
- 2, 33, :_reduce_28,
164
- 2, 33, :_reduce_29,
165
- 1, 33, :_reduce_none,
166
- 1, 33, :_reduce_none,
167
- 3, 33, :_reduce_none,
168
- 1, 34, :_reduce_none,
169
- 1, 38, :_reduce_34,
170
- 1, 38, :_reduce_35,
171
- 1, 38, :_reduce_36,
172
- 1, 38, :_reduce_37,
173
- 1, 36, :_reduce_38,
174
- 3, 36, :_reduce_39,
175
- 5, 36, :_reduce_40 ]
176
-
177
- racc_reduce_n = 41
178
-
179
- racc_shift_n = 83
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
- module_eval(<<'.,.,', 'parser.y', 6)
276
- def _reduce_1(val, _values, result)
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
- module_eval(<<'.,.,', 'parser.y', 7)
283
- def _reduce_2(val, _values, result)
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', 8)
290
- def _reduce_3(val, _values, result)
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
- # reduce 9 omitted
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
- module_eval(<<'.,.,', 'parser.y', 22)
311
- def _reduce_11(val, _values, result)
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 12 omitted
338
+ # reduce 16 omitted
318
339
 
319
- # reduce 13 omitted
340
+ # reduce 17 omitted
320
341
 
321
- module_eval(<<'.,.,', 'parser.y', 31)
322
- def _reduce_14(val, _values, result)
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', 32)
329
- def _reduce_15(val, _values, result)
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 16 omitted
356
+ # reduce 20 omitted
336
357
 
337
- # reduce 17 omitted
358
+ # reduce 21 omitted
338
359
 
339
- module_eval(<<'.,.,', 'parser.y', 41)
340
- def _reduce_18(val, _values, result)
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', 42)
347
- def _reduce_19(val, _values, result)
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', 46)
354
- def _reduce_20(val, _values, result)
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', 47)
361
- def _reduce_21(val, _values, result)
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', 51)
368
- def _reduce_22(val, _values, result)
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', 52)
375
- def _reduce_23(val, _values, result)
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', 58)
382
- def _reduce_24(val, _values, result)
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', 59)
389
- def _reduce_25(val, _values, result)
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', 60)
396
- def _reduce_26(val, _values, result)
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', 61)
403
- def _reduce_27(val, _values, result)
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', 62)
410
- def _reduce_28(val, _values, result)
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', 63)
417
- def _reduce_29(val, _values, result)
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 30 omitted
444
+ # reduce 34 omitted
424
445
 
425
- # reduce 31 omitted
446
+ # reduce 35 omitted
426
447
 
427
- # reduce 32 omitted
448
+ # reduce 36 omitted
428
449
 
429
- # reduce 33 omitted
450
+ # reduce 37 omitted
430
451
 
431
- module_eval(<<'.,.,', 'parser.y', 74)
432
- def _reduce_34(val, _values, result)
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', 75)
439
- def _reduce_35(val, _values, result)
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', 76)
446
- def _reduce_36(val, _values, result)
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', 77)
453
- def _reduce_37(val, _values, result)
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', 81)
460
- def _reduce_38(val, _values, result)
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', 82)
467
- def _reduce_39(val, _values, result)
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', 83)
474
- def _reduce_40(val, _values, result)
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
@@ -12,14 +12,6 @@ macro
12
12
 
13
13
  NAME [A-z_]([A-z0-9_]*)
14
14
 
15
- IS is
16
- NOT not
17
- NULLX null
18
- IN in
19
- OR or
20
- AND and
21
- BETWEEN between
22
-
23
15
  YEARS \d+
24
16
  MONTHS \d{2}
25
17
  DAYS \d{2}
@@ -3,13 +3,24 @@ class SQLSearch::Parser
3
3
  rule
4
4
  /* search conditions */
5
5
 
6
- search_condition:
7
- search_condition OR search_condition { result = Conditions::Or.new(:left => val[0], :right => val[2]) }
8
- |search_condition AND search_condition { result = Conditions::And.new(:left => val[0], :right => val[2]) }
9
- |NOT search_condition { result = Conditions::Not.new(:value => val[1]) }
10
- |LPAREN search_condition RPAREN
11
- |predicate
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
@@ -1,3 +1,3 @@
1
1
  module SQLSearch
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -34,7 +34,7 @@ module SQLSearch
34
34
  end
35
35
 
36
36
  def to_s
37
- "NOT(#{value})"
37
+ "NOT (#{value})"
38
38
  end
39
39
  end
40
40
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql_search_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antoine Niek