upgrade


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1010 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 419cae4..058a7c8 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -386,31 +386,31 @@
    320,   326,   332,   348,   373,   375,   378,   382,   387,   394,
    402,   407,   411,   420,   422,   430,   434,   442,   446,   449,
    452,   456,   476,   478,   486,   490,   522,   526,   535,   542,
-   555,   562,   564,   576,   589,   600,   605,   611,   617,   619,
-   622,   633,   639,   645,   652,   658,   666,   670,   673,   680,
-   686,   692,   699,   705,   714,   716,   725,   733,   747,   759,
-   765,   781,   790,   800,   810,   815,   822,   829,   839,   845,
-   851,   855,   878,   880,   882,   888,   894,   902,   908,   915,
-   920,   926,   932,   938,   941,   947,   957,   959,   962,   970,
-   976,   985,   991,  1008,  1010,  1015,  1019,  1024,  1029,  1035,
-  1039,  1050,  1059,  1068,  1079,  1101,  1108,  1127,  1131,  1137,
-  1143,  1149,  1159,  1169,  1175,  1189,  1213,  1220,  1234,  1243,
-  1253,  1263,  1273,  1281,  1302,  1311,  1320,  1321,  1323,  1330,
-  1342,  1352,  1360,  1360,  1365,  1370,  1375,  1380,  1384,  1388,
-  1391,  1394,  1399,  1411,  1428,  1433,  1438,  1471,  1481,  1495,
-  1497,  1498,  1499,  1500,  1501,  1502,  1503,  1504,  1505,  1506,
-  1507,  1508,  1514,  1516,  1517,  1520,  1527,  1539,  1541,  1545,
-  1549,  1550,  1551,  1552,  1553,  1557,  1558,  1559,  1560,  1564,
-  1565,  1572,  1572,  1573,  1573,  1574,  1576,  1578,  1583,  1587,
-  1596,  1600,  1605,  1609,  1615,  1625,  1629,  1632,  1635,  1638,
-  1643,  1652,  1660,  1666,  1672,  1679,  1687,  1695,  1704,  1707,
-  1710,  1711,  1721,  1723,  1724,  1725,  1728,  1732,  1737,  1743,
-  1748,  1751,  1754,  1767,  1781,  1785,  1790,  1794,  1799,  1806,
-  1819,  1821,  1824,  1828,  1831,  1836,  1840,  1848,  1863,  1869,
-  1876,  1889,  1901,  1916,  1920,  1937,  1942,  1945,  1950,  1972,
-  1977,  1982,  1988,  1994,  2002,  2010,  2018,  2025,  2035,  2040,
-  2070,  2072,  2075,  2082,  2088,  2090,  2091,  2092,  2095,  2097,
-  2098,  2101,  2106,  2113,  2120,  2122,  2127
+   555,   562,   564,   576,   588,   599,   604,   610,   616,   618,
+   621,   632,   638,   644,   651,   657,   665,   669,   672,   679,
+   685,   691,   698,   704,   713,   715,   724,   732,   746,   758,
+   764,   780,   789,   799,   809,   814,   821,   828,   838,   844,
+   850,   854,   877,   879,   881,   887,   893,   901,   907,   914,
+   919,   925,   931,   937,   940,   946,   956,   958,   961,   969,
+   975,   984,   990,  1007,  1009,  1014,  1018,  1023,  1028,  1034,
+  1038,  1049,  1058,  1067,  1078,  1100,  1107,  1126,  1130,  1136,
+  1142,  1148,  1158,  1168,  1174,  1188,  1212,  1219,  1233,  1242,
+  1252,  1262,  1272,  1280,  1301,  1310,  1319,  1320,  1322,  1329,
+  1341,  1351,  1359,  1359,  1364,  1369,  1374,  1379,  1383,  1387,
+  1390,  1393,  1398,  1410,  1427,  1432,  1437,  1470,  1480,  1494,
+  1496,  1497,  1498,  1499,  1500,  1501,  1502,  1503,  1504,  1505,
+  1506,  1507,  1513,  1515,  1516,  1519,  1526,  1538,  1540,  1544,
+  1548,  1549,  1550,  1551,  1552,  1556,  1557,  1558,  1559,  1563,
+  1564,  1571,  1571,  1572,  1572,  1573,  1575,  1577,  1582,  1586,
+  1595,  1599,  1604,  1608,  1614,  1624,  1628,  1631,  1634,  1637,
+  1642,  1651,  1659,  1665,  1671,  1678,  1686,  1694,  1703,  1706,
+  1709,  1710,  1720,  1722,  1723,  1724,  1727,  1731,  1736,  1742,
+  1747,  1750,  1753,  1766,  1780,  1784,  1789,  1793,  1798,  1805,
+  1818,  1820,  1823,  1827,  1830,  1835,  1839,  1847,  1862,  1868,
+  1875,  1888,  1900,  1915,  1919,  1936,  1941,  1944,  1949,  1971,
+  1976,  1981,  1987,  1993,  2001,  2009,  2017,  2024,  2034,  2039,
+  2069,  2071,  2074,  2081,  2087,  2089,  2090,  2091,  2094,  2096,
+  2097,  2100,  2105,  2112,  2119,  2121,  2126
 };
 #endif
 
