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

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


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

    fix: BIGINTMAT/INTMAT?MATRIX as mat_cmd in grammar.y

diff --git a/Singular/grammar.cc b/Singular/grammar.cc
index 3e76876..8edaa0d 100644
--- a/Singular/grammar.cc
+++ b/Singular/grammar.cc
@@ -616,7 +616,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1775
+#define YYLAST   1814
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  147
@@ -688,8 +688,8 @@ static const unsigned short int yyprhs[] =
       43,    45,    47,    49,    51,    53,    55,    57,    59,    61,
       64,    66,    68,    72,    76,    80,    85,    89,    91,    93,
       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,
+     136,   140,   145,   150,   154,   159,   166,   175,   182,   191,
+     196,   201,   208,   213,   220,   229,   238,   242,   247,   256,
      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,
@@ -719,18 +719,18 @@ static const short int yyrhs[] =
      143,   155,   144,    -1,   156,   134,   156,   137,   156,   135,
       -1,   156,   134,   156,   135,    -1,    98,   143,   156,   144,
       -1,    99,   143,   155,   144,    -1,    99,   143,   144,    -1,
-     100,   143,   156,   144,    -1,   101,   143,   144,    -1,    90,
-     143,   156,   144,    -1,    91,   143,   156,   137,   156,   144,
-      -1,    92,   143,   156,   137,   156,   137,   156,   144,    -1,
-      95,   143,   156,   137,   156,   144,    -1,    95,   143,   156,
-     137,   156,   137,   156,   144,    -1,    93,   143,   156,   144,
-      -1,    94,   143,   156,   144,    -1,    93,   143,   156,   137,
-     156,   144,    -1,    96,   143,   156,   144,    -1,    96,   143,
-     156,   137,   156,   144,    -1,    94,   143,   156,   137,   156,
-     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,   101,   143,   156,   144,    -1,   171,   143,   156,   144,
+     100,   143,   156,   144,    -1,   101,   143,   155,   144,    -1,
+     101,   143,   144,    -1,    90,   143,   156,   144,    -1,    91,
+     143,   156,   137,   156,   144,    -1,    92,   143,   156,   137,
+     156,   137,   156,   144,    -1,    95,   143,   156,   137,   156,
+     144,    -1,    95,   143,   156,   137,   156,   137,   156,   144,
+      -1,    93,   143,   156,   144,    -1,    94,   143,   156,   144,
+      -1,    93,   143,   156,   137,   156,   144,    -1,    96,   143,
+     156,   144,    -1,    96,   143,   156,   137,   156,   144,    -1,
+      94,   143,   156,   137,   156,   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,   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,
@@ -758,7 +758,7 @@ static const short int yyrhs[] =
      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,
+      16,   144,    -1,   107,   143,   154,   137,   171,   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,
@@ -784,13 +784,13 @@ static const unsigned short int yyrline[] =
      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
+     896,   929,   953,   974,   982,   986,   987,  1001,  1009,  1018,
+    1063,  1064,  1073,  1074,  1080,  1086,  1088,  1090,  1100,  1099,
+    1107,  1112,  1119,  1127,  1139,  1155,  1174,  1178,  1182,  1187,
+    1191,  1195,  1199,  1203,  1208,  1214,  1220,  1226,  1232,  1238,
+    1244,  1256,  1263,  1267,  1304,  1314,  1327,  1327,  1330,  1402,
+    1406,  1435,  1448,  1465,  1474,  1479,  1487,  1499,  1518,  1529,
+    1549,  1573,  1579,  1591,  1598
 };
 #endif
 
@@ -889,8 +889,8 @@ static const unsigned char yyr2[] =
        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
        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,     4,
+       3,     4,     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,
@@ -926,23 +926,23 @@ static const unsigned char yydefact[] =
        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,     0,     0,    66,     0,     0,    50,     0,     0,    53,
        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,
+      71,     0,    54,     0,     0,     0,    59,     0,    60,     0,
+       0,    62,    67,    48,    49,    51,    52,   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,
        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,
+       0,    73,     0,     0,     0,     0,     0,    55,     0,    61,
+       0,     0,    57,     0,    63,   140,   138,   134,   135,   136,
+     137,   139,    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,     0,    70,    56,    64,    58,    65,    68,   100,   143,
        0,   113,     0,   111,   109
 };
 
