sql-parser2 0.0.3

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 06a9cb5ad0df400571804c27cd88293effa7dd07
4
+ data.tar.gz: 64a2c37b254d69ee03d0db9a685ab4c09d441f7b
5
+ SHA512:
6
+ metadata.gz: 1e38306ce1c81f0efa2052b6d3e482903865ab62c69247ed5a571aca1937dffff901058806ec9e81036723ec4d36102560dd336551a1211469cd61d042fe9b21
7
+ data.tar.gz: 5b6cfb91828c02ebfd0af23b4b5985f8f56e5c78ac46e56bd4e7565b6b3d1b7adb03c791a4da70e0f30e660d6bd354e17ea0c1d24bd8b6de48d26b86e2033588
@@ -0,0 +1,13 @@
1
+ module SQLParser
2
+
3
+ require 'strscan'
4
+ require 'date'
5
+
6
+ require 'racc/parser'
7
+
8
+ require_relative 'sql-parser/version'
9
+ require_relative 'sql-parser/statement'
10
+ require_relative 'sql-parser/sql_visitor'
11
+ require_relative 'sql-parser/parser.racc.rb'
12
+
13
+ end
@@ -0,0 +1,350 @@
1
+ class SQLParser::Parser
2
+
3
+ rule
4
+ # dynamic sql
5
+
6
+ direct_sql_statement
7
+ : direct_sql_data_statement
8
+
9
+ direct_sql_data_statement
10
+ : direct_select_statement_multiple_rows
11
+ | insert_specification
12
+ | update_specification
13
+ | delete_specification
14
+
15
+ direct_select_statement_multiple_rows
16
+ : query_expression order_by_clause { result = SQLParser::Statement::DirectSelect.new(val[0], val[1]) }
17
+
18
+ # module contents
19
+ order_by_clause
20
+ : # no action
21
+ | ORDER BY sort_specification_list { result = SQLParser::Statement::OrderBy.new(val[2]) }
22
+
23
+ sort_specification_list
24
+ : sort_specification_list comma sort_specification { result = Array(val[0]) + Array(val[2]) }
25
+ | sort_specification
26
+
27
+ sort_specification
28
+ : sort_key ordering_specification { result = val[1].new(val[0]) }
29
+
30
+ sort_key
31
+ : column_name
32
+ | unsigned_integer { result = SQLParser::Statement::Integer.new(val[0]) }
33
+
34
+ ordering_specification
35
+ : { result = SQLParser::Statement::Ascending } # default
36
+ | ASC { result = SQLParser::Statement::Ascending }
37
+ | DESC { result = SQLParser::Statement::Descending }
38
+
39
+ # queries
40
+ subquery
41
+ # FIXME: shortcut
42
+ : left_paren query_expression right_paren { result = SQLParser::Statement::Subquery.new(val[1]) }
43
+
44
+ query_expression
45
+ : query_specification
46
+
47
+ insert_specification
48
+ : INSERT INTO table_reference value_list { result = SQLParser::Statement::Insert.new(val[2], nil, val[3]) }
49
+ | INSERT INTO table_reference column_list value_list { result = SQLParser::Statement::Insert.new(val[2], val[3], val[4]) }
50
+
51
+ update_specification
52
+ : UPDATE table_reference SET update_column_list where_clause { result = SQLParser::Statement::Update.new(val[1], val[3], val[4]) }
53
+
54
+ update_column
55
+ : column_name equals_operator value_expression { result = SQLParser::Statement::UpdateColumn.new(val[0], val[2]) }
56
+
57
+ update_column_sublist
58
+ : update_column comma update_column_sublist { result = Array(val[0]) + Array(val[2]) }
59
+ | update_column
60
+
61
+ update_column_list
62
+ : update_column_sublist { result = SQLParser::Statement::UpdateColumnList.new(val[0]) }
63
+
64
+ delete_specification
65
+ : DELETE from_clause where_clause { result = SQLParser::Statement::Delete.new(val[1], val[2]) }
66
+
67
+ column_list
68
+ : left_paren in_column_list right_paren { result = SQLParser::Statement::InColumnList.new(val[1]) }
69
+
70
+ in_column_list
71
+ : value_expression comma in_column_list { result = Array(val[0]) + Array(val[2]) }
72
+ | value_expression
73
+
74
+ value_list
75
+ : VALUES left_paren in_value_list right_paren { result = SQLParser::Statement::InValueList.new(val[2]) }
76
+
77
+ query_specification
78
+ : SELECT select_list table_expression { result = SQLParser::Statement::Select.new(val[1], val[2]) }
79
+ | SELECT select_list { result = SQLParser::Statement::Select.new(val[1]) }
80
+
81
+ select_list
82
+ : asterisk { result = SQLParser::Statement::All.new }
83
+ | select_sublist { result = SQLParser::Statement::SelectList.new(val[0]) }
84
+
85
+ select_sublist
86
+ : derived_column comma select_sublist { result = Array(val[0]) + Array(val[2]) }
87
+ | derived_column
88
+
89
+ derived_column
90
+ : value_expression AS column_name { result = SQLParser::Statement::As.new(val[0], val[2]) }
91
+ | value_expression column_name { result = SQLParser::Statement::As.new(val[0], val[1]) }
92
+ | value_expression
93
+
94
+ table_expression
95
+ : from_clause where_clause group_by_clause having_clause { result = SQLParser::Statement::TableExpression.new(val[0], val[1], val[2], val[3]) }
96
+
97
+ from_clause
98
+ : FROM table_reference { result = SQLParser::Statement::FromClause.new(val[1]) }
99
+
100
+ table_reference
101
+ : table_name AS column_name { result = SQLParser::Statement::As.new(val[0], val[2]) }
102
+ | table_name column_name { result = SQLParser::Statement::As.new(val[0], val[1]) }
103
+ | table_name
104
+ | joined_table
105
+
106
+ table_subquery
107
+ : subquery
108
+
109
+ joined_table
110
+ : cross_join
111
+ | qualified_join
112
+
113
+ cross_join
114
+ : table_reference comma table_name { result = SQLParser::Statement::CrossJoin.new(val[0], val[2]) }
115
+ | table_reference CROSS JOIN table_name { result = SQLParser::Statement::CrossJoin.new(val[0], val[3]) }
116
+
117
+ qualified_join
118
+ : table_reference join_type JOIN table_reference join_specification { result = val[1].new(val[0], val[3], val[4]) }
119
+
120
+ join_type
121
+ : INNER { result = SQLParser::Statement::InnerJoin }
122
+ | LEFT OUTER { result = SQLParser::Statement::LeftOuterJoin }
123
+ | LEFT { result = SQLParser::Statement::LeftJoin }
124
+ | RIGHT OUTER { result = SQLParser::Statement::RightOuterJoin }
125
+ | RIGHT { result = SQLParser::Statement::RightJoin }
126
+ | FULL { result = SQLParser::Statement::FullJoin }
127
+ | FULL OUTER { result = SQLParser::Statement::FullOuterJoin }
128
+
129
+ join_specification
130
+ : join_condition
131
+ | named_columns_join
132
+
133
+ join_condition
134
+ : ON search_condition { result = SQLParser::Statement::On.new(val[1]) }
135
+
136
+ named_columns_join
137
+ : USING left_paren join_column_list right_paren { result = SQLParser::Statement::Using.new(val[2]) }
138
+
139
+ join_column_list
140
+ : column_name_list
141
+
142
+ where_clause
143
+ : # no action
144
+ | WHERE search_condition { result = SQLParser::Statement::WhereClause.new(val[1]) }
145
+
146
+ group_by_clause
147
+ : # no action
148
+ | GROUP BY grouping_column_reference_list { result = SQLParser::Statement::GroupByClause.new(val[2]) }
149
+
150
+ grouping_column_reference_list
151
+ : grouping_column_reference_list comma grouping_column_reference { result = Array(val[0]) + Array(val[2]) }
152
+ | grouping_column_reference
153
+
154
+ grouping_column_reference
155
+ : column_reference
156
+
157
+ having_clause
158
+ : # no action
159
+ | HAVING search_condition { result = SQLParser::Statement::HavingClause.new(val[1]) }
160
+
161
+ # query expression components
162
+ row_subquery
163
+ : subquery
164
+
165
+ between_predicate
166
+ : row_value_constructor NOT BETWEEN row_value_constructor AND row_value_constructor { result = SQLParser::Statement::Not.new(SQLParser::Statement::Between.new(val[0], val[3], val[5])) }
167
+ | row_value_constructor BETWEEN row_value_constructor AND row_value_constructor { result = SQLParser::Statement::Between.new(val[0], val[2], val[4]) }
168
+
169
+ in_predicate
170
+ : row_value_constructor NOT IN in_predicate_value { result = SQLParser::Statement::Not.new(SQLParser::Statement::In.new(val[0], val[3])) }
171
+ | row_value_constructor IN in_predicate_value { result = SQLParser::Statement::In.new(val[0], val[2]) }
172
+
173
+ in_predicate_value
174
+ : table_subquery
175
+ | left_paren in_value_list right_paren { result = SQLParser::Statement::InValueList.new(val[1]) }
176
+
177
+ in_value_list
178
+ : value_expression comma in_value_list { result = Array(val[0]) + Array(val[2]) }
179
+ | value_expression
180
+
181
+ like_predicate
182
+ # FIXME: the SQL-92 grammar indicates these should be
183
+ # character_value_expression nodes, but changing them causes reduce/reduce
184
+ # conflicts.
185
+ : row_value_constructor NOT LIKE row_value_constructor { result = SQLParser::Statement::Not.new(SQLParser::Statement::Like.new(val[0], val[3])) }
186
+ | row_value_constructor LIKE row_value_constructor { result = SQLParser::Statement::Like.new(val[0], val[2]) }
187
+
188
+ null_predicate
189
+ : row_value_constructor IS NOT NULL { result = SQLParser::Statement::Not.new(SQLParser::Statement::Is.new(val[0], SQLParser::Statement::Null.new)) }
190
+ | row_value_constructor IS NULL { result = SQLParser::Statement::Is.new(val[0], SQLParser::Statement::Null.new) }
191
+
192
+ exists_predicate
193
+ : EXISTS table_subquery { result = SQLParser::Statement::Exists.new(val[1]) }
194
+
195
+ # constraints
196
+ table_name
197
+ : identifier { result = SQLParser::Statement::Table.new(val[0]) }
198
+
199
+ column_name_list
200
+ : column_name_list comma column_name { result = Array(val[0]) + Array(val[2]) }
201
+ | column_name
202
+
203
+ # search condition
204
+ search_condition
205
+ : boolean_term
206
+ | search_condition OR boolean_term { result = SQLParser::Statement::Or.new(val[0], val[2]) }
207
+
208
+ boolean_term
209
+ : boolean_factor
210
+ | boolean_term AND boolean_factor { result = SQLParser::Statement::And.new(val[0], val[2]) }
211
+
212
+ boolean_factor:
213
+ : NOT boolean_test { result = SQLParser::Statement::Not.new(val[1]) }
214
+ | boolean_test
215
+
216
+ boolean_test
217
+ : boolean_primary
218
+
219
+ boolean_primary
220
+ : predicate
221
+ | left_paren search_condition right_paren { result = val[1] }
222
+
223
+ predicate
224
+ : comparison_predicate
225
+ | between_predicate
226
+ | in_predicate
227
+ | like_predicate
228
+ | null_predicate
229
+ | exists_predicate
230
+
231
+ comparison_predicate
232
+ : row_value_constructor equals_operator row_value_constructor { result = SQLParser::Statement::Equals.new(val[0], val[2]) }
233
+ | row_value_constructor not_equals_operator row_value_constructor { result = SQLParser::Statement::Not.new(SQLParser::Statement::Equals.new(val[0], val[2])) }
234
+ | row_value_constructor less_than_operator row_value_constructor { result = SQLParser::Statement::Less.new(val[0], val[2]) }
235
+ | row_value_constructor greater_than_operator row_value_constructor { result = SQLParser::Statement::Greater.new(val[0], val[2]) }
236
+ | row_value_constructor less_than_or_equals_operator row_value_constructor { result = SQLParser::Statement::LessOrEquals.new(val[0], val[2]) }
237
+ | row_value_constructor greater_than_or_equals_operator row_value_constructor { result = SQLParser::Statement::GreaterOrEquals.new(val[0], val[2]) }
238
+
239
+ row_value_constructor
240
+ : row_value_constructor_element
241
+ | row_subquery
242
+
243
+ row_value_constructor_element
244
+ : value_expression
245
+
246
+ value_expression
247
+ : numeric_value_expression
248
+ | general_literal
249
+
250
+ numeric_value_expression
251
+ : term plus_sign numeric_value_expression { result = SQLParser::Statement::Add.new(val[0], val[2]) }
252
+ | term minus_sign numeric_value_expression { result = SQLParser::Statement::Subtract.new(val[0], val[2]) }
253
+ | term
254
+
255
+ term
256
+ : factor asterisk term { result = SQLParser::Statement::Multiply.new(val[0], val[2]) }
257
+ | factor solidus term { result = SQLParser::Statement::Divide.new(val[0], val[2]) }
258
+ | factor
259
+
260
+ factor
261
+ : sign value_expression_primary { result = val[0].new(val[1]) }
262
+ | value_expression_primary
263
+
264
+ value_expression_primary
265
+ : unsigned_value_specification
266
+ | column_reference
267
+ | set_function_specification
268
+ | left_paren value_expression right_paren { result = val[1] }
269
+
270
+ unsigned_value_specification
271
+ : unsigned_literal
272
+ | general_value_specification
273
+
274
+ unsigned_literal
275
+ : unsigned_numeric_literal
276
+ | general_literal
277
+
278
+ general_value_specification
279
+ : CURRENT_USER { result = SQLParser::Statement::CurrentUser.new }
280
+
281
+ column_reference
282
+ : qualifier period column_name { result = SQLParser::Statement::QualifiedColumn.new(val[0], val[2]) }
283
+ | column_name
284
+
285
+ qualifier
286
+ : table_name
287
+
288
+ set_function_specification
289
+ : COUNT left_paren asterisk right_paren { result = SQLParser::Statement::Count.new(SQLParser::Statement::All.new) }
290
+ | general_set_function
291
+
292
+ general_set_function
293
+ : COUNT left_paren value_expression right_paren { result = SQLParser::Statement::Count.new(val[2]) }
294
+ | AVG left_paren value_expression right_paren { result = SQLParser::Statement::Average.new(val[2]) }
295
+ | MAX left_paren value_expression right_paren { result = SQLParser::Statement::Maximum.new(val[2]) }
296
+ | MIN left_paren value_expression right_paren { result = SQLParser::Statement::Minimum.new(val[2]) }
297
+ | SUM left_paren value_expression right_paren { result = SQLParser::Statement::Sum.new(val[2]) }
298
+
299
+ # literal numbers, strings, dates and times
300
+ unsigned_numeric_literal
301
+ : exact_numeric_literal
302
+ | approximate_numeric_literal
303
+
304
+ exact_numeric_literal
305
+ : unsigned_integer period unsigned_integer { result = SQLParser::Statement::Float.new("#{val[0]}.#{val[2]}".to_f) }
306
+ | unsigned_integer period { result = SQLParser::Statement::Float.new(val[0]) }
307
+ | period unsigned_integer { result = SQLParser::Statement::Float.new("0.#{val[1]}".to_f) }
308
+ | unsigned_integer { result = SQLParser::Statement::Integer.new(val[0]) }
309
+
310
+ approximate_numeric_literal
311
+ : mantissa E exponent { result = SQLParser::Statement::ApproximateFloat.new(val[0], val[2]) }
312
+
313
+ mantissa
314
+ : exact_numeric_literal
315
+
316
+ exponent
317
+ : signed_integer
318
+
319
+ signed_integer
320
+ : sign unsigned_integer { result = val[0].new(SQLParser::Statement::Integer.new(val[1])) }
321
+ | unsigned_integer { result = SQLParser::Statement::Integer.new(val[0]) }
322
+
323
+ sign
324
+ : plus_sign { result = SQLParser::Statement::UnaryPlus }
325
+ | minus_sign { result = SQLParser::Statement::UnaryMinus }
326
+
327
+ # sql module
328
+ column_name
329
+ : identifier { result = SQLParser::Statement::Column.new(val[0]) }
330
+
331
+ # literals
332
+ general_literal
333
+ : quote character_string_literal quote { result = SQLParser::Statement::String.new(val[1]) }
334
+ | quote quote { result = SQLParser::Statement::String.new('') }
335
+ | datetime_literal
336
+
337
+ datetime_literal
338
+ : date_literal
339
+
340
+ date_literal
341
+ : DATE date_string { result = SQLParser::Statement::Date.new(val[1]) }
342
+
343
+ ---- header ----
344
+ require File.dirname(__FILE__) + '/parser.rex.rb'
345
+
346
+ ---- inner ----
347
+
348
+ def self.parse(sql)
349
+ new.scan_str(sql)
350
+ end
@@ -0,0 +1,1560 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.12
4
+ # from Racc grammer file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+ require File.dirname(__FILE__) + '/parser.rex.rb'
10
+
11
+ module SQLParser
12
+ class Parser < Racc::Parser
13
+
14
+ module_eval(<<'...end parser.racc/module_eval...', 'parser.racc', 347)
15
+
16
+ def self.parse(sql)
17
+ new.scan_str(sql)
18
+ end
19
+ ...end parser.racc/module_eval...
20
+ ##### State transition tables begin ###
21
+
22
+ racc_action_table = [
23
+ 56, 89, 110, 40, 110, 69, 222, 9, 198, 10,
24
+ 76, 122, 11, 85, 12, 233, 224, 56, 225, 226,
25
+ 227, 234, 70, 121, 72, 73, 161, 74, 75, 219,
26
+ 220, 165, 78, 90, 56, 78, 30, 227, 78, 183,
27
+ 78, 169, 170, 59, 60, 120, 44, 57, 48, 50,
28
+ 51, 52, 53, 30, 61, 56, 64, 166, 40, 167,
29
+ 59, 60, 80, 44, 57, 48, 50, 51, 52, 53,
30
+ 30, 61, 114, 64, 59, 60, 22, 59, 60, 174,
31
+ 44, 57, 48, 50, 51, 52, 53, 80, 61, 56,
32
+ 64, 30, 126, 87, 88, 176, -131, 177, 59, 60,
33
+ 22, 44, 57, 48, 50, 51, 52, 53, 22, 61,
34
+ 56, 64, 78, 40, 104, 103, 183, 133, 78, 195,
35
+ 198, 105, 12, 201, 130, 30, -131, -131, -131, 202,
36
+ 203, 56, 59, 60, 40, 44, 57, 48, 50, 51,
37
+ 52, 53, 204, 61, 26, 64, 30, 205, 206, 207,
38
+ 208, 124, 210, 59, 60, 211, 44, 57, 48, 50,
39
+ 51, 52, 53, 102, 61, 56, 64, 30, 227, 101,
40
+ 78, 69, 100, 221, 59, 60, -150, 44, 57, 48,
41
+ 50, 51, 52, 53, 153, 61, 56, 64, 70, 40,
42
+ 72, 73, 99, 74, 75, 78, 98, 229, 12, 97,
43
+ 78, 30, 96, 56, 95, 94, 227, 153, 59, 60,
44
+ -87, 44, 57, 48, 50, 51, 52, 53, 84, 61,
45
+ 56, 64, 30, 40, 12, 24, 243, 244, 22, 59,
46
+ 60, 246, 44, 57, 48, 50, 51, 52, 53, 30,
47
+ 61, 56, 64, 247, 40, 80, 59, 60, 249, 44,
48
+ 57, 48, 50, 51, 52, 53, 30, 61, 123, 64,
49
+ 22, 229, 66, 59, 60, 65, 44, 57, 48, 50,
50
+ 51, 52, 53, 253, 61, 56, 64, 30, 126, 24,
51
+ 255, 22, 30, 16, 59, 60, 183, 44, 57, 48,
52
+ 50, 51, 52, 53, 78, 61, 56, 64, 264, 40,
53
+ 15, 266, 183, 133, 267, 268, 269, 13, 30, 78,
54
+ 130, 30, nil, nil, nil, nil, nil, nil, 59, 60,
55
+ nil, 44, 57, 48, 50, 51, 52, 53, nil, 61,
56
+ 56, 64, 30, 126, nil, nil, nil, nil, nil, 59,
57
+ 60, nil, 44, 57, 48, 50, 51, 52, 53, nil,
58
+ 61, 56, 64, nil, 227, nil, nil, nil, 133, nil,
59
+ nil, nil, nil, nil, nil, 130, 30, nil, 56, nil,
60
+ nil, 40, nil, 59, 60, nil, 44, 57, 48, 50,
61
+ 51, 52, 53, nil, 61, 56, 64, 30, 227, nil,
62
+ nil, nil, nil, nil, 59, 60, nil, 44, 57, 48,
63
+ 50, 51, 52, 53, 30, 61, 56, 64, nil, 40,
64
+ nil, 59, 60, nil, 44, 57, 48, 50, 51, 52,
65
+ 53, 30, 61, 56, 64, nil, 227, nil, 59, 60,
66
+ nil, 44, 57, 48, 50, 51, 52, 53, nil, 61,
67
+ nil, 64, 30, nil, nil, nil, nil, nil, 56, 59,
68
+ 60, 126, 44, 57, 48, 50, 51, 52, 53, 30,
69
+ 61, nil, 64, nil, nil, 56, 59, 60, 40, 44,
70
+ 57, 48, 50, 51, 52, 53, 133, 61, nil, 64,
71
+ nil, nil, 56, 130, 30, 40, nil, nil, nil, nil,
72
+ nil, 59, 60, nil, 44, 57, 48, 50, 51, 52,
73
+ 53, 30, 61, 56, 64, nil, 227, nil, nil, nil,
74
+ nil, 44, 57, 48, 50, 51, 52, 53, 30, 61,
75
+ 56, 64, nil, 227, nil, 59, 60, nil, 44, 57,
76
+ 48, 50, 51, 52, 53, nil, 61, 56, 64, 30,
77
+ 227, nil, nil, nil, nil, nil, 59, 60, nil, 44,
78
+ 57, 48, 50, 51, 52, 53, 30, 61, 56, 64,
79
+ nil, 40, nil, 59, 60, nil, 44, 57, 48, 50,
80
+ 51, 52, 53, 30, 61, 56, 64, nil, 227, nil,
81
+ 59, 60, nil, 44, 57, 48, 50, 51, 52, 53,
82
+ nil, 61, nil, 64, 30, nil, nil, nil, nil, nil,
83
+ 56, 59, 60, 126, 44, 57, 48, 50, 51, 52,
84
+ 53, 30, 61, nil, 64, nil, nil, 56, 59, 60,
85
+ 40, 44, 57, 48, 50, 51, 52, 53, 133, 61,
86
+ 155, 64, nil, nil, 56, 130, 30, 40, nil, nil,
87
+ nil, nil, nil, 59, 60, nil, 44, 57, 48, 50,
88
+ 51, 52, 53, 30, 61, 56, 64, nil, 40, nil,
89
+ 59, 60, nil, 44, 57, 48, 50, 51, 52, 53,
90
+ 30, 61, 56, 64, nil, 40, nil, 59, 60, nil,
91
+ 44, 57, 48, 50, 51, 52, 53, nil, 61, 56,
92
+ 64, 30, 40, nil, nil, nil, nil, nil, 59, 60,
93
+ nil, 44, 57, 48, 50, 51, 52, 53, 30, 61,
94
+ nil, 64, nil, nil, 56, 59, 60, 126, 44, 57,
95
+ 48, 50, 51, 52, 53, 30, 61, nil, 64, nil,
96
+ nil, 56, 59, 60, 40, 44, 57, 48, 50, 51,
97
+ 52, 53, nil, 61, nil, 64, nil, nil, 56, 130,
98
+ 30, 40, nil, nil, nil, nil, nil, 59, 60, nil,
99
+ 44, 57, 48, 50, 51, 52, 53, 30, 61, nil,
100
+ 64, nil, nil, 56, 59, 60, 227, 44, 57, 48,
101
+ 50, 51, 52, 53, 30, 61, nil, 64, nil, nil,
102
+ nil, 59, 60, nil, 44, 57, 48, 50, 51, 52,
103
+ 53, nil, 61, 56, 64, nil, 126, nil, nil, 30,
104
+ nil, nil, nil, nil, nil, 12, 59, 60, nil, 44,
105
+ 57, 48, 50, 51, 52, 53, nil, 61, nil, 64,
106
+ nil, 133, nil, nil, nil, nil, nil, nil, 130, 30,
107
+ nil, 189, nil, nil, nil, nil, 59, 60, nil, 44,
108
+ 57, 48, 50, 51, 52, 53, nil, 61, 69, 64,
109
+ 184, 185, nil, 186, 187, 188, nil, 68, nil, nil,
110
+ 190, 191, 192, 193, 194, 70, nil, 72, 73, 69,
111
+ 74, 75, nil, 113, nil, nil, nil, nil, nil, nil,
112
+ nil, 114, nil, nil, nil, nil, 70, nil, 72, 73,
113
+ nil, 74, 75 ]
114
+
115
+ racc_action_check = [
116
+ 88, 34, 167, 88, 66, 179, 181, 0, 223, 0,
117
+ 18, 73, 0, 29, 0, 188, 184, 264, 184, 184,
118
+ 264, 188, 179, 71, 179, 179, 100, 179, 179, 179,
119
+ 179, 102, 18, 34, 253, 29, 88, 253, 167, 181,
120
+ 66, 108, 108, 88, 88, 70, 88, 88, 88, 88,
121
+ 88, 88, 88, 264, 88, 247, 88, 103, 247, 106,
122
+ 264, 264, 83, 264, 264, 264, 264, 264, 264, 264,
123
+ 253, 264, 112, 264, 102, 102, 69, 253, 253, 114,
124
+ 253, 253, 253, 253, 253, 253, 253, 115, 253, 243,
125
+ 253, 247, 243, 33, 33, 116, 32, 117, 247, 247,
126
+ 120, 247, 247, 247, 247, 247, 247, 247, 121, 247,
127
+ 229, 247, 68, 229, 61, 61, 127, 243, 85, 130,
128
+ 131, 64, 229, 146, 243, 243, 32, 32, 32, 155,
129
+ 156, 12, 243, 243, 12, 243, 243, 243, 243, 243,
130
+ 243, 243, 157, 243, 12, 243, 229, 158, 159, 160,
131
+ 164, 75, 172, 229, 229, 173, 229, 229, 229, 229,
132
+ 229, 229, 229, 58, 229, 226, 229, 12, 226, 57,
133
+ 177, 81, 56, 180, 12, 12, 54, 12, 12, 12,
134
+ 12, 12, 12, 12, 182, 12, 227, 12, 81, 227,
135
+ 81, 81, 53, 81, 81, 76, 52, 186, 227, 51,
136
+ 94, 226, 50, 224, 48, 45, 224, 93, 226, 226,
137
+ 30, 226, 226, 226, 226, 226, 226, 226, 28, 226,
138
+ 87, 226, 227, 87, 195, 25, 200, 201, 24, 227,
139
+ 227, 212, 227, 227, 227, 227, 227, 227, 227, 224,
140
+ 227, 89, 227, 213, 89, 23, 224, 224, 220, 224,
141
+ 224, 224, 224, 224, 224, 224, 87, 224, 74, 224,
142
+ 16, 225, 15, 87, 87, 13, 87, 87, 87, 87,
143
+ 87, 87, 87, 228, 87, 219, 87, 89, 219, 11,
144
+ 233, 10, 244, 9, 89, 89, 248, 89, 89, 89,
145
+ 89, 89, 89, 89, 249, 89, 211, 89, 250, 211,
146
+ 7, 254, 256, 219, 257, 261, 262, 1, 267, 269,
147
+ 219, 219, nil, nil, nil, nil, nil, nil, 219, 219,
148
+ nil, 219, 219, 219, 219, 219, 219, 219, nil, 219,
149
+ 198, 219, 211, 198, nil, nil, nil, nil, nil, 211,
150
+ 211, nil, 211, 211, 211, 211, 211, 211, 211, nil,
151
+ 211, 194, 211, nil, 194, nil, nil, nil, 198, nil,
152
+ nil, nil, nil, nil, nil, 198, 198, nil, 84, nil,
153
+ nil, 84, nil, 198, 198, nil, 198, 198, 198, 198,
154
+ 198, 198, 198, nil, 198, 193, 198, 194, 193, nil,
155
+ nil, nil, nil, nil, 194, 194, nil, 194, 194, 194,
156
+ 194, 194, 194, 194, 84, 194, 90, 194, nil, 90,
157
+ nil, 84, 84, nil, 84, 84, 84, 84, 84, 84,
158
+ 84, 193, 84, 192, 84, nil, 192, nil, 193, 193,
159
+ nil, 193, 193, 193, 193, 193, 193, 193, nil, 193,
160
+ nil, 193, 90, nil, nil, nil, nil, nil, 80, 90,
161
+ 90, 80, 90, 90, 90, 90, 90, 90, 90, 192,
162
+ 90, nil, 90, nil, nil, 35, 192, 192, 35, 192,
163
+ 192, 192, 192, 192, 192, 192, 80, 192, nil, 192,
164
+ nil, nil, 40, 80, 80, 40, nil, nil, nil, nil,
165
+ nil, 80, 80, nil, 80, 80, 80, 80, 80, 80,
166
+ 80, 35, 80, 191, 80, nil, 191, nil, nil, nil,
167
+ nil, 35, 35, 35, 35, 35, 35, 35, 40, 35,
168
+ 190, 35, nil, 190, nil, 40, 40, nil, 40, 40,
169
+ 40, 40, 40, 40, 40, nil, 40, 189, 40, 191,
170
+ 189, nil, nil, nil, nil, nil, 191, 191, nil, 191,
171
+ 191, 191, 191, 191, 191, 191, 190, 191, 113, 191,
172
+ nil, 113, nil, 190, 190, nil, 190, 190, 190, 190,
173
+ 190, 190, 190, 189, 190, 185, 190, nil, 185, nil,
174
+ 189, 189, nil, 189, 189, 189, 189, 189, 189, 189,
175
+ nil, 189, nil, 189, 113, nil, nil, nil, nil, nil,
176
+ 183, 113, 113, 183, 113, 113, 113, 113, 113, 113,
177
+ 113, 185, 113, nil, 113, nil, nil, 95, 185, 185,
178
+ 95, 185, 185, 185, 185, 185, 185, 185, 183, 185,
179
+ 95, 185, nil, nil, 96, 183, 183, 96, nil, nil,
180
+ nil, nil, nil, 183, 183, nil, 183, 183, 183, 183,
181
+ 183, 183, 183, 95, 183, 176, 183, nil, 176, nil,
182
+ 95, 95, nil, 95, 95, 95, 95, 95, 95, 95,
183
+ 96, 95, 174, 95, nil, 174, nil, 96, 96, nil,
184
+ 96, 96, 96, 96, 96, 96, 96, nil, 96, 97,
185
+ 96, 176, 97, nil, nil, nil, nil, nil, 176, 176,
186
+ nil, 176, 176, 176, 176, 176, 176, 176, 174, 176,
187
+ nil, 176, nil, nil, 133, 174, 174, 133, 174, 174,
188
+ 174, 174, 174, 174, 174, 97, 174, nil, 174, nil,
189
+ nil, 98, 97, 97, 98, 97, 97, 97, 97, 97,
190
+ 97, 97, nil, 97, nil, 97, nil, nil, 99, 133,
191
+ 133, 99, nil, nil, nil, nil, nil, 133, 133, nil,
192
+ 133, 133, 133, 133, 133, 133, 133, 98, 133, nil,
193
+ 133, nil, nil, 187, 98, 98, 187, 98, 98, 98,
194
+ 98, 98, 98, 98, 99, 98, nil, 98, nil, nil,
195
+ nil, 99, 99, nil, 99, 99, 99, 99, 99, 99,
196
+ 99, nil, 99, 126, 99, nil, 126, nil, nil, 187,
197
+ nil, nil, nil, nil, nil, 126, 187, 187, nil, 187,
198
+ 187, 187, 187, 187, 187, 187, nil, 187, nil, 187,
199
+ nil, 126, nil, nil, nil, nil, nil, nil, 126, 126,
200
+ nil, 129, nil, nil, nil, nil, 126, 126, nil, 126,
201
+ 126, 126, 126, 126, 126, 126, nil, 126, 17, 126,
202
+ 129, 129, nil, 129, 129, 129, nil, 17, nil, nil,
203
+ 129, 129, 129, 129, 129, 17, nil, 17, 17, 67,
204
+ 17, 17, nil, 67, nil, nil, nil, nil, nil, nil,
205
+ nil, 67, nil, nil, nil, nil, 67, nil, 67, 67,
206
+ nil, 67, 67 ]
207
+
208
+ racc_action_pointer = [
209
+ -3, 307, nil, nil, nil, nil, nil, 298, nil, 272,
210
+ 240, 259, 126, 265, nil, 259, 219, 854, -9, nil,
211
+ nil, nil, nil, 215, 187, 205, nil, nil, 214, -6,
212
+ 158, nil, 78, 45, -17, 460, nil, nil, nil, nil,
213
+ 477, nil, nil, nil, nil, 153, nil, nil, 196, nil,
214
+ 194, 191, 188, 184, 118, nil, 120, 164, 105, nil,
215
+ nil, 55, nil, nil, 59, nil, -1, 875, 71, 35,
216
+ 23, 1, nil, -14, 233, 126, 154, nil, nil, nil,
217
+ 443, 167, nil, 32, 363, 77, nil, 215, -5, 236,
218
+ 401, nil, nil, 198, 159, 612, 629, 684, 726, 743,
219
+ 21, nil, 26, -2, nil, nil, 55, nil, 35, nil,
220
+ nil, nil, 56, 553, 71, 57, 81, 93, nil, nil,
221
+ 59, 67, nil, nil, nil, nil, 798, 74, nil, 827,
222
+ 111, 85, nil, 709, nil, nil, nil, nil, nil, nil,
223
+ nil, nil, nil, nil, nil, nil, 92, nil, nil, nil,
224
+ nil, nil, nil, nil, nil, 120, 121, 133, 138, 139,
225
+ 140, nil, nil, nil, 145, nil, nil, -3, nil, nil,
226
+ nil, nil, 143, 151, 667, nil, 650, 129, nil, 1,
227
+ 164, -3, 175, 595, -18, 570, 189, 768, -18, 532,
228
+ 515, 498, 418, 380, 346, 207, nil, nil, 325, nil,
229
+ 194, 224, nil, nil, nil, nil, nil, nil, nil, nil,
230
+ nil, 291, 222, 239, nil, nil, nil, nil, nil, 270,
231
+ 240, nil, nil, -27, 198, 253, 160, 181, 238, 105,
232
+ nil, nil, nil, 241, nil, nil, nil, nil, nil, nil,
233
+ nil, nil, nil, 84, 241, nil, nil, 50, 244, 253,
234
+ 263, nil, nil, 29, 292, nil, 260, 300, nil, nil,
235
+ nil, 296, 302, nil, 12, nil, nil, 267, nil, 268,
236
+ nil, nil, nil ]
237
+
238
+ racc_action_default = [
239
+ -162, -162, -1, -2, -3, -4, -5, -7, -18, -162,
240
+ -162, -162, -162, -162, -6, -162, -162, -162, -44, -45,
241
+ -47, -48, -87, -64, -162, -32, -33, -34, -36, -39,
242
+ -156, -114, -115, -118, -121, -162, -123, -124, -125, -126,
243
+ -162, -128, -129, -130, -132, -162, -134, -135, -162, -137,
244
+ -162, -162, -162, -162, -143, -144, -148, -162, -162, -154,
245
+ -155, -162, -159, -160, -162, 273, -162, -162, -162, -162,
246
+ -162, -162, -52, -54, -56, -57, -162, -43, -156, -26,
247
+ -162, -41, -31, -64, -162, -162, -38, -162, -162, -162,
248
+ -162, -122, -131, -162, -162, -162, -162, -162, -162, -162,
249
+ -146, -147, -162, -162, -158, -161, -8, -10, -14, -12,
250
+ -13, -19, -162, -162, -162, -64, -162, -24, -25, -49,
251
+ -162, -162, -53, -55, -58, -42, -162, -65, -73, -162,
252
+ -162, -90, -92, -162, -95, -96, -97, -99, -100, -101,
253
+ -102, -103, -104, -111, -112, -113, -66, -35, -37, -116,
254
+ -117, -119, -120, -127, -133, -162, -162, -162, -162, -162,
255
+ -162, -145, -149, -151, -162, -153, -157, -162, -11, -15,
256
+ -16, -20, -162, -29, -162, -21, -162, -162, -50, -162,
257
+ -162, -162, -113, -162, -162, -162, -162, -162, -162, -162,
258
+ -162, -162, -162, -162, -162, -162, -46, -86, -162, -94,
259
+ -71, -162, -136, -138, -139, -140, -141, -142, -152, -9,
260
+ -27, -162, -162, -81, -22, -23, -51, -59, -60, -162,
261
+ -162, -17, -98, -91, -162, -162, -162, -162, -162, -162,
262
+ -77, -78, -83, -162, -85, -105, -106, -107, -108, -109,
263
+ -110, -93, -40, -162, -162, -28, -30, -162, -61, -162,
264
+ -162, -76, -82, -162, -162, -84, -72, -67, -69, -70,
265
+ -80, -162, -63, -89, -162, -75, -79, -162, -62, -162,
266
+ -74, -68, -88 ]
267
+
268
+ racc_goto_table = [
269
+ 77, 29, 17, 127, 107, 118, 18, 212, 67, 172,
270
+ 27, 86, 18, 196, 79, 111, 81, 230, 23, 259,
271
+ 18, 258, 151, 152, 149, 150, 1, 112, 25, 93,
272
+ 82, 228, 83, 232, 115, 235, 236, 237, 238, 239,
273
+ 240, 92, 259, 200, 271, 242, 168, 197, 109, 181,
274
+ 116, 216, 217, 218, 106, 261, 251, 262, 125, 257,
275
+ 171, 14, 254, 7, 6, 119, 5, 148, 223, 196,
276
+ 250, 241, 252, 29, 146, 199, 154, 4, 3, 2,
277
+ 260, 164, 147, 91, 156, 157, 158, 159, 160, 162,
278
+ 163, nil, nil, 92, 92, 92, 92, nil, nil, 265,
279
+ nil, nil, 173, nil, nil, 209, 175, 245, 196, nil,
280
+ 270, nil, nil, 179, 215, 182, 178, 18, nil, nil,
281
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
282
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
283
+ nil, nil, 248, nil, nil, nil, nil, nil, nil, 109,
284
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 116,
285
+ nil, nil, nil, 213, nil, 214, 256, nil, nil, nil,
286
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
287
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
288
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
289
+ 173, nil, nil, nil, nil, nil, nil, nil, nil, nil,
290
+ nil, nil, nil, nil, nil, nil, 93, nil, 213, nil,
291
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
292
+ nil, 263, nil, nil, nil, nil, 213, nil, nil, nil,
293
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
294
+ nil, 272 ]
295
+
296
+ racc_goto_check = [
297
+ 13, 22, 16, 42, 10, 23, 33, 26, 16, 25,
298
+ 29, 13, 33, 14, 20, 17, 16, 52, 24, 47,
299
+ 33, 46, 65, 65, 63, 63, 1, 18, 27, 22,
300
+ 28, 50, 24, 50, 19, 50, 50, 50, 50, 50,
301
+ 50, 64, 47, 31, 46, 32, 12, 35, 13, 42,
302
+ 13, 39, 40, 41, 9, 43, 52, 44, 13, 45,
303
+ 17, 8, 26, 7, 6, 33, 5, 13, 56, 14,
304
+ 50, 57, 50, 22, 20, 58, 13, 4, 3, 2,
305
+ 26, 67, 29, 68, 22, 22, 22, 22, 22, 79,
306
+ 80, nil, nil, 64, 64, 64, 64, nil, nil, 50,
307
+ nil, nil, 22, nil, nil, 10, 20, 25, 14, nil,
308
+ 50, nil, nil, 16, 23, 22, 33, 33, nil, nil,
309
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
310
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
311
+ nil, nil, 42, nil, nil, nil, nil, nil, nil, 13,
312
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 13,
313
+ nil, nil, nil, 22, nil, 22, 42, nil, nil, nil,
314
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
315
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
316
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
317
+ 22, nil, nil, nil, nil, nil, nil, nil, nil, nil,
318
+ nil, nil, nil, nil, nil, nil, 22, nil, 22, nil,
319
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
320
+ nil, 13, nil, nil, nil, nil, 22, nil, nil, nil,
321
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
322
+ nil, 13 ]
323
+
324
+ racc_goto_pointer = [
325
+ nil, 26, 79, 78, 77, 66, 64, 63, 54, -12,
326
+ -62, nil, -62, -18, -117, nil, -8, -52, -40, -34,
327
+ -9, nil, -11, -63, 7, -104, -167, 16, 5, -2,
328
+ nil, -103, -155, -4, nil, -83, nil, nil, nil, -128,
329
+ -127, -126, -77, -194, -192, -185, -223, -225, nil, nil,
330
+ -154, nil, -169, nil, nil, nil, -115, -127, -58, nil,
331
+ nil, nil, nil, -63, 6, -67, nil, -21, 48, nil,
332
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, -13,
333
+ -12, nil, nil ]
334
+
335
+ racc_goto_default = [
336
+ nil, nil, nil, nil, nil, nil, nil, 180, nil, nil,
337
+ nil, 108, nil, 46, 128, 8, nil, nil, nil, nil,
338
+ nil, 117, 145, nil, nil, nil, nil, nil, nil, nil,
339
+ 28, nil, nil, 47, 19, 231, 20, 21, 71, nil,
340
+ nil, nil, nil, nil, nil, nil, nil, 38, 144, 138,
341
+ 129, 139, nil, 140, 141, 142, 131, 132, 134, 135,
342
+ 136, 137, 143, 31, 32, 33, 34, 35, 36, 37,
343
+ 39, 41, 42, 43, 45, 49, 54, 55, 58, nil,
344
+ nil, 62, 63 ]
345
+
346
+ racc_reduce_table = [
347
+ 0, 0, :racc_error,
348
+ 1, 64, :_reduce_none,
349
+ 1, 65, :_reduce_none,
350
+ 1, 65, :_reduce_none,
351
+ 1, 65, :_reduce_none,
352
+ 1, 65, :_reduce_none,
353
+ 2, 66, :_reduce_6,
354
+ 0, 71, :_reduce_none,
355
+ 3, 71, :_reduce_8,
356
+ 3, 72, :_reduce_9,
357
+ 1, 72, :_reduce_none,
358
+ 2, 73, :_reduce_11,
359
+ 1, 74, :_reduce_none,
360
+ 1, 74, :_reduce_13,
361
+ 0, 75, :_reduce_14,
362
+ 1, 75, :_reduce_15,
363
+ 1, 75, :_reduce_16,
364
+ 3, 77, :_reduce_17,
365
+ 1, 70, :_reduce_none,
366
+ 4, 67, :_reduce_19,
367
+ 5, 67, :_reduce_20,
368
+ 5, 68, :_reduce_21,
369
+ 3, 84, :_reduce_22,
370
+ 3, 86, :_reduce_23,
371
+ 1, 86, :_reduce_none,
372
+ 1, 82, :_reduce_25,
373
+ 3, 69, :_reduce_26,
374
+ 3, 81, :_reduce_27,
375
+ 3, 88, :_reduce_28,
376
+ 1, 88, :_reduce_none,
377
+ 4, 80, :_reduce_30,
378
+ 3, 78, :_reduce_31,
379
+ 2, 78, :_reduce_32,
380
+ 1, 90, :_reduce_33,
381
+ 1, 90, :_reduce_34,
382
+ 3, 92, :_reduce_35,
383
+ 1, 92, :_reduce_none,
384
+ 3, 93, :_reduce_37,
385
+ 2, 93, :_reduce_38,
386
+ 1, 93, :_reduce_none,
387
+ 4, 91, :_reduce_40,
388
+ 2, 87, :_reduce_41,
389
+ 3, 79, :_reduce_42,
390
+ 2, 79, :_reduce_43,
391
+ 1, 79, :_reduce_none,
392
+ 1, 79, :_reduce_none,
393
+ 1, 98, :_reduce_none,
394
+ 1, 97, :_reduce_none,
395
+ 1, 97, :_reduce_none,
396
+ 3, 99, :_reduce_49,
397
+ 4, 99, :_reduce_50,
398
+ 5, 100, :_reduce_51,
399
+ 1, 101, :_reduce_52,
400
+ 2, 101, :_reduce_53,
401
+ 1, 101, :_reduce_54,
402
+ 2, 101, :_reduce_55,
403
+ 1, 101, :_reduce_56,
404
+ 1, 101, :_reduce_57,
405
+ 2, 101, :_reduce_58,
406
+ 1, 102, :_reduce_none,
407
+ 1, 102, :_reduce_none,
408
+ 2, 103, :_reduce_61,
409
+ 4, 104, :_reduce_62,
410
+ 1, 106, :_reduce_none,
411
+ 0, 83, :_reduce_none,
412
+ 2, 83, :_reduce_65,
413
+ 0, 94, :_reduce_none,
414
+ 3, 94, :_reduce_67,
415
+ 3, 108, :_reduce_68,
416
+ 1, 108, :_reduce_none,
417
+ 1, 109, :_reduce_none,
418
+ 0, 95, :_reduce_none,
419
+ 2, 95, :_reduce_72,
420
+ 1, 111, :_reduce_none,
421
+ 6, 112, :_reduce_74,
422
+ 5, 112, :_reduce_75,
423
+ 4, 114, :_reduce_76,
424
+ 3, 114, :_reduce_77,
425
+ 1, 115, :_reduce_none,
426
+ 3, 115, :_reduce_79,
427
+ 3, 89, :_reduce_80,
428
+ 1, 89, :_reduce_none,
429
+ 4, 116, :_reduce_82,
430
+ 3, 116, :_reduce_83,
431
+ 4, 117, :_reduce_84,
432
+ 3, 117, :_reduce_85,
433
+ 2, 118, :_reduce_86,
434
+ 1, 96, :_reduce_87,
435
+ 3, 107, :_reduce_88,
436
+ 1, 107, :_reduce_none,
437
+ 1, 105, :_reduce_none,
438
+ 3, 105, :_reduce_91,
439
+ 1, 119, :_reduce_none,
440
+ 3, 119, :_reduce_93,
441
+ 2, 120, :_reduce_94,
442
+ 1, 120, :_reduce_none,
443
+ 1, 121, :_reduce_none,
444
+ 1, 122, :_reduce_none,
445
+ 3, 122, :_reduce_98,
446
+ 1, 123, :_reduce_none,
447
+ 1, 123, :_reduce_none,
448
+ 1, 123, :_reduce_none,
449
+ 1, 123, :_reduce_none,
450
+ 1, 123, :_reduce_none,
451
+ 1, 123, :_reduce_none,
452
+ 3, 124, :_reduce_105,
453
+ 3, 124, :_reduce_106,
454
+ 3, 124, :_reduce_107,
455
+ 3, 124, :_reduce_108,
456
+ 3, 124, :_reduce_109,
457
+ 3, 124, :_reduce_110,
458
+ 1, 113, :_reduce_none,
459
+ 1, 113, :_reduce_none,
460
+ 1, 125, :_reduce_none,
461
+ 1, 85, :_reduce_none,
462
+ 1, 85, :_reduce_none,
463
+ 3, 126, :_reduce_116,
464
+ 3, 126, :_reduce_117,
465
+ 1, 126, :_reduce_none,
466
+ 3, 128, :_reduce_119,
467
+ 3, 128, :_reduce_120,
468
+ 1, 128, :_reduce_none,
469
+ 2, 129, :_reduce_122,
470
+ 1, 129, :_reduce_none,
471
+ 1, 131, :_reduce_none,
472
+ 1, 131, :_reduce_none,
473
+ 1, 131, :_reduce_none,
474
+ 3, 131, :_reduce_127,
475
+ 1, 132, :_reduce_none,
476
+ 1, 132, :_reduce_none,
477
+ 1, 134, :_reduce_none,
478
+ 1, 134, :_reduce_none,
479
+ 1, 135, :_reduce_132,
480
+ 3, 110, :_reduce_133,
481
+ 1, 110, :_reduce_none,
482
+ 1, 137, :_reduce_none,
483
+ 4, 133, :_reduce_136,
484
+ 1, 133, :_reduce_none,
485
+ 4, 138, :_reduce_138,
486
+ 4, 138, :_reduce_139,
487
+ 4, 138, :_reduce_140,
488
+ 4, 138, :_reduce_141,
489
+ 4, 138, :_reduce_142,
490
+ 1, 136, :_reduce_none,
491
+ 1, 136, :_reduce_none,
492
+ 3, 139, :_reduce_145,
493
+ 2, 139, :_reduce_146,
494
+ 2, 139, :_reduce_147,
495
+ 1, 139, :_reduce_148,
496
+ 3, 140, :_reduce_149,
497
+ 1, 141, :_reduce_none,
498
+ 1, 142, :_reduce_none,
499
+ 2, 143, :_reduce_152,
500
+ 1, 143, :_reduce_153,
501
+ 1, 130, :_reduce_154,
502
+ 1, 130, :_reduce_155,
503
+ 1, 76, :_reduce_156,
504
+ 3, 127, :_reduce_157,
505
+ 2, 127, :_reduce_158,
506
+ 1, 127, :_reduce_none,
507
+ 1, 144, :_reduce_none,
508
+ 2, 145, :_reduce_161 ]
509
+
510
+ racc_reduce_n = 162
511
+
512
+ racc_shift_n = 273
513
+
514
+ racc_token_table = {
515
+ false => 0,
516
+ :error => 1,
517
+ :ORDER => 2,
518
+ :BY => 3,
519
+ :comma => 4,
520
+ :unsigned_integer => 5,
521
+ :ASC => 6,
522
+ :DESC => 7,
523
+ :left_paren => 8,
524
+ :right_paren => 9,
525
+ :INSERT => 10,
526
+ :INTO => 11,
527
+ :UPDATE => 12,
528
+ :SET => 13,
529
+ :equals_operator => 14,
530
+ :DELETE => 15,
531
+ :VALUES => 16,
532
+ :SELECT => 17,
533
+ :asterisk => 18,
534
+ :AS => 19,
535
+ :FROM => 20,
536
+ :CROSS => 21,
537
+ :JOIN => 22,
538
+ :INNER => 23,
539
+ :LEFT => 24,
540
+ :OUTER => 25,
541
+ :RIGHT => 26,
542
+ :FULL => 27,
543
+ :ON => 28,
544
+ :USING => 29,
545
+ :WHERE => 30,
546
+ :GROUP => 31,
547
+ :HAVING => 32,
548
+ :NOT => 33,
549
+ :BETWEEN => 34,
550
+ :AND => 35,
551
+ :IN => 36,
552
+ :LIKE => 37,
553
+ :IS => 38,
554
+ :NULL => 39,
555
+ :EXISTS => 40,
556
+ :identifier => 41,
557
+ :OR => 42,
558
+ :not_equals_operator => 43,
559
+ :less_than_operator => 44,
560
+ :greater_than_operator => 45,
561
+ :less_than_or_equals_operator => 46,
562
+ :greater_than_or_equals_operator => 47,
563
+ :plus_sign => 48,
564
+ :minus_sign => 49,
565
+ :solidus => 50,
566
+ :CURRENT_USER => 51,
567
+ :period => 52,
568
+ :COUNT => 53,
569
+ :AVG => 54,
570
+ :MAX => 55,
571
+ :MIN => 56,
572
+ :SUM => 57,
573
+ :E => 58,
574
+ :quote => 59,
575
+ :character_string_literal => 60,
576
+ :DATE => 61,
577
+ :date_string => 62 }
578
+
579
+ racc_nt_base = 63
580
+
581
+ racc_use_result_var = true
582
+
583
+ Racc_arg = [
584
+ racc_action_table,
585
+ racc_action_check,
586
+ racc_action_default,
587
+ racc_action_pointer,
588
+ racc_goto_table,
589
+ racc_goto_check,
590
+ racc_goto_default,
591
+ racc_goto_pointer,
592
+ racc_nt_base,
593
+ racc_reduce_table,
594
+ racc_token_table,
595
+ racc_shift_n,
596
+ racc_reduce_n,
597
+ racc_use_result_var ]
598
+
599
+ Racc_token_to_s_table = [
600
+ "$end",
601
+ "error",
602
+ "ORDER",
603
+ "BY",
604
+ "comma",
605
+ "unsigned_integer",
606
+ "ASC",
607
+ "DESC",
608
+ "left_paren",
609
+ "right_paren",
610
+ "INSERT",
611
+ "INTO",
612
+ "UPDATE",
613
+ "SET",
614
+ "equals_operator",
615
+ "DELETE",
616
+ "VALUES",
617
+ "SELECT",
618
+ "asterisk",
619
+ "AS",
620
+ "FROM",
621
+ "CROSS",
622
+ "JOIN",
623
+ "INNER",
624
+ "LEFT",
625
+ "OUTER",
626
+ "RIGHT",
627
+ "FULL",
628
+ "ON",
629
+ "USING",
630
+ "WHERE",
631
+ "GROUP",
632
+ "HAVING",
633
+ "NOT",
634
+ "BETWEEN",
635
+ "AND",
636
+ "IN",
637
+ "LIKE",
638
+ "IS",
639
+ "NULL",
640
+ "EXISTS",
641
+ "identifier",
642
+ "OR",
643
+ "not_equals_operator",
644
+ "less_than_operator",
645
+ "greater_than_operator",
646
+ "less_than_or_equals_operator",
647
+ "greater_than_or_equals_operator",
648
+ "plus_sign",
649
+ "minus_sign",
650
+ "solidus",
651
+ "CURRENT_USER",
652
+ "period",
653
+ "COUNT",
654
+ "AVG",
655
+ "MAX",
656
+ "MIN",
657
+ "SUM",
658
+ "E",
659
+ "quote",
660
+ "character_string_literal",
661
+ "DATE",
662
+ "date_string",
663
+ "$start",
664
+ "direct_sql_statement",
665
+ "direct_sql_data_statement",
666
+ "direct_select_statement_multiple_rows",
667
+ "insert_specification",
668
+ "update_specification",
669
+ "delete_specification",
670
+ "query_expression",
671
+ "order_by_clause",
672
+ "sort_specification_list",
673
+ "sort_specification",
674
+ "sort_key",
675
+ "ordering_specification",
676
+ "column_name",
677
+ "subquery",
678
+ "query_specification",
679
+ "table_reference",
680
+ "value_list",
681
+ "column_list",
682
+ "update_column_list",
683
+ "where_clause",
684
+ "update_column",
685
+ "value_expression",
686
+ "update_column_sublist",
687
+ "from_clause",
688
+ "in_column_list",
689
+ "in_value_list",
690
+ "select_list",
691
+ "table_expression",
692
+ "select_sublist",
693
+ "derived_column",
694
+ "group_by_clause",
695
+ "having_clause",
696
+ "table_name",
697
+ "joined_table",
698
+ "table_subquery",
699
+ "cross_join",
700
+ "qualified_join",
701
+ "join_type",
702
+ "join_specification",
703
+ "join_condition",
704
+ "named_columns_join",
705
+ "search_condition",
706
+ "join_column_list",
707
+ "column_name_list",
708
+ "grouping_column_reference_list",
709
+ "grouping_column_reference",
710
+ "column_reference",
711
+ "row_subquery",
712
+ "between_predicate",
713
+ "row_value_constructor",
714
+ "in_predicate",
715
+ "in_predicate_value",
716
+ "like_predicate",
717
+ "null_predicate",
718
+ "exists_predicate",
719
+ "boolean_term",
720
+ "boolean_factor",
721
+ "boolean_test",
722
+ "boolean_primary",
723
+ "predicate",
724
+ "comparison_predicate",
725
+ "row_value_constructor_element",
726
+ "numeric_value_expression",
727
+ "general_literal",
728
+ "term",
729
+ "factor",
730
+ "sign",
731
+ "value_expression_primary",
732
+ "unsigned_value_specification",
733
+ "set_function_specification",
734
+ "unsigned_literal",
735
+ "general_value_specification",
736
+ "unsigned_numeric_literal",
737
+ "qualifier",
738
+ "general_set_function",
739
+ "exact_numeric_literal",
740
+ "approximate_numeric_literal",
741
+ "mantissa",
742
+ "exponent",
743
+ "signed_integer",
744
+ "datetime_literal",
745
+ "date_literal" ]
746
+
747
+ Racc_debug_parser = false
748
+
749
+ ##### State transition tables end #####
750
+
751
+ # reduce 0 omitted
752
+
753
+ # reduce 1 omitted
754
+
755
+ # reduce 2 omitted
756
+
757
+ # reduce 3 omitted
758
+
759
+ # reduce 4 omitted
760
+
761
+ # reduce 5 omitted
762
+
763
+ module_eval(<<'.,.,', 'parser.racc', 15)
764
+ def _reduce_6(val, _values, result)
765
+ result = SQLParser::Statement::DirectSelect.new(val[0], val[1])
766
+ result
767
+ end
768
+ .,.,
769
+
770
+ # reduce 7 omitted
771
+
772
+ module_eval(<<'.,.,', 'parser.racc', 20)
773
+ def _reduce_8(val, _values, result)
774
+ result = SQLParser::Statement::OrderBy.new(val[2])
775
+ result
776
+ end
777
+ .,.,
778
+
779
+ module_eval(<<'.,.,', 'parser.racc', 23)
780
+ def _reduce_9(val, _values, result)
781
+ result = Array(val[0]) + Array(val[2])
782
+ result
783
+ end
784
+ .,.,
785
+
786
+ # reduce 10 omitted
787
+
788
+ module_eval(<<'.,.,', 'parser.racc', 27)
789
+ def _reduce_11(val, _values, result)
790
+ result = val[1].new(val[0])
791
+ result
792
+ end
793
+ .,.,
794
+
795
+ # reduce 12 omitted
796
+
797
+ module_eval(<<'.,.,', 'parser.racc', 31)
798
+ def _reduce_13(val, _values, result)
799
+ result = SQLParser::Statement::Integer.new(val[0])
800
+ result
801
+ end
802
+ .,.,
803
+
804
+ module_eval(<<'.,.,', 'parser.racc', 34)
805
+ def _reduce_14(val, _values, result)
806
+ result = SQLParser::Statement::Ascending
807
+ result
808
+ end
809
+ .,.,
810
+
811
+ module_eval(<<'.,.,', 'parser.racc', 35)
812
+ def _reduce_15(val, _values, result)
813
+ result = SQLParser::Statement::Ascending
814
+ result
815
+ end
816
+ .,.,
817
+
818
+ module_eval(<<'.,.,', 'parser.racc', 36)
819
+ def _reduce_16(val, _values, result)
820
+ result = SQLParser::Statement::Descending
821
+ result
822
+ end
823
+ .,.,
824
+
825
+ module_eval(<<'.,.,', 'parser.racc', 41)
826
+ def _reduce_17(val, _values, result)
827
+ result = SQLParser::Statement::Subquery.new(val[1])
828
+ result
829
+ end
830
+ .,.,
831
+
832
+ # reduce 18 omitted
833
+
834
+ module_eval(<<'.,.,', 'parser.racc', 47)
835
+ def _reduce_19(val, _values, result)
836
+ result = SQLParser::Statement::Insert.new(val[2], nil, val[3])
837
+ result
838
+ end
839
+ .,.,
840
+
841
+ module_eval(<<'.,.,', 'parser.racc', 48)
842
+ def _reduce_20(val, _values, result)
843
+ result = SQLParser::Statement::Insert.new(val[2], val[3], val[4])
844
+ result
845
+ end
846
+ .,.,
847
+
848
+ module_eval(<<'.,.,', 'parser.racc', 51)
849
+ def _reduce_21(val, _values, result)
850
+ result = SQLParser::Statement::Update.new(val[1], val[3], val[4])
851
+ result
852
+ end
853
+ .,.,
854
+
855
+ module_eval(<<'.,.,', 'parser.racc', 54)
856
+ def _reduce_22(val, _values, result)
857
+ result = SQLParser::Statement::UpdateColumn.new(val[0], val[2])
858
+ result
859
+ end
860
+ .,.,
861
+
862
+ module_eval(<<'.,.,', 'parser.racc', 57)
863
+ def _reduce_23(val, _values, result)
864
+ result = Array(val[0]) + Array(val[2])
865
+ result
866
+ end
867
+ .,.,
868
+
869
+ # reduce 24 omitted
870
+
871
+ module_eval(<<'.,.,', 'parser.racc', 61)
872
+ def _reduce_25(val, _values, result)
873
+ result = SQLParser::Statement::UpdateColumnList.new(val[0])
874
+ result
875
+ end
876
+ .,.,
877
+
878
+ module_eval(<<'.,.,', 'parser.racc', 64)
879
+ def _reduce_26(val, _values, result)
880
+ result = SQLParser::Statement::Delete.new(val[1], val[2])
881
+ result
882
+ end
883
+ .,.,
884
+
885
+ module_eval(<<'.,.,', 'parser.racc', 67)
886
+ def _reduce_27(val, _values, result)
887
+ result = SQLParser::Statement::InColumnList.new(val[1])
888
+ result
889
+ end
890
+ .,.,
891
+
892
+ module_eval(<<'.,.,', 'parser.racc', 70)
893
+ def _reduce_28(val, _values, result)
894
+ result = Array(val[0]) + Array(val[2])
895
+ result
896
+ end
897
+ .,.,
898
+
899
+ # reduce 29 omitted
900
+
901
+ module_eval(<<'.,.,', 'parser.racc', 74)
902
+ def _reduce_30(val, _values, result)
903
+ result = SQLParser::Statement::InValueList.new(val[2])
904
+ result
905
+ end
906
+ .,.,
907
+
908
+ module_eval(<<'.,.,', 'parser.racc', 77)
909
+ def _reduce_31(val, _values, result)
910
+ result = SQLParser::Statement::Select.new(val[1], val[2])
911
+ result
912
+ end
913
+ .,.,
914
+
915
+ module_eval(<<'.,.,', 'parser.racc', 78)
916
+ def _reduce_32(val, _values, result)
917
+ result = SQLParser::Statement::Select.new(val[1])
918
+ result
919
+ end
920
+ .,.,
921
+
922
+ module_eval(<<'.,.,', 'parser.racc', 81)
923
+ def _reduce_33(val, _values, result)
924
+ result = SQLParser::Statement::All.new
925
+ result
926
+ end
927
+ .,.,
928
+
929
+ module_eval(<<'.,.,', 'parser.racc', 82)
930
+ def _reduce_34(val, _values, result)
931
+ result = SQLParser::Statement::SelectList.new(val[0])
932
+ result
933
+ end
934
+ .,.,
935
+
936
+ module_eval(<<'.,.,', 'parser.racc', 85)
937
+ def _reduce_35(val, _values, result)
938
+ result = Array(val[0]) + Array(val[2])
939
+ result
940
+ end
941
+ .,.,
942
+
943
+ # reduce 36 omitted
944
+
945
+ module_eval(<<'.,.,', 'parser.racc', 89)
946
+ def _reduce_37(val, _values, result)
947
+ result = SQLParser::Statement::As.new(val[0], val[2])
948
+ result
949
+ end
950
+ .,.,
951
+
952
+ module_eval(<<'.,.,', 'parser.racc', 90)
953
+ def _reduce_38(val, _values, result)
954
+ result = SQLParser::Statement::As.new(val[0], val[1])
955
+ result
956
+ end
957
+ .,.,
958
+
959
+ # reduce 39 omitted
960
+
961
+ module_eval(<<'.,.,', 'parser.racc', 94)
962
+ def _reduce_40(val, _values, result)
963
+ result = SQLParser::Statement::TableExpression.new(val[0], val[1], val[2], val[3])
964
+ result
965
+ end
966
+ .,.,
967
+
968
+ module_eval(<<'.,.,', 'parser.racc', 97)
969
+ def _reduce_41(val, _values, result)
970
+ result = SQLParser::Statement::FromClause.new(val[1])
971
+ result
972
+ end
973
+ .,.,
974
+
975
+ module_eval(<<'.,.,', 'parser.racc', 100)
976
+ def _reduce_42(val, _values, result)
977
+ result = SQLParser::Statement::As.new(val[0], val[2])
978
+ result
979
+ end
980
+ .,.,
981
+
982
+ module_eval(<<'.,.,', 'parser.racc', 101)
983
+ def _reduce_43(val, _values, result)
984
+ result = SQLParser::Statement::As.new(val[0], val[1])
985
+ result
986
+ end
987
+ .,.,
988
+
989
+ # reduce 44 omitted
990
+
991
+ # reduce 45 omitted
992
+
993
+ # reduce 46 omitted
994
+
995
+ # reduce 47 omitted
996
+
997
+ # reduce 48 omitted
998
+
999
+ module_eval(<<'.,.,', 'parser.racc', 113)
1000
+ def _reduce_49(val, _values, result)
1001
+ result = SQLParser::Statement::CrossJoin.new(val[0], val[2])
1002
+ result
1003
+ end
1004
+ .,.,
1005
+
1006
+ module_eval(<<'.,.,', 'parser.racc', 114)
1007
+ def _reduce_50(val, _values, result)
1008
+ result = SQLParser::Statement::CrossJoin.new(val[0], val[3])
1009
+ result
1010
+ end
1011
+ .,.,
1012
+
1013
+ module_eval(<<'.,.,', 'parser.racc', 117)
1014
+ def _reduce_51(val, _values, result)
1015
+ result = val[1].new(val[0], val[3], val[4])
1016
+ result
1017
+ end
1018
+ .,.,
1019
+
1020
+ module_eval(<<'.,.,', 'parser.racc', 120)
1021
+ def _reduce_52(val, _values, result)
1022
+ result = SQLParser::Statement::InnerJoin
1023
+ result
1024
+ end
1025
+ .,.,
1026
+
1027
+ module_eval(<<'.,.,', 'parser.racc', 121)
1028
+ def _reduce_53(val, _values, result)
1029
+ result = SQLParser::Statement::LeftOuterJoin
1030
+ result
1031
+ end
1032
+ .,.,
1033
+
1034
+ module_eval(<<'.,.,', 'parser.racc', 122)
1035
+ def _reduce_54(val, _values, result)
1036
+ result = SQLParser::Statement::LeftJoin
1037
+ result
1038
+ end
1039
+ .,.,
1040
+
1041
+ module_eval(<<'.,.,', 'parser.racc', 123)
1042
+ def _reduce_55(val, _values, result)
1043
+ result = SQLParser::Statement::RightOuterJoin
1044
+ result
1045
+ end
1046
+ .,.,
1047
+
1048
+ module_eval(<<'.,.,', 'parser.racc', 124)
1049
+ def _reduce_56(val, _values, result)
1050
+ result = SQLParser::Statement::RightJoin
1051
+ result
1052
+ end
1053
+ .,.,
1054
+
1055
+ module_eval(<<'.,.,', 'parser.racc', 125)
1056
+ def _reduce_57(val, _values, result)
1057
+ result = SQLParser::Statement::FullJoin
1058
+ result
1059
+ end
1060
+ .,.,
1061
+
1062
+ module_eval(<<'.,.,', 'parser.racc', 126)
1063
+ def _reduce_58(val, _values, result)
1064
+ result = SQLParser::Statement::FullOuterJoin
1065
+ result
1066
+ end
1067
+ .,.,
1068
+
1069
+ # reduce 59 omitted
1070
+
1071
+ # reduce 60 omitted
1072
+
1073
+ module_eval(<<'.,.,', 'parser.racc', 133)
1074
+ def _reduce_61(val, _values, result)
1075
+ result = SQLParser::Statement::On.new(val[1])
1076
+ result
1077
+ end
1078
+ .,.,
1079
+
1080
+ module_eval(<<'.,.,', 'parser.racc', 136)
1081
+ def _reduce_62(val, _values, result)
1082
+ result = SQLParser::Statement::Using.new(val[2])
1083
+ result
1084
+ end
1085
+ .,.,
1086
+
1087
+ # reduce 63 omitted
1088
+
1089
+ # reduce 64 omitted
1090
+
1091
+ module_eval(<<'.,.,', 'parser.racc', 143)
1092
+ def _reduce_65(val, _values, result)
1093
+ result = SQLParser::Statement::WhereClause.new(val[1])
1094
+ result
1095
+ end
1096
+ .,.,
1097
+
1098
+ # reduce 66 omitted
1099
+
1100
+ module_eval(<<'.,.,', 'parser.racc', 147)
1101
+ def _reduce_67(val, _values, result)
1102
+ result = SQLParser::Statement::GroupByClause.new(val[2])
1103
+ result
1104
+ end
1105
+ .,.,
1106
+
1107
+ module_eval(<<'.,.,', 'parser.racc', 150)
1108
+ def _reduce_68(val, _values, result)
1109
+ result = Array(val[0]) + Array(val[2])
1110
+ result
1111
+ end
1112
+ .,.,
1113
+
1114
+ # reduce 69 omitted
1115
+
1116
+ # reduce 70 omitted
1117
+
1118
+ # reduce 71 omitted
1119
+
1120
+ module_eval(<<'.,.,', 'parser.racc', 158)
1121
+ def _reduce_72(val, _values, result)
1122
+ result = SQLParser::Statement::HavingClause.new(val[1])
1123
+ result
1124
+ end
1125
+ .,.,
1126
+
1127
+ # reduce 73 omitted
1128
+
1129
+ module_eval(<<'.,.,', 'parser.racc', 165)
1130
+ def _reduce_74(val, _values, result)
1131
+ result = SQLParser::Statement::Not.new(SQLParser::Statement::Between.new(val[0], val[3], val[5]))
1132
+ result
1133
+ end
1134
+ .,.,
1135
+
1136
+ module_eval(<<'.,.,', 'parser.racc', 166)
1137
+ def _reduce_75(val, _values, result)
1138
+ result = SQLParser::Statement::Between.new(val[0], val[2], val[4])
1139
+ result
1140
+ end
1141
+ .,.,
1142
+
1143
+ module_eval(<<'.,.,', 'parser.racc', 169)
1144
+ def _reduce_76(val, _values, result)
1145
+ result = SQLParser::Statement::Not.new(SQLParser::Statement::In.new(val[0], val[3]))
1146
+ result
1147
+ end
1148
+ .,.,
1149
+
1150
+ module_eval(<<'.,.,', 'parser.racc', 170)
1151
+ def _reduce_77(val, _values, result)
1152
+ result = SQLParser::Statement::In.new(val[0], val[2])
1153
+ result
1154
+ end
1155
+ .,.,
1156
+
1157
+ # reduce 78 omitted
1158
+
1159
+ module_eval(<<'.,.,', 'parser.racc', 174)
1160
+ def _reduce_79(val, _values, result)
1161
+ result = SQLParser::Statement::InValueList.new(val[1])
1162
+ result
1163
+ end
1164
+ .,.,
1165
+
1166
+ module_eval(<<'.,.,', 'parser.racc', 177)
1167
+ def _reduce_80(val, _values, result)
1168
+ result = Array(val[0]) + Array(val[2])
1169
+ result
1170
+ end
1171
+ .,.,
1172
+
1173
+ # reduce 81 omitted
1174
+
1175
+ module_eval(<<'.,.,', 'parser.racc', 184)
1176
+ def _reduce_82(val, _values, result)
1177
+ result = SQLParser::Statement::Not.new(SQLParser::Statement::Like.new(val[0], val[3]))
1178
+ result
1179
+ end
1180
+ .,.,
1181
+
1182
+ module_eval(<<'.,.,', 'parser.racc', 185)
1183
+ def _reduce_83(val, _values, result)
1184
+ result = SQLParser::Statement::Like.new(val[0], val[2])
1185
+ result
1186
+ end
1187
+ .,.,
1188
+
1189
+ module_eval(<<'.,.,', 'parser.racc', 188)
1190
+ def _reduce_84(val, _values, result)
1191
+ result = SQLParser::Statement::Not.new(SQLParser::Statement::Is.new(val[0], SQLParser::Statement::Null.new))
1192
+ result
1193
+ end
1194
+ .,.,
1195
+
1196
+ module_eval(<<'.,.,', 'parser.racc', 189)
1197
+ def _reduce_85(val, _values, result)
1198
+ result = SQLParser::Statement::Is.new(val[0], SQLParser::Statement::Null.new)
1199
+ result
1200
+ end
1201
+ .,.,
1202
+
1203
+ module_eval(<<'.,.,', 'parser.racc', 192)
1204
+ def _reduce_86(val, _values, result)
1205
+ result = SQLParser::Statement::Exists.new(val[1])
1206
+ result
1207
+ end
1208
+ .,.,
1209
+
1210
+ module_eval(<<'.,.,', 'parser.racc', 196)
1211
+ def _reduce_87(val, _values, result)
1212
+ result = SQLParser::Statement::Table.new(val[0])
1213
+ result
1214
+ end
1215
+ .,.,
1216
+
1217
+ module_eval(<<'.,.,', 'parser.racc', 199)
1218
+ def _reduce_88(val, _values, result)
1219
+ result = Array(val[0]) + Array(val[2])
1220
+ result
1221
+ end
1222
+ .,.,
1223
+
1224
+ # reduce 89 omitted
1225
+
1226
+ # reduce 90 omitted
1227
+
1228
+ module_eval(<<'.,.,', 'parser.racc', 205)
1229
+ def _reduce_91(val, _values, result)
1230
+ result = SQLParser::Statement::Or.new(val[0], val[2])
1231
+ result
1232
+ end
1233
+ .,.,
1234
+
1235
+ # reduce 92 omitted
1236
+
1237
+ module_eval(<<'.,.,', 'parser.racc', 209)
1238
+ def _reduce_93(val, _values, result)
1239
+ result = SQLParser::Statement::And.new(val[0], val[2])
1240
+ result
1241
+ end
1242
+ .,.,
1243
+
1244
+ module_eval(<<'.,.,', 'parser.racc', 212)
1245
+ def _reduce_94(val, _values, result)
1246
+ result = SQLParser::Statement::Not.new(val[1])
1247
+ result
1248
+ end
1249
+ .,.,
1250
+
1251
+ # reduce 95 omitted
1252
+
1253
+ # reduce 96 omitted
1254
+
1255
+ # reduce 97 omitted
1256
+
1257
+ module_eval(<<'.,.,', 'parser.racc', 220)
1258
+ def _reduce_98(val, _values, result)
1259
+ result = val[1]
1260
+ result
1261
+ end
1262
+ .,.,
1263
+
1264
+ # reduce 99 omitted
1265
+
1266
+ # reduce 100 omitted
1267
+
1268
+ # reduce 101 omitted
1269
+
1270
+ # reduce 102 omitted
1271
+
1272
+ # reduce 103 omitted
1273
+
1274
+ # reduce 104 omitted
1275
+
1276
+ module_eval(<<'.,.,', 'parser.racc', 231)
1277
+ def _reduce_105(val, _values, result)
1278
+ result = SQLParser::Statement::Equals.new(val[0], val[2])
1279
+ result
1280
+ end
1281
+ .,.,
1282
+
1283
+ module_eval(<<'.,.,', 'parser.racc', 232)
1284
+ def _reduce_106(val, _values, result)
1285
+ result = SQLParser::Statement::Not.new(SQLParser::Statement::Equals.new(val[0], val[2]))
1286
+ result
1287
+ end
1288
+ .,.,
1289
+
1290
+ module_eval(<<'.,.,', 'parser.racc', 233)
1291
+ def _reduce_107(val, _values, result)
1292
+ result = SQLParser::Statement::Less.new(val[0], val[2])
1293
+ result
1294
+ end
1295
+ .,.,
1296
+
1297
+ module_eval(<<'.,.,', 'parser.racc', 234)
1298
+ def _reduce_108(val, _values, result)
1299
+ result = SQLParser::Statement::Greater.new(val[0], val[2])
1300
+ result
1301
+ end
1302
+ .,.,
1303
+
1304
+ module_eval(<<'.,.,', 'parser.racc', 235)
1305
+ def _reduce_109(val, _values, result)
1306
+ result = SQLParser::Statement::LessOrEquals.new(val[0], val[2])
1307
+ result
1308
+ end
1309
+ .,.,
1310
+
1311
+ module_eval(<<'.,.,', 'parser.racc', 236)
1312
+ def _reduce_110(val, _values, result)
1313
+ result = SQLParser::Statement::GreaterOrEquals.new(val[0], val[2])
1314
+ result
1315
+ end
1316
+ .,.,
1317
+
1318
+ # reduce 111 omitted
1319
+
1320
+ # reduce 112 omitted
1321
+
1322
+ # reduce 113 omitted
1323
+
1324
+ # reduce 114 omitted
1325
+
1326
+ # reduce 115 omitted
1327
+
1328
+ module_eval(<<'.,.,', 'parser.racc', 250)
1329
+ def _reduce_116(val, _values, result)
1330
+ result = SQLParser::Statement::Add.new(val[0], val[2])
1331
+ result
1332
+ end
1333
+ .,.,
1334
+
1335
+ module_eval(<<'.,.,', 'parser.racc', 251)
1336
+ def _reduce_117(val, _values, result)
1337
+ result = SQLParser::Statement::Subtract.new(val[0], val[2])
1338
+ result
1339
+ end
1340
+ .,.,
1341
+
1342
+ # reduce 118 omitted
1343
+
1344
+ module_eval(<<'.,.,', 'parser.racc', 255)
1345
+ def _reduce_119(val, _values, result)
1346
+ result = SQLParser::Statement::Multiply.new(val[0], val[2])
1347
+ result
1348
+ end
1349
+ .,.,
1350
+
1351
+ module_eval(<<'.,.,', 'parser.racc', 256)
1352
+ def _reduce_120(val, _values, result)
1353
+ result = SQLParser::Statement::Divide.new(val[0], val[2])
1354
+ result
1355
+ end
1356
+ .,.,
1357
+
1358
+ # reduce 121 omitted
1359
+
1360
+ module_eval(<<'.,.,', 'parser.racc', 260)
1361
+ def _reduce_122(val, _values, result)
1362
+ result = val[0].new(val[1])
1363
+ result
1364
+ end
1365
+ .,.,
1366
+
1367
+ # reduce 123 omitted
1368
+
1369
+ # reduce 124 omitted
1370
+
1371
+ # reduce 125 omitted
1372
+
1373
+ # reduce 126 omitted
1374
+
1375
+ module_eval(<<'.,.,', 'parser.racc', 267)
1376
+ def _reduce_127(val, _values, result)
1377
+ result = val[1]
1378
+ result
1379
+ end
1380
+ .,.,
1381
+
1382
+ # reduce 128 omitted
1383
+
1384
+ # reduce 129 omitted
1385
+
1386
+ # reduce 130 omitted
1387
+
1388
+ # reduce 131 omitted
1389
+
1390
+ module_eval(<<'.,.,', 'parser.racc', 278)
1391
+ def _reduce_132(val, _values, result)
1392
+ result = SQLParser::Statement::CurrentUser.new
1393
+ result
1394
+ end
1395
+ .,.,
1396
+
1397
+ module_eval(<<'.,.,', 'parser.racc', 281)
1398
+ def _reduce_133(val, _values, result)
1399
+ result = SQLParser::Statement::QualifiedColumn.new(val[0], val[2])
1400
+ result
1401
+ end
1402
+ .,.,
1403
+
1404
+ # reduce 134 omitted
1405
+
1406
+ # reduce 135 omitted
1407
+
1408
+ module_eval(<<'.,.,', 'parser.racc', 288)
1409
+ def _reduce_136(val, _values, result)
1410
+ result = SQLParser::Statement::Count.new(SQLParser::Statement::All.new)
1411
+ result
1412
+ end
1413
+ .,.,
1414
+
1415
+ # reduce 137 omitted
1416
+
1417
+ module_eval(<<'.,.,', 'parser.racc', 292)
1418
+ def _reduce_138(val, _values, result)
1419
+ result = SQLParser::Statement::Count.new(val[2])
1420
+ result
1421
+ end
1422
+ .,.,
1423
+
1424
+ module_eval(<<'.,.,', 'parser.racc', 293)
1425
+ def _reduce_139(val, _values, result)
1426
+ result = SQLParser::Statement::Average.new(val[2])
1427
+ result
1428
+ end
1429
+ .,.,
1430
+
1431
+ module_eval(<<'.,.,', 'parser.racc', 294)
1432
+ def _reduce_140(val, _values, result)
1433
+ result = SQLParser::Statement::Maximum.new(val[2])
1434
+ result
1435
+ end
1436
+ .,.,
1437
+
1438
+ module_eval(<<'.,.,', 'parser.racc', 295)
1439
+ def _reduce_141(val, _values, result)
1440
+ result = SQLParser::Statement::Minimum.new(val[2])
1441
+ result
1442
+ end
1443
+ .,.,
1444
+
1445
+ module_eval(<<'.,.,', 'parser.racc', 296)
1446
+ def _reduce_142(val, _values, result)
1447
+ result = SQLParser::Statement::Sum.new(val[2])
1448
+ result
1449
+ end
1450
+ .,.,
1451
+
1452
+ # reduce 143 omitted
1453
+
1454
+ # reduce 144 omitted
1455
+
1456
+ module_eval(<<'.,.,', 'parser.racc', 304)
1457
+ def _reduce_145(val, _values, result)
1458
+ result = SQLParser::Statement::Float.new("#{val[0]}.#{val[2]}".to_f)
1459
+ result
1460
+ end
1461
+ .,.,
1462
+
1463
+ module_eval(<<'.,.,', 'parser.racc', 305)
1464
+ def _reduce_146(val, _values, result)
1465
+ result = SQLParser::Statement::Float.new(val[0])
1466
+ result
1467
+ end
1468
+ .,.,
1469
+
1470
+ module_eval(<<'.,.,', 'parser.racc', 306)
1471
+ def _reduce_147(val, _values, result)
1472
+ result = SQLParser::Statement::Float.new("0.#{val[1]}".to_f)
1473
+ result
1474
+ end
1475
+ .,.,
1476
+
1477
+ module_eval(<<'.,.,', 'parser.racc', 307)
1478
+ def _reduce_148(val, _values, result)
1479
+ result = SQLParser::Statement::Integer.new(val[0])
1480
+ result
1481
+ end
1482
+ .,.,
1483
+
1484
+ module_eval(<<'.,.,', 'parser.racc', 310)
1485
+ def _reduce_149(val, _values, result)
1486
+ result = SQLParser::Statement::ApproximateFloat.new(val[0], val[2])
1487
+ result
1488
+ end
1489
+ .,.,
1490
+
1491
+ # reduce 150 omitted
1492
+
1493
+ # reduce 151 omitted
1494
+
1495
+ module_eval(<<'.,.,', 'parser.racc', 319)
1496
+ def _reduce_152(val, _values, result)
1497
+ result = val[0].new(SQLParser::Statement::Integer.new(val[1]))
1498
+ result
1499
+ end
1500
+ .,.,
1501
+
1502
+ module_eval(<<'.,.,', 'parser.racc', 320)
1503
+ def _reduce_153(val, _values, result)
1504
+ result = SQLParser::Statement::Integer.new(val[0])
1505
+ result
1506
+ end
1507
+ .,.,
1508
+
1509
+ module_eval(<<'.,.,', 'parser.racc', 323)
1510
+ def _reduce_154(val, _values, result)
1511
+ result = SQLParser::Statement::UnaryPlus
1512
+ result
1513
+ end
1514
+ .,.,
1515
+
1516
+ module_eval(<<'.,.,', 'parser.racc', 324)
1517
+ def _reduce_155(val, _values, result)
1518
+ result = SQLParser::Statement::UnaryMinus
1519
+ result
1520
+ end
1521
+ .,.,
1522
+
1523
+ module_eval(<<'.,.,', 'parser.racc', 328)
1524
+ def _reduce_156(val, _values, result)
1525
+ result = SQLParser::Statement::Column.new(val[0])
1526
+ result
1527
+ end
1528
+ .,.,
1529
+
1530
+ module_eval(<<'.,.,', 'parser.racc', 332)
1531
+ def _reduce_157(val, _values, result)
1532
+ result = SQLParser::Statement::String.new(val[1])
1533
+ result
1534
+ end
1535
+ .,.,
1536
+
1537
+ module_eval(<<'.,.,', 'parser.racc', 333)
1538
+ def _reduce_158(val, _values, result)
1539
+ result = SQLParser::Statement::String.new('')
1540
+ result
1541
+ end
1542
+ .,.,
1543
+
1544
+ # reduce 159 omitted
1545
+
1546
+ # reduce 160 omitted
1547
+
1548
+ module_eval(<<'.,.,', 'parser.racc', 340)
1549
+ def _reduce_161(val, _values, result)
1550
+ result = SQLParser::Statement::Date.new(val[1])
1551
+ result
1552
+ end
1553
+ .,.,
1554
+
1555
+ def _reduce_none(val, _values, result)
1556
+ val[0]
1557
+ end
1558
+
1559
+ end # class Parser
1560
+ end # module SQLParser