sdbcli 0.2.6 → 0.2.7

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.
data/bin/sdbcli CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  $LOAD_PATH << File.join(File.expand_path(File.dirname(__FILE__)), '..', 'lib')
3
3
 
4
- Version = '0.2.6'
4
+ Version = '0.2.7'
5
5
  HISTORY_FILE = File.join((ENV['HOME'] || ENV['USERPROFILE'] || '.'), '.sdbcli_history')
6
6
 
7
7
  require 'rubygems'
@@ -1,486 +1,503 @@
1
- #
2
- # DO NOT MODIFY!!!!
3
- # This file is automatically generated by racc 1.4.5
4
- # from racc grammer file "lib/sdbcli/sdb-parser.y".
5
- #
6
-
7
- require 'racc/parser'
8
-
9
-
10
-
11
- require 'strscan'
12
-
13
- module SimpleDB
14
-
15
-
16
- class Parser < Racc::Parser
17
-
18
- module_eval <<'..end lib/sdbcli/sdb-parser.y modeval..idca9c582f51', 'lib/sdbcli/sdb-parser.y', 139
19
-
20
- KEYWORDS = %w(
21
- AND
22
- ASC
23
- BETWEEN
24
- BY
25
- CREATE
26
- DELETE
27
- DESC
28
- DOMAINS
29
- DOMAIN
30
- DROP
31
- EVERY
32
- FROM
33
- GET
34
- INSERT
35
- INTERSECTION
36
- INTO
37
- IN
38
- IS
39
- ITEMNAME
40
- LIKE
41
- LIMIT
42
- NOT
43
- ORDER
44
- OR
45
- SET
46
- SHOW
47
- UPDATE
48
- VALUES
49
- WHERE
50
- )
51
-
52
- KEYWORD_REGEXP = Regexp.compile("#{KEYWORDS.join '|'}\\b", Regexp::IGNORECASE)
53
-
54
- def initialize(obj)
55
- src = obj.is_a?(IO) ? obj.read : obj.to_s
56
- @ss = StringScanner.new(src)
57
- end
58
-
59
- @@structs = {}
60
-
61
- def struct(name, attrs = {})
62
- unless (clazz = @@structs[name])
63
- clazz = attrs.empty? ? Struct.new(name.to_s) : Struct.new(name.to_s, *attrs.keys)
64
- @@structs[name] = clazz
65
- end
66
-
67
- obj = clazz.new
68
-
69
- attrs.each do |key, val|
70
- obj.send("#{key}=", val)
71
- end
72
-
73
- return obj
74
- end
75
- private :struct
76
-
77
- def scan
78
- tok = nil
79
-
80
- until @ss.eos?
81
- if (tok = @ss.scan /\s+/)
82
- # nothing to do
83
- elsif (tok = @ss.scan /(?:!=|>=|<=|>|<|=)/)
84
- yield tok, tok
85
- elsif (tok = @ss.scan KEYWORD_REGEXP)
86
- yield tok.upcase.to_sym, tok
87
- elsif (tok = @ss.scan /SELECT\b/i)
88
- yield :SELECT, tok + @ss.scan(/.*/)
89
- elsif (tok = @ss.scan /NULL\b/i)
90
- yield :NULL, nil
91
- elsif (tok = @ss.scan /`([^`]|``)*`/)
92
- yield :IDENTIFIER, tok.slice(1...-1).gsub(/``/, '`')
93
- elsif (tok = @ss.scan /'([^']|'')*'/) #'
94
- yield :VALUE, tok.slice(1...-1).gsub(/''/, "'")
95
- elsif (tok = @ss.scan /"([^"]|"")*"/) #"
96
- yield :VALUE, tok.slice(1...-1).gsub(/""/, '"')
97
- elsif (tok = @ss.scan /(0|[1-9]\d*)/)
98
- yield :NATURAL_NUMBER, tok.to_i
99
- elsif (tok = @ss.scan /[,\(\)\*]/)
100
- yield tok, tok
101
- elsif (tok = @ss.scan /[a-z_$][0-9a-z_$]*\b/i)
102
- yield :IDENTIFIER, tok
103
- else
104
- raise Racc::ParseError, ('parse error on value "%s"' % @ss.rest.inspect)
105
- end
106
- end
107
-
108
- yield false, '$'
109
- end
110
- private :scan
111
-
112
- def parse
113
- yyparse self, :scan
114
- end
115
-
116
- def self.parse(obj)
117
- self.new(obj).parse
118
- end
119
-
120
- ..end lib/sdbcli/sdb-parser.y modeval..idca9c582f51
121
-
122
- ##### racc 1.4.5 generates ###
123
-
124
- racc_reduce_table = [
125
- 0, 0, :racc_error,
126
- 1, 27, :_reduce_none,
127
- 1, 27, :_reduce_none,
128
- 1, 27, :_reduce_none,
129
- 1, 27, :_reduce_none,
130
- 1, 27, :_reduce_none,
131
- 1, 27, :_reduce_none,
132
- 1, 27, :_reduce_none,
133
- 1, 27, :_reduce_none,
134
- 1, 27, :_reduce_none,
135
- 8, 28, :_reduce_10,
136
- 0, 36, :_reduce_11,
137
- 1, 36, :_reduce_12,
138
- 1, 36, :_reduce_none,
139
- 10, 29, :_reduce_14,
140
- 1, 38, :_reduce_15,
141
- 3, 38, :_reduce_16,
142
- 1, 40, :_reduce_none,
143
- 1, 40, :_reduce_none,
144
- 8, 30, :_reduce_19,
145
- 1, 41, :_reduce_20,
146
- 3, 41, :_reduce_21,
147
- 3, 42, :_reduce_22,
148
- 8, 31, :_reduce_23,
149
- 0, 43, :_reduce_24,
150
- 1, 43, :_reduce_none,
151
- 1, 32, :_reduce_26,
152
- 3, 33, :_reduce_27,
153
- 3, 34, :_reduce_28,
154
- 2, 35, :_reduce_29,
155
- 1, 37, :_reduce_30,
156
- 3, 37, :_reduce_31,
157
- 1, 39, :_reduce_32,
158
- 3, 39, :_reduce_33 ]
159
-
160
- racc_reduce_n = 34
161
-
162
- racc_shift_n = 76
163
-
164
- racc_action_table = [
165
- 6, 8, 53, 24, 46, 73, 48, 74, 25, 1,
166
- 24, 55, 52, 56, 46, 10, 48, 13, 15, 17,
167
- 30, 3, 5, 31, 32, 33, 34, 35, 36, 34,
168
- 37, 38, 39, 40, 41, 42, 45, 27, 50, 51,
169
- 26, 54, 21, 57, 58, 42, 60, 61, 62, 20,
170
- 64, 65, 66, 67, 68, 69, 70, 72, 19, 75 ]
171
-
172
- racc_action_check = [
173
- 0, 0, 43, 8, 56, 71, 56, 71, 8, 0,
174
- 13, 47, 43, 47, 39, 0, 39, 0, 0, 0,
175
- 17, 0, 0, 19, 20, 22, 23, 26, 27, 28,
176
- 29, 30, 31, 33, 34, 36, 37, 10, 40, 42,
177
- 9, 45, 5, 50, 51, 52, 53, 54, 55, 3,
178
- 57, 60, 61, 62, 64, 65, 66, 67, 1, 74 ]
179
-
180
- racc_action_pointer = [
181
- -2, 46, nil, 27, nil, 17, nil, nil, -2, 40,
182
- 32, nil, nil, 5, nil, nil, nil, -2, nil, 18,
183
- 19, nil, 21, 10, nil, nil, 27, 10, 13, 26,
184
- 26, 19, nil, 28, 29, nil, 30, 31, nil, 9,
185
- 32, nil, 31, -4, nil, 35, nil, -3, nil, nil,
186
- 36, 35, 40, 39, 40, 33, -1, 42, nil, nil,
187
- 43, 44, 40, nil, 45, 46, 47, 48, nil, nil,
188
- nil, -9, nil, nil, 50, nil ]
189
-
190
- racc_action_default = [
191
- -34, -34, -6, -34, -7, -34, -9, -8, -11, -34,
192
- -34, -1, -2, -24, -3, -26, -4, -34, -5, -34,
193
- -34, -29, -34, -13, -30, -12, -34, -34, -25, -34,
194
- -34, -34, -28, -34, -34, 76, -34, -34, -27, -34,
195
- -34, -31, -34, -34, -20, -34, -18, -34, -17, -15,
196
- -34, -34, -34, -34, -34, -34, -34, -34, -22, -21,
197
- -34, -34, -34, -16, -34, -34, -34, -34, -10, -19,
198
- -23, -34, -32, -14, -34, -33 ]
199
-
200
- racc_goto_table = [
201
- 49, 23, 44, 7, 16, 18, 28, 2, 4, 14,
202
- 22, 9, 47, 71, 12, 43, 11, 63, 59, 29 ]
203
-
204
- racc_goto_check = [
205
- 14, 11, 16, 9, 5, 6, 11, 7, 8, 4,
206
- 10, 1, 12, 13, 3, 15, 2, 14, 16, 17 ]
207
-
208
- racc_goto_pointer = [
209
- nil, 11, 16, 14, 9, 4, 5, 7, 8, 3,
210
- 2, -7, -27, -54, -39, -21, -34, 6 ]
211
-
212
- racc_goto_default = [
213
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
214
- nil, nil, nil, nil, nil, nil, nil, nil ]
215
-
216
- racc_token_table = {
217
- false => 0,
218
- Object.new => 1,
219
- :use_stmt => 2,
220
- :GET => 3,
221
- :FROM => 4,
222
- :IDENTIFIER => 5,
223
- :WHERE => 6,
224
- :ITEMNAME => 7,
225
- "=" => 8,
226
- :VALUE => 9,
227
- "*" => 10,
228
- :INSERT => 11,
229
- :INTO => 12,
230
- "(" => 13,
231
- ")" => 14,
232
- :VALUES => 15,
233
- "," => 16,
234
- :UPDATE => 17,
235
- :SET => 18,
236
- :DELETE => 19,
237
- :SELECT => 20,
238
- :CREATE => 21,
239
- :DOMAIN => 22,
240
- :DROP => 23,
241
- :SHOW => 24,
242
- :DOMAINS => 25 }
243
-
244
- racc_use_result_var = false
245
-
246
- racc_nt_base = 26
247
-
248
- Racc_arg = [
249
- racc_action_table,
250
- racc_action_check,
251
- racc_action_default,
252
- racc_action_pointer,
253
- racc_goto_table,
254
- racc_goto_check,
255
- racc_goto_default,
256
- racc_goto_pointer,
257
- racc_nt_base,
258
- racc_reduce_table,
259
- racc_token_table,
260
- racc_shift_n,
261
- racc_reduce_n,
262
- racc_use_result_var ]
263
-
264
- Racc_token_to_s_table = [
265
- '$end',
266
- 'error',
267
- 'use_stmt',
268
- 'GET',
269
- 'FROM',
270
- 'IDENTIFIER',
271
- 'WHERE',
272
- 'ITEMNAME',
273
- '"="',
274
- 'VALUE',
275
- '"*"',
276
- 'INSERT',
277
- 'INTO',
278
- '"("',
279
- '")"',
280
- 'VALUES',
281
- '","',
282
- 'UPDATE',
283
- 'SET',
284
- 'DELETE',
285
- 'SELECT',
286
- 'CREATE',
287
- 'DOMAIN',
288
- 'DROP',
289
- 'SHOW',
290
- 'DOMAINS',
291
- '$start',
292
- 'stmt',
293
- 'get_stmt',
294
- 'insert_stmt',
295
- 'update_stmt',
296
- 'delete_stmt',
297
- 'select_stmt',
298
- 'create_stmt',
299
- 'drop_stmt',
300
- 'show_stmt',
301
- 'get_output_list',
302
- 'identifier_list',
303
- 'insert_identifier_list',
304
- 'value_list',
305
- 'itemname_identifier',
306
- 'set_clause_list',
307
- 'set_clause',
308
- 'delete_attr_list']
309
-
310
- Racc_debug_parser = false
311
-
312
- ##### racc system variables end #####
313
-
314
- # reduce 0 omitted
315
-
316
- # reduce 1 omitted
317
-
318
- # reduce 2 omitted
319
-
320
- # reduce 3 omitted
321
-
322
- # reduce 4 omitted
323
-
324
- # reduce 5 omitted
325
-
326
- # reduce 6 omitted
327
-
328
- # reduce 7 omitted
329
-
330
- # reduce 8 omitted
331
-
332
- # reduce 9 omitted
333
-
334
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 17
335
- def _reduce_10( val, _values)
336
- struct(:GET, :domain => val[3], :item_name => val[7], :attr_names => val[1])
337
- end
338
- .,.,
339
-
340
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 22
341
- def _reduce_11( val, _values)
342
- []
343
- end
344
- .,.,
345
-
346
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 26
347
- def _reduce_12( val, _values)
348
- []
349
- end
350
- .,.,
351
-
352
- # reduce 13 omitted
353
-
354
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 47
355
- def _reduce_14( val, _values)
356
- unless val[4].length == val[8].length
357
- raise Racc::ParseError, 'The number of an attribute and values differs'
358
- end
359
-
360
- attrs = {}
361
- val[4].zip(val[8]).each {|k, v| attrs[k] = v }
362
- item_name = attrs.find {|k, v| k =~ /\AitemName\Z/i }
363
-
364
- unless item_name
365
- raise Racc::ParseError,'itemName is not contained in the INSERT statement'
366
- end
367
-
368
- attrs.delete(item_name[0])
369
- item_name = item_name[1]
370
-
371
- struct(:INSERT, :domain => val[2], :item_name => item_name, :attrs => attrs)
372
- end
373
- .,.,
374
-
375
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 53
376
- def _reduce_15( val, _values)
377
- [val[0]]
378
- end
379
- .,.,
380
-
381
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 57
382
- def _reduce_16( val, _values)
383
- val[0] + [val[2]]
384
- end
385
- .,.,
386
-
387
- # reduce 17 omitted
388
-
389
- # reduce 18 omitted
390
-
391
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 67
392
- def _reduce_19( val, _values)
393
- attrs = {}
394
- val[3].each {|k, v| attrs[k] = v }
395
- struct(:UPDATE, :domain => val[1], :items => [[val[7], attrs]])
396
- end
397
- .,.,
398
-
399
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 72
400
- def _reduce_20( val, _values)
401
- [val[0]]
402
- end
403
- .,.,
404
-
405
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 76
406
- def _reduce_21( val, _values)
407
- val[0] + [val[2]]
408
- end
409
- .,.,
410
-
411
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 81
412
- def _reduce_22( val, _values)
413
- [val[0], val[2]]
414
- end
415
- .,.,
416
-
417
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 86
418
- def _reduce_23( val, _values)
419
- struct(:DELETE, :domain => val[3], :items => [[val[7], val[1]]])
420
- end
421
- .,.,
422
-
423
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 91
424
- def _reduce_24( val, _values)
425
- []
426
- end
427
- .,.,
428
-
429
- # reduce 25 omitted
430
-
431
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 97
432
- def _reduce_26( val, _values)
433
- struct(:SELECT, :query => val[0])
434
- end
435
- .,.,
436
-
437
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 102
438
- def _reduce_27( val, _values)
439
- struct(:CREATE, :domain => val[2])
440
- end
441
- .,.,
442
-
443
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 107
444
- def _reduce_28( val, _values)
445
- struct(:DROP, :domain => val[2])
446
- end
447
- .,.,
448
-
449
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 112
450
- def _reduce_29( val, _values)
451
- struct(:SHOW, :operand => :domains)
452
- end
453
- .,.,
454
-
455
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 117
456
- def _reduce_30( val, _values)
457
- [val[0]]
458
- end
459
- .,.,
460
-
461
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 121
462
- def _reduce_31( val, _values)
463
- val[0] + [val[2]]
464
- end
465
- .,.,
466
-
467
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 126
468
- def _reduce_32( val, _values)
469
- [val[0]]
470
- end
471
- .,.,
472
-
473
- module_eval <<'.,.,', 'lib/sdbcli/sdb-parser.y', 130
474
- def _reduce_33( val, _values)
475
- [val[0], val[2]].flatten
476
- end
477
- .,.,
478
-
479
- def _reduce_none( val, _values)
480
- val[0]
481
- end
482
-
483
- end # class Parser
484
-
485
-
486
- end # module SimpleDB
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.9
4
+ # from Racc grammer file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+
10
+ require 'strscan'
11
+
12
+ module SimpleDB
13
+
14
+ class Parser < Racc::Parser
15
+
16
+ module_eval(<<'...end sdb-parser.y/module_eval...', 'sdb-parser.y', 139)
17
+
18
+ KEYWORDS = %w(
19
+ AND
20
+ ASC
21
+ BETWEEN
22
+ BY
23
+ CREATE
24
+ DELETE
25
+ DESC
26
+ DOMAINS
27
+ DOMAIN
28
+ DROP
29
+ EVERY
30
+ FROM
31
+ GET
32
+ INSERT
33
+ INTERSECTION
34
+ INTO
35
+ IN
36
+ IS
37
+ ITEMNAME
38
+ LIKE
39
+ LIMIT
40
+ NOT
41
+ ORDER
42
+ OR
43
+ SET
44
+ SHOW
45
+ UPDATE
46
+ VALUES
47
+ WHERE
48
+ )
49
+
50
+ KEYWORD_REGEXP = Regexp.compile("#{KEYWORDS.join '|'}\\b", Regexp::IGNORECASE)
51
+
52
+ def initialize(obj)
53
+ src = obj.is_a?(IO) ? obj.read : obj.to_s
54
+ @ss = StringScanner.new(src)
55
+ end
56
+
57
+ @@structs = {}
58
+
59
+ def struct(name, attrs = {})
60
+ unless (clazz = @@structs[name])
61
+ clazz = attrs.empty? ? Struct.new(name.to_s) : Struct.new(name.to_s, *attrs.keys)
62
+ @@structs[name] = clazz
63
+ end
64
+
65
+ obj = clazz.new
66
+
67
+ attrs.each do |key, val|
68
+ obj.send("#{key}=", val)
69
+ end
70
+
71
+ return obj
72
+ end
73
+ private :struct
74
+
75
+ def scan
76
+ tok = nil
77
+
78
+ until @ss.eos?
79
+ if (tok = @ss.scan /\s+/)
80
+ # nothing to do
81
+ elsif (tok = @ss.scan /(?:!=|>=|<=|>|<|=)/)
82
+ yield [tok, tok]
83
+ elsif (tok = @ss.scan KEYWORD_REGEXP)
84
+ yield [tok.upcase.to_sym, tok]
85
+ elsif (tok = @ss.scan /SELECT\b/i)
86
+ yield [:SELECT, tok + @ss.scan(/.*/)]
87
+ elsif (tok = @ss.scan /NULL\b/i)
88
+ yield [:NULL, nil]
89
+ elsif (tok = @ss.scan /`([^`]|``)*`/)
90
+ yield [:IDENTIFIER, tok.slice(1...-1).gsub(/``/, '`')]
91
+ elsif (tok = @ss.scan /'([^']|'')*'/) #'
92
+ yield [:VALUE, tok.slice(1...-1).gsub(/''/, "'")]
93
+ elsif (tok = @ss.scan /"([^"]|"")*"/) #"
94
+ yield [:VALUE, tok.slice(1...-1).gsub(/""/, '"')]
95
+ elsif (tok = @ss.scan /(0|[1-9]\d*)/)
96
+ yield [:NATURAL_NUMBER, tok.to_i]
97
+ elsif (tok = @ss.scan /[,\(\)\*]/)
98
+ yield [tok, tok]
99
+ elsif (tok = @ss.scan /[a-z_$][0-9a-z_$]*\b/i)
100
+ yield [:IDENTIFIER, tok]
101
+ else
102
+ raise Racc::ParseError, ('parse error on value "%s"' % @ss.rest.inspect)
103
+ end
104
+ end
105
+
106
+ yield [false, '$']
107
+ end
108
+ private :scan
109
+
110
+ def parse
111
+ yyparse self, :scan
112
+ end
113
+
114
+ def self.parse(obj)
115
+ self.new(obj).parse
116
+ end
117
+
118
+ ...end sdb-parser.y/module_eval...
119
+ ##### State transition tables begin ###
120
+
121
+ racc_action_table = [
122
+ 10, 11, 51, 23, 50, 56, 49, 57, 21, 12,
123
+ 46, 73, 52, 74, 50, 13, 49, 14, 15, 16,
124
+ 30, 17, 18, 31, 32, 33, 34, 35, 36, 33,
125
+ 37, 38, 39, 40, 41, 44, 45, 29, 28, 23,
126
+ 53, 54, 55, 25, 58, 44, 60, 61, 62, 63,
127
+ 24, 65, 66, 67, 68, 69, 70, 72, 19, 75 ]
128
+
129
+ racc_action_check = [
130
+ 0, 0, 42, 11, 57, 47, 57, 47, 11, 0,
131
+ 39, 71, 42, 71, 41, 0, 41, 0, 0, 0,
132
+ 18, 0, 0, 19, 20, 22, 24, 25, 26, 27,
133
+ 28, 29, 32, 33, 34, 35, 36, 17, 16, 14,
134
+ 44, 45, 46, 13, 51, 52, 53, 54, 55, 56,
135
+ 12, 58, 61, 62, 63, 65, 66, 68, 1, 74 ]
136
+
137
+ racc_action_pointer = [
138
+ -2, 58, nil, nil, nil, nil, nil, nil, nil, nil,
139
+ nil, -2, 38, 38, 34, nil, 16, 15, -5, 23,
140
+ 20, nil, 9, nil, 21, 9, 24, 13, 25, 26,
141
+ nil, nil, 27, 28, 21, 30, 31, nil, nil, 4,
142
+ nil, 9, -4, nil, 32, 35, 35, -9, nil, nil,
143
+ nil, 37, 40, 37, 40, 40, 34, -1, 43, nil,
144
+ nil, 44, 44, 41, nil, 46, 47, nil, 48, nil,
145
+ nil, -3, nil, nil, 50, nil ]
146
+
147
+ racc_action_default = [
148
+ -34, -34, -1, -2, -3, -4, -5, -6, -7, -8,
149
+ -9, -11, -34, -34, -24, -26, -34, -34, -34, -34,
150
+ -34, -12, -13, -30, -34, -34, -34, -25, -34, -34,
151
+ -29, 76, -34, -34, -34, -34, -34, -27, -28, -34,
152
+ -31, -34, -34, -20, -34, -34, -34, -34, -15, -17,
153
+ -18, -34, -34, -34, -34, -34, -34, -34, -34, -21,
154
+ -22, -34, -34, -34, -16, -34, -34, -10, -34, -19,
155
+ -23, -34, -32, -14, -34, -33 ]
156
+
157
+ racc_goto_table = [
158
+ 43, 22, 48, 9, 27, 5, 6, 7, 8, 4,
159
+ 20, 1, 47, 71, 3, 42, 2, 59, 64, 26 ]
160
+
161
+ racc_goto_check = [
162
+ 16, 11, 14, 9, 11, 5, 6, 7, 8, 4,
163
+ 10, 1, 12, 13, 3, 15, 2, 16, 14, 17 ]
164
+
165
+ racc_goto_pointer = [
166
+ nil, 11, 16, 14, 9, 5, 6, 7, 8, 3,
167
+ -1, -10, -29, -55, -39, -20, -35, 5 ]
168
+
169
+ racc_goto_default = [
170
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
171
+ nil, nil, nil, nil, nil, nil, nil, nil ]
172
+
173
+ racc_reduce_table = [
174
+ 0, 0, :racc_error,
175
+ 1, 27, :_reduce_none,
176
+ 1, 27, :_reduce_none,
177
+ 1, 27, :_reduce_none,
178
+ 1, 27, :_reduce_none,
179
+ 1, 27, :_reduce_none,
180
+ 1, 27, :_reduce_none,
181
+ 1, 27, :_reduce_none,
182
+ 1, 27, :_reduce_none,
183
+ 1, 27, :_reduce_none,
184
+ 8, 28, :_reduce_10,
185
+ 0, 36, :_reduce_11,
186
+ 1, 36, :_reduce_12,
187
+ 1, 36, :_reduce_none,
188
+ 10, 29, :_reduce_14,
189
+ 1, 38, :_reduce_15,
190
+ 3, 38, :_reduce_16,
191
+ 1, 40, :_reduce_none,
192
+ 1, 40, :_reduce_none,
193
+ 8, 30, :_reduce_19,
194
+ 1, 41, :_reduce_20,
195
+ 3, 41, :_reduce_21,
196
+ 3, 42, :_reduce_22,
197
+ 8, 31, :_reduce_23,
198
+ 0, 43, :_reduce_24,
199
+ 1, 43, :_reduce_none,
200
+ 1, 32, :_reduce_26,
201
+ 3, 33, :_reduce_27,
202
+ 3, 34, :_reduce_28,
203
+ 2, 35, :_reduce_29,
204
+ 1, 37, :_reduce_30,
205
+ 3, 37, :_reduce_31,
206
+ 1, 39, :_reduce_32,
207
+ 3, 39, :_reduce_33 ]
208
+
209
+ racc_reduce_n = 34
210
+
211
+ racc_shift_n = 76
212
+
213
+ racc_token_table = {
214
+ false => 0,
215
+ :error => 1,
216
+ :use_stmt => 2,
217
+ :GET => 3,
218
+ :FROM => 4,
219
+ :IDENTIFIER => 5,
220
+ :WHERE => 6,
221
+ :ITEMNAME => 7,
222
+ "=" => 8,
223
+ :VALUE => 9,
224
+ "*" => 10,
225
+ :INSERT => 11,
226
+ :INTO => 12,
227
+ "(" => 13,
228
+ ")" => 14,
229
+ :VALUES => 15,
230
+ "," => 16,
231
+ :UPDATE => 17,
232
+ :SET => 18,
233
+ :DELETE => 19,
234
+ :SELECT => 20,
235
+ :CREATE => 21,
236
+ :DOMAIN => 22,
237
+ :DROP => 23,
238
+ :SHOW => 24,
239
+ :DOMAINS => 25 }
240
+
241
+ racc_nt_base = 26
242
+
243
+ racc_use_result_var = false
244
+
245
+ Racc_arg = [
246
+ racc_action_table,
247
+ racc_action_check,
248
+ racc_action_default,
249
+ racc_action_pointer,
250
+ racc_goto_table,
251
+ racc_goto_check,
252
+ racc_goto_default,
253
+ racc_goto_pointer,
254
+ racc_nt_base,
255
+ racc_reduce_table,
256
+ racc_token_table,
257
+ racc_shift_n,
258
+ racc_reduce_n,
259
+ racc_use_result_var ]
260
+
261
+ Racc_token_to_s_table = [
262
+ "$end",
263
+ "error",
264
+ "use_stmt",
265
+ "GET",
266
+ "FROM",
267
+ "IDENTIFIER",
268
+ "WHERE",
269
+ "ITEMNAME",
270
+ "\"=\"",
271
+ "VALUE",
272
+ "\"*\"",
273
+ "INSERT",
274
+ "INTO",
275
+ "\"(\"",
276
+ "\")\"",
277
+ "VALUES",
278
+ "\",\"",
279
+ "UPDATE",
280
+ "SET",
281
+ "DELETE",
282
+ "SELECT",
283
+ "CREATE",
284
+ "DOMAIN",
285
+ "DROP",
286
+ "SHOW",
287
+ "DOMAINS",
288
+ "$start",
289
+ "stmt",
290
+ "get_stmt",
291
+ "insert_stmt",
292
+ "update_stmt",
293
+ "delete_stmt",
294
+ "select_stmt",
295
+ "create_stmt",
296
+ "drop_stmt",
297
+ "show_stmt",
298
+ "get_output_list",
299
+ "identifier_list",
300
+ "insert_identifier_list",
301
+ "value_list",
302
+ "itemname_identifier",
303
+ "set_clause_list",
304
+ "set_clause",
305
+ "delete_attr_list" ]
306
+
307
+ Racc_debug_parser = false
308
+
309
+ ##### State transition tables end #####
310
+
311
+ # reduce 0 omitted
312
+
313
+ # reduce 1 omitted
314
+
315
+ # reduce 2 omitted
316
+
317
+ # reduce 3 omitted
318
+
319
+ # reduce 4 omitted
320
+
321
+ # reduce 5 omitted
322
+
323
+ # reduce 6 omitted
324
+
325
+ # reduce 7 omitted
326
+
327
+ # reduce 8 omitted
328
+
329
+ # reduce 9 omitted
330
+
331
+ module_eval(<<'.,.,', 'sdb-parser.y', 15)
332
+ def _reduce_10(val, _values)
333
+ struct(:GET, :domain => val[3], :item_name => val[7], :attr_names => val[1])
334
+
335
+ end
336
+ .,.,
337
+
338
+ module_eval(<<'.,.,', 'sdb-parser.y', 20)
339
+ def _reduce_11(val, _values)
340
+ []
341
+
342
+ end
343
+ .,.,
344
+
345
+ module_eval(<<'.,.,', 'sdb-parser.y', 24)
346
+ def _reduce_12(val, _values)
347
+ []
348
+
349
+ end
350
+ .,.,
351
+
352
+ # reduce 13 omitted
353
+
354
+ module_eval(<<'.,.,', 'sdb-parser.y', 30)
355
+ def _reduce_14(val, _values)
356
+ unless val[4].length == val[8].length
357
+ raise Racc::ParseError, 'The number of an attribute and values differs'
358
+ end
359
+
360
+ attrs = {}
361
+ val[4].zip(val[8]).each {|k, v| attrs[k] = v }
362
+ item_name = attrs.find {|k, v| k =~ /\AitemName\Z/i }
363
+
364
+ unless item_name
365
+ raise Racc::ParseError,'itemName is not contained in the INSERT statement'
366
+ end
367
+
368
+ attrs.delete(item_name[0])
369
+ item_name = item_name[1]
370
+
371
+ struct(:INSERT, :domain => val[2], :item_name => item_name, :attrs => attrs)
372
+
373
+ end
374
+ .,.,
375
+
376
+ module_eval(<<'.,.,', 'sdb-parser.y', 51)
377
+ def _reduce_15(val, _values)
378
+ [val[0]]
379
+
380
+ end
381
+ .,.,
382
+
383
+ module_eval(<<'.,.,', 'sdb-parser.y', 55)
384
+ def _reduce_16(val, _values)
385
+ val[0] + [val[2]]
386
+
387
+ end
388
+ .,.,
389
+
390
+ # reduce 17 omitted
391
+
392
+ # reduce 18 omitted
393
+
394
+ module_eval(<<'.,.,', 'sdb-parser.y', 63)
395
+ def _reduce_19(val, _values)
396
+ attrs = {}
397
+ val[3].each {|k, v| attrs[k] = v }
398
+ struct(:UPDATE, :domain => val[1], :items => [[val[7], attrs]])
399
+
400
+ end
401
+ .,.,
402
+
403
+ module_eval(<<'.,.,', 'sdb-parser.y', 70)
404
+ def _reduce_20(val, _values)
405
+ [val[0]]
406
+
407
+ end
408
+ .,.,
409
+
410
+ module_eval(<<'.,.,', 'sdb-parser.y', 74)
411
+ def _reduce_21(val, _values)
412
+ val[0] + [val[2]]
413
+
414
+ end
415
+ .,.,
416
+
417
+ module_eval(<<'.,.,', 'sdb-parser.y', 79)
418
+ def _reduce_22(val, _values)
419
+ [val[0], val[2]]
420
+
421
+ end
422
+ .,.,
423
+
424
+ module_eval(<<'.,.,', 'sdb-parser.y', 84)
425
+ def _reduce_23(val, _values)
426
+ struct(:DELETE, :domain => val[3], :items => [[val[7], val[1]]])
427
+
428
+ end
429
+ .,.,
430
+
431
+ module_eval(<<'.,.,', 'sdb-parser.y', 89)
432
+ def _reduce_24(val, _values)
433
+ []
434
+
435
+ end
436
+ .,.,
437
+
438
+ # reduce 25 omitted
439
+
440
+ module_eval(<<'.,.,', 'sdb-parser.y', 95)
441
+ def _reduce_26(val, _values)
442
+ struct(:SELECT, :query => val[0])
443
+
444
+ end
445
+ .,.,
446
+
447
+ module_eval(<<'.,.,', 'sdb-parser.y', 100)
448
+ def _reduce_27(val, _values)
449
+ struct(:CREATE, :domain => val[2])
450
+
451
+ end
452
+ .,.,
453
+
454
+ module_eval(<<'.,.,', 'sdb-parser.y', 105)
455
+ def _reduce_28(val, _values)
456
+ struct(:DROP, :domain => val[2])
457
+
458
+ end
459
+ .,.,
460
+
461
+ module_eval(<<'.,.,', 'sdb-parser.y', 110)
462
+ def _reduce_29(val, _values)
463
+ struct(:SHOW, :operand => :domains)
464
+
465
+ end
466
+ .,.,
467
+
468
+ module_eval(<<'.,.,', 'sdb-parser.y', 115)
469
+ def _reduce_30(val, _values)
470
+ [val[0]]
471
+
472
+ end
473
+ .,.,
474
+
475
+ module_eval(<<'.,.,', 'sdb-parser.y', 119)
476
+ def _reduce_31(val, _values)
477
+ val[0] + [val[2]]
478
+
479
+ end
480
+ .,.,
481
+
482
+ module_eval(<<'.,.,', 'sdb-parser.y', 124)
483
+ def _reduce_32(val, _values)
484
+ [val[0]]
485
+
486
+ end
487
+ .,.,
488
+
489
+ module_eval(<<'.,.,', 'sdb-parser.y', 128)
490
+ def _reduce_33(val, _values)
491
+ [val[0], val[2]].flatten
492
+
493
+ end
494
+ .,.,
495
+
496
+ def _reduce_none(val, _values)
497
+ val[0]
498
+ end
499
+
500
+ end # class Parser
501
+
502
+
503
+ end # module SimpleDB
@@ -201,31 +201,31 @@ def scan
201
201
  if (tok = @ss.scan /\s+/)
