moved -DASN_PDU_COLLECTION into compiler

diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index 47cfb1f..3462d1a 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -190,6 +190,11 @@
 	case ATV_REAL:
 		printf("%f", val->value.v_double);
 		return 0;
+	case ATV_TYPE:
+		asn1print_expr(val->value.v_type->module->asn1p,
+			val->value.v_type->module,
+			val->value.v_type, flags, 0);
+		return 0;
 	case ATV_INTEGER:
 		printf("%" PRIdASN, val->value.v_integer);
 		return 0;
@@ -349,10 +354,19 @@
 		}
 		break;
 	case ACT_CT_CTDBY:
-		printf("CONSTRAINED BY ");
+		printf("(CONSTRAINED BY ");
 		assert(ct->value->type == ATV_UNPARSED);
 		fwrite(ct->value->value.string.buf,
 			1, ct->value->value.string.size, stdout);
+		printf(")");
+		break;
+	case ACT_CT_CTNG:
+		printf("(CONTAINING ");
+		asn1print_expr(ct->value->value.v_type->module->asn1p,
+			ct->value->value.v_type->module,
+			ct->value->value.v_type,
+			flags, 1);
+		printf(")");
 		break;
 	case ACT_CA_SET: symno++;
 	case ACT_CA_CRC: symno++;
@@ -364,6 +378,7 @@
 			char *symtable[] = { " EXCEPT ", " ^ ", " | ", ",",
 					"", "(" };
 			unsigned int i;
+			if(ct->type == ACT_CA_CRC) fputs("(", stdout);
 			for(i = 0; i < ct->el_count; i++) {
 				if(i) fputs(symtable[symno], stdout);
 				if(ct->type == ACT_CA_CRC) fputs("{", stdout);
@@ -373,6 +388,7 @@
 				&& ct->type == ACT_CA_SET)
 					fputs(")", stdout);
 			}
+			if(ct->type == ACT_CA_CRC) fputs(")", stdout);
 		}
 		break;
 	case ACT_CA_AEX: