gql 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/gql/parser.rb CHANGED
@@ -13,71 +13,18 @@ require 'active_support/core_ext/object/blank'
13
13
  module GQL
14
14
  class Parser < Racc::Parser
15
15
 
16
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 145)
16
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 133)
17
17
 
18
- class QueryNode < Struct.new(:call, :variables)
18
+ class Root < Struct.new(:node, :variables)
19
19
  end
20
20
 
21
- class FieldNode < Struct.new(:name, :alias_name, :call, :fields)
21
+ class Node < Struct.new(:call, :fields)
22
22
  end
23
23
 
24
- class CallNode < Struct.new(:name, :arguments, :call, :fields)
24
+ class Field < Struct.new(:name, :alias_name, :call, :fields)
25
25
  end
26
26
 
27
- class JSONHandler
28
- attr_reader :stack
29
-
30
- def initialize
31
- clear
32
- end
33
-
34
- def start_object
35
- push [:hash]
36
- end
37
-
38
- def start_array
39
- push [:array]
40
- end
41
-
42
- def end_array
43
- @stack.pop
44
- end
45
-
46
- alias :end_object :end_array
47
-
48
- def scalar(s)
49
- @stack.last << [:scalar, s]
50
- end
51
-
52
- def push(o)
53
- @stack.last << o
54
- @stack << o
55
- end
56
-
57
- def result
58
- root = @stack.first.last
59
- value = process(root.first, root.drop(1))
60
- clear
61
- value
62
- end
63
-
64
- private
65
- def clear
66
- @stack = [[:json]]
67
- end
68
-
69
- def process(type, rest)
70
- case type
71
- when :array
72
- rest.map { |x| process(x.first, x.drop(1)) }
73
- when :hash
74
- Hash[rest.map { |x|
75
- process(x.first, x.drop(1))
76
- }.each_slice(2).to_a]
77
- when :scalar
78
- rest.first
79
- end
80
- end
27
+ class Call < Struct.new(:name, :arguments, :call, :fields)
81
28
  end
82
29
 
83
30
  UNESCAPE_MAP = Hash.new { |h, k| h[k] = k.chr }
@@ -111,7 +58,6 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 145)
111
58
  end
112
59
 
113
60
  def parse
114
- @json = JSONHandler.new
115
61
  do_parse
116
62
  end
117
63
 
@@ -147,146 +93,134 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 145)
147
93
  def convert_number(str)
148
94
  str.count('.') > 0 ? str.to_f : str.to_i
149
95
  end
150
-
151
- def convert_variables(arr1, arr2)
152
- Hash[*arr1.flatten(1)].merge Hash[*arr2.flatten(1)]
153
- end
154
96
  ...end parser.y/module_eval...
155
97
  ##### State transition tables begin ###
156
98
 
157
99
  racc_action_table = [
158
- 30, 31, 32, 33, 34, 30, 31, 32, 33, 34,
159
- 38, 25, 65, 6, 39, 10, 25, 27, 52, 30,
160
- 52, 55, 27, 30, 31, 32, 33, 34, 62, 7,
161
- 47, 47, 40, 71, 25, 38, 67, 6, 66, 39,
162
- 27, 30, 31, 32, 33, 34, 30, 31, 32, 33,
163
- 34, 10, 25, 59, 60, 6, 6, 25, 27, 12,
164
- 10, 14, 6, 27, 30, 31, 32, 33, 34, 17,
165
- 35, 10, 63, 30, 10, 25, 71, 71, 10, nil,
166
- nil, 27 ]
100
+ 37, 33, 34, 35, 36, 37, 33, 34, 35, 36,
101
+ 40, 30, 70, 6, 12, 13, 30, 31, 56, 37,
102
+ 69, 21, 31, 37, 33, 34, 35, 36, 47, 7,
103
+ 46, 52, 41, 51, 30, 49, 67, 6, 66, 12,
104
+ 31, 37, 33, 34, 35, 36, 37, 33, 34, 35,
105
+ 36, 13, 30, 60, 61, 6, 12, 30, 31, 6,
106
+ 15, 13, 17, 31, 37, 33, 34, 35, 36, 6,
107
+ 20, 38, 13, 13, 51, 30, 13, 13, 68, 51,
108
+ 37, 31 ]
167
109
 
