[SCM] an open source computer algebra system branch, cleanedupstream, updated. 6125e540ca6d66c307958938a9d53b245507c323

Bernhard R. Link brlink at debian.org
Tue Apr 24 15:54:10 UTC 2012


The following commit has been merged in the cleanedupstream branch:
commit dd111e6723e2c4ea0dd9c15b97ff5ca35bd125dd
Author: Hans Schoenemann <hannes at mathematik.uni-kl.de>
Date:   Wed Mar 14 17:17:54 2012 +0100

    fix: shift/reduce conflicts

diff --git a/Singular/grammar.cc b/Singular/grammar.cc
index 239a50b..3e76876 100644
--- a/Singular/grammar.cc
+++ b/Singular/grammar.cc
@@ -616,16 +616,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1787
+#define YYLAST   1775
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  147
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  45
+#define YYNNTS  44
 /* YYNRULES -- Number of rules. */
 #define YYNRULES  164
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  356
+#define YYNSTATES  355
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -690,27 +690,27 @@ static const unsigned short int yyprhs[] =
       95,   100,   104,   106,   108,   110,   114,   121,   126,   131,
      136,   140,   145,   149,   154,   161,   170,   177,   186,   191,
      196,   203,   208,   215,   224,   233,   237,   242,   251,   256,
-     265,   270,   274,   280,   281,   287,   290,   292,   295,   298,
-     302,   306,   310,   314,   318,   322,   326,   330,   334,   338,
-     341,   344,   347,   350,   352,   356,   359,   362,   365,   368,
-     377,   380,   384,   387,   389,   391,   397,   399,   401,   406,
-     408,   412,   414,   418,   420,   422,   424,   426,   428,   430,
-     431,   436,   440,   443,   447,   450,   453,   457,   462,   467,
-     472,   477,   482,   487,   492,   497,   504,   511,   518,   525,
-     532,   539,   543,   545,   554,   557,   560,   562,   564,   567,
-     570,   572,   578,   581,   587,   589,   591,   595,   601,   605,
-     609,   614,   617,   620,   625
+     261,   270,   275,   279,   285,   286,   292,   295,   297,   300,
+     303,   307,   311,   315,   319,   323,   327,   331,   335,   339,
+     343,   346,   349,   352,   355,   357,   361,   364,   367,   370,
+     373,   382,   385,   389,   392,   394,   396,   402,   404,   406,
+     411,   413,   417,   419,   423,   425,   427,   429,   431,   432,
+     437,   441,   444,   448,   451,   454,   458,   463,   468,   473,
+     478,   483,   488,   493,   498,   505,   512,   519,   526,   533,
+     540,   547,   551,   553,   562,   565,   568,   570,   572,   575,
+     578,   580,   586,   589,   595,   597,   599,   603,   609,   613,
+     617,   622,   625,   628,   633
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short int yyrhs[] =
 {
      148,     0,    -1,    -1,   148,   149,    -1,   150,    -1,   152,
-     138,    -1,   163,   138,    -1,   191,    -1,   123,    -1,   138,
-      -1,     1,   138,    -1,   186,    -1,   187,    -1,   151,    -1,
-     188,    -1,   189,    -1,   173,    -1,   175,    -1,   176,    -1,
-     102,   111,    -1,   153,    -1,   177,    -1,   178,    -1,   179,
-      -1,   190,    -1,   181,    -1,   182,    -1,   184,    -1,   185,
+     138,    -1,   163,   138,    -1,   190,    -1,   123,    -1,   138,
+      -1,     1,   138,    -1,   185,    -1,   186,    -1,   151,    -1,
+     187,    -1,   188,    -1,   172,    -1,   174,    -1,   175,    -1,
+     102,   111,    -1,   153,    -1,   176,    -1,   177,    -1,   178,
+      -1,   189,    -1,   180,    -1,   181,    -1,   183,    -1,   184,
       -1,   161,   155,    -1,   114,    -1,   162,    -1,   154,    11,
      154,    -1,   154,   145,   154,    -1,   154,   143,   144,    -1,
      154,   143,   155,   144,    -1,   134,   155,   135,    -1,   112,
@@ -730,66 +730,67 @@ static const short int yyrhs[] =
      137,   156,   144,    -1,    96,   143,   156,   137,   156,   137,
      156,   144,    -1,    97,   143,   144,    -1,    97,   143,   155,
      144,    -1,   171,   143,   156,   137,   156,   137,   156,   144,
-      -1,   172,   143,   156,   144,    -1,    16,   143,   165,   137,
-     165,   137,   169,   144,    -1,    16,   143,   156,   144,    -1,
-     158,   156,   159,    -1,   158,   156,   128,   156,   159,    -1,
-      -1,   119,   143,   157,   156,   144,    -1,   120,   143,    -1,
-     144,    -1,   156,    10,    -1,   156,     7,    -1,   156,   131,
-     156,    -1,   156,   132,   156,    -1,   156,   133,   156,    -1,
-     156,   136,   156,    -1,   156,   129,   156,    -1,   156,   139,
-     156,    -1,   156,     9,   156,    -1,   156,     4,   156,    -1,
-     156,     3,   156,    -1,   156,   140,   156,    -1,     8,   156,
-      -1,   132,   156,    -1,   163,   170,    -1,   155,   128,    -1,
-     113,    -1,   146,   156,   146,    -1,    98,   154,    -1,    99,
-     154,    -1,   100,   154,    -1,   101,   154,    -1,   171,   154,
-     134,   156,   135,   134,   156,   135,    -1,   171,   154,    -1,
-     163,   137,   154,    -1,    15,   154,    -1,   110,    -1,   156,
-      -1,   143,   156,   137,   155,   144,    -1,   113,    -1,   166,
-      -1,   166,   143,   155,   144,    -1,   167,    -1,   167,   137,
-     168,    -1,   167,    -1,   143,   168,   144,    -1,   128,    -1,
-      20,    -1,    14,    -1,    13,    -1,   101,    -1,   171,    -1,
-      -1,   129,   164,   174,   138,    -1,   104,   110,   138,    -1,
-     104,   138,    -1,   102,   110,   138,    -1,   103,   155,    -1,
-     105,   154,    -1,   178,   137,   154,    -1,   107,   143,    98,
-     144,    -1,   107,   143,    99,   144,    -1,   107,   143,   100,
-     144,    -1,   107,   143,   101,   144,    -1,   107,   143,    16,
-     144,    -1,   107,   143,   171,   144,    -1,   107,   143,    15,
-     144,    -1,   107,   143,   154,   144,    -1,   107,   143,   154,
-     137,    98,   144,    -1,   107,   143,   154,   137,    99,   144,
-      -1,   107,   143,   154,   137,   100,   144,    -1,   107,   143,
-     154,   137,   172,   144,    -1,   107,   143,   154,   137,    16,
-     144,    -1,   107,   143,   154,   137,    15,   144,    -1,   107,
-     143,   144,    -1,    16,    -1,   180,   154,   170,   165,   137,
-     165,   137,   169,    -1,   180,   154,    -1,   127,   164,    -1,
-     108,    -1,    40,    -1,   183,   156,    -1,   109,   156,    -1,
-     155,    -1,   122,   143,   156,   144,   111,    -1,   118,   111,
-      -1,   122,   143,   156,   144,   116,    -1,   116,    -1,   117,
-      -1,   124,   110,   111,    -1,   121,   110,   110,   110,   111,
-      -1,    15,   162,   111,    -1,   115,   110,   111,    -1,   115,
-     110,   110,   111,    -1,   126,   163,    -1,   126,   156,    -1,
-     125,   143,   155,   144,    -1,   125,   143,   144,    -1
+      -1,   101,   143,   156,   144,    -1,   171,   143,   156,   144,
+      -1,    16,   143,   165,   137,   165,   137,   169,   144,    -1,
+      16,   143,   156,   144,    -1,   158,   156,   159,    -1,   158,
+     156,   128,   156,   159,    -1,    -1,   119,   143,   157,   156,
+     144,    -1,   120,   143,    -1,   144,    -1,   156,    10,    -1,
+     156,     7,    -1,   156,   131,   156,    -1,   156,   132,   156,
+      -1,   156,   133,   156,    -1,   156,   136,   156,    -1,   156,
+     129,   156,    -1,   156,   139,   156,    -1,   156,     9,   156,
+      -1,   156,     4,   156,    -1,   156,     3,   156,    -1,   156,
+     140,   156,    -1,     8,   156,    -1,   132,   156,    -1,   163,
+     170,    -1,   155,   128,    -1,   113,    -1,   146,   156,   146,
+      -1,    98,   154,    -1,    99,   154,    -1,   100,   154,    -1,
+     101,   154,    -1,   171,   154,   134,   156,   135,   134,   156,
+     135,    -1,   171,   154,    -1,   163,   137,   154,    -1,    15,
+     154,    -1,   110,    -1,   156,    -1,   143,   156,   137,   155,
+     144,    -1,   113,    -1,   166,    -1,   166,   143,   155,   144,
+      -1,   167,    -1,   167,   137,   168,    -1,   167,    -1,   143,
+     168,   144,    -1,   128,    -1,    20,    -1,    14,    -1,    13,
+      -1,    -1,   129,   164,   173,   138,    -1,   104,   110,   138,
+      -1,   104,   138,    -1,   102,   110,   138,    -1,   103,   155,
+      -1,   105,   154,    -1,   177,   137,   154,    -1,   107,   143,
+      98,   144,    -1,   107,   143,    99,   144,    -1,   107,   143,
+     100,   144,    -1,   107,   143,   101,   144,    -1,   107,   143,
+      16,   144,    -1,   107,   143,   171,   144,    -1,   107,   143,
+      15,   144,    -1,   107,   143,   154,   144,    -1,   107,   143,
+     154,   137,    98,   144,    -1,   107,   143,   154,   137,    99,
+     144,    -1,   107,   143,   154,   137,   100,   144,    -1,   107,
+     143,   154,   137,   101,   144,    -1,   107,   143,   154,   137,
+     171,   144,    -1,   107,   143,   154,   137,    16,   144,    -1,
+     107,   143,   154,   137,    15,   144,    -1,   107,   143,   144,
+      -1,    16,    -1,   179,   154,   170,   165,   137,   165,   137,
+     169,    -1,   179,   154,    -1,   127,   164,    -1,   108,    -1,
+      40,    -1,   182,   156,    -1,   109,   156,    -1,   155,    -1,
+     122,   143,   156,   144,   111,    -1,   118,   111,    -1,   122,
+     143,   156,   144,   116,    -1,   116,    -1,   117,    -1,   124,
+     110,   111,    -1,   121,   110,   110,   110,   111,    -1,    15,
+     162,   111,    -1,   115,   110,   111,    -1,   115,   110,   110,
+     111,    -1,   126,   163,    -1,   126,   156,    -1,   125,   143,
+     155,   144,    -1,   125,   143,   144,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,   360,   360,   362,   396,   397,   399,   401,   405,   410,
-     412,   463,   464,   465,   466,   467,   468,   469,   470,   474,
-     477,   478,   479,   480,   481,   482,   483,   484,   485,   488,
-     495,   500,   504,   508,   512,   516,   529,   557,   581,   587,
-     593,   600,   611,   617,   622,   623,   624,   628,   632,   636,
-     640,   644,   648,   652,   656,   660,   664,   668,   672,   676,
-     680,   684,   688,   692,   696,   700,   704,   708,   712,   716,
-     720,   724,   728,   746,   745,   763,   771,   780,   784,   788,
-     792,   796,   800,   804,   808,   812,   816,   820,   824,   828,
-     835,   842,   843,   862,   863,   875,   880,   885,   889,   893,
-     923,   944,   965,   973,   977,   978,   992,  1000,  1009,  1054,
-    1055,  1064,  1065,  1071,  1077,  1079,  1081,  1085,  1087,  1096,
-    1095,  1103,  1108,  1115,  1123,  1135,  1151,  1170,  1174,  1178,
-    1183,  1187,  1191,  1195,  1199,  1204,  1210,  1216,  1222,  1228,
-    1234,  1246,  1253,  1257,  1294,  1304,  1317,  1317,  1320,  1392,
-    1396,  1425,  1438,  1455,  1464,  1469,  1477,  1489,  1508,  1519,
-    1539,  1563,  1569,  1581,  1588
+       0,   359,   359,   361,   395,   396,   398,   400,   404,   409,
+     411,   462,   463,   464,   465,   466,   467,   468,   469,   473,
+     476,   477,   478,   479,   480,   481,   482,   483,   484,   487,
+     494,   499,   503,   507,   511,   515,   528,   556,   580,   586,
+     592,   599,   610,   616,   621,   622,   623,   627,   631,   635,
+     639,   643,   647,   651,   655,   659,   663,   667,   671,   675,
+     679,   683,   687,   691,   695,   699,   703,   707,   711,   715,
+     719,   723,   727,   731,   749,   748,   766,   774,   783,   787,
+     791,   795,   799,   803,   807,   811,   815,   819,   823,   827,
+     831,   838,   845,   846,   865,   866,   878,   883,   888,   892,
+     896,   926,   947,   968,   976,   980,   981,   995,  1003,  1012,
+    1057,  1058,  1067,  1068,  1074,  1080,  1082,  1084,  1094,  1093,
+    1101,  1106,  1113,  1121,  1133,  1149,  1168,  1172,  1176,  1181,
+    1185,  1189,  1193,  1197,  1202,  1208,  1214,  1220,  1226,  1232,
+    1238,  1250,  1257,  1261,  1298,  1308,  1321,  1321,  1324,  1396,
+    1400,  1429,  1442,  1459,  1468,  1473,  1481,  1493,  1512,  1523,
+    1543,  1567,  1573,  1585,  1592
 };
 #endif
 
@@ -828,10 +829,10 @@ static const char *const yytname[] =
   "assign", "elemexpr", "exprlist", "expr", "@1", "quote_start",
   "quote_end", "expr_arithmetic", "left_value", "extendedid",
   "declare_ip_variable", "stringexpr", "rlist", "ordername", "orderelem",
-  "OrderingList", "ordering", "cmdeq", "mat_cmd", "typ_list1", "filecmd",
-  "@2", "helpcmd", "examplecmd", "exportcmd", "killcmd", "listcmd",
-  "ringcmd1", "ringcmd", "scriptcmd", "setrings", "setringcmd", "typecmd",
-  "ifcmd", "whilecmd", "forcmd", "proccmd", "parametercmd", "returncmd", 0
+  "OrderingList", "ordering", "cmdeq", "mat_cmd", "filecmd", "@2",
+  "helpcmd", "examplecmd", "exportcmd", "killcmd", "listcmd", "ringcmd1",
+  "ringcmd", "scriptcmd", "setrings", "setringcmd", "typecmd", "ifcmd",
+  "whilecmd", "forcmd", "proccmd", "parametercmd", "returncmd", 0
 };
 #endif
 
@@ -868,16 +869,16 @@ static const unsigned char yyr1[] =
      154,   155,   155,   156,   156,   156,   156,   156,   156,   156,
      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
-     156,   156,   156,   157,   156,   158,   159,   160,   160,   160,
+     156,   156,   156,   156,   157,   156,   158,   159,   160,   160,
      160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
-     160,   161,   161,   162,   162,   163,   163,   163,   163,   163,
-     163,   163,   163,   164,   165,   165,   166,   167,   167,   168,
-     168,   169,   169,   170,   171,   171,   171,   172,   172,   174,
-     173,   175,   175,   176,   177,   178,   178,   179,   179,   179,
-     179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
-     179,   179,   180,   181,   181,   182,   183,   183,   184,   185,
-     185,   186,   186,   186,   186,   186,   187,   188,   189,   189,
-     189,   190,   190,   191,   191
+     160,   160,   161,   161,   162,   162,   163,   163,   163,   163,
+     163,   163,   163,   163,   164,   165,   165,   166,   167,   167,
+     168,   168,   169,   169,   170,   171,   171,   171,   173,   172,
+     174,   174,   175,   176,   177,   177,   178,   178,   178,   178,
+     178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
+     178,   178,   179,   180,   180,   181,   182,   182,   183,   184,
+     184,   185,   185,   185,   185,   185,   186,   187,   188,   188,
+     188,   189,   189,   190,   190
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -889,14 +890,14 @@ static const unsigned char yyr2[] =
        1,     1,     3,     3,     3,     4,     3,     1,     1,     1,
        4,     3,     1,     1,     1,     3,     6,     4,     4,     4,
        3,     4,     3,     4,     6,     8,     6,     8,     4,     4,
-       6,     4,     6,     8,     8,     3,     4,     8,     4,     8,
-       4,     3,     5,     0,     5,     2,     1,     2,     2,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
-       2,     2,     2,     1,     3,     2,     2,     2,     2,     8,
-       2,     3,     2,     1,     1,     5,     1,     1,     4,     1,
-       3,     1,     3,     1,     1,     1,     1,     1,     1,     0,
-       4,     3,     2,     3,     2,     2,     3,     4,     4,     4,
-       4,     4,     4,     4,     4,     6,     6,     6,     6,     6,
+       6,     4,     6,     8,     8,     3,     4,     8,     4,     4,
+       8,     4,     3,     5,     0,     5,     2,     1,     2,     2,
+       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+       2,     2,     2,     2,     1,     3,     2,     2,     2,     2,
+       8,     2,     3,     2,     1,     1,     5,     1,     1,     4,
+       1,     3,     1,     3,     1,     1,     1,     1,     0,     4,
+       3,     2,     3,     2,     2,     3,     4,     4,     4,     4,
+       4,     4,     4,     4,     6,     6,     6,     6,     6,     6,
        6,     3,     1,     8,     2,     2,     1,     1,     2,     2,
        1,     5,     2,     5,     1,     1,     3,     5,     3,     3,
        4,     2,     2,     4,     3
@@ -907,105 +908,105 @@ static const unsigned char yyr2[] =
    means the default is an error.  */
 static const unsigned char yydefact[] =
 {
-       2,     0,     1,     0,     0,   116,   115,     0,   142,   114,
+       2,     0,     1,     0,     0,   117,   116,     0,   142,   115,
      147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,   146,     0,
-     103,    37,    93,    30,     0,   154,   155,     0,     0,     0,
+     104,    37,    94,    30,     0,   154,   155,     0,     0,     0,
        0,     0,     8,     0,     0,     0,    38,     0,     0,     0,
        9,     0,     0,     3,     4,    13,     0,    20,    44,   150,
-      42,     0,    43,     0,    31,     0,    39,     0,     0,    16,
-      17,    18,    21,    22,    23,     0,    25,    26,     0,    27,
-      28,    11,    12,    14,    15,    24,     7,    10,     0,     0,
-       0,     0,     0,     0,    38,    89,     0,     0,   102,    31,
+      42,     0,    43,     0,    31,     0,    39,     0,    16,    17,
+      18,    21,    22,    23,     0,    25,    26,     0,    27,    28,
+      11,    12,    14,    15,    24,     7,    10,     0,     0,     0,
+       0,     0,     0,    38,    90,     0,     0,   103,    31,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    96,
+       0,    97,     0,    98,     0,    99,     0,    19,   123,     0,
+     121,   124,     0,   149,     0,   152,    74,    76,     0,     0,
+       0,     0,     0,   162,   161,   145,   118,    91,     0,     0,
+       0,     5,     0,     0,     0,    93,     0,     0,     0,    79,
+       0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    29,   114,     0,     6,    92,     0,   101,     0,   144,
+     148,     0,   158,     0,   105,     0,     0,     0,     0,     0,
+       0,     0,     0,    65,     0,     0,    50,     0,     0,    52,
+       0,   122,   120,     0,     0,     0,     0,     0,     0,   141,
+       0,     0,     0,   159,     0,     0,     0,   156,   164,     0,
+       0,    36,    45,    95,    32,    34,     0,    33,    41,    88,
+      87,    86,    84,    80,    81,    82,     0,    83,    85,    89,
+       0,    77,    72,   102,     0,     0,   125,     0,    40,    42,
+      71,     0,    53,     0,     0,     0,    58,     0,    59,     0,
+       0,    61,    66,    48,    49,    51,    68,   132,   130,   126,
+     127,   128,   129,     0,   133,   131,   160,     0,     0,     0,
+     163,   119,    35,    47,     0,     0,     0,    69,     0,   105,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      95,     0,    96,     0,    97,     0,    98,     0,    19,   124,
-       0,   122,   125,     0,   149,     0,   152,    73,    75,     0,
-       0,     0,     0,     0,   162,   161,   145,   119,    90,     0,
-       0,     0,     5,     0,     0,     0,    92,     0,     0,     0,
-      78,     0,    77,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    29,   113,     0,     6,    91,     0,   100,     0,
-       0,   144,   148,     0,   158,     0,   104,     0,     0,     0,
-       0,     0,     0,     0,     0,    65,     0,     0,    50,     0,
-       0,    52,   123,   121,     0,     0,     0,     0,     0,     0,
-     141,     0,     0,     0,   159,     0,     0,     0,   156,   164,
-       0,     0,    36,    45,    94,    32,    34,     0,    33,    41,
-      87,    86,    85,    83,    79,    80,    81,     0,    82,    84,
-      88,     0,    76,    71,   101,     0,     0,     0,   126,     0,
-      40,    42,    70,     0,    53,     0,     0,     0,    58,     0,
-      59,     0,     0,    61,    66,    48,    49,    51,   133,   131,
-     127,   128,   129,   130,     0,   134,   132,   160,     0,     0,
-       0,   163,   120,    35,    47,     0,     0,     0,     0,    68,
-     104,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   117,   118,     0,    74,   157,
-     151,   153,     0,    72,     0,     0,     0,     0,     0,    54,
-       0,    60,     0,     0,    56,     0,    62,   140,   139,   135,
-     136,   137,   138,    46,     0,     0,     0,   105,   106,     0,
-     107,   111,     0,     0,     0,     0,     0,     0,     0,     0,
-     109,     0,     0,    69,    55,    63,    57,    64,    67,    99,
-     143,     0,   112,     0,   110,   108
+       0,     0,     0,     0,     0,     0,    75,   157,   151,   153,
+       0,    73,     0,     0,     0,     0,     0,    54,     0,    60,
+       0,     0,    56,     0,    62,   140,   139,   134,   135,   136,
+     137,   138,    46,     0,     0,     0,   106,   107,     0,   108,
+     112,     0,     0,     0,     0,     0,     0,     0,     0,   110,
+       0,     0,    70,    55,    63,    57,    64,    67,   100,   143,
+       0,   113,     0,   111,   109
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
 static const short int yydefgoto[] =
 {
-      -1,     1,    53,    54,    55,    56,    57,    58,   140,    60,
-     205,    61,   233,    62,    63,    64,    65,    66,   177,   330,
-     331,   341,   332,   166,    96,    68,    69,   211,    70,    71,
+      -1,     1,    53,    54,    55,    56,    57,    58,   139,    60,
+     204,    61,   232,    62,    63,    64,    65,    66,   175,   329,
+     330,   340,   331,   165,    95,    68,   210,    69,    70,    71,
       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86
+      82,    83,    84,    85
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -318
+#define YYPACT_NINF -325
 static const short int yypact[] =
 {
-    -318,   269,  -318,  -131,  1117,  -318,  -318,   863,  -118,  -318,
-    -318,  -105,   -88,   -85,   -82,   -74,   -66,   -63,   -43,  1473,
-    1587,  1613,  1636,   -19,  1117,  -106,   687,   -37,  -318,  1117,
-    -318,  -318,  -318,  -318,   -68,  -318,  -318,   -59,   -34,   -22,
-     -44,   -18,  -318,    16,   -16,  1175,    18,    18,  1117,  1117,
-    -318,  1117,  1117,  -318,  -318,  -318,    -8,  -318,    94,   -91,
-    1540,  1117,  -318,  1117,  -318,  -119,  -318,  1641,    -9,  -318,
-    -318,  -318,  -318,     2,  -318,   687,  -318,  -318,  1117,  -318,
-    -318,  -318,  -318,  -318,  -318,  -318,  -318,  -318,    12,  -118,
-      29,    41,    45,    53,  -318,    68,    55,  1117,    94,    34,
-    1232,  1117,  1117,  1117,  1117,  1117,  1117,  1117,   837,  1117,
-      94,   945,    94,  1117,    94,     3,    94,    23,  -318,    62,
-      65,  -318,    94,  1595,  1540,   -17,  -318,  -318,  -318,   103,
-    1117,   108,  1002,   863,  1540,    83,  -318,  -318,    68,   -96,
-    -101,    17,  -318,   687,  1060,   687,  -318,  1117,  1117,  1117,
-    -318,  1117,  -318,  1117,  1117,  1117,  1117,  1117,  1117,  1117,
-    1117,    61,    62,  -318,   687,  -318,  -318,  1117,    42,  1117,
-     687,    63,  1540,   340,  -318,  1117,   401,    96,   439,  1274,
-    1289,    78,    92,  1301,   287,  -318,   -93,   478,  -318,   -90,
-     492,  -318,  -318,  -318,   -46,    90,    91,   105,   107,   109,
-    -318,    38,   111,   127,  -318,  1117,   130,   506,  -318,  -318,
-     -87,   121,  -318,  -318,  -318,   116,  -318,   -77,  -318,  1540,
-    1552,   112,   112,   167,   220,   220,    68,  1252,    -5,     4,
-     220,  1117,  -318,  -318,    94,  1331,  1117,   539,    94,  1232,
-    -318,  1346,  -318,  1232,  -318,  1117,  1117,  1117,  -318,  1117,
-    -318,  1117,  1117,  -318,  -318,  -318,  -318,  -318,  -318,  -318,
-    -318,  -318,  -318,  -318,   491,  -318,  -318,  -318,   553,   154,
-     -94,  -318,  -318,  -318,  -318,  1117,   577,  1117,  1358,  -318,
-    1540,   129,  1117,   131,   591,  1370,   644,  1390,   301,   324,
-     123,   128,   132,   134,   135,  -318,  -318,   136,  -318,  -318,
-    -318,  -318,  1439,  -318,  1508,   137,  1232,   -58,  -110,  -318,
-    1117,  -318,  1117,  1117,  -318,  1117,  -318,  -318,  -318,  -318,
-    -318,  -318,  -318,  -318,  1117,  1117,   138,  -318,  -318,   160,
-     144,  -318,   148,   691,   729,   743,   757,   782,  1528,  -110,
-     156,   151,  1117,  -318,  -318,  -318,  -318,  -318,  -318,  -318,
-    -318,   160,  -318,   -54,  -318,  -318
+    -325,   268,  -325,  -120,  1191,  -325,  -325,   839,  -114,  -325,
+    -325,   -86,   -78,   -75,   -68,   -65,   -62,   -56,   -54,   879,
+    1554,  1603,  1621,   -40,  1191,  -102,   630,   -48,  -325,  1191,
+    -325,  -325,  -325,  -325,   -69,  -325,  -325,   -13,   -44,   -43,
+      -9,   -41,  -325,    -7,   -39,  1249,    -5,    -5,  1191,  1191,
+    -325,  1191,  1191,  -325,  -325,  -325,   -30,  -325,     2,  -117,
+    1509,  1191,  -325,  1191,  -325,  -121,  -325,  1629,  -325,  -325,
+    -325,  -325,   -17,  -325,   630,  -325,  -325,  1191,  -325,  -325,
+    -325,  -325,  -325,  -325,  -325,  -325,  -325,   -19,  -114,   -16,
+     -15,   -10,    -4,  -325,    45,     9,  1191,     2,    27,  1306,
+    1191,  1191,  1191,  1191,  1191,  1191,  1191,   904,  1191,     2,
+     961,     2,  1191,     2,  1019,     2,   -12,  -325,    18,    22,
+    -325,     2,  1592,  1509,   -37,  -325,  -325,  -325,    52,  1191,
+      60,  1076,   839,  1509,    35,  -325,  -325,    45,  -125,  -116,
+      57,  -325,   630,  1134,   630,  -325,  1191,  1191,  1191,  -325,
+    1191,  -325,  1191,  1191,  1191,  1191,  1191,  1191,  1191,  1191,
+      73,    18,  -325,   630,  -325,  -325,  1191,    -2,   630,     3,
+    1509,   438,  -325,  1191,   476,    37,   490,   828,  1326,    87,
+     286,  1348,   300,  -325,  -107,   504,  -325,   -98,   518,  -325,
+     538,  -325,  -325,   -59,    34,    38,    39,    41,    43,  -325,
+      -8,    48,    83,  -325,  1191,    85,   552,  -325,  -325,   -95,
+      61,  -325,  -325,  -325,    53,  -325,   -94,  -325,  1509,  1521,
+     111,   111,   166,    17,    17,    45,   808,    15,  1578,    17,
+    1191,  -325,  -325,     2,   322,  1191,     2,  1306,  -325,  1363,
+    -325,  1306,  -325,  1191,  1191,  1191,  -325,  1191,  -325,  1191,
+    1191,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+    -325,  -325,  -325,   251,  -325,  -325,  -325,   576,    89,   -58,
+    -325,  -325,  -325,  -325,  1191,   590,  1191,  -325,  1375,  1509,
+      71,  1191,    74,   656,  1405,   690,  1420,   338,   400,    66,
+      70,    78,    81,    84,    86,    88,  -325,  -325,  -325,  -325,
+    1432,  -325,  1444,    95,  1306,   -93,  -108,  -325,  1191,  -325,
+    1191,  1191,  -325,  1191,  -325,  -325,  -325,  -325,  -325,  -325,
+    -325,  -325,  -325,  1191,  1191,    96,  -325,  -325,   121,    92,
+    -325,    93,   728,   742,   756,   770,   794,  1464,  -108,    99,
+      94,  1191,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+     121,  -325,   -90,  -325,  -325
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -318,  -318,  -318,  -318,  -318,  -318,  -318,     9,    -1,    11,
-    -318,  -318,    -2,  -318,  -318,   295,   261,    57,  -233,  -318,
-    -317,   -39,   -26,   143,     0,    51,  -318,  -318,  -318,  -318,
-    -318,  -318,  -318,  -318,  -318,  -318,  -318,  -318,  -318,  -318,
-    -318,  -318,  -318,  -318,  -318
+    -325,  -325,  -325,  -325,  -325,  -325,  -325,    12,    -1,    11,
+    -325,  -325,   -36,  -325,  -325,   242,   205,    46,  -235,  -325,
+    -324,   -97,   -81,    90,     0,  -325,  -325,  -325,  -325,  -325,
+    -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
+    -325,  -325,  -325,  -325
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1015,368 +1016,366 @@ static const short int yypgoto[] =
 #define YYTABLE_NINF -1
 static const short int yytable[] =
 {
-      59,    67,   150,   328,   120,   152,   281,    87,   149,   163,
-     283,   150,   340,   151,   152,    95,    98,   300,   164,   165,
-     148,   149,   301,   119,   150,   100,   151,   152,   110,   112,
-     114,   116,   121,   329,   340,   122,   147,   146,   101,   212,
-     124,   147,   125,   213,   147,    67,   147,   147,   139,   143,
-     147,   254,   126,   143,   256,   102,   134,   271,   103,   138,
-     147,   104,   162,   141,   148,   149,   129,   273,   150,   105,
-     151,   152,   161,   326,   143,   150,   168,   106,   152,   147,
-     107,   148,   149,   147,   171,   150,   327,   151,   152,   172,
-     355,   117,   118,   203,   204,   148,   149,    97,   258,   150,
-     108,   151,   152,   136,   137,   143,   123,   186,   173,   127,
-     189,   176,   178,   179,   180,   181,   182,   183,   184,   150,
-     187,   128,   152,   202,   190,   130,   131,   132,    30,   157,
-     142,   210,   201,   153,   169,   154,   155,   156,   157,   170,
-     158,   207,    98,   217,   160,   174,   153,   191,   154,   155,
-     156,   157,   215,   158,   218,    97,   159,   160,   219,   220,
-     221,   192,   222,   214,   223,   224,   225,   226,   227,   228,
-     229,   230,   109,   234,   150,   264,   236,   152,   235,   238,
-     237,   144,   265,   145,   111,   144,   241,   145,   113,   231,
-     153,   163,   154,   155,   156,   157,   115,   158,   167,   147,
-     159,   160,   157,   193,   158,   232,   144,   153,   145,   154,
-     155,   156,   157,   206,   158,   247,   268,   159,   160,   208,
-     164,   153,   248,   154,   155,   156,   157,   150,   158,   249,
-     152,   159,   160,   243,   259,   260,   250,   144,   267,   145,
-     269,   153,   276,   154,   155,   156,   157,   278,   158,   261,
-     280,   262,   160,   263,   280,   266,   284,   285,   286,   272,
-     287,   145,   288,   289,   296,   299,   306,   317,   308,     2,
-       3,   325,   318,   328,   303,   339,   319,     4,   320,   321,
-     322,   307,     5,     6,     7,     8,   302,   342,   304,     9,
-     148,   149,   343,   351,   150,   352,   151,   152,   154,   155,
-     156,   157,    99,   158,   148,   149,   135,   160,   150,    10,
-     151,   152,   354,   350,   239,   297,     0,   280,     0,     0,
-       0,   333,     0,   334,   335,     0,   336,   148,   149,     0,
-       0,   150,     0,   151,   152,   337,   338,     0,     0,     0,
-       0,   353,     0,   148,   149,     0,     0,   150,     0,   151,
-     152,     0,     0,   156,   157,     0,   158,     0,     0,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
-       0,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,     0,    47,     0,
-       0,    48,     0,    49,   148,   149,     0,    50,   150,     0,
-     151,   152,    51,     0,     0,    52,   153,     0,   154,   155,
-     156,   157,     0,   158,   252,     0,   159,   160,     0,     0,
-     153,   253,   154,   155,   156,   157,     0,   158,   313,     0,
-     159,   160,   148,   149,     0,   314,   150,     0,   151,   152,
-       0,     0,     0,   153,     0,   154,   155,   156,   157,     0,
-     158,   315,     0,   159,   160,     0,     0,     0,   316,   153,
-       0,   154,   155,   156,   157,     0,   158,     0,     0,   159,
-     160,   148,   149,     0,   240,   150,     0,   151,   152,     0,
-       0,     0,     0,     0,     0,   148,   149,     0,     0,   150,
-       0,   151,   152,     0,     5,     6,   290,   291,     0,   148,
-     149,     9,     0,   150,     0,   151,   152,     0,     0,     0,
+      59,    67,   280,   142,   339,   327,   282,   162,   119,   142,
+     211,   145,   146,   142,   142,    94,   163,   164,    86,    97,
+     146,   146,   149,   118,   149,   151,   339,   151,   212,    99,
+     146,   109,   111,   113,   115,   328,   120,   252,   121,   146,
+     123,   124,   146,   146,   146,    67,   254,   146,   138,   270,
+     272,   326,   149,   298,   354,   151,   133,   100,   299,   137,
+     147,   148,   161,   140,   149,   101,   150,   151,   102,   325,
+     116,   117,   160,   202,   203,   103,   147,   148,   104,   167,
+     149,   105,   150,   151,    96,   257,   169,   106,   170,   107,
+     147,   148,   135,   136,   149,   122,   150,   151,   125,   126,
+     127,   128,   129,   130,   131,    30,   184,   171,   141,   187,
+     174,   176,   177,   178,   179,   180,   181,   182,   149,   185,
+     168,   151,   201,   188,    96,   190,   191,   108,   110,   263,
+     209,   162,   235,   112,   200,   143,   264,   144,   172,   114,
+     206,   143,   216,   144,    97,   143,   143,   144,   144,   156,
+     155,   156,   166,   157,   214,   146,   217,   218,   219,   220,
+     192,   221,   205,   222,   223,   224,   225,   226,   227,   228,
+     229,   207,   163,   149,   241,   233,   151,   234,   258,   156,
+     236,   157,   259,   260,   239,   261,   152,   262,   153,   154,
+     155,   156,   265,   157,   266,   268,   158,   159,   144,   271,
+     297,   230,   152,   213,   153,   154,   155,   156,   304,   157,
+     315,   306,   158,   159,   316,   267,   152,   231,   153,   154,
+     155,   156,   317,   157,   245,   318,   158,   159,   319,   324,
+     320,   246,   321,   338,   327,   341,   350,   342,   351,   301,
+     152,   275,   153,   154,   155,   156,   278,   157,   279,    98,
+     134,   159,   279,   353,   283,   284,   285,   349,   286,   237,
+     287,   288,     0,   295,     5,     6,   289,   290,     2,     3,
+       0,     9,     0,     0,     0,     0,     4,     0,     0,     0,
+     305,     5,     6,     7,     8,   300,     0,   302,     9,   147,
+     148,     0,     0,   149,     0,   150,   151,   153,   154,   155,
+     156,     0,   157,   147,   148,     0,   159,   149,    10,   150,
+     151,     0,     0,     0,     0,   279,     0,     0,     0,   332,
+       0,   333,   334,     0,   335,   147,   148,     0,     0,   149,
+       0,   150,   151,     0,   336,   337,     0,     0,     0,     0,
+     352,   147,   148,     0,     0,   149,     0,   150,   151,   291,
+     292,   293,   294,     0,     0,     0,     0,     0,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,     0,    27,    28,    29,    30,     0,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,     0,    47,     0,     0,
+      48,     0,    49,   147,   148,     0,    50,   149,     0,   150,
+     151,    51,     0,     0,    52,   152,     0,   153,   154,   155,
+     156,     0,   157,   247,     0,   158,   159,     0,     0,   152,
+     248,   153,   154,   155,   156,     0,   157,   250,     0,   158,
+     159,   147,   148,     0,   251,   149,     0,   150,   151,     0,
+       0,   152,     0,   153,   154,   155,   156,     0,   157,   276,
+       0,   158,   159,     0,     0,     0,   277,   152,     0,   153,
+     154,   155,   156,     0,   157,   311,     0,   158,   159,   147,
+     148,     0,   312,   149,     0,   150,   151,     0,     0,     0,
+       0,     0,     0,   147,   148,     0,     0,   149,     0,   150,
+     151,     0,     0,     0,     0,     0,     0,   147,   148,     0,
+       0,   149,     0,   150,   151,     0,     0,     0,     0,     0,
+       0,   147,   148,     0,     0,   149,     0,   150,   151,   152,
+       0,   153,   154,   155,   156,     0,   157,   313,     0,   158,
+     159,   147,   148,     0,   314,   149,     0,   150,   151,     0,
+       0,     0,     0,     0,     0,   147,   148,     0,     0,   149,
+       0,   150,   151,     0,     0,     0,     0,   152,     0,   153,
+     154,   155,   156,     0,   157,     0,     0,   158,   159,   147,
+     148,     0,   238,   149,     0,   150,   151,     0,     0,     0,
+       0,     0,     0,   147,   148,     0,     0,   149,     0,   150,
+     151,     0,     0,     0,     0,   152,     0,   153,   154,   155,
+     156,     0,   157,     0,     0,   158,   159,     0,     0,   152,
+     240,   153,   154,   155,   156,     0,   157,     0,     0,   158,
+     159,     0,     0,   152,   242,   153,   154,   155,   156,     0,
+     157,     0,     0,   158,   159,    87,     0,   152,   253,   153,
+     154,   155,   156,     0,   157,     0,     0,   158,   159,   147,
+     148,     0,   255,   149,     0,   150,   151,   152,     0,   153,
+     154,   155,   156,     0,   157,     0,     0,   158,   159,     0,
+       0,   152,   256,   153,   154,   155,   156,     0,   157,     0,
+       0,   158,   159,   147,   148,     0,   269,   149,     0,   150,
+     151,     0,     0,     0,     0,   152,     0,   153,   154,   155,
+     156,     0,   157,     0,     0,   158,   159,     0,     0,   152,
+     296,   153,   154,   155,   156,     0,   157,     0,     0,   158,
+     159,   147,   148,     0,   231,   149,     0,   150,   151,     0,
+      30,     0,    31,    32,    33,   147,   148,     0,     0,   149,
+       0,   150,   151,     0,     0,     0,     0,    93,     0,   147,
+     148,     0,     0,   149,    49,   150,   151,     0,     0,     0,
+       0,     0,     0,   147,   148,     0,    52,   149,     0,   150,
+     151,     0,     0,     0,     0,   152,     0,   153,   154,   155,
+     156,     0,   157,     0,     0,   158,   159,   147,   148,     0,
+     307,   149,     0,   150,   151,     0,     0,     0,     0,     0,
+       0,   147,   148,     0,     0,   149,     0,   150,   151,   152,
+       0,   153,   154,   155,   156,     0,   157,     0,     0,   158,
+     159,   147,   148,     0,   309,   149,     0,   150,   151,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     153,     0,   154,   155,   156,   157,     0,   158,     0,     0,
-     159,   160,   148,   149,     0,   242,   150,     0,   151,   152,
-       0,     0,     0,     0,     0,     0,   148,   149,     0,     0,
-     150,     0,   151,   152,     0,     0,     0,     0,   153,     0,
-     154,   155,   156,   157,     0,   158,     0,     0,   159,   160,
-     148,   149,     0,   244,   150,     0,   151,   152,     0,   292,
-     293,   294,   295,     0,   148,   149,     0,     0,   150,     0,
-     151,   152,     0,     0,     0,     0,     0,   153,     0,   154,
-     155,   156,   157,     0,   158,     0,     0,   159,   160,     0,
-       0,   153,   255,   154,   155,   156,   157,     0,   158,     0,
-       0,   159,   160,     0,     0,   153,   257,   154,   155,   156,
-     157,     0,   158,     0,     0,   159,   160,   148,   149,     0,
-     270,   150,     0,   151,   152,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   153,     0,
-     154,   155,   156,   157,     0,   158,     0,     0,   159,   160,
-       0,     0,   153,   279,   154,   155,   156,   157,     0,   158,
-       0,     0,   159,   160,   148,   149,     0,   298,   150,     0,
-     151,   152,    88,     0,     0,     0,   153,     0,   154,   155,
-     156,   157,     0,   158,     0,     0,   159,   160,     0,     0,
-     153,   232,   154,   155,   156,   157,     0,   158,     0,     0,
-     159,   160,   148,   149,     0,   309,   150,     0,   151,   152,
-       0,     0,     0,     0,     0,     0,   148,   149,     0,     0,
-     150,     0,   151,   152,     0,     0,     0,     0,     0,     0,
-     148,   149,     0,     0,   150,     0,   151,   152,     0,     0,
-       0,     0,     0,   153,     0,   154,   155,   156,   157,     0,
-     158,     0,     0,   159,   160,   148,   149,     0,   311,   150,
-       0,   151,   152,     0,     0,     0,     0,    30,     0,    31,
-      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    94,     0,     0,     0,     0,     0,
-     153,    49,   154,   155,   156,   157,     0,   158,     0,     0,
-     159,   160,     0,    52,     0,   344,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     4,     0,     0,     0,     0,
-       5,     6,    88,    89,     0,     0,     0,     9,   153,     0,
-     154,   155,   156,   157,     0,   158,     0,     0,   159,   160,
-       0,     0,   153,   345,   154,   155,   156,   157,    88,   158,
-       0,     0,   159,   160,     0,     0,   153,   346,   154,   155,
-     156,   157,     0,   158,     0,     0,   159,   160,     0,     0,
-       0,   347,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   153,     0,   154,   155,   156,   157,     0,   158,     0,
-       0,   159,   160,     0,     0,     0,   348,    11,    12,    13,
-      14,    15,    16,    17,    18,    90,    91,    92,    93,     0,
-       0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
-      32,    33,     0,     4,     0,     0,    38,    39,     5,     6,
-      88,    89,     0,     0,    94,     9,     0,     0,     0,    48,
-       0,    49,     0,    30,     0,    31,    32,    33,     0,     0,
-      51,   185,     0,    52,     0,     0,     0,     0,     0,     0,
-      94,     0,     0,     0,     0,     0,     0,    49,     0,     0,
-       0,     0,     0,     0,     0,     0,    97,     0,     0,    52,
-       4,     0,     0,     0,     0,     5,     6,    88,    89,     0,
-       0,     0,     9,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    11,    12,    13,    14,    15,
-      16,    17,    18,    90,    91,    92,    93,     0,     0,     0,
-       0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
-       0,     0,     0,     0,    38,    39,     0,     0,     4,     0,
-       0,     0,    94,     5,     6,    88,    89,    48,     0,    49,
-       9,     0,     0,     0,     0,     0,     0,     0,    51,   188,
-       0,    52,    11,    12,    13,    14,    15,    16,    17,    18,
-      90,    91,    92,    93,     0,     0,     0,     0,     0,     0,
-       0,     0,    30,     0,    31,    32,    33,     0,     0,     0,
-       0,    38,    39,     0,     0,     4,     0,     0,     0,    94,
-       5,     6,    88,    89,    48,     0,    49,     9,     0,     0,
-       0,     0,     0,     0,     0,    51,   209,     0,    52,     0,
-      11,    12,    13,    14,    15,    16,    17,    18,    90,    91,
-      92,    93,     0,     0,     0,     0,     0,     0,     0,     0,
-      30,     0,    31,    32,    33,     0,     0,     0,     0,    38,
-      39,     0,     0,     4,     0,     0,     0,    94,     5,     6,
-     133,    89,    48,     0,    49,     9,     0,     0,     0,     0,
-       0,     0,     0,    51,   216,     0,    52,    11,    12,    13,
-      14,    15,    16,    17,    18,    90,    91,    92,    93,     0,
-       0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
-      32,    33,     0,     0,     0,     0,    38,    39,     0,     0,
-       4,     0,     0,     0,    94,     5,     6,    88,    89,    48,
-       0,    49,     9,     0,     0,   148,   149,     0,     0,   150,
-      51,   151,   152,    52,     0,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,   148,   149,     0,
-       0,   150,     0,   151,   152,    30,     0,    31,    32,    33,
-       0,     0,   148,   149,    38,    39,   150,     0,   151,   152,
-       0,     0,    94,     0,   148,   149,     0,    48,   150,    49,
-     151,   152,     0,     0,     0,     0,     0,     0,    51,     0,
-       0,    52,    11,    12,    13,    14,    15,    16,    17,    18,
-      90,    91,    92,    93,   148,   149,     0,     0,   150,     0,
-     151,   152,    30,     0,    31,    32,    33,     0,     0,   148,
-     149,    38,    39,   150,     0,   151,   152,     0,     0,    94,
-       0,   148,   149,     0,    48,   150,    49,   151,   152,     0,
-       0,     0,     0,   148,   149,   175,     0,   150,    52,   151,
-     152,   153,     0,   154,   155,   156,   157,   274,   158,   275,
-       0,   159,   160,   148,   149,     0,     0,   150,     0,   151,
-     152,     0,     0,   153,     0,   154,   155,   156,   157,     0,
-     158,   245,     0,   159,   160,     0,     0,     0,   153,     0,
-     154,   155,   156,   157,     0,   158,   246,     0,   159,   160,
-     153,     0,   154,   155,   156,   157,     0,   158,   251,     0,
-     159,   160,   148,   149,     0,     0,   150,     0,   151,   152,
+       0,     0,     0,     0,    87,     0,     0,   152,     0,   153,
+     154,   155,   156,     0,   157,     0,     0,   158,   159,     0,
+       0,   152,   343,   153,   154,   155,   156,     0,   157,     0,
+       0,   158,   159,     0,     0,   152,   344,   153,   154,   155,
+     156,     0,   157,     0,    87,   158,   159,     0,     0,   152,
+     345,   153,   154,   155,   156,     0,   157,     0,     0,   158,
+     159,     0,     4,     0,   346,     0,     0,     5,     6,    87,
+      88,     0,     0,   152,     9,   153,   154,   155,   156,     0,
+     157,     0,     0,   158,   159,     0,     0,   152,   347,   153,
+     154,   155,   156,   273,   157,   274,     0,   158,   159,    30,
+       0,    31,    32,    33,     0,     0,     0,   152,     0,   153,
+     154,   155,   156,     0,   157,   243,    93,   158,   159,     4,
+       0,     0,     0,    49,     5,     6,    87,    88,     0,     0,
+       0,     9,    96,     0,     0,    52,     0,     0,     0,    30,
+       0,    31,    32,    33,    11,    12,    13,    14,    15,    16,
+      17,    18,    89,    90,    91,    92,    93,     0,     0,     0,
+       0,     0,     0,    49,    30,     0,    31,    32,    33,     0,
+       0,     0,   108,    38,    39,    52,     0,     4,     0,     0,
+       0,    93,     5,     6,    87,    88,    48,     0,    49,     9,
+       0,     0,     0,     0,     0,     0,     0,    51,   183,     0,
+      52,    11,    12,    13,    14,    15,    16,    17,    18,    89,
+      90,    91,    92,     0,     0,     0,     0,     0,     0,     0,
+       0,    30,     0,    31,    32,    33,     0,     0,     0,     0,
+      38,    39,     0,     0,     4,     0,     0,     0,    93,     5,
+       6,    87,    88,    48,     0,    49,     9,     0,     0,     0,
+       0,     0,     0,     0,    51,   186,     0,    52,     0,    11,
+      12,    13,    14,    15,    16,    17,    18,    89,    90,    91,
+      92,     0,     0,     0,     0,     0,     0,     0,     0,    30,
+       0,    31,    32,    33,     0,     0,     0,     0,    38,    39,
+       0,     0,     4,     0,     0,     0,    93,     5,     6,    87,
+      88,    48,     0,    49,     9,     0,     0,     0,     0,     0,
+       0,     0,    51,   189,     0,    52,    11,    12,    13,    14,
+      15,    16,    17,    18,    89,    90,    91,    92,     0,     0,
+       0,     0,     0,     0,     0,     0,    30,     0,    31,    32,
+      33,     0,     0,     0,     0,    38,    39,     0,     0,     4,
+       0,     0,     0,    93,     5,     6,    87,    88,    48,     0,
+      49,     9,     0,     0,     0,     0,     0,     0,     0,    51,
+     208,     0,    52,     0,    11,    12,    13,    14,    15,    16,
+      17,    18,    89,    90,    91,    92,     0,     0,     0,     0,
+       0,     0,     0,     0,    30,     0,    31,    32,    33,     0,
+       0,     0,     0,    38,    39,     0,     0,     4,     0,     0,
+       0,    93,     5,     6,   132,    88,    48,     0,    49,     9,
+       0,     0,     0,     0,     0,     0,     0,    51,   215,     0,
+      52,    11,    12,    13,    14,    15,    16,    17,    18,    89,
+      90,    91,    92,     0,     0,     0,     0,     0,     0,     0,
+       0,    30,     0,    31,    32,    33,     0,     0,     0,     0,
+      38,    39,     0,     0,     4,     0,     0,     0,    93,     5,
+       6,    87,    88,    48,     0,    49,     9,     0,     0,   147,
+     148,     0,     0,   149,    51,   150,   151,    52,     0,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,   147,   148,     0,     0,   149,     0,   150,   151,    30,
+       0,    31,    32,    33,     0,     0,   147,   148,    38,    39,
+     149,     0,   150,   151,     0,     0,    93,     0,   147,   148,
+       0,    48,   149,    49,   150,   151,     0,     0,     0,     0,
+       0,     0,    51,     0,     0,    52,    11,    12,    13,    14,
+      15,    16,    17,    18,    89,    90,    91,    92,   147,   148,
+       0,     0,   149,     0,   150,   151,    30,     0,    31,    32,
+      33,     0,     0,   147,   148,    38,    39,   149,     0,   150,
+     151,     0,     0,    93,     0,   147,   148,     0,    48,   149,
+      49,   150,   151,     0,     0,     0,     0,   147,   148,   173,
+       0,   149,    52,   150,   151,   152,     0,   153,   154,   155,
+     156,     0,   157,   244,     0,   158,   159,   147,   148,     0,
+       0,   149,     0,   150,   151,     0,     0,   152,     0,   153,
+     154,   155,   156,     0,   157,   249,     0,   158,   159,     0,
+       0,     0,   152,     0,   153,   154,   155,   156,     0,   157,
+     281,     0,   158,   159,   152,     0,   153,   154,   155,   156,
+     303,   157,   147,   148,   158,   159,   149,     0,   150,   151,
+       0,     0,     0,     0,    -1,   148,     0,     0,   149,     0,
+     150,   151,     0,     0,   152,     0,   153,   154,   155,   156,
+       0,   157,   308,     0,   158,   159,     0,     0,     0,   152,
+       0,   153,   154,   155,   156,     0,   157,   310,     0,   158,
+     159,   152,     0,   153,   154,   155,   156,   322,   157,    87,
+       0,   158,   159,   152,     0,   153,   154,   155,   156,     0,
+     157,   323,   148,   158,   159,   149,     0,   150,   151,     0,
+       0,     0,     0,   152,     0,   153,   154,   155,   156,   348,
+     157,     0,     0,   158,   159,     5,     6,   193,   194,     0,
+       0,     0,     9,     0,     0,     0,     0,     0,    87,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     153,     0,   154,   155,   156,   157,     0,   158,   277,     0,
-     159,   160,     0,     0,     0,   153,     0,   154,   155,   156,
-     157,     0,   158,   282,     0,   159,   160,   153,    88,   154,
-     155,   156,   157,   305,   158,     0,     0,   159,   160,   153,
-       0,   154,   155,   156,   157,     0,   158,   310,     0,   159,
-     160,   148,   149,     0,     0,   150,     0,   151,   152,   153,
-       0,   154,   155,   156,   157,     0,   158,   312,     0,   159,
-     160,   148,   149,     0,     0,   150,     0,   151,   152,     0,
-       0,     0,     0,   148,   149,     0,     0,   150,     0,   151,
-     152,     0,     0,     0,     0,    -1,   149,     0,     0,   150,
-       0,   151,   152,     0,     0,     0,     0,     0,   153,     0,
-     154,   155,   156,   157,   323,   158,     0,     0,   159,   160,
-       0,     0,     0,    30,     0,    31,    32,    33,     0,     0,
+       0,     0,     0,     0,     0,     0,    87,     0,   152,     0,
+     153,   154,   155,   156,    87,   157,     0,     0,   158,   159,
+     152,     0,   153,   154,   155,   156,     0,   157,     0,     0,
+     158,   159,     0,     0,    30,     0,    31,    32,    33,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      94,     0,    88,     0,     0,     0,     0,    49,     5,     6,
-     194,   195,     0,     0,     0,     9,   109,     0,     0,    52,
-       0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
-       0,     0,     0,     0,     0,     0,     0,   153,     0,   154,
-     155,   156,   157,     0,   158,   324,     0,   159,   160,     0,
-       0,    88,     0,     0,     0,     0,    88,   153,     0,   154,
-     155,   156,   157,   349,   158,     0,     0,   159,   160,   153,
-       0,   154,   155,   156,   157,     0,   158,     0,     0,   159,
-     160,   153,     0,   154,   155,   156,   157,     0,   158,     0,
-       0,   159,   160,   196,   197,   198,   199,    30,     0,    31,
-      32,    33,     0,     0,     0,    30,     0,    31,    32,    33,
-       0,     0,     0,     0,    94,     0,     0,     0,     0,     0,
-       0,    49,    94,    30,     0,    31,    32,    33,     0,    49,
-     111,     0,     0,    52,     0,     0,     0,     0,     0,   200,
-      94,    52,     0,     0,     0,     0,    30,    49,    31,    32,
-      33,    30,     0,    31,    32,    33,   113,     0,     0,    52,
-       0,     0,     0,    94,     0,     0,     0,     0,    94,     0,
-      49,     0,     0,     0,     0,    49,     0,     0,     0,   115,
-       0,     0,    52,     0,   167,     0,     0,    52
+       0,    93,     0,     0,     0,     0,     0,     0,    49,     0,
+     195,   196,   197,   198,     0,     0,     0,   110,     0,     0,
+      52,     0,    30,     0,    31,    32,    33,   152,     0,   153,
+     154,   155,   156,    30,   157,    31,    32,    33,   159,    93,
+       0,     0,     0,     0,     0,     0,    49,     0,     0,     0,
+      93,    30,     0,    31,    32,    33,   199,    49,    52,    30,
+       0,    31,    32,    33,     0,     0,   112,     0,    93,    52,
+       0,     0,     0,     0,     0,    49,    93,     0,     0,     0,
+       0,     0,     0,    49,   114,     0,     0,    52,     0,     0,
+       0,     0,   166,     0,     0,    52
 };
 
 static const short int yycheck[] =
 {
-       1,     1,     7,   113,   110,    10,   239,   138,     4,   128,
-     243,     7,   329,     9,    10,     4,     7,   111,   137,   138,
-       3,     4,   116,    24,     7,   143,     9,    10,    19,    20,
-      21,    22,   138,   143,   351,    26,   137,   128,   143,   135,
-      29,   137,   110,   144,   137,    45,   137,   137,    49,    11,
-     137,   144,   111,    11,   144,   143,    45,   144,   143,    48,
-     137,   143,    63,    52,     3,     4,   110,   144,     7,   143,
-       9,    10,    61,   306,    11,     7,    67,   143,    10,   137,
-     143,     3,     4,   137,    75,     7,   144,     9,    10,    78,
-     144,   110,   111,   110,   111,     3,     4,   143,   144,     7,
-     143,     9,    10,    46,    47,    11,   143,   108,    97,   143,
-     111,   100,   101,   102,   103,   104,   105,   106,   107,     7,
-     109,   143,    10,   123,   113,   143,   110,   143,   110,   134,
-     138,   132,   123,   129,   143,   131,   132,   133,   134,   137,
-     136,   130,   133,   144,   140,   111,   129,   144,   131,   132,
-     133,   134,   143,   136,   145,   143,   139,   140,   147,   148,
-     149,   138,   151,   146,   153,   154,   155,   156,   157,   158,
-     159,   160,   143,   164,     7,   137,   134,    10,   167,   170,
-     169,   143,   144,   145,   143,   143,   175,   145,   143,   128,
-     129,   128,   131,   132,   133,   134,   143,   136,   143,   137,
-     139,   140,   134,   138,   136,   144,   143,   129,   145,   131,
-     132,   133,   134,   110,   136,   137,   205,   139,   140,   111,
-     137,   129,   144,   131,   132,   133,   134,     7,   136,   137,
-      10,   139,   140,   137,   144,   144,   144,   143,   111,   145,
-     110,   129,   231,   131,   132,   133,   134,   236,   136,   144,
-     239,   144,   140,   144,   243,   144,   245,   246,   247,   138,
-     249,   145,   251,   252,   264,   111,   137,   144,   137,     0,
-       1,   134,   144,   113,   276,   137,   144,     8,   144,   144,
-     144,   282,    13,    14,    15,    16,   275,   143,   277,    20,
-       3,     4,   144,   137,     7,   144,     9,    10,   131,   132,
-     133,   134,     7,   136,     3,     4,    45,   140,     7,    40,
-       9,    10,   351,   339,   171,   264,    -1,   306,    -1,    -1,
-      -1,   310,    -1,   312,   313,    -1,   315,     3,     4,    -1,
-      -1,     7,    -1,     9,    10,   324,   325,    -1,    -1,    -1,
-      -1,   342,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
-      10,    -1,    -1,   133,   134,    -1,   136,    -1,    -1,    90,
-      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-     101,   102,   103,   104,   105,    -1,   107,   108,   109,   110,
-      -1,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,    -1,   129,    -1,
-      -1,   132,    -1,   134,     3,     4,    -1,   138,     7,    -1,
-       9,    10,   143,    -1,    -1,   146,   129,    -1,   131,   132,
-     133,   134,    -1,   136,   137,    -1,   139,   140,    -1,    -1,
-     129,   144,   131,   132,   133,   134,    -1,   136,   137,    -1,
-     139,   140,     3,     4,    -1,   144,     7,    -1,     9,    10,
-      -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,
-     136,   137,    -1,   139,   140,    -1,    -1,    -1,   144,   129,
-      -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,   139,
+       1,     1,   237,    11,   328,   113,   241,   128,   110,    11,
+     135,   128,   137,    11,    11,     4,   137,   138,   138,     7,
+     137,   137,     7,    24,     7,    10,   350,    10,   144,   143,
+     137,    19,    20,    21,    22,   143,   138,   144,    26,   137,
+      29,   110,   137,   137,   137,    45,   144,   137,    49,   144,
+     144,   144,     7,   111,   144,    10,    45,   143,   116,    48,
+       3,     4,    63,    52,     7,   143,     9,    10,   143,   304,
+     110,   111,    61,   110,   111,   143,     3,     4,   143,    67,
+       7,   143,     9,    10,   143,   144,    74,   143,    77,   143,
+       3,     4,    46,    47,     7,   143,     9,    10,   111,   143,
+     143,   110,   143,   110,   143,   110,   107,    96,   138,   110,
+      99,   100,   101,   102,   103,   104,   105,   106,     7,   108,
+     137,    10,   122,   112,   143,   114,   138,   143,   143,   137,
+     131,   128,   134,   143,   122,   143,   144,   145,   111,   143,
+     129,   143,   143,   145,   132,   143,   143,   145,   145,   134,
+     133,   134,   143,   136,   142,   137,   144,   146,   147,   148,
+     138,   150,   110,   152,   153,   154,   155,   156,   157,   158,
+     159,   111,   137,     7,   137,   163,    10,   166,   144,   134,
+     168,   136,   144,   144,   173,   144,   129,   144,   131,   132,
+     133,   134,   144,   136,   111,   110,   139,   140,   145,   138,
+     111,   128,   129,   146,   131,   132,   133,   134,   137,   136,
+     144,   137,   139,   140,   144,   204,   129,   144,   131,   132,
+     133,   134,   144,   136,   137,   144,   139,   140,   144,   134,
+     144,   144,   144,   137,   113,   143,   137,   144,   144,   275,
+     129,   230,   131,   132,   133,   134,   235,   136,   237,     7,
+      45,   140,   241,   350,   243,   244,   245,   338,   247,   169,
+     249,   250,    -1,   263,    13,    14,    15,    16,     0,     1,
+      -1,    20,    -1,    -1,    -1,    -1,     8,    -1,    -1,    -1,
+     281,    13,    14,    15,    16,   274,    -1,   276,    20,     3,
+       4,    -1,    -1,     7,    -1,     9,    10,   131,   132,   133,
+     134,    -1,   136,     3,     4,    -1,   140,     7,    40,     9,
+      10,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,   308,
+      -1,   310,   311,    -1,   313,     3,     4,    -1,    -1,     7,
+      -1,     9,    10,    -1,   323,   324,    -1,    -1,    -1,    -1,
+     341,     3,     4,    -1,    -1,     7,    -1,     9,    10,    98,
+      99,   100,   101,    -1,    -1,    -1,    -1,    -1,    90,    91,
+      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
+     102,   103,   104,   105,    -1,   107,   108,   109,   110,    -1,
+     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
+     122,   123,   124,   125,   126,   127,    -1,   129,    -1,    -1,
+     132,    -1,   134,     3,     4,    -1,   138,     7,    -1,     9,
+      10,   143,    -1,    -1,   146,   129,    -1,   131,   132,   133,
+     134,    -1,   136,   137,    -1,   139,   140,    -1,    -1,   129,
+     144,   131,   132,   133,   134,    -1,   136,   137,    -1,   139,
+     140,     3,     4,    -1,   144,     7,    -1,     9,    10,    -1,
+      -1,   129,    -1,   131,   132,   133,   134,    -1,   136,   137,
+      -1,   139,   140,    -1,    -1,    -1,   144,   129,    -1,   131,
+     132,   133,   134,    -1,   136,   137,    -1,   139,   140,     3,
+       4,    -1,   144,     7,    -1,     9,    10,    -1,    -1,    -1,
+      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
+      10,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
+      -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
+      -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,   129,
+      -1,   131,   132,   133,   134,    -1,   136,   137,    -1,   139,
      140,     3,     4,    -1,   144,     7,    -1,     9,    10,    -1,
       -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
-      -1,     9,    10,    -1,    13,    14,    15,    16,    -1,     3,
-       4,    20,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     129,    -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,
-     139,   140,     3,     4,    -1,   144,     7,    -1,     9,    10,
-      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
-       7,    -1,     9,    10,    -1,    -1,    -1,    -1,   129,    -1,
-     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
-       3,     4,    -1,   144,     7,    -1,     9,    10,    -1,    98,
-      99,   100,   101,    -1,     3,     4,    -1,    -1,     7,    -1,
-       9,    10,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,
+      -1,     9,    10,    -1,    -1,    -1,    -1,   129,    -1,   131,
+     132,   133,   134,    -1,   136,    -1,    -1,   139,   140,     3,
+       4,    -1,   144,     7,    -1,     9,    10,    -1,    -1,    -1,
+      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
+      10,    -1,    -1,    -1,    -1,   129,    -1,   131,   132,   133,
+     134,    -1,   136,    -1,    -1,   139,   140,    -1,    -1,   129,
+     144,   131,   132,   133,   134,    -1,   136,    -1,    -1,   139,
+     140,    -1,    -1,   129,   144,   131,   132,   133,   134,    -1,
+     136,    -1,    -1,   139,   140,    15,    -1,   129,   144,   131,
+     132,   133,   134,    -1,   136,    -1,    -1,   139,   140,     3,
+       4,    -1,   144,     7,    -1,     9,    10,   129,    -1,   131,
      132,   133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,
       -1,   129,   144,   131,   132,   133,   134,    -1,   136,    -1,
-      -1,   139,   140,    -1,    -1,   129,   144,   131,   132,   133,
+      -1,   139,   140,     3,     4,    -1,   144,     7,    -1,     9,
+      10,    -1,    -1,    -1,    -1,   129,    -1,   131,   132,   133,
+     134,    -1,   136,    -1,    -1,   139,   140,    -1,    -1,   129,
+     144,   131,   132,   133,   134,    -1,   136,    -1,    -1,   139,
+     140,     3,     4,    -1,   144,     7,    -1,     9,    10,    -1,
+     110,    -1,   112,   113,   114,     3,     4,    -1,    -1,     7,
+      -1,     9,    10,    -1,    -1,    -1,    -1,   127,    -1,     3,
+       4,    -1,    -1,     7,   134,     9,    10,    -1,    -1,    -1,
+      -1,    -1,    -1,     3,     4,    -1,   146,     7,    -1,     9,
+      10,    -1,    -1,    -1,    -1,   129,    -1,   131,   132,   133,
      134,    -1,   136,    -1,    -1,   139,   140,     3,     4,    -1,
      144,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,
-     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
-      -1,    -1,   129,   144,   131,   132,   133,   134,    -1,   136,
-      -1,    -1,   139,   140,     3,     4,    -1,   144,     7,    -1,
-       9,    10,    15,    -1,    -1,    -1,   129,    -1,   131,   132,
-     133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,    -1,
-     129,   144,   131,   132,   133,   134,    -1,   136,    -1,    -1,
-     139,   140,     3,     4,    -1,   144,     7,    -1,     9,    10,
-      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
-       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
-       3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,
-      -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,
-     136,    -1,    -1,   139,   140,     3,     4,    -1,   144,     7,
-      -1,     9,    10,    -1,    -1,    -1,    -1,   110,    -1,   112,
-     113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,
-     129,   134,   131,   132,   133,   134,    -1,   136,    -1,    -1,
-     139,   140,    -1,   146,    -1,   144,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,    -1,    -1,
-      13,    14,    15,    16,    -1,    -1,    -1,    20,   129,    -1,
-     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
-      -1,    -1,   129,   144,   131,   132,   133,   134,    15,   136,
-      -1,    -1,   139,   140,    -1,    -1,   129,   144,   131,   132,
-     133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,    -1,
-      -1,   144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   129,    -1,   131,   132,   133,   134,    -1,   136,    -1,
-      -1,   139,   140,    -1,    -1,    -1,   144,    90,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,
-     113,   114,    -1,     8,    -1,    -1,   119,   120,    13,    14,
-      15,    16,    -1,    -1,   127,    20,    -1,    -1,    -1,   132,
-      -1,   134,    -1,   110,    -1,   112,   113,   114,    -1,    -1,
-     143,   144,    -1,   146,    -1,    -1,    -1,    -1,    -1,    -1,
-     127,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,   146,
-       8,    -1,    -1,    -1,    -1,    13,    14,    15,    16,    -1,
-      -1,    -1,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   110,    -1,   112,   113,   114,
-      -1,    -1,    -1,    -1,   119,   120,    -1,    -1,     8,    -1,
-      -1,    -1,   127,    13,    14,    15,    16,   132,    -1,   134,
-      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,   144,
-      -1,   146,    90,    91,    92,    93,    94,    95,    96,    97,
-      98,    99,   100,   101,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   110,    -1,   112,   113,   114,    -1,    -1,    -1,
-      -1,   119,   120,    -1,    -1,     8,    -1,    -1,    -1,   127,
-      13,    14,    15,    16,   132,    -1,   134,    20,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   143,   144,    -1,   146,    -1,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     110,    -1,   112,   113,   114,    -1,    -1,    -1,    -1,   119,
-     120,    -1,    -1,     8,    -1,    -1,    -1,   127,    13,    14,
-      15,    16,   132,    -1,   134,    20,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   143,   144,    -1,   146,    90,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,
-     113,   114,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,
-       8,    -1,    -1,    -1,   127,    13,    14,    15,    16,   132,
-      -1,   134,    20,    -1,    -1,     3,     4,    -1,    -1,     7,
-     143,     9,    10,   146,    -1,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,     3,     4,    -1,
-      -1,     7,    -1,     9,    10,   110,    -1,   112,   113,   114,
-      -1,    -1,     3,     4,   119,   120,     7,    -1,     9,    10,
-      -1,    -1,   127,    -1,     3,     4,    -1,   132,     7,   134,
-       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,
-      -1,   146,    90,    91,    92,    93,    94,    95,    96,    97,
-      98,    99,   100,   101,     3,     4,    -1,    -1,     7,    -1,
-       9,    10,   110,    -1,   112,   113,   114,    -1,    -1,     3,
-       4,   119,   120,     7,    -1,     9,    10,    -1,    -1,   127,
-      -1,     3,     4,    -1,   132,     7,   134,     9,    10,    -1,
-      -1,    -1,    -1,     3,     4,   143,    -1,     7,   146,     9,
-      10,   129,    -1,   131,   132,   133,   134,   135,   136,   137,
-      -1,   139,   140,     3,     4,    -1,    -1,     7,    -1,     9,
-      10,    -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,
-     136,   137,    -1,   139,   140,    -1,    -1,    -1,   129,    -1,
-     131,   132,   133,   134,    -1,   136,   137,    -1,   139,   140,
-     129,    -1,   131,   132,   133,   134,    -1,   136,   137,    -1,
-     139,   140,     3,     4,    -1,    -1,     7,    -1,     9,    10,
+      -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,   129,
+      -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,   139,
+     140,     3,     4,    -1,   144,     7,    -1,     9,    10,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     129,    -1,   131,   132,   133,   134,    -1,   136,   137,    -1,
-     139,   140,    -1,    -1,    -1,   129,    -1,   131,   132,   133,
-     134,    -1,   136,   137,    -1,   139,   140,   129,    15,   131,
-     132,   133,   134,   135,   136,    -1,    -1,   139,   140,   129,
-      -1,   131,   132,   133,   134,    -1,   136,   137,    -1,   139,
-     140,     3,     4,    -1,    -1,     7,    -1,     9,    10,   129,
+      -1,    -1,    -1,    -1,    15,    -1,    -1,   129,    -1,   131,
+     132,   133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,
+      -1,   129,   144,   131,   132,   133,   134,    -1,   136,    -1,
+      -1,   139,   140,    -1,    -1,   129,   144,   131,   132,   133,
+     134,    -1,   136,    -1,    15,   139,   140,    -1,    -1,   129,
+     144,   131,   132,   133,   134,    -1,   136,    -1,    -1,   139,
+     140,    -1,     8,    -1,   144,    -1,    -1,    13,    14,    15,
+      16,    -1,    -1,   129,    20,   131,   132,   133,   134,    -1,
+     136,    -1,    -1,   139,   140,    -1,    -1,   129,   144,   131,
+     132,   133,   134,   135,   136,   137,    -1,   139,   140,   110,
+      -1,   112,   113,   114,    -1,    -1,    -1,   129,    -1,   131,
+     132,   133,   134,    -1,   136,   137,   127,   139,   140,     8,
+      -1,    -1,    -1,   134,    13,    14,    15,    16,    -1,    -1,
+      -1,    20,   143,    -1,    -1,   146,    -1,    -1,    -1,   110,
+      -1,   112,   113,   114,    90,    91,    92,    93,    94,    95,
+      96,    97,    98,    99,   100,   101,   127,    -1,    -1,    -1,
+      -1,    -1,    -1,   134,   110,    -1,   112,   113,   114,    -1,
+      -1,    -1,   143,   119,   120,   146,    -1,     8,    -1,    -1,
+      -1,   127,    13,    14,    15,    16,   132,    -1,   134,    20,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,   144,    -1,
+     146,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+      99,   100,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   110,    -1,   112,   113,   114,    -1,    -1,    -1,    -1,
+     119,   120,    -1,    -1,     8,    -1,    -1,    -1,   127,    13,
+      14,    15,    16,   132,    -1,   134,    20,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   143,   144,    -1,   146,    -1,    90,
+      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
+      -1,   112,   113,   114,    -1,    -1,    -1,    -1,   119,   120,
+      -1,    -1,     8,    -1,    -1,    -1,   127,    13,    14,    15,
+      16,   132,    -1,   134,    20,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   143,   144,    -1,   146,    90,    91,    92,    93,
+      94,    95,    96,    97,    98,    99,   100,   101,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,   113,
+     114,    -1,    -1,    -1,    -1,   119,   120,    -1,    -1,     8,
+      -1,    -1,    -1,   127,    13,    14,    15,    16,   132,    -1,
+     134,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
+     144,    -1,   146,    -1,    90,    91,    92,    93,    94,    95,
+      96,    97,    98,    99,   100,   101,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   110,    -1,   112,   113,   114,    -1,
+      -1,    -1,    -1,   119,   120,    -1,    -1,     8,    -1,    -1,
+      -1,   127,    13,    14,    15,    16,   132,    -1,   134,    20,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,   144,    -1,
+     146,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+      99,   100,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   110,    -1,   112,   113,   114,    -1,    -1,    -1,    -1,
+     119,   120,    -1,    -1,     8,    -1,    -1,    -1,   127,    13,
+      14,    15,    16,   132,    -1,   134,    20,    -1,    -1,     3,
+       4,    -1,    -1,     7,   143,     9,    10,   146,    -1,    90,
+      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+     101,     3,     4,    -1,    -1,     7,    -1,     9,    10,   110,
+      -1,   112,   113,   114,    -1,    -1,     3,     4,   119,   120,
+       7,    -1,     9,    10,    -1,    -1,   127,    -1,     3,     4,
+      -1,   132,     7,   134,     9,    10,    -1,    -1,    -1,    -1,
+      -1,    -1,   143,    -1,    -1,   146,    90,    91,    92,    93,
+      94,    95,    96,    97,    98,    99,   100,   101,     3,     4,
+      -1,    -1,     7,    -1,     9,    10,   110,    -1,   112,   113,
+     114,    -1,    -1,     3,     4,   119,   120,     7,    -1,     9,
+      10,    -1,    -1,   127,    -1,     3,     4,    -1,   132,     7,
+     134,     9,    10,    -1,    -1,    -1,    -1,     3,     4,   143,
+      -1,     7,   146,     9,    10,   129,    -1,   131,   132,   133,
+     134,    -1,   136,   137,    -1,   139,   140,     3,     4,    -1,
+      -1,     7,    -1,     9,    10,    -1,    -1,   129,    -1,   131,
+     132,   133,   134,    -1,   136,   137,    -1,   139,   140,    -1,
+      -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,   136,
+     137,    -1,   139,   140,   129,    -1,   131,   132,   133,   134,
+     135,   136,     3,     4,   139,   140,     7,    -1,     9,    10,
+      -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,
+       9,    10,    -1,    -1,   129,    -1,   131,   132,   133,   134,
+      -1,   136,   137,    -1,   139,   140,    -1,    -1,    -1,   129,
       -1,   131,   132,   133,   134,    -1,   136,   137,    -1,   139,
-     140,     3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,
-      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
-      10,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
-      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,   129,    -1,
-     131,   132,   133,   134,   135,   136,    -1,    -1,   139,   140,
-      -1,    -1,    -1,   110,    -1,   112,   113,   114,    -1,    -1,
+     140,   129,    -1,   131,   132,   133,   134,   135,   136,    15,
+      -1,   139,   140,   129,    -1,   131,   132,   133,   134,    -1,
+     136,   137,     4,   139,   140,     7,    -1,     9,    10,    -1,
+      -1,    -1,    -1,   129,    -1,   131,   132,   133,   134,   135,
+     136,    -1,    -1,   139,   140,    13,    14,    15,    16,    -1,
+      -1,    -1,    20,    -1,    -1,    -1,    -1,    -1,    15,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     127,    -1,    15,    -1,    -1,    -1,    -1,   134,    13,    14,
-      15,    16,    -1,    -1,    -1,    20,   143,    -1,    -1,   146,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    15,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,
-     132,   133,   134,    -1,   136,   137,    -1,   139,   140,    -1,
-      -1,    15,    -1,    -1,    -1,    -1,    15,   129,    -1,   131,
-     132,   133,   134,   135,   136,    -1,    -1,   139,   140,   129,
-      -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,   139,
-     140,   129,    -1,   131,   132,   133,   134,    -1,   136,    -1,
-      -1,   139,   140,    98,    99,   100,   101,   110,    -1,   112,
-     113,   114,    -1,    -1,    -1,   110,    -1,   112,   113,   114,
-      -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,
-      -1,   134,   127,   110,    -1,   112,   113,   114,    -1,   134,
-     143,    -1,    -1,   146,    -1,    -1,    -1,    -1,    -1,   144,
-     127,   146,    -1,    -1,    -1,    -1,   110,   134,   112,   113,
-     114,   110,    -1,   112,   113,   114,   143,    -1,    -1,   146,
-      -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,   127,    -1,
-     134,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,   143,
-      -1,    -1,   146,    -1,   143,    -1,    -1,   146
+      -1,    -1,    -1,    -1,    -1,    -1,    15,    -1,   129,    -1,
+     131,   132,   133,   134,    15,   136,    -1,    -1,   139,   140,
+     129,    -1,   131,   132,   133,   134,    -1,   136,    -1,    -1,
+     139,   140,    -1,    -1,   110,    -1,   112,   113,   114,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
+      98,    99,   100,   101,    -1,    -1,    -1,   143,    -1,    -1,
+     146,    -1,   110,    -1,   112,   113,   114,   129,    -1,   131,
+     132,   133,   134,   110,   136,   112,   113,   114,   140,   127,
+      -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,
+     127,   110,    -1,   112,   113,   114,   144,   134,   146,   110,
+      -1,   112,   113,   114,    -1,    -1,   143,    -1,   127,   146,
+      -1,    -1,    -1,    -1,    -1,   134,   127,    -1,    -1,    -1,
+      -1,    -1,    -1,   134,   143,    -1,    -1,   146,    -1,    -1,
+      -1,    -1,   143,    -1,    -1,   146
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1389,36 +1388,36 @@ static const unsigned char yystos[] =
      110,   112,   113,   114,   115,   116,   117,   118,   119,   120,
      121,   122,   123,   124,   125,   126,   127,   129,   132,   134,
      138,   143,   146,   149,   150,   151,   152,   153,   154,   155,
-     156,   158,   160,   161,   162,   163,   164,   171,   172,   173,
+     156,   158,   160,   161,   162,   163,   164,   171,   172,   174,
      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   138,    15,    16,
-      98,    99,   100,   101,   127,   156,   171,   143,   154,   162,
-     143,   143,   143,   143,   143,   143,   143,   143,   143,   143,
-     154,   143,   154,   143,   154,   143,   154,   110,   111,   155,
-     110,   138,   154,   143,   156,   110,   111,   143,   143,   110,
-     143,   110,   143,    15,   156,   163,   164,   164,   156,   155,
-     155,   156,   138,    11,   143,   145,   128,   137,     3,     4,
-       7,     9,    10,   129,   131,   132,   133,   134,   136,   139,
-     140,   156,   155,   128,   137,   138,   170,   143,   154,   143,
-     137,   154,   156,   156,   111,   143,   156,   165,   156,   156,
-     156,   156,   156,   156,   156,   144,   155,   156,   144,   155,
-     156,   144,   138,   138,    15,    16,    98,    99,   100,   101,
-     144,   154,   171,   110,   111,   157,   110,   156,   111,   144,
-     155,   174,   135,   144,   146,   154,   144,   155,   154,   156,
+     185,   186,   187,   188,   189,   190,   138,    15,    16,    98,
+      99,   100,   101,   127,   156,   171,   143,   154,   162,   143,
+     143,   143,   143,   143,   143,   143,   143,   143,   143,   154,
+     143,   154,   143,   154,   143,   154,   110,   111,   155,   110,
+     138,   154,   143,   156,   110,   111,   143,   143,   110,   143,
+     110,   143,    15,   156,   163,   164,   164,   156,   155,   155,
+     156,   138,    11,   143,   145,   128,   137,     3,     4,     7,
+       9,    10,   129,   131,   132,   133,   134,   136,   139,   140,
+     156,   155,   128,   137,   138,   170,   143,   154,   137,   154,
+     156,   156,   111,   143,   156,   165,   156,   156,   156,   156,
+     156,   156,   156,   144,   155,   156,   144,   155,   156,   144,
+     156,   138,   138,    15,    16,    98,    99,   100,   101,   144,
+     154,   171,   110,   111,   157,   110,   156,   111,   144,   155,
+     173,   135,   144,   146,   154,   144,   155,   154,   156,   156,
      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
-     156,   128,   144,   159,   154,   156,   134,   156,   154,   170,
-     144,   156,   144,   137,   144,   137,   137,   137,   144,   137,
-     144,   137,   137,   144,   144,   144,   144,   144,   144,   144,
-     144,   144,   144,   144,   137,   144,   144,   111,   156,   110,
-     144,   144,   138,   144,   135,   137,   156,   137,   156,   144,
-     156,   165,   137,   165,   156,   156,   156,   156,   156,   156,
-      15,    16,    98,    99,   100,   101,   171,   172,   144,   111,
-     111,   116,   156,   159,   156,   135,   137,   155,   137,   144,
-     137,   144,   137,   137,   144,   137,   144,   144,   144,   144,
-     144,   144,   144,   135,   137,   134,   165,   144,   113,   143,
-     166,   167,   169,   156,   156,   156,   156,   156,   156,   137,
-     167,   168,   143,   144,   144,   144,   144,   144,   144,   135,
-     169,   137,   144,   155,   168,   144
+     128,   144,   159,   154,   156,   134,   154,   170,   144,   156,
+     144,   137,   144,   137,   137,   137,   144,   137,   144,   137,
+     137,   144,   144,   144,   144,   144,   144,   144,   144,   144,
+     144,   144,   144,   137,   144,   144,   111,   156,   110,   144,
+     144,   138,   144,   135,   137,   156,   137,   144,   156,   156,
+     165,   137,   165,   156,   156,   156,   156,   156,   156,    15,
+      16,    98,    99,   100,   101,   171,   144,   111,   111,   116,
+     156,   159,   156,   135,   137,   155,   137,   144,   137,   144,
+     137,   137,   144,   137,   144,   144,   144,   144,   144,   144,
+     144,   144,   135,   137,   134,   165,   144,   113,   143,   166,
+     167,   169,   156,   156,   156,   156,   156,   156,   137,   167,
+     168,   143,   144,   144,   144,   144,   144,   144,   135,   169,
+     137,   144,   155,   168,   144
 };
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
@@ -2030,7 +2029,7 @@ yyreduce:
   switch (yyn)
     {
         case 3:
-#line 363 "grammar.y"
+#line 362 "grammar.y"
     {
             if (timerv)
             {
@@ -2064,24 +2063,24 @@ yyreduce:
     break;
 
   case 5:
-#line 398 "grammar.y"
+#line 397 "grammar.y"
     {currentVoice->ifsw=0;;}
     break;
 
   case 6:
-#line 400 "grammar.y"
+#line 399 "grammar.y"
     { yyvsp[-1].lv.CleanUp(); currentVoice->ifsw=0;;}
     break;
 
   case 7:
-#line 402 "grammar.y"
+#line 401 "grammar.y"
     {
             YYACCEPT;
           ;}
     break;
 
   case 8:
-#line 406 "grammar.y"
+#line 405 "grammar.y"
     {
             currentVoice->ifsw=0;
             iiDebug();
@@ -2089,12 +2088,12 @@ yyreduce:
     break;
 
   case 9:
-#line 411 "grammar.y"
+#line 410 "grammar.y"
     {currentVoice->ifsw=0;;}
     break;
 
   case 10:
-#line 413 "grammar.y"
+#line 412 "grammar.y"
     {
             #ifdef SIQ
             siq=0;
@@ -2146,24 +2145,24 @@ yyreduce:
     break;
 
   case 18:
-#line 471 "grammar.y"
+#line 470 "grammar.y"
     {if (currentVoice!=NULL) currentVoice->ifsw=0;;}
     break;
 
   case 19:
-#line 474 "grammar.y"
+#line 473 "grammar.y"
     { omFree((ADDRESS)yyvsp[0].name); ;}
     break;
 
   case 29:
-#line 489 "grammar.y"
+#line 488 "grammar.y"
     {
             if(iiAssign(&yyvsp[-1].lv,&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
   case 30:
-#line 496 "grammar.y"
+#line 495 "grammar.y"
     {
             if (currRing==NULL) MYYERROR("no ring active");
             syMake(&yyval.lv,omStrDup(yyvsp[0].name));
@@ -2171,35 +2170,35 @@ yyreduce:
     break;
 
   case 31:
-#line 501 "grammar.y"
+#line 500 "grammar.y"
     {
             syMake(&yyval.lv,yyvsp[0].name);
           ;}
     break;
 
   case 32:
-#line 505 "grammar.y"
+#line 504 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv, &yyvsp[-2].lv, COLONCOLON, &yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
   case 33:
-#line 509 "grammar.y"
+#line 508 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv, &yyvsp[-2].lv, '.', &yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
   case 34:
-#line 513 "grammar.y"
+#line 512 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-2].lv,'(')) YYERROR;
           ;}
     break;
 
   case 35:
-#line 517 "grammar.y"
+#line 516 "grammar.y"
     {
 	    if (yyvsp[-3].lv.rtyp==UNKNOWN)
 	    { // for x(i)(j)
@@ -2215,7 +2214,7 @@ yyreduce:
     break;
 
   case 36:
-#line 530 "grammar.y"
+#line 529 "grammar.y"
     {
             if (currRingHdl==NULL) MYYERROR("no ring active");
             int j = 0;
@@ -2246,7 +2245,7 @@ yyreduce:
     break;
 
   case 37:
-#line 558 "grammar.y"
+#line 557 "grammar.y"
     {
             memset(&yyval.lv,0,sizeof(yyval.lv));
             int i = atoi(yyvsp[0].name);
@@ -2273,7 +2272,7 @@ yyreduce:
     break;
 
   case 38:
-#line 582 "grammar.y"
+#line 581 "grammar.y"
     {
             memset(&yyval.lv,0,sizeof(yyval.lv));
             yyval.lv.rtyp = yyvsp[0].i;
@@ -2282,7 +2281,7 @@ yyreduce:
     break;
 
   case 39:
-#line 588 "grammar.y"
+#line 587 "grammar.y"
     {
             memset(&yyval.lv,0,sizeof(yyval.lv));
             yyval.lv.rtyp  = STRING_CMD;
@@ -2291,14 +2290,14 @@ yyreduce:
     break;
 
   case 40:
-#line 594 "grammar.y"
+#line 593 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 41:
-#line 601 "grammar.y"
+#line 600 "grammar.y"
     {
             leftv v = &yyvsp[-2].lv;
             while (v->next!=NULL)
@@ -2312,14 +2311,14 @@ yyreduce:
     break;
 
   case 42:
-#line 612 "grammar.y"
+#line 611 "grammar.y"
     {
             yyval.lv = yyvsp[0].lv;
           ;}
     break;
 
   case 43:
-#line 618 "grammar.y"
+#line 617 "grammar.y"
     {
             /*if ($1.typ == eunknown) YYERROR;*/
             yyval.lv = yyvsp[0].lv;
@@ -2327,199 +2326,206 @@ yyreduce:
     break;
 
   case 44:
-#line 622 "grammar.y"
+#line 621 "grammar.y"
     { yyval.lv = yyvsp[0].lv; ;}
     break;
 
   case 45:
-#line 623 "grammar.y"
+#line 622 "grammar.y"
     { yyval.lv = yyvsp[-1].lv; ;}
     break;
 
   case 46:
-#line 625 "grammar.y"
+#line 624 "grammar.y"
     {
             if(iiExprArith3(&yyval.lv,'[',&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 47:
-#line 629 "grammar.y"
+#line 628 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,'[',&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 48:
-#line 633 "grammar.y"
+#line 632 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 49:
-#line 637 "grammar.y"
+#line 636 "grammar.y"
     {
             if(iiExprArithM(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 50:
-#line 641 "grammar.y"
+#line 640 "grammar.y"
     {
             if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
           ;}
     break;
 
   case 51:
-#line 645 "grammar.y"
+#line 644 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 52:
-#line 649 "grammar.y"
+#line 648 "grammar.y"
     {
             if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
           ;}
     break;
 
   case 53:
-#line 653 "grammar.y"
+#line 652 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 54:
-#line 657 "grammar.y"
+#line 656 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
           ;}
     break;
 
   case 55:
-#line 661 "grammar.y"
+#line 660 "grammar.y"
     {
             if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 56:
-#line 665 "grammar.y"
+#line 664 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
           ;}
     break;
 
   case 57:
-#line 669 "grammar.y"
+#line 668 "grammar.y"
     {
             if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 58:
-#line 673 "grammar.y"
+#line 672 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 59:
-#line 677 "grammar.y"
+#line 676 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 60:
-#line 681 "grammar.y"
+#line 680 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
           ;}
     break;
 
   case 61:
-#line 685 "grammar.y"
+#line 684 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 62:
-#line 689 "grammar.y"
+#line 688 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
           ;}
     break;
 
   case 63:
-#line 693 "grammar.y"
+#line 692 "grammar.y"
     {
             if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 64:
-#line 697 "grammar.y"
+#line 696 "grammar.y"
     {
             if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 65:
-#line 701 "grammar.y"
+#line 700 "grammar.y"
     {
             if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
           ;}
     break;
 
   case 66:
-#line 705 "grammar.y"
+#line 704 "grammar.y"
     {
             if(iiExprArithM(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 67:
-#line 709 "grammar.y"
+#line 708 "grammar.y"
     {
             if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 68:
-#line 713 "grammar.y"
+#line 712 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 69:
-#line 717 "grammar.y"
+#line 716 "grammar.y"
     {
-            if(iiExprArith3(&yyval.lv,RING_CMD,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
+            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 70:
-#line 721 "grammar.y"
+#line 720 "grammar.y"
     {
-            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,RING_CMD)) YYERROR;
+            if(iiExprArith3(&yyval.lv,RING_CMD,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 71:
-#line 725 "grammar.y"
+#line 724 "grammar.y"
     {
-            yyval.lv=yyvsp[-1].lv;
+            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,RING_CMD)) YYERROR;
           ;}
     break;
 
   case 72:
-#line 729 "grammar.y"
+#line 728 "grammar.y"
+    {
+            yyval.lv=yyvsp[-1].lv;
+          ;}
+    break;
+
+  case 73:
+#line 732 "grammar.y"
     {
             #ifdef SIQ
             siq++;
@@ -2538,8 +2544,8 @@ yyreduce:
           ;}
     break;
 
-  case 73:
-#line 746 "grammar.y"
+  case 74:
+#line 749 "grammar.y"
     {
             #ifdef SIQ
             siq--;
@@ -2547,8 +2553,8 @@ yyreduce:
           ;}
     break;
 
-  case 74:
-#line 752 "grammar.y"
+  case 75:
+#line 755 "grammar.y"
     {
             #ifdef SIQ
             if (siq<=0) yyvsp[-1].lv.Eval();
@@ -2560,8 +2566,8 @@ yyreduce:
           ;}
     break;
 
-  case 75:
-#line 764 "grammar.y"
+  case 76:
+#line 767 "grammar.y"
     {
             #ifdef SIQ
             siq++;
@@ -2569,8 +2575,8 @@ yyreduce:
           ;}
     break;
 
-  case 76:
-#line 772 "grammar.y"
+  case 77:
+#line 775 "grammar.y"
     {
             #ifdef SIQ
             siq--;
@@ -2578,92 +2584,92 @@ yyreduce:
           ;}
     break;
 
-  case 77:
-#line 781 "grammar.y"
+  case 78:
+#line 784 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,PLUSPLUS)) YYERROR;
           ;}
     break;
 
-  case 78:
-#line 785 "grammar.y"
+  case 79:
+#line 788 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,MINUSMINUS)) YYERROR;
           ;}
     break;
 
-  case 79:
-#line 789 "grammar.y"
+  case 80:
+#line 792 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,'+',&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 80:
-#line 793 "grammar.y"
+  case 81:
+#line 796 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,'-',&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 81:
-#line 797 "grammar.y"
+  case 82:
+#line 800 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,yyvsp[-1].i,&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 82:
-#line 801 "grammar.y"
+  case 83:
+#line 804 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,'^',&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 83:
-#line 805 "grammar.y"
+  case 84:
+#line 808 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,yyvsp[-1].i,&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 84:
-#line 809 "grammar.y"
+  case 85:
+#line 812 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,yyvsp[-1].i,&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 85:
-#line 813 "grammar.y"
+  case 86:
+#line 816 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,NOTEQUAL,&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 86:
-#line 817 "grammar.y"
+  case 87:
+#line 820 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,EQUAL_EQUAL,&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 87:
-#line 821 "grammar.y"
+  case 88:
+#line 824 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,DOTDOT,&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 88:
-#line 825 "grammar.y"
+  case 89:
+#line 828 "grammar.y"
     {
             if(iiExprArith2(&yyval.lv,&yyvsp[-2].lv,':',&yyvsp[0].lv)) YYERROR;
           ;}
     break;
 
-  case 89:
-#line 829 "grammar.y"
+  case 90:
+#line 832 "grammar.y"
     {
             memset(&yyval.lv,0,sizeof(yyval.lv));
             int i; TESTSETINT(yyvsp[0].lv,i);
@@ -2672,20 +2678,20 @@ yyreduce:
           ;}
     break;
 
-  case 90:
-#line 836 "grammar.y"
+  case 91:
+#line 839 "grammar.y"
     {
             if(iiExprArith1(&yyval.lv,&yyvsp[0].lv,'-')) YYERROR;
           ;}
     break;
 
-  case 91:
-#line 842 "grammar.y"
+  case 92:
+#line 845 "grammar.y"
     { yyval.lv = yyvsp[-1].lv; ;}
     break;
 
-  case 92:
-#line 844 "grammar.y"
+  case 93:
+#line 847 "grammar.y"
     {
             if (yyvsp[-1].lv.rtyp==0)
             {
@@ -2702,8 +2708,8 @@ yyreduce:
           ;}
     break;
 
-  case 94:
-#line 864 "grammar.y"
+  case 95:
+#line 867 "grammar.y"
     {
             if (yyvsp[-1].lv.Typ()!=STRING_CMD)
             {
@@ -2714,38 +2720,38 @@ yyreduce:
           ;}
     break;
 
-  case 95:
-#line 876 "grammar.y"
+  case 96:
+#line 879 "grammar.y"
     {
             if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
               YYERROR;
           ;}
     break;
 
-  case 96:
-#line 881 "grammar.y"
+  case 97:
+#line 884 "grammar.y"
     {
             if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
               YYERROR;
           ;}
     break;
 
-  case 97:
-#line 886 "grammar.y"
+  case 98:
+#line 889 "grammar.y"
     {
             if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(currRing->idroot), TRUE)) YYERROR;
           ;}
     break;
 
-  case 98:
-#line 890 "grammar.y"
+  case 99:
+#line 893 "grammar.y"
     {
             if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(currRing->idroot), TRUE)) YYERROR;
           ;}
     break;
 
-  case 99:
-#line 894 "grammar.y"
+  case 100:
+#line 897 "grammar.y"
     {
 	    leftv v;
 	    idhdl h;
@@ -2777,8 +2783,8 @@ yyreduce:
 	  ;}
     break;
 
-  case 100:
-#line 924 "grammar.y"
+  case 101:
+#line 927 "grammar.y"
     {
 	    if (yyvsp[-1].i==MATRIX_CMD)
             {
@@ -2801,8 +2807,8 @@ yyreduce:
           ;}
     break;
 
-  case 101:
-#line 945 "grammar.y"
+  case 102:
+#line 948 "grammar.y"
     {
             int t=yyvsp[-2].lv.Typ();
             sleftv r;
@@ -2825,16 +2831,16 @@ yyreduce:
           ;}
     break;
 
-  case 102:
-#line 966 "grammar.y"
+  case 103:
+#line 969 "grammar.y"
     {
             if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
               YYERROR;
           ;}
     break;
 
-  case 105:
-#line 979 "grammar.y"
+  case 106:
+#line 982 "grammar.y"
     {
             leftv v = &yyvsp[-3].lv;
             while (v->next!=NULL)
@@ -2847,16 +2853,16 @@ yyreduce:
           ;}
     break;
 
-  case 106:
-#line 993 "grammar.y"
+  case 107:
+#line 996 "grammar.y"
     {
           // let rInit take care of any errors
           yyval.i=rOrderName(yyvsp[0].name);
         ;}
     break;
 
-  case 107:
-#line 1001 "grammar.y"
+  case 108:
+#line 1004 "grammar.y"
     {
             memset(&yyval.lv,0,sizeof(yyval.lv));
             intvec *iv = new intvec(2);
@@ -2867,8 +2873,8 @@ yyreduce:
           ;}
     break;
 
-  case 108:
-#line 1010 "grammar.y"
+  case 109:
+#line 1013 "grammar.y"
     {
             memset(&yyval.lv,0,sizeof(yyval.lv));
             leftv sl = &yyvsp[-1].lv;
@@ -2912,8 +2918,8 @@ yyreduce:
           ;}
     break;
 
-  case 110:
-#line 1056 "grammar.y"
+  case 111:
+#line 1059 "grammar.y"
     {
             yyval.lv = yyvsp[-2].lv;
             yyval.lv.next = (sleftv *)omAllocBin(sleftv_bin);
@@ -2921,81 +2927,71 @@ yyreduce:
           ;}
     break;
 
-  case 112:
-#line 1066 "grammar.y"
+  case 113:
+#line 1069 "grammar.y"
     {
             yyval.lv = yyvsp[-1].lv;
           ;}
     break;
 
-  case 113:
-#line 1072 "grammar.y"
+  case 114:
+#line 1075 "grammar.y"
     {
             expected_parms = TRUE;
           ;}
     break;
 
-  case 114:
-#line 1078 "grammar.y"
-    { yyval.i = yyvsp[0].i; ;}
-    break;
-
   case 115:
-#line 1080 "grammar.y"
+#line 1081 "grammar.y"
     { yyval.i = yyvsp[0].i; ;}
     break;
 
   case 116:
-#line 1082 "grammar.y"
+#line 1083 "grammar.y"
     { yyval.i = yyvsp[0].i; ;}
     break;
 
   case 117:
-#line 1086 "grammar.y"
+#line 1085 "grammar.y"
     { yyval.i = yyvsp[0].i; ;}
     break;
 
   case 118:
-#line 1088 "grammar.y"
-    { yyval.i = yyvsp[0].i; ;}
-    break;
-
-  case 119:
-#line 1096 "grammar.y"
+#line 1094 "grammar.y"
     { if (yyvsp[-1].i != '<') YYERROR;
             if((feFilePending=feFopen(yyvsp[0].name,"r",NULL,TRUE))==NULL) YYERROR; ;}
     break;
 
-  case 120:
-#line 1099 "grammar.y"
+  case 119:
+#line 1097 "grammar.y"
     { newFile(yyvsp[-2].name,feFilePending); ;}
     break;
 
-  case 121:
-#line 1104 "grammar.y"
+  case 120:
+#line 1102 "grammar.y"
     {
             feHelp(yyvsp[-1].name);
             omFree((ADDRESS)yyvsp[-1].name);
           ;}
     break;
 
-  case 122:
-#line 1109 "grammar.y"
+  case 121:
+#line 1107 "grammar.y"
     {
             feHelp(NULL);
           ;}
     break;
 
-  case 123:
-#line 1116 "grammar.y"
+  case 122:
+#line 1114 "grammar.y"
     {
             singular_example(yyvsp[-1].name);
             omFree((ADDRESS)yyvsp[-1].name);
           ;}
     break;
 
-  case 124:
-#line 1124 "grammar.y"
+  case 123:
+#line 1122 "grammar.y"
     {
           if (basePack!=yyvsp[0].lv.req_packhdl)
           {
@@ -3006,8 +3002,8 @@ yyreduce:
         ;}
     break;
 
-  case 125:
-#line 1136 "grammar.y"
+  case 124:
+#line 1134 "grammar.y"
     {
           leftv v=&yyvsp[0].lv;
           if (v->rtyp!=IDHDL)
@@ -3025,8 +3021,8 @@ yyreduce:
         ;}
     break;
 
-  case 126:
-#line 1152 "grammar.y"
+  case 125:
+#line 1150 "grammar.y"
     {
           leftv v=&yyvsp[0].lv;
           if (v->rtyp!=IDHDL)
@@ -3044,66 +3040,75 @@ yyreduce:
         ;}
     break;
 
-  case 127:
-#line 1171 "grammar.y"
+  case 126:
+#line 1169 "grammar.y"
     {
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
           ;}
     break;
 
-  case 128:
-#line 1175 "grammar.y"
+  case 127:
+#line 1173 "grammar.y"
     {
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
           ;}
     break;
 
-  case 129:
-#line 1179 "grammar.y"
+  case 128:
+#line 1177 "grammar.y"
     {
             if (yyvsp[-1].i==QRING_CMD) yyvsp[-1].i=RING_CMD;
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
           ;}
     break;
 
-  case 130:
-#line 1184 "grammar.y"
+  case 129:
+#line 1182 "grammar.y"
     {
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
           ;}
     break;
 
-  case 131:
-#line 1188 "grammar.y"
+  case 130:
+#line 1186 "grammar.y"
     {
             list_cmd(RING_CMD,NULL,"// ",TRUE);
           ;}
     break;
 
-  case 132:
-#line 1192 "grammar.y"
+  case 131:
+#line 1190 "grammar.y"
     {
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
            ;}
     break;
 
-  case 133:
-#line 1196 "grammar.y"
+  case 132:
+#line 1194 "grammar.y"
     {
             list_cmd(PROC_CMD,NULL,"// ",TRUE);
           ;}
     break;
 
-  case 134:
-#line 1200 "grammar.y"
+  case 133:
+#line 1198 "grammar.y"
     {
             list_cmd(0,yyvsp[-1].lv.Fullname(),"// ",TRUE);
             yyvsp[-1].lv.CleanUp();
           ;}
     break;
 
+  case 134:
+#line 1203 "grammar.y"
+    {
+            if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
+              list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
+            yyvsp[-3].lv.CleanUp();
+          ;}
+    break;
+
   case 135:
-#line 1205 "grammar.y"
+#line 1209 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3112,7 +3117,7 @@ yyreduce:
     break;
 
   case 136:
-#line 1211 "grammar.y"
+#line 1215 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3121,7 +3126,7 @@ yyreduce:
     break;
 
   case 137:
-#line 1217 "grammar.y"
+#line 1221 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3130,7 +3135,7 @@ yyreduce:
     break;
 
   case 138:
-#line 1223 "grammar.y"
+#line 1227 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3139,7 +3144,7 @@ yyreduce:
     break;
 
   case 139:
-#line 1229 "grammar.y"
+#line 1233 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3148,7 +3153,7 @@ yyreduce:
     break;
 
   case 140:
-#line 1235 "grammar.y"
+#line 1239 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3157,19 +3162,19 @@ yyreduce:
     break;
 
   case 141:
-#line 1247 "grammar.y"
+#line 1251 "grammar.y"
     {
             list_cmd(-1,NULL,"// ",TRUE);
           ;}
     break;
 
   case 142:
-#line 1253 "grammar.y"
+#line 1257 "grammar.y"
     { yyInRingConstruction = TRUE; ;}
     break;
 
   case 143:
-#line 1262 "grammar.y"
+#line 1266 "grammar.y"
     {
             const char *ring_name = yyvsp[-6].lv.name;
             ring b=
@@ -3205,7 +3210,7 @@ yyreduce:
     break;
 
   case 144:
-#line 1295 "grammar.y"
+#line 1299 "grammar.y"
     {
             const char *ring_name = yyvsp[0].lv.name;
             if (!inerror) rDefault(ring_name);
@@ -3215,7 +3220,7 @@ yyreduce:
     break;
 
   case 145:
-#line 1305 "grammar.y"
+#line 1309 "grammar.y"
     {
             if ((yyvsp[-1].i!=LIB_CMD)||(iiLibCmd(yyvsp[0].name,TRUE,TRUE,TRUE)))
             //if ($1==LIB_CMD)
@@ -3229,7 +3234,7 @@ yyreduce:
     break;
 
   case 148:
-#line 1321 "grammar.y"
+#line 1325 "grammar.y"
     {
             if ((yyvsp[-1].i==KEEPRING_CMD) && (myynest==0))
                MYYERROR("only inside a proc allowed");
@@ -3301,14 +3306,14 @@ yyreduce:
     break;
 
   case 149:
-#line 1393 "grammar.y"
+#line 1397 "grammar.y"
     {
             type_cmd(&(yyvsp[0].lv));
           ;}
     break;
 
   case 150:
-#line 1397 "grammar.y"
+#line 1401 "grammar.y"
     {
             //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp);
             #ifdef SIQ
@@ -3334,7 +3339,7 @@ yyreduce:
     break;
 
   case 151:
-#line 1426 "grammar.y"
+#line 1430 "grammar.y"
     {
             int i; TESTSETINT(yyvsp[-2].lv,i);
             if (i!=0)
@@ -3350,7 +3355,7 @@ yyreduce:
     break;
 
   case 152:
-#line 1439 "grammar.y"
+#line 1443 "grammar.y"
     {
             if (currentVoice->ifsw==1)
             {
@@ -3370,7 +3375,7 @@ yyreduce:
     break;
 
   case 153:
-#line 1456 "grammar.y"
+#line 1460 "grammar.y"
     {
             int i; TESTSETINT(yyvsp[-2].lv,i);
             if (i)
@@ -3382,7 +3387,7 @@ yyreduce:
     break;
 
   case 154:
-#line 1465 "grammar.y"
+#line 1469 "grammar.y"
     {
             if (exitBuffer(BT_break)) YYERROR;
             currentVoice->ifsw=0;
@@ -3390,7 +3395,7 @@ yyreduce:
     break;
 
   case 155:
-#line 1470 "grammar.y"
+#line 1474 "grammar.y"
     {
             if (contBuffer(BT_break)) YYERROR;
             currentVoice->ifsw=0;
@@ -3398,7 +3403,7 @@ yyreduce:
     break;
 
   case 156:
-#line 1478 "grammar.y"
+#line 1482 "grammar.y"
     {
             /* -> if(!$2) break; $3; continue;*/
             char * s = (char *)omAlloc( strlen(yyvsp[-1].name) + strlen(yyvsp[0].name) + 36);
@@ -3410,7 +3415,7 @@ yyreduce:
     break;
 
   case 157:
-#line 1490 "grammar.y"
+#line 1494 "grammar.y"
     {
             /* $2 */
             /* if (!$3) break; $5; $4; continue; */
@@ -3429,7 +3434,7 @@ yyreduce:
     break;
 
   case 158:
-#line 1509 "grammar.y"
+#line 1513 "grammar.y"
     {
             procinfov pi;
             idhdl h = enterid(yyvsp[-1].name,myynest,PROC_CMD,&IDROOT,TRUE);
@@ -3443,7 +3448,7 @@ yyreduce:
     break;
 
   case 159:
-#line 1520 "grammar.y"
+#line 1524 "grammar.y"
     {
             idhdl h = enterid(yyvsp[-2].name,myynest,PROC_CMD,&IDROOT,TRUE);
             if (h==NULL)
@@ -3466,7 +3471,7 @@ yyreduce:
     break;
 
   case 160:
-#line 1540 "grammar.y"
+#line 1544 "grammar.y"
     {
             omFree((ADDRESS)yyvsp[-1].name);
             idhdl h = enterid(yyvsp[-3].name,myynest,PROC_CMD,&IDROOT,TRUE);
@@ -3490,7 +3495,7 @@ yyreduce:
     break;
 
   case 161:
-#line 1564 "grammar.y"
+#line 1568 "grammar.y"
     {
 	    // decl. of type proc p(int i)
             if (yyvsp[-1].i==PARAMETER)  { if (iiParameter(&yyvsp[0].lv)) YYERROR; }
@@ -3499,7 +3504,7 @@ yyreduce:
     break;
 
   case 162:
-#line 1570 "grammar.y"
+#line 1574 "grammar.y"
     {
 	    // decl. of type proc p(i)
             sleftv tmp_expr;
@@ -3511,7 +3516,7 @@ yyreduce:
     break;
 
   case 163:
-#line 1582 "grammar.y"
+#line 1586 "grammar.y"
     {
             if(iiRETURNEXPR==NULL) YYERROR;
             iiRETURNEXPR[myynest].Copy(&yyvsp[-1].lv);
@@ -3521,7 +3526,7 @@ yyreduce:
     break;
 
   case 164:
-#line 1589 "grammar.y"
+#line 1593 "grammar.y"
     {
             if (yyvsp[-2].i==RETURN)
             {
@@ -3537,7 +3542,7 @@ yyreduce:
     }
 
 /* Line 1010 of yacc.c.  */
-#line 3541 "grammar.cc"
+#line 3546 "grammar.cc"
 
   yyvsp -= yylen;
   yyssp -= yylen;
diff --git a/Singular/grammar.y b/Singular/grammar.y
index 5de080b..9380a63 100644
--- a/Singular/grammar.y
+++ b/Singular/grammar.y
@@ -333,7 +333,6 @@ void yyerror(const char * fmt)
 %type <i>    setrings
 %type <i>    ringcmd1
 %type <i>    mat_cmd
-%type <i>    typ_list1
 
 %type <i>    '=' '<' '>' '+' '-' COLONCOLON
 %type <i>    '/' '[' ']' '^' ',' ';'
@@ -709,7 +708,11 @@ expr:   expr_arithmetic
           {
             if(iiExprArith3(&$$,$1,&$3,&$5,&$7)) YYERROR;
           }
-        | typ_list1  '(' expr ')'
+        | RING_DECL_LIST  '(' expr ')'
+          {
+            if(iiExprArith1(&$$,&$3,$1)) YYERROR;
+          }
+        | mat_cmd  '(' expr ')'
           {
             if(iiExprArith1(&$$,&$3,$1)) YYERROR;
           }
@@ -1082,11 +1085,6 @@ mat_cmd: MATRIX_CMD
            { $$ = $1; }
          ;
 
-typ_list1: RING_DECL_LIST
-           { $$ = $1; }
-           | mat_cmd
-           { $$ = $1; }
-	   ;
 /* --------------------------------------------------------------------*/
 /* section of pure commands                                            */
 /* --------------------------------------------------------------------*/
@@ -1219,7 +1217,13 @@ listcmd:
               list_cmd($5,NULL,"// ",TRUE);
             $3.CleanUp();
           }
-        | LISTVAR_CMD '(' elemexpr ',' typ_list1 ')'
+        | LISTVAR_CMD '(' elemexpr ',' RING_DECL_LIST ')'
+          {
+            if($3.Typ() == PACKAGE_CMD)
+              list_cmd($5,NULL,"// ",TRUE);
+            $3.CleanUp();
+          }
+        | LISTVAR_CMD '(' elemexpr ',' mat_cmd ')'
           {
             if($3.Typ() == PACKAGE_CMD)
               list_cmd($5,NULL,"// ",TRUE);

-- 
an open source computer algebra system



More information about the debian-science-commits mailing list