202
202
  # nothing to do
203
203
  elsif (tok = @ss.scan /(?:!=|>=|<=|>|<|=)/)
204
- yield tok, tok
204
+ yield [tok, tok]
205
205
  elsif (tok = @ss.scan KEYWORD_REGEXP)
206
- yield tok.upcase.to_sym, tok
206
+ yield [tok.upcase.to_sym, tok]
207
207
  elsif (tok = @ss.scan /SELECT\b/i)
208
- yield :SELECT, tok + @ss.scan(/.*/)
208
+ yield [:SELECT, tok + @ss.scan(/.*/)]
209
209
  elsif (tok = @ss.scan /NULL\b/i)
210
- yield :NULL, nil
210
+ yield [:NULL, nil]
211
211
  elsif (tok = @ss.scan /`([^`]|``)*`/)
212
- yield :IDENTIFIER, tok.slice(1...-1).gsub(/``/, '`')
212
+ yield [:IDENTIFIER, tok.slice(1...-1).gsub(/``/, '`')]
213
213
  elsif (tok = @ss.scan /'([^']|'')*'/) #'
214
- yield :VALUE, tok.slice(1...-1).gsub(/''/, "'")
214
+ yield [:VALUE, tok.slice(1...-1).gsub(/''/, "'")]
215
215
  elsif (tok = @ss.scan /"([^"]|"")*"/) #"