168
110
  racc_action_check = [
169
- 26, 26, 26, 26, 26, 12, 12, 12, 12, 12,
170
- 16, 26, 51, 0, 16, 39, 12, 26, 26, 24,
171
- 51, 39, 12, 17, 17, 17, 17, 17, 46, 1,
172
- 46, 24, 17, 58, 17, 58, 56, 17, 56, 58,
173
- 17, 60, 60, 60, 60, 60, 63, 63, 63, 63,
174
- 63, 2, 60, 41, 41, 60, 3, 63, 60, 5,
175
- 6, 7, 8, 63, 65, 65, 65, 65, 65, 9,
176
- 13, 38, 49, 62, 67, 65, 68, 69, 71, nil,
177
- nil, 65 ]
111
+ 31, 31, 31, 31, 31, 15, 15, 15, 15, 15,
112
+ 19, 31, 57, 0, 19, 12, 15, 31, 31, 30,
113
+ 57, 12, 15, 20, 20, 20, 20, 20, 22, 1,
114
+ 22, 30, 20, 24, 20, 24, 53, 20, 53, 24,
115
+ 20, 61, 61, 61, 61, 61, 68, 68, 68, 68,
116
+ 68, 2, 61, 42, 42, 61, 2, 68, 61, 3,
117
+ 5, 6, 7, 68, 70, 70, 70, 70, 70, 8,
118
+ 11, 16, 40, 47, 48, 70, 49, 51, 55, 64,
119
+ 67, 70 ]
178
120
 
179
121
  racc_action_pointer = [
180
- -3, 29, 43, 40, nil, 44, 52, 61, 46, 59,
181
- nil, nil, 3, 53, nil, nil, 1, 21, nil, nil,
182
- nil, nil, nil, nil, 17, nil, -2, nil, nil, nil,
183
- nil, nil, nil, nil, nil, nil, nil, nil, 63, 7,
184
- nil, 42, nil, nil, nil, nil, 16, nil, nil, 54,
185
- nil, 0, nil, nil, nil, nil, 24, nil, 26, nil,
186
- 39, nil, 71, 44, nil, 62, nil, 66, 69, 70,
187
- nil, 70, nil, nil, nil, nil, nil, nil, nil, nil ]
122
+ -3, 29, 43, 43, nil, 45, 53, 62, 53, nil,
123
+ nil, 60, 7, nil, nil, 3, 54, nil, nil, 1,
124
+ 21, nil, 16, nil, 26, nil, nil, nil, nil, nil,
125
+ 17, -2, nil, nil, nil, nil, nil, nil, nil, nil,
126
+ 64, nil, 42, nil, nil, nil, nil, 65, 67, 68,
127
+ nil, 69, nil, 24, nil, 60, nil, 0, nil, nil,
128
+ nil, 39, nil, nil, 72, nil, nil, 78, 44, nil,
129
+ 62, nil, nil, nil, nil, nil ]
188
130
 
189
131
  racc_action_default = [
190
- -24, -56, -56, -25, -26, -56, -56, -56, -24, -6,
191
- -55, -27, -56, -56, 80, -1, -4, -56, -28, -30,
192
- -31, -32, -33, -34, -56, -37, -56, -44, -48, -49,
193
- -50, -51, -52, -53, -54, -29, -2, -3, -56, -56,
194
- -7, -56, -10, -11, -12, -35, -56, -38, -40, -56,
195
- -42, -56, -45, -47, -5, -13, -56, -16, -22, -8,
196
- -56, -36, -56, -56, -43, -56, -14, -56, -20, -21,
197
- -19, -56, -9, -39, -41, -46, -15, -17, -18, -23 ]
132
+ -26, -52, -2, -27, -28, -52, -52, -52, -26, -3,
133
+ -4, -8, -52, -51, -29, -52, -52, 76, -1, -7,
134
+ -52, -15, -52, -18, -24, -30, -32, -33, -34, -35,
135
+ -52, -52, -45, -46, -47, -48, -49, -50, -31, -5,
136
+ -52, -9, -52, -12, -13, -14, -16, -52, -22, -52,
137
+ -21, -52, -36, -52, -39, -52, -41, -52, -44, -6,
138
+ -10, -52, -17, -19, -23, -25, -37, -52, -52, -42,
139
+ -52, -11, -20, -38, -40, -43 ]
198
140
 
