tomlrb 2.0.1 → 2.0.2
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.
- checksums.yaml +4 -4
- data/lib/tomlrb/generated_parser.rb +220 -171
- data/lib/tomlrb/handler.rb +39 -5
- data/lib/tomlrb/parser.y +36 -19
- data/lib/tomlrb/scanner.rb +9 -3
- data/lib/tomlrb/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2a8a3589f6ef91d165e62d34308f5f1bf2ed585070b03656e269d80fdfbc4dd2
|
|
4
|
+
data.tar.gz: bb4cbc74b2c808bf4815de048cb276212fc6581ee0dc0eb0e59bb9160c8baf3e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6d7e549ec02ad832a3e8a03f89825ee39b829ba810379feca4c9eee9171fec269f37fa3daad40af3ff5ed11d0024f3afda8796add4e2777a0d80a03098eb89fd
|
|
7
|
+
data.tar.gz: dca4a16c0e642797dae73d898bea0980d47f19800f832837e554b1a8291d3cb20fed6c164506a70aaa64dc8f36976ae1c5feb5381c975f3b54d35b2c4b6bd59e
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# DO NOT MODIFY!!!!
|
|
3
|
-
# This file is automatically generated by Racc 1.
|
|
3
|
+
# This file is automatically generated by Racc 1.6.0
|
|
4
4
|
# from Racc grammar file "".
|
|
5
5
|
#
|
|
6
6
|
|
|
@@ -10,94 +10,100 @@ module Tomlrb
|
|
|
10
10
|
##### State transition tables begin ###
|
|
11
11
|
|
|
12
12
|
racc_action_table = [
|
|
13
|
-
2,
|
|
14
|
-
20, 14, 21, 22, 8, 4, 10,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
70, 71,
|
|
18
|
-
|
|
19
|
-
67, 68,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
nil, 32, 33,
|
|
28
|
-
|
|
29
|
-
|
|
13
|
+
2, 45, 16, 56, 17, 44, 18, 55, 23, 19,
|
|
14
|
+
20, 14, 21, 22, 8, 4, 10, 36, 16, 12,
|
|
15
|
+
17, 48, 18, 46, 47, 19, 20, 42, 21, 22,
|
|
16
|
+
50, 51, 87, 86, 39, 54, 39, 72, 73, 74,
|
|
17
|
+
75, 70, 71, 67, 68, 65, 66, 69, 78, nil,
|
|
18
|
+
59, nil, nil, 12, 72, 73, 74, 75, 70, 71,
|
|
19
|
+
67, 68, 65, 66, 69, nil, nil, 59, nil, nil,
|
|
20
|
+
12, 72, 73, 74, 75, 70, 71, 67, 68, 65,
|
|
21
|
+
66, 69, 91, nil, 59, 89, nil, 12, 72, 73,
|
|
22
|
+
74, 75, 70, 71, 67, 68, 65, 66, 69, 91,
|
|
23
|
+
nil, 59, 89, nil, 12, 72, 73, 74, 75, 70,
|
|
24
|
+
71, 67, 68, 65, 66, 69, 91, nil, 59, 89,
|
|
25
|
+
nil, 12, 72, 73, 74, 75, 70, 71, 67, 68,
|
|
26
|
+
65, 66, 69, 91, nil, 59, 89, 29, 12, 30,
|
|
27
|
+
nil, 31, nil, nil, 32, 33, 27, 34, 35, 29,
|
|
28
|
+
nil, 30, 25, 31, nil, nil, 32, 33, 81, 34,
|
|
29
|
+
35, 16, nil, 17, 25, 18, nil, nil, 19, 20,
|
|
30
|
+
77, 21, 22, 16, nil, 17, nil, 18, nil, nil,
|
|
31
|
+
19, 20, 42, 21, 22, 16, nil, 17, nil, 18,
|
|
32
|
+
nil, nil, 19, 20, 85, 21, 22, 95, nil, nil,
|
|
33
|
+
93, nil, nil, nil, 94 ]
|
|
30
34
|
|
|
31
35
|
racc_action_check = [
|
|
32
|
-
1, 13, 1,
|
|
33
|
-
1, 1, 1, 1, 1, 1, 1,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
55, 55, 55, 55, 55,
|
|
39
|
-
55,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
nil,
|
|
47
|
-
|
|
48
|
-
|
|
36
|
+
1, 13, 1, 41, 1, 13, 1, 41, 2, 1,
|
|
37
|
+
1, 1, 1, 1, 1, 1, 1, 10, 11, 1,
|
|
38
|
+
11, 25, 11, 24, 24, 11, 11, 11, 11, 11,
|
|
39
|
+
26, 26, 57, 57, 38, 40, 11, 44, 44, 44,
|
|
40
|
+
44, 44, 44, 44, 44, 44, 44, 44, 50, nil,
|
|
41
|
+
44, nil, nil, 44, 55, 55, 55, 55, 55, 55,
|
|
42
|
+
55, 55, 55, 55, 55, nil, nil, 55, nil, nil,
|
|
43
|
+
55, 58, 58, 58, 58, 58, 58, 58, 58, 58,
|
|
44
|
+
58, 58, 58, nil, 58, 58, nil, 58, 91, 91,
|
|
45
|
+
91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
|
|
46
|
+
nil, 91, 91, nil, 91, 94, 94, 94, 94, 94,
|
|
47
|
+
94, 94, 94, 94, 94, 94, 94, nil, 94, 94,
|
|
48
|
+
nil, 94, 95, 95, 95, 95, 95, 95, 95, 95,
|
|
49
|
+
95, 95, 95, 95, nil, 95, 95, 9, 95, 9,
|
|
50
|
+
nil, 9, nil, nil, 9, 9, 9, 9, 9, 51,
|
|
51
|
+
nil, 51, 9, 51, nil, nil, 51, 51, 51, 51,
|
|
52
|
+
51, 45, nil, 45, 51, 45, nil, nil, 45, 45,
|
|
53
|
+
45, 45, 45, 54, nil, 54, nil, 54, nil, nil,
|
|
54
|
+
54, 54, 54, 54, 54, 56, nil, 56, nil, 56,
|
|
55
|
+
nil, nil, 56, 56, 56, 56, 56, 90, nil, nil,
|
|
56
|
+
90, nil, nil, nil, 90 ]
|
|
49
57
|
|
|
50
58
|
racc_action_pointer = [
|
|
51
|
-
nil, 0,
|
|
52
|
-
|
|
53
|
-
nil, nil, nil, nil,
|
|
54
|
-
nil, nil, nil, nil, nil, nil, nil, nil,
|
|
55
|
-
15, nil,
|
|
56
|
-
nil,
|
|
59
|
+
nil, 0, 8, nil, nil, nil, nil, nil, nil, 135,
|
|
60
|
+
1, 16, nil, -17, nil, nil, nil, nil, nil, nil,
|
|
61
|
+
nil, nil, nil, nil, 9, 4, 13, nil, nil, nil,
|
|
62
|
+
nil, nil, nil, nil, nil, nil, nil, nil, 14, nil,
|
|
63
|
+
14, -15, nil, nil, 34, 159, nil, nil, nil, nil,
|
|
64
|
+
31, 147, nil, nil, 171, 51, 183, 18, 68, nil,
|
|
57
65
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
|
58
66
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
|
59
|
-
|
|
60
|
-
nil, nil,
|
|
67
|
+
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
|
68
|
+
183, 85, nil, nil, 102, 119, nil, nil, nil ]
|
|
61
69
|
|
|
62
70
|
racc_action_default = [
|
|
63
|
-
-1, -
|
|
64
|
-
-11, -
|
|
65
|
-
-
|
|
66
|
-
-23, -24, -25, -26, -27, -28, -10, -29, -
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-63, -64, -
|
|
70
|
-
-74, -75, -76, -
|
|
71
|
-
-
|
|
72
|
-
-
|
|
71
|
+
-1, -79, -79, -2, -3, -4, -5, -6, -7, -79,
|
|
72
|
+
-11, -79, -31, -79, -45, -46, -47, -48, -49, -50,
|
|
73
|
+
-51, -52, -53, 99, -79, -13, -79, -20, -21, -22,
|
|
74
|
+
-23, -24, -25, -26, -27, -28, -10, -29, -79, -32,
|
|
75
|
+
-33, -79, -39, -40, -67, -79, -8, -9, -12, -14,
|
|
76
|
+
-16, -79, -30, -34, -79, -67, -79, -79, -67, -61,
|
|
77
|
+
-62, -63, -64, -65, -66, -68, -69, -70, -71, -72,
|
|
78
|
+
-73, -74, -75, -76, -77, -78, -43, -44, -15, -17,
|
|
79
|
+
-18, -19, -35, -36, -37, -38, -41, -42, -54, -55,
|
|
80
|
+
-79, -67, -56, -58, -67, -67, -57, -59, -60 ]
|
|
73
81
|
|
|
74
82
|
racc_goto_table = [
|
|
75
|
-
|
|
76
|
-
6, 7, 9,
|
|
77
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
|
78
|
-
nil, nil, 50, nil, nil, nil, 94, nil, nil, nil,
|
|
79
|
-
95, 96, 76, 73, 77, nil, nil, nil, nil, nil,
|
|
83
|
+
15, 24, 38, 88, 28, 37, 57, 1, 3, 5,
|
|
84
|
+
6, 7, 9, 49, 53, 13, 92, 83, nil, nil,
|
|
80
85
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
|
81
|
-
nil, nil,
|
|
86
|
+
nil, nil, 52, nil, nil, nil, 96, nil, nil, 97,
|
|
87
|
+
98, nil, nil, 79, 76, 82, 80, nil, nil, nil,
|
|
88
|
+
nil, nil, nil, nil, nil, 84 ]
|
|
82
89
|
|
|
83
90
|
racc_goto_check = [
|
|
84
|
-
|
|
85
|
-
4, 5, 6, 9, 15,
|
|
86
|
-
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
|
87
|
-
nil, nil, 12, nil, nil, nil, 22, nil, nil, nil,
|
|
88
|
-
22, 22, 7, 19, 10, nil, nil, nil, nil, nil,
|
|
91
|
+
18, 7, 13, 22, 10, 12, 17, 1, 2, 3,
|
|
92
|
+
4, 5, 6, 9, 15, 19, 23, 17, nil, nil,
|
|
89
93
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
|
90
|
-
nil, nil,
|
|
94
|
+
nil, nil, 12, nil, nil, nil, 22, nil, nil, 22,
|
|
95
|
+
22, nil, nil, 7, 18, 13, 10, nil, nil, nil,
|
|
96
|
+
nil, nil, nil, nil, nil, 18 ]
|
|
91
97
|
|
|
92
98
|
racc_goto_pointer = [
|
|
93
|
-
nil, 7, 7, 8, 9, 10, 11, -
|
|
94
|
-
-5, nil, -6,
|
|
95
|
-
nil, nil, -
|
|
99
|
+
nil, 7, 7, 8, 9, 10, 11, -8, nil, -13,
|
|
100
|
+
-5, nil, -6, -9, nil, -26, nil, -38, -1, 14,
|
|
101
|
+
nil, nil, -55, -74, nil, nil, nil ]
|
|
96
102
|
|
|
97
103
|
racc_goto_default = [
|
|
98
|
-
nil, nil, nil, nil, nil,
|
|
99
|
-
nil, 11, nil, nil, 40, nil,
|
|
100
|
-
|
|
104
|
+
nil, nil, nil, nil, nil, 62, nil, nil, 26, nil,
|
|
105
|
+
nil, 11, nil, nil, 40, nil, 41, 90, 43, nil,
|
|
106
|
+
61, 58, nil, nil, 60, 63, 64 ]
|
|
101
107
|
|
|
102
108
|
racc_reduce_table = [
|
|
103
109
|
0, 0, :racc_error,
|
|
@@ -123,7 +129,7 @@ racc_reduce_table = [
|
|
|
123
129
|
1, 31, :_reduce_20,
|
|
124
130
|
1, 31, :_reduce_21,
|
|
125
131
|
1, 33, :_reduce_none,
|
|
126
|
-
1, 33, :
|
|
132
|
+
1, 33, :_reduce_23,
|
|
127
133
|
1, 33, :_reduce_none,
|
|
128
134
|
1, 33, :_reduce_none,
|
|
129
135
|
1, 33, :_reduce_none,
|
|
@@ -133,54 +139,56 @@ racc_reduce_table = [
|
|
|
133
139
|
3, 28, :_reduce_none,
|
|
134
140
|
1, 34, :_reduce_31,
|
|
135
141
|
1, 35, :_reduce_32,
|
|
142
|
+
1, 36, :_reduce_none,
|
|
136
143
|
2, 36, :_reduce_none,
|
|
137
|
-
3, 36, :_reduce_none,
|
|
138
|
-
2, 39, :_reduce_none,
|
|
139
|
-
3, 37, :_reduce_36,
|
|
140
|
-
1, 37, :_reduce_37,
|
|
141
144
|
2, 38, :_reduce_none,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
3,
|
|
145
|
-
|
|
146
|
-
1,
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
1, 42, :
|
|
152
|
-
1, 42, :
|
|
153
|
-
1,
|
|
154
|
-
1,
|
|
145
|
+
3, 37, :_reduce_36,
|
|
146
|
+
3, 39, :_reduce_37,
|
|
147
|
+
3, 39, :_reduce_38,
|
|
148
|
+
1, 39, :_reduce_39,
|
|
149
|
+
1, 39, :_reduce_40,
|
|
150
|
+
4, 27, :_reduce_41,
|
|
151
|
+
4, 27, :_reduce_42,
|
|
152
|
+
3, 42, :_reduce_43,
|
|
153
|
+
3, 42, :_reduce_44,
|
|
154
|
+
1, 42, :_reduce_45,
|
|
155
|
+
1, 42, :_reduce_46,
|
|
156
|
+
1, 41, :_reduce_none,
|
|
157
|
+
1, 41, :_reduce_48,
|
|
158
|
+
1, 41, :_reduce_none,
|
|
159
|
+
1, 41, :_reduce_none,
|
|
160
|
+
1, 41, :_reduce_none,
|
|
161
|
+
1, 41, :_reduce_none,
|
|
162
|
+
1, 41, :_reduce_none,
|
|
155
163
|
2, 43, :_reduce_none,
|
|
156
|
-
1, 45, :
|
|
164
|
+
1, 45, :_reduce_55,
|
|
157
165
|
2, 45, :_reduce_none,
|
|
158
166
|
2, 45, :_reduce_none,
|
|
159
|
-
1, 46, :
|
|
167
|
+
1, 46, :_reduce_58,
|
|
160
168
|
2, 46, :_reduce_none,
|
|
161
169
|
2, 46, :_reduce_none,
|
|
162
|
-
1, 44, :
|
|
163
|
-
1, 40, :
|
|
170
|
+
1, 44, :_reduce_61,
|
|
171
|
+
1, 40, :_reduce_62,
|
|
164
172
|
1, 40, :_reduce_none,
|
|
165
173
|
1, 40, :_reduce_none,
|
|
166
174
|
1, 47, :_reduce_none,
|
|
167
175
|
1, 47, :_reduce_none,
|
|
168
176
|
0, 49, :_reduce_none,
|
|
169
|
-
1, 49, :_reduce_66,
|
|
170
|
-
1, 49, :_reduce_67,
|
|
171
177
|
1, 49, :_reduce_68,
|
|
172
178
|
1, 49, :_reduce_69,
|
|
173
179
|
1, 49, :_reduce_70,
|
|
174
180
|
1, 49, :_reduce_71,
|
|
175
181
|
1, 49, :_reduce_72,
|
|
176
|
-
1,
|
|
177
|
-
1,
|
|
182
|
+
1, 49, :_reduce_73,
|
|
183
|
+
1, 49, :_reduce_74,
|
|
178
184
|
1, 48, :_reduce_75,
|
|
179
|
-
1, 48, :_reduce_76
|
|
185
|
+
1, 48, :_reduce_76,
|
|
186
|
+
1, 48, :_reduce_77,
|
|
187
|
+
1, 48, :_reduce_78 ]
|
|
180
188
|
|
|
181
|
-
racc_reduce_n =
|
|
189
|
+
racc_reduce_n = 79
|
|
182
190
|
|
|
183
|
-
racc_shift_n =
|
|
191
|
+
racc_shift_n = 99
|
|
184
192
|
|
|
185
193
|
racc_token_table = {
|
|
186
194
|
false => 0,
|
|
@@ -265,12 +273,12 @@ Racc_token_to_s_table = [
|
|
|
265
273
|
"inline_table_start",
|
|
266
274
|
"inline_table_end",
|
|
267
275
|
"inline_continued",
|
|
268
|
-
"
|
|
269
|
-
"inline_assignment_value",
|
|
276
|
+
"inline_assignment",
|
|
270
277
|
"inline_next",
|
|
278
|
+
"inline_assignment_key",
|
|
271
279
|
"value",
|
|
272
|
-
"assignment_key",
|
|
273
280
|
"assignment_key_component",
|
|
281
|
+
"assignment_key",
|
|
274
282
|
"array",
|
|
275
283
|
"start_array",
|
|
276
284
|
"array_continued",
|
|
@@ -382,7 +390,12 @@ module_eval(<<'.,.,', 'parser.y', 39)
|
|
|
382
390
|
|
|
383
391
|
# reduce 22 omitted
|
|
384
392
|
|
|
385
|
-
|
|
393
|
+
module_eval(<<'.,.,', 'parser.y', 43)
|
|
394
|
+
def _reduce_23(val, _values, result)
|
|
395
|
+
result = StringUtils.replace_escaped_chars(val[0])
|
|
396
|
+
result
|
|
397
|
+
end
|
|
398
|
+
.,.,
|
|
386
399
|
|
|
387
400
|
# reduce 24 omitted
|
|
388
401
|
|
|
@@ -408,8 +421,7 @@ module_eval(<<'.,.,', 'parser.y', 55)
|
|
|
408
421
|
module_eval(<<'.,.,', 'parser.y', 59)
|
|
409
422
|
def _reduce_32(val, _values, result)
|
|
410
423
|
array = @handler.end_(:inline)
|
|
411
|
-
|
|
412
|
-
@handler.push(Hash[*array])
|
|
424
|
+
@handler.push_inline(array)
|
|
413
425
|
|
|
414
426
|
result
|
|
415
427
|
end
|
|
@@ -421,12 +433,10 @@ module_eval(<<'.,.,', 'parser.y', 59)
|
|
|
421
433
|
|
|
422
434
|
# reduce 35 omitted
|
|
423
435
|
|
|
424
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
436
|
+
module_eval(<<'.,.,', 'parser.y', 72)
|
|
425
437
|
def _reduce_36(val, _values, result)
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
@handler.start_(:inline)
|
|
429
|
-
@handler.push(val[2])
|
|
438
|
+
keys = @handler.end_(:inline_keys)
|
|
439
|
+
@handler.push(keys)
|
|
430
440
|
|
|
431
441
|
result
|
|
432
442
|
end
|
|
@@ -434,49 +444,78 @@ module_eval(<<'.,.,', 'parser.y', 73)
|
|
|
434
444
|
|
|
435
445
|
module_eval(<<'.,.,', 'parser.y', 78)
|
|
436
446
|
def _reduce_37(val, _values, result)
|
|
437
|
-
|
|
447
|
+
@handler.push(val[2])
|
|
448
|
+
|
|
438
449
|
result
|
|
439
450
|
end
|
|
440
451
|
.,.,
|
|
441
452
|
|
|
442
|
-
|
|
453
|
+
module_eval(<<'.,.,', 'parser.y', 80)
|
|
454
|
+
def _reduce_38(val, _values, result)
|
|
455
|
+
val[2].split('.').each { |k| @handler.push(k) }
|
|
456
|
+
result
|
|
457
|
+
end
|
|
458
|
+
.,.,
|
|
443
459
|
|
|
444
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
460
|
+
module_eval(<<'.,.,', 'parser.y', 82)
|
|
445
461
|
def _reduce_39(val, _values, result)
|
|
462
|
+
keys = val[0].split('.')
|
|
463
|
+
@handler.start_(:inline_keys)
|
|
464
|
+
keys.each { |key| @handler.push(key) }
|
|
465
|
+
|
|
466
|
+
result
|
|
467
|
+
end
|
|
468
|
+
.,.,
|
|
469
|
+
|
|
470
|
+
module_eval(<<'.,.,', 'parser.y', 87)
|
|
471
|
+
def _reduce_40(val, _values, result)
|
|
472
|
+
@handler.start_(:inline_keys)
|
|
473
|
+
@handler.push(val[0])
|
|
474
|
+
|
|
475
|
+
result
|
|
476
|
+
end
|
|
477
|
+
.,.,
|
|
478
|
+
|
|
479
|
+
module_eval(<<'.,.,', 'parser.y', 93)
|
|
480
|
+
def _reduce_41(val, _values, result)
|
|
446
481
|
keys = @handler.end_(:keys)
|
|
447
|
-
|
|
482
|
+
value = keys.pop
|
|
483
|
+
@handler.validate_value(value)
|
|
484
|
+
@handler.push(value)
|
|
448
485
|
@handler.assign(keys)
|
|
449
486
|
|
|
450
487
|
result
|
|
451
488
|
end
|
|
452
489
|
.,.,
|
|
453
490
|
|
|
454
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
455
|
-
def
|
|
491
|
+
module_eval(<<'.,.,', 'parser.y', 100)
|
|
492
|
+
def _reduce_42(val, _values, result)
|
|
456
493
|
keys = @handler.end_(:keys)
|
|
457
|
-
|
|
494
|
+
value = keys.pop
|
|
495
|
+
@handler.validate_value(value)
|
|
496
|
+
@handler.push(value)
|
|
458
497
|
@handler.assign(keys)
|
|
459
498
|
|
|
460
499
|
result
|
|
461
500
|
end
|
|
462
501
|
.,.,
|
|
463
502
|
|
|
464
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
465
|
-
def
|
|
503
|
+
module_eval(<<'.,.,', 'parser.y', 108)
|
|
504
|
+
def _reduce_43(val, _values, result)
|
|
466
505
|
@handler.push(val[2])
|
|
467
506
|
result
|
|
468
507
|
end
|
|
469
508
|
.,.,
|
|
470
509
|
|
|
471
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
472
|
-
def
|
|
510
|
+
module_eval(<<'.,.,', 'parser.y', 109)
|
|
511
|
+
def _reduce_44(val, _values, result)
|
|
473
512
|
val[2].split('.').each { |k| @handler.push(k) }
|
|
474
513
|
result
|
|
475
514
|
end
|
|
476
515
|
.,.,
|
|
477
516
|
|
|
478
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
479
|
-
def
|
|
517
|
+
module_eval(<<'.,.,', 'parser.y', 111)
|
|
518
|
+
def _reduce_45(val, _values, result)
|
|
480
519
|
keys = val[0].split('.')
|
|
481
520
|
@handler.start_(:keys)
|
|
482
521
|
keys.each { |key| @handler.push(key) }
|
|
@@ -485,20 +524,21 @@ module_eval(<<'.,.,', 'parser.y', 99)
|
|
|
485
524
|
end
|
|
486
525
|
.,.,
|
|
487
526
|
|
|
488
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
489
|
-
def
|
|
527
|
+
module_eval(<<'.,.,', 'parser.y', 115)
|
|
528
|
+
def _reduce_46(val, _values, result)
|
|
490
529
|
@handler.start_(:keys); @handler.push(val[0])
|
|
491
530
|
result
|
|
492
531
|
end
|
|
493
532
|
.,.,
|
|
494
533
|
|
|
495
|
-
# reduce 45 omitted
|
|
496
|
-
|
|
497
|
-
# reduce 46 omitted
|
|
498
|
-
|
|
499
534
|
# reduce 47 omitted
|
|
500
535
|
|
|
501
|
-
|
|
536
|
+
module_eval(<<'.,.,', 'parser.y', 119)
|
|
537
|
+
def _reduce_48(val, _values, result)
|
|
538
|
+
result = StringUtils.replace_escaped_chars(val[0])
|
|
539
|
+
result
|
|
540
|
+
end
|
|
541
|
+
.,.,
|
|
502
542
|
|
|
503
543
|
# reduce 49 omitted
|
|
504
544
|
|
|
@@ -508,61 +548,65 @@ module_eval(<<'.,.,', 'parser.y', 103)
|
|
|
508
548
|
|
|
509
549
|
# reduce 52 omitted
|
|
510
550
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
551
|
+
# reduce 53 omitted
|
|
552
|
+
|
|
553
|
+
# reduce 54 omitted
|
|
554
|
+
|
|
555
|
+
module_eval(<<'.,.,', 'parser.y', 130)
|
|
556
|
+
def _reduce_55(val, _values, result)
|
|
557
|
+
array = @handler.end_(:array); @handler.push(array.compact)
|
|
514
558
|
result
|
|
515
559
|
end
|
|
516
560
|
.,.,
|
|
517
561
|
|
|
518
|
-
# reduce
|
|
562
|
+
# reduce 56 omitted
|
|
519
563
|
|
|
520
|
-
# reduce
|
|
564
|
+
# reduce 57 omitted
|
|
521
565
|
|
|
522
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
523
|
-
def
|
|
524
|
-
array = @handler.end_(:array); @handler.push(array)
|
|
566
|
+
module_eval(<<'.,.,', 'parser.y', 135)
|
|
567
|
+
def _reduce_58(val, _values, result)
|
|
568
|
+
array = @handler.end_(:array); @handler.push(array.compact)
|
|
525
569
|
result
|
|
526
570
|
end
|
|
527
571
|
.,.,
|
|
528
572
|
|
|
529
|
-
# reduce
|
|
573
|
+
# reduce 59 omitted
|
|
530
574
|
|
|
531
|
-
# reduce
|
|
575
|
+
# reduce 60 omitted
|
|
532
576
|
|
|
533
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
534
|
-
def
|
|
577
|
+
module_eval(<<'.,.,', 'parser.y', 140)
|
|
578
|
+
def _reduce_61(val, _values, result)
|
|
535
579
|
@handler.start_(:array)
|
|
536
580
|
result
|
|
537
581
|
end
|
|
538
582
|
.,.,
|
|
539
583
|
|
|
540
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
541
|
-
def
|
|
584
|
+
module_eval(<<'.,.,', 'parser.y', 143)
|
|
585
|
+
def _reduce_62(val, _values, result)
|
|
542
586
|
@handler.push(val[0])
|
|
543
587
|
result
|
|
544
588
|
end
|
|
545
589
|
.,.,
|
|
546
590
|
|
|
547
|
-
# reduce 61 omitted
|
|
548
|
-
|
|
549
|
-
# reduce 62 omitted
|
|
550
|
-
|
|
551
591
|
# reduce 63 omitted
|
|
552
592
|
|
|
553
593
|
# reduce 64 omitted
|
|
554
594
|
|
|
555
595
|
# reduce 65 omitted
|
|
556
596
|
|
|
557
|
-
|
|
558
|
-
|
|
597
|
+
# reduce 66 omitted
|
|
598
|
+
|
|
599
|
+
# reduce 67 omitted
|
|
600
|
+
|
|
601
|
+
module_eval(<<'.,.,', 'parser.y', 152)
|
|
602
|
+
def _reduce_68(val, _values, result)
|
|
559
603
|
result = val[0].to_f
|
|
560
604
|
result
|
|
561
605
|
end
|
|
562
606
|
.,.,
|
|
563
607
|
|
|
564
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
565
|
-
def
|
|
608
|
+
module_eval(<<'.,.,', 'parser.y', 154)
|
|
609
|
+
def _reduce_69(val, _values, result)
|
|
566
610
|
v = val[0]
|
|
567
611
|
result = if v.end_with?('nan')
|
|
568
612
|
Float::NAN
|
|
@@ -574,15 +618,15 @@ module_eval(<<'.,.,', 'parser.y', 142)
|
|
|
574
618
|
end
|
|
575
619
|
.,.,
|
|
576
620
|
|
|
577
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
578
|
-
def
|
|
621
|
+
module_eval(<<'.,.,', 'parser.y', 161)
|
|
622
|
+
def _reduce_70(val, _values, result)
|
|
579
623
|
result = val[0].to_i
|
|
580
624
|
result
|
|
581
625
|
end
|
|
582
626
|
.,.,
|
|
583
627
|
|
|
584
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
585
|
-
def
|
|
628
|
+
module_eval(<<'.,.,', 'parser.y', 163)
|
|
629
|
+
def _reduce_71(val, _values, result)
|
|
586
630
|
base = case val[0][1]
|
|
587
631
|
when "x" then 16
|
|
588
632
|
when "o" then 8
|
|
@@ -594,15 +638,15 @@ module_eval(<<'.,.,', 'parser.y', 151)
|
|
|
594
638
|
end
|
|
595
639
|
.,.,
|
|
596
640
|
|
|
597
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
598
|
-
def
|
|
641
|
+
module_eval(<<'.,.,', 'parser.y', 170)
|
|
642
|
+
def _reduce_72(val, _values, result)
|
|
599
643
|
result = val[0] == 'true' ? true : false
|
|
600
644
|
result
|
|
601
645
|
end
|
|
602
646
|
.,.,
|
|
603
647
|
|
|
604
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
605
|
-
def
|
|
648
|
+
module_eval(<<'.,.,', 'parser.y', 172)
|
|
649
|
+
def _reduce_73(val, _values, result)
|
|
606
650
|
v = val[0]
|
|
607
651
|
result = if v[6].nil?
|
|
608
652
|
if v[4].nil?
|
|
@@ -611,6 +655,11 @@ module_eval(<<'.,.,', 'parser.y', 160)
|
|
|
611
655
|
LocalDateTime.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, v[5].to_f)
|
|
612
656
|
end
|
|
613
657
|
else
|
|
658
|
+
# Patch for 24:00:00 which Ruby parses
|
|
659
|
+
if v[3].to_i == 24 && v[4].to_i == 0 && v[5].to_i == 0
|
|
660
|
+
v[3] = (v[3].to_i + 1).to_s
|
|
661
|
+
end
|
|
662
|
+
|
|
614
663
|
Time.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, v[5].to_f, v[6])
|
|
615
664
|
end
|
|
616
665
|
|
|
@@ -618,36 +667,36 @@ module_eval(<<'.,.,', 'parser.y', 160)
|
|
|
618
667
|
end
|
|
619
668
|
.,.,
|
|
620
669
|
|
|
621
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
622
|
-
def
|
|
670
|
+
module_eval(<<'.,.,', 'parser.y', 188)
|
|
671
|
+
def _reduce_74(val, _values, result)
|
|
623
672
|
result = LocalTime.new(*val[0])
|
|
624
673
|
result
|
|
625
674
|
end
|
|
626
675
|
.,.,
|
|
627
676
|
|
|
628
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
629
|
-
def
|
|
677
|
+
module_eval(<<'.,.,', 'parser.y', 191)
|
|
678
|
+
def _reduce_75(val, _values, result)
|
|
630
679
|
result = StringUtils.replace_escaped_chars(StringUtils.multiline_replacements(val[0]))
|
|
631
680
|
result
|
|
632
681
|
end
|
|
633
682
|
.,.,
|
|
634
683
|
|
|
635
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
636
|
-
def
|
|
684
|
+
module_eval(<<'.,.,', 'parser.y', 192)
|
|
685
|
+
def _reduce_76(val, _values, result)
|
|
637
686
|
result = StringUtils.replace_escaped_chars(val[0])
|
|
638
687
|
result
|
|
639
688
|
end
|
|
640
689
|
.,.,
|
|
641
690
|
|
|
642
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
643
|
-
def
|
|
691
|
+
module_eval(<<'.,.,', 'parser.y', 193)
|
|
692
|
+
def _reduce_77(val, _values, result)
|
|
644
693
|
result = StringUtils.strip_spaces(val[0])
|
|
645
694
|
result
|
|
646
695
|
end
|
|
647
696
|
.,.,
|
|
648
697
|
|
|
649
|
-
module_eval(<<'.,.,', 'parser.y',
|
|
650
|
-
def
|
|
698
|
+
module_eval(<<'.,.,', 'parser.y', 194)
|
|
699
|
+
def _reduce_78(val, _values, result)
|
|
651
700
|
result = val[0]
|
|
652
701
|
result
|
|
653
702
|
end
|
data/lib/tomlrb/handler.rb
CHANGED
|
@@ -13,6 +13,10 @@ module Tomlrb
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def set_context(identifiers, is_array_of_tables: false)
|
|
16
|
+
if identifiers.empty?
|
|
17
|
+
raise ParseError, 'Array needs a name'
|
|
18
|
+
end
|
|
19
|
+
|
|
16
20
|
@current_table = identifiers.dup
|
|
17
21
|
@keys.add_table_key identifiers, is_array_of_tables
|
|
18
22
|
@current = @output
|
|
@@ -21,7 +25,6 @@ module Tomlrb
|
|
|
21
25
|
identifierz.each do |k|
|
|
22
26
|
k = k.to_sym if @symbolize_keys
|
|
23
27
|
if @current[k].is_a?(Array)
|
|
24
|
-
@current[k] << {} if @current[k].empty?
|
|
25
28
|
@current = @current[k].last
|
|
26
29
|
else
|
|
27
30
|
@current[k] ||= {}
|
|
@@ -32,7 +35,6 @@ module Tomlrb
|
|
|
32
35
|
end
|
|
33
36
|
|
|
34
37
|
def deal_with_array_of_tables(identifiers, is_array_of_tables)
|
|
35
|
-
identifiers.map!{|n| n.gsub("\"", '')}
|
|
36
38
|
stringified_identifier = identifiers.join('.')
|
|
37
39
|
|
|
38
40
|
if is_array_of_tables
|
|
@@ -66,6 +68,31 @@ module Tomlrb
|
|
|
66
68
|
@stack << o
|
|
67
69
|
end
|
|
68
70
|
|
|
71
|
+
def push_inline(inline_arrays)
|
|
72
|
+
merged_inline = {}
|
|
73
|
+
|
|
74
|
+
inline_arrays.each do |inline_array|
|
|
75
|
+
current = merged_inline
|
|
76
|
+
value = inline_array.pop
|
|
77
|
+
inline_array.each_with_index do |inline_key, inline_index|
|
|
78
|
+
last_key = inline_index == inline_array.size - 1
|
|
79
|
+
|
|
80
|
+
if last_key
|
|
81
|
+
if current[inline_key].nil?
|
|
82
|
+
current[inline_key] = value
|
|
83
|
+
else
|
|
84
|
+
raise Key::KeyConflict, "Inline key #{inline_key} is already used"
|
|
85
|
+
end
|
|
86
|
+
else
|
|
87
|
+
current[inline_key] ||= {}
|
|
88
|
+
current = current[inline_key]
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
push(merged_inline)
|
|
94
|
+
end
|
|
95
|
+
|
|
69
96
|
def start_(type)
|
|
70
97
|
push([type])
|
|
71
98
|
end
|
|
@@ -73,16 +100,23 @@ module Tomlrb
|
|
|
73
100
|
def end_(type)
|
|
74
101
|
array = []
|
|
75
102
|
while (value = @stack.pop) != [type]
|
|
76
|
-
raise ParseError, 'Unclosed table' if
|
|
103
|
+
raise ParseError, 'Unclosed table' if @stack.empty?
|
|
77
104
|
array.unshift(value)
|
|
78
105
|
end
|
|
79
106
|
array
|
|
80
107
|
end
|
|
81
108
|
|
|
109
|
+
def validate_value(value)
|
|
110
|
+
if value.nil?
|
|
111
|
+
raise ParseError, 'Value must be present'
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
82
115
|
private
|
|
83
116
|
|
|
84
117
|
def assign_key_path(current, key, key_emptied)
|
|
85
118
|
if key_emptied
|
|
119
|
+
|
|
86
120
|
raise ParseError, "Cannot overwrite value with key #{key}" unless current.kind_of?(Hash)
|
|
87
121
|
current[key] = @stack.pop
|
|
88
122
|
return current
|
|
@@ -156,7 +190,7 @@ module Tomlrb
|
|
|
156
190
|
|
|
157
191
|
def find_or_create_first_pair_key(current, key, declared, table_keys_empty)
|
|
158
192
|
existed = current[key]
|
|
159
|
-
if existed &&
|
|
193
|
+
if existed && (existed.type == :pair) && declared && table_keys_empty
|
|
160
194
|
raise Key::KeyConflict, "Key #{key} is already used"
|
|
161
195
|
end
|
|
162
196
|
k = Key.new(key, :pair, declared)
|
|
@@ -199,7 +233,7 @@ module Tomlrb
|
|
|
199
233
|
private
|
|
200
234
|
|
|
201
235
|
def validate_already_declared_as_different_key(type, declared, existed)
|
|
202
|
-
if
|
|
236
|
+
if existed && existed.declared? && existed.type != type
|
|
203
237
|
raise KeyConflict, "Key #{existed.key} is already used as #{existed.type} key"
|
|
204
238
|
end
|
|
205
239
|
end
|
data/lib/tomlrb/parser.y
CHANGED
|
@@ -41,7 +41,7 @@ rule
|
|
|
41
41
|
;
|
|
42
42
|
table_identifier_component
|
|
43
43
|
: IDENTIFIER
|
|
44
|
-
| STRING_BASIC
|
|
44
|
+
| STRING_BASIC { result = StringUtils.replace_escaped_chars(val[0]) }
|
|
45
45
|
| STRING_LITERAL
|
|
46
46
|
| INTEGER
|
|
47
47
|
| NON_DEC_INTEGER
|
|
@@ -58,38 +58,50 @@ rule
|
|
|
58
58
|
inline_table_end
|
|
59
59
|
: '}' {
|
|
60
60
|
array = @handler.end_(:inline)
|
|
61
|
-
|
|
62
|
-
@handler.push(Hash[*array])
|
|
61
|
+
@handler.push_inline(array)
|
|
63
62
|
}
|
|
64
63
|
;
|
|
65
64
|
inline_continued
|
|
66
|
-
:
|
|
67
|
-
|
|
|
65
|
+
: inline_assignment
|
|
66
|
+
| inline_assignment inline_next
|
|
68
67
|
;
|
|
69
68
|
inline_next
|
|
70
69
|
: ',' inline_continued
|
|
71
70
|
;
|
|
72
|
-
|
|
73
|
-
: inline_assignment_key '
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
@handler.start_(:inline)
|
|
77
|
-
@handler.push(val[2])
|
|
71
|
+
inline_assignment
|
|
72
|
+
: inline_assignment_key '=' value {
|
|
73
|
+
keys = @handler.end_(:inline_keys)
|
|
74
|
+
@handler.push(keys)
|
|
78
75
|
}
|
|
79
|
-
| IDENTIFIER { @handler.push(val[0]) }
|
|
80
76
|
;
|
|
81
|
-
|
|
82
|
-
: '
|
|
77
|
+
inline_assignment_key
|
|
78
|
+
: inline_assignment_key '.' assignment_key_component {
|
|
79
|
+
@handler.push(val[2])
|
|
80
|
+
}
|
|
81
|
+
| inline_assignment_key '.' FLOAT { val[2].split('.').each { |k| @handler.push(k) } }
|
|
82
|
+
| FLOAT {
|
|
83
|
+
keys = val[0].split('.')
|
|
84
|
+
@handler.start_(:inline_keys)
|
|
85
|
+
keys.each { |key| @handler.push(key) }
|
|
86
|
+
}
|
|
87
|
+
| assignment_key_component {
|
|
88
|
+
@handler.start_(:inline_keys)
|
|
89
|
+
@handler.push(val[0])
|
|
90
|
+
}
|
|
83
91
|
;
|
|
84
92
|
assignment
|
|
85
93
|
: assignment_key '=' value EOS {
|
|
86
94
|
keys = @handler.end_(:keys)
|
|
87
|
-
|
|
95
|
+
value = keys.pop
|
|
96
|
+
@handler.validate_value(value)
|
|
97
|
+
@handler.push(value)
|
|
88
98
|
@handler.assign(keys)
|
|
89
99
|
}
|
|
90
100
|
| assignment_key '=' value NEWLINE {
|
|
91
101
|
keys = @handler.end_(:keys)
|
|
92
|
-
|
|
102
|
+
value = keys.pop
|
|
103
|
+
@handler.validate_value(value)
|
|
104
|
+
@handler.push(value)
|
|
93
105
|
@handler.assign(keys)
|
|
94
106
|
}
|
|
95
107
|
;
|
|
@@ -105,7 +117,7 @@ rule
|
|
|
105
117
|
;
|
|
106
118
|
assignment_key_component
|
|
107
119
|
: IDENTIFIER
|
|
108
|
-
| STRING_BASIC
|
|
120
|
+
| STRING_BASIC { result = StringUtils.replace_escaped_chars(val[0]) }
|
|
109
121
|
| STRING_LITERAL
|
|
110
122
|
| INTEGER
|
|
111
123
|
| NON_DEC_INTEGER
|
|
@@ -116,12 +128,12 @@ rule
|
|
|
116
128
|
: start_array array_continued
|
|
117
129
|
;
|
|
118
130
|
array_continued
|
|
119
|
-
: ']' { array = @handler.end_(:array); @handler.push(array) }
|
|
131
|
+
: ']' { array = @handler.end_(:array); @handler.push(array.compact) }
|
|
120
132
|
| value array_next
|
|
121
133
|
| NEWLINE array_continued
|
|
122
134
|
;
|
|
123
135
|
array_next
|
|
124
|
-
: ']' { array = @handler.end_(:array); @handler.push(array) }
|
|
136
|
+
: ']' { array = @handler.end_(:array); @handler.push(array.compact) }
|
|
125
137
|
| ',' array_continued
|
|
126
138
|
| NEWLINE array_continued
|
|
127
139
|
;
|
|
@@ -166,6 +178,11 @@ rule
|
|
|
166
178
|
LocalDateTime.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, v[5].to_f)
|
|
167
179
|
end
|
|
168
180
|
else
|
|
181
|
+
# Patch for 24:00:00 which Ruby parses
|
|
182
|
+
if v[3].to_i == 24 && v[4].to_i == 0 && v[5].to_i == 0
|
|
183
|
+
v[3] = (v[3].to_i + 1).to_s
|
|
184
|
+
end
|
|
185
|
+
|
|
169
186
|
Time.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, v[5].to_f, v[6])
|
|
170
187
|
end
|
|
171
188
|
}
|
data/lib/tomlrb/scanner.rb
CHANGED
|
@@ -12,11 +12,14 @@ module Tomlrb
|
|
|
12
12
|
STRING_LITERAL_MULTI = /'{3}([^\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]*?'{3,5})/m
|
|
13
13
|
DATETIME = /(-?\d{4})-(\d{2})-(\d{2})(?:(?:t|\s)(\d{2}):(\d{2}):(\d{2}(?:\.\d+)?))?(z|[-+]\d{2}:\d{2})?/i
|
|
14
14
|
LOCAL_TIME = /(\d{2}):(\d{2}):(\d{2}(?:\.\d+)?)/
|
|
15
|
-
FLOAT = /[+-]?(?:(?:\d|[1-9](?:_?\d)*)\.\d(?:_?\d)*|\d+(?=[eE]))(?:[eE][+-]?[0-
|
|
15
|
+
FLOAT = /[+-]?(?:(?:\d|[1-9](?:_?\d)*)\.\d(?:_?\d)*|\d+(?=[eE]))(?:[eE][+-]?[0-9]+(_[0-9])*[0-9]*)?(?!\w)/
|
|
16
16
|
FLOAT_KEYWORD = /[+-]?(?:inf|nan)\b/
|
|
17
17
|
INTEGER = /[+-]?([1-9](_?\d)*|0)(?![A-Za-z0-9_-]+)/
|
|
18
|
-
NON_DEC_INTEGER = /0(?:x[0-9A-Fa-f][0-9A-Fa-
|
|
18
|
+
NON_DEC_INTEGER = /0(?:x[0-9A-Fa-f]+(?:_[0-9A-Fa-f])*[0-9A-Fa-f]*|o[0-7]+(?:_[0-7])*[0-7]*|b[01]+(?:_[01])*[01]*)/
|
|
19
19
|
BOOLEAN = /true|false/
|
|
20
|
+
SPACED_ARRAY_OF_TABLES_START = /^\[[ \t]+\[(#{IDENTIFIER}|#{STRING_BASIC}|#{STRING_LITERAL}|#{INTEGER}|#{NON_DEC_INTEGER}|#{FLOAT_KEYWORD}|#{BOOLEAN})\]\]$/
|
|
21
|
+
SPACED_ARRAY_OF_TABLES_END = /^\[\[(#{IDENTIFIER}|#{STRING_BASIC}|#{STRING_LITERAL}|#{INTEGER}|#{NON_DEC_INTEGER}|#{FLOAT_KEYWORD}|#{BOOLEAN})\][ \t]+\]$/
|
|
22
|
+
SPACED_ARRAY_OF_TABLES_BOTH = /^\[[ \t]+\[(#{IDENTIFIER}|#{STRING_BASIC}|#{STRING_LITERAL}|#{INTEGER}|#{NON_DEC_INTEGER}|#{FLOAT_KEYWORD}|#{BOOLEAN})\][ \t]+\]$/
|
|
20
23
|
|
|
21
24
|
def initialize(io)
|
|
22
25
|
@ss = StringScanner.new(io.read)
|
|
@@ -26,6 +29,9 @@ module Tomlrb
|
|
|
26
29
|
def next_token
|
|
27
30
|
case
|
|
28
31
|
when @ss.scan(NEWLINE) then [:NEWLINE, nil]
|
|
32
|
+
when @ss.scan(SPACED_ARRAY_OF_TABLES_START) then raise ParseError.new("Array of tables has spaces in starting brackets")
|
|
33
|
+
when @ss.scan(SPACED_ARRAY_OF_TABLES_END) then raise ParseError.new("Array of tables has spaces in ending brackets")
|
|
34
|
+
when @ss.scan(SPACED_ARRAY_OF_TABLES_BOTH) then raise ParseError.new("Array of tables has spaces in starting and ending brackets")
|
|
29
35
|
when @ss.scan(SPACE) then next_token
|
|
30
36
|
when @ss.scan(COMMENT) then next_token
|
|
31
37
|
when @ss.scan(DATETIME) then process_datetime
|
|
@@ -47,7 +53,7 @@ module Tomlrb
|
|
|
47
53
|
|
|
48
54
|
def process_datetime
|
|
49
55
|
if @ss[7]
|
|
50
|
-
offset = @ss[7].gsub(
|
|
56
|
+
offset = @ss[7].gsub(/[zZ]/, '+00:00')
|
|
51
57
|
end
|
|
52
58
|
args = [@ss[1], @ss[2], @ss[3], @ss[4], @ss[5], @ss[6], offset]
|
|
53
59
|
[:DATETIME, args]
|
data/lib/tomlrb/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tomlrb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Francois Bernier
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
-
dependencies:
|
|
11
|
+
date: 2022-05-25 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: psych
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '4'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '4'
|
|
13
27
|
description: A racc based toml parser
|
|
14
28
|
email:
|
|
15
29
|
- frankbernier@gmail.com
|
|
@@ -48,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
48
62
|
- !ruby/object:Gem::Version
|
|
49
63
|
version: '0'
|
|
50
64
|
requirements: []
|
|
51
|
-
rubygems_version: 3.
|
|
65
|
+
rubygems_version: 3.3.7
|
|
52
66
|
signing_key:
|
|
53
67
|
specification_version: 4
|
|
54
68
|
summary: A racc based toml parser
|