edn-abnf 0.0.6 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/edn-abnf.gemspec +1 -1
- data/lib/parser/edngrammar.rb +564 -342
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad6ca6781c8f1fab8f4be83db41604619f4a38049b13e934f4eea8ab3a2fe757
|
4
|
+
data.tar.gz: b8d503680fffa8e5a81232ce301026f9780df6c35aaec80598549fd81fea63ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50ad3b1462112822df91e51617ef5dc0ba704e896be060562d6a42cd6c7f67980121b250ccfd080f11be9f51e406c005b1e37133f41156d1684ba13f07c80e78
|
7
|
+
data.tar.gz: 28d52a6d4f5b1e55b85d4cc8534341de042834fb36bb5b6962609332ead01bd66629fc664d4e88adcc0eb6b74948d357be979c4b5266524b61af44a6feee26c4
|
data/edn-abnf.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "edn-abnf"
|
3
|
-
s.version = "0.0.
|
3
|
+
s.version = "0.0.8"
|
4
4
|
s.summary = "CDDL (Concise Data Definition Language) converters and miscellaneous tools"
|
5
5
|
s.description = %q{edn-abnf implements converters and miscellaneous tools for CBOR EDN's ABNF}
|
6
6
|
s.author = "Carsten Bormann"
|
data/lib/parser/edngrammar.rb
CHANGED
@@ -187,52 +187,28 @@ module EDNGRAMMAR
|
|
187
187
|
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
188
188
|
r0 = r3
|
189
189
|
else
|
190
|
-
r4 =
|
190
|
+
r4 = _nt_number
|
191
191
|
if r4
|
192
192
|
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
193
193
|
r0 = r4
|
194
194
|
else
|
195
|
-
r5 =
|
195
|
+
r5 = _nt_simple
|
196
196
|
if r5
|
197
197
|
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
198
198
|
r0 = r5
|
199
199
|
else
|
200
|
-
r6 =
|
200
|
+
r6 = _nt_string
|
201
201
|
if r6
|
202
202
|
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
203
203
|
r0 = r6
|
204
204
|
else
|
205
|
-
r7 =
|
205
|
+
r7 = _nt_streamstring
|
206
206
|
if r7
|
207
207
|
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
208
208
|
r0 = r7
|
209
209
|
else
|
210
|
-
|
211
|
-
|
212
|
-
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
213
|
-
r0 = r8
|
214
|
-
else
|
215
|
-
r9 = _nt_bstr
|
216
|
-
if r9
|
217
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
218
|
-
r0 = r9
|
219
|
-
else
|
220
|
-
r10 = _nt_embedded
|
221
|
-
if r10
|
222
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
223
|
-
r0 = r10
|
224
|
-
else
|
225
|
-
r11 = _nt_streamstring
|
226
|
-
if r11
|
227
|
-
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
228
|
-
r0 = r11
|
229
|
-
else
|
230
|
-
@index = i0
|
231
|
-
r0 = nil
|
232
|
-
end
|
233
|
-
end
|
234
|
-
end
|
235
|
-
end
|
210
|
+
@index = i0
|
211
|
+
r0 = nil
|
236
212
|
end
|
237
213
|
end
|
238
214
|
end
|
@@ -246,6 +222,128 @@ module EDNGRAMMAR
|
|
246
222
|
r0
|
247
223
|
end
|
248
224
|
|
225
|
+
module Number0
|
226
|
+
def spec
|
227
|
+
elements[1]
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
module Number1
|
232
|
+
def ast
|
233
|
+
elements[0].ast
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
def _nt_number
|
238
|
+
start_index = index
|
239
|
+
if node_cache[:number].has_key?(index)
|
240
|
+
cached = node_cache[:number][index]
|
241
|
+
if cached
|
242
|
+
node_cache[:number][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
243
|
+
@index = cached.interval.end
|
244
|
+
end
|
245
|
+
return cached
|
246
|
+
end
|
247
|
+
|
248
|
+
i0, s0 = index, []
|
249
|
+
i1 = index
|
250
|
+
r2 = _nt_basenumber
|
251
|
+
if r2
|
252
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
253
|
+
r1 = r2
|
254
|
+
else
|
255
|
+
r3 = _nt_decnumber
|
256
|
+
if r3
|
257
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
258
|
+
r1 = r3
|
259
|
+
else
|
260
|
+
r4 = _nt_infin
|
261
|
+
if r4
|
262
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
263
|
+
r1 = r4
|
264
|
+
else
|
265
|
+
@index = i1
|
266
|
+
r1 = nil
|
267
|
+
end
|
268
|
+
end
|
269
|
+
end
|
270
|
+
s0 << r1
|
271
|
+
if r1
|
272
|
+
r5 = _nt_spec
|
273
|
+
s0 << r5
|
274
|
+
end
|
275
|
+
if s0.last
|
276
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
277
|
+
r0.extend(Number0)
|
278
|
+
r0.extend(Number1)
|
279
|
+
else
|
280
|
+
@index = i0
|
281
|
+
r0 = nil
|
282
|
+
end
|
283
|
+
|
284
|
+
node_cache[:number][start_index] = r0
|
285
|
+
|
286
|
+
r0
|
287
|
+
end
|
288
|
+
|
289
|
+
module String0
|
290
|
+
def spec
|
291
|
+
elements[1]
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
module String1
|
296
|
+
def ast
|
297
|
+
elements[0].ast
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
301
|
+
def _nt_string
|
302
|
+
start_index = index
|
303
|
+
if node_cache[:string].has_key?(index)
|
304
|
+
cached = node_cache[:string][index]
|
305
|
+
if cached
|
306
|
+
node_cache[:string][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
307
|
+
@index = cached.interval.end
|
308
|
+
end
|
309
|
+
return cached
|
310
|
+
end
|
311
|
+
|
312
|
+
i0, s0 = index, []
|
313
|
+
i1 = index
|
314
|
+
r2 = _nt_tstr
|
315
|
+
if r2
|
316
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
317
|
+
r1 = r2
|
318
|
+
else
|
319
|
+
r3 = _nt_bstr
|
320
|
+
if r3
|
321
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
322
|
+
r1 = r3
|
323
|
+
else
|
324
|
+
@index = i1
|
325
|
+
r1 = nil
|
326
|
+
end
|
327
|
+
end
|
328
|
+
s0 << r1
|
329
|
+
if r1
|
330
|
+
r4 = _nt_spec
|
331
|
+
s0 << r4
|
332
|
+
end
|
333
|
+
if s0.last
|
334
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
335
|
+
r0.extend(String0)
|
336
|
+
r0.extend(String1)
|
337
|
+
else
|
338
|
+
@index = i0
|
339
|
+
r0 = nil
|
340
|
+
end
|
341
|
+
|
342
|
+
node_cache[:string][start_index] = r0
|
343
|
+
|
344
|
+
r0
|
345
|
+
end
|
346
|
+
|
249
347
|
def _nt_sign
|
250
348
|
start_index = index
|
251
349
|
if node_cache[:sign].has_key?(index)
|
@@ -1026,16 +1124,20 @@ module EDNGRAMMAR
|
|
1026
1124
|
elements[0]
|
1027
1125
|
end
|
1028
1126
|
|
1127
|
+
def spec
|
1128
|
+
elements[1]
|
1129
|
+
end
|
1130
|
+
|
1029
1131
|
def S1
|
1030
|
-
elements[
|
1132
|
+
elements[3]
|
1031
1133
|
end
|
1032
1134
|
|
1033
1135
|
def item
|
1034
|
-
elements[
|
1136
|
+
elements[4]
|
1035
1137
|
end
|
1036
1138
|
|
1037
1139
|
def S2
|
1038
|
-
elements[
|
1140
|
+
elements[5]
|
1039
1141
|
end
|
1040
1142
|
|
1041
1143
|
end
|
@@ -1061,32 +1163,36 @@ module EDNGRAMMAR
|
|
1061
1163
|
r1 = _nt_uint
|
1062
1164
|
s0 << r1
|
1063
1165
|
if r1
|
1064
|
-
|
1065
|
-
r2 = true
|
1066
|
-
@index += match_len
|
1067
|
-
else
|
1068
|
-
terminal_parse_failure('"("')
|
1069
|
-
r2 = nil
|
1070
|
-
end
|
1166
|
+
r2 = _nt_spec
|
1071
1167
|
s0 << r2
|
1072
1168
|
if r2
|
1073
|
-
|
1169
|
+
if (match_len = has_terminal?("(", false, index))
|
1170
|
+
r3 = true
|
1171
|
+
@index += match_len
|
1172
|
+
else
|
1173
|
+
terminal_parse_failure('"("')
|
1174
|
+
r3 = nil
|
1175
|
+
end
|
1074
1176
|
s0 << r3
|
1075
1177
|
if r3
|
1076
|
-
r4 =
|
1178
|
+
r4 = _nt_S
|
1077
1179
|
s0 << r4
|
1078
1180
|
if r4
|
1079
|
-
r5 =
|
1181
|
+
r5 = _nt_item
|
1080
1182
|
s0 << r5
|
1081
1183
|
if r5
|
1082
|
-
|
1083
|
-
r6 = true
|
1084
|
-
@index += match_len
|
1085
|
-
else
|
1086
|
-
terminal_parse_failure('")"')
|
1087
|
-
r6 = nil
|
1088
|
-
end
|
1184
|
+
r6 = _nt_S
|
1089
1185
|
s0 << r6
|
1186
|
+
if r6
|
1187
|
+
if (match_len = has_terminal?(")", false, index))
|
1188
|
+
r7 = true
|
1189
|
+
@index += match_len
|
1190
|
+
else
|
1191
|
+
terminal_parse_failure('")"')
|
1192
|
+
r7 = nil
|
1193
|
+
end
|
1194
|
+
s0 << r7
|
1195
|
+
end
|
1090
1196
|
end
|
1091
1197
|
end
|
1092
1198
|
end
|
@@ -1298,8 +1404,14 @@ module EDNGRAMMAR
|
|
1298
1404
|
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
1299
1405
|
r0 = r2
|
1300
1406
|
else
|
1301
|
-
|
1302
|
-
|
1407
|
+
r3 = _nt_embedded
|
1408
|
+
if r3
|
1409
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
1410
|
+
r0 = r3
|
1411
|
+
else
|
1412
|
+
@index = i0
|
1413
|
+
r0 = nil
|
1414
|
+
end
|
1303
1415
|
end
|
1304
1416
|
end
|
1305
1417
|
|
@@ -1477,8 +1589,12 @@ module EDNGRAMMAR
|
|
1477
1589
|
else
|
1478
1590
|
[]
|
1479
1591
|
end
|
1480
|
-
if spec.ast
|
1481
|
-
|
1592
|
+
if ei = spec.ast
|
1593
|
+
if ei == ""
|
1594
|
+
r.cbor_stream!
|
1595
|
+
else
|
1596
|
+
warn "*** ignoring unimplemented encoding indicator #{ei.inspect} after ["
|
1597
|
+
end
|
1482
1598
|
end
|
1483
1599
|
r
|
1484
1600
|
end
|
@@ -1640,8 +1756,12 @@ module EDNGRAMMAR
|
|
1640
1756
|
else
|
1641
1757
|
{}
|
1642
1758
|
end
|
1643
|
-
if spec.ast
|
1644
|
-
|
1759
|
+
if ei = spec.ast
|
1760
|
+
if ei == ""
|
1761
|
+
r.cbor_stream!
|
1762
|
+
else
|
1763
|
+
warn "*** ignoring unimplemented encoding indicator #{ei.inspect} after \x7b"
|
1764
|
+
end
|
1645
1765
|
end
|
1646
1766
|
r
|
1647
1767
|
end
|
@@ -1931,19 +2051,31 @@ module EDNGRAMMAR
|
|
1931
2051
|
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
1932
2052
|
r0 = r2
|
1933
2053
|
else
|
1934
|
-
if has_terminal?(@regexps[gr = '\A[0
|
2054
|
+
if has_terminal?(@regexps[gr = '\A[0-]'] ||= Regexp.new(gr), :regexp, index)
|
1935
2055
|
r3 = true
|
1936
2056
|
@index += 1
|
1937
2057
|
else
|
1938
|
-
terminal_parse_failure('[0
|
2058
|
+
terminal_parse_failure('[0-]')
|
1939
2059
|
r3 = nil
|
1940
2060
|
end
|
1941
2061
|
if r3
|
1942
2062
|
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
1943
2063
|
r0 = r3
|
1944
2064
|
else
|
1945
|
-
@
|
1946
|
-
|
2065
|
+
if has_terminal?(@regexps[gr = '\A[-]'] ||= Regexp.new(gr), :regexp, index)
|
2066
|
+
r4 = true
|
2067
|
+
@index += 1
|
2068
|
+
else
|
2069
|
+
terminal_parse_failure('[-]')
|
2070
|
+
r4 = nil
|
2071
|
+
end
|
2072
|
+
if r4
|
2073
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
2074
|
+
r0 = r4
|
2075
|
+
else
|
2076
|
+
@index = i0
|
2077
|
+
r0 = nil
|
2078
|
+
end
|
1947
2079
|
end
|
1948
2080
|
end
|
1949
2081
|
end
|
@@ -1953,7 +2085,79 @@ module EDNGRAMMAR
|
|
1953
2085
|
r0
|
1954
2086
|
end
|
1955
2087
|
|
2088
|
+
def _nt_non_lf
|
2089
|
+
start_index = index
|
2090
|
+
if node_cache[:non_lf].has_key?(index)
|
2091
|
+
cached = node_cache[:non_lf][index]
|
2092
|
+
if cached
|
2093
|
+
node_cache[:non_lf][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2094
|
+
@index = cached.interval.end
|
2095
|
+
end
|
2096
|
+
return cached
|
2097
|
+
end
|
2098
|
+
|
2099
|
+
i0 = index
|
2100
|
+
if (match_len = has_terminal?("\t", false, index))
|
2101
|
+
r1 = true
|
2102
|
+
@index += match_len
|
2103
|
+
else
|
2104
|
+
terminal_parse_failure('"\\t"')
|
2105
|
+
r1 = nil
|
2106
|
+
end
|
2107
|
+
if r1
|
2108
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2109
|
+
r0 = r1
|
2110
|
+
else
|
2111
|
+
if (match_len = has_terminal?("\r", false, index))
|
2112
|
+
r2 = true
|
2113
|
+
@index += match_len
|
2114
|
+
else
|
2115
|
+
terminal_parse_failure('"\\r"')
|
2116
|
+
r2 = nil
|
2117
|
+
end
|
2118
|
+
if r2
|
2119
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
2120
|
+
r0 = r2
|
2121
|
+
else
|
2122
|
+
if has_terminal?(@regexps[gr = '\A[\\ -]'] ||= Regexp.new(gr), :regexp, index)
|
2123
|
+
r3 = true
|
2124
|
+
@index += 1
|
2125
|
+
else
|
2126
|
+
terminal_parse_failure('[\\ -]')
|
2127
|
+
r3 = nil
|
2128
|
+
end
|
2129
|
+
if r3
|
2130
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
2131
|
+
r0 = r3
|
2132
|
+
else
|
2133
|
+
if has_terminal?(@regexps[gr = '\A[-]'] ||= Regexp.new(gr), :regexp, index)
|
2134
|
+
r4 = true
|
2135
|
+
@index += 1
|
2136
|
+
else
|
2137
|
+
terminal_parse_failure('[-]')
|
2138
|
+
r4 = nil
|
2139
|
+
end
|
2140
|
+
if r4
|
2141
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
2142
|
+
r0 = r4
|
2143
|
+
else
|
2144
|
+
@index = i0
|
2145
|
+
r0 = nil
|
2146
|
+
end
|
2147
|
+
end
|
2148
|
+
end
|
2149
|
+
end
|
2150
|
+
|
2151
|
+
node_cache[:non_lf][start_index] = r0
|
2152
|
+
|
2153
|
+
r0
|
2154
|
+
end
|
2155
|
+
|
1956
2156
|
module S0
|
2157
|
+
def comment
|
2158
|
+
elements[0]
|
2159
|
+
end
|
2160
|
+
|
1957
2161
|
end
|
1958
2162
|
|
1959
2163
|
module S1
|
@@ -1986,18 +2190,12 @@ module EDNGRAMMAR
|
|
1986
2190
|
s3, i3 = [], index
|
1987
2191
|
loop do
|
1988
2192
|
i4, s4 = index, []
|
1989
|
-
|
1990
|
-
r5 = true
|
1991
|
-
@index += match_len
|
1992
|
-
else
|
1993
|
-
terminal_parse_failure('"/"')
|
1994
|
-
r5 = nil
|
1995
|
-
end
|
2193
|
+
r5 = _nt_comment
|
1996
2194
|
s4 << r5
|
1997
2195
|
if r5
|
1998
2196
|
s6, i6 = [], index
|
1999
2197
|
loop do
|
2000
|
-
r7 =
|
2198
|
+
r7 = _nt_blank
|
2001
2199
|
if r7
|
2002
2200
|
s6 << r7
|
2003
2201
|
else
|
@@ -2006,29 +2204,6 @@ module EDNGRAMMAR
|
|
2006
2204
|
end
|
2007
2205
|
r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
|
2008
2206
|
s4 << r6
|
2009
|
-
if r6
|
2010
|
-
if (match_len = has_terminal?("/", false, index))
|
2011
|
-
r8 = true
|
2012
|
-
@index += match_len
|
2013
|
-
else
|
2014
|
-
terminal_parse_failure('"/"')
|
2015
|
-
r8 = nil
|
2016
|
-
end
|
2017
|
-
s4 << r8
|
2018
|
-
if r8
|
2019
|
-
s9, i9 = [], index
|
2020
|
-
loop do
|
2021
|
-
r10 = _nt_blank
|
2022
|
-
if r10
|
2023
|
-
s9 << r10
|
2024
|
-
else
|
2025
|
-
break
|
2026
|
-
end
|
2027
|
-
end
|
2028
|
-
r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
|
2029
|
-
s4 << r9
|
2030
|
-
end
|
2031
|
-
end
|
2032
2207
|
end
|
2033
2208
|
if s4.last
|
2034
2209
|
r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
|
@@ -2059,93 +2234,174 @@ module EDNGRAMMAR
|
|
2059
2234
|
r0
|
2060
2235
|
end
|
2061
2236
|
|
2062
|
-
module
|
2063
|
-
def S
|
2064
|
-
elements[1]
|
2065
|
-
end
|
2237
|
+
module Comment0
|
2066
2238
|
end
|
2067
2239
|
|
2068
|
-
|
2240
|
+
module Comment1
|
2241
|
+
end
|
2242
|
+
|
2243
|
+
def _nt_comment
|
2069
2244
|
start_index = index
|
2070
|
-
if node_cache[:
|
2071
|
-
cached = node_cache[:
|
2245
|
+
if node_cache[:comment].has_key?(index)
|
2246
|
+
cached = node_cache[:comment][index]
|
2072
2247
|
if cached
|
2073
|
-
node_cache[:
|
2248
|
+
node_cache[:comment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2074
2249
|
@index = cached.interval.end
|
2075
2250
|
end
|
2076
2251
|
return cached
|
2077
2252
|
end
|
2078
2253
|
|
2254
|
+
i0 = index
|
2079
2255
|
i1, s1 = index, []
|
2080
|
-
if (match_len = has_terminal?("
|
2256
|
+
if (match_len = has_terminal?("/", false, index))
|
2081
2257
|
r2 = true
|
2082
2258
|
@index += match_len
|
2083
2259
|
else
|
2084
|
-
terminal_parse_failure('"
|
2260
|
+
terminal_parse_failure('"/"')
|
2085
2261
|
r2 = nil
|
2086
2262
|
end
|
2087
2263
|
s1 << r2
|
2088
2264
|
if r2
|
2089
|
-
|
2090
|
-
|
2091
|
-
|
2092
|
-
|
2093
|
-
|
2094
|
-
|
2095
|
-
|
2265
|
+
s3, i3 = [], index
|
2266
|
+
loop do
|
2267
|
+
r4 = _nt_non_slash
|
2268
|
+
if r4
|
2269
|
+
s3 << r4
|
2270
|
+
else
|
2271
|
+
break
|
2272
|
+
end
|
2273
|
+
end
|
2274
|
+
r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
|
2275
|
+
s1 << r3
|
2276
|
+
if r3
|
2277
|
+
if (match_len = has_terminal?("/", false, index))
|
2278
|
+
r5 = true
|
2279
|
+
@index += match_len
|
2280
|
+
else
|
2281
|
+
terminal_parse_failure('"/"')
|
2282
|
+
r5 = nil
|
2283
|
+
end
|
2284
|
+
s1 << r5
|
2285
|
+
end
|
2286
|
+
end
|
2287
|
+
if s1.last
|
2288
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
2289
|
+
r1.extend(Comment0)
|
2290
|
+
else
|
2096
2291
|
@index = i1
|
2097
2292
|
r1 = nil
|
2098
2293
|
end
|
2099
2294
|
if r1
|
2295
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2100
2296
|
r0 = r1
|
2101
2297
|
else
|
2102
|
-
|
2298
|
+
i6, s6 = index, []
|
2299
|
+
if (match_len = has_terminal?("#", false, index))
|
2300
|
+
r7 = true
|
2301
|
+
@index += match_len
|
2302
|
+
else
|
2303
|
+
terminal_parse_failure('"#"')
|
2304
|
+
r7 = nil
|
2305
|
+
end
|
2306
|
+
s6 << r7
|
2307
|
+
if r7
|
2308
|
+
s8, i8 = [], index
|
2309
|
+
loop do
|
2310
|
+
r9 = _nt_non_lf
|
2311
|
+
if r9
|
2312
|
+
s8 << r9
|
2313
|
+
else
|
2314
|
+
break
|
2315
|
+
end
|
2316
|
+
end
|
2317
|
+
r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
|
2318
|
+
s6 << r8
|
2319
|
+
if r8
|
2320
|
+
if (match_len = has_terminal?("\n", false, index))
|
2321
|
+
r10 = true
|
2322
|
+
@index += match_len
|
2323
|
+
else
|
2324
|
+
terminal_parse_failure('"\\n"')
|
2325
|
+
r10 = nil
|
2326
|
+
end
|
2327
|
+
s6 << r10
|
2328
|
+
end
|
2329
|
+
end
|
2330
|
+
if s6.last
|
2331
|
+
r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
|
2332
|
+
r6.extend(Comment1)
|
2333
|
+
else
|
2334
|
+
@index = i6
|
2335
|
+
r6 = nil
|
2336
|
+
end
|
2337
|
+
if r6
|
2338
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
2339
|
+
r0 = r6
|
2340
|
+
else
|
2341
|
+
@index = i0
|
2342
|
+
r0 = nil
|
2343
|
+
end
|
2103
2344
|
end
|
2104
2345
|
|
2105
|
-
node_cache[:
|
2346
|
+
node_cache[:comment][start_index] = r0
|
2106
2347
|
|
2107
2348
|
r0
|
2108
2349
|
end
|
2109
2350
|
|
2110
|
-
module
|
2111
|
-
def
|
2351
|
+
module OC0
|
2352
|
+
def S
|
2112
2353
|
elements[1]
|
2113
2354
|
end
|
2355
|
+
end
|
2114
2356
|
|
2115
|
-
|
2116
|
-
|
2357
|
+
def _nt_OC
|
2358
|
+
start_index = index
|
2359
|
+
if node_cache[:OC].has_key?(index)
|
2360
|
+
cached = node_cache[:OC][index]
|
2361
|
+
if cached
|
2362
|
+
node_cache[:OC][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2363
|
+
@index = cached.interval.end
|
2364
|
+
end
|
2365
|
+
return cached
|
2117
2366
|
end
|
2118
2367
|
|
2119
|
-
|
2120
|
-
|
2368
|
+
i1, s1 = index, []
|
2369
|
+
if (match_len = has_terminal?(",", false, index))
|
2370
|
+
r2 = true
|
2371
|
+
@index += match_len
|
2372
|
+
else
|
2373
|
+
terminal_parse_failure('","')
|
2374
|
+
r2 = nil
|
2121
2375
|
end
|
2122
|
-
|
2123
|
-
|
2124
|
-
|
2125
|
-
|
2126
|
-
elements[1]
|
2376
|
+
s1 << r2
|
2377
|
+
if r2
|
2378
|
+
r3 = _nt_S
|
2379
|
+
s1 << r3
|
2127
2380
|
end
|
2128
|
-
|
2129
|
-
|
2130
|
-
|
2381
|
+
if s1.last
|
2382
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
2383
|
+
r1.extend(OC0)
|
2384
|
+
else
|
2385
|
+
@index = i1
|
2386
|
+
r1 = nil
|
2131
2387
|
end
|
2132
|
-
|
2133
|
-
|
2134
|
-
|
2388
|
+
if r1
|
2389
|
+
r0 = r1
|
2390
|
+
else
|
2391
|
+
r0 = instantiate_node(SyntaxNode,input, index...index)
|
2135
2392
|
end
|
2136
2393
|
|
2137
|
-
|
2138
|
-
elements[5]
|
2139
|
-
end
|
2394
|
+
node_cache[:OC][start_index] = r0
|
2140
2395
|
|
2396
|
+
r0
|
2141
2397
|
end
|
2142
2398
|
|
2143
|
-
module
|
2399
|
+
module Streamstring0
|
2144
2400
|
def S1
|
2145
2401
|
elements[1]
|
2146
2402
|
end
|
2147
2403
|
|
2148
|
-
def
|
2404
|
+
def string
|
2149
2405
|
elements[2]
|
2150
2406
|
end
|
2151
2407
|
|
@@ -2154,12 +2410,12 @@ module EDNGRAMMAR
|
|
2154
2410
|
end
|
2155
2411
|
end
|
2156
2412
|
|
2157
|
-
module
|
2413
|
+
module Streamstring1
|
2158
2414
|
def spec1
|
2159
2415
|
elements[1]
|
2160
2416
|
end
|
2161
2417
|
|
2162
|
-
def
|
2418
|
+
def string
|
2163
2419
|
elements[2]
|
2164
2420
|
end
|
2165
2421
|
|
@@ -2173,6 +2429,16 @@ module EDNGRAMMAR
|
|
2173
2429
|
|
2174
2430
|
end
|
2175
2431
|
|
2432
|
+
module Streamstring2
|
2433
|
+
def ast
|
2434
|
+
strings = [elements[2].ast] + elements[4].elements.map {|x| x.string.ast }
|
2435
|
+
unless Set[*strings.map(&:encoding)].size == 1
|
2436
|
+
warn "*** mixed streamstring #{strings.cbor_diagnostic}"
|
2437
|
+
end
|
2438
|
+
strings.join.cbor_stream!(strings.map(&:size))
|
2439
|
+
end
|
2440
|
+
end
|
2441
|
+
|
2176
2442
|
def _nt_streamstring
|
2177
2443
|
start_index = index
|
2178
2444
|
if node_cache[:streamstring].has_key?(index)
|
@@ -2184,182 +2450,88 @@ module EDNGRAMMAR
|
|
2184
2450
|
return cached
|
2185
2451
|
end
|
2186
2452
|
|
2187
|
-
i0 = index
|
2188
|
-
i1, s1 = index, []
|
2453
|
+
i0, s0 = index, []
|
2189
2454
|
if (match_len = has_terminal?("(", false, index))
|
2190
|
-
|
2455
|
+
r1 = true
|
2191
2456
|
@index += match_len
|
2192
2457
|
else
|
2193
2458
|
terminal_parse_failure('"("')
|
2194
|
-
|
2459
|
+
r1 = nil
|
2195
2460
|
end
|
2196
|
-
|
2197
|
-
if
|
2198
|
-
|
2199
|
-
|
2200
|
-
if
|
2201
|
-
|
2202
|
-
|
2203
|
-
if
|
2204
|
-
|
2205
|
-
|
2206
|
-
if
|
2207
|
-
|
2461
|
+
s0 << r1
|
2462
|
+
if r1
|
2463
|
+
r2 = _nt_spec1
|
2464
|
+
s0 << r2
|
2465
|
+
if r2
|
2466
|
+
r3 = _nt_string
|
2467
|
+
s0 << r3
|
2468
|
+
if r3
|
2469
|
+
r4 = _nt_S
|
2470
|
+
s0 << r4
|
2471
|
+
if r4
|
2472
|
+
s5, i5 = [], index
|
2208
2473
|
loop do
|
2209
|
-
|
2474
|
+
i6, s6 = index, []
|
2210
2475
|
if (match_len = has_terminal?(",", false, index))
|
2211
|
-
|
2476
|
+
r7 = true
|
2212
2477
|
@index += match_len
|
2213
2478
|
else
|
2214
2479
|
terminal_parse_failure('","')
|
2215
|
-
|
2480
|
+
r7 = nil
|
2216
2481
|
end
|
2217
|
-
|
2218
|
-
if
|
2219
|
-
|
2220
|
-
|
2221
|
-
if
|
2222
|
-
|
2223
|
-
|
2224
|
-
if
|
2225
|
-
|
2226
|
-
|
2482
|
+
s6 << r7
|
2483
|
+
if r7
|
2484
|
+
r8 = _nt_S
|
2485
|
+
s6 << r8
|
2486
|
+
if r8
|
2487
|
+
r9 = _nt_string
|
2488
|
+
s6 << r9
|
2489
|
+
if r9
|
2490
|
+
r10 = _nt_S
|
2491
|
+
s6 << r10
|
2227
2492
|
end
|
2228
2493
|
end
|
2229
2494
|
end
|
2230
|
-
if
|
2231
|
-
|
2232
|
-
|
2495
|
+
if s6.last
|
2496
|
+
r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
|
2497
|
+
r6.extend(Streamstring0)
|
2233
2498
|
else
|
2234
|
-
@index =
|
2235
|
-
|
2499
|
+
@index = i6
|
2500
|
+
r6 = nil
|
2236
2501
|
end
|
2237
|
-
if
|
2238
|
-
|
2502
|
+
if r6
|
2503
|
+
s5 << r6
|
2239
2504
|
else
|
2240
2505
|
break
|
2241
2506
|
end
|
2242
2507
|
end
|
2243
|
-
|
2244
|
-
|
2245
|
-
if
|
2246
|
-
|
2247
|
-
|
2248
|
-
if
|
2508
|
+
r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
|
2509
|
+
s0 << r5
|
2510
|
+
if r5
|
2511
|
+
r11 = _nt_OC
|
2512
|
+
s0 << r11
|
2513
|
+
if r11
|
2249
2514
|
if (match_len = has_terminal?(")", false, index))
|
2250
|
-
|
2515
|
+
r12 = true
|
2251
2516
|
@index += match_len
|
2252
2517
|
else
|
2253
2518
|
terminal_parse_failure('")"')
|
2254
|
-
|
2519
|
+
r12 = nil
|
2255
2520
|
end
|
2256
|
-
|
2521
|
+
s0 << r12
|
2257
2522
|
end
|
2258
2523
|
end
|
2259
2524
|
end
|
2260
2525
|
end
|
2261
2526
|
end
|
2262
2527
|
end
|
2263
|
-
if
|
2264
|
-
|
2265
|
-
|
2266
|
-
|
2267
|
-
@index = i1
|
2268
|
-
r1 = nil
|
2269
|
-
end
|
2270
|
-
if r1
|
2271
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2272
|
-
r0 = r1
|
2528
|
+
if s0.last
|
2529
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
2530
|
+
r0.extend(Streamstring1)
|
2531
|
+
r0.extend(Streamstring2)
|
2273
2532
|
else
|
2274
|
-
|
2275
|
-
|
2276
|
-
r15 = true
|
2277
|
-
@index += match_len
|
2278
|
-
else
|
2279
|
-
terminal_parse_failure('"("')
|
2280
|
-
r15 = nil
|
2281
|
-
end
|
2282
|
-
s14 << r15
|
2283
|
-
if r15
|
2284
|
-
r16 = _nt_spec1
|
2285
|
-
s14 << r16
|
2286
|
-
if r16
|
2287
|
-
r17 = _nt_sqstr
|
2288
|
-
s14 << r17
|
2289
|
-
if r17
|
2290
|
-
r18 = _nt_S
|
2291
|
-
s14 << r18
|
2292
|
-
if r18
|
2293
|
-
s19, i19 = [], index
|
2294
|
-
loop do
|
2295
|
-
i20, s20 = index, []
|
2296
|
-
if (match_len = has_terminal?(",", false, index))
|
2297
|
-
r21 = true
|
2298
|
-
@index += match_len
|
2299
|
-
else
|
2300
|
-
terminal_parse_failure('","')
|
2301
|
-
r21 = nil
|
2302
|
-
end
|
2303
|
-
s20 << r21
|
2304
|
-
if r21
|
2305
|
-
r22 = _nt_S
|
2306
|
-
s20 << r22
|
2307
|
-
if r22
|
2308
|
-
r23 = _nt_sqstr
|
2309
|
-
s20 << r23
|
2310
|
-
if r23
|
2311
|
-
r24 = _nt_S
|
2312
|
-
s20 << r24
|
2313
|
-
end
|
2314
|
-
end
|
2315
|
-
end
|
2316
|
-
if s20.last
|
2317
|
-
r20 = instantiate_node(SyntaxNode,input, i20...index, s20)
|
2318
|
-
r20.extend(Streamstring2)
|
2319
|
-
else
|
2320
|
-
@index = i20
|
2321
|
-
r20 = nil
|
2322
|
-
end
|
2323
|
-
if r20
|
2324
|
-
s19 << r20
|
2325
|
-
else
|
2326
|
-
break
|
2327
|
-
end
|
2328
|
-
end
|
2329
|
-
r19 = instantiate_node(SyntaxNode,input, i19...index, s19)
|
2330
|
-
s14 << r19
|
2331
|
-
if r19
|
2332
|
-
r25 = _nt_OC
|
2333
|
-
s14 << r25
|
2334
|
-
if r25
|
2335
|
-
if (match_len = has_terminal?(")", false, index))
|
2336
|
-
r26 = true
|
2337
|
-
@index += match_len
|
2338
|
-
else
|
2339
|
-
terminal_parse_failure('")"')
|
2340
|
-
r26 = nil
|
2341
|
-
end
|
2342
|
-
s14 << r26
|
2343
|
-
end
|
2344
|
-
end
|
2345
|
-
end
|
2346
|
-
end
|
2347
|
-
end
|
2348
|
-
end
|
2349
|
-
if s14.last
|
2350
|
-
r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
|
2351
|
-
r14.extend(Streamstring3)
|
2352
|
-
else
|
2353
|
-
@index = i14
|
2354
|
-
r14 = nil
|
2355
|
-
end
|
2356
|
-
if r14
|
2357
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
2358
|
-
r0 = r14
|
2359
|
-
else
|
2360
|
-
@index = i0
|
2361
|
-
r0 = nil
|
2362
|
-
end
|
2533
|
+
@index = i0
|
2534
|
+
r0 = nil
|
2363
2535
|
end
|
2364
2536
|
|
2365
2537
|
node_cache[:streamstring][start_index] = r0
|
@@ -2369,19 +2541,16 @@ module EDNGRAMMAR
|
|
2369
2541
|
|
2370
2542
|
module Spec0
|
2371
2543
|
def S
|
2372
|
-
elements[
|
2544
|
+
elements[2]
|
2373
2545
|
end
|
2374
2546
|
end
|
2375
2547
|
|
2376
2548
|
module Spec1
|
2377
|
-
def
|
2378
|
-
|
2379
|
-
|
2380
|
-
|
2381
|
-
|
2382
|
-
|
2383
|
-
module Spec2
|
2384
|
-
def ast; (e1 = elements[1].elements) && !e1[0].empty? end
|
2549
|
+
def ast;
|
2550
|
+
if (e1 = elements[1].elements) && !e1[0].empty?
|
2551
|
+
e1[1].text_value
|
2552
|
+
end
|
2553
|
+
end
|
2385
2554
|
end
|
2386
2555
|
|
2387
2556
|
def _nt_spec
|
@@ -2395,44 +2564,43 @@ module EDNGRAMMAR
|
|
2395
2564
|
return cached
|
2396
2565
|
end
|
2397
2566
|
|
2398
|
-
|
2399
|
-
|
2400
|
-
|
2401
|
-
|
2402
|
-
|
2403
|
-
|
2404
|
-
|
2405
|
-
|
2406
|
-
|
2407
|
-
|
2408
|
-
|
2409
|
-
|
2410
|
-
|
2411
|
-
|
2412
|
-
|
2413
|
-
|
2414
|
-
|
2415
|
-
|
2416
|
-
r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
|
2417
|
-
r3.extend(Spec0)
|
2418
|
-
else
|
2419
|
-
@index = i3
|
2420
|
-
r3 = nil
|
2567
|
+
i1, s1 = index, []
|
2568
|
+
if (match_len = has_terminal?("_", false, index))
|
2569
|
+
r2 = true
|
2570
|
+
@index += match_len
|
2571
|
+
else
|
2572
|
+
terminal_parse_failure('"_"')
|
2573
|
+
r2 = nil
|
2574
|
+
end
|
2575
|
+
s1 << r2
|
2576
|
+
if r2
|
2577
|
+
s3, i3 = [], index
|
2578
|
+
loop do
|
2579
|
+
r4 = _nt_wordchar
|
2580
|
+
if r4
|
2581
|
+
s3 << r4
|
2582
|
+
else
|
2583
|
+
break
|
2584
|
+
end
|
2421
2585
|
end
|
2586
|
+
r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
|
2587
|
+
s1 << r3
|
2422
2588
|
if r3
|
2423
|
-
|
2424
|
-
|
2425
|
-
r2 = instantiate_node(SyntaxNode,input, index...index)
|
2589
|
+
r5 = _nt_S
|
2590
|
+
s1 << r5
|
2426
2591
|
end
|
2427
|
-
s0 << r2
|
2428
2592
|
end
|
2429
|
-
if
|
2430
|
-
|
2431
|
-
|
2432
|
-
r0.extend(Spec2)
|
2593
|
+
if s1.last
|
2594
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
2595
|
+
r1.extend(Spec0)
|
2433
2596
|
else
|
2434
|
-
@index =
|
2435
|
-
|
2597
|
+
@index = i1
|
2598
|
+
r1 = nil
|
2599
|
+
end
|
2600
|
+
if r1
|
2601
|
+
r0 = r1
|
2602
|
+
else
|
2603
|
+
r0 = instantiate_node(SyntaxNode,input, index...index)
|
2436
2604
|
end
|
2437
2605
|
|
2438
2606
|
node_cache[:spec][start_index] = r0
|
@@ -2441,12 +2609,8 @@ module EDNGRAMMAR
|
|
2441
2609
|
end
|
2442
2610
|
|
2443
2611
|
module Spec10
|
2444
|
-
def
|
2445
|
-
elements[
|
2446
|
-
end
|
2447
|
-
|
2448
|
-
def S2
|
2449
|
-
elements[2]
|
2612
|
+
def S
|
2613
|
+
elements[1]
|
2450
2614
|
end
|
2451
2615
|
end
|
2452
2616
|
|
@@ -2462,21 +2626,17 @@ module EDNGRAMMAR
|
|
2462
2626
|
end
|
2463
2627
|
|
2464
2628
|
i0, s0 = index, []
|
2465
|
-
|
2629
|
+
if (match_len = has_terminal?("_", false, index))
|
2630
|
+
r1 = true
|
2631
|
+
@index += match_len
|
2632
|
+
else
|
2633
|
+
terminal_parse_failure('"_"')
|
2634
|
+
r1 = nil
|
2635
|
+
end
|
2466
2636
|
s0 << r1
|
2467
2637
|
if r1
|
2468
|
-
|
2469
|
-
r2 = true
|
2470
|
-
@index += match_len
|
2471
|
-
else
|
2472
|
-
terminal_parse_failure('"_"')
|
2473
|
-
r2 = nil
|
2474
|
-
end
|
2638
|
+
r2 = _nt_S
|
2475
2639
|
s0 << r2
|
2476
|
-
if r2
|
2477
|
-
r3 = _nt_S
|
2478
|
-
s0 << r3
|
2479
|
-
end
|
2480
2640
|
end
|
2481
2641
|
if s0.last
|
2482
2642
|
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
@@ -3485,19 +3645,31 @@ module EDNGRAMMAR
|
|
3485
3645
|
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
3486
3646
|
r0 = r5
|
3487
3647
|
else
|
3488
|
-
if has_terminal?(@regexps[gr = '\A[\\]
|
3648
|
+
if has_terminal?(@regexps[gr = '\A[\\]-]'] ||= Regexp.new(gr), :regexp, index)
|
3489
3649
|
r6 = true
|
3490
3650
|
@index += 1
|
3491
3651
|
else
|
3492
|
-
terminal_parse_failure('[\\]
|
3652
|
+
terminal_parse_failure('[\\]-]')
|
3493
3653
|
r6 = nil
|
3494
3654
|
end
|
3495
3655
|
if r6
|
3496
3656
|
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
3497
3657
|
r0 = r6
|
3498
3658
|
else
|
3499
|
-
@
|
3500
|
-
|
3659
|
+
if has_terminal?(@regexps[gr = '\A[-]'] ||= Regexp.new(gr), :regexp, index)
|
3660
|
+
r7 = true
|
3661
|
+
@index += 1
|
3662
|
+
else
|
3663
|
+
terminal_parse_failure('[-]')
|
3664
|
+
r7 = nil
|
3665
|
+
end
|
3666
|
+
if r7
|
3667
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
3668
|
+
r0 = r7
|
3669
|
+
else
|
3670
|
+
@index = i0
|
3671
|
+
r0 = nil
|
3672
|
+
end
|
3501
3673
|
end
|
3502
3674
|
end
|
3503
3675
|
end
|
@@ -3784,6 +3956,56 @@ module EDNGRAMMAR
|
|
3784
3956
|
r0
|
3785
3957
|
end
|
3786
3958
|
|
3959
|
+
def _nt_wordchar
|
3960
|
+
start_index = index
|
3961
|
+
if node_cache[:wordchar].has_key?(index)
|
3962
|
+
cached = node_cache[:wordchar][index]
|
3963
|
+
if cached
|
3964
|
+
node_cache[:wordchar][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3965
|
+
@index = cached.interval.end
|
3966
|
+
end
|
3967
|
+
return cached
|
3968
|
+
end
|
3969
|
+
|
3970
|
+
i0 = index
|
3971
|
+
if (match_len = has_terminal?("_", false, index))
|
3972
|
+
r1 = true
|
3973
|
+
@index += match_len
|
3974
|
+
else
|
3975
|
+
terminal_parse_failure('"_"')
|
3976
|
+
r1 = nil
|
3977
|
+
end
|
3978
|
+
if r1
|
3979
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3980
|
+
r0 = r1
|
3981
|
+
else
|
3982
|
+
r2 = _nt_lcalnum
|
3983
|
+
if r2
|
3984
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
3985
|
+
r0 = r2
|
3986
|
+
else
|
3987
|
+
if has_terminal?(@regexps[gr = '\A[A-Z]'] ||= Regexp.new(gr), :regexp, index)
|
3988
|
+
r3 = true
|
3989
|
+
@index += 1
|
3990
|
+
else
|
3991
|
+
terminal_parse_failure('[A-Z]')
|
3992
|
+
r3 = nil
|
3993
|
+
end
|
3994
|
+
if r3
|
3995
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
3996
|
+
r0 = r3
|
3997
|
+
else
|
3998
|
+
@index = i0
|
3999
|
+
r0 = nil
|
4000
|
+
end
|
4001
|
+
end
|
4002
|
+
end
|
4003
|
+
|
4004
|
+
node_cache[:wordchar][start_index] = r0
|
4005
|
+
|
4006
|
+
r0
|
4007
|
+
end
|
4008
|
+
|
3787
4009
|
end
|
3788
4010
|
|
3789
4011
|
class EDNGRAMMARParser < Treetop::Runtime::CompiledParser
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: edn-abnf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10-
|
11
|
+
date: 2023-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|