WITH COMPONENT[S] pretty-printing


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@839 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index a5cc4a8..ae4e31a 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -206,7 +206,7 @@
 
 
 
-#define	YYFINAL		429
+#define	YYFINAL		431
 #define	YYFLAG		-32768
 #define	YYNTBASE	118
 
@@ -275,12 +275,12 @@
    534,   539,   541,   545,   551,   553,   557,   561,   565,   569,
    574,   578,   580,   582,   586,   590,   594,   598,   600,   602,
    603,   609,   611,   614,   617,   621,   623,   625,   627,   629,
-   631,   633,   635,   637,   643,   645,   649,   651,   655,   656,
-   658,   660,   662,   664,   666,   668,   672,   677,   679,   683,
-   686,   690,   692,   696,   697,   699,   701,   704,   707,   711,
-   713,   717,   719,   724,   729,   731,   733,   735,   737,   738,
-   740,   743,   748,   749,   751,   753,   755,   756,   758,   760,
-   762,   764,   766,   767,   769
+   631,   633,   635,   637,   641,   647,   649,   653,   655,   659,
+   660,   662,   664,   666,   668,   670,   672,   676,   681,   683,
+   687,   690,   694,   696,   700,   701,   703,   705,   708,   711,
+   715,   717,   721,   723,   728,   733,   735,   737,   739,   741,
+   742,   744,   747,   752,   753,   755,   757,   759,   760,   762,
+   764,   766,   768,   770,   771,   773
 };
 
 static const short yyrhs[] = {   119,
@@ -347,20 +347,21 @@
      0,     0,    33,    27,   105,   191,   177,     0,   103,     0,
    103,   114,     0,   114,   103,     0,   114,   103,   114,     0,
     82,     0,    48,     0,    47,     0,    88,     0,   212,     0,
-   176,     0,   221,     0,   218,     0,    97,    32,   105,   197,
-   106,     0,   198,     0,   197,   110,   198,     0,   104,     0,
-   221,   185,   199,     0,     0,   200,     0,    75,     0,    17,
-     0,    71,     0,   202,     0,   203,     0,   105,   218,   106,
-     0,   202,   105,   204,   106,     0,   205,     0,   204,   110,
-   205,     0,   115,   206,     0,   115,   113,   206,     0,   221,
-     0,   206,   113,   221,     0,     0,   208,     0,    71,     0,
-    35,   173,     0,   105,   106,     0,   105,   210,   106,     0,
-   211,     0,   210,   110,   211,     0,   221,     0,   221,   107,
-   212,   108,     0,   221,   107,   175,   108,     0,   212,     0,
-   104,     0,     9,     0,    12,     0,     0,   214,     0,   215,
-   217,     0,   116,   216,     9,   117,     0,     0,    91,     0,
-    21,     0,    77,     0,     0,    54,     0,    43,     0,    13,
-     0,    14,     0,    14,     0,     0,   221,     0,     8,     0
+   176,     0,   221,     0,   218,     0,    97,    31,   187,     0,
+    97,    32,   105,   197,   106,     0,   198,     0,   197,   110,
+   198,     0,   104,     0,   221,   185,   199,     0,     0,   200,
+     0,    75,     0,    17,     0,    71,     0,   202,     0,   203,
+     0,   105,   218,   106,     0,   202,   105,   204,   106,     0,
+   205,     0,   204,   110,   205,     0,   115,   206,     0,   115,
+   113,   206,     0,   221,     0,   206,   113,   221,     0,     0,
+   208,     0,    71,     0,    35,   173,     0,   105,   106,     0,
+   105,   210,   106,     0,   211,     0,   210,   110,   211,     0,
+   221,     0,   221,   107,   212,   108,     0,   221,   107,   175,
+   108,     0,   212,     0,   104,     0,     9,     0,    12,     0,
+     0,   214,     0,   215,   217,     0,   116,   216,     9,   117,
+     0,     0,    91,     0,    21,     0,    77,     0,     0,    54,
+     0,    43,     0,    13,     0,    14,     0,    14,     0,     0,
+   221,     0,     8,     0
 };
 
 #endif
@@ -389,12 +390,12 @@
   1564,  1569,  1573,  1579,  1589,  1593,  1596,  1599,  1602,  1607,
   1616,  1624,  1630,  1636,  1643,  1651,  1659,  1668,  1671,  1674,
   1675,  1685,  1687,  1688,  1689,  1692,  1696,  1701,  1707,  1712,
-  1715,  1718,  1731,  1745,  1751,  1755,  1760,  1766,  1778,  1780,
-  1783,  1787,  1790,  1795,  1799,  1807,  1822,  1828,  1835,  1848,
-  1860,  1875,  1879,  1896,  1901,  1904,  1909,  1931,  1936,  1941,
-  1947,  1953,  1961,  1969,  1977,  1984,  1994,  1999,  2029,  2031,
-  2034,  2041,  2047,  2049,  2050,  2051,  2054,  2056,  2057,  2060,
-  2065,  2072,  2079,  2081,  2085
+  1715,  1718,  1731,  1745,  1749,  1754,  1758,  1763,  1770,  1783,
+  1785,  1788,  1792,  1795,  1800,  1804,  1812,  1827,  1833,  1840,
+  1853,  1865,  1880,  1884,  1901,  1906,  1909,  1914,  1936,  1941,
+  1946,  1952,  1958,  1966,  1974,  1982,  1989,  1999,  2004,  2034,
+  2036,  2039,  2046,  2052,  2054,  2055,  2056,  2059,  2061,  2062,
+  2065,  2070,  2077,  2084,  2086,  2090
 };
 #endif
 
@@ -438,12 +439,12 @@
 "BasicTypeId_UniverationCompatible","BasicType","BasicString","Union","Intersection",
 "Except","optConstraints","Constraints","SetOfConstraints","ElementSetSpecs",
 "ElementSetSpec","ConstraintSubtypeElement","@4","ConstraintRangeSpec","ConstraintSpec",
-"SingleValue","ContainedSubtype","WithComponents","WithComponentsList","WithComponentsElement",
-"optPresenceConstraint","PresenceConstraint","TableConstraint","SimpleTableConstraint",
-"ComponentRelationConstraint","AtNotationList","AtNotationElement","ComponentIdList",
-"optMarker","Marker","UniverationDefinition","UniverationList","UniverationElement",
-"SignedNumber","optTag","Tag","TagTypeValue","TagClass","TagPlicit","TypeRefName",
-"ObjectClassReference","optIdentifier","Identifier", NULL
+"SingleValue","ContainedSubtype","InnerTypeConstraint","WithComponentsList",
+"WithComponentsElement","optPresenceConstraint","PresenceConstraint","TableConstraint",
+"SimpleTableConstraint","ComponentRelationConstraint","AtNotationList","AtNotationElement",
+"ComponentIdList","optMarker","Marker","UniverationDefinition","UniverationList",
+"UniverationElement","SignedNumber","optTag","Tag","TagTypeValue","TagClass",
+"TagPlicit","TypeRefName","ObjectClassReference","optIdentifier","Identifier", NULL
 };
 #endif
 
