cddl 0.8.24 → 0.8.27
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/bin/cddl +4 -2
- data/cddl.gemspec +1 -1
- data/lib/cbor-pp-play.rb +1 -0
- data/lib/cddl.rb +17 -5
- data/test-data/det1.cddl +12 -0
- data/test-data/feature-controller.cddl +6 -0
- data/test-data/yangid.cddl +1 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ecd9496de4033983eac3321d6cda899c4e948656e06fe48d6bc5e5b9d8e3942
|
4
|
+
data.tar.gz: c117ef0c739d0c9d3967532c57a23aec3dd796c0191a8afb1eb03ee3aae4bd9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2454be6a2b39855ef2d2111c5b5ef98066e32c078ea2ada8ae911c9b0c08fc48cc85c60bead949ab04f5bb7ed4499193283f0abb92296486ec797e48ef1ceb07
|
7
|
+
data.tar.gz: 370c93eec6ffc637d4814a81336ebca143ef334a3fad807a2f213104d5ae5051277fbe7d8db19d406e4bde675ff6d993c171f2b5532ff91e64803254f18ec258
|
data/bin/cddl
CHANGED
@@ -19,17 +19,19 @@ def usage
|
|
19
19
|
exit EX_USAGE
|
20
20
|
end
|
21
21
|
|
22
|
-
def read_arg(arg)
|
22
|
+
def read_arg(arg, remember_fn = true)
|
23
23
|
if arg == "-"
|
24
|
+
$fn = "(stdin)" if remember_fn
|
24
25
|
STDIN.read
|
25
26
|
else
|
26
27
|
usage unless arg
|
28
|
+
$fn = arg if remember_fn
|
27
29
|
File.read(arg, mode: "rb")
|
28
30
|
end
|
29
31
|
end
|
30
32
|
|
31
33
|
def parser
|
32
|
-
@parser ||= CDDL::Parser.new(read_arg(ARGV[0]))
|
34
|
+
@parser ||= CDDL::Parser.new(read_arg(ARGV[0], false))
|
33
35
|
end
|
34
36
|
|
35
37
|
def my_pp(v)
|
data/cddl.gemspec
CHANGED
data/lib/cbor-pp-play.rb
CHANGED
@@ -2,6 +2,7 @@ require_relative "cbor-pp"
|
|
2
2
|
|
3
3
|
a = [1, {foo: "bar", busel: "basel", baz: "bass", ant: "cat", bat: "dog", eel: "fox"},
|
4
4
|
2, 3, 4, [3]*55, "foo".b, 0.00006103515625, 0.0000099, 1e-7, nil]
|
5
|
+
a[0].cbor_annotation_add "flurp"
|
5
6
|
a[1].cbor_annotation_add "fasel"
|
6
7
|
CBOR::PP.pp a
|
7
8
|
|
data/lib/cddl.rb
CHANGED
@@ -463,7 +463,10 @@ module CDDL
|
|
463
463
|
when :cat, :det
|
464
464
|
lhs = generate1(target, inmap)
|
465
465
|
rhs = generate1(control)
|
466
|
-
|
466
|
+
if conop == :det
|
467
|
+
lhs = remove_indentation(lhs)
|
468
|
+
rhs = remove_indentation(rhs)
|
469
|
+
end
|
467
470
|
begin
|
468
471
|
lhs + rhs
|
469
472
|
rescue Exception => e
|
@@ -531,6 +534,7 @@ module CDDL
|
|
531
534
|
unless !bytes.nil? && String === grammar
|
532
535
|
fail "Don't know yet how to generate #{where}"
|
533
536
|
end
|
537
|
+
grammar << "\n" unless grammar =~ /\n\z/
|
534
538
|
out = ABNF_PARSER_FOR_STRING[grammar].generate
|
535
539
|
if conop == :abnfb
|
536
540
|
out = out.codepoints.pack("C*")
|
@@ -611,7 +615,10 @@ module CDDL
|
|
611
615
|
elsif vt1 == Float
|
612
616
|
[true, v1 + v2, vt1] if vt2 == Integer || vt2 == Float
|
613
617
|
else
|
614
|
-
|
618
|
+
if conop == :det
|
619
|
+
v1 = remove_indentation(v1)
|
620
|
+
v2 = remove_indentation(v2)
|
621
|
+
end
|
615
622
|
[true, v1 + v2, vt1] if vt1 == vt2
|
616
623
|
end
|
617
624
|
end rescue nil
|
@@ -643,7 +650,7 @@ module CDDL
|
|
643
650
|
ok = ENV["CDDL_FEATURE_OK"] and ok = ok.split(/,\s*/) or ok = []
|
644
651
|
# warn([:OK, ok, $features].inspect)
|
645
652
|
features = $features.reject {|k, v| ok.include? k.to_s }
|
646
|
-
warn "** Features potentially used: #{features.map {|k, v| "#{k}: #{v.keys}"}.join(", ")}" if features != {}
|
653
|
+
warn "** Features potentially used (#$fn): #{features.map {|k, v| "#{k}: #{v.keys}"}.join(", ")}" if features != {}
|
647
654
|
end
|
648
655
|
else
|
649
656
|
warn "CDDL validation failure (#{result.inspect} for #{d.inspect}):"
|
@@ -854,13 +861,16 @@ module CDDL
|
|
854
861
|
[] if where[2] === d && where[1].include?(d)
|
855
862
|
when :anno
|
856
863
|
_, conop, target, control = where
|
857
|
-
if conop == :cat || conop == :plus
|
864
|
+
if conop == :cat || conop == :plus || conop == :det
|
858
865
|
ok1, v1, vt1 = extract_value(target)
|
859
866
|
ok2, v2, vt2 = extract_value(control)
|
860
867
|
# warn ["ANNO0", ok1, v1, vt1, ok2, v2, vt2, d].inspect
|
861
868
|
if ok1 && ok2
|
862
869
|
v2 = Integer(v2) if vt1 == Integer
|
863
|
-
|
870
|
+
if conop == :det
|
871
|
+
v1 = remove_indentation(v1)
|
872
|
+
v2 = remove_indentation(v2)
|
873
|
+
end
|
864
874
|
# warn ["ANNO", ok1, v1, vt1, ok2, v2, vt2, d].inspect
|
865
875
|
[] if d == v1 + v2 # XXX Focus ArgumentError
|
866
876
|
end
|
@@ -909,11 +919,13 @@ module CDDL
|
|
909
919
|
if ok
|
910
920
|
nm = v
|
911
921
|
det = d
|
922
|
+
warn "*** feature controller should be a string: #{control.inspect}" unless String == vt
|
912
923
|
else
|
913
924
|
ok, *v = extract_array(control)
|
914
925
|
if ok && v.size == 2
|
915
926
|
nm = v[0][0]
|
916
927
|
det = v[1][0]
|
928
|
+
warn "*** first element of feature controller should be a string: #{control.inspect}" unless String === nm
|
917
929
|
else
|
918
930
|
warn "*** feature controller not implemented: #{control.inspect}"
|
919
931
|
end
|
data/test-data/det1.cddl
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
a = text .regexp "[a-z][a-z0-9]*(-[a-z0-9]+)*"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cddl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cbor-diag
|
@@ -135,9 +135,11 @@ files:
|
|
135
135
|
- test-data/cose.cddl
|
136
136
|
- test-data/dcaf.cddl
|
137
137
|
- test-data/dcaf1.cddl
|
138
|
+
- test-data/det1.cddl
|
138
139
|
- test-data/dotsize.cddl
|
139
140
|
- test-data/extractor-demo.cddl
|
140
141
|
- test-data/feat1.cddl
|
142
|
+
- test-data/feature-controller.cddl
|
141
143
|
- test-data/feature-detail.cddl
|
142
144
|
- test-data/foo.cddl
|
143
145
|
- test-data/grasp-01-extract.cddl
|
@@ -193,6 +195,7 @@ files:
|
|
193
195
|
- test-data/wrong2.cddl
|
194
196
|
- test-data/wrong2a.cddl
|
195
197
|
- test-data/xmlmig.cddl
|
198
|
+
- test-data/yangid.cddl
|
196
199
|
- test-data/yaron1.cddl
|
197
200
|
- test/test-cddl.rb
|
198
201
|
homepage: http://github.com/cabo/cddl
|
@@ -214,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
217
|
- !ruby/object:Gem::Version
|
215
218
|
version: '0'
|
216
219
|
requirements: []
|
217
|
-
rubygems_version: 3.
|
220
|
+
rubygems_version: 3.3.3
|
218
221
|
signing_key:
|
219
222
|
specification_version: 4
|
220
223
|
summary: CDDL generator and validator.
|