216
- yield :VALUE, tok.slice(1...-1).gsub(/""/, '"')
216
+ yield [:VALUE, tok.slice(1...-1).gsub(/""/, '"')]
217
217
  elsif (tok = @ss.scan /(0|[1-9]\d*)/)
218
- yield :NATURAL_NUMBER, tok.to_i
218
+ yield [:NATURAL_NUMBER, tok.to_i]
219
219
  elsif (tok = @ss.scan /[,\(\)\*]/)
220
- yield tok, tok
220
+ yield [tok, tok]
221
221
  elsif (tok = @ss.scan /[a-z_$][0-9a-z_$]*\b/i)
222
- yield :IDENTIFIER, tok
222
+ yield [:IDENTIFIER, tok]
223
223
  else
224
224
  raise Racc::ParseError, ('parse error on value "%s"' % @ss.rest.inspect)
225
225
  end
226
226
  end
227
227
 
228
- yield false, '$'
228
+ yield [false, '$']
229
229
  end
230
230
  private :scan
231
231
 
metadata CHANGED
@@ -1,45 +1,39 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sdbcli
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.7
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 6
10
- version: 0.2.6
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - winebarrel
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-01-17 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-01-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: nokogiri
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
34
30
  description:
35
31
  email: sgwr_dts@yahoo.co.jp
36
- executables:
32
+ executables:
37
33
  - sdbcli
38
34
  extensions: []
39
-
40
35
  extra_rdoc_files: []
41
-
42
- files:
36
+ files:
43
37
  - README
44
38
  - bin/sdbcli
45
39
  - lib/sdbcli/sdb-client.rb
@@ -50,36 +44,26 @@ files:
50
44
  - lib/sdbcli.rb
51
45
  homepage: https://bitbucket.org/winebarrel/sdbcli
52
46
  licenses: []
53
-
54
47
  post_install_message:
55
48
  rdoc_options: []
56
-
57
- require_paths:
49
+ require_paths:
58
50
  - lib
59
- required_ruby_version: !ruby/object:Gem::Requirement
51
+ required_ruby_version: !ruby/object:Gem::Requirement
60
52
  none: false
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- hash: 3
65
- segments:
66
- - 0
67
- version: "0"
68
- required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
58
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
77
63
  requirements: []
78
-
79
64
  rubyforge_project:
80
- rubygems_version: 1.8.24
65
+ rubygems_version: 1.8.23
81
66
  signing_key:
82
67
  specification_version: 3
83
68
  summary: sdbcli is an interactive command-line client of Amazon SimpleDB.
84
69
  test_files: []
85
-