cddl 0.12.10 → 0.12.12
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/cddl.gemspec +1 -1
- data/data/cddl.abnf +3 -2
- data/lib/cddl.rb +18 -3
- metadata +3 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8117d826af4d671a70b877f6df0acdcb060484c67f9d689493fe0d7bfa4cf360
|
|
4
|
+
data.tar.gz: 1b94c55c7f7029b79d17ad986c3deb8ce096604532775761995500874cd98f30
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7df99dd63776070f3c428c14a13e7c75abf04b4e6a1b73399bad3fec2be7accbfacef1becd5da293e840afd2a25e43614e20b9e59d78eccbb6481b0da487215d
|
|
7
|
+
data.tar.gz: d9c8e8896cd9363799a2fe167cfc1698f1c84aa248a7e57f32df0df4bf8b117b22f4631dd5958dd789ed5db47ae4f28aac4786d57c1a58cafe49c02f6c68a4ca
|
data/cddl.gemspec
CHANGED
data/data/cddl.abnf
CHANGED
|
@@ -65,9 +65,10 @@ value = number
|
|
|
65
65
|
int = ["-"] uint
|
|
66
66
|
|
|
67
67
|
; This is a float if it has fraction or exponent; int otherwise
|
|
68
|
-
number = int ["." fraction] ["e" exponent ]
|
|
68
|
+
number = hexfloat / (int ["." fraction] ["e" exponent ])
|
|
69
|
+
hexfloat = ["-"] "0x" 1*HEXDIG ["." 1*HEXDIG] "p" exponent
|
|
69
70
|
fraction = 1*DIGIT
|
|
70
|
-
exponent =
|
|
71
|
+
exponent = ["+"/"-"] 1*DIGIT
|
|
71
72
|
|
|
72
73
|
text = %x22 *SCHAR %x22
|
|
73
74
|
SCHAR = %x20-21 / %x23-5B / %x5D-7E / NONASCII / SESC
|
data/lib/cddl.rb
CHANGED
|
@@ -119,6 +119,16 @@ module CDDL
|
|
|
119
119
|
r.compact
|
|
120
120
|
end
|
|
121
121
|
|
|
122
|
+
def longest_initial_match(old, now)
|
|
123
|
+
md = /\A(.*)(.*)\n\1(.*)\z/.match([old,now].join("\n"))
|
|
124
|
+
md[1..3]
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def diff_message(old, now)
|
|
128
|
+
c, l, r = longest_initial_match(old, now)
|
|
129
|
+
"-- common: >#{c}< -- old: >#{l}< -- new: >#{r}<"
|
|
130
|
+
end
|
|
131
|
+
|
|
122
132
|
def cname(s)
|
|
123
133
|
s.to_s.gsub(/-/, "_")
|
|
124
134
|
end
|
|
@@ -205,7 +215,8 @@ module CDDL
|
|
|
205
215
|
ids = g.children(:id).map(&:to_s)
|
|
206
216
|
# puts ["ids", ids].inspect
|
|
207
217
|
if b = @generics[n]
|
|
208
|
-
fail "Duplicate generics definition #{n}
|
|
218
|
+
fail "Duplicate generics definition #{n} #{
|
|
219
|
+
diff_message(strip_nodes(b[0]).inspect, strip_nodes(rule_ast).inspect)}"
|
|
209
220
|
end
|
|
210
221
|
@generics[n] = [rule_ast, ids]
|
|
211
222
|
else
|
|
@@ -217,7 +228,7 @@ module CDDL
|
|
|
217
228
|
if a == b
|
|
218
229
|
warn "*** Warning: Identical redefinition of #{n} as #{a}"
|
|
219
230
|
else
|
|
220
|
-
fail "Duplicate rule definition #{n}
|
|
231
|
+
fail "Duplicate rule definition #{n} #{diff_message(b, a)}"
|
|
221
232
|
end
|
|
222
233
|
end
|
|
223
234
|
@rules[n] = rule_ast
|
|
@@ -1561,7 +1572,11 @@ module CDDL
|
|
|
1561
1572
|
end
|
|
1562
1573
|
}
|
|
1563
1574
|
end
|
|
1564
|
-
|
|
1575
|
+
if s =~ /p.*\d\z/ # hexfloat
|
|
1576
|
+
val = s.scanf("%a").first
|
|
1577
|
+
else
|
|
1578
|
+
val = eval(s)
|
|
1579
|
+
end
|
|
1565
1580
|
# warn val
|
|
1566
1581
|
case val
|
|
1567
1582
|
when Integer; [:int, val]
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cddl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.12.
|
|
4
|
+
version: 0.12.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Carsten Bormann
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: cbor-diag
|
|
@@ -277,7 +276,6 @@ homepage: https://www.rfc-editor.org/rfc/rfc8610#appendix-F
|
|
|
277
276
|
licenses:
|
|
278
277
|
- MIT
|
|
279
278
|
metadata: {}
|
|
280
|
-
post_install_message:
|
|
281
279
|
rdoc_options: []
|
|
282
280
|
require_paths:
|
|
283
281
|
- lib
|
|
@@ -292,8 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
292
290
|
- !ruby/object:Gem::Version
|
|
293
291
|
version: '0'
|
|
294
292
|
requirements: []
|
|
295
|
-
rubygems_version: 3.
|
|
296
|
-
signing_key:
|
|
293
|
+
rubygems_version: 3.7.2
|
|
297
294
|
specification_version: 4
|
|
298
295
|
summary: CDDL generator and validator.
|
|
299
296
|
test_files: []
|