199
141
  racc_goto_table = [
200
- 13, 42, 43, 53, 36, 37, 57, 8, 45, 70,
201
- 48, 49, 50, 2, 1, 16, 41, 19, 56, 77,
202
- 78, 15, 11, 18, 46, 51, nil, nil, nil, nil,
203
- 61, nil, nil, 58, 76, nil, nil, 64, nil, nil,
204
- 74, nil, 75, 54, 72, 43, 68, 69, 73, 49,
205
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
206
- nil, 58, nil, nil, nil, 79 ]
142
+ 26, 9, 16, 43, 44, 54, 50, 10, 24, 2,
143
+ 1, 8, 55, 19, 42, 23, 58, 18, 22, 14,
144
+ 25, 53, 57, nil, 39, nil, nil, nil, nil, 48,
145
+ 63, nil, nil, nil, nil, nil, nil, nil, nil, 59,
146
+ nil, nil, 73, 24, 71, 44, 72, 65, 64, 55,
147
+ 62, nil, nil, 74, nil, 75 ]
207
148
 
208
149
  racc_goto_check = [
209
- 4, 9, 10, 18, 6, 7, 13, 3, 23, 14,
210
- 25, 26, 28, 2, 1, 5, 8, 11, 12, 14,
211
- 14, 2, 16, 17, 24, 29, nil, nil, nil, nil,
212
- 23, nil, nil, 4, 13, nil, nil, 28, nil, nil,
213
- 18, nil, 18, 3, 9, 10, 6, 7, 25, 26,
214
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
215
- nil, 4, nil, nil, nil, 4 ]
150
+ 11, 4, 6, 9, 10, 22, 14, 5, 6, 2,
151
+ 1, 3, 23, 7, 8, 13, 11, 2, 12, 16,
152
+ 17, 21, 24, nil, 5, nil, nil, nil, nil, 5,
153
+ 14, nil, nil, nil, nil, nil, nil, nil, nil, 4,
154
+ nil, nil, 22, 6, 9, 10, 14, 6, 4, 23,
155
+ 13, nil, nil, 11, nil, 11 ]
216
156
 
217
157
  racc_goto_pointer = [
218
- nil, 14, 13, 5, -6, 6, -12, -11, -1, -16,
219
- -15, 5, -21, -33, -49, nil, 19, 11, -23, nil,
220
- nil, nil, nil, -16, 0, -14, -13, nil, -14, -1,
221
- nil ]
158
+ nil, 10, 9, 9, -1, 5, -4, 2, -6, -17,
159
+ -16, -15, 6, 3, -18, nil, 16, 5, nil, nil,
160
+ nil, -9, -25, -18, -9 ]
222
161
 
223
162
  racc_goto_default = [
224
- nil, nil, nil, nil, 9, nil, nil, nil, nil, nil,
225
- 5, 44, nil, nil, nil, 3, 4, nil, 20, 21,
226
- 22, 23, 24, nil, nil, nil, 28, 26, nil, nil,
227
- 29 ]
163
+ nil, nil, nil, nil, nil, nil, 11, nil, nil, nil,
164
+ 5, 45, nil, nil, nil, 3, 4, nil, 27, 28,
165
+ 29, nil, nil, 32, nil ]
228
166
 
