cddl 0.12.11 → 0.12.13

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/cddl.gemspec +1 -2
  3. data/data/cddl.abnf +3 -2
  4. data/lib/cddl.rb +8 -2
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cfdab2f7b34bf400cc492abf8c301a90e01176423c6d1fb41ec45cc439a7757f
4
- data.tar.gz: 06e53c2536c2a7aa1510f989b2cf8d01d0becbbc71a7264aa8355f29adddb0ad
3
+ metadata.gz: 14b45fb81b49e2fb1f85498e33ceb17ce3cc41ef784b829b9f4c76fa322eaaf5
4
+ data.tar.gz: cfdf92a193c09448a03eacf73525b5ea6294a6d80e1dfbcff3771a5346979aff
5
5
  SHA512:
6
- metadata.gz: 170ddd4fa055f9efd24092af3147d4175fdb089e290eafcd418e6a16204250cfa6769f3d53124c5fc6161608301b21186e4d2348bae489175d8ab546230ff5b0
7
- data.tar.gz: 17025b96351c9def9fe171cd74fc9398eeba3e927eb715b691880b2dd9812e1ea7268bbfc42dfe896d5be3cbf8ad0535cbb0a942cae80b04cdbc97a84e5eb293
6
+ metadata.gz: 88002266c186c57d8aece3dffd9cc4cc85d62a3c9b9591dceaa02bd8463857569868cf74a5f716b50755f94fba500a276617017a7448158a809743ce2aac5d00
7
+ data.tar.gz: d5e0bee838808e9cfdbbb0627ec37226406262bde1d1956e42e33079a4de8514ff9399b224dd9264179aead25dfd67ab03a925438756984794fef0252121a467
data/cddl.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'cddl'
3
- s.version = '0.12.11'
3
+ s.version = '0.12.13'
4
4
  s.summary = "CDDL generator and validator."
5
5
  s.description = %{A parser, generator, and validator for CDDL}
6
6
  s.add_dependency('cbor-diag')
@@ -16,7 +16,6 @@ spec = Gem::Specification.new do |s|
16
16
  s.files = Dir['lib/**/*.rb'] + %w(cddl.gemspec) + Dir['data/**/*.abnf'] + Dir['data/**/*.cddl'] + Dir['test-data/**/*.cddl'] + Dir['test/**/*.rb']
17
17
  s.require_path = 'lib'
18
18
  s.executables = ['cddl']
19
- s.default_executable = 'cddl'
20
19
  s.required_ruby_version = '>= 2.3'
21
20
  s.author = "Carsten Bormann"
22
21
  s.email = "cabo@tzi.org"
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 = int
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
@@ -215,7 +215,8 @@ module CDDL
215
215
  ids = g.children(:id).map(&:to_s)
216
216
  # puts ["ids", ids].inspect
217
217
  if b = @generics[n]
218
- fail "Duplicate generics definition #{n} #{diff_message(strip_nodes(b[0]).inspect, strip_nodes(rule_ast).inspect)}"
218
+ fail "Duplicate generics definition #{n} #{
219
+ diff_message(strip_nodes(b[0]).inspect, strip_nodes(rule_ast).inspect)}"
219
220
  end
220
221
  @generics[n] = [rule_ast, ids]
221
222
  else
@@ -709,6 +710,7 @@ module CDDL
709
710
  fail "Not smart enough to generate #{where}#{@last_message}"
710
711
  when :within, :and
711
712
  try_generate(target) do |content|
713
+ $features ||= Hash.new {|h, k| h[k] = {}}
712
714
  if validate1(content, control)
713
715
  return content
714
716
  elsif conop == :within
@@ -1571,7 +1573,11 @@ module CDDL
1571
1573
  end
1572
1574
  }
1573
1575
  end
1574
- val = eval(s)
1576
+ if s =~ /p.*\d\z/ # hexfloat
1577
+ val = s.scanf("%a").first
1578
+ else
1579
+ val = eval(s)
1580
+ end
1575
1581
  # warn val
1576
1582
  case val
1577
1583
  when Integer; [:int, val]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cddl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.11
4
+ version: 0.12.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-07 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: cbor-diag
@@ -290,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
290
290
  - !ruby/object:Gem::Version
291
291
  version: '0'
292
292
  requirements: []
293
- rubygems_version: 3.6.2
293
+ rubygems_version: 4.0.2
294
294
  specification_version: 4
295
295
  summary: CDDL generator and validator.
296
296
  test_files: []