OPTIONAL UNIQUE -> UNIQUE OPTIONAL


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@581 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 2c520f8..a3af298 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -307,7 +307,7 @@
    161,     0,   151,     0,   150,   109,   151,     0,   212,   162,
      0,   161,     0,    28,   104,   154,   105,   156,     0,     0,
     88,     0,   155,     0,   154,   109,   155,     0,   167,   201,
-     0,   167,   162,   201,   153,     0,   167,   167,   201,   153,
+     0,   167,   162,   153,   201,     0,   167,   167,   153,   201,
      0,     0,   157,     0,     0,    95,    82,   104,   158,   159,
    105,     0,   160,     0,   159,   160,     0,     4,     0,   167,
      0,   102,     0,   102,   111,   172,     0,   102,   111,   206,
@@ -520,18 +520,18 @@
    105,     0,   162,   250,   250,    67,    70,    69,   212,   213,
    209,     0,   208,   214,     0,    60,     0,     0,     0,    57,
     58,    61,   191,     0,   197,   203,   202,   225,   226,   210,
-   211,     0,     0,     0,     0,    94,     0,     0,   237,   235,
-   235,    91,   236,     0,     0,   102,     0,    82,    85,   250,
+   211,     0,     0,     0,     0,    94,     0,     0,   237,    87,
+    87,    91,   236,     0,     0,   102,     0,    82,    85,   250,
    117,     0,     0,     0,    76,    77,    81,   250,     0,   188,
    258,     0,     0,   258,   247,   239,     0,   241,   246,   243,
      0,    71,    73,    74,    65,   204,     0,     0,     0,     0,
      0,    53,     0,   179,   180,   177,   178,     0,     0,   181,
      0,     0,     0,     0,   125,   144,   133,   143,   131,     0,
-    86,    95,    90,   238,    87,    87,   114,     0,   108,     0,
-    84,     0,   250,   109,     0,   235,   186,     0,   250,   259,
-     0,   110,   250,   240,     0,     0,   115,   250,   205,   206,
-   201,   199,     0,   227,   196,    59,   192,   193,   194,     0,
-   200,   198,     0,     0,   229,   145,     0,    88,    92,    93,
+    86,    95,    90,   238,    88,   235,   235,   114,     0,   108,
+     0,    84,     0,   250,   109,     0,   235,   186,     0,   250,
+   259,     0,   110,   250,   240,     0,     0,   115,   250,   205,
+   206,   201,   199,     0,   227,   196,    59,   192,   193,   194,
+     0,   200,   198,     0,     0,   229,   145,     0,    92,    93,
    103,   104,   142,    83,   185,    80,    78,    79,   189,     0,
    187,     0,   242,     0,     0,    72,   207,   218,     0,   216,
    182,   195,     0,   231,   233,   228,     0,    96,     0,   111,
@@ -544,208 +544,206 @@
      3,     4,     8,     9,    13,    14,    25,    26,    27,    55,
     56,    57,   106,    58,    74,    75,    76,    77,    59,    69,
     70,    60,   100,   219,   220,   221,    61,   128,   129,   271,
-   272,   254,   255,   256,   247,   248,   118,   349,   186,   187,
+   272,   254,   255,   256,   247,   248,   118,   306,   186,   187,
    301,   302,   390,   400,   401,   257,   273,   151,   152,   167,
    168,   188,   189,    62,   180,   233,   181,   297,   153,   103,
    155,   156,   288,   289,   291,   196,   197,   198,   259,   260,
    223,   278,   224,   225,   226,   369,   370,   396,   397,   227,
-   228,   229,   344,   345,   374,   242,   243,   203,   267,   268,
-   230,   244,   121,   183,   104,   319,   231
+   228,   229,   345,   346,   374,   242,   243,   203,   267,   268,
+   230,   244,   121,   183,   104,   320,   231
 };
 