229
167
  racc_reduce_table = [
230
168
  0, 0, :racc_error,
231
169
  3, 22, :_reduce_1,
232
- 3, 24, :_reduce_2,
233
- 3, 24, :_reduce_3,
234
- 2, 24, :_reduce_4,
235
- 2, 28, :_reduce_5,
236
- 0, 26, :_reduce_6,
237
- 2, 26, :_reduce_7,
238
- 3, 26, :_reduce_8,
239
- 3, 29, :_reduce_9,
240
- 1, 29, :_reduce_10,
170
+ 1, 22, :_reduce_2,
171
+ 1, 24, :_reduce_3,
172
+ 1, 24, :_reduce_4,
173
+ 3, 25, :_reduce_5,
174
+ 4, 25, :_reduce_6,
175
+ 2, 25, :_reduce_7,
176
+ 0, 28, :_reduce_8,
177
+ 2, 28, :_reduce_9,
178
+ 3, 28, :_reduce_10,
179
+ 3, 29, :_reduce_11,
180
+ 1, 29, :_reduce_12,
241
181
  1, 30, :_reduce_none,
242
182
  1, 30, :_reduce_none,
243
- 2, 27, :_reduce_13,
244
- 3, 27, :_reduce_14,
245
- 3, 33, :_reduce_15,
246
- 1, 33, :_reduce_16,
247
- 3, 34, :_reduce_17,
248
- 3, 34, :_reduce_18,
249
- 2, 34, :_reduce_19,
250
- 2, 34, :_reduce_20,
183
+ 2, 26, :_reduce_15,
184
+ 3, 26, :_reduce_16,
185
+ 3, 33, :_reduce_17,
186
+ 1, 33, :_reduce_18,
187
+ 3, 34, :_reduce_19,
188
+ 4, 34, :_reduce_20,
251
189
  2, 34, :_reduce_21,
252
- 1, 34, :_reduce_22,
253
- 2, 35, :_reduce_23,
254
- 0, 23, :_reduce_24,
255
- 1, 23, :_reduce_25,
256
- 1, 36, :_reduce_26,
257
- 2, 36, :_reduce_27,
258
- 3, 37, :_reduce_28,
259
- 3, 31, :_reduce_29,
190
+ 2, 34, :_reduce_22,
191
+ 3, 34, :_reduce_23,
192
+ 1, 34, :_reduce_24,
193
+ 2, 35, :_reduce_25,
194
+ 0, 23, :_reduce_26,
195
+ 1, 23, :_reduce_none,
196
+ 1, 36, :_reduce_none,
197
+ 2, 36, :_reduce_29,
198
+ 3, 37, :_reduce_30,
199
+ 3, 31, :_reduce_31,
260
200
  1, 38, :_reduce_none,
261
- 1, 32, :_reduce_31,
262
- 1, 39, :_reduce_none,
263
- 1, 39, :_reduce_none,
264
- 1, 39, :_reduce_none,
265
- 2, 40, :_reduce_none,
266
- 3, 40, :_reduce_none,
267
- 1, 43, :_reduce_37,
268
- 1, 44, :_reduce_38,
269
- 3, 45, :_reduce_none,
270
- 1, 45, :_reduce_none,
271
- 3, 46, :_reduce_none,
272
- 2, 41, :_reduce_none,
273
- 3, 41, :_reduce_none,
274
- 1, 48, :_reduce_44,
275
- 1, 49, :_reduce_45,
276
- 3, 50, :_reduce_none,
277
- 1, 50, :_reduce_none,
201
+ 1, 32, :_reduce_none,
202
+ 1, 32, :_reduce_none,
203
+ 1, 32, :_reduce_none,
204
+ 2, 39, :_reduce_36,
205
+ 3, 39, :_reduce_37,
206
+ 3, 42, :_reduce_38,
278
207
  1, 42, :_reduce_none,
279
- 1, 42, :_reduce_49,
280
- 1, 47, :_reduce_50,
281
- 1, 51, :_reduce_51,
282
- 1, 51, :_reduce_52,
283
- 1, 51, :_reduce_53,
284
- 1, 51, :_reduce_54,
285
- 1, 25, :_reduce_55 ]
286
-
287
- racc_reduce_n = 56
288
-
289
- racc_shift_n = 80
208
+ 3, 43, :_reduce_40,
209
+ 2, 40, :_reduce_41,
210
+ 3, 40, :_reduce_42,
211
+ 3, 45, :_reduce_43,
212
+ 1, 45, :_reduce_44,
213
+ 1, 41, :_reduce_none,
214
+ 1, 41, :_reduce_46,
215
+ 1, 41, :_reduce_47,
216
+ 1, 41, :_reduce_48,
217
+ 1, 41, :_reduce_49,
218
+ 1, 44, :_reduce_50,
219
+ 1, 27, :_reduce_51 ]
220
+
221
+ racc_reduce_n = 52
222
+
223
+ racc_shift_n = 76
290
224
 
291
225
  racc_token_table = {
292
226
  false => 0,
@@ -354,36 +288,30 @@ Racc_token_to_s_table = [
354
288
  "\"[\"",
355
289
  "\"]\"",
356
290
  "$start",
357
- "query",
291
+ "root",
358
292
  "variables",
293
+ "node",
359
294
  "call",
295
+ "fields",
360
296
  "identifier",
361
297
  "arguments",
362
- "fields",
363
- "sub_call",
364
298
  "argument_list",
365
299
  "argument",
366
300
  "variable_identifier",
367
- "json_text",
301
+ "json_value",
368
302
  "field_list",
369
303
  "field",
370
304
  "alias_identifier",
371
305
  "variable_list",
372
306
  "variable",
373
307
  "variable_value",
374
- "json_value",
375
308
  "object",
376
309
  "array",
377
310
  "scalar",
378
- "start_object",
379
- "end_object",
380
311
  "pairs",
381
312
  "pair",
382
313
  "string",
383
- "start_array",
384
- "end_array",
385
- "values",
386
- "literal" ]
314
+ "values" ]
387
315
 
388
316
  Racc_debug_parser = false
389
317
 
@@ -393,202 +321,197 @@ Racc_debug_parser = false
393
321
 
394
322
  module_eval(<<'.,.,', 'parser.y', 4)
395
323
  def _reduce_1(val, _values, result)
396
- result = QueryNode.new(val[1], convert_variables(val[0], val[2]))
324
+ result = Root.new(val[1], val[0].merge(val[2]))
397
325
  result
398
326
  end
399
327
  .,.,
400
328
 
401
- module_eval(<<'.,.,', 'parser.y', 8)
329
+ module_eval(<<'.,.,', 'parser.y', 5)
402
330
  def _reduce_2(val, _values, result)
403
- result = CallNode.new(val[0], val[1], nil, val[2].presence)
331
+ result = Root.new(Node.new(nil, nil), val[0] )
404
332
  result
405
333
  end
406
334
  .,.,
407
335
 
408
336
  module_eval(<<'.,.,', 'parser.y', 9)
409
337
  def _reduce_3(val, _values, result)
410
- result = CallNode.new(val[0], val[1], val[2], nil)
338
+ result = Node.new(val[0], nil )
411
339
  result
412
340
  end
413
341
  .,.,
414
342
 
415
343
  module_eval(<<'.,.,', 'parser.y', 10)
416
344
  def _reduce_4(val, _values, result)
417
- result = CallNode.new(val[0], val[1], nil, nil)
345
+ result = Node.new(nil, val[0].presence)
418
346
  result
419
347
  end
420
348
  .,.,
421
349
 
422
350
  module_eval(<<'.,.,', 'parser.y', 14)
423
351
  def _reduce_5(val, _values, result)
424
- result = val[1]
352
+ result = Call.new(val[0], val[1], nil, val[2].presence)
425
353
  result
426
354
  end
427
355
  .,.,
428
356
 
429
- module_eval(<<'.,.,', 'parser.y', 18)
357
+ module_eval(<<'.,.,', 'parser.y', 15)
430
358
  def _reduce_6(val, _values, result)
431
- result = []
359
+ result = Call.new(val[0], val[1], val[3], nil )
432
360
  result
433
361
  end
434
362
  .,.,
435
363
 
436
- module_eval(<<'.,.,', 'parser.y', 19)
364
+ module_eval(<<'.,.,', 'parser.y', 16)
437
365
  def _reduce_7(val, _values, result)
438
- result = []
366
+ result = Call.new(val[0], val[1], nil, nil )
439
367
  result
440
368
  end
441
369
  .,.,
442
370
 