@@ -958,55 +958,55 @@ static const short int yydefgoto[] =
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -325
+#define YYPACT_NINF -319
 static const short int yypact[] =
 {
-    -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
+    -319,   253,  -319,  -134,  1202,  -319,  -319,   366,  -129,  -319,
+    -319,  -125,  -121,  -105,  -100,   -69,   -63,   -60,   -52,   890,
+    1527,  1566,  1650,   -54,  1202,  -107,  1427,   -50,  -319,  1202,
+    -319,  -319,  -319,  -319,   -80,  -319,  -319,   -53,   -49,   -46,
+     -12,   -43,  -319,    -7,   -39,  1260,    -5,    -5,  1202,  1202,
+    -319,  1202,  1202,  -319,  -319,  -319,   -77,  -319,     2,  -113,
+    1589,  1202,  -319,  1202,  -319,   -87,  -319,  1660,  -319,  -319,
+    -319,  -319,   -30,  -319,  1427,  -319,  -319,  1202,  -319,  -319,
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,   -35,  -129,   -31,
+     -19,   -18,   -17,  -319,    19,   -15,  1202,     2,    23,  1317,
+    1202,  1202,  1202,  1202,  1202,  1202,  1202,   915,  1202,     2,
+     972,     2,  1202,     2,  1030,     2,   -28,  -319,    -8,    11,
+    -319,     2,  1668,  1589,   -33,  -319,  -319,  -319,    30,  1202,
+      46,  1087,   366,  1589,    22,  -319,  -319,    19,   -82,  -117,
+      61,  -319,  1427,  1145,  1427,  -319,  1202,  1202,  1202,  -319,
+    1202,  -319,  1202,  1202,  1202,  1202,  1202,  1202,  1202,  1202,
+      92,    -8,  -319,  1427,  -319,  -319,  1202,    -2,  1427,     5,
+    1589,   443,  -319,  1202,   464,    27,   478,  1337,  1359,   176,
+     272,  1374,   291,  -319,   -98,   492,  -319,   -95,   523,  -319,
+     -90,  -319,  -319,   -58,    16,    31,    32,    34,    40,  -319,
+      -6,    45,    55,  -319,  1202,    81,   537,  -319,  -319,   -85,
+      49,  -319,  -319,  -319,    51,  -319,   -71,  -319,  1589,  1613,
+      77,    77,   403,    18,    18,    19,   827,     1,  1625,    18,
+    1202,  -319,  -319,     2,   326,  1202,     2,  1317,  -319,  1386,
+    -319,  1317,  -319,  1202,  1202,  1202,  -319,  1202,  -319,  1202,
+    1202,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,   633,  -319,  -319,  -319,   581,    87,   -99,
+    -319,  -319,  -319,  -319,  1202,   630,  1202,  -319,  1416,  1589,
+      62,  1202,    65,   675,  1431,   689,  1443,   385,   429,    59,
+      60,    68,    70,    71,    72,    74,  -319,  -319,  -319,  -319,
+    1455,  -319,  1475,    88,  1317,   -65,  -106,  -319,  1202,  -319,
+    1202,  1202,  -319,  1202,  -319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  1202,  1202,    90,  -319,  -319,   116,    91,
+    -319,    86,   719,   733,   747,   768,   782,  1524,  -106,    96,
+      93,  1202,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+     116,  -319,   -62,  -319,  -319
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -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
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,    14,    -1,    15,
+    -319,  -319,   -70,  -319,  -319,   228,   193,    43,  -235,  -319,
+    -318,  -111,   -97,    73,     0,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1016,366 +1016,374 @@ static const short int yypgoto[] =
 #define YYTABLE_NINF -1
 static const short int yytable[] =
 {
-      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,
+      59,    67,   280,   119,    86,   142,   282,   327,   149,   142,
+     339,   151,   298,   142,    99,   145,   142,   299,   100,    94,
+     146,    97,   101,   118,   146,   149,   149,   212,   151,   151,
+     124,   120,   339,   109,   111,   113,   115,   328,   102,   146,
+     121,   162,   146,   103,   123,    67,   252,   146,   138,   254,
+     163,   164,   146,   211,   256,   146,   116,   117,   125,   270,
+     133,   141,   161,   137,   147,   148,   146,   140,   149,   325,
+     150,   151,   146,   272,   104,   146,   160,   202,   203,   326,
+     105,   167,   354,   106,   149,    96,   257,   151,   169,   135,
+     136,   107,   170,   122,   126,   147,   148,   127,   128,   149,
+     129,   150,   151,   130,   131,    30,   184,   168,    96,   187,
+     191,   171,   108,   190,   174,   176,   177,   178,   179,   180,
+     181,   182,   201,   185,   110,   112,   114,   188,   166,   146,
+     209,   263,   235,   162,   172,   156,   200,   143,   264,   144,
+     205,   143,   216,   144,   206,   143,    97,   144,   143,   192,
+     144,   155,   156,   156,   157,   157,   214,   207,   217,   163,
+     258,   218,   219,   220,   241,   221,   266,   222,   223,   224,
+     225,   226,   227,   228,   229,   259,   260,   233,   261,   147,
+     148,   234,   236,   149,   262,   150,   151,   271,   239,   265,
+     152,   268,   153,   154,   155,   156,   144,   157,   297,   304,
+     158,   159,   306,   315,   316,   301,   152,   213,   153,   154,
+     155,   156,   317,   157,   318,   319,   320,   159,   321,   267,
+     230,   152,   324,   153,   154,   155,   156,   338,   157,   327,
+     342,   158,   159,   350,   341,    98,   231,   351,   134,   353,
+       0,   349,   237,     0,     0,   275,     0,     0,     0,     0,
+     278,     0,   279,     2,     3,     0,   279,     0,   283,   284,
+     285,     4,   286,   295,   287,   288,     5,     6,     7,     8,
+       0,     0,     0,     9,     0,   147,   148,     0,     0,   149,
+     305,   150,   151,     0,     0,     0,     0,     0,     0,   300,
+       0,   302,     0,    10,   147,   148,     0,     0,   149,     0,
+     150,   151,     0,     0,     0,   152,     0,   153,   154,   155,
+     156,     0,   157,   245,     0,   158,   159,     0,     0,   279,
+     246,     0,     0,   332,     0,   333,   334,     0,   335,   147,
+     148,     0,     0,   149,     0,   150,   151,     0,   336,   337,
+     352,     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,    87,    47,     0,     0,    48,     0,    49,   147,   148,
+       0,    50,   149,     0,   150,   151,    51,     0,     0,    52,
+       0,   152,     0,   153,   154,   155,   156,     0,   157,   247,
+     149,   158,   159,   151,     0,     0,   248,     0,     0,     0,
+     152,     0,   153,   154,   155,   156,     0,   157,   250,     0,
+     158,   159,   147,   148,     0,   251,   149,     0,   150,   151,
+       0,     0,     0,     0,     0,     0,   147,   148,     0,     0,
+     149,     0,   150,   151,     0,   152,     0,   153,   154,   155,
+     156,     0,   157,   276,     0,   158,   159,   147,   148,     0,
+     277,   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,    96,
+       0,     0,    52,     0,   152,     0,   153,   154,   155,   156,
+       0,   157,   311,     0,   158,   159,   147,   148,     0,   312,
+     149,     0,   150,   151,   153,   154,   155,   156,     0,   157,
+     147,   148,     0,   159,   149,     0,   150,   151,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   152,     0,
+     153,   154,   155,   156,     0,   157,   313,     0,   158,   159,
+       0,     0,   152,   314,   153,   154,   155,   156,     0,   157,
+       0,     0,   158,   159,   147,   148,     0,   238,   149,     0,
+     150,   151,     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,   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,   152,   242,   153,   154,   155,   156,     0,   157,     0,
+       0,   158,   159,   147,   148,     0,   253,   149,     0,   150,
+     151,     0,     0,     0,     0,     0,     5,     6,   289,   290,
+       0,     0,   152,     9,   153,   154,   155,   156,     0,   157,
+       0,     0,   158,   159,     0,     0,   152,   255,   153,   154,
+     155,   156,     0,   157,     0,     0,   158,   159,   147,   148,
+       0,   269,   149,     0,   150,   151,     0,     0,     0,     0,
+       0,     0,   147,   148,     0,     0,   149,     0,   150,   151,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     152,     0,   153,   154,   155,   156,     0,   157,     0,     0,
+     158,   159,   147,   148,     0,   296,   149,     0,   150,   151,
+       0,   291,   292,   293,   294,     0,   147,   148,     0,     0,
+     149,     0,   150,   151,     0,     0,     0,     0,     0,     0,
+     147,   148,     0,     0,   149,     0,   150,   151,     0,   152,
        0,   153,   154,   155,   156,     0,   157,     0,     0,   158,
-     159,   147,   148,     0,   309,   149,     0,   150,   151,     0,
+     159,   147,   148,     0,   231,   149,     0,   150,   151,     0,
+       0,     0,     0,     0,     0,   147,   148,     0,     0,   149,
+       0,   150,   151,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   152,     0,   153,   154,   155,   156,
+       0,   157,     0,     0,   158,   159,     0,     0,   152,   307,
+     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,   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,     0,   158,   159,     0,     0,
+       0,   345,     0,     0,     0,     0,     0,   152,     0,   153,
+     154,   155,   156,     0,   157,    87,     0,   158,   159,     0,
+       0,   152,   346,   153,   154,   155,   156,     0,   157,     0,
+       0,   158,   159,     4,     0,     0,   347,     0,     5,     6,
+      87,    88,     0,     0,     0,     9,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       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,   152,     0,   153,   154,
+     155,   156,   273,   157,   274,     0,   158,   159,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     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,
+       4,     0,     0,     0,     0,     5,     6,    87,    88,     0,
+       0,     0,     9,     0,     0,     0,     0,     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,    87,     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,   243,     0,   158,   159,   147,   148,
+       0,     0,   149,     0,   150,   151,     0,     0,   152,     0,
+     153,   154,   155,   156,     0,   157,   244,     0,   158,   159,
+       0,     0,     0,   152,     0,   153,   154,   155,   156,     0,
+     157,   249,     0,   158,   159,   152,     0,   153,   154,   155,
+     156,     0,   157,   281,     0,   158,   159,   147,   148,     0,
+       0,   149,     0,   150,   151,     0,     0,    30,     0,    31,
+      32,    33,    87,     0,     0,   152,     0,   153,   154,   155,
+     156,   303,   157,     0,    93,   158,   159,     0,     0,     0,
+     152,    49,   153,   154,   155,   156,     0,   157,   308,     0,
+     158,   159,   152,    52,   153,   154,   155,   156,     0,   157,
+     310,    87,   158,   159,   152,     0,   153,   154,   155,   156,
+     322,   157,   147,   148,   158,   159,   149,     0,   150,   151,
+       0,     0,     0,     0,   152,     0,   153,   154,   155,   156,
+       0,   157,   323,     0,   158,   159,    -1,   148,     0,     0,
+     149,     0,   150,   151,     0,     0,     0,     0,     0,   148,
+       0,     0,   149,     0,   150,   151,     0,    30,     0,    31,
+      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   152,    93,   153,   154,   155,   156,   348,
+     157,    49,     0,   158,   159,    87,     0,     0,     0,     0,
+     110,     0,     0,    52,     0,    87,    30,     0,    31,    32,
+      33,     5,     6,   193,   194,     0,     0,     0,     9,     0,
+       0,     0,     0,    93,     0,     0,     0,     0,     0,     0,
+      49,     0,     0,     0,     0,     0,     0,     0,     0,   112,
+       0,     0,    52,     0,     0,     0,     0,     0,   152,     0,
+     153,   154,   155,   156,     0,   157,     0,     0,   158,   159,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       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
+       0,     0,   152,     0,   153,   154,   155,   156,     0,   157,
+       0,     0,   158,   159,   152,     0,   153,   154,   155,   156,
+      30,   157,    31,    32,    33,   159,   195,   196,   197,   198,
+      30,     0,    31,    32,    33,     0,     0,    93,    30,     0,
+      31,    32,    33,     0,    49,     0,     0,    93,     0,     0,
+       0,     0,     0,   114,    49,    93,    52,     0,     0,     0,
+       0,     0,    49,   166,     0,     0,    52,     0,     0,     0,
+       0,     0,   199,     0,    52
 };
 
 static const short int yycheck[] =
 {
-       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,     1,   237,   110,   138,    11,   241,   113,     7,    11,
+     328,    10,   111,    11,   143,   128,    11,   116,   143,     4,
+     137,     7,   143,    24,   137,     7,     7,   144,    10,    10,
+     110,   138,   350,    19,    20,    21,    22,   143,   143,   137,
+      26,   128,   137,   143,    29,    45,   144,   137,    49,   144,
+     137,   138,   137,   135,   144,   137,   110,   111,   111,   144,
+      45,   138,    63,    48,     3,     4,   137,    52,     7,   304,
+       9,    10,   137,   144,   143,   137,    61,   110,   111,   144,
+     143,    67,   144,   143,     7,   143,   144,    10,    74,    46,
+      47,   143,    77,   143,   143,     3,     4,   143,   110,     7,
+     143,     9,    10,   110,   143,   110,   107,   137,   143,   110,
+     138,    96,   143,   114,    99,   100,   101,   102,   103,   104,
+     105,   106,   122,   108,   143,   143,   143,   112,   143,   137,
+     131,   137,   134,   128,   111,   134,   122,   143,   144,   145,
+     110,   143,   143,   145,   129,   143,   132,   145,   143,   138,
+     145,   133,   134,   134,   136,   136,   142,   111,   144,   137,
+     144,   146,   147,   148,   137,   150,   111,   152,   153,   154,
+     155,   156,   157,   158,   159,   144,   144,   163,   144,     3,
+       4,   166,   168,     7,   144,     9,    10,   138,   173,   144,
+     129,   110,   131,   132,   133,   134,   145,   136,   111,   137,
+     139,   140,   137,   144,   144,   275,   129,   146,   131,   132,
+     133,   134,   144,   136,   144,   144,   144,   140,   144,   204,
+     128,   129,   134,   131,   132,   133,   134,   137,   136,   113,
+     144,   139,   140,   137,   143,     7,   144,   144,    45,   350,
+      -1,   338,   169,    -1,    -1,   230,    -1,    -1,    -1,    -1,
+     235,    -1,   237,     0,     1,    -1,   241,    -1,   243,   244,
+     245,     8,   247,   263,   249,   250,    13,    14,    15,    16,
+      -1,    -1,    -1,    20,    -1,     3,     4,    -1,    -1,     7,
+     281,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,   274,
+      -1,   276,    -1,    40,     3,     4,    -1,    -1,     7,    -1,
+       9,    10,    -1,    -1,    -1,   129,    -1,   131,   132,   133,
+     134,    -1,   136,   137,    -1,   139,   140,    -1,    -1,   304,
+     144,    -1,    -1,   308,    -1,   310,   311,    -1,   313,     3,
+       4,    -1,    -1,     7,    -1,     9,    10,    -1,   323,   324,
+     341,    -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,    15,   129,    -1,    -1,   132,    -1,   134,     3,     4,
+      -1,   138,     7,    -1,     9,    10,   143,    -1,    -1,   146,
       -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,    -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,
+       7,   139,   140,    10,    -1,    -1,   144,    -1,    -1,    -1,
+     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,   129,    -1,   131,   132,   133,
+     134,    -1,   136,   137,    -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,   143,
+      -1,    -1,   146,    -1,   129,    -1,   131,   132,   133,   134,
+      -1,   136,   137,    -1,   139,   140,     3,     4,    -1,   144,
+       7,    -1,     9,    10,   131,   132,   133,   134,    -1,   136,
+       3,     4,    -1,   140,     7,    -1,     9,    10,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,
+     131,   132,   133,   134,    -1,   136,   137,    -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,   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,     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,     3,     4,    -1,    -1,     7,    -1,     9,    10,   129,
+      10,    -1,    -1,    -1,    -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,    -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,    -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,    -1,
+       3,     4,    -1,    -1,     7,    -1,     9,    10,    -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,    -1,    -1,    15,    -1,    -1,   129,    -1,   131,
-     132,   133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,
+      -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
+      -1,     9,    10,    -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,    -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,    -1,    -1,   129,   144,   131,   132,
+     133,   134,    -1,   136,    -1,    -1,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,
+     132,   133,   134,    -1,   136,    15,    -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,
+      -1,   139,   140,     8,    -1,    -1,   144,    -1,    13,    14,
+      15,    16,    -1,    -1,    -1,    20,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,   132,
+     133,   134,   135,   136,   137,    -1,   139,   140,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       8,    -1,    -1,    -1,    -1,    13,    14,    15,    16,    -1,
+      -1,    -1,    20,    -1,    -1,    -1,    -1,    -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,    15,    -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,    -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,
+      -1,     7,    -1,     9,    10,    -1,    -1,   110,    -1,   112,
+     113,   114,    15,    -1,    -1,   129,    -1,   131,   132,   133,
+     134,   135,   136,    -1,   127,   139,   140,    -1,    -1,    -1,
+     129,   134,   131,   132,   133,   134,    -1,   136,   137,    -1,
+     139,   140,   129,   146,   131,   132,   133,   134,    -1,   136,
+     137,    15,   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,   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,
-      -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,   129,    -1,   131,   132,   133,   134,
+      -1,   136,   137,    -1,   139,   140,     3,     4,    -1,    -1,
+       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,     4,
+      -1,    -1,     7,    -1,     9,    10,    -1,   110,    -1,   112,
+     113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   129,   127,   131,   132,   133,   134,   135,
+     136,   134,    -1,   139,   140,    15,    -1,    -1,    -1,    -1,
+     143,    -1,    -1,   146,    -1,    15,   110,    -1,   112,   113,
+     114,    13,    14,    15,    16,    -1,    -1,    -1,    20,    -1,
+      -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,
+     134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
+      -1,    -1,   146,    -1,    -1,    -1,    -1,    -1,   129,    -1,
+     131,   132,   133,   134,    -1,   136,    -1,    -1,   139,   140,
       -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
+      -1,    -1,   129,    -1,   131,   132,   133,   134,    -1,   136,
+      -1,    -1,   139,   140,   129,    -1,   131,   132,   133,   134,
+     110,   136,   112,   113,   114,   140,    98,    99,   100,   101,
+     110,    -1,   112,   113,   114,    -1,    -1,   127,   110,    -1,
+     112,   113,   114,    -1,   134,    -1,    -1,   127,    -1,    -1,
+      -1,    -1,    -1,   143,   134,   127,   146,    -1,    -1,    -1,
+      -1,    -1,   134,   143,    -1,    -1,   146,    -1,    -1,    -1,
+      -1,    -1,   144,    -1,   146
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1401,7 +1409,7 @@ static const unsigned char yystos[] =
      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,
+     155,   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,
@@ -2048,8 +2056,8 @@ yyreduce:
             if(siCntrlc)
             {
               WerrorS("abort...");
-	      while((currentVoice!=NULL) && (currentVoice->prev!=NULL)) exitVoice();
-	      if (currentVoice!=NULL) currentVoice->ifsw=0;
+              while((currentVoice!=NULL) && (currentVoice->prev!=NULL)) exitVoice();
+              if (currentVoice!=NULL) currentVoice->ifsw=0;
             }
             if (errorreported) /* also catches abort... */
             {
@@ -2200,16 +2208,16 @@ yyreduce:
   case 35:
 #line 516 "grammar.y"
     {
-	    if (yyvsp[-3].lv.rtyp==UNKNOWN)
-	    { // for x(i)(j)
-	      if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,'(',&yyvsp[-1].lv)) YYERROR;
-	    }
-	    else
-	    {
+            if (yyvsp[-3].lv.rtyp==UNKNOWN)
+            { // for x(i)(j)
+              if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,'(',&yyvsp[-1].lv)) YYERROR;
+            }
+            else
+            {
               yyvsp[-3].lv.next=(leftv)omAllocBin(sleftv_bin);
               memcpy(yyvsp[-3].lv.next,&yyvsp[-1].lv,sizeof(sleftv));
               if(iiExprArithM(&yyval.lv,&yyvsp[-3].lv,'(')) YYERROR;
-	    }
+            }
           ;}
     break;
 
@@ -2380,49 +2388,49 @@ yyreduce:
   case 52:
 #line 648 "grammar.y"
     {
-            if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
+            if(iiExprArithM(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 53:
 #line 652 "grammar.y"
     {
-            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
+            if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
           ;}
     break;
 
   case 54:
 #line 656 "grammar.y"
     {
-            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
+            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 55:
 #line 660 "grammar.y"
     {
-            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
+            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
           ;}
     break;
 
   case 56:
 #line 664 "grammar.y"
     {
-            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
+            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 57:
 #line 668 "grammar.y"
     {
-            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
+            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
           ;}
     break;
 
   case 58:
 #line 672 "grammar.y"
     {
-            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
+            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
@@ -2436,28 +2444,28 @@ yyreduce:
   case 60:
 #line 680 "grammar.y"
     {
-            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
+            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 61:
 #line 684 "grammar.y"
     {
-            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
+            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
           ;}
     break;
 
   case 62:
 #line 688 "grammar.y"
     {
-            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
+            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 63:
 #line 692 "grammar.y"
     {
-            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
+            if(iiExprArith2(&yyval.lv,&yyvsp[-3].lv,yyvsp[-5].i,&yyvsp[-1].lv,TRUE)) YYERROR;
           ;}
     break;
 
@@ -2471,28 +2479,28 @@ yyreduce:
   case 65:
 #line 700 "grammar.y"
     {
-            if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
+            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
   case 66:
 #line 704 "grammar.y"
     {
-            if(iiExprArithM(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
+            if(iiExprArithM(&yyval.lv,NULL,yyvsp[-2].i)) YYERROR;
           ;}
     break;
 
   case 67:
 #line 708 "grammar.y"
     {
-            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
+            if(iiExprArithM(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
           ;}
     break;
 
   case 68:
 #line 712 "grammar.y"
     {
-            if(iiExprArith1(&yyval.lv,&yyvsp[-1].lv,yyvsp[-3].i)) YYERROR;
+            if(iiExprArith3(&yyval.lv,yyvsp[-7].i,&yyvsp[-5].lv,&yyvsp[-3].lv,&yyvsp[-1].lv)) YYERROR;
           ;}
     break;
 
@@ -2753,16 +2761,16 @@ yyreduce:
   case 100:
 #line 897 "grammar.y"
     {
-	    leftv v;
-	    idhdl h;
             int r; TESTSETINT(yyvsp[-4].lv,r);
             int c; TESTSETINT(yyvsp[-1].lv,c);
             if (r < 1)
               MYYERROR("rows must be greater than 0");
             if (c < 0)
               MYYERROR("cols must be greater than -1");
-	    if (yyvsp[-7].i==MATRIX_CMD)
-	    {
+            leftv v;
+            idhdl h;
+            if (yyvsp[-7].i == MATRIX_CMD)
+            {
               if (iiDeclCommand(&yyval.lv,&yyvsp[-6].lv,myynest,yyvsp[-7].i,&(currRing->idroot), TRUE)) YYERROR;
               v=&yyval.lv;
               h=(idhdl)v->data;
@@ -2770,28 +2778,31 @@ yyreduce:
               IDMATRIX(h) = mpNew(r,c);
               if (IDMATRIX(h)==NULL) YYERROR;
             }
-	    else if (yyvsp[-7].i==INTMAT_CMD)
-	    {
+            else if (yyvsp[-7].i == INTMAT_CMD)
+            {
               if (iiDeclCommand(&yyval.lv,&yyvsp[-6].lv,myynest,yyvsp[-7].i,&(yyvsp[-6].lv.req_packhdl->idroot)))
                 YYERROR;
-               v=&yyval.lv;
-               h=(idhdl)v->data;
-               delete IDINTVEC(h);
-               IDINTVEC(h) = new intvec(r,c,0);
-               if (IDINTVEC(h)==NULL) YYERROR;
-	    }
-	  ;}
+              v=&yyval.lv;
+              h=(idhdl)v->data;
+              delete IDINTVEC(h);
+              IDINTVEC(h) = new intvec(r,c,0);
+              if (IDINTVEC(h)==NULL) YYERROR;
+            }
+            else /* BIGINTMAT_CMD */
+            {
+            }
+          ;}
     break;
 
   case 101:
-#line 927 "grammar.y"
+#line 930 "grammar.y"
     {
-	    if (yyvsp[-1].i==MATRIX_CMD)
+            if (yyvsp[-1].i == MATRIX_CMD)
+            {
+              if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(currRing->idroot), TRUE)) YYERROR;
+            }
+            else if (yyvsp[-1].i == INTMAT_CMD)
             {
-	      if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(currRing->idroot), TRUE)) YYERROR;
-	    }
-	    else if (yyvsp[-1].i==INTMAT_CMD)
-	    {
               if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
                 YYERROR;
               leftv v=&yyval.lv;
@@ -2803,12 +2814,15 @@ yyreduce:
                  IDINTVEC(h) = new intvec(1,1,0);
                  v=v->next;
               } while (v!=NULL);
-	    }
+            }
+            else /* BIGINTMAT_CMD */
+            {
+            }
           ;}
     break;
 
   case 102:
-#line 948 "grammar.y"
+#line 954 "grammar.y"
     {
             int t=yyvsp[-2].lv.Typ();
             sleftv r;
@@ -2832,7 +2846,7 @@ yyreduce:
     break;
 
   case 103:
-#line 969 "grammar.y"
+#line 975 "grammar.y"
     {
             if (iiDeclCommand(&yyval.lv,&yyvsp[0].lv,myynest,yyvsp[-1].i,&(yyvsp[0].lv.req_packhdl->idroot)))
               YYERROR;
@@ -2840,7 +2854,7 @@ yyreduce:
     break;
 
   case 106:
-#line 982 "grammar.y"
+#line 988 "grammar.y"
     {
             leftv v = &yyvsp[-3].lv;
             while (v->next!=NULL)
@@ -2854,7 +2868,7 @@ yyreduce:
     break;
 
   case 107:
-#line 996 "grammar.y"
+#line 1002 "grammar.y"
     {
           // let rInit take care of any errors
           yyval.i=rOrderName(yyvsp[0].name);
@@ -2862,7 +2876,7 @@ yyreduce:
     break;
 
   case 108:
-#line 1004 "grammar.y"
+#line 1010 "grammar.y"
     {
             memset(&yyval.lv,0,sizeof(yyval.lv));
             intvec *iv = new intvec(2);
@@ -2874,7 +2888,7 @@ yyreduce:
     break;
 
   case 109:
-#line 1013 "grammar.y"
+#line 1019 "grammar.y"
     {
             memset(&yyval.lv,0,sizeof(yyval.lv));
             leftv sl = &yyvsp[-1].lv;
@@ -2919,7 +2933,7 @@ yyreduce:
     break;
 
   case 111:
-#line 1059 "grammar.y"
+#line 1065 "grammar.y"
     {
             yyval.lv = yyvsp[-2].lv;
             yyval.lv.next = (sleftv *)omAllocBin(sleftv_bin);
@@ -2928,47 +2942,47 @@ yyreduce:
     break;
 
   case 113:
-#line 1069 "grammar.y"
+#line 1075 "grammar.y"
     {
             yyval.lv = yyvsp[-1].lv;
           ;}
     break;
 
   case 114:
-#line 1075 "grammar.y"
+#line 1081 "grammar.y"
     {
             expected_parms = TRUE;
           ;}
     break;
 
   case 115:
-#line 1081 "grammar.y"
+#line 1087 "grammar.y"
     { yyval.i = yyvsp[0].i; ;}
     break;
 
   case 116:
-#line 1083 "grammar.y"
+#line 1089 "grammar.y"
     { yyval.i = yyvsp[0].i; ;}
     break;
 
   case 117:
-#line 1085 "grammar.y"
+#line 1091 "grammar.y"
     { yyval.i = yyvsp[0].i; ;}
     break;
 
   case 118:
-#line 1094 "grammar.y"
+#line 1100 "grammar.y"
     { if (yyvsp[-1].i != '<') YYERROR;
             if((feFilePending=feFopen(yyvsp[0].name,"r",NULL,TRUE))==NULL) YYERROR; ;}
     break;
 
   case 119:
-#line 1097 "grammar.y"
+#line 1103 "grammar.y"
     { newFile(yyvsp[-2].name,feFilePending); ;}
     break;
 
   case 120:
-#line 1102 "grammar.y"
+#line 1108 "grammar.y"
     {
             feHelp(yyvsp[-1].name);
             omFree((ADDRESS)yyvsp[-1].name);
@@ -2976,14 +2990,14 @@ yyreduce:
     break;
 
   case 121:
-#line 1107 "grammar.y"
+#line 1113 "grammar.y"
     {
             feHelp(NULL);
           ;}
     break;
 
   case 122:
-#line 1114 "grammar.y"
+#line 1120 "grammar.y"
     {
             singular_example(yyvsp[-1].name);
             omFree((ADDRESS)yyvsp[-1].name);
@@ -2991,7 +3005,7 @@ yyreduce:
     break;
 
   case 123:
-#line 1122 "grammar.y"
+#line 1128 "grammar.y"
     {
           if (basePack!=yyvsp[0].lv.req_packhdl)
           {
@@ -3003,7 +3017,7 @@ yyreduce:
     break;
 
   case 124:
-#line 1134 "grammar.y"
+#line 1140 "grammar.y"
     {
           leftv v=&yyvsp[0].lv;
           if (v->rtyp!=IDHDL)
@@ -3022,7 +3036,7 @@ yyreduce:
     break;
 
   case 125:
-#line 1150 "grammar.y"
+#line 1156 "grammar.y"
     {
           leftv v=&yyvsp[0].lv;
           if (v->rtyp!=IDHDL)
@@ -3041,21 +3055,21 @@ yyreduce:
     break;
 
   case 126:
-#line 1169 "grammar.y"
+#line 1175 "grammar.y"
     {
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
           ;}
     break;
 
   case 127:
-#line 1173 "grammar.y"
+#line 1179 "grammar.y"
     {
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
           ;}
     break;
 
   case 128:
-#line 1177 "grammar.y"
+#line 1183 "grammar.y"
     {
             if (yyvsp[-1].i==QRING_CMD) yyvsp[-1].i=RING_CMD;
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3063,35 +3077,35 @@ yyreduce:
     break;
 
   case 129:
-#line 1182 "grammar.y"
+#line 1188 "grammar.y"
     {
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
           ;}
     break;
 
   case 130:
-#line 1186 "grammar.y"
+#line 1192 "grammar.y"
     {
             list_cmd(RING_CMD,NULL,"// ",TRUE);
           ;}
     break;
 
   case 131:
-#line 1190 "grammar.y"
+#line 1196 "grammar.y"
     {
             list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
            ;}
     break;
 
   case 132:
-#line 1194 "grammar.y"
+#line 1200 "grammar.y"
     {
             list_cmd(PROC_CMD,NULL,"// ",TRUE);
           ;}
     break;
 
   case 133:
-#line 1198 "grammar.y"
+#line 1204 "grammar.y"
     {
             list_cmd(0,yyvsp[-1].lv.Fullname(),"// ",TRUE);
             yyvsp[-1].lv.CleanUp();
@@ -3099,7 +3113,7 @@ yyreduce:
     break;
 
   case 134:
-#line 1203 "grammar.y"
+#line 1209 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3108,7 +3122,7 @@ yyreduce:
     break;
 
   case 135:
-#line 1209 "grammar.y"
+#line 1215 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3117,7 +3131,7 @@ yyreduce:
     break;
 
   case 136:
-#line 1215 "grammar.y"
+#line 1221 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3126,7 +3140,7 @@ yyreduce:
     break;
 
   case 137:
-#line 1221 "grammar.y"
+#line 1227 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3135,7 +3149,7 @@ yyreduce:
     break;
 
   case 138:
-#line 1227 "grammar.y"
+#line 1233 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3144,7 +3158,7 @@ yyreduce:
     break;
 
   case 139:
-#line 1233 "grammar.y"
+#line 1239 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3153,7 +3167,7 @@ yyreduce:
     break;
 
   case 140:
-#line 1239 "grammar.y"
+#line 1245 "grammar.y"
     {
             if(yyvsp[-3].lv.Typ() == PACKAGE_CMD)
               list_cmd(yyvsp[-1].i,NULL,"// ",TRUE);
@@ -3162,19 +3176,19 @@ yyreduce:
     break;
 
   case 141:
-#line 1251 "grammar.y"
+#line 1257 "grammar.y"
     {
             list_cmd(-1,NULL,"// ",TRUE);
           ;}
     break;
 
   case 142:
-#line 1257 "grammar.y"
+#line 1263 "grammar.y"
     { yyInRingConstruction = TRUE; ;}
     break;
 
   case 143:
-#line 1266 "grammar.y"
+#line 1272 "grammar.y"
     {
             const char *ring_name = yyvsp[-6].lv.name;
             ring b=
@@ -3210,7 +3224,7 @@ yyreduce:
     break;
 
   case 144:
-#line 1299 "grammar.y"
+#line 1305 "grammar.y"
     {
             const char *ring_name = yyvsp[0].lv.name;
             if (!inerror) rDefault(ring_name);
@@ -3220,7 +3234,7 @@ yyreduce:
     break;
 
   case 145:
-#line 1309 "grammar.y"
+#line 1315 "grammar.y"
     {
             if ((yyvsp[-1].i!=LIB_CMD)||(iiLibCmd(yyvsp[0].name,TRUE,TRUE,TRUE)))
             //if ($1==LIB_CMD)
@@ -3234,7 +3248,7 @@ yyreduce:
     break;
 
   case 148:
-#line 1325 "grammar.y"
+#line 1331 "grammar.y"
     {
             if ((yyvsp[-1].i==KEEPRING_CMD) && (myynest==0))
                MYYERROR("only inside a proc allowed");
@@ -3306,14 +3320,14 @@ yyreduce:
     break;
 
   case 149:
-#line 1397 "grammar.y"
+#line 1403 "grammar.y"
     {
             type_cmd(&(yyvsp[0].lv));
           ;}
     break;
 
   case 150:
-#line 1401 "grammar.y"
+#line 1407 "grammar.y"
     {
             //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp);
             #ifdef SIQ
@@ -3339,7 +3353,7 @@ yyreduce:
     break;
 
   case 151:
-#line 1430 "grammar.y"
+#line 1436 "grammar.y"
     {
             int i; TESTSETINT(yyvsp[-2].lv,i);
             if (i!=0)
@@ -3355,7 +3369,7 @@ yyreduce:
     break;
 
   case 152:
-#line 1443 "grammar.y"
+#line 1449 "grammar.y"
     {
             if (currentVoice->ifsw==1)
             {
@@ -3375,7 +3389,7 @@ yyreduce:
     break;
 
   case 153:
-#line 1460 "grammar.y"
+#line 1466 "grammar.y"
     {
             int i; TESTSETINT(yyvsp[-2].lv,i);
             if (i)
@@ -3387,7 +3401,7 @@ yyreduce:
     break;
 
   case 154:
-#line 1469 "grammar.y"
+#line 1475 "grammar.y"
     {
             if (exitBuffer(BT_break)) YYERROR;
             currentVoice->ifsw=0;
@@ -3395,7 +3409,7 @@ yyreduce:
     break;
 
   case 155:
-#line 1474 "grammar.y"
+#line 1480 "grammar.y"
     {
             if (contBuffer(BT_break)) YYERROR;
             currentVoice->ifsw=0;
@@ -3403,7 +3417,7 @@ yyreduce:
     break;
 
   case 156:
-#line 1482 "grammar.y"
+#line 1488 "grammar.y"
     {
             /* -> if(!$2) break; $3; continue;*/
             char * s = (char *)omAlloc( strlen(yyvsp[-1].name) + strlen(yyvsp[0].name) + 36);
@@ -3415,7 +3429,7 @@ yyreduce:
     break;
 
   case 157:
-#line 1494 "grammar.y"
+#line 1500 "grammar.y"
     {
             /* $2 */
             /* if (!$3) break; $5; $4; continue; */
@@ -3434,7 +3448,7 @@ yyreduce:
     break;
 
   case 158:
-#line 1513 "grammar.y"
+#line 1519 "grammar.y"
     {
             procinfov pi;
             idhdl h = enterid(yyvsp[-1].name,myynest,PROC_CMD,&IDROOT,TRUE);
@@ -3448,7 +3462,7 @@ yyreduce:
     break;
 
   case 159:
-#line 1524 "grammar.y"
+#line 1530 "grammar.y"
     {
             idhdl h = enterid(yyvsp[-2].name,myynest,PROC_CMD,&IDROOT,TRUE);
             if (h==NULL)
@@ -3471,7 +3485,7 @@ yyreduce:
     break;
 
   case 160:
-#line 1544 "grammar.y"
+#line 1550 "grammar.y"
     {
             omFree((ADDRESS)yyvsp[-1].name);
             idhdl h = enterid(yyvsp[-3].name,myynest,PROC_CMD,&IDROOT,TRUE);
@@ -3495,20 +3509,20 @@ yyreduce:
     break;
 
   case 161:
-#line 1568 "grammar.y"
+#line 1574 "grammar.y"
     {
-	    // decl. of type proc p(int i)
+            // decl. of type proc p(int i)
             if (yyvsp[-1].i==PARAMETER)  { if (iiParameter(&yyvsp[0].lv)) YYERROR; }
-	    else                { if (iiAlias(&yyvsp[0].lv)) YYERROR; } 
+            else                { if (iiAlias(&yyvsp[0].lv)) YYERROR; }
           ;}
     break;
 
   case 162:
-#line 1574 "grammar.y"
+#line 1580 "grammar.y"
     {
-	    // decl. of type proc p(i)
+            // decl. of type proc p(i)
             sleftv tmp_expr;
-	    if (yyvsp[-1].i==ALIAS_CMD) MYYERROR("alias requires a type");
+            if (yyvsp[-1].i==ALIAS_CMD) MYYERROR("alias requires a type");
             if ((iiDeclCommand(&tmp_expr,&yyvsp[0].lv,myynest,DEF_CMD,&IDROOT))
             || (iiParameter(&tmp_expr)))
               YYERROR;
@@ -3516,7 +3530,7 @@ yyreduce:
     break;
 
   case 163:
-#line 1586 "grammar.y"
+#line 1592 "grammar.y"
     {
             if(iiRETURNEXPR==NULL) YYERROR;
             iiRETURNEXPR[myynest].Copy(&yyvsp[-1].lv);
@@ -3526,7 +3540,7 @@ yyreduce:
     break;
 
   case 164:
-#line 1593 "grammar.y"
+#line 1599 "grammar.y"
     {
             if (yyvsp[-2].i==RETURN)
             {
@@ -3542,7 +3556,7 @@ yyreduce:
     }
 
 /* Line 1010 of yacc.c.  */
-#line 3546 "grammar.cc"
+#line 3560 "grammar.cc"
 
   yyvsp -= yylen;
   yyssp -= yylen;
diff --git a/Singular/grammar.y b/Singular/grammar.y
index 9380a63..3cf05b9 100644
--- a/Singular/grammar.y
+++ b/Singular/grammar.y
@@ -377,8 +377,8 @@ lines:
             if(siCntrlc)
             {
               WerrorS("abort...");
-	      while((currentVoice!=NULL) && (currentVoice->prev!=NULL)) exitVoice();
-	      if (currentVoice!=NULL) currentVoice->ifsw=0;
+              while((currentVoice!=NULL) && (currentVoice->prev!=NULL)) exitVoice();
+              if (currentVoice!=NULL) currentVoice->ifsw=0;
             }
             if (errorreported) /* also catches abort... */
             {
@@ -514,16 +514,16 @@ elemexpr:
           }
         | elemexpr '(' exprlist ')'
           {
-	    if ($1.rtyp==UNKNOWN)
-	    { // for x(i)(j)
-	      if(iiExprArith2(&$$,&$1,'(',&$3)) YYERROR;
-	    }
-	    else
-	    {
+            if ($1.rtyp==UNKNOWN)
+            { // for x(i)(j)
+              if(iiExprArith2(&$$,&$1,'(',&$3)) YYERROR;
+            }
+            else
+            {
               $1.next=(leftv)omAllocBin(sleftv_bin);
               memcpy($1.next,&$3,sizeof(sleftv));
               if(iiExprArithM(&$$,&$1,'(')) YYERROR;
-	    }
+            }
           }
         | '[' exprlist ']'
           {
@@ -644,6 +644,10 @@ expr:   expr_arithmetic
           {
             if(iiExprArith1(&$$,&$3,$1)) YYERROR;
           }
+        | RING_DECL_LIST '(' exprlist ')'
+          {
+            if(iiExprArithM(&$$,&$3,$1)) YYERROR;
+          }
         | RING_DECL_LIST '(' ')'
           {
             if(iiExprArithM(&$$,NULL,$1)) YYERROR;
@@ -708,11 +712,7 @@ expr:   expr_arithmetic
           {
             if(iiExprArith3(&$$,$1,&$3,&$5,&$7)) YYERROR;
           }
-        | RING_DECL_LIST  '(' expr ')'
-          {
-            if(iiExprArith1(&$$,&$3,$1)) YYERROR;
-          }
-        | mat_cmd  '(' expr ')'
+        | mat_cmd '(' expr ')'
           {
             if(iiExprArith1(&$$,&$3,$1)) YYERROR;
           }
@@ -893,18 +893,18 @@ declare_ip_variable:
           {
             if (iiDeclCommand(&$$,&$2,myynest,$1,&(currRing->idroot), TRUE)) YYERROR;
           }
-        | mat_cmd  elemexpr '[' expr ']' '[' expr ']'
+        | mat_cmd elemexpr '[' expr ']' '[' expr ']'
           {
-	    leftv v;
-	    idhdl h;
             int r; TESTSETINT($4,r);
             int c; TESTSETINT($7,c);
             if (r < 1)
               MYYERROR("rows must be greater than 0");
             if (c < 0)
               MYYERROR("cols must be greater than -1");
-	    if ($1==MATRIX_CMD)
-	    {
+            leftv v;
+            idhdl h;
+            if ($1 == MATRIX_CMD)
+            {
               if (iiDeclCommand(&$$,&$2,myynest,$1,&(currRing->idroot), TRUE)) YYERROR;
               v=&$$;
               h=(idhdl)v->data;
@@ -912,25 +912,28 @@ declare_ip_variable:
               IDMATRIX(h) = mpNew(r,c);
               if (IDMATRIX(h)==NULL) YYERROR;
             }
-	    else if ($1==INTMAT_CMD)
-	    {
+            else if ($1 == INTMAT_CMD)
+            {
               if (iiDeclCommand(&$$,&$2,myynest,$1,&($2.req_packhdl->idroot)))
                 YYERROR;
-               v=&$$;
-               h=(idhdl)v->data;
-               delete IDINTVEC(h);
-               IDINTVEC(h) = new intvec(r,c,0);
-               if (IDINTVEC(h)==NULL) YYERROR;
-	    }
-	  }
+              v=&$$;
+              h=(idhdl)v->data;
+              delete IDINTVEC(h);
+              IDINTVEC(h) = new intvec(r,c,0);
+              if (IDINTVEC(h)==NULL) YYERROR;
+            }
+            else /* BIGINTMAT_CMD */
+            {
+            }
+          }
         | mat_cmd elemexpr
           {
-	    if ($1==MATRIX_CMD)
+            if ($1 == MATRIX_CMD)
+            {
+              if (iiDeclCommand(&$$,&$2,myynest,$1,&(currRing->idroot), TRUE)) YYERROR;
+            }
+            else if ($1 == INTMAT_CMD)
             {
-	      if (iiDeclCommand(&$$,&$2,myynest,$1,&(currRing->idroot), TRUE)) YYERROR;
-	    }
-	    else if ($1==INTMAT_CMD)
-	    {
               if (iiDeclCommand(&$$,&$2,myynest,$1,&($2.req_packhdl->idroot)))
                 YYERROR;
               leftv v=&$$;
@@ -942,7 +945,10 @@ declare_ip_variable:
                  IDINTVEC(h) = new intvec(1,1,0);
                  v=v->next;
               } while (v!=NULL);
-	    }
+            }
+            else /* BIGINTMAT_CMD */
+            {
+            }
           }
         | declare_ip_variable ',' elemexpr
           {
@@ -1078,12 +1084,12 @@ cmdeq:  '='
         ;
 
 mat_cmd: MATRIX_CMD
-           { $$ = $1; }
-	 | INTMAT_CMD
-           { $$ = $1; }
-	 | BIGINTMAT_CMD
-           { $$ = $1; }
-         ;
+            { $$ = $1; }
+        | INTMAT_CMD
+            { $$ = $1; }
+        | BIGINTMAT_CMD
+            { $$ = $1; }
+          ;
 
 /* --------------------------------------------------------------------*/
 /* section of pure commands                                            */
@@ -1223,13 +1229,13 @@ listcmd:
               list_cmd($5,NULL,"// ",TRUE);
             $3.CleanUp();
           }
-        | LISTVAR_CMD '(' elemexpr ',' mat_cmd ')'
+        | LISTVAR_CMD '(' elemexpr ',' RING_CMD ')'
           {
             if($3.Typ() == PACKAGE_CMD)
               list_cmd($5,NULL,"// ",TRUE);
             $3.CleanUp();
           }
-        | LISTVAR_CMD '(' elemexpr ',' RING_CMD ')'
+        | LISTVAR_CMD '(' elemexpr ',' mat_cmd ')'
           {
             if($3.Typ() == PACKAGE_CMD)
               list_cmd($5,NULL,"// ",TRUE);
@@ -1566,15 +1572,15 @@ proccmd:
 parametercmd:
         PARAMETER declare_ip_variable
           {
-	    // decl. of type proc p(int i)
+            // decl. of type proc p(int i)
             if ($1==PARAMETER)  { if (iiParameter(&$2)) YYERROR; }
-	    else                { if (iiAlias(&$2)) YYERROR; } 
+            else                { if (iiAlias(&$2)) YYERROR; }
           }
         | PARAMETER expr
           {
-	    // decl. of type proc p(i)
+            // decl. of type proc p(i)
             sleftv tmp_expr;
-	    if ($1==ALIAS_CMD) MYYERROR("alias requires a type");
+            if ($1==ALIAS_CMD) MYYERROR("alias requires a type");
             if ((iiDeclCommand(&tmp_expr,&$2,myynest,DEF_CMD,&IDROOT))
             || (iiParameter(&tmp_expr)))
               YYERROR;

-- 
an open source computer algebra system



More information about the debian-science-commits mailing list