@@ -470,12 +471,12 @@
    187,   188,   188,   188,   189,   189,   189,   189,   189,   190,
    190,   190,   190,   190,   190,   190,   190,   190,   190,   191,
    190,   192,   192,   192,   192,   193,   193,   194,   194,   194,
-   194,   194,   195,   196,   197,   197,   198,   198,   199,   199,
-   200,   200,   200,   201,   201,   202,   203,   204,   204,   205,
-   205,   206,   206,   207,   207,   208,   208,   209,   209,   210,
-   210,   211,   211,   211,   211,   211,   212,   212,   213,   213,
-   214,   215,   216,   216,   216,   216,   217,   217,   217,   218,
-   218,   219,   220,   220,   221
+   194,   194,   195,   196,   196,   197,   197,   198,   198,   199,
+   199,   200,   200,   200,   201,   201,   202,   203,   204,   204,
+   205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
+   210,   210,   211,   211,   211,   211,   211,   212,   212,   213,
+   213,   214,   215,   216,   216,   216,   216,   217,   217,   217,
+   218,   218,   219,   220,   220,   221
 };
 
 static const short yyr2[] = {     0,
@@ -501,16 +502,16 @@
      4,     1,     3,     5,     1,     3,     3,     3,     3,     4,
      3,     1,     1,     3,     3,     3,     3,     1,     1,     0,
      5,     1,     2,     2,     3,     1,     1,     1,     1,     1,
-     1,     1,     1,     5,     1,     3,     1,     3,     0,     1,
-     1,     1,     1,     1,     1,     3,     4,     1,     3,     2,
-     3,     1,     3,     0,     1,     1,     2,     2,     3,     1,
-     3,     1,     4,     4,     1,     1,     1,     1,     0,     1,
-     2,     4,     0,     1,     1,     1,     0,     1,     1,     1,
-     1,     1,     0,     1,     1
+     1,     1,     1,     3,     5,     1,     3,     1,     3,     0,
+     1,     1,     1,     1,     1,     1,     3,     4,     1,     3,
+     2,     3,     1,     3,     0,     1,     1,     2,     2,     3,
+     1,     3,     1,     4,     4,     1,     1,     1,     1,     0,
+     1,     2,     4,     0,     1,     1,     1,     0,     1,     1,
+     1,     1,     1,     0,     1,     1
 };
 
 static const short yydefact[] = {     0,
-   270,   271,     1,     2,     5,     3,     0,     0,     6,   275,
+   271,   272,     1,     2,     5,     3,     0,     0,     6,   276,
     13,     8,     0,     9,    11,    14,     7,    10,     0,     0,
      0,     0,     0,     0,     0,    15,    16,     0,    22,    20,
     18,    21,    19,     0,    17,    12,    23,   167,     0,     0,
@@ -518,180 +519,181 @@
    176,   177,   178,   179,     0,    24,    25,    27,    28,    31,
     29,    30,    34,     0,     0,    32,     0,    47,     0,    48,
     50,    52,    36,     0,    37,     0,    40,    42,    44,     4,
-    26,   259,   118,   272,     0,   149,     0,     0,   163,   156,
+    26,   260,   118,   273,     0,   149,     0,     0,   163,   156,
    160,   162,   150,     0,     0,   151,   155,   159,     0,     0,
     54,    55,   152,   161,   122,     0,    33,    46,    45,     0,
-     0,    35,    38,     0,     0,     0,     0,   263,    64,    63,
-     0,   260,   267,     0,   164,   158,   157,   154,   153,     0,
+     0,    35,    38,     0,     0,     0,     0,   264,    64,    63,
+     0,   261,   268,     0,   164,   158,   157,   154,   153,     0,
     66,     0,    68,     0,     0,     0,    49,    51,     5,    41,
-    43,     0,   265,   266,   264,     0,   118,   272,   113,     0,
+    43,     0,   266,   267,   265,     0,   118,   273,   113,     0,
      0,   186,   186,    62,   186,   116,   165,   152,   107,     0,
-   269,   268,   261,   119,   121,     0,     0,     0,     0,    56,
-   128,   129,   123,   124,   126,   120,   137,   144,   138,   257,
-   145,   146,   258,   135,   134,   136,   132,   130,   141,   139,
-   140,     0,   142,    39,     0,    90,   259,   127,     0,     0,
+   270,   269,   262,   119,   121,     0,     0,     0,     0,    56,
+   128,   129,   123,   124,   126,   120,   137,   144,   138,   258,
+   145,   146,   259,   135,   134,   136,   132,   130,   141,   139,
+   140,     0,   142,    39,     0,    90,   260,   127,     0,     0,
      0,     0,     0,    76,     0,     0,   187,   188,    76,     0,
-   106,     0,   166,   259,   259,    67,    71,    70,    69,     0,
+   106,     0,   166,   260,   260,    67,    71,    70,    69,     0,
      0,   218,   217,     0,   216,   219,     0,    60,     0,     0,
      0,    57,    58,   221,    61,   195,     0,   202,   203,   209,
-   208,   234,   235,   220,   223,   222,     0,     0,     0,     0,
-    95,     0,     0,   246,    88,    88,    92,   245,     0,   262,
-     0,   103,     0,    83,    86,   259,   117,     0,     0,     0,
-    77,    78,    82,   259,     0,   192,   273,     0,     0,   273,
-   256,   248,     0,   250,   255,   252,     0,    72,    74,    75,
-    65,     0,     0,   212,     0,     0,     0,     0,     0,    53,
-     0,   183,   184,   181,   182,     0,     0,   185,     0,     0,
-     0,     0,   125,   147,   133,   143,   131,     0,    87,    96,
-    91,   247,    89,   244,   244,   114,     0,   108,     0,    85,
-     0,   259,   109,     0,   244,   190,     0,   259,   274,     0,
-   110,   259,   249,     0,     0,   115,   259,   196,   210,   213,
-   214,   207,   205,     0,   236,   201,    59,   197,   198,   199,
-     0,   206,   204,     0,     0,   238,   148,     0,    93,    94,
-   104,   105,   142,    84,   189,    81,    79,    80,   193,     0,
-   191,     0,   251,     0,     0,    73,     0,   215,   227,     0,
-   225,   186,   200,     0,   240,   242,   237,     0,    97,     0,
-   111,   112,   254,   253,   211,   224,     0,   229,   241,     0,
-   239,     0,   194,   226,   232,   233,   231,   228,   230,   243,
-   101,     0,    99,   102,    98,   100,     0,     0,     0
+   208,   235,   236,   220,   223,   222,     0,     0,     0,     0,
+    95,     0,     0,   247,    88,    88,    92,   246,     0,   263,
+     0,   103,     0,    83,    86,   260,   117,     0,     0,     0,
+    77,    78,    82,   260,     0,   192,   274,     0,     0,   274,
+   257,   249,     0,   251,   256,   253,     0,    72,    74,    75,
+    65,     0,     0,   212,     0,     0,     0,     0,     0,     0,
+    53,     0,   183,   184,   181,   182,     0,     0,   185,     0,
+     0,     0,     0,   125,   147,   133,   143,   131,     0,    87,
+    96,    91,   248,    89,   245,   245,   114,     0,   108,     0,
+    85,     0,   260,   109,     0,   245,   190,     0,   260,   275,
+     0,   110,   260,   250,     0,     0,   115,   260,   196,   210,
+   213,   214,   207,   205,   224,     0,   237,   201,    59,   197,
+   198,   199,     0,   206,   204,     0,     0,   239,   148,     0,
+    93,    94,   104,   105,   142,    84,   189,    81,    79,    80,
+   193,     0,   191,     0,   252,     0,     0,    73,     0,   215,
+   228,     0,   226,   186,   200,     0,   241,   243,   238,     0,
+    97,     0,   111,   112,   255,   254,   211,   225,     0,   230,
+   242,     0,   240,     0,   194,   227,   233,   234,   232,   229,
+   231,   244,   101,     0,    99,   102,    98,   100,     0,     0,
+     0
 };
 
-static const short yydefgoto[] = {   427,
+static const short yydefgoto[] = {   429,
      3,     4,     8,     9,    13,    14,    25,    26,    27,    55,
     56,    57,   107,    58,    74,    75,    76,    77,    59,    69,
     70,    60,   100,   231,   232,   233,    61,   130,   131,   287,
-   288,   270,   271,   272,   263,   264,   119,   324,   195,   196,
-   319,   320,   412,   422,   423,   273,   289,   155,   156,   173,
-   174,   197,   198,    62,   188,   248,   189,   234,   315,   157,
-   103,   159,   104,   306,   307,   309,   206,   207,   208,   275,
-   276,   236,   387,   296,   237,   238,   239,   240,   390,   391,
-   418,   419,   241,   242,   243,   365,   366,   395,   257,   258,
+   288,   270,   271,   272,   263,   264,   119,   325,   195,   196,
+   320,   321,   414,   424,   425,   273,   289,   155,   156,   173,
+   174,   197,   198,    62,   188,   248,   189,   234,   316,   157,
+   103,   159,   104,   307,   308,   310,   206,   207,   208,   275,
+   276,   236,   389,   296,   237,   238,   239,   240,   392,   393,
+   420,   421,   241,   242,   243,   367,   368,   397,   257,   258,
    213,   283,   284,   244,   259,   122,   123,   146,   163,   245,
-   105,   338,   246
+   105,   339,   246
 };
 
-static const short yypact[] = {   131,
--32768,-32768,   131,-32768,   -60,-32768,    15,    25,-32768,-32768,
--32768,-32768,    27,-32768,    -1,   141,-32768,-32768,    88,    79,
-    62,    71,    65,    89,   188,   141,-32768,   101,-32768,-32768,
--32768,-32768,-32768,   200,-32768,-32768,   517,-32768,   215,    38,
--32768,-32768,-32768,    61,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   190,   517,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   355,   746,-32768,   146,-32768,    72,-32768,
-   152,-32768,-32768,    34,-32768,   -10,-32768,   156,-32768,-32768,
--32768,    -3,   158,-32768,   182,-32768,   189,   216,-32768,-32768,
--32768,-32768,-32768,   242,   213,-32768,-32768,-32768,   821,   294,
--32768,-32768,-32768,-32768,   185,   296,-32768,-32768,-32768,   145,
-   194,-32768,-32768,   131,   145,   196,   198,     5,-32768,-32768,
-   594,-32768,    64,   145,-32768,-32768,-32768,-32768,-32768,   -66,
--32768,   193,   195,   202,   235,   159,-32768,-32768,   -60,-32768,
--32768,   237,-32768,-32768,-32768,   299,   -11,   204,   273,   206,
-   243,   -27,   -12,-32768,    -6,-32768,-32768,   207,-32768,   209,
--32768,-32768,-32768,-32768,-32768,   302,   821,   309,   145,   268,
--32768,-32768,   205,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+static const short yypact[] = {   166,
+-32768,-32768,   166,-32768,   -69,-32768,    32,    14,-32768,-32768,
+-32768,-32768,    60,-32768,   -62,   132,-32768,-32768,    55,    42,
+   -13,    58,    65,    64,   125,   132,-32768,    96,-32768,-32768,
+-32768,-32768,-32768,   135,-32768,-32768,   507,-32768,   158,     9,
+-32768,-32768,-32768,    38,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   122,   507,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,   357,   736,-32768,   100,-32768,    80,-32768,
+   146,-32768,-32768,    34,-32768,   -17,-32768,   147,-32768,-32768,
+-32768,    -4,   140,-32768,   178,-32768,   184,   159,-32768,-32768,
+-32768,-32768,-32768,   215,   188,-32768,-32768,-32768,   811,   269,
+-32768,-32768,-32768,-32768,   170,   282,-32768,-32768,-32768,   168,
+   180,-32768,-32768,   166,   168,   182,   186,     8,-32768,-32768,
+   584,-32768,    44,   168,-32768,-32768,-32768,-32768,-32768,   -10,
+-32768,   189,   191,   198,   225,   465,-32768,-32768,   -69,-32768,
+-32768,   204,-32768,-32768,-32768,   280,    -8,   199,   256,   200,
+   238,   -25,   -24,-32768,   -44,-32768,-32768,   205,-32768,   206,
+-32768,-32768,-32768,-32768,-32768,   309,   811,   305,   168,   202,
+-32768,-32768,   201,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,   208,   212,-32768,   -19,-32768,     6,-32768,   211,   292,
-    42,   254,   217,     7,   453,   255,-32768,   219,     7,   260,
--32768,    50,-32768,    12,   218,-32768,-32768,-32768,-32768,   234,
-   306,-32768,-32768,    -4,-32768,-32768,   303,-32768,   131,   453,
-   230,   229,-32768,-32768,   184,   244,   238,    -4,-32768,-32768,
--32768,   236,-32768,-32768,-32768,-32768,   237,   342,   309,   159,
-   251,   237,   159,-32768,   259,   259,-32768,-32768,   671,-32768,
-   309,   239,    83,-32768,-32768,   218,-32768,   453,   283,   246,
-   245,-32768,-32768,   218,   252,   126,   309,   453,   248,   309,
--32768,-32768,   102,-32768,-32768,   256,   110,-32768,-32768,-32768,
--32768,   465,   257,   250,   263,   168,   262,   253,   266,-32768,
-   268,-32768,-32768,-32768,-32768,   465,   465,-32768,   465,   453,
-   282,   261,-32768,-32768,   367,-32768,-32768,   293,-32768,-32768,
--32768,-32768,-32768,     8,     8,-32768,   225,-32768,    42,-32768,
-   270,   218,-32768,     7,     8,-32768,   278,   218,-32768,   276,
--32768,   218,-32768,    56,   225,-32768,    12,-32768,-32768,-32768,
-   271,-32768,-32768,    46,-32768,-32768,-32768,-32768,-32768,-32768,
-   280,-32768,-32768,     1,   111,-32768,-32768,   281,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   279,   671,
--32768,   671,-32768,   284,   286,-32768,   342,-32768,-32768,   134,
--32768,    -6,-32768,   309,   277,-32768,-32768,   261,-32768,   453,
--32768,-32768,-32768,-32768,   367,-32768,    46,    17,   277,   309,
--32768,   183,   184,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,    13,-32768,-32768,-32768,-32768,   391,   395,-32768
+-32768,   207,   208,-32768,    50,-32768,    39,-32768,   209,   290,
+    12,   217,   211,     7,   268,   252,-32768,   218,     7,   254,
+-32768,    53,-32768,     5,   213,-32768,-32768,-32768,-32768,   229,
+   303,-32768,-32768,    -1,-32768,-32768,   216,-32768,   166,   268,
+   226,   224,-32768,-32768,   156,   237,   230,    -1,-32768,-32768,
+-32768,   231,-32768,-32768,-32768,-32768,   204,   336,   305,   465,
+   245,   204,   465,-32768,   253,   253,-32768,-32768,   661,-32768,
+   305,   233,    81,-32768,-32768,   213,-32768,   268,   276,   241,
+   242,-32768,-32768,   213,   243,    68,   305,   268,   247,   305,
+-32768,-32768,    82,-32768,-32768,   248,    89,-32768,-32768,-32768,
+-32768,   455,   249,   244,   258,   286,   250,   259,   257,   260,
+-32768,   202,-32768,-32768,-32768,-32768,   455,   455,-32768,   455,
+   268,   448,   251,-32768,-32768,   363,-32768,-32768,   285,-32768,
+-32768,-32768,-32768,-32768,     0,     0,-32768,   214,-32768,    12,
+-32768,   264,   213,-32768,     7,     0,-32768,   272,   213,-32768,
+   270,-32768,   213,-32768,    67,   214,-32768,     5,-32768,-32768,
+-32768,   263,-32768,-32768,   218,    19,-32768,-32768,-32768,-32768,
+-32768,-32768,   271,-32768,-32768,     6,   119,-32768,-32768,   275,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+   274,   661,-32768,   661,-32768,   278,   279,-32768,   336,-32768,
+-32768,   127,-32768,   -44,-32768,   305,   277,-32768,-32768,   251,
+-32768,   268,-32768,-32768,-32768,-32768,   363,-32768,    19,    17,
+   277,   305,-32768,   149,   156,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,    28,-32768,-32768,-32768,-32768,   388,   391,
+-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,   396,   269,-32768,-32768,   389,-32768,-32768,   383,-32768,
--32768,   354,-32768,-32768,-32768,   337,-32768,   297,-32768,-32768,
-   304,-32768,   348,-32768,-32768,   116,-32768,-32768,   258,-32768,
-    80,   210,-32768,    84,-32768,    97,-32768,   172,-32768,   177,
--32768,-32768,-32768,-32768,    10,  -187,   -74,  -192,   -53,-32768,
-   191,  -190,  -122,-32768,  -169,-32768,  -256,  -118,    43,   -33,
-  -120,-32768,    48,-32768,-32768,-32768,  -151,-32768,-32768,  -205,
-  -165,   -96,-32768,   197,-32768,  -213,-32768,-32768,-32768,    29,
--32768,-32768,-32768,-32768,-32768,-32768,    39,    45,  -121,-32768,
--32768,-32768,    99,  -126,   -79,-32768,-32768,-32768,-32768,    16,
--32768,   161,    -7
+-32768,   389,   255,-32768,-32768,   380,-32768,-32768,   370,-32768,
+-32768,   341,-32768,-32768,-32768,   327,-32768,   289,-32768,-32768,
+   300,-32768,   346,-32768,-32768,   110,-32768,-32768,   246,-32768,
+    66,   210,-32768,    85,-32768,    86,-32768,   165,-32768,   163,
+-32768,-32768,-32768,-32768,     3,  -189,   -73,  -186,   -54,-32768,
+   181,  -190,  -114,-32768,   -47,-32768,  -251,  -118,    40,   -40,
+  -120,-32768,    33,-32768,-32768,-32768,  -150,-32768,   133,  -164,
+  -166,  -201,-32768,   193,-32768,  -218,-32768,-32768,-32768,    23,
+-32768,-32768,-32768,-32768,-32768,-32768,    37,    43,  -152,-32768,
+-32768,-32768,    93,  -128,   -80,-32768,-32768,-32768,-32768,    16,
+-32768,   154,    -7
 };
 
 
-#define	YYLAST		917
+#define	YYLAST		907
 
 
 static const short yytable[] = {    15,
-   158,   210,   121,   211,   235,    15,   256,   120,    10,   191,
-   101,   101,   175,   265,    10,     5,   421,   190,     5,    10,
-   171,   172,    10,    11,   299,   143,   117,   171,   172,    65,
-   102,   102,    72,   415,    10,    11,    79,   114,   269,   166,
-   253,    10,   253,   167,     7,    10,     1,     2,    65,    10,
-     1,     2,    64,    10,   203,    71,    67,    10,   180,    78,
-    16,   183,   331,    10,   180,   132,    79,   183,    10,   203,
-   371,    64,   340,     1,     2,   203,   254,   204,   254,   205,
-   317,   144,   353,   322,    63,   285,   251,   416,   384,    78,
-   252,   417,   209,  -270,   205,   145,    28,   363,   294,   115,
-   205,   124,    72,    63,   361,    19,   161,    79,    73,   295,
-   262,  -244,   118,   394,   133,  -244,   165,   162,   425,    32,
-    12,   118,   255,   191,   175,    71,   191,   118,   193,   139,
-    78,   190,    17,   132,   190,   235,   160,    29,   158,   164,
-   291,   265,   112,     1,     2,   262,    68,    30,   267,   389,
-   176,   192,    10,   281,    20,   282,    31,     1,     2,   281,
-   217,   219,    21,   177,   178,   179,    10,   180,   181,   182,
-   183,     1,     2,   178,    33,    10,   180,   181,   182,   183,
-   109,   110,   133,    22,   218,    23,   421,   401,   328,   402,
-    34,   330,   329,   266,    24,   348,   274,   171,   172,   335,
-   372,   274,   369,   370,   286,   184,   290,   343,    36,   358,
-   359,   344,   360,   378,   222,   346,   397,   285,   385,   347,
-   398,   424,    37,   185,   302,   303,   304,   305,    66,   352,
-    80,   424,    10,   180,   413,   337,   183,     1,     2,   406,
-   408,   316,   193,   407,   298,   193,   186,     1,     2,   171,
-   172,   171,   172,   326,   108,   226,   111,   376,   380,   158,
-   116,   158,   382,   187,   125,   192,    83,    84,   192,   339,
-   124,   126,   339,   178,   160,    10,   180,   181,   182,   183,
-     1,     2,   302,   303,   304,   305,   220,   178,   127,    10,
-   180,   181,   182,   183,   128,   129,   134,   135,   136,   138,
-   221,   141,   142,   168,   215,   169,   170,   199,  -271,   200,
-   201,   212,   202,   214,   222,   223,    10,   247,   261,   373,
-   249,   266,   250,   268,   277,   278,   274,   260,   222,   280,
-   224,   292,   293,   118,   297,   300,   286,   373,   301,   290,
-   312,   308,   192,   362,   310,   314,   392,   318,   323,   225,
-   327,   333,   332,   341,   334,   226,   396,    82,   355,   336,
-   192,   349,   345,   350,   227,   351,   354,    83,    84,   226,
-   367,   228,   229,   356,   230,   364,   368,   375,    85,    38,
-    86,   379,    87,   381,   388,   399,   396,   393,   400,   410,
-   428,   403,    88,   404,   429,   160,    89,   160,     6,   392,
-    90,    18,   420,    91,    41,    42,    43,   194,    35,    81,
-   113,   140,   106,   137,    92,    45,   357,   377,   279,    93,
-    46,    94,    47,    95,   216,   374,   386,   325,   321,   405,
-    48,   426,    96,    97,   311,   414,   411,   313,   409,    49,
-   342,    50,   383,     0,     0,     0,    51,    98,    52,    53,
-    54,     0,     0,     0,     0,     0,     0,     0,   178,    99,
-    10,   180,   181,   182,   183,     1,     2,     0,     0,     0,
-   178,   220,    10,   180,   181,   182,   183,     1,     2,     0,
-     0,     0,     0,     0,     0,   221,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   221,     0,   222,
-   223,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   222,   223,     0,     0,   224,     0,     0,     0,     0,
-     0,     0,     0,     0,    10,     0,     0,   224,     0,     1,
-     2,     0,     0,     0,   225,     0,     0,     0,     0,     0,
-   226,    38,     0,     0,     0,     0,   225,     0,     0,   227,
-     0,     0,   226,     0,     0,     0,    39,   229,     0,   230,
-    40,   227,     0,     0,     0,     0,    41,    42,    43,   229,
-     0,   230,    44,     0,     0,     0,     0,    45,     0,     0,
+   158,   121,   210,   235,   211,    15,   256,   191,   120,   101,
+   101,   265,    10,    10,    10,     5,    10,   190,     5,    10,
+   175,     1,     2,   102,   102,   117,    10,    67,   143,    65,
+   114,   423,    72,   417,   253,     7,    79,   203,   269,    10,
+    11,    10,   171,   172,    19,    10,     1,     2,    65,    16,
+     1,     2,    64,   171,   172,    71,   203,   203,   132,    78,
+    10,   180,   205,    28,   183,   300,    79,    10,    11,    63,
+   254,    64,    30,   253,    10,   180,   373,   354,   183,   204,
+   209,   205,   205,   285,   144,    73,   161,   418,    63,    78,
+   349,   419,   115,   365,   386,   166,  -271,   162,   145,   167,
+    29,   294,    72,   332,   124,   360,   361,    79,   362,   254,
+   262,   118,   295,   341,   133,   262,   165,    68,   396,    32,
+   118,   191,   391,   255,   191,    71,   132,    34,   193,   139,
+    78,   190,   175,   427,   190,   235,   160,    12,   158,   164,
+   265,   291,   112,    31,  -245,    20,   363,   267,  -245,    33,
+   176,   192,   423,    21,   118,   251,   281,    37,   282,   252,
+   217,   219,    80,   171,   172,    17,   303,   304,   305,   306,
+   281,    66,   371,   372,    22,    10,    23,   338,     1,     2,
+     1,     2,   133,   380,   218,    24,   329,   344,   109,   110,
+   330,   345,   331,   266,   347,   403,   274,   404,   348,   374,
+   336,   274,   318,    36,   286,   323,   290,   178,   108,    10,
+   180,   181,   182,   183,     1,     2,   285,   387,   171,   172,
+   220,    10,   180,   426,   399,   183,     1,     2,   400,    83,
+    84,   127,   408,   426,   221,   415,   409,     1,     2,   171,
+   172,   317,   193,   410,   299,   193,   297,   298,   222,   223,
+   111,   116,   124,   327,   303,   304,   305,   306,   382,   378,
+   125,   158,   384,   158,   224,   192,   126,   128,   192,   340,
+   129,   134,   340,   178,   160,    10,   180,   181,   182,   183,
+     1,     2,   135,   225,   136,   138,   220,   141,   199,   226,
+   142,   178,   200,    10,   180,   181,   182,   183,   227,   168,
+   221,   169,   170,  -272,   201,   228,   229,   202,   230,   212,
+   214,   215,    10,   247,   222,   223,   261,   268,   250,   249,
+   375,   277,   266,   280,   278,   260,   292,   274,   118,   293,
+   224,   301,   222,   302,   309,   313,   311,   286,   375,   315,
+   290,   319,   324,   192,   328,   333,   334,   353,   394,   225,
+   337,   335,   342,   350,   346,   226,   205,   351,   398,    82,
+   352,   192,   357,   356,   227,   366,   369,   358,   370,    83,
+    84,   377,   229,   226,   230,   381,   390,   383,   395,   401,
+    85,    38,    86,   402,    87,   405,   406,   430,   398,   412,
+   431,     6,    18,   194,    88,    35,    81,   160,    89,   160,
+   113,   394,    90,   140,   422,    91,    41,    42,    43,   137,
+   106,   359,   216,   388,   322,   376,    92,    45,   279,   379,
+   326,    93,    46,    94,    47,    95,   428,   314,   407,   355,
+   312,   416,    48,   343,    96,    97,   413,   385,   411,     0,
+     0,    49,     0,    50,     0,     0,     0,     0,    51,    98,
+    52,    53,    54,   178,     0,    10,   180,   181,   182,   183,
+   178,    99,    10,   180,   181,   182,   183,     1,     2,   177,
+   178,   179,    10,   180,   181,   182,   183,     1,     2,     0,
+     0,     0,     0,     0,     0,     0,     0,   221,     0,     0,
+     0,     0,     0,     0,   222,     0,     0,     0,     0,     0,
+     0,   222,   223,     0,     0,     0,     0,     0,     0,   364,
+     0,   184,     0,     0,    10,     0,     0,   224,     0,     1,
+     2,     0,     0,     0,     0,     0,     0,     0,     0,   185,
+     0,    38,     0,     0,     0,   226,   225,     0,     0,     0,
+     0,     0,   226,     0,     0,     0,    39,     0,     0,     0,
+    40,   227,   186,     0,     0,     0,    41,    42,    43,   229,
+     0,   230,    44,     0,     0,     0,     0,    45,     0,   187,
      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,   147,   148,    51,     0,
@@ -729,64 +731,63 @@
 };
 
 static const short yycheck[] = {     7,
-   121,   153,    82,   155,   170,    13,   197,    82,     8,   136,
-    64,    65,   135,   201,     8,     0,     4,   136,     3,     8,
-    15,    16,     8,     9,   230,    21,    30,    15,    16,    37,
-    64,    65,    40,    17,     8,     9,    44,    48,    32,   106,
-    35,     8,    35,   110,   105,     8,    13,    14,    56,     8,
-    13,    14,    37,     8,    82,    40,    19,     8,     9,    44,
-    36,    12,   268,     8,     9,    99,    74,    12,     8,    82,
-   327,    56,   278,    13,    14,    82,    71,   105,    71,   107,
-   250,    77,   296,   253,    37,   212,   106,    71,   345,    74,
-   110,    75,   105,   105,   107,    91,     9,   311,   103,   110,
-   107,   113,   110,    56,   310,   107,    43,   115,    48,   114,
-   104,   106,   116,   113,    99,   110,   124,    54,   106,    55,
-   106,   116,   197,   250,   247,   110,   253,   116,   136,   114,
-   115,   250,   106,   167,   253,   301,   121,    59,   259,   124,
-   215,   329,   109,    13,    14,   104,   109,    86,   202,   104,
-   135,   136,     8,   104,    14,   106,    86,    13,    14,   104,
-   168,   169,    22,     5,     6,     7,     8,     9,    10,    11,
-    12,    13,    14,     6,    86,     8,     9,    10,    11,    12,
-   109,   110,   167,    43,   169,    45,     4,   380,   106,   382,
-     3,   266,   110,   201,    54,   292,   204,    15,    16,   274,
-   327,   209,   324,   325,   212,    47,   214,   106,   108,   306,
-   307,   110,   309,   335,    47,   106,   106,   344,   345,   110,
-   110,   412,    23,    65,    99,   100,   101,   102,    14,    62,
-    41,   422,     8,     9,   400,   110,    12,    13,    14,   106,
-   392,   249,   250,   110,   229,   253,    88,    13,    14,    15,
-    16,    15,    16,   261,   109,    88,   105,   332,   338,   380,
-   105,   382,   342,   105,    83,   250,    13,    14,   253,   277,
-   113,    83,   280,     6,   259,     8,     9,    10,    11,    12,
-    13,    14,    99,   100,   101,   102,    19,     6,    73,     8,
-     9,    10,    11,    12,    53,    83,     3,   113,     3,   106,
-    33,   106,   105,   111,     3,   111,   105,     9,   105,    37,
-   105,   105,    70,   105,    47,    48,     8,   113,    27,   327,
-   113,   329,   111,   107,    70,   107,   334,   117,    47,    70,
-    63,    98,    27,   116,    32,   106,   344,   345,   110,   347,
-   105,    98,   327,    62,   107,     4,   354,    97,    90,    82,
-   112,   106,    70,   106,   110,    88,   364,     3,   106,   108,
-   345,   105,   107,   114,    97,   103,   105,    13,    14,    88,
-     4,   104,   105,   108,   107,   115,    84,   108,    24,    25,
-    26,   104,    28,   108,   114,   105,   394,   108,   110,   113,
-     0,   108,    38,   108,     0,   380,    42,   382,     3,   407,
-    46,    13,   410,    49,    50,    51,    52,   139,    26,    56,
-    74,   115,    65,   110,    60,    61,   301,   334,   209,    65,
-    66,    67,    68,    69,   167,   329,   347,   256,   252,   387,
-    76,   422,    78,    79,   238,   407,   398,   247,   394,    85,
-   280,    87,   344,    -1,    -1,    -1,    92,    93,    94,    95,
-    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     6,   105,
-     8,     9,    10,    11,    12,    13,    14,    -1,    -1,    -1,
-     6,    19,     8,     9,    10,    11,    12,    13,    14,    -1,
-    -1,    -1,    -1,    -1,    -1,    33,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    -1,    47,
-    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    47,    48,    -1,    -1,    63,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,     8,    -1,    -1,    63,    -1,    13,
-    14,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
-    88,    25,    -1,    -1,    -1,    -1,    82,    -1,    -1,    97,
-    -1,    -1,    88,    -1,    -1,    -1,    40,   105,    -1,   107,
-    44,    97,    -1,    -1,    -1,    -1,    50,    51,    52,   105,
-    -1,   107,    56,    -1,    -1,    -1,    -1,    61,    -1,    -1,
+   121,    82,   153,   170,   155,    13,   197,   136,    82,    64,
+    65,   201,     8,     8,     8,     0,     8,   136,     3,     8,
+   135,    13,    14,    64,    65,    30,     8,    19,    21,    37,
+    48,     4,    40,    17,    35,   105,    44,    82,    32,     8,
+     9,     8,    15,    16,   107,     8,    13,    14,    56,    36,
+    13,    14,    37,    15,    16,    40,    82,    82,    99,    44,
+     8,     9,   107,     9,    12,   230,    74,     8,     9,    37,
+    71,    56,    86,    35,     8,     9,   328,   296,    12,   105,
+   105,   107,   107,   212,    77,    48,    43,    71,    56,    74,
+   292,    75,   110,   312,   346,   106,   105,    54,    91,   110,
+    59,   103,   110,   268,   113,   307,   308,   115,   310,    71,
+   104,   116,   114,   278,    99,   104,   124,   109,   113,    55,
+   116,   250,   104,   197,   253,   110,   167,     3,   136,   114,
+   115,   250,   247,   106,   253,   302,   121,   106,   259,   124,
+   330,   215,   109,    86,   106,    14,   311,   202,   110,    86,
+   135,   136,     4,    22,   116,   106,   104,    23,   106,   110,
+   168,   169,    41,    15,    16,   106,    99,   100,   101,   102,
+   104,    14,   325,   326,    43,     8,    45,   110,    13,    14,
+    13,    14,   167,   336,   169,    54,   106,   106,   109,   110,
+   110,   110,   266,   201,   106,   382,   204,   384,   110,   328,
+   274,   209,   250,   108,   212,   253,   214,     6,   109,     8,
+     9,    10,    11,    12,    13,    14,   345,   346,    15,    16,
+    19,     8,     9,   414,   106,    12,    13,    14,   110,    13,
+    14,    73,   106,   424,    33,   402,   110,    13,    14,    15,
+    16,   249,   250,   394,   229,   253,    31,    32,    47,    48,
+   105,   105,   113,   261,    99,   100,   101,   102,   339,   333,
+    83,   382,   343,   384,    63,   250,    83,    53,   253,   277,
+    83,     3,   280,     6,   259,     8,     9,    10,    11,    12,
+    13,    14,   113,    82,     3,   106,    19,   106,     9,    88,
+   105,     6,    37,     8,     9,    10,    11,    12,    97,   111,
+    33,   111,   105,   105,   105,   104,   105,    70,   107,   105,
+   105,     3,     8,   113,    47,    48,    27,   107,   111,   113,
+   328,    70,   330,    70,   107,   117,    98,   335,   116,    27,
+    63,   106,    47,   110,    98,   105,   107,   345,   346,     4,
+   348,    97,    90,   328,   112,    70,   106,    62,   356,    82,
+   108,   110,   106,   105,   107,    88,   107,   114,   366,     3,
+   103,   346,   106,   105,    97,   115,     4,   108,    84,    13,
+    14,   108,   105,    88,   107,   104,   114,   108,   108,   105,
+    24,    25,    26,   110,    28,   108,   108,     0,   396,   113,
+     0,     3,    13,   139,    38,    26,    56,   382,    42,   384,
+    74,   409,    46,   115,   412,    49,    50,    51,    52,   110,
+    65,   302,   167,   348,   252,   330,    60,    61,   209,   335,
+   256,    65,    66,    67,    68,    69,   424,   247,   389,   297,
+   238,   409,    76,   280,    78,    79,   400,   345,   396,    -1,
+    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    92,    93,
+    94,    95,    96,     6,    -1,     8,     9,    10,    11,    12,
+     6,   105,     8,     9,    10,    11,    12,    13,    14,     5,
+     6,     7,     8,     9,    10,    11,    12,    13,    14,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    -1,    -1,
+    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    -1,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    62,
+    -1,    47,    -1,    -1,     8,    -1,    -1,    63,    -1,    13,
+    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
+    -1,    25,    -1,    -1,    -1,    88,    82,    -1,    -1,    -1,
+    -1,    -1,    88,    -1,    -1,    -1,    40,    -1,    -1,    -1,
+    44,    97,    88,    -1,    -1,    -1,    50,    51,    52,   105,
+    -1,   107,    56,    -1,    -1,    -1,    -1,    61,    -1,   105,
     -1,    -1,    66,    -1,    68,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    85,    -1,    87,    -1,    -1,    13,    14,    92,    -1,
@@ -3084,79 +3085,87 @@
 case 224:
 #line 1746 "asn1p_y.y"
 {
-		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
+		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0);
 	;
     break;}
 case 225:
-#line 1752 "asn1p_y.y"
+#line 1749 "asn1p_y.y"
 {
-		yyval.a_constr = yyvsp[0].a_constr;
+		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
 	;
     break;}
 case 226:
 #line 1755 "asn1p_y.y"
 {
-		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
+		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 227:
-#line 1761 "asn1p_y.y"
+#line 1758 "asn1p_y.y"
+{
+		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
+	;
+    break;}
+case 228:
+#line 1764 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
 		yyval.a_constr->type = ACT_EL_EXT;
+		yyval.a_constr->value = asn1p_value_frombuf("...", 3, 0);
 	;
     break;}
-case 228:
-#line 1766 "asn1p_y.y"
+case 229:
+#line 1770 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
 		yyval.a_constr->type = ACT_EL_VALUE;
 		yyval.a_constr->value = asn1p_value_frombuf(yyvsp[-2].tv_str, strlen(yyvsp[-2].tv_str), 0);
 		yyval.a_constr->presence = yyvsp[0].a_pres;
+		if(yyvsp[-1].a_constr) asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
 	;
     break;}
-case 229:
-#line 1779 "asn1p_y.y"
+case 230:
+#line 1784 "asn1p_y.y"
 { yyval.a_pres = ACPRES_DEFAULT; ;
     break;}
-case 230:
-#line 1780 "asn1p_y.y"
+case 231:
+#line 1785 "asn1p_y.y"
 { yyval.a_pres = yyvsp[0].a_pres; ;
     break;}
-case 231:
-#line 1784 "asn1p_y.y"
+case 232:
+#line 1789 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_PRESENT;
 	;
     break;}