443
371
  module_eval(<<'.,.,', 'parser.y', 20)
444
372
  def _reduce_8(val, _values, result)
445
- result = val[1]
373
+ result = []
446
374
  result
447
375
  end
448
376
  .,.,
449
377
 
450
- module_eval(<<'.,.,', 'parser.y', 24)
378
+ module_eval(<<'.,.,', 'parser.y', 21)
451
379
  def _reduce_9(val, _values, result)
452
- result.push val[2]
380
+ result = []
453
381
  result
454
382
  end
455
383
  .,.,
456
384
 
457
- module_eval(<<'.,.,', 'parser.y', 25)
385
+ module_eval(<<'.,.,', 'parser.y', 22)
458
386
  def _reduce_10(val, _values, result)
459
- result = val
387
+ result = val[1]
460
388
  result
461
389
  end
462
390
  .,.,
463
391
 
464
- # reduce 11 omitted
465
-
466
- # reduce 12 omitted
467
-
468
- module_eval(<<'.,.,', 'parser.y', 34)
469
- def _reduce_13(val, _values, result)
470
- result = []
392
+ module_eval(<<'.,.,', 'parser.y', 26)
393
+ def _reduce_11(val, _values, result)
394
+ result.push val[2]
471
395
  result
472
396
  end
473
397
  .,.,
474
398
 
475
- module_eval(<<'.,.,', 'parser.y', 35)
476
- def _reduce_14(val, _values, result)
477
- result = val[1]
399
+ module_eval(<<'.,.,', 'parser.y', 27)
400
+ def _reduce_12(val, _values, result)
401
+ result = val
478
402
  result
479
403
  end
480
404
  .,.,
481
405
 
482
- module_eval(<<'.,.,', 'parser.y', 39)
406
+ # reduce 13 omitted
407
+
408
+ # reduce 14 omitted
409
+
410
+ module_eval(<<'.,.,', 'parser.y', 36)
483
411
  def _reduce_15(val, _values, result)
484
- result.push val[2]
412
+ result = []
485
413
  result
486
414
  end
487
415
  .,.,
488
416
 
489
- module_eval(<<'.,.,', 'parser.y', 40)
417
+ module_eval(<<'.,.,', 'parser.y', 37)
490
418
  def _reduce_16(val, _values, result)
491
- result = val
419
+ result = val[1]
492
420
  result
493
421
  end
494
422
  .,.,
495
423
 
496
- module_eval(<<'.,.,', 'parser.y', 44)
424
+ module_eval(<<'.,.,', 'parser.y', 41)
497
425
  def _reduce_17(val, _values, result)
498
- result = FieldNode.new(val[0], val[2], nil, val[1].presence)
426
+ result.push val[2]
499
427
  result
500
428
  end
501
429
  .,.,
502
430
 
503
- module_eval(<<'.,.,', 'parser.y', 45)
431
+ module_eval(<<'.,.,', 'parser.y', 42)
504
432
  def _reduce_18(val, _values, result)
505
- result = FieldNode.new(val[0], val[2], val[1], nil)
433
+ result = val
506
434
  result
507
435
  end
508
436
  .,.,
509
437
 
510
438
  module_eval(<<'.,.,', 'parser.y', 46)
511
439
  def _reduce_19(val, _values, result)
512
- result = FieldNode.new(val[0], val[1], nil, nil)
440
+ result = Field.new(val[0], val[2], nil, val[1].presence)
513
441
  result
514
442
  end
515
443
  .,.,
516
444
 
517
445
  module_eval(<<'.,.,', 'parser.y', 47)
518
446
  def _reduce_20(val, _values, result)
519
- result = FieldNode.new(val[0], nil, nil, val[1].presence)
447
+ result = Field.new(val[0], val[3], val[2], nil )
520
448
  result
521
449
  end
522
450
  .,.,
523
451
 
524
452
  module_eval(<<'.,.,', 'parser.y', 48)
525
453
  def _reduce_21(val, _values, result)
526
- result = FieldNode.new(val[0], nil, val[1], nil)
454
+ result = Field.new(val[0], val[1], nil, nil )
527
455
  result
528
456
  end
529
457
  .,.,
530
458
 
531
459
  module_eval(<<'.,.,', 'parser.y', 49)
532
460
  def _reduce_22(val, _values, result)
533
- result = FieldNode.new(val[0], nil, nil, nil)
461
+ result = Field.new(val[0], nil, nil, val[1].presence)
534
462
  result
535
463
  end
536
464
  .,.,
537
465
 
538
- module_eval(<<'.,.,', 'parser.y', 53)
466
+ module_eval(<<'.,.,', 'parser.y', 50)
539
467
  def _reduce_23(val, _values, result)
540
- result = val[1]
468
+ result = Field.new(val[0], nil, val[2], nil )
541
469
  result
542
470
  end
543
471
  .,.,
544
472
 
545
- module_eval(<<'.,.,', 'parser.y', 57)
473
+ module_eval(<<'.,.,', 'parser.y', 51)
546
474
  def _reduce_24(val, _values, result)
547
- result = []
475
+ result = Field.new(val[0], nil, nil, nil )
548
476
  result
549
477
  end
550
478
  .,.,
551
479
 
552
- module_eval(<<'.,.,', 'parser.y', 58)
480
+ module_eval(<<'.,.,', 'parser.y', 55)
553
481
  def _reduce_25(val, _values, result)
554
- result = val[0]
482
+ result = val[1]
555
483
  result
556
484
  end
557
485
  .,.,
558
486
 
559
- module_eval(<<'.,.,', 'parser.y', 62)
487
+ module_eval(<<'.,.,', 'parser.y', 59)
560
488
  def _reduce_26(val, _values, result)
561
- result = val
489
+ result = {}
562
490
  result
563
491
  end
564
492
  .,.,
565
493
 
566
- module_eval(<<'.,.,', 'parser.y', 63)
567
- def _reduce_27(val, _values, result)
568
- result.push val[1]
569
- result
570
- end
571
- .,.,
494
+ # reduce 27 omitted
495
+
496
+ # reduce 28 omitted
572
497
 
573
- module_eval(<<'.,.,', 'parser.y', 67)
574
- def _reduce_28(val, _values, result)
575
- result = [val[0], val[2]]
498
+ module_eval(<<'.,.,', 'parser.y', 65)
499
+ def _reduce_29(val, _values, result)
500
+ result.update val[1]
576
501
  result
577
502
  end
578
503
  .,.,
579
504
 
580
- module_eval(<<'.,.,', 'parser.y', 71)
581
- def _reduce_29(val, _values, result)
582
- result = val[1]
505
+ module_eval(<<'.,.,', 'parser.y', 69)
506
+ def _reduce_30(val, _values, result)
507
+ result = { val[0] => val[2] }
583
508
  result
584
509
  end
585
510
  .,.,
586
511
 
587
- # reduce 30 omitted
588
-
589
- module_eval(<<'.,.,', 'parser.y', 79)
512
+ module_eval(<<'.,.,', 'parser.y', 73)
590
513
  def _reduce_31(val, _values, result)
591
- result = @json.result
514
+ result = val[1]
592
515
  result
593
516
  end
594
517
  .,.,
@@ -601,96 +524,103 @@ module_eval(<<'.,.,', 'parser.y', 79)
601
524
 
602
525
  # reduce 35 omitted
603
526
 
604
- # reduce 36 omitted
527
+ module_eval(<<'.,.,', 'parser.y', 87)
528
+ def _reduce_36(val, _values, result)
529
+ result = {}
530
+ result
531
+ end
532
+ .,.,
605
533
 
606
- module_eval(<<'.,.,', 'parser.y', 92)
534
+ module_eval(<<'.,.,', 'parser.y', 88)
607
535
  def _reduce_37(val, _values, result)
608
- @json.start_object
536
+ result = val[1]
609
537
  result
610
538
  end
611
539
  .,.,
612
540
 
613
- module_eval(<<'.,.,', 'parser.y', 93)
541
+ module_eval(<<'.,.,', 'parser.y', 92)
614
542
  def _reduce_38(val, _values, result)
615
- @json.end_object
543
+ result.update val[2]
616
544
  result
617
545
  end
618
546
  .,.,
619
547
 
620
548
  # reduce 39 omitted
621
549
 
622
- # reduce 40 omitted
623
-
624
- # reduce 41 omitted
625
-
626
- # reduce 42 omitted
627
-
628
- # reduce 43 omitted
629
-
630
- module_eval(<<'.,.,', 'parser.y', 109)
631
- def _reduce_44(val, _values, result)
632
- @json.start_array
550
+ module_eval(<<'.,.,', 'parser.y', 97)
551
+ def _reduce_40(val, _values, result)
552
+ result = { val[0] => val[2] }
633
553
  result
634
554
  end
635
555
  .,.,
636
556
 
637
- module_eval(<<'.,.,', 'parser.y', 110)
638
- def _reduce_45(val, _values, result)
639
- @json.end_array
557
+ module_eval(<<'.,.,', 'parser.y', 101)
558
+ def _reduce_41(val, _values, result)
559
+ result = []
640
560
  result
641
561
  end
642
562
  .,.,
643
563
 
644
- # reduce 46 omitted
645
-
646
- # reduce 47 omitted
647
-
648
- # reduce 48 omitted
564
+ module_eval(<<'.,.,', 'parser.y', 102)
565
+ def _reduce_42(val, _values, result)
566
+ result = val[1]
567
+ result
568
+ end
569
+ .,.,
649
570
 
650
- module_eval(<<'.,.,', 'parser.y', 119)
651
- def _reduce_49(val, _values, result)
652
- @json.scalar val[0]
571
+ module_eval(<<'.,.,', 'parser.y', 106)
572
+ def _reduce_43(val, _values, result)
573
+ result.push val[2]
653
574
  result
654
575
  end
655
576
  .,.,
656
577
 
657
- module_eval(<<'.,.,', 'parser.y', 123)
658
- def _reduce_50(val, _values, result)
659
- @json.scalar unescape_string(val[0])
578
+ module_eval(<<'.,.,', 'parser.y', 107)
579
+ def _reduce_44(val, _values, result)
580
+ result = val
660
581
  result
661
582
  end
662
583
  .,.,
663
584
 
664
- module_eval(<<'.,.,', 'parser.y', 127)
665
- def _reduce_51(val, _values, result)
585
+ # reduce 45 omitted
586
+
587
+ module_eval(<<'.,.,', 'parser.y', 112)
588
+ def _reduce_46(val, _values, result)
666
589
  result = convert_number(val[0])
667
590
  result
668
591
  end
669
592
  .,.,
670
593
 
671
- module_eval(<<'.,.,', 'parser.y', 128)
672
- def _reduce_52(val, _values, result)
594
+ module_eval(<<'.,.,', 'parser.y', 113)
595
+ def _reduce_47(val, _values, result)
673
596
  result = true
674
597
  result
675
598
  end
676
599
  .,.,
677
600
 
678
- module_eval(<<'.,.,', 'parser.y', 129)
679
- def _reduce_53(val, _values, result)
601
+ module_eval(<<'.,.,', 'parser.y', 114)
602
+ def _reduce_48(val, _values, result)
680
603
  result = false
681
604
  result
682
605
  end
683
606
  .,.,
684
607
 
685
- module_eval(<<'.,.,', 'parser.y', 130)
686
- def _reduce_54(val, _values, result)
608
+ module_eval(<<'.,.,', 'parser.y', 115)
609
+ def _reduce_49(val, _values, result)
687
610
  result = nil
688
611
  result
689
612
  end
690
613
  .,.,
691
614
 
692
- module_eval(<<'.,.,', 'parser.y', 134)
693
- def _reduce_55(val, _values, result)
615
+ module_eval(<<'.,.,', 'parser.y', 119)
616
+ def _reduce_50(val, _values, result)
617
+ result = unescape_string(val[0])
618
+ result
619
+ end
620
+ .,.,
621
+
622
+ module_eval(<<'.,.,', 'parser.y', 122)
623
+ def _reduce_51(val, _values, result)
694
624
  result = val[0].to_sym
695
625
  result
696
626
  end