diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 5b3c4ad..9656f17 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -124,10 +124,14 @@
 #include "asn1parser.h"
 
 #define YYPARSE_PARAM	param
+#define YYPARSE_PARAM_TYPE	void **
 #define YYERROR_VERBOSE
 
 int yylex(void);
 int yyerror(const char *msg);
+#ifdef	YYBYACC
+int yyparse(void **param);	/* byacc does not produce a prototype */
+#endif
 void asn1p_lexer_hack_push_opaque_state(void);
 void asn1p_lexer_hack_enable_with_syntax(void);
 void asn1p_lexer_hack_push_encoding_control(void);
@@ -163,7 +167,7 @@
 	} while(0)
 
 
-#line 58 "asn1p_y.y"
+#line 62 "asn1p_y.y"
 typedef union {
 	asn1p_t			*a_grammar;
 	asn1p_module_flags_e	 a_module_flags;
@@ -367,34 +371,34 @@
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   302,   308,   314,   330,   355,   357,   360,   364,   369,   376,
-   384,   389,   393,   402,   404,   412,   416,   424,   428,   431,
-   434,   438,   458,   460,   468,   472,   504,   508,   517,   524,
-   537,   544,   546,   558,   571,   578,   583,   589,   595,   604,
-   610,   616,   623,   629,   637,   641,   644,   651,   657,   663,
-   670,   676,   685,   687,   696,   704,   718,   730,   736,   752,
-   761,   771,   781,   786,   793,   800,   810,   816,   822,   826,
-   849,   851,   853,   859,   865,   872,   879,   884,   890,   896,
-   902,   907,   917,   919,   922,   930,   936,   945,   951,   968,
-   970,   975,   979,   984,   989,   995,   999,  1010,  1019,  1028,
-  1039,  1061,  1065,  1071,  1077,  1083,  1093,  1103,  1109,  1123,
-  1147,  1154,  1168,  1177,  1187,  1197,  1207,  1215,  1236,  1245,
-  1254,  1255,  1257,  1264,  1276,  1286,  1294,  1294,  1299,  1304,
-  1309,  1314,  1318,  1322,  1325,  1328,  1333,  1345,  1362,  1367,
-  1372,  1405,  1415,  1429,  1431,  1432,  1433,  1434,  1435,  1436,
-  1437,  1438,  1439,  1440,  1441,  1442,  1448,  1450,  1451,  1454,
-  1461,  1473,  1475,  1479,  1483,  1484,  1485,  1486,  1487,  1491,
-  1492,  1493,  1494,  1498,  1499,  1506,  1506,  1507,  1507,  1508,
-  1510,  1512,  1517,  1521,  1530,  1534,  1539,  1543,  1549,  1559,
-  1563,  1566,  1569,  1572,  1577,  1586,  1594,  1600,  1606,  1613,
-  1621,  1629,  1638,  1641,  1644,  1645,  1655,  1657,  1658,  1659,
-  1662,  1666,  1671,  1677,  1682,  1685,  1688,  1701,  1715,  1719,
-  1724,  1728,  1733,  1740,  1753,  1755,  1758,  1762,  1765,  1770,
-  1774,  1782,  1797,  1803,  1810,  1823,  1835,  1850,  1854,  1871,
-  1876,  1879,  1884,  1906,  1911,  1916,  1922,  1928,  1936,  1944,
-  1952,  1959,  1969,  1974,  2004,  2006,  2009,  2016,  2022,  2024,
-  2025,  2026,  2029,  2031,  2032,  2035,  2040,  2047,  2054,  2056,
-  2061
+   306,   312,   318,   334,   359,   361,   364,   368,   373,   380,
+   388,   393,   397,   406,   408,   416,   420,   428,   432,   435,
+   438,   442,   462,   464,   472,   476,   508,   512,   521,   528,
+   541,   548,   550,   562,   575,   582,   587,   593,   599,   608,
+   614,   620,   627,   633,   641,   645,   648,   655,   661,   667,
+   674,   680,   689,   691,   700,   708,   722,   734,   740,   756,
+   765,   775,   785,   790,   797,   804,   814,   820,   826,   830,
+   853,   855,   857,   863,   869,   876,   883,   888,   894,   900,
+   906,   911,   921,   923,   926,   934,   940,   949,   955,   972,
+   974,   979,   983,   988,   993,   999,  1003,  1014,  1023,  1032,
+  1043,  1065,  1069,  1075,  1081,  1087,  1097,  1107,  1113,  1127,
+  1151,  1158,  1172,  1181,  1191,  1201,  1211,  1219,  1240,  1249,
+  1258,  1259,  1261,  1268,  1280,  1290,  1298,  1298,  1303,  1308,
+  1313,  1318,  1322,  1326,  1329,  1332,  1337,  1349,  1366,  1371,
+  1376,  1409,  1419,  1433,  1435,  1436,  1437,  1438,  1439,  1440,
+  1441,  1442,  1443,  1444,  1445,  1446,  1452,  1454,  1455,  1458,
+  1465,  1477,  1479,  1483,  1487,  1488,  1489,  1490,  1491,  1495,
+  1496,  1497,  1498,  1502,  1503,  1510,  1510,  1511,  1511,  1512,
+  1514,  1516,  1521,  1525,  1534,  1538,  1543,  1547,  1553,  1563,
+  1567,  1570,  1573,  1576,  1581,  1590,  1598,  1604,  1610,  1617,
+  1625,  1633,  1642,  1645,  1648,  1649,  1659,  1661,  1662,  1663,
+  1666,  1670,  1675,  1681,  1686,  1689,  1692,  1705,  1719,  1723,
+  1728,  1732,  1737,  1744,  1757,  1759,  1762,  1766,  1769,  1774,
+  1778,  1786,  1801,  1807,  1814,  1827,  1839,  1854,  1858,  1875,
+  1880,  1883,  1888,  1910,  1915,  1920,  1926,  1932,  1940,  1948,
+  1956,  1963,  1973,  1978,  2008,  2010,  2013,  2020,  2026,  2028,
+  2029,  2030,  2033,  2035,  2036,  2039,  2044,  2051,  2058,  2060,
+  2065
 };
 #endif
 
