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 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