Type may contain tags

diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 9a33633..84a8c55 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -205,11 +205,11 @@
 
 
 
-#define	YYFINAL		396
+#define	YYFINAL		395
 #define	YYFLAG		-32768
 #define	YYNTBASE	115
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 355 ? yytranslate[x] : 214)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 355 ? yytranslate[x] : 213)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -258,11 +258,11 @@
     79,    81,    82,    86,    88,    92,    95,    97,   100,   105,
    107,   111,   113,   115,   119,   123,   126,   128,   132,   134,
    136,   143,   145,   147,   148,   150,   152,   156,   158,   160,
-   165,   170,   174,   181,   183,   187,   189,   193,   197,   199,
-   203,   205,   207,   209,   213,   217,   221,   223,   225,   229,
-   232,   234,   240,   241,   243,   245,   249,   252,   257,   262,
-   263,   265,   266,   273,   275,   278,   280,   282,   284,   288,
-   292,   295,   297,   299,   304,   309,   314,   319,   324,   326,
+   165,   169,   173,   180,   182,   186,   188,   192,   196,   198,
+   202,   204,   206,   208,   212,   216,   220,   222,   224,   228,
+   231,   233,   239,   240,   242,   244,   248,   251,   256,   261,
+   262,   264,   265,   272,   274,   277,   279,   281,   283,   287,
+   291,   295,   297,   299,   304,   309,   314,   319,   324,   326,
    331,   336,   338,   342,   344,   348,   352,   354,   358,   360,
    364,   366,   368,   370,   372,   377,   378,   382,   384,   386,
    388,   390,   392,   394,   398,   400,   403,   405,   407,   409,
@@ -277,7 +277,7 @@
    625,   629,   632,   636,   638,   642,   643,   645,   647,   650,
    652,   654,   655,   659,   662,   666,   668,   672,   674,   679,
    684,   686,   688,   690,   692,   693,   695,   697,   700,   703,
-   705,   707,   709,   711,   713
+   705,   707,   709
 };
 
 static const short yyrhs[] = {   116,
@@ -297,20 +297,20 @@
      0,   210,     0,   212,     0,   210,   138,     3,   104,   139,
    105,     0,   163,     0,   173,     0,     0,   140,     0,   141,
      0,   140,   109,   141,     0,   102,     0,   184,     0,   210,
-     3,   208,    87,     0,   210,     3,   208,   161,     0,   210,
-     3,   151,     0,   210,   104,   143,   105,     3,   161,     0,
-   144,     0,   143,   109,   144,     0,   210,     0,   210,   110,
-   212,     0,   173,   110,   212,     0,   146,     0,   145,   109,
-   146,     0,   161,     0,   212,     0,   148,     0,   147,   109,
-   148,     0,   213,   161,   200,     0,    30,    68,   161,     0,
-   160,     0,   150,     0,   149,   109,   150,     0,   213,   161,
-     0,   160,     0,    28,   104,   153,   105,   155,     0,     0,
-    88,     0,   154,     0,   153,   109,   154,     0,   166,   200,
-     0,   166,   161,   200,   152,     0,   166,   166,   200,   152,
-     0,     0,   156,     0,     0,    95,    82,   104,   157,   158,
-   105,     0,   159,     0,   158,   159,     0,     4,     0,   166,
-     0,   102,     0,   102,   111,   171,     0,   102,   111,   207,
-     0,   162,   180,     0,   175,     0,   176,     0,    27,   104,
+     3,   208,    87,     0,   210,     3,   161,     0,   210,     3,
+   151,     0,   210,   104,   143,   105,     3,   161,     0,   144,
+     0,   143,   109,   144,     0,   210,     0,   210,   110,   212,
+     0,   173,   110,   212,     0,   146,     0,   145,   109,   146,
+     0,   161,     0,   212,     0,   148,     0,   147,   109,   148,
+     0,   212,   161,   200,     0,    30,    68,   161,     0,   160,
+     0,   150,     0,   149,   109,   150,     0,   212,   161,     0,
+   160,     0,    28,   104,   153,   105,   155,     0,     0,    88,
+     0,   154,     0,   153,   109,   154,     0,   166,   200,     0,
+   166,   161,   200,   152,     0,   166,   166,   200,   152,     0,
+     0,   156,     0,     0,    95,    82,   104,   157,   158,   105,
+     0,   159,     0,   158,   159,     0,     4,     0,   166,     0,
+   102,     0,   102,   111,   171,     0,   102,   111,   207,     0,
+   208,   162,   180,     0,   175,     0,   176,     0,    27,   104,
    149,   105,     0,    78,   104,   147,   105,     0,    79,   104,
    147,   105,     0,    78,   180,    68,   162,     0,    79,   180,
     68,   162,     0,    18,     0,    18,    35,    25,   212,     0,
@@ -351,40 +351,39 @@
      0,   212,     0,   212,   106,   207,   107,     0,   212,   106,
    171,   107,     0,   207,     0,   102,     0,     9,     0,    10,
      0,     0,   209,     0,   103,     0,   103,    52,     0,   103,
-    41,     0,    11,     0,    12,     0,    12,     0,     8,     0,
-   212,     0,   212,   209,     0
+    41,     0,    11,     0,    12,     0,    12,     0,     8,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   300,   306,   312,   328,   353,   355,   358,   362,   367,   374,
-   382,   387,   391,   400,   402,   410,   414,   422,   426,   429,
-   432,   436,   456,   458,   466,   470,   502,   506,   515,   522,
-   535,   542,   544,   556,   569,   576,   581,   587,   593,   602,
-   608,   614,   621,   629,   633,   636,   643,   649,   655,   662,
-   671,   681,   689,   697,   699,   709,   712,   716,   719,   731,
-   743,   750,   766,   775,   785,   795,   800,   807,   817,   823,
-   829,   833,   845,   851,   857,   865,   872,   877,   883,   889,
-   896,   901,   911,   913,   916,   924,   930,   939,   945,   962,
-   964,   969,   973,   978,   983,   989,   993,  1004,  1013,  1022,
-  1033,  1054,  1058,  1064,  1070,  1076,  1082,  1090,  1098,  1104,
-  1118,  1142,  1149,  1163,  1172,  1182,  1192,  1200,  1221,  1230,
-  1239,  1240,  1242,  1249,  1261,  1271,  1273,  1278,  1282,  1286,
-  1290,  1293,  1298,  1310,  1326,  1337,  1351,  1353,  1354,  1355,
-  1356,  1357,  1358,  1359,  1360,  1361,  1362,  1363,  1369,  1371,
-  1372,  1375,  1382,  1394,  1396,  1400,  1404,  1405,  1406,  1407,
-  1408,  1412,  1413,  1414,  1415,  1419,  1420,  1427,  1427,  1428,
-  1428,  1429,  1431,  1433,  1438,  1442,  1451,  1455,  1460,  1464,
-  1470,  1480,  1484,  1487,  1490,  1495,  1504,  1512,  1518,  1525,
-  1533,  1541,  1550,  1553,  1558,  1560,  1561,  1562,  1565,  1569,
-  1574,  1578,  1589,  1594,  1599,  1606,  1612,  1616,  1621,  1627,
-  1639,  1641,  1644,  1648,  1651,  1656,  1660,  1668,  1683,  1689,
-  1696,  1709,  1721,  1736,  1740,  1757,  1759,  1762,  1766,  1772,
-  1775,  1777,  1777,  1797,  1802,  1807,  1813,  1819,  1827,  1835,
-  1843,  1850,  1860,  1865,  1895,  1897,  1900,  1905,  1909,  1915,
-  1920,  1927,  1934,  1941,  1946
+   299,   305,   311,   327,   352,   354,   357,   361,   366,   373,
+   381,   386,   390,   399,   401,   409,   413,   421,   425,   428,
+   431,   435,   455,   457,   465,   469,   501,   505,   514,   521,
+   534,   541,   543,   555,   568,   575,   580,   586,   592,   601,
+   607,   613,   620,   628,   632,   635,   642,   648,   654,   661,
+   670,   680,   688,   696,   698,   708,   711,   715,   718,   730,
+   742,   748,   764,   773,   783,   793,   798,   805,   815,   821,
+   827,   831,   843,   849,   855,   862,   869,   874,   880,   886,
+   892,   897,   907,   909,   912,   920,   926,   935,   941,   958,
+   960,   965,   969,   974,   979,   985,   989,  1000,  1009,  1018,
+  1029,  1051,  1055,  1061,  1067,  1073,  1079,  1087,  1095,  1101,
+  1115,  1139,  1146,  1160,  1169,  1179,  1189,  1197,  1218,  1227,
+  1236,  1237,  1239,  1246,  1258,  1268,  1270,  1275,  1279,  1283,
+  1287,  1290,  1295,  1307,  1323,  1334,  1348,  1350,  1351,  1352,
+  1353,  1354,  1355,  1356,  1357,  1358,  1359,  1360,  1366,  1368,
+  1369,  1372,  1379,  1391,  1393,  1397,  1401,  1402,  1403,  1404,
+  1405,  1409,  1410,  1411,  1412,  1416,  1417,  1424,  1424,  1425,
+  1425,  1426,  1428,  1430,  1435,  1439,  1448,  1452,  1457,  1461,
+  1467,  1477,  1481,  1484,  1487,  1492,  1501,  1509,  1515,  1522,
+  1530,  1538,  1547,  1550,  1555,  1557,  1558,  1559,  1562,  1566,
+  1571,  1575,  1586,  1591,  1596,  1603,  1609,  1613,  1618,  1624,
+  1636,  1638,  1641,  1645,  1648,  1653,  1657,  1665,  1680,  1686,
+  1693,  1706,  1718,  1733,  1737,  1754,  1756,  1759,  1763,  1769,
+  1772,  1774,  1774,  1794,  1799,  1804,  1810,  1816,  1824,  1832,
+  1840,  1847,  1857,  1862,  1892,  1894,  1897,  1902,  1906,  1912,
+  1917,  1924,  1931
 };
 #endif
 
@@ -432,7 +431,7 @@
 "SimpleTableConstraint","ComponentRelationConstraint","AtNotationList","AtNotationElement",
 "ComponentIdList","optMarker","Marker","DefaultValue","@4","UniverationDefinition",
 "UniverationList","UniverationElement","SignedNumber","optTag","Tag","TypeRefName",
-"ObjectClassReference","Identifier","TaggedIdentifier", NULL
+"ObjectClassReference","Identifier", NULL
 };
 #endif
 
@@ -462,7 +461,7 @@
    197,   198,   198,   199,   199,   200,   200,   201,   201,   202,
    202,   203,   202,   204,   204,   205,   205,   206,   206,   206,
    206,   206,   207,   207,   208,   208,   209,   209,   209,   210,