@@ -1624,13 +1624,12 @@
 #line 576 "asn1p_y.y"
 {
 		return yyerror(
-			"Attempt to redefine a standard basic type, "
-			"use -ftypesXY to switch back "
-			"to older version of ASN.1 standard");
+			"Attempt to redefine a standard basic string type, "
+			"please comment out or remove this type redefinition.");
 	;
     break;}
 case 35:
-#line 590 "asn1p_y.y"
+#line 589 "asn1p_y.y"
 {
 		if(!saved_aid && 0)
 			return yyerror("Unterminated IMPORTS FROM, "
@@ -1640,13 +1639,13 @@
 	;
     break;}
 case 36:
-#line 600 "asn1p_y.y"
+#line 599 "asn1p_y.y"
 {
 		return yyerror("Empty IMPORTS list");
 	;
     break;}
 case 37:
-#line 606 "asn1p_y.y"
+#line 605 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1654,22 +1653,22 @@
 	;
     break;}
 case 38:
-#line 611 "asn1p_y.y"
+#line 610 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[-1].a_module;
 		TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next);
 	;
     break;}
 case 39:
-#line 618 "asn1p_y.y"
+#line 617 "asn1p_y.y"
 { memset(&yyval.a_aid, 0, sizeof(yyval.a_aid)); ;
     break;}
 case 40:
-#line 619 "asn1p_y.y"
+#line 618 "asn1p_y.y"
 { yyval.a_aid.oid = yyvsp[0].a_oid; ;
     break;}
 case 41:
-#line 623 "asn1p_y.y"
+#line 622 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-3].a_xports;
 		yyval.a_xports->fromModuleName = yyvsp[-1].tv_str;
@@ -1680,7 +1679,7 @@
 	;
     break;}
 case 42:
-#line 634 "asn1p_y.y"
+#line 633 "asn1p_y.y"
 {
 		yyval.a_xports = asn1p_xports_new();
 		checkmem(yyval.a_xports);
@@ -1688,14 +1687,14 @@
 	;
     break;}
 case 43:
-#line 639 "asn1p_y.y"
+#line 638 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-2].a_xports;
 		TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
 	;
     break;}
 case 44:
-#line 646 "asn1p_y.y"
+#line 645 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1704,7 +1703,7 @@
 	;
     break;}
 case 45:
-#line 652 "asn1p_y.y"
+#line 651 "asn1p_y.y"
 {		/* Completely equivalent to above */
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1713,7 +1712,7 @@
 	;
     break;}
 case 46:
-#line 658 "asn1p_y.y"
+#line 657 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1722,19 +1721,19 @@
 	;
     break;}
 case 47:
-#line 667 "asn1p_y.y"
+#line 666 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-1].a_xports;
 	;
     break;}
 case 48:
-#line 670 "asn1p_y.y"
+#line 669 "asn1p_y.y"
 {
 		yyval.a_xports = 0;
 	;
     break;}
 case 49:
-#line 673 "asn1p_y.y"
+#line 672 "asn1p_y.y"
 {
 		/* Empty EXPORTS clause effectively prohibits export. */
 		yyval.a_xports = asn1p_xports_new();
@@ -1742,7 +1741,7 @@
 	;
     break;}
 case 50:
-#line 681 "asn1p_y.y"
+#line 680 "asn1p_y.y"
 {
 		yyval.a_xports = asn1p_xports_new();
 		assert(yyval.a_xports);
@@ -1750,14 +1749,14 @@
 	;
     break;}
 case 51:
-#line 686 "asn1p_y.y"
+#line 685 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-2].a_xports;
 		TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
 	;
     break;}
 case 52:
-#line 693 "asn1p_y.y"
+#line 692 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1766,7 +1765,7 @@
 	;
     break;}
 case 53:
-#line 699 "asn1p_y.y"
+#line 698 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1775,7 +1774,7 @@
 	;
     break;}
 case 54:
-#line 705 "asn1p_y.y"
+#line 704 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1784,11 +1783,11 @@
 	;
     break;}
 case 55:
-#line 716 "asn1p_y.y"
+#line 715 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
 case 56:
-#line 716 "asn1p_y.y"
+#line 715 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-4].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -1798,7 +1797,7 @@
 	;
     break;}
 case 57:
-#line 726 "asn1p_y.y"
+#line 725 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1808,7 +1807,7 @@
 	;
     break;}
 case 58:
-#line 733 "asn1p_y.y"
+#line 732 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1817,7 +1816,7 @@
 	;
     break;}
 case 59:
-#line 751 "asn1p_y.y"
+#line 750 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1828,7 +1827,7 @@
 	;
     break;}
 case 60:
-#line 759 "asn1p_y.y"
+#line 758 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
@@ -1837,7 +1836,7 @@
 	;
     break;}
 case 61:
-#line 765 "asn1p_y.y"
+#line 764 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
@@ -1846,7 +1845,7 @@
 	;
     break;}
 case 62:
-#line 781 "asn1p_y.y"
+#line 780 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -1856,7 +1855,7 @@
 	;
     break;}
 case 63:
-#line 791 "asn1p_y.y"
+#line 790 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_plist = asn1p_paramlist_new(yylineno);
@@ -1868,7 +1867,7 @@
 	;
     break;}
 case 64:
-#line 800 "asn1p_y.y"
+#line 799 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_plist = yyvsp[-2].a_plist;
@@ -1879,14 +1878,14 @@
 	;
     break;}
 case 65:
-#line 811 "asn1p_y.y"
+#line 810 "asn1p_y.y"
 {
 		yyval.a_parg.governor = NULL;
 		yyval.a_parg.argument = yyvsp[0].tv_str;
 	;
     break;}
 case 66:
-#line 815 "asn1p_y.y"
+#line 814 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1896,7 +1895,7 @@
 	;
     break;}
 case 67:
-#line 822 "asn1p_y.y"
+#line 821 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1906,7 +1905,7 @@
 	;
     break;}
 case 68:
-#line 829 "asn1p_y.y"
+#line 828 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1917,7 +1916,7 @@
 	;
     break;}
 case 69:
-#line 840 "asn1p_y.y"
+#line 839 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1925,20 +1924,20 @@
 	;
     break;}
 case 70:
-#line 845 "asn1p_y.y"
+#line 844 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 71:
-#line 852 "asn1p_y.y"
+#line 851 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 72:
-#line 855 "asn1p_y.y"
+#line 854 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1948,15 +1947,15 @@
 	;
     break;}
 case 73:
-#line 879 "asn1p_y.y"
+#line 878 "asn1p_y.y"
 { yyval.a_expr = asn1p_expr_new(yylineno); ;
     break;}
 case 74:
-#line 880 "asn1p_y.y"
+#line 879 "asn1p_y.y"
 { yyval.a_expr = yyvsp[0].a_expr; ;
     break;}
 case 75:
-#line 883 "asn1p_y.y"
+#line 882 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1964,14 +1963,14 @@
 	;
     break;}
 case 76:
-#line 888 "asn1p_y.y"
+#line 887 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 77:
-#line 895 "asn1p_y.y"
+#line 894 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -1981,7 +1980,7 @@
 	;
     break;}
 case 78:
-#line 902 "asn1p_y.y"
+#line 901 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		yyvsp[0].a_marker.flags |= yyval.a_expr->marker.flags;
@@ -1990,7 +1989,7 @@
 	;
     break;}
 case 79:
-#line 908 "asn1p_y.y"
+#line 907 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2000,13 +1999,13 @@
 	;
     break;}
 case 80:
-#line 915 "asn1p_y.y"
+#line 914 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 81:
-#line 921 "asn1p_y.y"
+#line 920 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2014,14 +2013,14 @@
 	;
     break;}
 case 82:
-#line 926 "asn1p_y.y"
+#line 925 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 83:
-#line 933 "asn1p_y.y"
+#line 932 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -2029,20 +2028,20 @@
 	;
     break;}
 case 84:
-#line 938 "asn1p_y.y"
+#line 937 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 85:
-#line 941 "asn1p_y.y"
+#line 940 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		_fixup_anonymous_identifier(yyval.a_expr);
 	;
     break;}
 case 86:
-#line 948 "asn1p_y.y"
+#line 947 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		checkmem(yyval.a_expr);
@@ -2052,15 +2051,15 @@
 	;
     break;}
 case 87:
-#line 958 "asn1p_y.y"
+#line 957 "asn1p_y.y"
 { yyval.a_int = 0; ;
     break;}
 case 88:
-#line 959 "asn1p_y.y"
+#line 958 "asn1p_y.y"
 { yyval.a_int = 1; ;
     break;}
 case 89:
-#line 963 "asn1p_y.y"
+#line 962 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2070,14 +2069,14 @@
 	;
     break;}
 case 90:
-#line 970 "asn1p_y.y"
+#line 969 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 91:
-#line 977 "asn1p_y.y"
+#line 976 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2088,7 +2087,7 @@
 	;
     break;}
 case 92:
-#line 985 "asn1p_y.y"
+#line 984 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-3].a_refcomp.name;
@@ -2097,7 +2096,7 @@
 	;
     break;}
 case 93:
-#line 991 "asn1p_y.y"
+#line 990 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = asn1p_expr_new(yylineno);
@@ -2115,47 +2114,47 @@
 	;
     break;}
 case 94:
-#line 1009 "asn1p_y.y"
+#line 1008 "asn1p_y.y"
 { yyval.a_wsynt = 0; ;
     break;}
 case 95:
-#line 1010 "asn1p_y.y"
+#line 1009 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[0].a_wsynt;
 	;
     break;}
 case 96:
-#line 1017 "asn1p_y.y"
+#line 1016 "asn1p_y.y"
 { asn1p_lexer_hack_enable_with_syntax(); ;
     break;}
 case 97:
-#line 1019 "asn1p_y.y"
+#line 1018 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[-1].a_wsynt;
 	;
     break;}
 case 98:
-#line 1025 "asn1p_y.y"
+#line 1024 "asn1p_y.y"
 {
 		yyval.a_wsynt = asn1p_wsyntx_new();
 		TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
 	;
     break;}
 case 99:
-#line 1029 "asn1p_y.y"
+#line 1028 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[-1].a_wsynt;
 		TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
 	;
     break;}
 case 100:
-#line 1036 "asn1p_y.y"
+#line 1035 "asn1p_y.y"
 {
 		yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 	;
     break;}
 case 101:
-#line 1039 "asn1p_y.y"
+#line 1038 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2167,7 +2166,7 @@
 	;
     break;}
 case 102:
-#line 1051 "asn1p_y.y"
+#line 1050 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2178,7 +2177,7 @@
 	;
     break;}
 case 103:
-#line 1059 "asn1p_y.y"
+#line 1058 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2190,7 +2189,7 @@
 	;
     break;}
 case 104:
-#line 1068 "asn1p_y.y"
+#line 1067 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2202,7 +2201,7 @@
 	;
     break;}
 case 105:
-#line 1080 "asn1p_y.y"
+#line 1079 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		yyval.a_expr->tag = yyvsp[-2].a_tag;
@@ -2224,14 +2223,14 @@
 	;
     break;}
 case 106:
-#line 1102 "asn1p_y.y"
+#line 1101 "asn1p_y.y"
 {
 		yyval.a_int = asn1p_as_pointer ? EM_INDIRECT : 0;
 		asn1p_as_pointer = 0;
 	;
     break;}
 case 107:
-#line 1109 "asn1p_y.y"
+#line 1108 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		yyval.a_expr->marker.flags |= yyvsp[-1].a_int;
@@ -2250,13 +2249,13 @@
 	;
     break;}
 case 108:
-#line 1128 "asn1p_y.y"
+#line 1127 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 109:
-#line 1131 "asn1p_y.y"
+#line 1130 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2265,7 +2264,7 @@
 	;
     break;}
 case 110:
-#line 1137 "asn1p_y.y"
+#line 1136 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2274,7 +2273,7 @@
 	;
     break;}
 case 111:
-#line 1143 "asn1p_y.y"
+#line 1142 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2283,7 +2282,7 @@
 	;
     break;}
 case 112:
-#line 1149 "asn1p_y.y"
+#line 1148 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2296,7 +2295,7 @@
 	;
     break;}
 case 113:
-#line 1159 "asn1p_y.y"
+#line 1158 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2309,7 +2308,7 @@
 	;
     break;}
 case 114:
-#line 1169 "asn1p_y.y"
+#line 1168 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2318,7 +2317,7 @@
 	;
     break;}
 case 115:
-#line 1175 "asn1p_y.y"
+#line 1174 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = asn1p_expr_new(yylineno);
@@ -2332,7 +2331,7 @@
 	;
     break;}
 case 116:
-#line 1189 "asn1p_y.y"
+#line 1188 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = yyvsp[-1].a_expr;
@@ -2349,7 +2348,7 @@
 	;
     break;}
 case 117:
-#line 1213 "asn1p_y.y"
+#line 1212 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2359,7 +2358,7 @@
 	;
     break;}
 case 118:
-#line 1220 "asn1p_y.y"
+#line 1219 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2369,7 +2368,7 @@
 	;
     break;}
 case 119:
-#line 1235 "asn1p_y.y"
+#line 1234 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2380,7 +2379,7 @@
 	;
     break;}
 case 120:
-#line 1243 "asn1p_y.y"
+#line 1242 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2393,7 +2392,7 @@
 	;
     break;}
 case 121:
-#line 1253 "asn1p_y.y"
+#line 1252 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2406,7 +2405,7 @@
 	;
     break;}
 case 122:
-#line 1263 "asn1p_y.y"
+#line 1262 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2419,7 +2418,7 @@
 	;
     break;}
 case 123:
-#line 1273 "asn1p_y.y"
+#line 1272 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2430,7 +2429,7 @@
 	;
     break;}
 case 124:
-#line 1281 "asn1p_y.y"
+#line 1280 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = yyvsp[0].a_ref;
@@ -2452,7 +2451,7 @@
 	;
     break;}
 case 125:
-#line 1303 "asn1p_y.y"
+#line 1302 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2463,7 +2462,7 @@
 	;
     break;}
 case 126:
-#line 1311 "asn1p_y.y"
+#line 1310 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = yyvsp[-2].a_ref;
@@ -2473,21 +2472,21 @@
 	;
     break;}
 case 129:
-#line 1325 "asn1p_y.y"
+#line 1324 "asn1p_y.y"
 {
 		yyval.a_refcomp.lex_type = RLT_AmpUppercase;
 		yyval.a_refcomp.name = yyvsp[0].tv_str;
 	;
     break;}
 case 130:
-#line 1330 "asn1p_y.y"
+#line 1329 "asn1p_y.y"
 {
 		yyval.a_refcomp.lex_type = RLT_Amplowercase;
 		yyval.a_refcomp.name = yyvsp[0].tv_str;
 	;
     break;}
 case 131:
-#line 1343 "asn1p_y.y"
+#line 1342 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		assert(yyval.a_expr->Identifier == NULL);
@@ -2497,7 +2496,7 @@
 	;
     break;}
 case 132:
-#line 1353 "asn1p_y.y"
+#line 1352 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2507,11 +2506,11 @@
 	;
     break;}
 case 133:
-#line 1360 "asn1p_y.y"
+#line 1359 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
 case 134:
-#line 1360 "asn1p_y.y"
+#line 1359 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 		checkmem(yyval.a_value);
@@ -2519,7 +2518,7 @@
 	;
     break;}
 case 135:
-#line 1365 "asn1p_y.y"
+#line 1364 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2527,7 +2526,7 @@
 	;
     break;}
 case 136:
-#line 1370 "asn1p_y.y"
+#line 1369 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2535,7 +2534,7 @@
 	;
     break;}
 case 137:
-#line 1375 "asn1p_y.y"
+#line 1374 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2543,39 +2542,39 @@
 	;
     break;}
 case 138:
-#line 1380 "asn1p_y.y"
+#line 1379 "asn1p_y.y"
 {
 		yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B');
 		checkmem(yyval.a_value);
 	;
     break;}
 case 139:
-#line 1384 "asn1p_y.y"
+#line 1383 "asn1p_y.y"
 {
 		yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H');
 		checkmem(yyval.a_value);
 	;
     break;}
 case 140:
-#line 1388 "asn1p_y.y"
+#line 1387 "asn1p_y.y"
 {
 		yyval.a_value = yyval.a_value;
 	;
     break;}
 case 141:
-#line 1391 "asn1p_y.y"
+#line 1390 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 142:
-#line 1394 "asn1p_y.y"
+#line 1393 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 143:
-#line 1400 "asn1p_y.y"
+#line 1399 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2589,7 +2588,7 @@
 	;
     break;}
 case 144:
-#line 1411 "asn1p_y.y"
+#line 1410 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2606,14 +2605,14 @@
 	;
     break;}
 case 145:
-#line 1429 "asn1p_y.y"
+#line 1428 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 		checkmem(yyval.a_value);
 	;
     break;}
 case 146:
-#line 1433 "asn1p_y.y"
+#line 1432 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
@@ -2621,7 +2620,7 @@
 	;
     break;}
 case 147:
-#line 1438 "asn1p_y.y"
+#line 1437 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
@@ -2629,7 +2628,7 @@
 	;
     break;}
 case 148:
-#line 1472 "asn1p_y.y"
+#line 1471 "asn1p_y.y"
 {
 		yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1;
 		yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1);
@@ -2641,7 +2640,7 @@
 	;
     break;}
 case 149:
-#line 1481 "asn1p_y.y"
+#line 1480 "asn1p_y.y"
 {
 		int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len;
 		char *p = malloc(newsize + 1);
@@ -2656,71 +2655,71 @@
 	;
     break;}
 case 150:
-#line 1496 "asn1p_y.y"
+#line 1495 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_BOOLEAN; ;
     break;}
 case 151:
-#line 1497 "asn1p_y.y"
+#line 1496 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_NULL; ;
     break;}
 case 152:
-#line 1498 "asn1p_y.y"
+#line 1497 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_REAL; ;
     break;}
 case 153:
-#line 1499 "asn1p_y.y"
+#line 1498 "asn1p_y.y"
 { yyval.a_type = yyvsp[0].a_type; ;
     break;}
 case 154:
-#line 1500 "asn1p_y.y"
+#line 1499 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_OCTET_STRING; ;
     break;}
 case 155:
-#line 1501 "asn1p_y.y"
+#line 1500 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ;
     break;}
 case 156:
-#line 1502 "asn1p_y.y"
+#line 1501 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_RELATIVE_OID; ;
     break;}
 case 157:
-#line 1503 "asn1p_y.y"
+#line 1502 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_EXTERNAL; ;
     break;}
 case 158:
-#line 1504 "asn1p_y.y"
+#line 1503 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ;
     break;}
 case 159:
-#line 1505 "asn1p_y.y"
+#line 1504 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_CHARACTER_STRING; ;
     break;}
 case 160:
-#line 1506 "asn1p_y.y"
+#line 1505 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_UTCTime; ;
     break;}
 case 161:
-#line 1507 "asn1p_y.y"
+#line 1506 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_GeneralizedTime; ;
     break;}
 case 162:
-#line 1508 "asn1p_y.y"
+#line 1507 "asn1p_y.y"
 { yyval.a_type = yyvsp[0].a_type; ;
     break;}
 case 163:
-#line 1515 "asn1p_y.y"
+#line 1514 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_INTEGER; ;
     break;}
 case 164:
-#line 1516 "asn1p_y.y"
+#line 1515 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_ENUMERATED; ;
     break;}
 case 165:
-#line 1517 "asn1p_y.y"
+#line 1516 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_BIT_STRING; ;
     break;}
 case 166:
-#line 1521 "asn1p_y.y"
+#line 1520 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2729,7 +2728,7 @@
 	;
     break;}
 case 167:
-#line 1527 "asn1p_y.y"
+#line 1526 "asn1p_y.y"
 {
 		if(yyvsp[0].a_expr) {
 			yyval.a_expr = yyvsp[0].a_expr;
@@ -2742,91 +2741,91 @@
 	;
     break;}
 case 168:
-#line 1540 "asn1p_y.y"
+#line 1539 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_BMPString; ;
     break;}
 case 169:
-#line 1541 "asn1p_y.y"
+#line 1540 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_GeneralString;
 		fprintf(stderr, "WARNING: GeneralString is not fully supported\n");
 	;
     break;}
 case 170:
-#line 1545 "asn1p_y.y"
+#line 1544 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_GraphicString;
 		fprintf(stderr, "WARNING: GraphicString is not fully supported\n");
 	;
     break;}
 case 171:
-#line 1549 "asn1p_y.y"
+#line 1548 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_IA5String; ;
     break;}
 case 172:
-#line 1550 "asn1p_y.y"
+#line 1549 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_ISO646String; ;
     break;}
 case 173:
-#line 1551 "asn1p_y.y"
+#line 1550 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_NumericString; ;
     break;}
 case 174:
-#line 1552 "asn1p_y.y"
+#line 1551 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_PrintableString; ;
     break;}
 case 175:
-#line 1553 "asn1p_y.y"
+#line 1552 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_T61String;
 		fprintf(stderr, "WARNING: T61String is not fully supported\n");
 	;
     break;}
 case 176:
-#line 1557 "asn1p_y.y"
+#line 1556 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_TeletexString; ;
     break;}
 case 177:
-#line 1558 "asn1p_y.y"
+#line 1557 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_UniversalString; ;
     break;}
 case 178:
-#line 1559 "asn1p_y.y"
+#line 1558 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_UTF8String; ;
     break;}
 case 179:
-#line 1560 "asn1p_y.y"
+#line 1559 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_VideotexString;
 		fprintf(stderr, "WARNING: VideotexString is not fully supported\n");
 	;
     break;}
 case 180:
-#line 1564 "asn1p_y.y"
+#line 1563 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_VisibleString; ;
     break;}
 case 181:
-#line 1565 "asn1p_y.y"
+#line 1564 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_ObjectDescriptor; ;
     break;}
 case 187:
-#line 1577 "asn1p_y.y"
+#line 1576 "asn1p_y.y"
 { yyval.a_constr = 0; ;
     break;}
 case 188:
-#line 1578 "asn1p_y.y"
+#line 1577 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 189:
-#line 1584 "asn1p_y.y"
+#line 1583 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
 	;
     break;}
 case 190:
-#line 1587 "asn1p_y.y"
+#line 1586 "asn1p_y.y"
 {
 		/*
 		 * This is a special case, for compatibility purposes.
@@ -2836,25 +2835,25 @@
 	;
     break;}
 case 191:
-#line 1597 "asn1p_y.y"
+#line 1596 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[-1].a_constr;
 	;
     break;}
 case 192:
-#line 1600 "asn1p_y.y"
+#line 1599 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
 case 193:
-#line 1606 "asn1p_y.y"
+#line 1605 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 194:
-#line 1609 "asn1p_y.y"
+#line 1608 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -2863,7 +2862,7 @@
 	;
     break;}
 case 195:
-#line 1615 "asn1p_y.y"
+#line 1614 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -2874,37 +2873,37 @@
 	;
     break;}
 case 196:
-#line 1626 "asn1p_y.y"
+#line 1625 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 197:
-#line 1629 "asn1p_y.y"
+#line 1628 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0);
 	;
     break;}
 case 198:
-#line 1632 "asn1p_y.y"
+#line 1631 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 199:
-#line 1635 "asn1p_y.y"
+#line 1634 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 200:
-#line 1638 "asn1p_y.y"
+#line 1637 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 201:
-#line 1644 "asn1p_y.y"
+#line 1643 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -2915,7 +2914,7 @@
 	;
     break;}
 case 202:
-#line 1652 "asn1p_y.y"
+#line 1651 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -2926,7 +2925,7 @@
 	;
     break;}
 case 203:
-#line 1660 "asn1p_y.y"
+#line 1659 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2935,7 +2934,7 @@
 	;
     break;}
 case 204:
-#line 1666 "asn1p_y.y"
+#line 1665 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2944,7 +2943,7 @@
 	;
     break;}
 case 205:
-#line 1672 "asn1p_y.y"
+#line 1671 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2954,7 +2953,7 @@
 	;
     break;}
 case 206:
-#line 1679 "asn1p_y.y"
+#line 1678 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2965,7 +2964,7 @@
 	;
     break;}
 case 207:
-#line 1687 "asn1p_y.y"
+#line 1686 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2976,7 +2975,7 @@
 	;
     break;}
 case 208:
-#line 1695 "asn1p_y.y"
+#line 1694 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2988,23 +2987,23 @@
 	;
     break;}
 case 209:
-#line 1704 "asn1p_y.y"
+#line 1703 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 210:
-#line 1707 "asn1p_y.y"
+#line 1706 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 211:
-#line 1711 "asn1p_y.y"
+#line 1710 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
 case 212:
-#line 1711 "asn1p_y.y"
+#line 1710 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3015,35 +3014,35 @@
 	;
     break;}
 case 213:
-#line 1722 "asn1p_y.y"
+#line 1721 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_RANGE; ;
     break;}
 case 214:
-#line 1723 "asn1p_y.y"
+#line 1722 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_RLRANGE; ;
     break;}
 case 215:
-#line 1724 "asn1p_y.y"
+#line 1723 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_LLRANGE; ;
     break;}
 case 216:
-#line 1725 "asn1p_y.y"
+#line 1724 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_ULRANGE; ;
     break;}
 case 217:
-#line 1729 "asn1p_y.y"
+#line 1728 "asn1p_y.y"
 {
 		yyval.a_ctype = ACT_CT_SIZE;
 	;
     break;}
 case 218:
-#line 1732 "asn1p_y.y"
+#line 1731 "asn1p_y.y"
 {
 		yyval.a_ctype = ACT_CT_FROM;
 	;
     break;}
 case 219:
-#line 1738 "asn1p_y.y"
+#line 1737 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -3051,7 +3050,7 @@
 	;
     break;}
 case 220:
-#line 1743 "asn1p_y.y"
+#line 1742 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(1);
 		checkmem(yyval.a_value);
@@ -3059,19 +3058,19 @@
 	;
     break;}
 case 221:
-#line 1748 "asn1p_y.y"
+#line 1747 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 222:
-#line 1751 "asn1p_y.y"
+#line 1750 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 223:
-#line 1754 "asn1p_y.y"
+#line 1753 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -3085,7 +3084,7 @@
 	;
     break;}
 case 224:
-#line 1768 "asn1p_y.y"
+#line 1767 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -3099,31 +3098,31 @@
 	;
     break;}
 case 225:
-#line 1782 "asn1p_y.y"
+#line 1781 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0);
 	;
     break;}
 case 226:
-#line 1785 "asn1p_y.y"
+#line 1784 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
 	;
     break;}
 case 227:
-#line 1791 "asn1p_y.y"
+#line 1790 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 228:
-#line 1794 "asn1p_y.y"
+#line 1793 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 229:
-#line 1800 "asn1p_y.y"
+#line 1799 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3132,7 +3131,7 @@
 	;
     break;}
 case 230:
-#line 1806 "asn1p_y.y"
+#line 1805 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3143,45 +3142,45 @@
 	;
     break;}
 case 231:
-#line 1820 "asn1p_y.y"
+#line 1819 "asn1p_y.y"
 { yyval.a_pres = ACPRES_DEFAULT; ;
     break;}
 case 232:
-#line 1821 "asn1p_y.y"
+#line 1820 "asn1p_y.y"
 { yyval.a_pres = yyvsp[0].a_pres; ;
     break;}
 case 233:
-#line 1825 "asn1p_y.y"
+#line 1824 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_PRESENT;
 	;
     break;}
 case 234:
-#line 1828 "asn1p_y.y"
+#line 1827 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_ABSENT;
 	;
     break;}
 case 235:
-#line 1831 "asn1p_y.y"
+#line 1830 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_OPTIONAL;
 	;
     break;}
 case 236:
-#line 1837 "asn1p_y.y"
+#line 1836 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 237:
-#line 1840 "asn1p_y.y"
+#line 1839 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 238:
-#line 1849 "asn1p_y.y"
+#line 1848 "asn1p_y.y"
 {
 		asn1p_ref_t *ref = asn1p_ref_new(yylineno);
 		asn1p_constraint_t *ct;
@@ -3196,13 +3195,13 @@
 	;
     break;}
 case 239:
-#line 1864 "asn1p_y.y"
+#line 1863 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
 case 240:
-#line 1870 "asn1p_y.y"
+#line 1869 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3211,7 +3210,7 @@
 	;
     break;}
 case 241:
-#line 1876 "asn1p_y.y"
+#line 1875 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -3222,7 +3221,7 @@
 	;
     break;}
 case 242:
-#line 1890 "asn1p_y.y"
+#line 1889 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
 		int ret;
@@ -3236,7 +3235,7 @@
 	;
     break;}
 case 243:
-#line 1901 "asn1p_y.y"
+#line 1900 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
 		int ret;
@@ -3251,13 +3250,13 @@
 	;
     break;}
 case 244:
-#line 1917 "asn1p_y.y"
+#line 1916 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 245:
-#line 1920 "asn1p_y.y"
+#line 1919 "asn1p_y.y"
 {
 		int l1 = strlen(yyvsp[-2].tv_str);
 		int l3 = strlen(yyvsp[0].tv_str);
@@ -3269,45 +3268,45 @@
 	;
     break;}
 case 246:
-#line 1938 "asn1p_y.y"
+#line 1937 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_NOMARK;
 		yyval.a_marker.default_value = 0;
 	;
     break;}
 case 247:
-#line 1942 "asn1p_y.y"
+#line 1941 "asn1p_y.y"
 { yyval.a_marker = yyvsp[0].a_marker; ;
     break;}
 case 248:
-#line 1946 "asn1p_y.y"
+#line 1945 "asn1p_y.y"
 {
-		yyval.a_marker.flags = EM_OPTIONAL;
+		yyval.a_marker.flags = EM_OPTIONAL | EM_INDIRECT;
 		yyval.a_marker.default_value = 0;
 	;
     break;}
 case 249:
-#line 1950 "asn1p_y.y"
+#line 1949 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_DEFAULT;
 		yyval.a_marker.default_value = yyvsp[0].a_value;
 	;
     break;}
 case 250:
-#line 1973 "asn1p_y.y"
+#line 1972 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
 	;
     break;}
 case 251:
-#line 1977 "asn1p_y.y"
+#line 1976 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 	;
     break;}
 case 252:
-#line 1983 "asn1p_y.y"
+#line 1982 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3315,14 +3314,14 @@
 	;
     break;}
 case 253:
-#line 1988 "asn1p_y.y"
+#line 1987 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 254:
-#line 1995 "asn1p_y.y"
+#line 1994 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3332,7 +3331,7 @@
 	;
     break;}
 case 255:
-#line 2002 "asn1p_y.y"
+#line 2001 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3343,7 +3342,7 @@
 	;
     break;}
 case 256:
-#line 2010 "asn1p_y.y"
+#line 2009 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3354,7 +3353,7 @@
 	;
     break;}
 case 257:
-#line 2018 "asn1p_y.y"
+#line 2017 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3364,7 +3363,7 @@
 	;
     break;}
 case 258:
-#line 2025 "asn1p_y.y"
+#line 2024 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3375,102 +3374,102 @@
 	;
     break;}
 case 259:
-#line 2036 "asn1p_y.y"
+#line 2035 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 	;
     break;}
 case 260:
-#line 2040 "asn1p_y.y"
+#line 2039 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 	;
     break;}
 case 261:
-#line 2071 "asn1p_y.y"
+#line 2070 "asn1p_y.y"
 { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
     break;}
 case 262:
-#line 2072 "asn1p_y.y"
+#line 2071 "asn1p_y.y"
 { yyval.a_tag = yyvsp[0].a_tag; ;
     break;}
 case 263:
-#line 2076 "asn1p_y.y"
+#line 2075 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-1].a_tag;
 		yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode;
 	;
     break;}
 case 264:
-#line 2083 "asn1p_y.y"
+#line 2082 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-2].a_tag;
 		yyval.a_tag.tag_value = yyvsp[-1].a_int;
 	;
     break;}
 case 265:
-#line 2089 "asn1p_y.y"
+#line 2088 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ;
     break;}
 case 266:
-#line 2090 "asn1p_y.y"
+#line 2089 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_UNIVERSAL; ;
     break;}
 case 267:
-#line 2091 "asn1p_y.y"
+#line 2090 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_APPLICATION; ;
     break;}
 case 268:
-#line 2092 "asn1p_y.y"
+#line 2091 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_PRIVATE; ;
     break;}
 case 269:
-#line 2096 "asn1p_y.y"
+#line 2095 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_DEFAULT; ;
     break;}
 case 270:
-#line 2097 "asn1p_y.y"
+#line 2096 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_IMPLICIT; ;
     break;}
 case 271:
-#line 2098 "asn1p_y.y"
+#line 2097 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_EXPLICIT; ;
     break;}
 case 272:
-#line 2102 "asn1p_y.y"
+#line 2101 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 273:
-#line 2106 "asn1p_y.y"
+#line 2105 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 274:
-#line 2114 "asn1p_y.y"
+#line 2113 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 275:
-#line 2121 "asn1p_y.y"
+#line 2120 "asn1p_y.y"
 { yyval.tv_str = 0; ;
     break;}
 case 276:
-#line 2122 "asn1p_y.y"
+#line 2121 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 277:
-#line 2128 "asn1p_y.y"
+#line 2127 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
@@ -3698,7 +3697,7 @@
     }
   return 1;
 }
-#line 2134 "asn1p_y.y"
+#line 2133 "asn1p_y.y"