-case 232:
-#line 1787 "asn1p_y.y"
+case 233:
+#line 1792 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_ABSENT;
 	;
     break;}
-case 233:
-#line 1790 "asn1p_y.y"
+case 234:
+#line 1795 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_OPTIONAL;
 	;
     break;}
-case 234:
-#line 1796 "asn1p_y.y"
-{
-		yyval.a_constr = yyvsp[0].a_constr;
-	;
-    break;}
 case 235:
-#line 1799 "asn1p_y.y"
+#line 1801 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 236:
-#line 1808 "asn1p_y.y"
+#line 1804 "asn1p_y.y"
+{
+		yyval.a_constr = yyvsp[0].a_constr;
+	;
+    break;}
+case 237:
+#line 1813 "asn1p_y.y"
 {
 		asn1p_ref_t *ref = asn1p_ref_new(yylineno);
 		asn1p_constraint_t *ct;
@@ -3170,14 +3179,14 @@
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0);
 	;
     break;}
-case 237:
-#line 1823 "asn1p_y.y"
+case 238:
+#line 1828 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
-case 238:
-#line 1829 "asn1p_y.y"
+case 239:
+#line 1834 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3185,8 +3194,8 @@
 		yyval.a_constr->value = asn1p_value_fromref(yyvsp[0].a_ref, 0);
 	;
     break;}
-case 239:
-#line 1835 "asn1p_y.y"
+case 240:
+#line 1840 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -3196,8 +3205,8 @@
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
 	;
     break;}
-case 240:
-#line 1849 "asn1p_y.y"
+case 241:
+#line 1854 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
 		int ret;
@@ -3210,8 +3219,8 @@
 		free(yyvsp[0].tv_str);
 	;
     break;}
-case 241:
-#line 1860 "asn1p_y.y"
+case 242:
+#line 1865 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
 		int ret;
@@ -3225,14 +3234,14 @@
 		free(yyvsp[0].tv_str);
 	;
     break;}
-case 242:
-#line 1876 "asn1p_y.y"
+case 243:
+#line 1881 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
-case 243:
-#line 1879 "asn1p_y.y"
+case 244:
+#line 1884 "asn1p_y.y"
 {
 		int l1 = strlen(yyvsp[-2].tv_str);
 		int l3 = strlen(yyvsp[0].tv_str);
@@ -3243,61 +3252,61 @@
 		yyval.tv_str[l1 + 1 + l3] = '\0';
 	;
     break;}
-case 244:
-#line 1897 "asn1p_y.y"
+case 245:
+#line 1902 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_NOMARK;
 		yyval.a_marker.default_value = 0;
 	;
     break;}
-case 245:
-#line 1901 "asn1p_y.y"
+case 246:
+#line 1906 "asn1p_y.y"
 { yyval.a_marker = yyvsp[0].a_marker; ;
     break;}
-case 246:
-#line 1905 "asn1p_y.y"
+case 247:
+#line 1910 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_OPTIONAL;
 		yyval.a_marker.default_value = 0;
 	;
     break;}
-case 247:
-#line 1909 "asn1p_y.y"
+case 248:
+#line 1914 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_DEFAULT;
 		yyval.a_marker.default_value = yyvsp[0].a_value;
 	;
     break;}
-case 248:
-#line 1932 "asn1p_y.y"
+case 249:
+#line 1937 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
 	;
     break;}
-case 249:
-#line 1936 "asn1p_y.y"
-{
-		yyval.a_expr = yyvsp[-1].a_expr;
-	;
-    break;}
 case 250:
-#line 1942 "asn1p_y.y"
+#line 1941 "asn1p_y.y"
 {
-		yyval.a_expr = asn1p_expr_new(yylineno);
-		checkmem(yyval.a_expr);
-		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
+		yyval.a_expr = yyvsp[-1].a_expr;
 	;
     break;}
 case 251:
 #line 1947 "asn1p_y.y"
 {
-		yyval.a_expr = yyvsp[-2].a_expr;
+		yyval.a_expr = asn1p_expr_new(yylineno);
+		checkmem(yyval.a_expr);
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
 case 252:
-#line 1954 "asn1p_y.y"
+#line 1952 "asn1p_y.y"
+{
+		yyval.a_expr = yyvsp[-2].a_expr;
+		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
+	;
+    break;}
+case 253:
+#line 1959 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3306,19 +3315,8 @@
 		yyval.a_expr->Identifier = yyvsp[0].tv_str;
 	;
     break;}
-case 253:
-#line 1961 "asn1p_y.y"
-{
-		yyval.a_expr = asn1p_expr_new(yylineno);
-		checkmem(yyval.a_expr);
-		yyval.a_expr->expr_type = A1TC_UNIVERVAL;
-		yyval.a_expr->meta_type = AMT_VALUE;
-		yyval.a_expr->Identifier = yyvsp[-3].tv_str;
-		yyval.a_expr->value = yyvsp[-1].a_value;
-	;
-    break;}
 case 254:
-#line 1969 "asn1p_y.y"
+#line 1966 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3329,7 +3327,18 @@
 	;
     break;}
 case 255:
-#line 1977 "asn1p_y.y"
+#line 1974 "asn1p_y.y"
+{
+		yyval.a_expr = asn1p_expr_new(yylineno);
+		checkmem(yyval.a_expr);
+		yyval.a_expr->expr_type = A1TC_UNIVERVAL;
+		yyval.a_expr->meta_type = AMT_VALUE;
+		yyval.a_expr->Identifier = yyvsp[-3].tv_str;
+		yyval.a_expr->value = yyvsp[-1].a_value;
+	;
+    break;}
+case 256:
+#line 1982 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3338,8 +3347,8 @@
 		yyval.a_expr->value = yyvsp[0].a_value;
 	;
     break;}
-case 256:
-#line 1984 "asn1p_y.y"
+case 257:
+#line 1989 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3349,103 +3358,103 @@
 		yyval.a_expr->meta_type = AMT_VALUE;
 	;
     break;}
-case 257:
-#line 1995 "asn1p_y.y"
-{
-		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
-		checkmem(yyval.a_value);
-	;
-    break;}
 case 258:
-#line 1999 "asn1p_y.y"
+#line 2000 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 	;
     break;}
 case 259:
-#line 2030 "asn1p_y.y"
-{ memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
+#line 2004 "asn1p_y.y"
+{
+		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
+		checkmem(yyval.a_value);
+	;
     break;}
 case 260:
-#line 2031 "asn1p_y.y"
-{ yyval.a_tag = yyvsp[0].a_tag; ;
+#line 2035 "asn1p_y.y"
+{ memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
     break;}
 case 261:
-#line 2035 "asn1p_y.y"
+#line 2036 "asn1p_y.y"
+{ yyval.a_tag = yyvsp[0].a_tag; ;
+    break;}
+case 262:
+#line 2040 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-1].a_tag;
 		yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode;
 	;
     break;}
-case 262:
-#line 2042 "asn1p_y.y"
+case 263:
+#line 2047 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-2].a_tag;
 		yyval.a_tag.tag_value = yyvsp[-1].a_int;
 	;
     break;}
-case 263:
-#line 2048 "asn1p_y.y"
+case 264:
+#line 2053 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ;
     break;}
-case 264:
-#line 2049 "asn1p_y.y"
+case 265:
+#line 2054 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_UNIVERSAL; ;
     break;}
-case 265:
-#line 2050 "asn1p_y.y"
+case 266:
+#line 2055 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_APPLICATION; ;
     break;}
-case 266:
-#line 2051 "asn1p_y.y"
+case 267:
+#line 2056 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_PRIVATE; ;
     break;}
-case 267:
-#line 2055 "asn1p_y.y"
+case 268:
+#line 2060 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_DEFAULT; ;
     break;}
-case 268:
-#line 2056 "asn1p_y.y"
+case 269:
+#line 2061 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_IMPLICIT; ;
     break;}
-case 269:
-#line 2057 "asn1p_y.y"
+case 270:
+#line 2062 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_EXPLICIT; ;
     break;}
-case 270:
-#line 2061 "asn1p_y.y"
-{
-		checkmem(yyvsp[0].tv_str);
-		yyval.tv_str = yyvsp[0].tv_str;
-	;
-    break;}
 case 271:
-#line 2065 "asn1p_y.y"
+#line 2066 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 272:
-#line 2073 "asn1p_y.y"
+#line 2070 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 273:
-#line 2080 "asn1p_y.y"
-{ yyval.tv_str = 0; ;
+#line 2078 "asn1p_y.y"
+{
+		checkmem(yyvsp[0].tv_str);
+		yyval.tv_str = yyvsp[0].tv_str;
+	;
     break;}
 case 274:
-#line 2081 "asn1p_y.y"
+#line 2085 "asn1p_y.y"
+{ yyval.tv_str = 0; ;
+    break;}
+case 275:
+#line 2086 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
-case 275:
-#line 2086 "asn1p_y.y"
+case 276:
+#line 2091 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
@@ -3673,7 +3682,7 @@
     }
   return 1;
 }
-#line 2092 "asn1p_y.y"
+#line 2097 "asn1p_y.y"