-   210,   211,   212,   213,   213
+   210,   211,   212
 };
 
 static const short yyr2[] = {     0,
@@ -472,11 +471,11 @@
      1,     0,     3,     1,     3,     2,     1,     2,     4,     1,
      3,     1,     1,     3,     3,     2,     1,     3,     1,     1,
      6,     1,     1,     0,     1,     1,     3,     1,     1,     4,
-     4,     3,     6,     1,     3,     1,     3,     3,     1,     3,
+     3,     3,     6,     1,     3,     1,     3,     3,     1,     3,
      1,     1,     1,     3,     3,     3,     1,     1,     3,     2,
      1,     5,     0,     1,     1,     3,     2,     4,     4,     0,
      1,     0,     6,     1,     2,     1,     1,     1,     3,     3,
-     2,     1,     1,     4,     4,     4,     4,     4,     1,     4,
+     3,     1,     1,     4,     4,     4,     4,     4,     1,     4,
      4,     1,     3,     1,     3,     3,     1,     3,     1,     3,
      1,     1,     1,     1,     4,     0,     3,     1,     1,     1,
      1,     1,     1,     3,     1,     2,     1,     1,     1,     1,
@@ -491,7 +490,7 @@
      3,     2,     3,     1,     3,     0,     1,     1,     2,     1,
      1,     0,     3,     2,     3,     1,     3,     1,     4,     4,
      1,     1,     1,     1,     0,     1,     1,     2,     2,     1,
-     1,     1,     1,     1,     2
+     1,     1,     1
 };
 
 static const short yydefact[] = {     0,
@@ -506,286 +505,242 @@
     26,   245,   114,   252,     0,   137,     0,     0,   150,   144,
    148,   149,   138,     0,     0,   139,   143,   147,     0,     0,
     52,    53,   140,   117,     0,    33,    45,    44,     0,    35,
-    38,     0,     0,     0,   247,    62,     0,   246,     0,   151,
-   146,   145,   142,   141,     0,    64,     0,    66,     0,     0,
-     0,    48,     5,    41,     0,   249,   248,   114,   252,   109,
-     0,     0,   173,   173,    60,    61,   173,   112,   152,   140,
+    38,     0,     0,     0,   247,    62,    61,     0,   246,     0,
+   151,   146,   145,   142,   141,     0,    64,     0,    66,     0,
+     0,     0,    48,     5,    41,     0,   249,   248,   114,   252,
+   109,     0,     0,   173,   173,    60,   173,   112,   152,   140,
    102,   103,     0,   115,   116,     0,     0,     0,     0,    54,
    123,   124,   118,   119,   121,   128,   130,   129,   243,   244,
-   126,   125,   132,   131,     0,   133,    39,     0,    85,   226,
+   126,   125,   132,   131,     0,   133,    39,     0,    85,   245,
    122,     0,     0,     0,     0,     0,     0,     0,   174,   175,
-     0,     0,   101,     0,   153,     0,     0,    65,    68,    67,
+     0,     0,   101,     0,   153,   245,   245,    65,    68,    67,
    203,   204,   200,     0,   199,   205,     0,    58,     0,     0,
      0,    55,    56,    59,   182,     0,   188,   194,   193,   216,
    217,   201,   202,     0,     0,     0,    90,     0,     0,   228,
-   226,   226,    87,   227,     0,    98,     0,    78,    81,   254,
-     0,   113,     0,     0,     0,    73,    77,     0,     0,   179,
+   226,   226,    87,   227,     0,     0,    98,     0,    78,    81,
+   245,   113,     0,     0,     0,    73,    77,   245,     0,   179,
      0,     0,     0,     0,   242,   234,     0,   236,   241,   238,
      0,    69,    71,    72,    63,   195,     0,     0,     0,     0,
      0,    51,     0,   170,   171,   168,   169,     0,     0,   172,
      0,     0,     0,     0,   120,   135,   127,   134,     0,    82,
     91,    86,   232,   231,   230,   229,    83,    83,   110,     0,
-   104,     0,   255,    80,     0,     0,   105,     0,   226,   177,
-     0,   107,     0,   106,   108,   235,     0,     0,   111,     0,
-   196,   197,   192,   190,     0,   218,   187,    57,   183,   184,
-   185,     0,   191,   189,     0,     0,   220,   136,     0,     0,
-    84,    88,    89,    99,   100,    79,   176,    76,    74,    75,
-   180,   178,   237,     0,     0,    70,   198,   209,     0,   207,
-   173,   186,     0,   222,   224,   219,     0,    92,   233,     0,
-   240,   239,   206,     0,   211,   223,     0,   221,     0,   181,
-   208,   214,   215,   213,   210,   212,   225,    96,     0,    94,
-    97,    93,    95,     0,     0,     0
+   104,     0,    80,     0,   245,   105,     0,   226,   177,     0,
+   107,     0,   106,   108,   235,     0,     0,   111,   245,   196,
+   197,   192,   190,     0,   218,   187,    57,   183,   184,   185,
+     0,   191,   189,     0,     0,   220,   136,     0,     0,    84,
+    88,    89,    99,   100,    79,   176,    76,    74,    75,   180,
+   178,   237,     0,     0,    70,   198,   209,     0,   207,   173,
+   186,     0,   222,   224,   219,     0,    92,   233,     0,   240,
+   239,   206,     0,   211,   223,     0,   221,     0,   181,   208,
+   214,   215,   213,   210,   212,   225,    96,     0,    94,    97,
+    93,    95,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   394,
+static const short yydefgoto[] = {   393,
      3,     4,     8,     9,    13,    14,    25,    26,    27,    55,
     56,    57,   106,    58,    74,    75,    76,    77,    59,    69,
-    70,    60,   100,   211,   212,   213,    61,   125,   126,   261,
-   262,   245,   246,   237,   238,   116,   342,   178,   179,   290,
-   291,   379,   389,   390,   247,   263,   147,   148,   163,   164,
-   180,   181,    62,   172,   225,   173,   287,   149,   150,   151,
+    70,    60,   100,   211,   212,   213,    61,   126,   127,   261,
+   262,   245,   246,   238,   239,   116,   341,   178,   179,   290,
+   291,   378,   388,   389,   247,   263,   147,   148,   163,   164,
+   180,   181,    62,   172,   225,   173,   287,   149,   103,   151,
    152,   278,   279,   281,   188,   189,   190,   249,   250,   215,
-   268,   216,   217,   218,   359,   360,   385,   386,   219,   220,
-   221,   336,   337,   364,   233,   234,   296,   340,   195,   257,
-   258,   222,   117,   118,   153,   104,   223,   248
+   268,   216,   217,   218,   358,   359,   384,   385,   219,   220,
+   221,   335,   336,   363,   233,   234,   296,   339,   195,   257,
+   258,   222,   235,   119,   153,   104,   223
 };
 
-static const short yypact[] = {    86,
--32768,-32768,    86,-32768,   -66,-32768,    12,    95,-32768,-32768,
--32768,-32768,    14,-32768,     4,   217,-32768,-32768,   118,    97,
-    56,    82,   121,   104,   195,   217,-32768,   115,-32768,-32768,
--32768,-32768,-32768,   179,-32768,-32768,   446,-32768,   213,    23,
--32768,-32768,-32768,    96,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   191,   446,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   212,   744,-32768,   133,-32768,   124,-32768,
--32768,-32768,-32768,    45,-32768,   -19,-32768,-32768,-32768,-32768,
--32768,    20,   135,-32768,   164,-32768,   176,   197,-32768,-32768,
--32768,-32768,-32768,   225,   199,-32768,-32768,-32768,   761,   275,
--32768,-32768,-32768,   171,   282,-32768,-32768,-32768,   159,-32768,
--32768,    86,   159,   182,    32,-32768,   607,-32768,   159,-32768,
--32768,-32768,-32768,-32768,   -30,-32768,   177,   184,   188,   236,
-    54,-32768,   -66,-32768,   236,-32768,-32768,    61,   192,   262,
-   194,   231,    76,    77,-32768,-32768,   -11,-32768,-32768,   196,
--32768,-32768,   200,-32768,-32768,   302,   761,   299,   299,   140,
--32768,-32768,   202,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   203,-32768,-32768,   -24,-32768,   530,
--32768,   283,    28,   255,   206,    24,   245,   241,-32768,   211,
-    24,   251,-32768,    42,-32768,   385,   684,-32768,-32768,-32768,
--32768,-32768,-32768,   -31,-32768,-32768,   291,-32768,    86,   245,
-   218,   215,-32768,   174,   226,   220,   -31,-32768,-32768,   223,
--32768,-32768,-32768,   236,   325,   299,   240,   236,   324,-32768,
-    92,    92,-32768,-32768,   299,   227,    -9,-32768,-32768,   233,
-   684,-32768,   245,   269,    63,-32768,-32768,   684,   232,    93,
-   684,   245,   100,   684,-32768,-32768,   103,-32768,-32768,   235,
-   112,-32768,-32768,-32768,-32768,   229,   242,    83,   243,   239,
-   238,-32768,   140,-32768,-32768,-32768,-32768,   245,   245,-32768,
-   245,   245,   154,   244,-32768,-32768,   348,-32768,   271,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   266,   266,-32768,   253,
--32768,    28,-32768,-32768,   248,   684,-32768,    24,    92,-32768,
-   257,-32768,   250,-32768,-32768,-32768,    16,   253,-32768,   385,
--32768,   249,-32768,-32768,    35,-32768,-32768,-32768,-32768,-32768,
--32768,   254,-32768,-32768,    10,   122,-32768,-32768,   259,   325,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   256,-32768,-32768,   265,   267,-32768,-32768,-32768,   134,-32768,
-   -11,-32768,   299,   261,-32768,-32768,   244,-32768,   348,   245,
--32768,-32768,-32768,    35,    72,   261,   299,-32768,   190,   174,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    15,-32768,
--32768,-32768,-32768,   366,   375,-32768
+static const short yypact[] = {    29,
+-32768,-32768,    29,-32768,   -79,-32768,    18,    22,-32768,-32768,
+-32768,-32768,    42,-32768,    34,   236,-32768,-32768,    99,    71,
+   115,   118,   102,   121,   190,   236,-32768,   105,-32768,-32768,
+-32768,-32768,-32768,   224,-32768,-32768,   329,-32768,   235,    11,
+-32768,-32768,-32768,   192,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   227,   329,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,    33,   238,-32768,   173,-32768,    54,-32768,
+-32768,-32768,-32768,    23,-32768,   -17,-32768,-32768,-32768,-32768,
+-32768,   -10,   174,-32768,   210,-32768,   211,   223,-32768,-32768,
+-32768,-32768,-32768,   247,   216,-32768,-32768,-32768,   543,   296,
+-32768,-32768,-32768,   199,   310,-32768,-32768,-32768,   246,-32768,
+-32768,    29,   246,   212,   176,-32768,-32768,   406,-32768,   246,
+-32768,-32768,-32768,-32768,-32768,   109,-32768,   208,   213,   217,
+   155,    78,-32768,   -79,-32768,   155,-32768,-32768,    -9,   221,
+   291,   231,   260,   103,   128,-32768,   117,-32768,-32768,   232,
+-32768,-32768,   240,-32768,-32768,   336,   543,   342,   342,   135,
+-32768,-32768,   241,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   242,-32768,-32768,   150,-32768,    61,
+-32768,   326,    16,   278,   251,    40,   140,   292,-32768,   253,
+    40,   294,-32768,    52,-32768,    24,   261,-32768,-32768,-32768,
+-32768,-32768,-32768,    25,-32768,-32768,   338,-32768,    29,   140,
+   265,   263,-32768,   233,   277,   270,    25,-32768,-32768,   276,
+-32768,-32768,-32768,   155,   377,   342,   287,   155,   298,-32768,
+    35,    35,-32768,-32768,   483,   342,   274,   156,-32768,-32768,
+   261,-32768,   140,   318,   158,-32768,-32768,   261,   280,   249,
+   483,   140,   164,   483,-32768,-32768,   166,-32768,-32768,   284,
+   167,-32768,-32768,-32768,-32768,   279,   290,   165,   297,   289,
+   299,-32768,   135,-32768,-32768,-32768,-32768,   140,   140,-32768,
+   140,   140,   182,   293,-32768,-32768,   400,-32768,   323,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   320,   320,-32768,   388,
+-32768,    16,-32768,   302,   261,-32768,    40,    35,-32768,   308,
+-32768,   304,-32768,-32768,-32768,    56,   388,-32768,    24,-32768,
+   300,-32768,-32768,    30,-32768,-32768,-32768,-32768,-32768,-32768,
+   309,-32768,-32768,     9,   175,-32768,-32768,   311,   377,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   316,
+-32768,-32768,   313,   319,-32768,-32768,-32768,   178,-32768,   117,
+-32768,   342,   315,-32768,-32768,   293,-32768,   400,   140,-32768,
+-32768,-32768,    30,    92,   315,   342,-32768,   239,   233,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,     7,-32768,-32768,
+-32768,-32768,   431,   434,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,   373,   246,-32768,-32768,   364,-32768,-32768,   352,-32768,
--32768,   327,-32768,-32768,-32768,   306,-32768,   268,-32768,-32768,
-   276,-32768,   319,-32768,-32768,   113,-32768,-32768,   237,-32768,
-    68,   201,    87,-32768,    88,-32768,   101,-32768,   170,-32768,
--32768,-32768,-32768,    13,  -167,  -109,   -44,   -50,-32768,   180,
-  -173,   -86,-32768,-32768,-32768,  -232,    65,   -54,   -52,-32768,
-    43,-32768,-32768,-32768,  -143,-32768,-32768,  -169,  -157,     3,
-   189,-32768,  -174,-32768,-32768,    39,-32768,-32768,-32768,-32768,
--32768,-32768,    47,    53,  -154,-32768,-32768,-32768,-32768,-32768,
-   102,  -122,-32768,   178,     2,-32768,    -7,  -166
+-32768,   432,   303,-32768,-32768,   423,-32768,-32768,   412,-32768,
+-32768,   383,-32768,-32768,-32768,   366,-32768,   328,-32768,-32768,
+   334,-32768,   379,-32768,-32768,   172,-32768,-32768,   295,-32768,
+   129,   256,   142,-32768,   149,-32768,   159,-32768,   230,-32768,
+-32768,-32768,-32768,    72,  -169,   -81,   -18,   -49,-32768,   237,
+  -172,   -68,-32768,-32768,-32768,  -246,   120,   -52,  -115,-32768,
+   116,-32768,-32768,-32768,  -138,-32768,-32768,   -12,  -156,  -200,
+   250,-32768,  -186,-32768,-32768,    90,-32768,-32768,-32768,-32768,
+-32768,-32768,   100,   106,  -179,-32768,-32768,-32768,-32768,-32768,
+   160,  -122,   392,-32768,     2,-32768,    -7
 };
 
 
-#define	YYLAST		852
+#define	YYLAST		634
 
 
 static const short yytable[] = {    15,
-   192,     5,   214,   193,     5,    15,   232,   146,   174,   102,
-   102,   103,   103,   101,   101,   239,   241,    10,   388,    10,
-    11,    10,    11,    10,   169,   170,   112,   161,   162,    65,
-    10,    10,    72,     1,     2,    10,    79,     7,    64,    67,
-   271,    71,    10,   165,   127,    78,   103,   114,    65,    10,
-   169,   170,    10,   244,   295,     1,     2,    64,   166,   167,
-   168,    10,   169,   170,     1,     2,    79,   344,   185,   266,
-   231,   259,   136,   305,   156,    78,   297,   298,   157,    63,
-   227,   267,   313,   137,   228,   354,   382,   265,   201,   113,
-    10,   169,   170,   324,   187,   301,     1,     2,    63,   302,
-   128,    72,   127,    10,   103,    79,     1,     2,   334,    19,
-    71,   155,   332,   133,    78,   214,    12,   255,    17,   392,
-   154,   363,   115,   176,   229,   236,    28,   202,    16,   236,
-    68,   304,   175,   242,   239,   241,   358,   165,   309,    30,
-   383,    73,   323,   255,   384,   201,   256,    10,   169,   170,
-   199,   200,   110,    29,   350,   185,   185,   171,   128,   201,
-   230,    10,   169,   170,  -250,    31,    10,   307,   206,     1,
-     2,   308,   119,    32,   294,   240,   103,   345,   240,   186,
-   191,   187,   187,   240,   202,   203,   260,    33,   264,   274,
-   275,   276,   277,   388,   259,   355,   348,    34,   202,    37,
-   204,   311,   161,   162,   314,   391,   312,   316,   308,   315,
-   270,   317,   380,   333,    82,   391,   319,   375,   288,   205,
-   320,    36,    83,    84,    66,   206,   366,   299,    20,    80,
-   367,   108,   109,    85,   207,    86,    21,    87,   373,   206,
-   107,   208,   374,   209,   120,   210,   119,    88,   161,   162,
-   201,    89,    10,   169,   170,    90,   121,    22,    91,    23,
-    10,   169,   170,     1,     2,    83,    84,   122,    24,    92,
-   274,   275,   276,   277,    93,   123,    94,   129,    95,   124,
-   329,   330,   130,   331,   131,   135,   158,    96,    97,   202,
-   203,   160,   176,   159,   240,  -251,   182,   183,   184,   194,
-   240,   175,    98,   196,   197,   204,    10,   235,   251,   260,
-   176,   243,   264,   224,   226,    99,   252,   361,   254,   175,
-   269,   280,   272,   273,   205,   282,   284,   365,   286,   201,
-   206,    10,   169,   170,   289,   115,   306,   300,   310,   207,
-   318,   321,   322,   326,   327,    85,   325,    86,   209,    87,
-   210,   338,   339,   341,   347,   365,   352,   335,   351,    88,
-   362,   357,   368,    89,   370,   395,   361,    90,   202,   387,
-    91,   371,   377,   372,   396,     6,    18,    35,   177,   111,
-   134,    92,    81,   105,   132,   328,    93,   356,    94,   346,
-    95,   253,    10,   198,   349,   138,   139,   292,   343,    96,
-    97,   393,   140,   285,   369,   283,    85,    38,    86,   206,
-    87,   141,   381,   378,    98,   376,     0,   303,   353,     0,
-    88,     0,     0,     0,    89,     0,     0,   293,    90,     0,
-     0,    91,    41,    42,    43,     0,     0,     0,     0,     0,
-   142,     0,    92,    45,     0,     0,     0,    93,    46,    94,
-    47,    95,     0,    10,     0,     0,     1,     2,    48,     0,
-    96,    97,   143,   144,     0,     0,     0,    49,    38,    50,
-     0,     0,     0,     0,    51,    98,    52,    53,    54,     0,
-     0,     0,     0,    39,     0,     0,     0,    40,     0,     0,
-     0,     0,     0,    41,    42,    43,     0,     0,     0,    44,
-     0,     0,     0,     0,    45,     0,     0,     0,     0,    46,
-     0,    47,     0,     0,     0,     0,     0,     0,     0,    48,
-     0,     0,     0,     0,     0,     0,     0,     0,    49,     0,
-    50,     0,     0,     0,     0,    51,     0,    52,    53,    54,
-   138,   139,   161,   162,     0,     0,     0,   140,     0,     0,
-     0,    85,    38,    86,     0,    87,   141,     0,     0,     0,
-     0,     0,   229,     0,     0,    88,     0,     0,     0,    89,
-     0,     0,     0,    90,     0,     0,    91,    41,    42,    43,
-     0,     0,     0,     0,     0,   142,     0,    92,    45,     0,
-     0,     0,    93,    46,    94,    47,    95,     0,   230,     0,
-     0,     0,     0,    48,     0,    96,    97,   143,   144,     0,
-     0,     0,    49,     0,    50,     0,     0,   138,   139,    51,
-    98,    52,    53,    54,   140,     0,     0,     0,    85,    38,
-    86,     0,    87,   141,     0,     0,     0,     0,     0,     0,
-     0,     0,    88,     0,     0,     0,    89,     0,     0,     0,
-    90,     0,     0,    91,    41,    42,    43,     0,     0,     0,
-     0,     0,   142,     0,    92,    45,     0,     0,     0,    93,
-    46,    94,    47,    95,     0,     0,     0,     0,     0,     0,
-    48,     0,    96,    97,   143,   144,     0,     0,     0,    49,
-     0,    50,     0,   145,   138,   139,    51,    98,    52,    53,
-    54,   140,     0,     0,     0,    85,    38,    86,     0,    87,
-   141,     0,     0,     0,     0,     0,     0,     0,     0,    88,
-     0,     0,     0,    89,     0,     0,     0,    90,     0,     0,
-    91,    41,    42,    43,     0,     0,     0,     0,     0,   142,
-     0,    92,    45,     0,     0,     0,    93,    46,    94,    47,
-    95,     0,     0,     0,    83,    84,     0,    48,     0,    96,
-    97,   143,   144,     0,     0,    85,    49,    86,    50,    87,
-     0,     1,     2,    51,    98,    52,    53,    54,     0,    88,
-     0,     0,    85,    89,    86,     0,    87,    90,     0,     0,
-    91,     0,     0,     0,     0,     0,    88,     0,     0,     0,
-    89,    92,     0,     0,    90,     0,    93,    91,    94,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    92,    96,
-    97,     0,     0,    93,     0,    94,     0,    95,     0,     0,
-     0,     0,     0,     0,    98,     0,    96,    97,     0,     0,
+   117,     5,   150,   214,     5,    15,   192,   232,   193,   174,
+   387,   102,   102,   240,   101,   101,    10,   114,    10,   161,
+   162,     1,     2,    10,     7,    10,    11,    67,   112,    65,
+    10,    10,    72,     1,     2,    82,    79,    10,    64,     1,
+     2,    71,   295,    83,    84,    78,   128,    10,    65,    10,
+    11,   297,   298,   343,    85,    16,    86,    64,    87,    10,
+   169,   170,   165,    10,   169,   170,    79,   229,    88,   244,
+   353,   259,    89,   161,   162,    78,    90,   328,   329,    91,
+   330,   323,   166,   167,   168,    10,   169,   170,     1,     2,
+    92,   113,   115,   229,  -250,    93,   333,    94,   231,    95,
+   129,    72,   120,   230,   128,    79,   381,    28,    96,    97,
+    71,   391,   155,   134,    78,   265,   214,   237,    68,   150,
+   362,   154,    12,    98,   176,   266,   115,    29,   349,   230,
+   110,   357,   240,   175,   242,   150,    99,   267,   150,    19,
+   201,   237,    10,   169,   170,   201,    17,    10,   169,   170,
+   199,   200,    63,   255,    32,   165,   256,   255,   129,   303,
+   382,   108,   109,   115,   383,  -226,   308,   161,   162,  -226,
+   201,    63,    10,   169,   170,   241,   294,   344,   248,   202,
+   203,   171,   185,   248,   202,   203,   260,   201,   264,    10,
+   169,   170,    34,   259,   354,   204,   185,   271,    30,    10,
+   204,    31,     1,     2,    33,   390,   186,   185,   187,   202,
+   270,    36,   379,   156,   205,   390,   137,   157,   288,   205,
+   206,   374,   187,   347,   322,   206,   202,   138,   299,   207,
+   304,   191,   311,   187,   207,   314,   208,    73,   209,   312,
+   210,   332,   387,   209,    37,   210,    66,    20,    83,    84,
+   206,   161,   162,    10,   227,    21,     1,     2,   228,    85,
+   301,    86,   306,    87,   302,    80,   307,   206,   313,   331,
+   315,   318,   307,    88,   316,   319,    22,    89,    23,   365,
+   107,    90,   372,   366,    91,   120,   373,    24,    83,    84,
+   121,   122,   176,   123,   241,    92,   125,   124,   130,   248,
+    93,   175,    94,   201,    95,    10,   169,   170,   260,   176,
+   131,   264,   132,    96,    97,   136,   360,   158,   175,    85,
+   160,    86,   159,    87,  -251,   182,   364,   184,    98,   274,
+   275,   276,   277,    88,   183,   194,    10,    89,   197,     1,
+     2,    90,   202,   196,    91,   274,   275,   276,   277,    10,
+   236,    38,   224,   226,   364,    92,   243,   310,   252,   251,
+    93,   254,    94,   115,    95,   360,    39,   269,   386,   272,
+    40,   273,   280,    96,    97,   282,    41,    42,    43,   284,
+   286,   289,    44,   206,   300,   305,   309,    45,    98,   317,
+   321,   320,    46,   325,    47,    10,   169,   170,     1,     2,
+   324,   293,    48,   337,   338,   326,   334,   340,   346,   350,
+   351,    49,   356,    50,   367,   361,   139,   140,    51,   370,
+    52,    53,    54,   141,   369,   371,   376,    85,    38,    86,
+   394,    87,   142,   395,     6,    18,   177,    35,    81,   111,
+   135,    88,   133,   105,   327,    89,   253,   355,   348,    90,
+   345,   198,    91,    41,    42,    43,   342,   292,   368,   392,
+   285,   143,   380,    92,    45,   377,   283,   375,    93,    46,
+    94,    47,    95,   118,     0,   352,     0,     0,     0,    48,
+     0,    96,    97,   144,   145,     0,     0,     0,    49,     0,
+    50,     0,   146,   139,   140,    51,    98,    52,    53,    54,
+   141,     0,     0,     0,    85,    38,    86,     0,    87,   142,
+     0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
+     0,     0,    89,     0,     0,     0,    90,     0,     0,    91,
+    41,    42,    43,     0,     0,     0,     0,     0,   143,     0,
+    92,    45,     0,     0,     0,    93,    46,    94,    47,    95,
+     0,     0,     0,     1,     2,     0,    48,     0,    96,    97,
+   144,   145,     0,     0,    85,    49,    86,    50,    87,     0,
+     0,     0,    51,    98,    52,    53,    54,     0,    88,     0,
+     0,     0,    89,     0,     0,     0,    90,     0,     0,    91,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    98
+    92,     0,     0,     0,     0,    93,     0,    94,     0,    95,
+     0,     0,     0,     0,     0,     0,     0,     0,    96,    97,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    98
 };
 
 static const short yycheck[] = {     7,
-   144,     0,   160,   147,     3,    13,   180,   117,   131,    64,
-    65,    64,    65,    64,    65,   183,   183,     8,     4,     8,
-     9,     8,     9,     8,     9,    10,    46,    13,    14,    37,
-     8,     8,    40,    11,    12,     8,    44,   104,    37,    17,
-   210,    40,     8,   130,    99,    44,    99,    28,    56,     8,
-     9,    10,     8,    30,   229,    11,    12,    56,     5,     6,
-     7,     8,     9,    10,    11,    12,    74,   300,    80,   101,
-   180,   194,    41,   243,   105,    74,   231,   232,   109,    37,
-   105,   113,   252,    52,   109,   318,    15,   197,     6,   109,
-     8,     9,    10,   268,   106,   105,    11,    12,    56,   109,
-    99,   109,   157,     8,   157,   113,    11,    12,   283,   106,
-   109,   119,   282,   112,   113,   273,   105,   102,   105,   105,
-   119,   112,   103,   131,    33,   102,     9,    45,    34,   102,
-   108,   241,   131,   184,   302,   302,   102,   224,   248,    84,
-    69,    46,    60,   102,    73,     6,   105,     8,     9,    10,
-   158,   159,   108,    57,   309,    80,    80,   104,   157,     6,
-    69,     8,     9,    10,   104,    84,     8,   105,    86,    11,
-    12,   109,   112,    53,   229,   183,   229,   300,   186,   104,
-   104,   106,   106,   191,    45,    46,   194,    84,   196,    97,
-    98,    99,   100,     4,   317,   318,   306,     3,    45,    21,
-    61,   109,    13,    14,   105,   379,   251,   105,   109,   254,
-   209,   109,   370,    60,     3,   389,   105,   361,   226,    80,
-   109,   107,    11,    12,    12,    86,   105,   235,    12,    39,
-   109,   108,   109,    22,    95,    24,    20,    26,   105,    86,
-   108,   102,   109,   104,    81,   106,   112,    36,    13,    14,
-     6,    40,     8,     9,    10,    44,    81,    41,    47,    43,
-     8,     9,    10,    11,    12,    11,    12,    71,    52,    58,
-    97,    98,    99,   100,    63,    51,    65,     3,    67,    81,
-   278,   279,   112,   281,     3,   104,   110,    76,    77,    45,
-    46,   104,   300,   110,   302,   104,    35,   104,    68,   104,
-   308,   300,    91,   104,     3,    61,     8,    25,    68,   317,
-   318,   106,   320,   112,   112,   104,   106,   325,    68,   318,
-    30,    96,   105,   109,    80,   106,   104,   335,     4,     6,
-    86,     8,     9,    10,    95,   103,    68,   111,   107,    95,
-   106,   113,   101,   105,   107,    22,   104,    24,   104,    26,
-   106,     4,    82,    88,   107,   363,   107,   114,   102,    36,
-   107,   113,   104,    40,   109,     0,   374,    44,    45,   377,
-    47,   107,   112,   107,     0,     3,    13,    26,   133,    74,
-   113,    58,    56,    65,   109,   273,    63,   320,    65,   302,
-    67,   191,     8,   157,   308,    11,    12,   228,   298,    76,
-    77,   389,    18,   224,   340,   217,    22,    23,    24,    86,
-    26,    27,   374,   367,    91,   363,    -1,   240,   317,    -1,
-    36,    -1,    -1,    -1,    40,    -1,    -1,   104,    44,    -1,
-    -1,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
-    56,    -1,    58,    59,    -1,    -1,    -1,    63,    64,    65,
-    66,    67,    -1,     8,    -1,    -1,    11,    12,    74,    -1,
-    76,    77,    78,    79,    -1,    -1,    -1,    83,    23,    85,
-    -1,    -1,    -1,    -1,    90,    91,    92,    93,    94,    -1,
-    -1,    -1,    -1,    38,    -1,    -1,    -1,    42,    -1,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    64,
-    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,
-    85,    -1,    -1,    -1,    -1,    90,    -1,    92,    93,    94,
-    11,    12,    13,    14,    -1,    -1,    -1,    18,    -1,    -1,
-    -1,    22,    23,    24,    -1,    26,    27,    -1,    -1,    -1,
-    -1,    -1,    33,    -1,    -1,    36,    -1,    -1,    -1,    40,
-    -1,    -1,    -1,    44,    -1,    -1,    47,    48,    49,    50,
-    -1,    -1,    -1,    -1,    -1,    56,    -1,    58,    59,    -1,
-    -1,    -1,    63,    64,    65,    66,    67,    -1,    69,    -1,
-    -1,    -1,    -1,    74,    -1,    76,    77,    78,    79,    -1,
-    -1,    -1,    83,    -1,    85,    -1,    -1,    11,    12,    90,
-    91,    92,    93,    94,    18,    -1,    -1,    -1,    22,    23,
-    24,    -1,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    36,    -1,    -1,    -1,    40,    -1,    -1,    -1,
-    44,    -1,    -1,    47,    48,    49,    50,    -1,    -1,    -1,
-    -1,    -1,    56,    -1,    58,    59,    -1,    -1,    -1,    63,
-    64,    65,    66,    67,    -1,    -1,    -1,    -1,    -1,    -1,
-    74,    -1,    76,    77,    78,    79,    -1,    -1,    -1,    83,
-    -1,    85,    -1,    87,    11,    12,    90,    91,    92,    93,
-    94,    18,    -1,    -1,    -1,    22,    23,    24,    -1,    26,
-    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,
-    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    -1,    -1,
-    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    56,
-    -1,    58,    59,    -1,    -1,    -1,    63,    64,    65,    66,
-    67,    -1,    -1,    -1,    11,    12,    -1,    74,    -1,    76,
-    77,    78,    79,    -1,    -1,    22,    83,    24,    85,    26,
-    -1,    11,    12,    90,    91,    92,    93,    94,    -1,    36,
-    -1,    -1,    22,    40,    24,    -1,    26,    44,    -1,    -1,
-    47,    -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
-    40,    58,    -1,    -1,    44,    -1,    63,    47,    65,    -1,
-    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    76,
-    77,    -1,    -1,    63,    -1,    65,    -1,    67,    -1,    -1,
-    -1,    -1,    -1,    -1,    91,    -1,    76,    77,    -1,    -1,
+    82,     0,   118,   160,     3,    13,   145,   180,   147,   132,
+     4,    64,    65,   183,    64,    65,     8,    28,     8,    13,
+    14,    11,    12,     8,   104,     8,     9,    17,    46,    37,
+     8,     8,    40,    11,    12,     3,    44,     8,    37,    11,
+    12,    40,   229,    11,    12,    44,    99,     8,    56,     8,
+     9,   231,   232,   300,    22,    34,    24,    56,    26,     8,
+     9,    10,   131,     8,     9,    10,    74,    33,    36,    30,
+   317,   194,    40,    13,    14,    74,    44,   278,   279,    47,
+   281,   268,     5,     6,     7,     8,     9,    10,    11,    12,
+    58,   109,   103,    33,   104,    63,   283,    65,   180,    67,
+    99,   109,   112,    69,   157,   113,    15,     9,    76,    77,
+   109,   105,   120,   112,   113,   197,   273,   102,   108,   235,
+   112,   120,   105,    91,   132,   101,   103,    57,   308,    69,
+   108,   102,   302,   132,   184,   251,   104,   113,   254,   106,
+     6,   102,     8,     9,    10,     6,   105,     8,     9,    10,
+   158,   159,    37,   102,    53,   224,   105,   102,   157,   241,
+    69,   108,   109,   103,    73,   105,   248,    13,    14,   109,
+     6,    56,     8,     9,    10,   183,   229,   300,   186,    45,
+    46,   104,    80,   191,    45,    46,   194,     6,   196,     8,
+     9,    10,     3,   316,   317,    61,    80,   210,    84,     8,
+    61,    84,    11,    12,    84,   378,   104,    80,   106,    45,
+   209,   107,   369,   105,    80,   388,    41,   109,   226,    80,
+    86,   360,   106,   305,    60,    86,    45,    52,   236,    95,
+   243,   104,   251,   106,    95,   254,   102,    46,   104,   252,
+   106,    60,     4,   104,    21,   106,    12,    12,    11,    12,
+    86,    13,    14,     8,   105,    20,    11,    12,   109,    22,
+   105,    24,   105,    26,   109,    39,   109,    86,   105,   282,
+   105,   105,   109,    36,   109,   109,    41,    40,    43,   105,
+   108,    44,   105,   109,    47,   112,   109,    52,    11,    12,
+    81,    81,   300,    71,   302,    58,    81,    51,     3,   307,
+    63,   300,    65,     6,    67,     8,     9,    10,   316,   317,
+   112,   319,     3,    76,    77,   104,   324,   110,   317,    22,
+   104,    24,   110,    26,   104,    35,   334,    68,    91,    97,
+    98,    99,   100,    36,   104,   104,     8,    40,     3,    11,
+    12,    44,    45,   104,    47,    97,    98,    99,   100,     8,
+    25,    23,   112,   112,   362,    58,   106,   109,   106,    68,
+    63,    68,    65,   103,    67,   373,    38,    30,   376,   105,
+    42,   109,    96,    76,    77,   106,    48,    49,    50,   104,
+     4,    95,    54,    86,   111,    68,   107,    59,    91,   106,
+   101,   113,    64,   105,    66,     8,     9,    10,    11,    12,
+   104,   104,    74,     4,    82,   107,   114,    88,   107,   102,
+   107,    83,   113,    85,   104,   107,    11,    12,    90,   107,
+    92,    93,    94,    18,   109,   107,   112,    22,    23,    24,
+     0,    26,    27,     0,     3,    13,   134,    26,    56,    74,
+   113,    36,   109,    65,   273,    40,   191,   319,   307,    44,
+   302,   157,    47,    48,    49,    50,   298,   228,   339,   388,
+   224,    56,   373,    58,    59,   366,   217,   362,    63,    64,
+    65,    66,    67,    82,    -1,   316,    -1,    -1,    -1,    74,
+    -1,    76,    77,    78,    79,    -1,    -1,    -1,    83,    -1,
+    85,    -1,    87,    11,    12,    90,    91,    92,    93,    94,
+    18,    -1,    -1,    -1,    22,    23,    24,    -1,    26,    27,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,    -1,
+    -1,    -1,    40,    -1,    -1,    -1,    44,    -1,    -1,    47,
+    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    56,    -1,
+    58,    59,    -1,    -1,    -1,    63,    64,    65,    66,    67,
+    -1,    -1,    -1,    11,    12,    -1,    74,    -1,    76,    77,
+    78,    79,    -1,    -1,    22,    83,    24,    85,    26,    -1,
+    -1,    -1,    90,    91,    92,    93,    94,    -1,    36,    -1,
+    -1,    -1,    40,    -1,    -1,    -1,    44,    -1,    -1,    47,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    91
+    58,    -1,    -1,    -1,    -1,    63,    -1,    65,    -1,    67,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    91
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/share/bison.simple"
@@ -1331,13 +1286,13 @@
   switch (yyn) {
 
 case 1:
-#line 301 "asn1p_y.y"
+#line 300 "asn1p_y.y"
 {
 		*(void **)param = yyvsp[0].a_grammar;
 	;
     break;}
 case 2:
-#line 307 "asn1p_y.y"
+#line 306 "asn1p_y.y"
 {
 		yyval.a_grammar = asn1p_new();
 		checkmem(yyval.a_grammar);
@@ -1345,14 +1300,14 @@
 	;
     break;}
 case 3:
-#line 312 "asn1p_y.y"
+#line 311 "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 333 "asn1p_y.y"
+#line 332 "asn1p_y.y"
 {
 
 		if(yyvsp[-1].a_module) {
@@ -1369,27 +1324,27 @@
 	;
     break;}
 case 5:
-#line 354 "asn1p_y.y"
+#line 353 "asn1p_y.y"
 { yyval.a_oid = 0; ;
     break;}
 case 6:
-#line 355 "asn1p_y.y"
+#line 354 "asn1p_y.y"
 { yyval.a_oid = yyvsp[0].a_oid; ;
     break;}
 case 7:
-#line 359 "asn1p_y.y"
+#line 358 "asn1p_y.y"
 {
 		yyval.a_oid = yyvsp[-1].a_oid;
 	;
     break;}
 case 8:
-#line 362 "asn1p_y.y"
+#line 361 "asn1p_y.y"
 {
 		yyval.a_oid = 0;
 	;
     break;}
 case 9:
-#line 368 "asn1p_y.y"
+#line 367 "asn1p_y.y"
 {
 		yyval.a_oid = asn1p_oid_new();
 		asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc);
@@ -1398,7 +1353,7 @@
 	;
     break;}
 case 10:
-#line 374 "asn1p_y.y"
+#line 373 "asn1p_y.y"
 {
 		yyval.a_oid = yyvsp[-1].a_oid;
 		asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc);
@@ -1407,74 +1362,74 @@
 	;
     break;}
 case 11:
-#line 383 "asn1p_y.y"
+#line 382 "asn1p_y.y"
 {					/* iso */
 		yyval.a_oid_arc.name = yyvsp[0].tv_str;
 		yyval.a_oid_arc.number = -1;
 	;
     break;}
 case 12:
-#line 387 "asn1p_y.y"
+#line 386 "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 391 "asn1p_y.y"
+#line 390 "asn1p_y.y"
 {					/* 1 */
 		yyval.a_oid_arc.name = 0;
 		yyval.a_oid_arc.number = yyvsp[0].a_int;
 	;
     break;}
 case 14:
-#line 401 "asn1p_y.y"
+#line 400 "asn1p_y.y"
 { yyval.a_module_flags = MSF_NOFLAGS; ;
     break;}
 case 15:
-#line 402 "asn1p_y.y"
+#line 401 "asn1p_y.y"
 {
 		yyval.a_module_flags = yyvsp[0].a_module_flags;
 	;
     break;}
 case 16:
-#line 411 "asn1p_y.y"
+#line 410 "asn1p_y.y"
 {
 		yyval.a_module_flags = yyvsp[0].a_module_flags;
 	;
     break;}
 case 17:
-#line 414 "asn1p_y.y"
+#line 413 "asn1p_y.y"
 {
 		yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags;
 	;
     break;}
 case 18:
-#line 423 "asn1p_y.y"
+#line 422 "asn1p_y.y"
 {
 		yyval.a_module_flags = MSF_EXPLICIT_TAGS;
 	;
     break;}
 case 19:
-#line 426 "asn1p_y.y"
+#line 425 "asn1p_y.y"
 {
 		yyval.a_module_flags = MSF_IMPLICIT_TAGS;
 	;
     break;}
 case 20:
-#line 429 "asn1p_y.y"
+#line 428 "asn1p_y.y"
 {
 		yyval.a_module_flags = MSF_AUTOMATIC_TAGS;
 	;
     break;}
 case 21:
-#line 432 "asn1p_y.y"
+#line 431 "asn1p_y.y"
 {
 		yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED;
 	;
     break;}
 case 22:
-#line 436 "asn1p_y.y"
+#line 435 "asn1p_y.y"
 {
 		/* X.680Amd1 specifies TAG and XER */
 		if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) {
@@ -1492,23 +1447,23 @@
 	;
     break;}
 case 23:
-#line 457 "asn1p_y.y"
+#line 456 "asn1p_y.y"
 { yyval.a_module = 0; ;
     break;}
 case 24:
-#line 458 "asn1p_y.y"
+#line 457 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[0].a_module;
 	;
     break;}
 case 25:
-#line 467 "asn1p_y.y"
+#line 466 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[0].a_module;
 	;
     break;}
 case 26:
-#line 470 "asn1p_y.y"
+#line 469 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[-1].a_module;
 
@@ -1538,13 +1493,13 @@
 	;
     break;}
 case 27:
-#line 503 "asn1p_y.y"
+#line 502 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[0].a_module;
 	;
     break;}
 case 28:
-#line 506 "asn1p_y.y"
+#line 505 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1556,7 +1511,7 @@
 	;
     break;}
 case 29:
-#line 515 "asn1p_y.y"
+#line 514 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1566,7 +1521,7 @@
 	;
     break;}
 case 30:
-#line 522 "asn1p_y.y"
+#line 521 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1576,7 +1531,7 @@
 	;
     break;}
 case 31:
-#line 535 "asn1p_y.y"
+#line 534 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1586,11 +1541,11 @@
 	;
     break;}
 case 32:
-#line 543 "asn1p_y.y"
+#line 542 "asn1p_y.y"
 { asn1p_lexer_hack_push_encoding_control(); ;
     break;}
 case 33:
-#line 544 "asn1p_y.y"
+#line 543 "asn1p_y.y"
 {
 		fprintf(stderr,
 			"WARNING: ENCODING-CONTROL %s "
@@ -1601,7 +1556,7 @@
 	;
     break;}
 case 34:
-#line 556 "asn1p_y.y"
+#line 555 "asn1p_y.y"
 {
 		return yyerror(
 			"Attempt to redefine a standard basic type, "
@@ -1610,19 +1565,19 @@
 	;
     break;}
 case 35:
-#line 570 "asn1p_y.y"
+#line 569 "asn1p_y.y"
 {
 		yyval.a_module = yyvsp[-1].a_module;
 	;
     break;}
 case 36:
-#line 576 "asn1p_y.y"
+#line 575 "asn1p_y.y"
 {
 		return yyerror("Empty IMPORTS list");
 	;
     break;}
 case 37:
-#line 582 "asn1p_y.y"
+#line 581 "asn1p_y.y"
 {
 		yyval.a_module = asn1p_module_new();
 		checkmem(yyval.a_module);
@@ -1630,14 +1585,14 @@
 	;
     break;}
 case 38:
-#line 587 "asn1p_y.y"
+#line 586 "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 594 "asn1p_y.y"
+#line 593 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-3].a_xports;
 		yyval.a_xports->from = yyvsp[-1].tv_str;
@@ -1646,7 +1601,7 @@
 	;
     break;}
 case 40:
-#line 603 "asn1p_y.y"
+#line 602 "asn1p_y.y"
 {
 		yyval.a_xports = asn1p_xports_new();
 		checkmem(yyval.a_xports);
@@ -1654,14 +1609,14 @@
 	;
     break;}
 case 41:
-#line 608 "asn1p_y.y"
+#line 607 "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 615 "asn1p_y.y"
+#line 614 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1670,7 +1625,7 @@
 	;
     break;}
 case 43:
-#line 621 "asn1p_y.y"
+#line 620 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1679,19 +1634,19 @@
 	;
     break;}
 case 44:
-#line 630 "asn1p_y.y"
+#line 629 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-1].a_xports;
 	;
     break;}
 case 45:
-#line 633 "asn1p_y.y"
+#line 632 "asn1p_y.y"
 {
 		yyval.a_xports = 0;
 	;
     break;}
 case 46:
-#line 636 "asn1p_y.y"
+#line 635 "asn1p_y.y"
 {
 		/* Empty EXPORTS clause effectively prohibits export. */
 		yyval.a_xports = asn1p_xports_new();
@@ -1699,7 +1654,7 @@
 	;
     break;}
 case 47:
-#line 644 "asn1p_y.y"
+#line 643 "asn1p_y.y"
 {
 		yyval.a_xports = asn1p_xports_new();
 		assert(yyval.a_xports);
@@ -1707,14 +1662,14 @@
 	;
     break;}
 case 48:
-#line 649 "asn1p_y.y"
+#line 648 "asn1p_y.y"
 {
 		yyval.a_xports = yyvsp[-2].a_xports;
 		TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
 	;
     break;}
 case 49:
-#line 656 "asn1p_y.y"
+#line 655 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1723,7 +1678,7 @@
 	;
     break;}
 case 50:
-#line 662 "asn1p_y.y"
+#line 661 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1732,7 +1687,7 @@
 	;
     break;}
 case 51:
-#line 672 "asn1p_y.y"
+#line 671 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-4].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -1742,7 +1697,7 @@
 	;
     break;}
 case 52:
-#line 682 "asn1p_y.y"
+#line 681 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1752,7 +1707,7 @@
 	;
     break;}
 case 53:
-#line 689 "asn1p_y.y"
+#line 688 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1761,36 +1716,36 @@
 	;
     break;}
 case 54:
-#line 698 "asn1p_y.y"
+#line 697 "asn1p_y.y"
 { ;
     break;}
 case 55:
-#line 699 "asn1p_y.y"
+#line 698 "asn1p_y.y"
 {
 	;
     break;}
 case 56:
-#line 710 "asn1p_y.y"
+#line 709 "asn1p_y.y"
 {
 	;
     break;}
 case 57:
-#line 712 "asn1p_y.y"
+#line 711 "asn1p_y.y"
 {
 	;
     break;}
 case 58:
-#line 717 "asn1p_y.y"
+#line 716 "asn1p_y.y"
 {
 	;
     break;}
 case 59:
-#line 719 "asn1p_y.y"
+#line 718 "asn1p_y.y"
 {
 	;
     break;}
 case 60:
-#line 735 "asn1p_y.y"
+#line 734 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1801,17 +1756,16 @@
 	;
     break;}
 case 61:
-#line 743 "asn1p_y.y"
+#line 742 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
-		yyval.a_expr->Identifier = yyvsp[-3].tv_str;
-		yyval.a_expr->tag = yyvsp[-1].a_tag;
+		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
 		assert(yyval.a_expr->expr_type);
 		assert(yyval.a_expr->meta_type);
 	;
     break;}
 case 62:
-#line 750 "asn1p_y.y"
+#line 748 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
@@ -1820,7 +1774,7 @@
 	;
     break;}
 case 63:
-#line 766 "asn1p_y.y"
+#line 764 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
@@ -1830,7 +1784,7 @@
 	;
     break;}
 case 64:
-#line 776 "asn1p_y.y"
+#line 774 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_plist = asn1p_paramlist_new(yylineno);
@@ -1842,7 +1796,7 @@
 	;
     break;}
 case 65:
-#line 785 "asn1p_y.y"
+#line 783 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_plist = yyvsp[-2].a_plist;
@@ -1853,14 +1807,14 @@
 	;
     break;}
 case 66:
-#line 796 "asn1p_y.y"
+#line 794 "asn1p_y.y"
 {
 		yyval.a_parg.governor = NULL;
 		yyval.a_parg.argument = yyvsp[0].tv_str;
 	;
     break;}
 case 67:
-#line 800 "asn1p_y.y"
+#line 798 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1870,7 +1824,7 @@
 	;
     break;}
 case 68:
-#line 807 "asn1p_y.y"
+#line 805 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1881,7 +1835,7 @@
 	;
     break;}
 case 69:
-#line 818 "asn1p_y.y"
+#line 816 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1889,20 +1843,20 @@
 	;
     break;}
 case 70:
-#line 823 "asn1p_y.y"
+#line 821 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 71:
-#line 830 "asn1p_y.y"
+#line 828 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 72:
-#line 833 "asn1p_y.y"
+#line 831 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1912,7 +1866,7 @@
 	;
     break;}
 case 73:
-#line 846 "asn1p_y.y"
+#line 844 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1920,24 +1874,23 @@
 	;
     break;}
 case 74:
-#line 851 "asn1p_y.y"
+#line 849 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 75:
-#line 858 "asn1p_y.y"
+#line 856 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
-		yyval.a_expr->Identifier = yyvsp[-2].tv_nametag.name;
-		yyval.a_expr->tag = yyvsp[-2].tv_nametag.tag;
+		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
 		yyval.a_expr->marker = yyvsp[0].a_marker;
 	;
     break;}
 case 76:
-#line 865 "asn1p_y.y"
+#line 862 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1947,13 +1900,13 @@
 	;
     break;}
 case 77:
-#line 872 "asn1p_y.y"
+#line 869 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 78:
-#line 878 "asn1p_y.y"
+#line 875 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -1961,29 +1914,28 @@
 	;
     break;}
 case 79:
-#line 883 "asn1p_y.y"
+#line 880 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 80:
-#line 890 "asn1p_y.y"
+#line 887 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		assert(yyval.a_expr->Identifier == 0);
-		yyval.a_expr->Identifier = yyvsp[-1].tv_nametag.name;
-		yyval.a_expr->tag = yyvsp[-1].tv_nametag.tag;
+		yyval.a_expr->Identifier = yyvsp[-1].tv_str;
 	;
     break;}
 case 81:
-#line 896 "asn1p_y.y"
+#line 892 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 82:
-#line 902 "asn1p_y.y"
+#line 898 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		checkmem(yyval.a_expr);
@@ -1993,15 +1945,15 @@
 	;
     break;}
 case 83:
-#line 912 "asn1p_y.y"
+#line 908 "asn1p_y.y"
 { yyval.a_int = 0; ;
     break;}
 case 84:
-#line 913 "asn1p_y.y"
+#line 909 "asn1p_y.y"
 { yyval.a_int = 1; ;
     break;}
 case 85:
-#line 917 "asn1p_y.y"
+#line 913 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2011,14 +1963,14 @@
 	;
     break;}
 case 86:
-#line 924 "asn1p_y.y"
+#line 920 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 87:
-#line 931 "asn1p_y.y"
+#line 927 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2029,7 +1981,7 @@
 	;
     break;}
 case 88:
-#line 939 "asn1p_y.y"
+#line 935 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-3].a_refcomp.name;
@@ -2038,7 +1990,7 @@
 	;
     break;}
 case 89:
-#line 945 "asn1p_y.y"
+#line 941 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = asn1p_expr_new(yylineno);
@@ -2056,47 +2008,47 @@
 	;
     break;}
 case 90:
-#line 963 "asn1p_y.y"
+#line 959 "asn1p_y.y"
 { yyval.a_wsynt = 0; ;
     break;}
 case 91:
-#line 964 "asn1p_y.y"
+#line 960 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[0].a_wsynt;
 	;
     break;}
 case 92:
-#line 971 "asn1p_y.y"
+#line 967 "asn1p_y.y"
 { asn1p_lexer_hack_enable_with_syntax(); ;
     break;}
 case 93:
-#line 973 "asn1p_y.y"
+#line 969 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[-1].a_wsynt;
 	;
     break;}
 case 94:
-#line 979 "asn1p_y.y"
+#line 975 "asn1p_y.y"
 {
 		yyval.a_wsynt = asn1p_wsyntx_new();
 		TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
 	;
     break;}
 case 95:
-#line 983 "asn1p_y.y"
+#line 979 "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 990 "asn1p_y.y"
+#line 986 "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 993 "asn1p_y.y"
+#line 989 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2108,7 +2060,7 @@
 	;
     break;}
 case 98:
-#line 1005 "asn1p_y.y"
+#line 1001 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2119,7 +2071,7 @@
 	;
     break;}
 case 99:
-#line 1013 "asn1p_y.y"
+#line 1009 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2131,7 +2083,7 @@
 	;
     break;}
 case 100:
-#line 1022 "asn1p_y.y"
+#line 1018 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2143,9 +2095,10 @@
 	;
     break;}
 case 101:
-#line 1034 "asn1p_y.y"
+#line 1030 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
+		yyval.a_expr->tag = yyvsp[-2].a_tag;
 		/*
 		 * Outer constraint for SEQUENCE OF and SET OF applies
 		 * to the inner type.
@@ -2156,7 +2109,7 @@
 			TQ_FIRST(&(yyval.a_expr->members))->constraints = yyvsp[0].a_constr;
 		} else {
 			if(yyval.a_expr->constraints) {
-				assert(!yyvsp[0].a_constr);
+				assert(!yyvsp[-1].a_expr);
 			} else {
 				yyval.a_expr->constraints = yyvsp[0].a_constr;
 			}
@@ -2164,13 +2117,13 @@
 	;
     break;}
 case 102:
-#line 1055 "asn1p_y.y"
+#line 1052 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 103:
-#line 1058 "asn1p_y.y"
+#line 1055 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2179,7 +2132,7 @@
 	;
     break;}
 case 104:
-#line 1064 "asn1p_y.y"
+#line 1061 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2188,7 +2141,7 @@
 	;
     break;}
 case 105:
-#line 1070 "asn1p_y.y"
+#line 1067 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2197,7 +2150,7 @@
 	;
     break;}
 case 106:
-#line 1076 "asn1p_y.y"
+#line 1073 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2206,7 +2159,7 @@
 	;
     break;}
 case 107:
-#line 1082 "asn1p_y.y"
+#line 1079 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2217,7 +2170,7 @@
 	;
     break;}
 case 108:
-#line 1090 "asn1p_y.y"
+#line 1087 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2228,7 +2181,7 @@
 	;
     break;}
 case 109:
-#line 1098 "asn1p_y.y"
+#line 1095 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2237,7 +2190,7 @@
 	;
     break;}
 case 110:
-#line 1104 "asn1p_y.y"
+#line 1101 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = asn1p_expr_new(yylineno);
@@ -2251,7 +2204,7 @@
 	;
     break;}
 case 111:
-#line 1118 "asn1p_y.y"
+#line 1115 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = yyvsp[-1].a_expr;
@@ -2268,7 +2221,7 @@
 	;
     break;}
 case 112:
-#line 1142 "asn1p_y.y"
+#line 1139 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2278,7 +2231,7 @@
 	;
     break;}
 case 113:
-#line 1149 "asn1p_y.y"
+#line 1146 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2288,7 +2241,7 @@
 	;
     break;}
 case 114:
-#line 1164 "asn1p_y.y"
+#line 1161 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2299,7 +2252,7 @@
 	;
     break;}
 case 115:
-#line 1172 "asn1p_y.y"
+#line 1169 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2312,7 +2265,7 @@
 	;
     break;}
 case 116:
-#line 1182 "asn1p_y.y"
+#line 1179 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2325,7 +2278,7 @@
 	;
     break;}
 case 117:
-#line 1192 "asn1p_y.y"
+#line 1189 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2336,7 +2289,7 @@
 	;
     break;}
 case 118:
-#line 1200 "asn1p_y.y"
+#line 1197 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = yyvsp[0].a_ref;
@@ -2358,7 +2311,7 @@
 	;
     break;}
 case 119:
-#line 1222 "asn1p_y.y"
+#line 1219 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2369,7 +2322,7 @@
 	;
     break;}
 case 120:
-#line 1230 "asn1p_y.y"
+#line 1227 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = yyvsp[-2].a_ref;
@@ -2379,21 +2332,21 @@
 	;
     break;}
 case 123:
-#line 1244 "asn1p_y.y"
+#line 1241 "asn1p_y.y"
 {
 		yyval.a_refcomp.lex_type = RLT_AmpUppercase;
 		yyval.a_refcomp.name = yyvsp[0].tv_str;
 	;
     break;}
 case 124:
-#line 1249 "asn1p_y.y"
+#line 1246 "asn1p_y.y"
 {
 		yyval.a_refcomp.lex_type = RLT_Amplowercase;
 		yyval.a_refcomp.name = yyvsp[0].tv_str;
 	;
     break;}
 case 125:
-#line 1262 "asn1p_y.y"
+#line 1259 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		assert(yyval.a_expr->Identifier == NULL);
@@ -2403,11 +2356,11 @@
 	;
     break;}
 case 126:
-#line 1272 "asn1p_y.y"
+#line 1269 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
 case 127:
-#line 1273 "asn1p_y.y"
+#line 1270 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 		checkmem(yyval.a_value);
@@ -2415,40 +2368,40 @@
 	;
     break;}
 case 128:
-#line 1278 "asn1p_y.y"
+#line 1275 "asn1p_y.y"
 {
 		yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B');
 		checkmem(yyval.a_value);
 	;
     break;}
 case 129:
-#line 1282 "asn1p_y.y"
+#line 1279 "asn1p_y.y"
 {
 		yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H');
 		checkmem(yyval.a_value);
 	;
     break;}
 case 130:
-#line 1286 "asn1p_y.y"
+#line 1283 "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 131:
-#line 1290 "asn1p_y.y"
+#line 1287 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 132:
-#line 1293 "asn1p_y.y"
+#line 1290 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 133:
-#line 1299 "asn1p_y.y"
+#line 1296 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2462,7 +2415,7 @@
 	;
     break;}
 case 134:
-#line 1310 "asn1p_y.y"
+#line 1307 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2479,7 +2432,7 @@
 	;
     break;}
 case 135:
-#line 1327 "asn1p_y.y"
+#line 1324 "asn1p_y.y"
 {
 		yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 2;
 		yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1);
@@ -2492,7 +2445,7 @@
 	;
     break;}
 case 136:
-#line 1337 "asn1p_y.y"
+#line 1334 "asn1p_y.y"
 {
 		int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len;
 		char *p = malloc(newsize + 1);
@@ -2507,67 +2460,67 @@
 	;
     break;}
 case 137:
-#line 1352 "asn1p_y.y"
+#line 1349 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_BOOLEAN; ;
     break;}
 case 138:
-#line 1353 "asn1p_y.y"
+#line 1350 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_NULL; ;
     break;}
 case 139:
-#line 1354 "asn1p_y.y"
+#line 1351 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_REAL; ;
     break;}
 case 140:
-#line 1355 "asn1p_y.y"
+#line 1352 "asn1p_y.y"
 { yyval.a_type = yyvsp[0].a_type; ;
     break;}
 case 141:
-#line 1356 "asn1p_y.y"
+#line 1353 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_OCTET_STRING; ;
     break;}
 case 142:
-#line 1357 "asn1p_y.y"
+#line 1354 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ;
     break;}
 case 143:
-#line 1358 "asn1p_y.y"
+#line 1355 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_RELATIVE_OID; ;
     break;}
 case 144:
-#line 1359 "asn1p_y.y"
+#line 1356 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_EXTERNAL; ;
     break;}
 case 145:
-#line 1360 "asn1p_y.y"
+#line 1357 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ;
     break;}
 case 146:
-#line 1361 "asn1p_y.y"
+#line 1358 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_CHARACTER_STRING; ;
     break;}
 case 147:
-#line 1362 "asn1p_y.y"
+#line 1359 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_UTCTime; ;
     break;}
 case 148:
-#line 1363 "asn1p_y.y"
+#line 1360 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_GeneralizedTime; ;
     break;}
 case 149:
-#line 1370 "asn1p_y.y"
+#line 1367 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_INTEGER; ;
     break;}
 case 150:
-#line 1371 "asn1p_y.y"
+#line 1368 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_ENUMERATED; ;
     break;}
 case 151:
-#line 1372 "asn1p_y.y"
+#line 1369 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_BIT_STRING; ;
     break;}
 case 152:
-#line 1376 "asn1p_y.y"
+#line 1373 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2576,7 +2529,7 @@
 	;
     break;}
 case 153:
-#line 1382 "asn1p_y.y"
+#line 1379 "asn1p_y.y"
 {
 		if(yyvsp[0].a_expr) {
 			yyval.a_expr = yyvsp[0].a_expr;
@@ -2589,91 +2542,91 @@
 	;
     break;}
 case 154:
-#line 1395 "asn1p_y.y"
+#line 1392 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_BMPString; ;
     break;}
 case 155:
-#line 1396 "asn1p_y.y"
+#line 1393 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_GeneralString;
 		fprintf(stderr, "WARNING: GeneralString is not fully supported");
 	;
     break;}
 case 156:
-#line 1400 "asn1p_y.y"
+#line 1397 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_GraphicString;
 		fprintf(stderr, "WARNING: GraphicString is not fully supported");
 	;
     break;}
 case 157:
-#line 1404 "asn1p_y.y"
+#line 1401 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_IA5String; ;
     break;}
 case 158:
-#line 1405 "asn1p_y.y"
+#line 1402 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_ISO646String; ;
     break;}
 case 159:
-#line 1406 "asn1p_y.y"
+#line 1403 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_NumericString; ;
     break;}
 case 160:
-#line 1407 "asn1p_y.y"
+#line 1404 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_PrintableString; ;
     break;}
 case 161:
-#line 1408 "asn1p_y.y"
+#line 1405 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_T61String;
 		fprintf(stderr, "WARNING: T61String is not fully supported");
 	;
     break;}
 case 162:
-#line 1412 "asn1p_y.y"
+#line 1409 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_TeletexString; ;
     break;}
 case 163:
-#line 1413 "asn1p_y.y"
+#line 1410 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_UniversalString; ;
     break;}
 case 164:
-#line 1414 "asn1p_y.y"
+#line 1411 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_UTF8String; ;
     break;}
 case 165:
-#line 1415 "asn1p_y.y"
+#line 1412 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_VideotexString;
 		fprintf(stderr, "WARNING: VideotexString is not fully supported");
 	;
     break;}
 case 166:
-#line 1419 "asn1p_y.y"
+#line 1416 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_VisibleString; ;
     break;}
 case 167:
-#line 1420 "asn1p_y.y"
+#line 1417 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_ObjectDescriptor; ;
     break;}
 case 173:
-#line 1432 "asn1p_y.y"
+#line 1429 "asn1p_y.y"
 { yyval.a_constr = 0; ;
     break;}
 case 174:
-#line 1433 "asn1p_y.y"
+#line 1430 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 175:
-#line 1439 "asn1p_y.y"
+#line 1436 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
 	;
     break;}
 case 176:
-#line 1442 "asn1p_y.y"
+#line 1439 "asn1p_y.y"
 {
 		/*
 		 * This is a special case, for compatibility purposes.
@@ -2683,25 +2636,25 @@
 	;
     break;}
 case 177:
-#line 1452 "asn1p_y.y"
+#line 1449 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[-1].a_constr;
 	;
     break;}
 case 178:
-#line 1455 "asn1p_y.y"
+#line 1452 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
 case 179:
-#line 1461 "asn1p_y.y"
+#line 1458 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 180:
-#line 1464 "asn1p_y.y"
+#line 1461 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -2710,7 +2663,7 @@
 	;
     break;}
 case 181:
-#line 1470 "asn1p_y.y"
+#line 1467 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -2721,31 +2674,31 @@
 	;
     break;}
 case 182:
-#line 1481 "asn1p_y.y"
+#line 1478 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 183:
-#line 1484 "asn1p_y.y"
+#line 1481 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 184:
-#line 1487 "asn1p_y.y"
+#line 1484 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 185:
-#line 1490 "asn1p_y.y"
+#line 1487 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 186:
-#line 1496 "asn1p_y.y"
+#line 1493 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -2756,7 +2709,7 @@
 	;
     break;}
 case 187:
-#line 1504 "asn1p_y.y"
+#line 1501 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -2767,7 +2720,7 @@
 	;
     break;}
 case 188:
-#line 1512 "asn1p_y.y"
+#line 1509 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2776,7 +2729,7 @@
 	;
     break;}
 case 189:
-#line 1518 "asn1p_y.y"
+#line 1515 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2786,7 +2739,7 @@
 	;
     break;}
 case 190:
-#line 1525 "asn1p_y.y"
+#line 1522 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2797,7 +2750,7 @@
 	;
     break;}
 case 191:
-#line 1533 "asn1p_y.y"
+#line 1530 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2808,7 +2761,7 @@
 	;
     break;}
 case 192:
-#line 1541 "asn1p_y.y"
+#line 1538 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2820,53 +2773,53 @@
 	;
     break;}
 case 193:
-#line 1550 "asn1p_y.y"
+#line 1547 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 194:
-#line 1553 "asn1p_y.y"
+#line 1550 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 195:
-#line 1559 "asn1p_y.y"
+#line 1556 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_RANGE; ;
     break;}
 case 196:
-#line 1560 "asn1p_y.y"
+#line 1557 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_RLRANGE; ;
     break;}
 case 197:
-#line 1561 "asn1p_y.y"
+#line 1558 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_LLRANGE; ;
     break;}
 case 198:
-#line 1562 "asn1p_y.y"
+#line 1559 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_ULRANGE; ;
     break;}
 case 199:
-#line 1566 "asn1p_y.y"
+#line 1563 "asn1p_y.y"
 {
 		yyval.a_ctype = ACT_CT_SIZE;
 	;
     break;}
 case 200:
-#line 1569 "asn1p_y.y"
+#line 1566 "asn1p_y.y"
 {
 		yyval.a_ctype = ACT_CT_FROM;
 	;
     break;}
 case 201:
-#line 1575 "asn1p_y.y"
+#line 1572 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 202:
-#line 1578 "asn1p_y.y"
+#line 1575 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2880,14 +2833,14 @@
 	;
     break;}
 case 203:
-#line 1589 "asn1p_y.y"
+#line 1586 "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 204:
-#line 1594 "asn1p_y.y"
+#line 1591 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2895,7 +2848,7 @@
 	;
     break;}
 case 205:
-#line 1599 "asn1p_y.y"
+#line 1596 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(1);
 		checkmem(yyval.a_value);
@@ -2903,25 +2856,25 @@
 	;
     break;}
 case 206:
-#line 1607 "asn1p_y.y"
+#line 1604 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
 	;
     break;}
 case 207:
-#line 1613 "asn1p_y.y"
+#line 1610 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 208:
-#line 1616 "asn1p_y.y"
+#line 1613 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
 case 209:
-#line 1622 "asn1p_y.y"
+#line 1619 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2929,7 +2882,7 @@
 	;
     break;}
 case 210:
-#line 1627 "asn1p_y.y"
+#line 1624 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -2939,45 +2892,45 @@
 	;
     break;}
 case 211:
-#line 1640 "asn1p_y.y"
+#line 1637 "asn1p_y.y"
 { yyval.a_pres = ACPRES_DEFAULT; ;
     break;}
 case 212:
-#line 1641 "asn1p_y.y"
+#line 1638 "asn1p_y.y"
 { yyval.a_pres = yyvsp[0].a_pres; ;
     break;}
 case 213:
-#line 1645 "asn1p_y.y"
+#line 1642 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_PRESENT;
 	;
     break;}
 case 214:
-#line 1648 "asn1p_y.y"
+#line 1645 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_ABSENT;
 	;
     break;}
 case 215:
-#line 1651 "asn1p_y.y"
+#line 1648 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_OPTIONAL;
 	;
     break;}
 case 216:
-#line 1657 "asn1p_y.y"
+#line 1654 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 217:
-#line 1660 "asn1p_y.y"
+#line 1657 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 218:
-#line 1669 "asn1p_y.y"
+#line 1666 "asn1p_y.y"
 {
 		asn1p_ref_t *ref = asn1p_ref_new(yylineno);
 		asn1p_constraint_t *ct;
@@ -2992,13 +2945,13 @@
 	;
     break;}
 case 219:
-#line 1684 "asn1p_y.y"
+#line 1681 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
 case 220:
-#line 1690 "asn1p_y.y"
+#line 1687 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3007,7 +2960,7 @@
 	;
     break;}
 case 221:
-#line 1696 "asn1p_y.y"
+#line 1693 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -3018,7 +2971,7 @@
 	;
     break;}
 case 222:
-#line 1710 "asn1p_y.y"
+#line 1707 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
 		int ret;
@@ -3032,7 +2985,7 @@
 	;
     break;}
 case 223:
-#line 1721 "asn1p_y.y"
+#line 1718 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
 		int ret;
@@ -3047,13 +3000,13 @@
 	;
     break;}
 case 224:
-#line 1737 "asn1p_y.y"
+#line 1734 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 225:
-#line 1740 "asn1p_y.y"
+#line 1737 "asn1p_y.y"
 {
 		int l1 = strlen(yyvsp[-2].tv_str);
 		int l3 = strlen(yyvsp[0].tv_str);
@@ -3065,60 +3018,60 @@
 	;
     break;}
 case 226:
-#line 1758 "asn1p_y.y"
+#line 1755 "asn1p_y.y"
 { yyval.a_marker = EM_NOMARK; ;
     break;}
 case 227:
-#line 1759 "asn1p_y.y"
+#line 1756 "asn1p_y.y"
 { yyval.a_marker = yyvsp[0].a_marker; ;
     break;}
 case 228:
-#line 1763 "asn1p_y.y"
+#line 1760 "asn1p_y.y"
 {
 		yyval.a_marker = EM_OPTIONAL;
 	;
     break;}
 case 229:
-#line 1766 "asn1p_y.y"
+#line 1763 "asn1p_y.y"
 {
 		yyval.a_marker = EM_DEFAULT;
 		/* FIXME: store DefaultValue somewhere */
 	;
     break;}
 case 230:
-#line 1773 "asn1p_y.y"
+#line 1770 "asn1p_y.y"
 {
 	;
     break;}
 case 231:
-#line 1775 "asn1p_y.y"
+#line 1772 "asn1p_y.y"
 {
 	;
     break;}
 case 232:
-#line 1777 "asn1p_y.y"
+#line 1774 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
 case 233:
-#line 1777 "asn1p_y.y"
+#line 1774 "asn1p_y.y"
 {
 	;
     break;}
 case 234:
-#line 1798 "asn1p_y.y"
+#line 1795 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
 	;
     break;}
 case 235:
-#line 1802 "asn1p_y.y"
+#line 1799 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 	;
     break;}
 case 236:
-#line 1808 "asn1p_y.y"
+#line 1805 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3126,14 +3079,14 @@
 	;
     break;}
 case 237:
-#line 1813 "asn1p_y.y"
+#line 1810 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 238:
-#line 1820 "asn1p_y.y"
+#line 1817 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3143,7 +3096,7 @@
 	;
     break;}
 case 239:
-#line 1827 "asn1p_y.y"
+#line 1824 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3154,7 +3107,7 @@
 	;
     break;}
 case 240:
-#line 1835 "asn1p_y.y"
+#line 1832 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3165,7 +3118,7 @@
 	;
     break;}
 case 241:
-#line 1843 "asn1p_y.y"
+#line 1840 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3175,7 +3128,7 @@
 	;
     break;}
 case 242:
-#line 1850 "asn1p_y.y"
+#line 1847 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3186,90 +3139,76 @@
 	;
     break;}
 case 243:
-#line 1861 "asn1p_y.y"
+#line 1858 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 	;
     break;}
 case 244:
-#line 1865 "asn1p_y.y"
+#line 1862 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 	;
     break;}
 case 245:
-#line 1896 "asn1p_y.y"
+#line 1893 "asn1p_y.y"
 { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
     break;}
 case 246:
-#line 1897 "asn1p_y.y"
+#line 1894 "asn1p_y.y"
 { yyval.a_tag = yyvsp[0].a_tag; ;
     break;}
 case 247:
-#line 1901 "asn1p_y.y"
+#line 1898 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[0].a_tag;
 		yyval.a_tag.tag_mode = TM_DEFAULT;
 	;
     break;}
 case 248:
-#line 1905 "asn1p_y.y"
+#line 1902 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-1].a_tag;
 		yyval.a_tag.tag_mode = TM_IMPLICIT;
 	;
     break;}
 case 249:
-#line 1909 "asn1p_y.y"
+#line 1906 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-1].a_tag;
 		yyval.a_tag.tag_mode = TM_EXPLICIT;
 	;
     break;}
 case 250:
-#line 1916 "asn1p_y.y"
+#line 1913 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 251:
-#line 1920 "asn1p_y.y"
+#line 1917 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 252:
-#line 1928 "asn1p_y.y"
+#line 1925 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 253:
-#line 1935 "asn1p_y.y"
+#line 1932 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
-case 254:
-#line 1942 "asn1p_y.y"
-{
-		memset(&yyval.tv_nametag, 0, sizeof(yyval.tv_nametag));
-		yyval.tv_nametag.name = yyvsp[0].tv_str;
-	;
-    break;}
-case 255:
-#line 1946 "asn1p_y.y"
-{
-		yyval.tv_nametag.name = yyvsp[-1].tv_str;
-		yyval.tv_nametag.tag = yyvsp[0].a_tag;
-	;
-    break;}
 }
    /* the action file gets copied in in place of this dollarsign */
 #line 543 "/usr/share/bison.simple"
@@ -3492,7 +3431,7 @@
     }
   return 1;
 }
-#line 1953 "asn1p_y.y"
+#line 1938 "asn1p_y.y"