gql 0.0.2 → 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.
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