@@ -1348,13 +1352,13 @@
   switch (yyn) {
 
 case 1:
-#line 303 "asn1p_y.y"
+#line 307 "asn1p_y.y"
 {
 		*(void **)param = yyvsp[0].a_grammar;
 	;
     break;}
 case 2:
-#line 309 "asn1p_y.y"
+#line 313 "asn1p_y.y"
 {
 		yyval.a_grammar = asn1p_new();
 		checkmem(yyval.a_grammar);
@@ -1362,14 +1366,14 @@
 	;
     break;}
 case 3:
-#line 314 "asn1p_y.y"
+#line 318 "asn1p_y.y"
 {
 		yyval.a_grammar = yyvsp[-1].a_grammar;
 		TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next);
 	;
     break;}
 case 4:
-#line 335 "asn1p_y.y"
+#line 339 "asn1p_y.y"
 {
 
 		if(yyvsp[-1].a_module) {
@@ -1386,27 +1390,27 @@
 	;
     break;}
 case 5:
-#line 356 "asn1p_y.y"
+#line 360 "asn1p_y.y"
 { yyval.a_oid = 0; ;
     break;}
 case 6:
-#line 357 "asn1p_y.y"
+#line 361 "asn1p_y.y"
 { yyval.a_oid = yyvsp[0].a_oid; ;
     break;}
 case 7:
-#line 361 "asn1p_y.y"
+#line 365 "asn1p_y.y"
 {
 		yyval.a_oid = yyvsp[-1].a_oid;
 	;
     break;}
 case 8:
-#line 364 "asn1p_y.y"
+#line 368 "asn1p_y.y"
 {
 		yyval.a_oid = 0;
 	;
     break;}
 case 9:
-#line 370 "asn1p_y.y"
+#line 374 "asn1p_y.y"
 {
 		yyval.a_oid = asn1p_oid_new();
 		asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc);
@@ -1415,7 +1419,7 @@
 	;
     break;}
 case 10:
-#line 376 "asn1p_y.y"
+#line 380 "asn1p_y.y"
 {
 		yyval.a_oid = yyvsp[-1].a_oid;
 		asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc);
@@ -1424,74 +1428,74 @@
 	;
     break;}
 case 11:
-#line 385 "asn1p_y.y"
+#line 389 "asn1p_y.y"
 {					/* iso */
 		yyval.a_oid_arc.name = yyvsp[0].tv_str;
 		yyval.a_oid_arc.number = -1;
 	;
     break;}
 case 12:
-#line 389 "asn1p_y.y"
+#line 393 "asn1p_y.y"
 {		/* iso(1) */
 		yyval.a_oid_arc.name = yyvsp[-3].tv_str;
 		yyval.a_oid_arc.number = yyvsp[-1].a_int;
 	;
     break;}
 case 13:
-#line 393 "asn1p_y.y"
+#line 397 "asn1p_y.y"
 {					/* 1 */
 		yyval.a_oid_arc.name = 0;
 		yyval.a_oid_arc.number = yyvsp[0].a_int;
 	;
     break;}
 case 14:
-#line 403 "asn1p_y.y"
+#line 407 "asn1p_y.y"
 { yyval.a_module_flags = MSF_NOFLAGS; ;
     break;}
 case 15:
-#line 404 "asn1p_y.y"
+#line 408 "asn1p_y.y"
 {
 		yyval.a_module_flags = yyvsp[0].a_module_flags;
 	;
     break;}
 case 16:
-#line 413 "asn1p_y.y"
+#line 417 "asn1p_y.y"
 {
 		yyval.a_module_flags = yyvsp[0].a_module_flags;
 	;
     break;}
 case 17:
-#line 416 "asn1p_y.y"
+#line 420 "asn1p_y.y"
 {
 		yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags;
 	;
     break;}
 case 18:
-#line 425 "asn1p_y.y"
+#line 429 "asn1p_y.y"
 {
 		yyval.a_module_flags = MSF_EXPLICIT_TAGS;
 	;
     break;}
 case 19:
-#line 428 "asn1p_y.y"
+#line 432 "asn1p_y.y"
 {
 		yyval.a_module_flags = MSF_IMPLICIT_TAGS;
 	;
     break;}
 case 20:
-#line 431 "asn1p_y.y"
+#line 435 "asn1p_y.y"
 {
 		yyval.a_module_flags = MSF_AUTOMATIC_TAGS;
 	;
     break;}
 case 21:
-#line 434 "asn1p_y.y"
+#line 438 "asn1p_y.y"
 {
 		yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED;
 	;
     break;}
 case 22:
-#line 438 "asn1p_y.y"
+#line 442 "asn1p_y.y"
 {
 		/* X.680Amd1 specifies TAG and XER */
 		if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) {
@@ -1509,23 +1513,23 @@
 	;
     break;}
 case 23:
-#line 459 "asn1p_y.y"
+#line 463 "asn1p_y.y"
 { yyval.a_module = 0; ;
     break;}
 case 24:
-#line 460 "asn1p_y.y"
+#line 464 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[0].a_module;
 	;
     break;}
 case 25:
-#line 469 "asn1p_y.y"
+#line 473 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[0].a_module;
 	;
     break;}
 case 26:
-#line 472 "asn1p_y.y"
+#line 476 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[-1].a_module;
 
@@ -1555,13 +1559,13 @@
 	;
     break;}
 case 27:
-#line 505 "asn1p_y.y"
+#line 509 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[0].a_module;
 	;
     break;}
 case 28:
-#line 508 "asn1p_y.y"
+#line 512 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1573,7 +1577,7 @@
 	;
     break;}
 case 29:
-#line 517 "asn1p_y.y"
+#line 521 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1583,7 +1587,7 @@
 	;
     break;}
 case 30:
-#line 524 "asn1p_y.y"
+#line 528 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1593,7 +1597,7 @@
 	;
     break;}
 case 31:
-#line 537 "asn1p_y.y"
+#line 541 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1603,11 +1607,11 @@
 	;
     break;}
 case 32:
-#line 545 "asn1p_y.y"
+#line 549 "asn1p_y.y"
 { asn1p_lexer_hack_push_encoding_control(); ;
     break;}
 case 33:
-#line 546 "asn1p_y.y"
+#line 550 "asn1p_y.y"
 {
 		fprintf(stderr,
 			"WARNING: ENCODING-CONTROL %s "
@@ -1618,7 +1622,7 @@
 	;
     break;}
 case 34:
-#line 558 "asn1p_y.y"
+#line 562 "asn1p_y.y"
 {
 		return yyerror(
 			"Attempt to redefine a standard basic type, "
@@ -1627,19 +1631,19 @@
 	;
     break;}
 case 35:
-#line 572 "asn1p_y.y"
+#line 576 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[-1].a_module;
 	;
     break;}
 case 36:
-#line 578 "asn1p_y.y"
+#line 582 "asn1p_y.y"
 {
 		return yyerror("Empty IMPORTS list");
 	;
     break;}
 case 37:
-#line 584 "asn1p_y.y"
+#line 588 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1647,14 +1651,14 @@
 	;
     break;}
 case 38:
-#line 589 "asn1p_y.y"
+#line 593 "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 596 "asn1p_y.y"
+#line 600 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-3].a_xports;
 		yyval.a_xports->from = yyvsp[-1].tv_str;
@@ -1663,7 +1667,7 @@
 	;
     break;}
 case 40:
-#line 605 "asn1p_y.y"
+#line 609 "asn1p_y.y"
 {
 		yyval.a_xports = asn1p_xports_new();
 		checkmem(yyval.a_xports);
@@ -1671,14 +1675,14 @@
 	;
     break;}
 case 41:
-#line 610 "asn1p_y.y"
+#line 614 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-2].a_xports;
 		TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
 	;
     break;}
 case 42:
-#line 617 "asn1p_y.y"
+#line 621 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1687,7 +1691,7 @@
 	;
     break;}
 case 43:
-#line 623 "asn1p_y.y"
+#line 627 "asn1p_y.y"
 {		/* Completely equivalent to above */
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1696,7 +1700,7 @@
 	;
     break;}
 case 44:
-#line 629 "asn1p_y.y"
+#line 633 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1705,19 +1709,19 @@
 	;
     break;}
 case 45:
-#line 638 "asn1p_y.y"
+#line 642 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-1].a_xports;
 	;
     break;}
 case 46:
-#line 641 "asn1p_y.y"
+#line 645 "asn1p_y.y"
 {
 		yyval.a_xports = 0;
 	;
     break;}
 case 47:
-#line 644 "asn1p_y.y"
+#line 648 "asn1p_y.y"
 {
 		/* Empty EXPORTS clause effectively prohibits export. */
 		yyval.a_xports = asn1p_xports_new();
@@ -1725,7 +1729,7 @@
 	;
     break;}
 case 48:
-#line 652 "asn1p_y.y"
+#line 656 "asn1p_y.y"
 {
 		yyval.a_xports = asn1p_xports_new();
 		assert(yyval.a_xports);
@@ -1733,14 +1737,14 @@
 	;
     break;}
 case 49:
-#line 657 "asn1p_y.y"
+#line 661 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-2].a_xports;
 		TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
 	;
     break;}
 case 50:
-#line 664 "asn1p_y.y"
+#line 668 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1749,7 +1753,7 @@
 	;
     break;}
 case 51:
-#line 670 "asn1p_y.y"
+#line 674 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1758,7 +1762,7 @@
 	;
     break;}
 case 52:
-#line 676 "asn1p_y.y"
+#line 680 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1767,11 +1771,11 @@
 	;
     break;}
 case 53:
-#line 687 "asn1p_y.y"
+#line 691 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
 case 54:
-#line 687 "asn1p_y.y"
+#line 691 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-4].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -1781,7 +1785,7 @@
 	;
     break;}
 case 55:
-#line 697 "asn1p_y.y"
+#line 701 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1791,7 +1795,7 @@
 	;
     break;}
 case 56:
-#line 704 "asn1p_y.y"
+#line 708 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1800,7 +1804,7 @@
 	;
     break;}
 case 57:
-#line 722 "asn1p_y.y"
+#line 726 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1811,7 +1815,7 @@
 	;
     break;}
 case 58:
-#line 730 "asn1p_y.y"
+#line 734 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
@@ -1820,7 +1824,7 @@
 	;
     break;}
 case 59:
-#line 736 "asn1p_y.y"
+#line 740 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
@@ -1829,7 +1833,7 @@
 	;
     break;}
 case 60:
-#line 752 "asn1p_y.y"
+#line 756 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -1839,7 +1843,7 @@
 	;
     break;}
 case 61:
-#line 762 "asn1p_y.y"
+#line 766 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_plist = asn1p_paramlist_new(yylineno);
@@ -1851,7 +1855,7 @@
 	;
     break;}
 case 62:
-#line 771 "asn1p_y.y"
+#line 775 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_plist = yyvsp[-2].a_plist;
@@ -1862,14 +1866,14 @@
 	;
     break;}
 case 63:
-#line 782 "asn1p_y.y"
+#line 786 "asn1p_y.y"
 {
 		yyval.a_parg.governor = NULL;
 		yyval.a_parg.argument = yyvsp[0].tv_str;
 	;
     break;}
 case 64:
-#line 786 "asn1p_y.y"
+#line 790 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1879,7 +1883,7 @@
 	;
     break;}
 case 65:
-#line 793 "asn1p_y.y"
+#line 797 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1889,7 +1893,7 @@
 	;
     break;}
 case 66:
-#line 800 "asn1p_y.y"
+#line 804 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1900,7 +1904,7 @@
 	;
     break;}
 case 67:
-#line 811 "asn1p_y.y"
+#line 815 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1908,20 +1912,20 @@
 	;
     break;}
 case 68:
-#line 816 "asn1p_y.y"
+#line 820 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 69:
-#line 823 "asn1p_y.y"
+#line 827 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 70:
-#line 826 "asn1p_y.y"
+#line 830 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1931,15 +1935,15 @@
 	;
     break;}
 case 71:
-#line 850 "asn1p_y.y"
+#line 854 "asn1p_y.y"
 { yyval.a_expr = asn1p_expr_new(yylineno); ;
     break;}
 case 72:
-#line 851 "asn1p_y.y"
+#line 855 "asn1p_y.y"
 { yyval.a_expr = yyvsp[0].a_expr; ;
     break;}
 case 73:
-#line 854 "asn1p_y.y"
+#line 858 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1947,14 +1951,14 @@
 	;
     break;}
 case 74:
-#line 859 "asn1p_y.y"
+#line 863 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 75:
-#line 866 "asn1p_y.y"
+#line 870 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -1963,7 +1967,7 @@
 	;
     break;}
 case 76:
-#line 872 "asn1p_y.y"
+#line 876 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1973,13 +1977,13 @@
 	;
     break;}
 case 77:
-#line 879 "asn1p_y.y"
+#line 883 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 78:
-#line 885 "asn1p_y.y"
+#line 889 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1987,14 +1991,14 @@
 	;
     break;}
 case 79:
-#line 890 "asn1p_y.y"
+#line 894 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 80:
-#line 897 "asn1p_y.y"
+#line 901 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -2002,13 +2006,13 @@
 	;
     break;}
 case 81:
-#line 902 "asn1p_y.y"
+#line 906 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 82:
-#line 908 "asn1p_y.y"
+#line 912 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		checkmem(yyval.a_expr);
@@ -2018,15 +2022,15 @@
 	;
     break;}
 case 83:
-#line 918 "asn1p_y.y"
+#line 922 "asn1p_y.y"
 { yyval.a_int = 0; ;
     break;}
 case 84:
-#line 919 "asn1p_y.y"
+#line 923 "asn1p_y.y"
 { yyval.a_int = 1; ;
     break;}
 case 85:
-#line 923 "asn1p_y.y"
+#line 927 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2036,14 +2040,14 @@
 	;
     break;}
 case 86:
-#line 930 "asn1p_y.y"
+#line 934 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 87:
-#line 937 "asn1p_y.y"
+#line 941 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2054,7 +2058,7 @@
 	;
     break;}
 case 88:
-#line 945 "asn1p_y.y"
+#line 949 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-3].a_refcomp.name;
@@ -2063,7 +2067,7 @@
 	;
     break;}
 case 89:
-#line 951 "asn1p_y.y"
+#line 955 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = asn1p_expr_new(yylineno);
@@ -2081,47 +2085,47 @@
 	;
     break;}
 case 90:
-#line 969 "asn1p_y.y"
+#line 973 "asn1p_y.y"
 { yyval.a_wsynt = 0; ;
     break;}
 case 91:
-#line 970 "asn1p_y.y"
+#line 974 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[0].a_wsynt;
 	;
     break;}
 case 92:
-#line 977 "asn1p_y.y"
+#line 981 "asn1p_y.y"
 { asn1p_lexer_hack_enable_with_syntax(); ;
     break;}
 case 93:
-#line 979 "asn1p_y.y"
+#line 983 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[-1].a_wsynt;
 	;
     break;}
 case 94:
-#line 985 "asn1p_y.y"
+#line 989 "asn1p_y.y"
 {
 		yyval.a_wsynt = asn1p_wsyntx_new();
 		TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
 	;
     break;}
 case 95:
-#line 989 "asn1p_y.y"
+#line 993 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[-1].a_wsynt;
 		TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
 	;
     break;}
 case 96:
-#line 996 "asn1p_y.y"
+#line 1000 "asn1p_y.y"
 {
 		yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 	;
     break;}
 case 97:
-#line 999 "asn1p_y.y"
+#line 1003 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2133,7 +2137,7 @@
 	;
     break;}
 case 98:
-#line 1011 "asn1p_y.y"
+#line 1015 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2144,7 +2148,7 @@
 	;
     break;}
 case 99:
-#line 1019 "asn1p_y.y"
+#line 1023 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2156,7 +2160,7 @@
 	;
     break;}
 case 100:
-#line 1028 "asn1p_y.y"
+#line 1032 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2168,7 +2172,7 @@
 	;
     break;}
 case 101:
-#line 1040 "asn1p_y.y"
+#line 1044 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		yyval.a_expr->tag = yyvsp[-2].a_tag;
@@ -2190,13 +2194,13 @@
 	;
     break;}
 case 102:
-#line 1062 "asn1p_y.y"
+#line 1066 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 103:
-#line 1065 "asn1p_y.y"
+#line 1069 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2205,7 +2209,7 @@
 	;
     break;}
 case 104:
-#line 1071 "asn1p_y.y"
+#line 1075 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2214,7 +2218,7 @@
 	;
     break;}
 case 105:
-#line 1077 "asn1p_y.y"
+#line 1081 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2223,7 +2227,7 @@
 	;
     break;}
 case 106:
-#line 1083 "asn1p_y.y"
+#line 1087 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2236,7 +2240,7 @@
 	;
     break;}
 case 107:
-#line 1093 "asn1p_y.y"
+#line 1097 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2249,7 +2253,7 @@
 	;
     break;}
 case 108:
-#line 1103 "asn1p_y.y"
+#line 1107 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2258,7 +2262,7 @@
 	;
     break;}
 case 109:
-#line 1109 "asn1p_y.y"
+#line 1113 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = asn1p_expr_new(yylineno);
@@ -2272,7 +2276,7 @@
 	;
     break;}
 case 110:
-#line 1123 "asn1p_y.y"
+#line 1127 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = yyvsp[-1].a_expr;
@@ -2289,7 +2293,7 @@
 	;
     break;}
 case 111:
-#line 1147 "asn1p_y.y"
+#line 1151 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2299,7 +2303,7 @@
 	;
     break;}
 case 112:
-#line 1154 "asn1p_y.y"
+#line 1158 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2309,7 +2313,7 @@
 	;
     break;}
 case 113:
-#line 1169 "asn1p_y.y"
+#line 1173 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2320,7 +2324,7 @@
 	;
     break;}
 case 114:
-#line 1177 "asn1p_y.y"
+#line 1181 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2333,7 +2337,7 @@
 	;
     break;}
 case 115:
-#line 1187 "asn1p_y.y"
+#line 1191 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2346,7 +2350,7 @@
 	;
     break;}
 case 116:
-#line 1197 "asn1p_y.y"
+#line 1201 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2359,7 +2363,7 @@
 	;
     break;}
 case 117:
-#line 1207 "asn1p_y.y"
+#line 1211 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2370,7 +2374,7 @@
 	;
     break;}
 case 118:
-#line 1215 "asn1p_y.y"
+#line 1219 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = yyvsp[0].a_ref;
@@ -2392,7 +2396,7 @@
 	;
     break;}
 case 119:
-#line 1237 "asn1p_y.y"
+#line 1241 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2403,7 +2407,7 @@
 	;
     break;}
 case 120:
-#line 1245 "asn1p_y.y"
+#line 1249 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = yyvsp[-2].a_ref;
@@ -2413,21 +2417,21 @@
 	;
     break;}
 case 123:
-#line 1259 "asn1p_y.y"
+#line 1263 "asn1p_y.y"
 {
 		yyval.a_refcomp.lex_type = RLT_AmpUppercase;
 		yyval.a_refcomp.name = yyvsp[0].tv_str;
 	;
     break;}
 case 124:
-#line 1264 "asn1p_y.y"
+#line 1268 "asn1p_y.y"
 {
 		yyval.a_refcomp.lex_type = RLT_Amplowercase;
 		yyval.a_refcomp.name = yyvsp[0].tv_str;
 	;
     break;}
 case 125:
-#line 1277 "asn1p_y.y"
+#line 1281 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		assert(yyval.a_expr->Identifier == NULL);
@@ -2437,7 +2441,7 @@
 	;
     break;}
 case 126:
-#line 1287 "asn1p_y.y"
+#line 1291 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2447,11 +2451,11 @@
 	;
     break;}
 case 127:
-#line 1294 "asn1p_y.y"
+#line 1298 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
 case 128:
-#line 1294 "asn1p_y.y"
+#line 1298 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 		checkmem(yyval.a_value);
@@ -2459,7 +2463,7 @@
 	;
     break;}
 case 129:
-#line 1299 "asn1p_y.y"
+#line 1303 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2467,7 +2471,7 @@
 	;
     break;}
 case 130:
-#line 1304 "asn1p_y.y"
+#line 1308 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2475,7 +2479,7 @@
 	;
     break;}
 case 131:
-#line 1309 "asn1p_y.y"
+#line 1313 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2483,39 +2487,39 @@
 	;
     break;}
 case 132:
-#line 1314 "asn1p_y.y"
+#line 1318 "asn1p_y.y"
 {
 		yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B');
 		checkmem(yyval.a_value);
 	;
     break;}
 case 133:
-#line 1318 "asn1p_y.y"
+#line 1322 "asn1p_y.y"
 {
 		yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H');
 		checkmem(yyval.a_value);
 	;
     break;}
 case 134:
-#line 1322 "asn1p_y.y"
+#line 1326 "asn1p_y.y"
 {
 		yyval.a_value = yyval.a_value;
 	;
     break;}
 case 135:
-#line 1325 "asn1p_y.y"
+#line 1329 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 136:
-#line 1328 "asn1p_y.y"
+#line 1332 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 137:
-#line 1334 "asn1p_y.y"
+#line 1338 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2529,7 +2533,7 @@
 	;
     break;}
 case 138:
-#line 1345 "asn1p_y.y"
+#line 1349 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2546,14 +2550,14 @@
 	;
     break;}
 case 139:
-#line 1363 "asn1p_y.y"
+#line 1367 "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 140:
-#line 1367 "asn1p_y.y"
+#line 1371 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
@@ -2561,7 +2565,7 @@
 	;
     break;}
 case 141:
-#line 1372 "asn1p_y.y"
+#line 1376 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
@@ -2569,7 +2573,7 @@
 	;
     break;}
 case 142:
-#line 1406 "asn1p_y.y"
+#line 1410 "asn1p_y.y"
 {
 		yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1;
 		yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1);
@@ -2581,7 +2585,7 @@
 	;
     break;}
 case 143:
-#line 1415 "asn1p_y.y"
+#line 1419 "asn1p_y.y"
 {
 		int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len;
 		char *p = malloc(newsize + 1);
@@ -2596,71 +2600,71 @@
 	;
     break;}
 case 144:
-#line 1430 "asn1p_y.y"
+#line 1434 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_BOOLEAN; ;
     break;}
 case 145:
-#line 1431 "asn1p_y.y"
+#line 1435 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_NULL; ;
     break;}
 case 146:
-#line 1432 "asn1p_y.y"
+#line 1436 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_REAL; ;
     break;}
 case 147:
-#line 1433 "asn1p_y.y"
+#line 1437 "asn1p_y.y"
 { yyval.a_type = yyvsp[0].a_type; ;
     break;}
 case 148:
-#line 1434 "asn1p_y.y"
+#line 1438 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_OCTET_STRING; ;
     break;}
 case 149:
-#line 1435 "asn1p_y.y"
+#line 1439 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ;
     break;}
 case 150:
-#line 1436 "asn1p_y.y"
+#line 1440 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_RELATIVE_OID; ;
     break;}
 case 151:
-#line 1437 "asn1p_y.y"
+#line 1441 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_EXTERNAL; ;
     break;}
 case 152:
-#line 1438 "asn1p_y.y"
+#line 1442 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ;
     break;}
 case 153:
-#line 1439 "asn1p_y.y"
+#line 1443 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_CHARACTER_STRING; ;
     break;}
 case 154:
-#line 1440 "asn1p_y.y"
+#line 1444 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_UTCTime; ;
     break;}
 case 155:
-#line 1441 "asn1p_y.y"
+#line 1445 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_GeneralizedTime; ;
     break;}
 case 156:
-#line 1442 "asn1p_y.y"
+#line 1446 "asn1p_y.y"
 { yyval.a_type = yyvsp[0].a_type; ;
     break;}
 case 157:
-#line 1449 "asn1p_y.y"
+#line 1453 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_INTEGER; ;
     break;}
 case 158:
-#line 1450 "asn1p_y.y"
+#line 1454 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_ENUMERATED; ;
     break;}
 case 159:
-#line 1451 "asn1p_y.y"
+#line 1455 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_BIT_STRING; ;
     break;}
 case 160:
-#line 1455 "asn1p_y.y"
+#line 1459 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2669,7 +2673,7 @@
 	;
     break;}
 case 161:
-#line 1461 "asn1p_y.y"
+#line 1465 "asn1p_y.y"
 {
 		if(yyvsp[0].a_expr) {
 			yyval.a_expr = yyvsp[0].a_expr;
@@ -2682,91 +2686,91 @@
 	;
     break;}
 case 162:
-#line 1474 "asn1p_y.y"
+#line 1478 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_BMPString; ;
     break;}
 case 163:
-#line 1475 "asn1p_y.y"
+#line 1479 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_GeneralString;
 		fprintf(stderr, "WARNING: GeneralString is not fully supported\n");
 	;
     break;}
 case 164:
-#line 1479 "asn1p_y.y"
+#line 1483 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_GraphicString;
 		fprintf(stderr, "WARNING: GraphicString is not fully supported\n");
 	;
     break;}
 case 165:
-#line 1483 "asn1p_y.y"
+#line 1487 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_IA5String; ;
     break;}
 case 166:
-#line 1484 "asn1p_y.y"
+#line 1488 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_ISO646String; ;
     break;}
 case 167:
-#line 1485 "asn1p_y.y"
+#line 1489 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_NumericString; ;
     break;}
 case 168:
-#line 1486 "asn1p_y.y"
+#line 1490 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_PrintableString; ;
     break;}
 case 169:
-#line 1487 "asn1p_y.y"
+#line 1491 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_T61String;
 		fprintf(stderr, "WARNING: T61String is not fully supported\n");
 	;
     break;}
 case 170:
-#line 1491 "asn1p_y.y"
+#line 1495 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_TeletexString; ;
     break;}
 case 171:
-#line 1492 "asn1p_y.y"
+#line 1496 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_UniversalString; ;
     break;}
 case 172:
-#line 1493 "asn1p_y.y"
+#line 1497 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_UTF8String; ;
     break;}
 case 173:
-#line 1494 "asn1p_y.y"
+#line 1498 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_VideotexString;
 		fprintf(stderr, "WARNING: VideotexString is not fully supported\n");
 	;
     break;}
 case 174:
-#line 1498 "asn1p_y.y"
+#line 1502 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_VisibleString; ;
     break;}
 case 175:
-#line 1499 "asn1p_y.y"
+#line 1503 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_ObjectDescriptor; ;
     break;}
 case 181:
-#line 1511 "asn1p_y.y"
+#line 1515 "asn1p_y.y"
 { yyval.a_constr = 0; ;
     break;}
 case 182:
-#line 1512 "asn1p_y.y"
+#line 1516 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 183:
-#line 1518 "asn1p_y.y"
+#line 1522 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
 	;
     break;}
 case 184:
-#line 1521 "asn1p_y.y"
+#line 1525 "asn1p_y.y"
 {
 		/*
 		 * This is a special case, for compatibility purposes.
@@ -2776,25 +2780,25 @@
 	;
     break;}
 case 185:
-#line 1531 "asn1p_y.y"
+#line 1535 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[-1].a_constr;
 	;
     break;}
 case 186:
-#line 1534 "asn1p_y.y"
+#line 1538 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
 case 187:
-#line 1540 "asn1p_y.y"
+#line 1544 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 188:
-#line 1543 "asn1p_y.y"
+#line 1547 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -2803,7 +2807,7 @@
 	;
     break;}
 case 189:
-#line 1549 "asn1p_y.y"
+#line 1553 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -2814,37 +2818,37 @@
 	;
     break;}
 case 190:
-#line 1560 "asn1p_y.y"
+#line 1564 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 191:
-#line 1563 "asn1p_y.y"
+#line 1567 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0);
 	;
     break;}
 case 192:
-#line 1566 "asn1p_y.y"
+#line 1570 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 193:
-#line 1569 "asn1p_y.y"
+#line 1573 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 194:
-#line 1572 "asn1p_y.y"
+#line 1576 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 195:
-#line 1578 "asn1p_y.y"
+#line 1582 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -2855,7 +2859,7 @@
 	;
     break;}
 case 196:
-#line 1586 "asn1p_y.y"
+#line 1590 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -2866,7 +2870,7 @@
 	;
     break;}
 case 197:
-#line 1594 "asn1p_y.y"
+#line 1598 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2875,7 +2879,7 @@
 	;
     break;}
 case 198:
-#line 1600 "asn1p_y.y"
+#line 1604 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2884,7 +2888,7 @@
 	;
     break;}
 case 199:
-#line 1606 "asn1p_y.y"
+#line 1610 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2894,7 +2898,7 @@
 	;
     break;}
 case 200:
-#line 1613 "asn1p_y.y"
+#line 1617 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2905,7 +2909,7 @@
 	;
     break;}
 case 201:
-#line 1621 "asn1p_y.y"
+#line 1625 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2916,7 +2920,7 @@
 	;
     break;}
 case 202:
-#line 1629 "asn1p_y.y"
+#line 1633 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2928,23 +2932,23 @@
 	;
     break;}
 case 203:
-#line 1638 "asn1p_y.y"
+#line 1642 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 204:
-#line 1641 "asn1p_y.y"
+#line 1645 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 205:
-#line 1645 "asn1p_y.y"
+#line 1649 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
 case 206:
-#line 1645 "asn1p_y.y"
+#line 1649 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2955,35 +2959,35 @@
 	;
     break;}
 case 207:
-#line 1656 "asn1p_y.y"
+#line 1660 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_RANGE; ;
     break;}
 case 208:
-#line 1657 "asn1p_y.y"
+#line 1661 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_RLRANGE; ;
     break;}
 case 209:
-#line 1658 "asn1p_y.y"
+#line 1662 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_LLRANGE; ;
     break;}
 case 210:
-#line 1659 "asn1p_y.y"
+#line 1663 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_ULRANGE; ;
     break;}
 case 211:
-#line 1663 "asn1p_y.y"
+#line 1667 "asn1p_y.y"
 {
 		yyval.a_ctype = ACT_CT_SIZE;
 	;
     break;}
 case 212:
-#line 1666 "asn1p_y.y"
+#line 1670 "asn1p_y.y"
 {
 		yyval.a_ctype = ACT_CT_FROM;
 	;
     break;}
 case 213:
-#line 1672 "asn1p_y.y"
+#line 1676 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2991,7 +2995,7 @@
 	;
     break;}
 case 214:
-#line 1677 "asn1p_y.y"
+#line 1681 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(1);
 		checkmem(yyval.a_value);
@@ -2999,19 +3003,19 @@
 	;
     break;}
 case 215:
-#line 1682 "asn1p_y.y"
+#line 1686 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 216:
-#line 1685 "asn1p_y.y"
+#line 1689 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 217:
-#line 1688 "asn1p_y.y"
+#line 1692 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -3025,7 +3029,7 @@
 	;
     break;}
 case 218:
-#line 1702 "asn1p_y.y"
+#line 1706 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -3039,31 +3043,31 @@
 	;
     break;}
 case 219:
-#line 1716 "asn1p_y.y"
+#line 1720 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0);
 	;
     break;}
 case 220:
-#line 1719 "asn1p_y.y"
+#line 1723 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
 	;
     break;}
 case 221:
-#line 1725 "asn1p_y.y"
+#line 1729 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 222:
-#line 1728 "asn1p_y.y"
+#line 1732 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 223:
-#line 1734 "asn1p_y.y"
+#line 1738 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3072,7 +3076,7 @@
 	;
     break;}
 case 224:
-#line 1740 "asn1p_y.y"
+#line 1744 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3083,45 +3087,45 @@
 	;
     break;}
 case 225:
-#line 1754 "asn1p_y.y"
+#line 1758 "asn1p_y.y"
 { yyval.a_pres = ACPRES_DEFAULT; ;
     break;}
 case 226:
-#line 1755 "asn1p_y.y"
+#line 1759 "asn1p_y.y"
 { yyval.a_pres = yyvsp[0].a_pres; ;
     break;}
 case 227:
-#line 1759 "asn1p_y.y"
+#line 1763 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_PRESENT;
 	;
     break;}
 case 228:
-#line 1762 "asn1p_y.y"
+#line 1766 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_ABSENT;
 	;
     break;}
 case 229:
-#line 1765 "asn1p_y.y"
+#line 1769 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_OPTIONAL;
 	;
     break;}
 case 230:
-#line 1771 "asn1p_y.y"
+#line 1775 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 231:
-#line 1774 "asn1p_y.y"
+#line 1778 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 232:
-#line 1783 "asn1p_y.y"
+#line 1787 "asn1p_y.y"
 {
 		asn1p_ref_t *ref = asn1p_ref_new(yylineno);
 		asn1p_constraint_t *ct;
@@ -3136,13 +3140,13 @@
 	;
     break;}
 case 233:
-#line 1798 "asn1p_y.y"
+#line 1802 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
 case 234:
-#line 1804 "asn1p_y.y"
+#line 1808 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3151,7 +3155,7 @@
 	;
     break;}
 case 235:
-#line 1810 "asn1p_y.y"
+#line 1814 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -3162,7 +3166,7 @@
 	;
     break;}
 case 236:
-#line 1824 "asn1p_y.y"
+#line 1828 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
 		int ret;
@@ -3176,7 +3180,7 @@
 	;
     break;}
 case 237:
-#line 1835 "asn1p_y.y"
+#line 1839 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
 		int ret;
@@ -3191,13 +3195,13 @@
 	;
     break;}
 case 238:
-#line 1851 "asn1p_y.y"
+#line 1855 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 239:
-#line 1854 "asn1p_y.y"
+#line 1858 "asn1p_y.y"
 {
 		int l1 = strlen(yyvsp[-2].tv_str);
 		int l3 = strlen(yyvsp[0].tv_str);
@@ -3209,45 +3213,45 @@
 	;
     break;}
 case 240:
-#line 1872 "asn1p_y.y"
+#line 1876 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_NOMARK;
 		yyval.a_marker.default_value = 0;
 	;
     break;}
 case 241:
-#line 1876 "asn1p_y.y"
+#line 1880 "asn1p_y.y"
 { yyval.a_marker = yyvsp[0].a_marker; ;
     break;}
 case 242:
-#line 1880 "asn1p_y.y"
+#line 1884 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_OPTIONAL;
 		yyval.a_marker.default_value = 0;
 	;
     break;}
 case 243:
-#line 1884 "asn1p_y.y"
+#line 1888 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_DEFAULT;
 		yyval.a_marker.default_value = yyvsp[0].a_value;
 	;
     break;}
 case 244:
-#line 1907 "asn1p_y.y"
+#line 1911 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
 	;
     break;}
 case 245:
-#line 1911 "asn1p_y.y"
+#line 1915 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 	;
     break;}
 case 246:
-#line 1917 "asn1p_y.y"
+#line 1921 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3255,14 +3259,14 @@
 	;
     break;}
 case 247:
-#line 1922 "asn1p_y.y"
+#line 1926 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 248:
-#line 1929 "asn1p_y.y"
+#line 1933 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3272,7 +3276,7 @@
 	;
     break;}
 case 249:
-#line 1936 "asn1p_y.y"
+#line 1940 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3283,7 +3287,7 @@
 	;
     break;}
 case 250:
-#line 1944 "asn1p_y.y"
+#line 1948 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3294,7 +3298,7 @@
 	;
     break;}
 case 251:
-#line 1952 "asn1p_y.y"
+#line 1956 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3304,7 +3308,7 @@
 	;
     break;}
 case 252:
-#line 1959 "asn1p_y.y"
+#line 1963 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3315,102 +3319,102 @@
 	;
     break;}
 case 253:
-#line 1970 "asn1p_y.y"
-{
-		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
-		checkmem(yyval.a_value);
-	;
-    break;}
-case 254:
 #line 1974 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 	;
     break;}
+case 254:
+#line 1978 "asn1p_y.y"
+{
+		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
+		checkmem(yyval.a_value);
+	;
+    break;}
 case 255:
-#line 2005 "asn1p_y.y"
+#line 2009 "asn1p_y.y"
 { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
     break;}
 case 256:
-#line 2006 "asn1p_y.y"
+#line 2010 "asn1p_y.y"
 { yyval.a_tag = yyvsp[0].a_tag; ;
     break;}
 case 257:
-#line 2010 "asn1p_y.y"
+#line 2014 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-1].a_tag;
 		yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode;
 	;
     break;}
 case 258:
-#line 2017 "asn1p_y.y"
+#line 2021 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-2].a_tag;
 		yyval.a_tag.tag_value = yyvsp[-1].a_int;
 	;
     break;}
 case 259:
-#line 2023 "asn1p_y.y"
+#line 2027 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ;
     break;}
 case 260:
-#line 2024 "asn1p_y.y"
+#line 2028 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_UNIVERSAL; ;
     break;}
 case 261:
-#line 2025 "asn1p_y.y"
+#line 2029 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_APPLICATION; ;
     break;}
 case 262:
-#line 2026 "asn1p_y.y"
+#line 2030 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_PRIVATE; ;
     break;}
 case 263:
-#line 2030 "asn1p_y.y"
+#line 2034 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_DEFAULT; ;
     break;}
 case 264:
-#line 2031 "asn1p_y.y"
+#line 2035 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_IMPLICIT; ;
     break;}
 case 265:
-#line 2032 "asn1p_y.y"
+#line 2036 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_EXPLICIT; ;
     break;}
 case 266:
-#line 2036 "asn1p_y.y"
-{
-		checkmem(yyvsp[0].tv_str);
-		yyval.tv_str = yyvsp[0].tv_str;
-	;
-    break;}
-case 267:
 #line 2040 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
+case 267:
+#line 2044 "asn1p_y.y"
+{
+		checkmem(yyvsp[0].tv_str);
+		yyval.tv_str = yyvsp[0].tv_str;
+	;
+    break;}
 case 268:
-#line 2048 "asn1p_y.y"
+#line 2052 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 269:
-#line 2055 "asn1p_y.y"
+#line 2059 "asn1p_y.y"
 { yyval.tv_str = 0; ;
     break;}
 case 270:
-#line 2056 "asn1p_y.y"
+#line 2060 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 271:
-#line 2062 "asn1p_y.y"
+#line 2066 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
@@ -3490,7 +3494,7 @@
 	  count = 0;
 	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
 	  for (x = (yyn < 0 ? -yyn : 0);
-	       x < (sizeof(yytname) / sizeof(char *)); x++)
+	       x < (int)(sizeof(yytname) / sizeof(char *)); x++)
 	    if (yycheck[x + yyn] == x)
 	      size += strlen(yytname[x]) + 15, count++;
 	  msg = (char *) malloc(size + 15);
@@ -3502,7 +3506,7 @@
 		{
 		  count = 0;
 		  for (x = (yyn < 0 ? -yyn : 0);
-		       x < (sizeof(yytname) / sizeof(char *)); x++)
+		       x < (int)(sizeof(yytname) / sizeof(char *)); x++)
 		    if (yycheck[x + yyn] == x)
 		      {
 			strcat(msg, count == 0 ? ", expecting `" : " or `");
@@ -3638,7 +3642,7 @@
     }
   return 1;
 }
-#line 2068 "asn1p_y.y"
+#line 2072 "asn1p_y.y"
 
 
 