-static const short yypact[] = {   203,
--32768,-32768,   203,-32768,   -50,-32768,    27,    63,-32768,-32768,
--32768,-32768,    54,-32768,   -40,    38,-32768,-32768,    79,    47,
-    49,    73,    91,    80,   113,    38,-32768,    71,-32768,-32768,
--32768,-32768,-32768,   149,-32768,-32768,   334,-32768,   174,    34,
--32768,-32768,-32768,   135,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   150,   334,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,    17,   327,-32768,    83,-32768,   190,-32768,
-   102,-32768,-32768,    11,-32768,   -22,-32768,   108,-32768,-32768,
--32768,     3,   117,-32768,   142,-32768,   158,   176,-32768,-32768,
--32768,-32768,-32768,   199,   185,-32768,-32768,-32768,   548,   265,
--32768,-32768,-32768,   175,   290,-32768,-32768,-32768,   197,   201,
--32768,-32768,   203,   197,   215,   198,   111,-32768,-32768,   411,
--32768,   197,-32768,-32768,-32768,-32768,-32768,   -14,-32768,   213,
-   214,   221,   278,   269,-32768,-32768,   -50,-32768,-32768,   291,
--32768,-32768,    65,   223,   293,   225,   262,    -3,    92,-32768,
-   -46,-32768,-32768,   230,-32768,-32768,   231,-32768,-32768,   337,
-   548,   329,   329,   165,-32768,-32768,   232,-32768,-32768,-32768,
+static const short yypact[] = {   244,
+-32768,-32768,   244,-32768,   -75,-32768,     5,    42,-32768,-32768,
+-32768,-32768,    36,-32768,   -67,   161,-32768,-32768,    76,    51,
+   -14,    29,    46,    50,   119,   161,-32768,    39,-32768,-32768,
+-32768,-32768,-32768,   141,-32768,-32768,   305,-32768,   168,    11,
+-32768,-32768,-32768,   157,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   167,   305,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,    14,   519,-32768,    75,-32768,   197,-32768,
+   121,-32768,-32768,    23,-32768,   -22,-32768,   130,-32768,-32768,
+-32768,    -8,   111,-32768,   155,-32768,   166,   171,-32768,-32768,
+-32768,-32768,-32768,   202,   177,-32768,-32768,-32768,   536,   274,
+-32768,-32768,-32768,   154,   285,-32768,-32768,-32768,   174,   185,
+-32768,-32768,   244,   174,   193,   196,   108,-32768,-32768,   382,
+-32768,   174,-32768,-32768,-32768,-32768,-32768,    58,-32768,   201,
+   208,   199,   283,   263,-32768,-32768,   -75,-32768,-32768,   310,
+-32768,-32768,    -6,   203,   286,   221,   261,   -24,    71,-32768,
+   -20,-32768,-32768,   235,-32768,-32768,   237,-32768,-32768,   335,
+   536,   334,   334,   144,-32768,-32768,   232,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   235,   233,-32768,   116,-32768,    85,-32768,   323,
-    32,   305,   244,    48,   227,   284,-32768,   248,    48,   288,
--32768,    60,-32768,    19,   256,-32768,-32768,-32768,-32768,-32768,
--32768,   -69,-32768,-32768,   328,-32768,   203,   227,   257,   251,
--32768,   212,   268,   259,   -69,-32768,-32768,   264,-32768,-32768,
--32768,   291,   357,   329,   269,   275,   291,   269,-32768,    67,
-    67,-32768,-32768,   488,   329,   258,   125,-32768,-32768,   256,
--32768,   227,   311,   281,   271,-32768,-32768,   256,   280,   104,
-   329,   227,   286,   329,-32768,-32768,   137,-32768,-32768,   283,
-   144,-32768,-32768,-32768,-32768,   282,   295,   210,   297,   292,
-   298,-32768,   165,-32768,-32768,-32768,-32768,   227,   227,-32768,
-   227,   227,   255,   285,-32768,-32768,   398,-32768,-32768,   324,
--32768,-32768,-32768,-32768,   319,   319,-32768,   274,-32768,    32,
--32768,   302,   256,-32768,    48,    67,-32768,   308,   256,-32768,
-   304,-32768,   256,-32768,    64,   274,-32768,    19,-32768,   299,
--32768,-32768,    39,-32768,-32768,-32768,-32768,-32768,-32768,   306,
--32768,-32768,     1,   147,-32768,-32768,   310,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   307,   488,
--32768,   488,-32768,   313,   314,-32768,-32768,-32768,   153,-32768,
-   -46,-32768,   329,   303,-32768,-32768,   285,-32768,   227,-32768,
--32768,-32768,-32768,-32768,    39,    23,   303,   329,-32768,   154,
-   212,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    12,
--32768,-32768,-32768,-32768,   425,   430,-32768
+-32768,-32768,   233,   236,-32768,   117,-32768,    61,-32768,   323,
+    19,   324,   245,    43,   206,   282,-32768,   246,    43,   289,
+-32768,    38,-32768,    13,   255,-32768,-32768,-32768,-32768,-32768,
+-32768,    -9,-32768,-32768,   330,-32768,   244,   206,   256,   253,
+-32768,   234,   267,   259,    -9,-32768,-32768,   264,-32768,-32768,
+-32768,   310,   366,   334,   263,   277,   310,   263,-32768,   288,
+   288,-32768,-32768,   459,   334,   262,   128,-32768,-32768,   255,
+-32768,   206,   306,   275,   276,-32768,-32768,   255,   279,   101,
+   334,   206,   278,   334,-32768,-32768,   140,-32768,-32768,   281,
+   156,-32768,-32768,-32768,-32768,   269,   290,   254,   280,   284,
+   294,-32768,   144,-32768,-32768,-32768,-32768,   206,   206,-32768,
+   206,   206,   270,   293,-32768,-32768,   388,-32768,-32768,   314,
+-32768,-32768,-32768,-32768,-32768,    24,    24,-32768,   273,-32768,
+    19,-32768,   295,   255,-32768,    43,    24,-32768,   301,   255,
+-32768,   303,-32768,   255,-32768,    56,   273,-32768,    13,-32768,
+   298,-32768,-32768,    45,-32768,-32768,-32768,-32768,-32768,-32768,
+   307,-32768,-32768,     0,   182,-32768,-32768,   308,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   304,   459,
+-32768,   459,-32768,   309,   312,-32768,-32768,-32768,   184,-32768,
+   -20,-32768,   334,   311,-32768,-32768,   293,-32768,   206,-32768,
+-32768,-32768,-32768,-32768,    45,    88,   311,   334,-32768,   207,
+   234,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    28,
+-32768,-32768,-32768,-32768,   415,   417,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,   428,   309,-32768,-32768,   419,-32768,-32768,   410,-32768,
--32768,   383,-32768,-32768,-32768,   366,-32768,   330,-32768,-32768,
-   332,-32768,   377,-32768,-32768,   160,-32768,-32768,   287,-32768,
-   121,   246,-32768,   138,-32768,   140,-32768,   146,-32768,   217,
--32768,-32768,-32768,-32768,    56,  -179,   -65,  -209,   -54,-32768,
-   234,  -183,  -112,-32768,   -55,-32768,  -243,-32768,   -51,  -119,
--32768,    74,-32768,-32768,-32768,  -147,-32768,-32768,  -113,  -157,
-     6,   237,-32768,  -133,-32768,-32768,    72,-32768,-32768,-32768,
--32768,-32768,-32768,    86,    95,  -155,-32768,-32768,-32768,   139,
-  -126,   -79,-32768,    15,-32768,   207,    -7
+-32768,   418,   287,-32768,-32768,   407,-32768,-32768,   399,-32768,
+-32768,   371,-32768,-32768,-32768,   354,-32768,   319,-32768,-32768,
+   325,-32768,   370,-32768,-32768,   153,-32768,-32768,   291,-32768,
+   110,   238,-32768,   126,-32768,   132,-32768,   209,-32768,   214,
+-32768,-32768,-32768,-32768,    44,  -179,   -79,  -188,   -54,-32768,
+   222,  -183,   -90,-32768,   -99,-32768,  -231,-32768,    -2,  -119,
+-32768,    32,-32768,-32768,-32768,  -142,-32768,-32768,   -74,  -160,
+   -95,   228,-32768,  -210,-32768,-32768,    70,-32768,-32768,-32768,
+-32768,-32768,-32768,    80,    89,  -206,-32768,-32768,-32768,   137,
+  -118,   -80,-32768,    15,-32768,   200,    -7
 };
 
 
-#define	YYLAST		639
+#define	YYLAST		627
 
 
 static const short yytable[] = {    15,
-   154,   200,   120,   201,   241,    15,   222,   182,    10,   101,
-   101,   249,   102,   102,     5,   399,   119,     5,    10,    82,
-   169,     1,     2,   113,   165,   166,    10,    83,    84,    65,
-   116,   276,    72,   193,    10,    11,    79,   393,    85,    10,
-    86,    10,    87,   277,     1,     2,    10,   130,    65,    20,
-    67,    64,    88,     7,    71,    10,    89,    21,    78,   195,
-    90,    10,    11,    91,   351,    19,    79,    10,   174,   175,
-    64,    10,   174,   175,    92,   269,   193,   253,    22,    93,
-    23,    94,   364,    95,   305,   306,   114,    28,    78,    24,
-   160,   394,    96,    97,   161,   395,    16,   165,   166,   238,
-   194,    72,   195,    29,   281,   117,    79,    98,   182,   130,
-    63,   182,   373,   131,   159,    34,   403,   238,   111,   169,
-    99,   117,   240,    71,   154,   222,   184,   137,    78,    63,
-   249,    12,    30,   246,   157,   239,   158,   251,   312,   275,
-   368,    68,    10,    32,   332,     1,     2,   170,   321,   246,
-   380,   141,   381,   239,   207,   208,    31,   399,    17,   342,
-   358,   265,   142,    33,   266,   265,   165,   166,  -255,    37,
-   209,   193,    10,   174,   175,   131,   122,    36,   340,   299,
-    73,   352,   304,   250,   311,    66,   258,   117,    80,  -235,
-   107,   258,   316,  -235,   270,   199,   274,   195,   269,   365,
-   284,   285,   286,   287,    10,   110,   402,     1,     2,   210,
-   211,   115,   318,     1,     2,   209,   402,    10,   174,   175,
-   236,   391,   123,   386,   237,   212,   298,   184,   122,   309,
-   184,   280,   209,   310,    10,   174,   175,   307,   124,   360,
-   154,   324,   154,   362,   213,   325,   125,   356,   327,   126,
-   214,   376,   328,   320,   210,   377,   320,   384,   157,   215,
-   209,   385,    10,   174,   175,   127,   216,   132,   217,   331,
-   218,   210,   211,   171,   172,   173,    10,   174,   175,     1,
-     2,    10,   174,   175,     1,     2,   133,   212,     1,     2,
-   165,   166,   134,   337,   338,   214,   339,   108,   109,   210,
-   353,   140,   250,   165,   166,   136,   213,   258,   284,   285,
-   286,   287,   214,   176,   341,    83,    84,   270,   353,   139,
-   274,   215,   162,   163,   164,   371,  -256,   190,   191,   192,
-   217,   177,   218,   202,   204,   375,    10,    83,    84,   205,
-   214,    10,   235,   232,     1,     2,   234,   245,    85,   252,
-    86,   261,    87,   262,   178,   264,    38,   279,   117,   283,
-   296,   282,    88,   290,   292,   375,    89,   294,   308,   300,
-    90,    39,   179,    91,   157,    40,   157,   371,   313,   315,
-   398,    41,    42,    43,    92,   314,   317,    44,   326,    93,
-   322,    94,    45,    95,   329,   330,   334,    46,   343,    47,
-   333,   346,    96,    97,   335,   347,   348,    48,   355,   359,
-   361,   367,   372,   378,   388,   379,    49,    98,    50,   382,
-   383,   143,   144,    51,   406,    52,    53,    54,   145,   407,
-     6,    18,    85,    38,    86,    35,    87,   146,    81,   112,
-   135,   105,   336,   138,   263,   185,    88,   206,   366,   354,
-    89,   350,   357,   303,    90,   404,   392,    91,    41,    42,
-    43,   293,   389,   363,     0,   295,   147,   387,    92,    45,
-   323,     0,     0,    93,    46,    94,    47,    95,     0,     0,
-     0,     0,     0,     0,    48,     0,    96,    97,   148,   149,
-     0,     0,     0,    49,     0,    50,     0,   150,   143,   144,
-    51,    98,    52,    53,    54,   145,     0,     0,     0,    85,
-    38,    86,     0,    87,   146,     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,   147,     0,    92,    45,     0,     0,     0,
-    93,    46,    94,    47,    95,     0,     0,     0,     1,     2,
-     0,    48,     0,    96,    97,   148,   149,     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,    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
+   154,   120,   119,   222,   241,    15,   200,    10,   201,   101,
+   101,   249,    10,    11,     5,   182,    82,     5,    10,   116,
+    10,     1,     2,   113,    83,    84,    10,    67,     7,    65,
+    10,   399,    72,     1,     2,    85,    79,    86,    19,    87,
+   165,   166,   169,    10,    11,    10,   174,   175,    65,    88,
+    10,    64,    10,    89,    71,   193,   238,    90,    78,   193,
+    91,   102,   102,    10,   174,   175,    79,   333,    63,    30,
+    64,    92,   253,   165,   166,    16,    93,   351,    94,   194,
+    95,   195,   343,   269,    28,   195,   114,    63,    78,    96,
+    97,   276,   239,   238,   117,   364,   130,  -255,    32,   349,
+   350,    72,   393,   277,    98,   122,    79,    29,   240,    12,
+   358,   373,    31,   131,   159,   117,   182,    99,    68,   182,
+   246,    34,   222,    71,   154,   275,   184,   137,    78,   239,
+   111,   249,   403,    33,   157,   299,   158,   251,   304,   265,
+    17,   169,   266,   281,   246,    36,   368,   170,   141,   209,
+   193,    10,   174,   175,   207,   208,   394,   265,   130,   142,
+   395,    37,   160,   117,    10,  -235,   161,     1,     2,  -235,
+   312,   380,    20,   381,   199,   131,   195,   313,   317,    66,
+    21,    10,   107,   250,     1,     2,   258,   322,   210,   211,
+   352,   258,   338,   339,   270,   340,   274,   284,   285,   286,
+   287,    22,    73,    23,   212,    80,   402,   269,   365,   319,
+   399,   209,    24,    10,   174,   175,   402,   341,   391,   165,
+   166,   236,   122,   213,   110,   237,   298,   184,   386,   214,
+   184,   280,   310,   115,   356,   123,   311,   308,   215,   360,
+   154,   125,   154,   362,   325,   216,   124,   217,   326,   218,
+   210,   211,   126,   321,     1,     2,   321,   127,   157,   209,
+   328,    10,   174,   175,   329,   133,   212,   171,   172,   173,
+    10,   174,   175,     1,     2,   209,   132,    10,   174,   175,
+    10,   174,   175,     1,     2,   213,   376,   134,   384,   136,
+   377,   214,   385,     1,     2,   165,   166,   139,   210,   140,
+   215,   353,   164,   250,   108,   109,  -256,   176,   258,   217,
+   162,   218,    10,   332,   210,     1,     2,   163,   270,   353,
+   190,   274,   165,   166,   191,   177,   371,    38,   192,   342,
+   284,   285,   286,   287,    83,    84,   375,   205,   202,   214,
+   204,    10,    39,   232,   234,   235,    40,   245,   178,   261,
+   252,   262,    41,    42,    43,   214,   264,   117,    44,   279,
+   282,   283,   290,    45,   292,   375,   179,   294,    46,   296,
+    47,   300,   309,   314,   157,   305,   157,   371,    48,   315,
+   398,   330,   323,   334,   316,   318,   327,    49,   335,    50,
+   331,   347,   143,   144,    51,   348,    52,    53,    54,   145,
+   336,   355,   359,    85,    38,    86,   344,    87,   146,   361,
+   367,   378,   379,   372,   406,   382,   407,    88,   383,    18,
+     6,    89,   388,   185,    35,    90,    81,   112,    91,    41,
+    42,    43,   138,   135,   105,   337,   263,   147,   366,    92,
+    45,   357,   354,   404,    93,    46,    94,    47,    95,   307,
+   303,   206,   293,   295,   392,    48,   389,    96,    97,   148,
+   149,   387,   363,   324,    49,     0,    50,     0,   150,   143,
+   144,    51,    98,    52,    53,    54,   145,     0,     0,     0,
+    85,    38,    86,     0,    87,   146,     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,   147,     0,    92,    45,     0,     0,
+     0,    93,    46,    94,    47,    95,     0,     0,     0,    83,
+    84,     0,    48,     0,    96,    97,   148,   149,     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,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    98
 };
 
 static const short yycheck[] = {     7,
-   120,   149,    82,   151,   188,    13,   164,   134,     8,    64,
-    65,   191,    64,    65,     0,     4,    82,     3,     8,     3,
-   133,    11,    12,    46,    13,    14,     8,    11,    12,    37,
-    28,   101,    40,    80,     8,     9,    44,    15,    22,     8,
-    24,     8,    26,   113,    11,    12,     8,    99,    56,    12,
-    17,    37,    36,   104,    40,     8,    40,    20,    44,   106,
-    44,     8,     9,    47,   308,   106,    74,     8,     9,    10,
-    56,     8,     9,    10,    58,   202,    80,    30,    41,    63,
-    43,    65,   326,    67,   240,   241,   109,     9,    74,    52,
-   105,    69,    76,    77,   109,    73,    34,    13,    14,    33,
-   104,   109,   106,    57,   218,   103,   114,    91,   235,   161,
-    37,   238,   112,    99,   122,     3,   105,    33,   108,   232,
-   104,   103,   188,   109,   244,   283,   134,   113,   114,    56,
-   310,   105,    84,   102,   120,    69,   122,   192,   252,   205,
-   102,   108,     8,    53,   278,    11,    12,   133,   262,   102,
-   360,    41,   362,    69,   162,   163,    84,     4,   105,   293,
-   316,   102,    52,    84,   105,   102,    13,    14,   104,    21,
-     6,    80,     8,     9,    10,   161,   112,   107,   292,   235,
-    46,   308,   238,   191,   250,    12,   194,   103,    39,   105,
-   108,   199,   258,   109,   202,   104,   204,   106,   325,   326,
-    97,    98,    99,   100,     8,   104,   390,    11,    12,    45,
-    46,   104,   109,    11,    12,     6,   400,     8,     9,    10,
-   105,   379,    81,   371,   109,    61,   234,   235,   112,   105,
-   238,   217,     6,   109,     8,     9,    10,   245,    81,   319,
-   360,   105,   362,   323,    80,   109,    71,   313,   105,    51,
-    86,   105,   109,   261,    45,   109,   264,   105,   244,    95,
-     6,   109,     8,     9,    10,    81,   102,     3,   104,    60,
-   106,    45,    46,     5,     6,     7,     8,     9,    10,    11,
-    12,     8,     9,    10,    11,    12,   112,    61,    11,    12,
-    13,    14,     3,   288,   289,    86,   291,   108,   109,    45,
-   308,   104,   310,    13,    14,   105,    80,   315,    97,    98,
-    99,   100,    86,    45,    60,    11,    12,   325,   326,   105,
-   328,    95,   110,   110,   104,   333,   104,    35,   104,    68,
-   104,    63,   106,   104,   104,   343,     8,    11,    12,     3,
-    86,     8,   110,   112,    11,    12,   112,    25,    22,   106,
-    24,    68,    26,   106,    86,    68,    23,    30,   103,   109,
-     4,   105,    36,    96,   106,   373,    40,   104,   111,    95,
-    44,    38,   104,    47,   360,    42,   362,   385,    68,   109,
-   388,    48,    49,    50,    58,   105,   107,    54,   106,    63,
-   105,    65,    59,    67,   113,   101,   105,    64,   114,    66,
-   104,     4,    76,    77,   107,    82,    88,    74,   107,   102,
-   107,   113,   107,   104,   112,   109,    83,    91,    85,   107,
-   107,    11,    12,    90,     0,    92,    93,    94,    18,     0,
-     3,    13,    22,    23,    24,    26,    26,    27,    56,    74,
-   109,    65,   283,   114,   199,   137,    36,   161,   328,   310,
-    40,   306,   315,   237,    44,   400,   385,    47,    48,    49,
-    50,   225,   377,   325,    -1,   232,    56,   373,    58,    59,
-   264,    -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,    -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,    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
+   120,    82,    82,   164,   188,    13,   149,     8,   151,    64,
+    65,   191,     8,     9,     0,   134,     3,     3,     8,    28,
+     8,    11,    12,    46,    11,    12,     8,    17,   104,    37,
+     8,     4,    40,    11,    12,    22,    44,    24,   106,    26,
+    13,    14,   133,     8,     9,     8,     9,    10,    56,    36,
+     8,    37,     8,    40,    40,    80,    33,    44,    44,    80,
+    47,    64,    65,     8,     9,    10,    74,   278,    37,    84,
+    56,    58,    30,    13,    14,    34,    63,   309,    65,   104,
+    67,   106,   293,   202,     9,   106,   109,    56,    74,    76,
+    77,   101,    69,    33,   103,   327,    99,   104,    53,   306,
+   307,   109,    15,   113,    91,   112,   114,    57,   188,   105,
+   317,   112,    84,    99,   122,   103,   235,   104,   108,   238,
+   102,     3,   283,   109,   244,   205,   134,   113,   114,    69,
+   108,   311,   105,    84,   120,   235,   122,   192,   238,   102,
+   105,   232,   105,   218,   102,   107,   102,   133,    41,     6,
+    80,     8,     9,    10,   162,   163,    69,   102,   161,    52,
+    73,    21,   105,   103,     8,   105,   109,    11,    12,   109,
+   250,   360,    12,   362,   104,   161,   106,   252,   258,    12,
+    20,     8,   108,   191,    11,    12,   194,   262,    45,    46,
+   309,   199,   288,   289,   202,   291,   204,    97,    98,    99,
+   100,    41,    46,    43,    61,    39,   390,   326,   327,   109,
+     4,     6,    52,     8,     9,    10,   400,   292,   379,    13,
+    14,   105,   112,    80,   104,   109,   234,   235,   371,    86,
+   238,   217,   105,   104,   314,    81,   109,   245,    95,   320,
+   360,    71,   362,   324,   105,   102,    81,   104,   109,   106,
+    45,    46,    51,   261,    11,    12,   264,    81,   244,     6,
+   105,     8,     9,    10,   109,   112,    61,     5,     6,     7,
+     8,     9,    10,    11,    12,     6,     3,     8,     9,    10,
+     8,     9,    10,    11,    12,    80,   105,     3,   105,   105,
+   109,    86,   109,    11,    12,    13,    14,   105,    45,   104,
+    95,   309,   104,   311,   108,   109,   104,    45,   316,   104,
+   110,   106,     8,    60,    45,    11,    12,   110,   326,   327,
+    35,   329,    13,    14,   104,    63,   334,    23,    68,    60,
+    97,    98,    99,   100,    11,    12,   344,     3,   104,    86,
+   104,     8,    38,   112,   112,   110,    42,    25,    86,    68,
+   106,   106,    48,    49,    50,    86,    68,   103,    54,    30,
+   105,   109,    96,    59,   106,   373,   104,   104,    64,     4,
+    66,    95,   111,    68,   360,    88,   362,   385,    74,   105,
+   388,   113,   105,   104,   109,   107,   106,    83,   105,    85,
+   101,     4,    11,    12,    90,    82,    92,    93,    94,    18,
+   107,   107,   102,    22,    23,    24,   114,    26,    27,   107,
+   113,   104,   109,   107,     0,   107,     0,    36,   107,    13,
+     3,    40,   112,   137,    26,    44,    56,    74,    47,    48,
+    49,    50,   114,   109,    65,   283,   199,    56,   329,    58,
+    59,   316,   311,   400,    63,    64,    65,    66,    67,   241,
+   237,   161,   225,   232,   385,    74,   377,    76,    77,    78,
+    79,   373,   326,   264,    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,    -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"
@@ -2016,8 +2014,8 @@
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		yyval.a_expr->Identifier = yyvsp[-3].a_refcomp.name;
-		yyval.a_expr->marker = yyvsp[-1].a_marker;
-		yyval.a_expr->unique = yyvsp[0].a_int;
+		yyval.a_expr->marker = yyvsp[0].a_marker;
+		yyval.a_expr->unique = yyvsp[-1].a_int;
 	;
     break;}
 case 93:
@@ -2034,8 +2032,8 @@
 		checkmem(ret == 0);
 		yyval.a_expr->expr_type = A1TC_CLASSFIELD;
 		yyval.a_expr->meta_type = AMT_OBJECTFIELD;
-		yyval.a_expr->marker = yyvsp[-1].a_marker;
-		yyval.a_expr->unique = yyvsp[0].a_int;
+		yyval.a_expr->marker = yyvsp[0].a_marker;
+		yyval.a_expr->unique = yyvsp[-1].a_int;
 	;
     break;}
 case 94: