rison-rb 0.1.0

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,131 @@
1
+ class Rison::Object::Parser
2
+ rule
3
+
4
+ target: QUOTE QUOTE { result = {} }
5
+ | members
6
+
7
+ object: LPAREN RPAREN { result = {} }
8
+ | LPAREN members RPAREN { result = val[1] }
9
+
10
+ members: pair
11
+ | pair COMMA members { result = val[0].merge(val[2]) }
12
+
13
+ pair: key COLON value { result = { val[0] => val[2] } }
14
+
15
+ array: EXCLAM LPAREN RPAREN { result = [] }
16
+ | EXCLAM LPAREN elements RPAREN { result = val[2] }
17
+
18
+ elements: value { result = [val[0]] }
19
+ | value COMMA elements { result = val[2].unshift(val[0]) }
20
+
21
+ key: id | string
22
+
23
+ value: id | string | number | object | array | bool | null
24
+
25
+ bool: EXCLAM T { result = true }
26
+ | EXCLAM F { result = false }
27
+
28
+ null: EXCLAM N { result = nil }
29
+
30
+ id: idstart
31
+ | idstart idchars { result = val[0] + val[1] }
32
+
33
+ idchars: idchar
34
+ | idchar idchars { result = val[0] + val[1] }
35
+
36
+ idchar: IDCHAR | idstart | MINUS | DIGIT
37
+
38
+ idstart: IDSTART | E | T | F | N | DOT
39
+
40
+ string: QUOTE QUOTE { result = '' }
41
+ | QUOTE strchars QUOTE { result = val[1] }
42
+
43
+ strchars: strchar
44
+ | strchar strchars { result = val[0] + val[1] }
45
+
46
+ strchar: STRCHAR
47
+ | idchar
48
+ | EXCLAM EXCLAM { result = '!' }
49
+ | EXCLAM QUOTE { result = "'" }
50
+ | COLON
51
+ | LPAREN
52
+ | RPAREN
53
+ | COMMA
54
+
55
+ number: int { result = val[0].to_i }
56
+ | int frac { result = "#{val[0]}#{val[1]}".to_f }
57
+ | int exp { result = "#{val[0]}#{val[1]}".to_f }
58
+ | int frac exp { result = "#{val[0]}#{val[1]}#{val[2]}".to_f }
59
+
60
+ int : DIGIT { result = val[0].to_i }
61
+ | DIGIT digits { result = "#{val[0]}#{val[1]}".to_i }
62
+ | MINUS DIGIT { result = "-#{val[1]}".to_i }
63
+ | MINUS DIGIT digits { result = "-#{val[1]}#{val[2]}".to_i }
64
+
65
+ frac: DOT digits { result = "#{val[0]}#{val[1]}" }
66
+
67
+ exp: e digits { result = "#{val[0]}#{val[1]}" }
68
+
69
+ digits: DIGIT
70
+ | DIGIT digits { result = "#{val[0]}#{val[1]}" }
71
+
72
+ e: E { result = 'e' }
73
+ | E MINUS { result = "e-" }
74
+
75
+ ---- inner
76
+
77
+ attr_reader :source, :input
78
+
79
+ def initialize(source)
80
+ @source = source
81
+ @input = StringScanner.new(source)
82
+ end
83
+
84
+ def self.parse(source)
85
+ self.new(source).do_parse
86
+ rescue Racc::ParseError => exn
87
+ raise ParserError.new("#{exn.message} in #{source}")
88
+ end
89
+
90
+ def next_token
91
+ case
92
+ when input.eos?
93
+ [false, false]
94
+ when input.scan(/'/)
95
+ [:QUOTE, input.matched]
96
+ when input.scan(/\(/)
97
+ [:LPAREN, input.matched]
98
+ when input.scan(/\)/)
99
+ [:RPAREN, input.matched]
100
+ when input.scan(/:/)
101
+ [:COLON, input.matched]
102
+ when input.scan(/\./)
103
+ [:DOT, input.matched]
104
+ when input.scan(/\,/)
105
+ [:COMMA, input.matched]
106
+ when input.scan(/!/)
107
+ [:EXCLAM, input.matched]
108
+ when input.scan(/\-/)
109
+ [:MINUS, input.matched]
110
+ when input.scan(/e/)
111
+ [:E, input.matched]
112
+ when input.scan(/t/)
113
+ [:T, input.matched]
114
+ when input.scan(/f/)
115
+ [:F, input.matched]
116
+ when input.scan(/n/)
117
+ [:N, input.matched]
118
+ # Originally, 0 is not allowed at the beginning of the number, but rison.js accepts this.
119
+ when input.scan(/[0-9]/)
120
+ [:DIGIT, input.matched]
121
+ # IDSTART and IDCHAR should originally accept only the ASCII symbols `-_./~`, but rison.js accepts other symbols.
122
+ # @see https://rison.io/
123
+ # @see https://github.com/Nanonid/rison/blob/e64af6c096fd30950ec32cfd48526ca6ee21649d/js/rison.js#L77-L84
124
+ when input.scan(/[^\-0-9 '!:\(\),\*@\$]/)
125
+ [:IDSTART, input.matched]
126
+ when input.scan(/[^ '!:\(\),\*@\$]/)
127
+ [:IDCHAR, input.matched]
128
+ when input.scan(/[^\'\!]/)
129
+ [:STRCHAR, input.matched]
130
+ end
131
+ end
@@ -0,0 +1,596 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.15
4
+ # from Racc grammer file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+ module Rison
9
+ class Parser < Racc::Parser
10
+
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 75)
12
+
13
+ attr_reader :source, :input
14
+
15
+ def initialize(source)
16
+ @source = source
17
+ @input = StringScanner.new(source)
18
+ end
19
+
20
+ def self.parse(source)
21
+ self.new(source).do_parse
22
+ rescue Racc::ParseError => exn
23
+ raise ParserError.new("#{exn.message} in #{source}")
24
+ end
25
+
26
+ def next_token
27
+ case
28
+ when input.eos?
29
+ [false, false]
30
+ when input.scan(/'/)
31
+ [:QUOTE, input.matched]
32
+ when input.scan(/\(/)
33
+ [:LPAREN, input.matched]
34
+ when input.scan(/\)/)
35
+ [:RPAREN, input.matched]
36
+ when input.scan(/:/)
37
+ [:COLON, input.matched]
38
+ when input.scan(/\./)
39
+ [:DOT, input.matched]
40
+ when input.scan(/\,/)
41
+ [:COMMA, input.matched]
42
+ when input.scan(/!/)
43
+ [:EXCLAM, input.matched]
44
+ when input.scan(/\-/)
45
+ [:MINUS, input.matched]
46
+ when input.scan(/e/)
47
+ [:E, input.matched]
48
+ when input.scan(/t/)
49
+ [:T, input.matched]
50
+ when input.scan(/f/)
51
+ [:F, input.matched]
52
+ when input.scan(/n/)
53
+ [:N, input.matched]
54
+ # Originally, 0 is not allowed at the beginning of the number, but rison.js accepts this.
55
+ when input.scan(/[0-9]/)
56
+ [:DIGIT, input.matched]
57
+ # IDSTART and IDCHAR should originally accept only the ASCII symbols `-_./~`, but rison.js accepts other symbols.
58
+ # @see https://rison.io/
59
+ # @see https://github.com/Nanonid/rison/blob/e64af6c096fd30950ec32cfd48526ca6ee21649d/js/rison.js#L77-L84
60
+ when input.scan(/[^\-0-9 '!:\(\),\*@\$]/)
61
+ [:IDSTART, input.matched]
62
+ when input.scan(/[^ '!:\(\),\*@\$]/)
63
+ [:IDCHAR, input.matched]
64
+ when input.scan(/[^\'\!]/)
65
+ [:STRCHAR, input.matched]
66
+ end
67
+ end
68
+ ...end parser.y/module_eval...
69
+ ##### State transition tables begin ###
70
+
71
+ racc_action_table = [
72
+ 47, 48, 49, 46, 45, 15, 16, 17, 36, 38,
73
+ 39, 13, 14, 18, 40, 43, 47, 48, 49, 46,
74
+ 45, 15, 16, 17, 36, 38, 39, 13, 14, 18,
75
+ 3, 43, 54, 52, 4, 15, 16, 17, 68, 22,
76
+ 21, 13, 14, 18, 19, 3, 62, 78, 69, 4,
77
+ 15, 16, 17, 66, 22, 21, 13, 14, 18, 19,
78
+ 3, 23, 54, 56, 4, 15, 16, 17, 56, 22,
79
+ 21, 13, 14, 18, 19, 3, 73, 56, 56, 4,
80
+ 15, 16, 17, 79, 22, 21, 13, 14, 18, 19,
81
+ 24, 57, 30, 56, 15, 16, 17, 31, 32, 33,
82
+ 13, 14, 18, 19, 15, 16, 17, 58, 59, 60,
83
+ 13, 14, 18, 19, 15, 16, 17, 36, 38, 39,
84
+ 13, 14, 18, 15, 16, 17, 36, 38, 39, 13,
85
+ 14, 18, 61 ]
86
+
87
+ racc_action_check = [
88
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
89
+ 19, 19, 19, 19, 19, 19, 42, 42, 42, 42,
90
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
91
+ 0, 42, 20, 20, 0, 0, 0, 0, 45, 0,
92
+ 0, 0, 0, 0, 0, 30, 30, 63, 45, 30,
93
+ 30, 30, 30, 41, 30, 30, 30, 30, 30, 30,
94
+ 61, 1, 50, 52, 61, 61, 61, 61, 53, 61,
95
+ 61, 61, 61, 61, 61, 79, 54, 56, 57, 79,
96
+ 79, 79, 79, 64, 79, 79, 79, 79, 79, 79,
97
+ 3, 22, 4, 21, 3, 3, 3, 4, 4, 4,
98
+ 3, 3, 3, 3, 60, 60, 60, 23, 25, 26,
99
+ 60, 60, 60, 60, 35, 35, 35, 35, 35, 35,
100
+ 35, 35, 35, 12, 12, 12, 12, 12, 12, 12,
101
+ 12, 12, 27 ]
102
+
103
+ racc_action_pointer = [
104
+ 28, 61, nil, 87, 90, nil, nil, nil, nil, nil,
105
+ nil, nil, 116, nil, nil, nil, nil, nil, nil, -2,
106
+ 18, 81, 79, 107, nil, 105, 105, 127, nil, nil,
107
+ 43, nil, nil, nil, nil, 107, nil, nil, nil, nil,
108
+ nil, 37, 14, nil, nil, 32, nil, nil, nil, nil,
109
+ 48, nil, 51, 56, 65, nil, 65, 66, nil, nil,
110
+ 97, 58, nil, 44, 79, nil, nil, nil, nil, nil,
111
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 73,
112
+ nil ]
113
+
114
+ racc_action_default = [
115
+ -63, -63, -1, -63, -63, -13, -14, -15, -16, -17,
116
+ -18, -19, -23, -31, -32, -33, -34, -35, -36, -63,
117
+ -49, -53, -63, -63, -2, -63, -4, -63, -11, -12,
118
+ -63, -20, -21, -22, -24, -25, -27, -28, -29, -30,
119
+ -37, -63, -39, -41, -42, -63, -45, -46, -47, -48,
120
+ -50, -51, -63, -63, -61, -54, -59, -55, 81, -3,
121
+ -63, -63, -7, -63, -9, -26, -38, -40, -43, -44,
122
+ -52, -57, -58, -62, -60, -56, -5, -6, -8, -63,
123
+ -10 ]
124
+
125
+ racc_goto_table = [
126
+ 2, 25, 28, 29, 63, 55, 44, 41, 37, 51,
127
+ 34, 50, 1, nil, nil, 37, nil, nil, nil, nil,
128
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 44,
129
+ 67, 37, nil, 65, nil, nil, 71, 72, 37, 70,
130
+ 74, 75, nil, nil, nil, nil, nil, nil, nil, nil,
131
+ nil, nil, nil, 80, nil, nil, nil, nil, 76, 28,
132
+ 29, 77 ]
133
+
134
+ racc_goto_check = [
135
+ 2, 4, 9, 10, 8, 22, 16, 17, 14, 21,
136
+ 15, 20, 1, nil, nil, 14, nil, nil, nil, nil,
137
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 16,
138
+ 17, 14, nil, 15, nil, nil, 22, 22, 14, 21,
139
+ 22, 22, nil, nil, nil, nil, nil, nil, nil, nil,
140
+ nil, nil, nil, 8, nil, nil, nil, nil, 4, 9,
141
+ 10, 2 ]
142
+
143
+ racc_goto_pointer = [
144
+ nil, 12, 0, nil, -2, nil, nil, nil, -26, -1,
145
+ 0, nil, nil, nil, -4, -2, -13, -12, nil, nil,
146
+ -9, -11, -16, nil ]
147
+
148
+ racc_goto_default = [
149
+ nil, nil, 64, 8, nil, 26, 27, 9, nil, 5,
150
+ 6, 7, 10, 11, 12, nil, 35, nil, 42, 20,
151
+ nil, nil, nil, 53 ]
152
+
153
+ racc_reduce_table = [
154
+ 0, 0, :racc_error,
155
+ 1, 19, :_reduce_none,
156
+ 2, 21, :_reduce_2,
157
+ 3, 21, :_reduce_3,
158
+ 1, 22, :_reduce_none,
159
+ 3, 22, :_reduce_5,
160
+ 3, 23, :_reduce_6,
161
+ 3, 25, :_reduce_7,
162
+ 4, 25, :_reduce_8,
163
+ 1, 26, :_reduce_9,
164
+ 3, 26, :_reduce_10,
165
+ 1, 24, :_reduce_none,
166
+ 1, 24, :_reduce_none,
167
+ 1, 20, :_reduce_none,
168
+ 1, 20, :_reduce_none,
169
+ 1, 20, :_reduce_none,
170
+ 1, 20, :_reduce_none,
171
+ 1, 20, :_reduce_none,
172
+ 1, 20, :_reduce_none,
173
+ 1, 20, :_reduce_none,
174
+ 2, 30, :_reduce_20,
175
+ 2, 30, :_reduce_21,
176
+ 2, 31, :_reduce_22,
177
+ 1, 27, :_reduce_none,
178
+ 2, 27, :_reduce_24,
179
+ 1, 33, :_reduce_none,
180
+ 2, 33, :_reduce_26,
181
+ 1, 34, :_reduce_none,
182
+ 1, 34, :_reduce_none,
183
+ 1, 34, :_reduce_none,
184
+ 1, 34, :_reduce_none,
185
+ 1, 32, :_reduce_none,
186
+ 1, 32, :_reduce_none,
187
+ 1, 32, :_reduce_none,
188
+ 1, 32, :_reduce_none,
189
+ 1, 32, :_reduce_none,
190
+ 1, 32, :_reduce_none,
191
+ 2, 28, :_reduce_37,
192
+ 3, 28, :_reduce_38,
193
+ 1, 35, :_reduce_none,
194
+ 2, 35, :_reduce_40,
195
+ 1, 36, :_reduce_none,
196
+ 1, 36, :_reduce_none,
197
+ 2, 36, :_reduce_43,
198
+ 2, 36, :_reduce_44,
199
+ 1, 36, :_reduce_none,
200
+ 1, 36, :_reduce_none,
201
+ 1, 36, :_reduce_none,
202
+ 1, 36, :_reduce_none,
203
+ 1, 29, :_reduce_49,
204
+ 2, 29, :_reduce_50,
205
+ 2, 29, :_reduce_51,
206
+ 3, 29, :_reduce_52,
207
+ 1, 37, :_reduce_53,
208
+ 2, 37, :_reduce_54,
209
+ 2, 37, :_reduce_55,
210
+ 3, 37, :_reduce_56,
211
+ 2, 38, :_reduce_57,
212
+ 2, 39, :_reduce_58,
213
+ 1, 40, :_reduce_none,
214
+ 2, 40, :_reduce_60,
215
+ 1, 41, :_reduce_61,
216
+ 2, 41, :_reduce_62 ]
217
+
218
+ racc_reduce_n = 63
219
+
220
+ racc_shift_n = 81
221
+
222
+ racc_token_table = {
223
+ false => 0,
224
+ :error => 1,
225
+ :LPAREN => 2,
226
+ :RPAREN => 3,
227
+ :COMMA => 4,
228
+ :COLON => 5,
229
+ :EXCLAM => 6,
230
+ :T => 7,
231
+ :F => 8,
232
+ :N => 9,
233
+ :IDCHAR => 10,
234
+ :MINUS => 11,
235
+ :DIGIT => 12,
236
+ :IDSTART => 13,
237
+ :E => 14,
238
+ :DOT => 15,
239
+ :QUOTE => 16,
240
+ :STRCHAR => 17 }
241
+
242
+ racc_nt_base = 18
243
+
244
+ racc_use_result_var = true
245
+
246
+ Racc_arg = [
247
+ racc_action_table,
248
+ racc_action_check,
249
+ racc_action_default,
250
+ racc_action_pointer,
251
+ racc_goto_table,
252
+ racc_goto_check,
253
+ racc_goto_default,
254
+ racc_goto_pointer,
255
+ racc_nt_base,
256
+ racc_reduce_table,
257
+ racc_token_table,
258
+ racc_shift_n,
259
+ racc_reduce_n,
260
+ racc_use_result_var ]
261
+
262
+ Racc_token_to_s_table = [
263
+ "$end",
264
+ "error",
265
+ "LPAREN",
266
+ "RPAREN",
267
+ "COMMA",
268
+ "COLON",
269
+ "EXCLAM",
270
+ "T",
271
+ "F",
272
+ "N",
273
+ "IDCHAR",
274
+ "MINUS",
275
+ "DIGIT",
276
+ "IDSTART",
277
+ "E",
278
+ "DOT",
279
+ "QUOTE",
280
+ "STRCHAR",
281
+ "$start",
282
+ "target",
283
+ "value",
284
+ "object",
285
+ "members",
286
+ "pair",
287
+ "key",
288
+ "array",
289
+ "elements",
290
+ "id",
291
+ "string",
292
+ "number",
293
+ "bool",
294
+ "null",
295
+ "idstart",
296
+ "idchars",
297
+ "idchar",
298
+ "strchars",
299
+ "strchar",
300
+ "int",
301
+ "frac",
302
+ "exp",
303
+ "digits",
304
+ "e" ]
305
+
306
+ Racc_debug_parser = false
307
+
308
+ ##### State transition tables end #####
309
+
310
+ # reduce 0 omitted
311
+
312
+ # reduce 1 omitted
313
+
314
+ module_eval(<<'.,.,', 'parser.y', 5)
315
+ def _reduce_2(val, _values, result)
316
+ result = {}
317
+ result
318
+ end
319
+ .,.,
320
+
321
+ module_eval(<<'.,.,', 'parser.y', 6)
322
+ def _reduce_3(val, _values, result)
323
+ result = val[1]
324
+ result
325
+ end
326
+ .,.,
327
+
328
+ # reduce 4 omitted
329
+
330
+ module_eval(<<'.,.,', 'parser.y', 9)
331
+ def _reduce_5(val, _values, result)
332
+ result = val[0].merge(val[2])
333
+ result
334
+ end
335
+ .,.,
336
+
337
+ module_eval(<<'.,.,', 'parser.y', 11)
338
+ def _reduce_6(val, _values, result)
339
+ result = { val[0] => val[2] }
340
+ result
341
+ end
342
+ .,.,
343
+
344
+ module_eval(<<'.,.,', 'parser.y', 13)
345
+ def _reduce_7(val, _values, result)
346
+ result = []
347
+ result
348
+ end
349
+ .,.,
350
+
351
+ module_eval(<<'.,.,', 'parser.y', 14)
352
+ def _reduce_8(val, _values, result)
353
+ result = val[2]
354
+ result
355
+ end
356
+ .,.,
357
+
358
+ module_eval(<<'.,.,', 'parser.y', 16)
359
+ def _reduce_9(val, _values, result)
360
+ result = [val[0]]
361
+ result
362
+ end
363
+ .,.,
364
+
365
+ module_eval(<<'.,.,', 'parser.y', 17)
366
+ def _reduce_10(val, _values, result)
367
+ result = val[2].unshift(val[0])
368
+ result
369
+ end
370
+ .,.,
371
+
372
+ # reduce 11 omitted
373
+
374
+ # reduce 12 omitted
375
+
376
+ # reduce 13 omitted
377
+
378
+ # reduce 14 omitted
379
+
380
+ # reduce 15 omitted
381
+
382
+ # reduce 16 omitted
383
+
384
+ # reduce 17 omitted
385
+
386
+ # reduce 18 omitted
387
+
388
+ # reduce 19 omitted
389
+
390
+ module_eval(<<'.,.,', 'parser.y', 23)
391
+ def _reduce_20(val, _values, result)
392
+ result = true
393
+ result
394
+ end
395
+ .,.,
396
+
397
+ module_eval(<<'.,.,', 'parser.y', 24)
398
+ def _reduce_21(val, _values, result)
399
+ result = false
400
+ result
401
+ end
402
+ .,.,
403
+
404
+ module_eval(<<'.,.,', 'parser.y', 26)
405
+ def _reduce_22(val, _values, result)
406
+ result = nil
407
+ result
408
+ end
409
+ .,.,
410
+
411
+ # reduce 23 omitted
412
+
413
+ module_eval(<<'.,.,', 'parser.y', 29)
414
+ def _reduce_24(val, _values, result)
415
+ result = val[0] + val[1]
416
+ result
417
+ end
418
+ .,.,
419
+
420
+ # reduce 25 omitted
421
+
422
+ module_eval(<<'.,.,', 'parser.y', 32)
423
+ def _reduce_26(val, _values, result)
424
+ result = val[0] + val[1]
425
+ result
426
+ end
427
+ .,.,
428
+
429
+ # reduce 27 omitted
430
+
431
+ # reduce 28 omitted
432
+
433
+ # reduce 29 omitted
434
+
435
+ # reduce 30 omitted
436
+
437
+ # reduce 31 omitted
438
+
439
+ # reduce 32 omitted
440
+
441
+ # reduce 33 omitted
442
+
443
+ # reduce 34 omitted
444
+
445
+ # reduce 35 omitted
446
+
447
+ # reduce 36 omitted
448
+
449
+ module_eval(<<'.,.,', 'parser.y', 38)
450
+ def _reduce_37(val, _values, result)
451
+ result = ''
452
+ result
453
+ end
454
+ .,.,
455
+
456
+ module_eval(<<'.,.,', 'parser.y', 39)
457
+ def _reduce_38(val, _values, result)
458
+ result = val[1]
459
+ result
460
+ end
461
+ .,.,
462
+
463
+ # reduce 39 omitted
464
+
465
+ module_eval(<<'.,.,', 'parser.y', 42)
466
+ def _reduce_40(val, _values, result)
467
+ result = val[0] + val[1]
468
+ result
469
+ end
470
+ .,.,
471
+
472
+ # reduce 41 omitted
473
+
474
+ # reduce 42 omitted
475
+
476
+ module_eval(<<'.,.,', 'parser.y', 46)
477
+ def _reduce_43(val, _values, result)
478
+ result = '!'
479
+ result
480
+ end
481
+ .,.,
482
+
483
+ module_eval(<<'.,.,', 'parser.y', 47)
484
+ def _reduce_44(val, _values, result)
485
+ result = "'"
486
+ result
487
+ end
488
+ .,.,
489
+
490
+ # reduce 45 omitted
491
+
492
+ # reduce 46 omitted
493
+
494
+ # reduce 47 omitted
495
+
496
+ # reduce 48 omitted
497
+
498
+ module_eval(<<'.,.,', 'parser.y', 53)
499
+ def _reduce_49(val, _values, result)
500
+ result = val[0].to_i
501
+ result
502
+ end
503
+ .,.,
504
+
505
+ module_eval(<<'.,.,', 'parser.y', 54)
506
+ def _reduce_50(val, _values, result)
507
+ result = "#{val[0]}#{val[1]}".to_f
508
+ result
509
+ end
510
+ .,.,
511
+
512
+ module_eval(<<'.,.,', 'parser.y', 55)
513
+ def _reduce_51(val, _values, result)
514
+ result = "#{val[0]}#{val[1]}".to_f
515
+ result
516
+ end
517
+ .,.,
518
+
519
+ module_eval(<<'.,.,', 'parser.y', 56)
520
+ def _reduce_52(val, _values, result)
521
+ result = "#{val[0]}#{val[1]}#{val[2]}".to_f
522
+ result
523
+ end
524
+ .,.,
525
+
526
+ module_eval(<<'.,.,', 'parser.y', 58)
527
+ def _reduce_53(val, _values, result)
528
+ result = val[0].to_i
529
+ result
530
+ end
531
+ .,.,
532
+
533
+ module_eval(<<'.,.,', 'parser.y', 59)
534
+ def _reduce_54(val, _values, result)
535
+ result = "#{val[0]}#{val[1]}".to_i
536
+ result
537
+ end
538
+ .,.,
539
+
540
+ module_eval(<<'.,.,', 'parser.y', 60)
541
+ def _reduce_55(val, _values, result)
542
+ result = "-#{val[1]}".to_i
543
+ result
544
+ end
545
+ .,.,
546
+
547
+ module_eval(<<'.,.,', 'parser.y', 61)
548
+ def _reduce_56(val, _values, result)
549
+ result = "-#{val[1]}#{val[2]}".to_i
550
+ result
551
+ end
552
+ .,.,
553
+
554
+ module_eval(<<'.,.,', 'parser.y', 63)
555
+ def _reduce_57(val, _values, result)
556
+ result = "#{val[0]}#{val[1]}"
557
+ result
558
+ end
559
+ .,.,
560
+
561
+ module_eval(<<'.,.,', 'parser.y', 65)
562
+ def _reduce_58(val, _values, result)
563
+ result = "#{val[0]}#{val[1]}"
564
+ result
565
+ end
566
+ .,.,
567
+
568
+ # reduce 59 omitted
569
+
570
+ module_eval(<<'.,.,', 'parser.y', 68)
571
+ def _reduce_60(val, _values, result)
572
+ result = "#{val[0]}#{val[1]}"
573
+ result
574
+ end
575
+ .,.,
576
+
577
+ module_eval(<<'.,.,', 'parser.y', 70)
578
+ def _reduce_61(val, _values, result)
579
+ result = 'e'
580
+ result
581
+ end
582
+ .,.,
583
+
584
+ module_eval(<<'.,.,', 'parser.y', 71)
585
+ def _reduce_62(val, _values, result)
586
+ result = "e-"
587
+ result
588
+ end
589
+ .,.,
590
+
591
+ def _reduce_none(val, _values, result)
592
+ val[0]
593
+ end
594
+
595
+ end # class Parser
596
+ end # module Rison