refactor constraint matrix handling
diff --git a/tests/98-attribute-class-OK.asn1.-EFprint-class-matrix b/tests/98-attribute-class-OK.asn1.-EFprint-class-matrix
new file mode 100644
index 0000000..718a946
--- /dev/null
+++ b/tests/98-attribute-class-OK.asn1.-EFprint-class-matrix
@@ -0,0 +1,44 @@
+ModuleAttributeClass { iso org(3) dod(6) internet(1) private(4) enterprise(1)
+ spelio(9363) software(1) asn1c(5) test(1) 98 }
+DEFINITIONS ::=
+BEGIN
+
+ATTRIBUTE ::= CLASS {
+ &id RELATIVE-OID UNIQUE
+} WITH SYNTAX { ID &id }
+
+-- Information Object Set has 2 entries:
+-- [&id]
+-- [1] raf
+-- [2] rcf
+
+
+Attribute ::= SEQUENCE {
+ identifier ATTRIBUTE.&id ({Attributes}),
+ siAttributeValue IA5String
+}
+
+Attributes ATTRIBUTE ::= {{ ID raf } | { ID rcf }}
+-- Information Object Set has 2 entries:
+-- [&id]
+-- [1] raf
+-- [2] rcf
+
+
+rafService ATTRIBUTE ::= { ID raf }
+-- Information Object Set has 1 entry:
+-- [&id]
+-- [1] raf
+
+
+rcfService ATTRIBUTE ::= { ID rcf }
+-- Information Object Set has 1 entry:
+-- [&id]
+-- [1] rcf
+
+
+raf RELATIVE-OID ::= {3 2 1}
+
+rcf RELATIVE-OID ::= {3 2 2}
+
+END