ModuleNestedConstraintsCheck { iso org(3) dod(6) internet(1) private(4) enterprise(1) spelio(9363) software(1) asn1c(5) test(1) 50 1 } DEFINITIONS ::= BEGIN Int1 ::= INTEGER -- Practical constraints (Int1): (MIN..MAX) -- PER-visible constraints (Int1): (MIN..MAX) Int2 ::= Int1 (0..MAX) -- Combined constraints: (0..MAX) -- Practical constraints (Int1): (0..MAX) -- PER-visible constraints (Int1): (0..MAX) Int3 ::= Int2 (MIN..10) -- Combined constraints: (0..MAX)(MIN..10) -- Practical constraints (Int1): (0..10) -- PER-visible constraints (Int1): (0..10) Int4 ::= Int3 (5..MAX,...,1..4) -- Combined constraints: (0..MAX)(MIN..10)(5..MAX,...,1..4) -- Practical constraints (Int1): (1..10,...) -- PER-visible constraints (Int1): (1..10,...) Int5 ::= Int4 (MIN..5) -- Combined constraints: (0..MAX)(MIN..10)(5..MAX)(MIN..5) -- Practical constraints (Int1): (5) -- PER-visible constraints (Int1): (5) ten Int1 ::= 10 -- Practical constraints (Int1): (MIN..MAX) -- PER-visible constraints (Int1): (MIN..MAX) other-ten Int2 ::= 10 -- Practical constraints (Int1): (MIN..MAX) -- PER-visible constraints (Int1): (MIN..MAX) ExtensibleExtensions ::= INTEGER ((1..256,...) ^ (1..256)) -- Combined constraints: ((1..256,...) ^ (1..256)) -- Practical constraints (ExtensibleExtensions): (1..256,...) -- PER-visible constraints (ExtensibleExtensions): (1..256,...) Str1 ::= IA5String -- Practical constraints (Str1): (MIN..MAX) (SIZE(0..MAX)) (FROM("".."")) -- PER-visible constraints (Str1): (MIN..MAX) (SIZE(0..MAX)) (FROM("".."")) Str2 ::= Str1 (SIZE(MIN..20 | 25..30)) -- Combined constraints: (SIZE(MIN..20 | 25..30)) -- Practical constraints (Str1): (MIN..MAX) (SIZE(0..20 | 25..30)) (FROM("".."")) -- PER-visible constraints (Str1): (MIN..MAX) (SIZE(0..20 | 25..30)) (FROM("".."")) Str3 ::= Str2 (SIZE(10..27))(FROM("ABC" | "def")) -- Combined constraints: (SIZE(MIN..20 | 25..30))(SIZE(10..27))(FROM("ABC" | "def")) -- Practical constraints (Str1): (MIN..MAX) (SIZE(10..20 | 25..27)) (FROM("A".."C" | "d".."f")) -- PER-visible constraints (Str1): (MIN..MAX) (SIZE(10..20 | 25..27)) (FROM("A".."C" | "d".."f")) Str4 ::= IA5String ("ABCD" | SIZE(4)) -- Combined constraints: ("ABCD" | SIZE(4)) -- Practical constraints (Str4): (MIN..MAX) (SIZE(0..MAX)) (FROM("".."")) -- PER-visible constraints (Str4): (MIN..MAX) (SIZE(0..MAX)) (FROM("".."")) PER-Visible ::= IA5String (FROM("A".."F")) -- Combined constraints: (FROM("A".."F")) -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F")) -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F")) PER-Visible-2 ::= PER-Visible (FROM("E".."F")) -- Combined constraints: (FROM("A".."F"))(FROM("E".."F")) -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("E".."F")) -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("E".."F")) Not-PER-Visible-1 ::= PER-Visible (FROM("AB") | SIZE(1..2)) -- Combined constraints: (FROM("A".."F"))(FROM("AB") | SIZE(1..2)) -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F")) -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F")) Not-PER-Visible-2 ::= PER-Visible (FROM("AB",...)) -- Combined constraints: (FROM("A".."F"))(FROM("AB",...)) -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."B",...)) -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F")) Not-PER-Visible-3 ::= PER-Visible (FROM("AB"),...) -- Combined constraints: (FROM("A".."F"))(FROM("AB"),...) -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."B",...)) -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F")) SIZE-but-not-FROM ::= PER-Visible (SIZE(1..4) ^ FROM("ABCD",...)) -- Combined constraints: (FROM("A".."F"))(SIZE(1..4) ^ FROM("ABCD",...)) -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) (FROM("A".."D",...)) -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) (FROM("A".."F")) SIZE-and-FROM ::= PER-Visible (SIZE(1..4) ^ FROM("ABCD")) -- Combined constraints: (FROM("A".."F"))(SIZE(1..4) ^ FROM("ABCD")) -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) (FROM("A".."D")) -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) (FROM("A".."D")) Neither-SIZE-nor-FROM ::= PER-Visible (SIZE(1..4) | FROM("ABCD",...)) -- Combined constraints: (FROM("A".."F"))(SIZE(1..4) | FROM("ABCD",...)) -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F")) -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F")) Utf8-4 ::= UTF8String (FROM("A".."Z")) -- Combined constraints: (FROM("A".."Z")) -- Practical constraints (Utf8-4): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."Z")) -- PER-visible constraints (Utf8-4): Utf8-3 ::= Utf8-2 (FROM("A".."Z" | "a".."z")) -- Combined constraints: (SIZE(1..2))(FROM("A".."Z" | "a".."z")) -- Practical constraints (Utf8-1): (MIN..MAX) (SIZE(1..2)) (FROM("A".."Z" | "a".."z")) -- PER-visible constraints (Utf8-1): Utf8-2 ::= Utf8-1 (SIZE(1..2)) -- Combined constraints: (SIZE(1..2)) -- Practical constraints (Utf8-1): (MIN..MAX) (SIZE(1..2)) (FROM("".."ÿ")) -- PER-visible constraints (Utf8-1): Utf8-1 ::= UTF8String -- Practical constraints (Utf8-1): (MIN..MAX) (SIZE(0..MAX)) (FROM("".."ÿ")) -- PER-visible constraints (Utf8-1): VisibleIdentifier ::= Identifier -- Combined constraints: (FROM("A" | "a" | "B" | "b" | "C" | "c" | "D" | "d" | "E" | "e" | "F" | "f" | "G" | "g" | "H" | "h" | "I" | "i" | "J" | "j" | "K" | "k" | "L" | "l" | "M" | "m" | "N" | "n" | "O" | "o" | "P" | "p" | "Q" | "q" | "R" | "r" | "S" | "s" | "T" | "t" | "U" | "u" | "V" | "v" | "W" | "w" | "X" | "x" | "Y" | "y" | "Z" | "z" | "$" | "_" | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"))(SIZE(1..32)) -- Practical constraints (Identifier): (MIN..MAX) (SIZE(1..32)) (FROM("$" | "0".."9" | "A".."Z" | "_" | "a".."z")) -- PER-visible constraints (Identifier): (MIN..MAX) (SIZE(1..32)) (FROM("$" | "0".."9" | "A".."Z" | "_" | "a".."z")) Sequence ::= SEQUENCE { int1-c Int1 (-2..MAX) -- Combined constraints: (-2..MAX) -- Practical constraints (Int1): (-2..MAX) -- PER-visible constraints (Int1): (-2..MAX) DEFAULT 3, int4 [2] EXPLICIT Int4 -- Combined constraints: (0..MAX)(MIN..10)(5..MAX,...,1..4) -- Practical constraints (Int1): (1..10,...) -- PER-visible constraints (Int1): (1..10,...) , int4-c Int4 (MIN..7) -- Combined constraints: (0..MAX)(MIN..10)(5..MAX)(MIN..7) -- Practical constraints (Int1): (5..7) -- PER-visible constraints (Int1): (5..7) , bool BOOLEAN -- Practical constraints (bool): (MIN..MAX) -- PER-visible constraints (bool): (MIN..MAX) DEFAULT 1, enum-c ENUMERATED { one(1) -- Practical constraints (one): -- PER-visible constraints (one): , two(2) -- Practical constraints (two): -- PER-visible constraints (two): , ..., three(3) -- Practical constraints (three): -- PER-visible constraints (three): } -- Practical constraints (enum-c): (MIN..MAX) -- PER-visible constraints (enum-c): (MIN..MAX) , null NULL -- Practical constraints (null): -- PER-visible constraints (null): OPTIONAL, ..., int5-c Int5 (5) -- Combined constraints: (0..MAX)(MIN..10)(5..MAX)(MIN..5)(5) -- Practical constraints (Int1): (5) -- PER-visible constraints (Int1): (5) OPTIONAL } -- Practical constraints (Sequence): -- PER-visible constraints (Sequence): SequenceOf ::= SEQUENCE (SIZE(1..2)) OF Sequence -- Practical constraints (Sequence): -- PER-visible constraints (Sequence): -- Combined constraints: (SIZE(1..2)) -- Practical constraints (SequenceOf): (SIZE(1..2)) -- PER-visible constraints (SequenceOf): (SIZE(1..2)) Enum0 ::= ENUMERATED { one(0) -- Practical constraints (one): -- PER-visible constraints (one): , two(1) -- Practical constraints (two): -- PER-visible constraints (two): } -- Practical constraints (Enum0): (MIN..MAX) -- PER-visible constraints (Enum0): (MIN..MAX) Enum1 ::= ENUMERATED { one(0) -- Practical constraints (one): -- PER-visible constraints (one): , two(1) -- Practical constraints (two): -- PER-visible constraints (two): } (0) -- Combined constraints: (0) -- Practical constraints (Enum1): (0) -- PER-visible constraints (Enum1): (0) END IdentifierModule { iso org(3) dod(6) internet(1) private(4) enterprise(1) spelio(9363) software(1) asn1c(5) test(1) 50 2 } DEFINITIONS ::= BEGIN maxIdentifier INTEGER ::= 32 -- Practical constraints (maxIdentifier): (MIN..MAX) -- PER-visible constraints (maxIdentifier): (MIN..MAX) Identifier ::= VisibleString (FROM("A" | "a" | "B" | "b" | "C" | "c" | "D" | "d" | "E" | "e" | "F" | "f" | "G" | "g" | "H" | "h" | "I" | "i" | "J" | "j" | "K" | "k" | "L" | "l" | "M" | "m" | "N" | "n" | "O" | "o" | "P" | "p" | "Q" | "q" | "R" | "r" | "S" | "s" | "T" | "t" | "U" | "u" | "V" | "v" | "W" | "w" | "X" | "x" | "Y" | "y" | "Z" | "z" | "$" | "_" | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"))(SIZE(1..32)) -- Combined constraints: (FROM("A" | "a" | "B" | "b" | "C" | "c" | "D" | "d" | "E" | "e" | "F" | "f" | "G" | "g" | "H" | "h" | "I" | "i" | "J" | "j" | "K" | "k" | "L" | "l" | "M" | "m" | "N" | "n" | "O" | "o" | "P" | "p" | "Q" | "q" | "R" | "r" | "S" | "s" | "T" | "t" | "U" | "u" | "V" | "v" | "W" | "w" | "X" | "x" | "Y" | "y" | "Z" | "z" | "$" | "_" | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"))(SIZE(1..32)) -- Practical constraints (Identifier): (MIN..MAX) (SIZE(1..32)) (FROM("$" | "0".."9" | "A".."Z" | "_" | "a".."z")) -- PER-visible constraints (Identifier): (MIN..MAX) (SIZE(1..32)) (FROM("$" | "0".."9" | "A".."Z" | "_" | "a".."z")) END