You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by zu...@apache.org on 2016/04/19 18:44:15 UTC

[02/24] incubator-quickstep git commit: Support, and tests for SMA index creation via parser.

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/57e12d53/parser/preprocessed/SqlParser_gen.cpp
----------------------------------------------------------------------
diff --git a/parser/preprocessed/SqlParser_gen.cpp b/parser/preprocessed/SqlParser_gen.cpp
index 0a3ccba..fd050a9 100644
--- a/parser/preprocessed/SqlParser_gen.cpp
+++ b/parser/preprocessed/SqlParser_gen.cpp
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.4.  */
+/* A Bison parser, made by GNU Bison 3.0.2.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.4"
+#define YYBISON_VERSION "3.0.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -276,30 +276,31 @@ extern int quickstep_yydebug;
     TOKEN_ROW_DELIMITER = 348,
     TOKEN_SELECT = 349,
     TOKEN_SET = 350,
-    TOKEN_SMALLINT = 351,
-    TOKEN_TABLE = 352,
-    TOKEN_THEN = 353,
-    TOKEN_TIME = 354,
-    TOKEN_TIMESTAMP = 355,
-    TOKEN_TRUE = 356,
-    TOKEN_TUPLESAMPLE = 357,
-    TOKEN_UNIQUE = 358,
-    TOKEN_UPDATE = 359,
-    TOKEN_USING = 360,
-    TOKEN_VALUES = 361,
-    TOKEN_VARCHAR = 362,
-    TOKEN_WHEN = 363,
-    TOKEN_WHERE = 364,
-    TOKEN_WITH = 365,
-    TOKEN_YEARMONTH = 366,
-    TOKEN_EOF = 367,
-    TOKEN_LEX_ERROR = 368
+    TOKEN_SMA = 351,
+    TOKEN_SMALLINT = 352,
+    TOKEN_TABLE = 353,
+    TOKEN_THEN = 354,
+    TOKEN_TIME = 355,
+    TOKEN_TIMESTAMP = 356,
+    TOKEN_TRUE = 357,
+    TOKEN_TUPLESAMPLE = 358,
+    TOKEN_UNIQUE = 359,
+    TOKEN_UPDATE = 360,
+    TOKEN_USING = 361,
+    TOKEN_VALUES = 362,
+    TOKEN_VARCHAR = 363,
+    TOKEN_WHEN = 364,
+    TOKEN_WHERE = 365,
+    TOKEN_WITH = 366,
+    TOKEN_YEARMONTH = 367,
+    TOKEN_EOF = 368,
+    TOKEN_LEX_ERROR = 369
   };
 #endif
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-
+typedef union YYSTYPE YYSTYPE;
 union YYSTYPE
 {
 #line 116 "../SqlParser.ypp" /* yacc.c:355  */
@@ -392,10 +393,8 @@ union YYSTYPE
   quickstep::PtrVector<quickstep::ParseSubqueryTableReference> *with_list_;
   quickstep::ParseSubqueryTableReference *with_list_element_;
 
-#line 396 "SqlParser_gen.cpp" /* yacc.c:355  */
+#line 397 "SqlParser_gen.cpp" /* yacc.c:355  */
 };
-
-typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
 #endif
@@ -427,7 +426,7 @@ int quickstep_yyparse (yyscan_t yyscanner, quickstep::ParseStatement **parsedSta
 #include "SqlLexer_gen.hpp"
 void NotSupported(const YYLTYPE *location, yyscan_t yyscanner, const std::string &feature);
 
-#line 431 "SqlParser_gen.cpp" /* yacc.c:358  */
+#line 430 "SqlParser_gen.cpp" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -671,21 +670,21 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  47
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1117
+#define YYLAST   1038
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  125
+#define YYNTOKENS  126
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  95
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  249
+#define YYNRULES  250
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  485
+#define YYNSTATES  486
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   368
+#define YYMAXUTOK   369
 
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -695,11 +694,11 @@ union yyalloc
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     120,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     121,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,   124,     2,     2,
-     121,   122,    23,    21,   123,    22,    27,    24,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,   119,
+       2,     2,     2,     2,     2,     2,     2,   125,     2,     2,
+     122,   123,    23,    21,   124,    22,    27,    24,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,   120,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -730,38 +729,39 @@ static const yytype_uint8 yytranslate[] =
       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   566,   566,   570,   574,   578,   582,   585,   592,   595,
-     598,   601,   604,   607,   610,   613,   616,   619,   625,   631,
-     638,   644,   651,   660,   665,   674,   679,   684,   688,   694,
-     699,   702,   705,   710,   713,   716,   719,   722,   725,   728,
-     731,   734,   737,   749,   752,   755,   773,   793,   796,   799,
-     804,   809,   815,   821,   830,   834,   840,   843,   848,   853,
-     858,   865,   872,   876,   882,   885,   890,   893,   898,   901,
-     906,   909,   928,   932,   938,   942,   948,   951,   954,   959,
-     962,   969,   974,   985,   989,   995,   998,  1004,  1012,  1015,
-    1018,  1024,  1029,  1032,  1037,  1041,  1045,  1049,  1055,  1060,
-    1065,  1069,  1075,  1081,  1084,  1089,  1094,  1098,  1104,  1110,
-    1116,  1119,  1123,  1129,  1132,  1137,  1141,  1147,  1150,  1153,
-    1158,  1163,  1166,  1172,  1176,  1182,  1188,  1194,  1200,  1206,
-    1212,  1218,  1224,  1232,  1237,  1240,  1243,  1248,  1252,  1256,
-    1259,  1263,  1268,  1271,  1276,  1279,  1284,  1288,  1294,  1297,
-    1302,  1305,  1310,  1313,  1318,  1321,  1340,  1344,  1350,  1357,
-    1360,  1363,  1368,  1371,  1374,  1380,  1383,  1388,  1393,  1402,
-    1407,  1416,  1421,  1424,  1429,  1432,  1437,  1443,  1449,  1452,
-    1455,  1463,  1466,  1471,  1474,  1479,  1482,  1487,  1490,  1493,
-    1496,  1499,  1502,  1507,  1511,  1515,  1518,  1523,  1528,  1531,
-    1536,  1540,  1546,  1551,  1555,  1561,  1566,  1569,  1574,  1578,
-    1584,  1587,  1590,  1593,  1605,  1609,  1628,  1643,  1647,  1653,
-    1656,  1661,  1665,  1672,  1675,  1678,  1681,  1684,  1687,  1690,
-    1693,  1696,  1699,  1704,  1715,  1718,  1723,  1726,  1729,  1735,
-    1739,  1745,  1748,  1756,  1759,  1762,  1765,  1771,  1776,  1781
+       0,   567,   567,   571,   575,   579,   583,   586,   593,   596,
+     599,   602,   605,   608,   611,   614,   617,   620,   626,   632,
+     639,   645,   652,   661,   666,   675,   680,   685,   689,   695,
+     700,   703,   706,   711,   714,   717,   720,   723,   726,   729,
+     732,   735,   738,   750,   753,   756,   774,   794,   797,   800,
+     805,   810,   816,   822,   831,   835,   841,   844,   849,   854,
+     859,   866,   873,   877,   883,   886,   891,   894,   899,   902,
+     907,   910,   929,   933,   939,   943,   949,   952,   955,   960,
+     963,   970,   975,   986,   990,   994,  1000,  1003,  1009,  1017,
+    1020,  1023,  1029,  1034,  1037,  1042,  1046,  1050,  1054,  1060,
+    1065,  1070,  1074,  1080,  1086,  1089,  1094,  1099,  1103,  1109,
+    1115,  1121,  1124,  1128,  1134,  1137,  1142,  1146,  1152,  1155,
+    1158,  1163,  1168,  1171,  1177,  1181,  1187,  1193,  1199,  1205,
+    1211,  1217,  1223,  1229,  1237,  1242,  1245,  1248,  1253,  1257,
+    1261,  1264,  1268,  1273,  1276,  1281,  1284,  1289,  1293,  1299,
+    1302,  1307,  1310,  1315,  1318,  1323,  1326,  1345,  1349,  1355,
+    1362,  1365,  1368,  1373,  1376,  1379,  1385,  1388,  1393,  1398,
+    1407,  1412,  1421,  1426,  1429,  1434,  1437,  1442,  1448,  1454,
+    1457,  1460,  1468,  1471,  1476,  1479,  1484,  1487,  1492,  1495,
+    1498,  1501,  1504,  1507,  1512,  1516,  1520,  1523,  1528,  1533,
+    1536,  1541,  1545,  1551,  1556,  1560,  1566,  1571,  1574,  1579,
+    1583,  1589,  1592,  1595,  1598,  1610,  1614,  1633,  1648,  1652,
+    1658,  1661,  1666,  1670,  1677,  1680,  1683,  1686,  1689,  1692,
+    1695,  1698,  1701,  1704,  1709,  1720,  1723,  1728,  1731,  1734,
+    1740,  1744,  1750,  1753,  1761,  1764,  1767,  1770,  1776,  1781,
+    1786
 };
 #endif
 
@@ -793,27 +793,27 @@ static const char *const yytname[] =
   "TOKEN_ON", "TOKEN_ORDER", "TOKEN_OUTER", "TOKEN_PARTITION",
   "TOKEN_PARTITIONS", "TOKEN_PERCENT", "TOKEN_PRIMARY", "TOKEN_QUIT",
   "TOKEN_RANGE", "TOKEN_REAL", "TOKEN_REFERENCES", "TOKEN_RIGHT",
-  "TOKEN_ROW_DELIMITER", "TOKEN_SELECT", "TOKEN_SET", "TOKEN_SMALLINT",
-  "TOKEN_TABLE", "TOKEN_THEN", "TOKEN_TIME", "TOKEN_TIMESTAMP",
-  "TOKEN_TRUE", "TOKEN_TUPLESAMPLE", "TOKEN_UNIQUE", "TOKEN_UPDATE",
-  "TOKEN_USING", "TOKEN_VALUES", "TOKEN_VARCHAR", "TOKEN_WHEN",
-  "TOKEN_WHERE", "TOKEN_WITH", "TOKEN_YEARMONTH", "TOKEN_EOF",
-  "TOKEN_LEX_ERROR", "';'", "'\\n'", "'('", "')'", "','", "'%'", "$accept",
-  "start", "sql_statement", "quit_statement", "alter_table_statement",
-  "create_table_statement", "create_index_statement",
-  "drop_table_statement", "column_def", "column_def_commalist",
-  "data_type", "column_constraint_def", "column_constraint_def_list",
-  "opt_column_constraint_def_list", "table_constraint_def",
-  "table_constraint_def_commalist", "opt_table_constraint_def_commalist",
-  "opt_column_list", "opt_block_properties", "opt_partition_clause",
-  "partition_type", "key_value_list", "key_value", "key_string_value",
-  "key_string_list", "key_integer_value", "index_type",
-  "opt_index_properties", "insert_statement", "copy_from_statement",
-  "opt_copy_from_params", "copy_from_params", "update_statement",
-  "delete_statement", "assignment_list", "assignment_item",
-  "select_statement", "with_clause", "with_list", "with_list_element",
-  "select_query", "opt_all_distinct", "selection",
-  "selection_item_commalist", "selection_item", "from_clause",
+  "TOKEN_ROW_DELIMITER", "TOKEN_SELECT", "TOKEN_SET", "TOKEN_SMA",
+  "TOKEN_SMALLINT", "TOKEN_TABLE", "TOKEN_THEN", "TOKEN_TIME",
+  "TOKEN_TIMESTAMP", "TOKEN_TRUE", "TOKEN_TUPLESAMPLE", "TOKEN_UNIQUE",
+  "TOKEN_UPDATE", "TOKEN_USING", "TOKEN_VALUES", "TOKEN_VARCHAR",
+  "TOKEN_WHEN", "TOKEN_WHERE", "TOKEN_WITH", "TOKEN_YEARMONTH",
+  "TOKEN_EOF", "TOKEN_LEX_ERROR", "';'", "'\\n'", "'('", "')'", "','",
+  "'%'", "$accept", "start", "sql_statement", "quit_statement",
+  "alter_table_statement", "create_table_statement",
+  "create_index_statement", "drop_table_statement", "column_def",
+  "column_def_commalist", "data_type", "column_constraint_def",
+  "column_constraint_def_list", "opt_column_constraint_def_list",
+  "table_constraint_def", "table_constraint_def_commalist",
+  "opt_table_constraint_def_commalist", "opt_column_list",
+  "opt_block_properties", "opt_partition_clause", "partition_type",
+  "key_value_list", "key_value", "key_string_value", "key_string_list",
+  "key_integer_value", "index_type", "opt_index_properties",
+  "insert_statement", "copy_from_statement", "opt_copy_from_params",
+  "copy_from_params", "update_statement", "delete_statement",
+  "assignment_list", "assignment_item", "select_statement", "with_clause",
+  "with_list", "with_list_element", "select_query", "opt_all_distinct",
+  "selection", "selection_item_commalist", "selection_item", "from_clause",
   "opt_join_chain", "join_chain", "join", "subquery_expression",
   "opt_sample_clause", "table_reference", "table_reference_signature",
   "table_reference_signature_primary", "table_reference_commalist",
@@ -849,15 +849,15 @@ static const yytype_uint16 yytoknum[] =
      330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
      340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
-     360,   361,   362,   363,   364,   365,   366,   367,   368,    59,
-      10,    40,    41,    44,    37
+     360,   361,   362,   363,   364,   365,   366,   367,   368,   369,
+      59,    10,    40,    41,    44,    37
 };
 # endif
 
-#define YYPACT_NINF -222
+#define YYPACT_NINF -223
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-222)))
+  (!!((Yystate) == (-223)))
 
 #define YYTABLE_NINF -1
 
@@ -868,55 +868,55 @@ static const yytype_uint16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     164,  -222,  -222,    51,   165,    18,    45,   104,    55,  -222,
-      43,   165,   165,  -222,   121,    74,  -222,  -222,  -222,  -222,
-    -222,  -222,  -222,  -222,  -222,  -222,    13,  -222,    91,   210,
-     165,  -222,  -222,   159,   165,   165,   165,   165,   165,  -222,
-    -222,   585,   141,   123,  -222,   218,   132,  -222,  -222,  -222,
-     192,  -222,  -222,  -222,  -222,    19,   266,   196,   168,   180,
-    -222,    67,  -222,  -222,   294,   306,  -222,  -222,  -222,   670,
-     200,  -222,   273,  -222,  -222,   220,  -222,  -222,   312,  -222,
-    -222,  -222,  -222,  -222,  -222,   229,   278,   840,   351,   295,
-     251,  -222,   239,    16,  -222,  -222,  -222,  -222,  -222,  -222,
-    -222,   925,    -6,   165,   165,   261,   165,   165,   222,   234,
-     268,   165,   165,   500,  -222,  -222,   263,   165,  -222,  -222,
-    -222,   500,     3,   -28,  -222,   378,  -222,   165,  -222,   380,
-    -222,    24,  -222,     5,   180,   840,  -222,  -222,   165,   840,
-    -222,  -222,  -222,  -222,   840,   306,  -222,   165,   414,    89,
-    -222,   377,  -222,   290,  -222,   -40,  -222,   290,   165,    93,
-     165,   165,   269,  -222,   270,  -222,   163,  1001,   755,   261,
-     500,   384,   385,  -222,  -222,   293,   373,   957,   169,     6,
-     840,   -15,  -222,   840,  -222,   338,   276,   333,   279,  -222,
-     173,  -222,   103,   173,    29,   332,  -222,  -222,    16,  -222,
-    -222,   281,   840,  -222,   275,   176,   165,  -222,   840,   282,
-    -222,   165,  -222,  -222,   284,   328,   329,   287,  -222,  -222,
-    -222,    96,   165,   299,    93,   165,  -222,    68,  -222,  -222,
-      -3,    39,   500,   500,   257,  -222,  -222,  -222,  -222,  -222,
-    -222,  -222,  -222,   840,   840,     7,  -222,   209,   300,   840,
-      49,  -222,   352,   275,  -222,  -222,   840,  -222,   165,  -222,
-    -222,   154,   335,   165,   162,   179,     5,  -222,   147,  -222,
-    -222,   406,   407,   173,   376,   346,  -222,   211,  -222,   840,
-    -222,   275,  -222,  -222,   500,   296,   301,   165,   418,   110,
-     213,  -222,   215,   397,   302,  -222,   305,   310,  -222,   347,
-     308,   957,  -222,   353,   165,  -222,  -222,    68,  -222,  -222,
-     385,  -222,  -222,  -222,   840,    70,   275,   349,  -222,  -222,
-     957,   313,   275,   840,  -222,    41,  -222,   165,   356,   165,
-     -50,   165,   361,   165,   362,  -222,  -222,   350,   354,  -222,
-     840,   500,   363,  -222,   275,     2,   165,   165,   223,  -222,
-    -222,  -222,  -222,  -222,  -222,  -222,   181,  -222,   165,  -222,
-    -222,   319,    93,   408,   364,  -222,   500,  -222,  -222,   330,
-    -222,   208,   840,  -222,  -222,   957,   275,  -222,   -43,   165,
-     -42,   500,   -27,   165,   -22,   165,  -222,  -222,   334,   384,
-     413,   375,  -222,   237,   240,  -222,   453,   110,  -222,   165,
-    -222,  -222,   339,   420,  -222,    10,   165,   840,   275,   242,
-     500,   -19,   500,   384,   500,   -18,   500,   -17,   840,   457,
-    -222,   369,  -222,  -222,  -222,   244,  -222,  -222,  -222,  -222,
-       9,   165,    53,  -222,   344,   275,  -222,   384,   500,   384,
-     384,   500,   384,   500,   357,  -222,   152,  -222,   165,  -222,
-     165,  -222,  -222,   165,  -222,   246,  -222,  -222,   355,  -222,
-     384,   384,   384,   840,  -222,  -222,   386,   358,  -222,   248,
-    -222,   165,  -222,    14,  -222,   165,  -222,   250,  -222,  -222,
-     255,   382,  -222,   466,  -222
+     367,  -223,  -223,   -29,   233,    -6,    18,    34,    35,  -223,
+     138,   233,   233,  -223,    94,   132,  -223,  -223,  -223,  -223,
+    -223,  -223,  -223,  -223,  -223,  -223,   -20,  -223,   111,   165,
+     233,  -223,  -223,    98,   233,   233,   233,   233,   233,  -223,
+    -223,   564,    72,    52,  -223,   185,   103,  -223,  -223,  -223,
+     118,  -223,  -223,  -223,  -223,    68,   231,   167,   125,   142,
+    -223,    76,  -223,  -223,   256,   260,  -223,  -223,  -223,   627,
+     139,  -223,   213,  -223,  -223,   160,  -223,  -223,   287,  -223,
+    -223,  -223,  -223,  -223,  -223,   179,   228,   753,   300,   241,
+     187,  -223,   234,    33,  -223,  -223,  -223,  -223,  -223,  -223,
+    -223,   816,   -16,   233,   233,   204,   233,   233,   199,   237,
+     205,   233,   233,   501,  -223,  -223,   206,   233,  -223,  -223,
+    -223,   501,    49,   -28,  -223,   302,  -223,   233,  -223,   329,
+    -223,    30,  -223,    17,   142,   753,  -223,  -223,   233,   753,
+    -223,  -223,  -223,  -223,   753,   260,  -223,   233,   415,    81,
+    -223,   330,  -223,   248,  -223,   153,  -223,   248,   233,    27,
+     233,   233,   226,  -223,   245,  -223,   161,   908,   690,   204,
+     501,   342,   344,  -223,  -223,  1016,   335,   879,   163,    16,
+     753,    -2,  -223,   753,  -223,   299,   246,   305,   249,  -223,
+      56,  -223,   102,    56,   -18,   306,  -223,  -223,    33,  -223,
+    -223,   250,   753,  -223,   269,   171,   233,  -223,   753,   252,
+    -223,   233,  -223,  -223,   255,   301,   303,   261,  -223,  -223,
+    -223,   121,   233,   267,    27,   233,  -223,    26,  -223,  -223,
+       7,    28,   501,   501,   254,  -223,  -223,  -223,  -223,  -223,
+    -223,  -223,  -223,   753,   753,    15,  -223,   173,   272,   753,
+      51,  -223,   327,   269,  -223,  -223,   753,  -223,   233,  -223,
+    -223,   -13,   309,   233,     5,   113,    17,  -223,   147,  -223,
+    -223,   381,   382,    56,   351,   321,  -223,   175,  -223,   753,
+    -223,   269,  -223,  -223,   501,   270,   271,   233,   389,    99,
+     189,  -223,   191,   368,    43,  -223,   275,   284,  -223,   318,
+     280,   879,  -223,   326,   233,  -223,  -223,    26,  -223,  -223,
+     344,  -223,  -223,  -223,   753,   224,   269,   322,  -223,  -223,
+     879,   285,   269,   753,  -223,    37,  -223,   233,   331,   233,
+     -19,   233,   332,   233,   333,  -223,  -223,   315,   320,  -223,
+     753,   501,   328,  -223,   269,     8,   233,   233,   193,  -223,
+    -223,  -223,  -223,  -223,  -223,  -223,   141,  -223,   233,  -223,
+    -223,  -223,   292,    27,   390,   337,  -223,   501,  -223,  -223,
+     294,  -223,   257,   753,  -223,  -223,   879,   269,  -223,    -8,
+     233,    -3,   501,    24,   233,    54,   233,  -223,  -223,   293,
+     342,   385,   348,  -223,   207,   210,  -223,   425,    99,  -223,
+     233,  -223,  -223,   310,   392,  -223,     9,   233,   753,   269,
+     216,   501,    59,   501,   342,   501,    79,   501,    80,   753,
+     426,  -223,   338,  -223,  -223,  -223,   221,  -223,  -223,  -223,
+    -223,     6,   233,   101,  -223,   312,   269,  -223,   342,   501,
+     342,   342,   501,   342,   501,   317,  -223,   188,  -223,   233,
+    -223,   233,  -223,  -223,   233,  -223,   235,  -223,  -223,   324,
+    -223,   342,   342,   342,   753,  -223,  -223,   355,   336,  -223,
+     238,  -223,   233,  -223,    22,  -223,   233,  -223,   240,  -223,
+    -223,   242,   352,  -223,   437,  -223
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -924,82 +924,82 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,     6,   249,     0,     0,     0,     0,     0,     0,    18,
-     110,     0,     0,     7,     0,     0,    15,     8,    10,    11,
-      13,    14,     9,    17,    12,    16,     0,   103,     0,   247,
-       0,   241,   242,     0,     0,     0,     0,     0,     0,   111,
-     112,     0,     0,   105,   106,     0,   144,     1,     3,     2,
-       0,   104,     5,     4,   248,     0,     0,     0,     0,   165,
-      25,     0,   214,   211,     0,   233,   113,    40,    29,     0,
+       0,     6,   250,     0,     0,     0,     0,     0,     0,    18,
+     111,     0,     0,     7,     0,     0,    15,     8,    10,    11,
+      13,    14,     9,    17,    12,    16,     0,   104,     0,   248,
+       0,   242,   243,     0,     0,     0,     0,     0,     0,   112,
+     113,     0,     0,   106,   107,     0,   145,     1,     3,     2,
+       0,   105,     5,     4,   249,     0,     0,     0,     0,   166,
+      25,     0,   215,   212,     0,   234,   114,    40,    29,     0,
        0,    30,    31,    34,    36,     0,    37,    39,     0,    41,
-     210,    35,    38,    32,    33,     0,     0,     0,     0,     0,
-     114,   115,   119,   182,   184,   186,   189,   190,   191,   188,
-     187,     0,   219,     0,     0,     0,     0,     0,     0,     0,
-      92,     0,     0,     0,    99,   166,     0,     0,    89,   212,
-     213,     0,     0,   206,   203,     0,    43,     0,   215,     0,
-      44,     0,   216,     0,   165,     0,   234,   235,     0,     0,
-     118,   237,   238,   236,     0,     0,   185,     0,     0,   165,
-     101,     0,   107,     0,   108,     0,   239,     0,     0,     0,
-       0,     0,     0,    91,    66,    27,     0,     0,     0,     0,
-       0,   167,   169,   171,   173,     0,   187,     0,     0,     0,
-       0,   206,   200,     0,   204,     0,     0,     0,     0,   192,
-       0,   146,   121,   141,   134,   148,   116,   117,   181,   183,
-     220,     0,     0,   193,   208,     0,     0,    98,     0,     0,
-     145,     0,    90,    19,     0,     0,     0,     0,    20,    21,
-      22,     0,     0,     0,    64,     0,    42,    56,   172,   180,
-       0,     0,     0,     0,     0,   223,   225,   226,   227,   228,
-     224,   229,   231,     0,     0,     0,   217,     0,     0,     0,
-       0,   201,     0,   207,   199,    45,     0,    46,     0,   137,
-     142,     0,     0,     0,     0,     0,     0,   120,   122,   124,
-     140,     0,     0,   139,     0,   150,   194,     0,   195,     0,
-     100,   102,   133,   240,     0,     0,     0,     0,     0,     0,
-       0,   221,     0,   219,     0,    63,    65,    68,    28,     0,
-       0,     0,    47,     0,     0,    49,    55,    57,    26,   179,
-     168,   170,   230,   232,     0,     0,   178,     0,   177,    88,
-       0,     0,   205,     0,   198,     0,   143,     0,     0,     0,
-       0,     0,     0,     0,     0,   147,   123,     0,     0,   138,
-       0,     0,   152,   196,   209,     0,     0,     0,     0,    94,
-     245,   246,   244,   243,    95,    93,     0,    67,     0,    83,
-      84,    85,     0,     0,    70,    48,     0,    51,    50,     0,
-      54,     0,     0,   176,   218,     0,   202,   197,     0,     0,
-       0,     0,     0,     0,     0,     0,   135,   136,   149,   151,
-       0,   154,    61,     0,     0,    58,     0,     0,   222,     0,
-      24,    62,     0,     0,    23,     0,     0,     0,   174,     0,
-       0,     0,     0,   126,     0,     0,     0,     0,     0,     0,
-     109,     0,    59,    96,    97,     0,    74,    76,    77,    78,
-       0,     0,     0,    52,     0,   175,    87,   132,     0,   125,
-     128,     0,   130,     0,   153,   156,   159,   155,     0,    86,
-       0,    82,    80,     0,    79,     0,    72,    73,     0,    53,
-     131,   127,   129,     0,   160,   161,   162,     0,    75,     0,
-      69,     0,   157,     0,   158,     0,    81,     0,   163,   164,
-       0,     0,    60,     0,    71
+     211,    35,    38,    32,    33,     0,     0,     0,     0,     0,
+     115,   116,   120,   183,   185,   187,   190,   191,   192,   189,
+     188,     0,   220,     0,     0,     0,     0,     0,     0,     0,
+      93,     0,     0,     0,   100,   167,     0,     0,    90,   213,
+     214,     0,     0,   207,   204,     0,    43,     0,   216,     0,
+      44,     0,   217,     0,   166,     0,   235,   236,     0,     0,
+     119,   238,   239,   237,     0,     0,   186,     0,     0,   166,
+     102,     0,   108,     0,   109,     0,   240,     0,     0,     0,
+       0,     0,     0,    92,    66,    27,     0,     0,     0,     0,
+       0,   168,   170,   172,   174,     0,   188,     0,     0,     0,
+       0,   207,   201,     0,   205,     0,     0,     0,     0,   193,
+       0,   147,   122,   142,   135,   149,   117,   118,   182,   184,
+     221,     0,     0,   194,   209,     0,     0,    99,     0,     0,
+     146,     0,    91,    19,     0,     0,     0,     0,    20,    21,
+      22,     0,     0,     0,    64,     0,    42,    56,   173,   181,
+       0,     0,     0,     0,     0,   224,   226,   227,   228,   229,
+     225,   230,   232,     0,     0,     0,   218,     0,     0,     0,
+       0,   202,     0,   208,   200,    45,     0,    46,     0,   138,
+     143,     0,     0,     0,     0,     0,     0,   121,   123,   125,
+     141,     0,     0,   140,     0,   151,   195,     0,   196,     0,
+     101,   103,   134,   241,     0,     0,     0,     0,     0,     0,
+       0,   222,     0,   220,     0,    63,    65,    68,    28,     0,
+       0,     0,    47,     0,     0,    49,    55,    57,    26,   180,
+     169,   171,   231,   233,     0,     0,   179,     0,   178,    89,
+       0,     0,   206,     0,   199,     0,   144,     0,     0,     0,
+       0,     0,     0,     0,     0,   148,   124,     0,     0,   139,
+       0,     0,   153,   197,   210,     0,     0,     0,     0,    95,
+     246,   247,   245,   244,    96,    94,     0,    67,     0,    83,
+      84,    85,    86,     0,     0,    70,    48,     0,    51,    50,
+       0,    54,     0,     0,   177,   219,     0,   203,   198,     0,
+       0,     0,     0,     0,     0,     0,     0,   136,   137,   150,
+     152,     0,   155,    61,     0,     0,    58,     0,     0,   223,
+       0,    24,    62,     0,     0,    23,     0,     0,     0,   175,
+       0,     0,     0,     0,   127,     0,     0,     0,     0,     0,
+       0,   110,     0,    59,    97,    98,     0,    74,    76,    77,
+      78,     0,     0,     0,    52,     0,   176,    88,   133,     0,
+     126,   129,     0,   131,     0,   154,   157,   160,   156,     0,
+      87,     0,    82,    80,     0,    79,     0,    72,    73,     0,
+      53,   132,   128,   130,     0,   161,   162,   163,     0,    75,
+       0,    69,     0,   158,     0,   159,     0,    81,     0,   164,
+     165,     0,     0,    60,     0,    71
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -222,  -222,  -222,  -222,  -222,  -222,  -222,  -222,  -130,  -222,
-     307,   170,  -222,  -222,  -221,  -222,  -222,  -222,  -222,  -222,
-    -222,    50,    32,  -222,  -222,  -222,  -222,  -222,  -222,  -222,
-    -222,  -222,  -222,  -222,  -222,   277,  -222,  -222,  -222,   381,
-     -20,  -222,  -222,  -222,   359,  -222,  -222,  -222,   216,   -82,
-    -222,   221,  -156,   -10,  -222,  -222,  -222,  -222,  -222,  -222,
-      23,  -222,  -222,    48,  -222,   -86,   258,   259,   323,   -21,
-     360,   367,   392,  -121,  -222,  -222,  -222,   314,  -222,   379,
-     317,  -198,  -176,   125,   -94,  -222,  -222,  -222,  -222,  -222,
-     -95,    -4,   106,  -222,  -222
+    -223,  -223,  -223,  -223,  -223,  -223,  -223,  -223,  -136,  -223,
+     286,   144,  -223,  -223,  -222,  -223,  -223,  -223,  -223,  -223,
+    -223,    20,     3,  -223,  -223,  -223,  -223,  -223,  -223,  -223,
+    -223,  -223,  -223,  -223,  -223,   251,  -223,  -223,  -223,   357,
+      -7,  -223,  -223,  -223,   339,  -223,  -223,  -223,   197,   -78,
+    -223,   201,  -156,    -9,  -223,  -223,  -223,  -223,  -223,  -223,
+      -5,  -223,  -223,    63,  -223,   -93,   239,   247,   307,   -21,
+     334,   340,   377,  -128,  -223,  -223,  -223,   311,  -223,   358,
+     313,  -198,  -168,   106,  -107,  -223,  -223,  -223,  -223,  -223,
+    -116,    -4,    88,  -223,  -223
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,    14,    15,    16,    17,    18,    19,    20,   165,   166,
-      88,   306,   307,   308,   218,   296,   297,   223,   364,   404,
-     458,   425,   426,   427,   428,   429,   361,   400,    21,    22,
+      88,   306,   307,   308,   218,   296,   297,   223,   365,   405,
+     459,   426,   427,   428,   429,   430,   362,   401,    21,    22,
      163,   290,    23,    24,   149,   150,    25,    26,    43,    44,
       27,    41,    89,    90,    91,   134,   267,   268,   269,   190,
-     273,   191,   259,   260,   192,   275,   342,   391,   420,   444,
-     445,   466,   474,   114,   115,   171,   172,   173,   174,   175,
+     273,   191,   259,   260,   192,   275,   342,   392,   421,   445,
+     446,   467,   475,   114,   115,   171,   172,   173,   174,   175,
       93,    94,    95,    96,    97,    98,   181,   182,   123,   124,
      185,   205,    99,   247,   100,   292,   244,   101,   139,   144,
      155,   102,   354,    28,    29
@@ -1010,234 +1010,218 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_uint16 yytable[] =
 {
-      33,   246,    45,   295,   277,   232,    51,    42,    46,    31,
-     232,    32,   193,    31,   232,    32,   451,   317,   232,   176,
-      92,   147,   178,   154,   136,   137,    55,   176,   213,   183,
-      57,    58,    59,    60,    61,   179,   381,   270,   452,   141,
-     142,   118,   183,   410,   412,   136,   137,   108,   122,   234,
-     235,   236,   237,   238,   239,   240,   241,   242,   243,   414,
-     136,   137,   136,   137,   416,   271,   131,   438,   441,   443,
-     136,   137,    39,   211,   176,   109,   176,   478,   299,   372,
-     211,   211,   210,   211,   230,   121,    50,   229,   140,    34,
-     318,   136,   137,   479,    45,   298,   211,    40,   180,   151,
-      46,   211,   156,   157,   211,   211,   211,   164,   167,   249,
-     300,    36,    10,   156,    92,   148,   180,   339,   301,   309,
-      35,    47,   456,   187,   392,   367,   153,   204,   291,   194,
-     453,    38,   433,   209,   197,   214,   272,   212,   176,   176,
-     143,   401,   388,   200,   374,   193,   189,   457,   288,   231,
-     148,   302,   323,    30,   167,   289,   219,   220,   215,   250,
-     303,   189,   253,   377,   304,     1,    10,     2,   330,    31,
-     261,    32,   350,   136,   137,   262,   305,    31,   116,    32,
-     263,   204,   195,   264,   464,   216,    46,   281,   117,    46,
-     176,    48,   348,    49,     3,   351,   352,   207,   345,   246,
-     265,   217,   151,   113,   258,   465,    37,   283,    52,     4,
-       5,    53,   206,    54,   261,     6,   353,   407,   293,   262,
-       7,   167,   315,   316,   263,    56,   266,   264,   322,   136,
-     137,   327,   378,   396,   380,   325,   382,     8,   384,   331,
-     397,   103,   328,    31,   265,    32,   104,   176,   326,   105,
-     332,   393,   394,   106,    46,   389,   333,     9,   344,   156,
-     136,   137,   194,    10,   398,   158,   159,   334,   107,    46,
-     138,   110,   176,    11,   312,   313,   314,   160,   161,    12,
-     405,    13,   111,   156,   411,   224,   225,   176,   415,   112,
-     417,   248,   211,   371,   113,   413,   136,   137,   278,   279,
-     369,   119,   376,   234,   235,   236,   237,   238,   239,   240,
-     241,   242,   243,   120,   136,   137,   176,   128,   176,   204,
-     176,   125,   176,   156,   437,   156,   439,   156,   440,   156,
-     442,   319,   320,   343,   279,   355,   356,   357,   358,   359,
-     360,   127,   156,   156,   176,   395,   211,   176,   126,   176,
-     129,   408,   460,   130,   293,   461,   132,   462,   469,   421,
-     211,   133,   422,   211,   436,   320,   449,   450,   470,   450,
-     476,   211,   481,   211,   135,   156,   477,   482,   211,   156,
-     480,   156,   153,   162,   177,   186,   435,   188,   208,    10,
-     221,   222,   232,   245,   233,   430,   254,   446,   255,   256,
-     274,   257,   434,   276,   282,   284,   285,   286,   287,   294,
-     324,   321,   329,   337,   338,   340,   341,   346,    31,    62,
-      32,    63,   347,   349,   147,   363,   454,   430,   362,   366,
-     365,   368,   373,   379,   375,    64,    65,   201,   383,   385,
-     399,   386,   446,   402,   467,   387,   430,    67,    68,   156,
-     390,   406,   418,   403,    69,    70,   419,   279,   423,   432,
-     431,    71,    72,    73,   447,   448,   459,   156,   202,    74,
-     473,   156,   483,   484,   227,    75,   471,   370,    76,   475,
-     463,   455,   468,   280,   336,   152,   472,   335,    77,    78,
-     310,   228,   311,   146,   196,   251,    79,    80,   252,   198,
-     409,     0,   184,   424,    31,    62,    32,    63,     0,    81,
-     168,   199,     0,     0,     0,    82,     0,     0,    83,    84,
-       0,    64,    65,     0,     0,     0,    85,     0,     0,     0,
-      86,     0,     0,    67,    68,    87,   203,     0,     0,     0,
-      69,    70,     0,     0,     0,     0,     0,    71,    72,    73,
-       0,     0,     0,     0,     0,    74,     0,     0,     0,     0,
-     169,    75,     0,     0,    76,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    77,    78,     0,     0,     0,     0,
-       0,     0,    79,    80,     0,     0,     0,     0,     0,    31,
-      62,    32,    63,     0,     0,    81,     0,     0,     0,     0,
-       0,    82,     0,     0,    83,    84,    64,    65,    66,     0,
-       0,     0,    85,     0,     0,     0,    86,     0,    67,    68,
-       0,   170,     0,     0,     0,    69,    70,     0,     0,     0,
-       0,     0,    71,    72,    73,     0,     0,     0,     0,     0,
-      74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
-      78,     0,     0,     0,     0,     0,     0,    79,    80,     0,
-       0,     0,     0,     0,    31,    62,    32,    63,     0,     0,
-      81,     0,     0,     0,     0,     0,    82,     0,     0,    83,
-      84,    64,    65,     0,     0,     0,     0,    85,     0,     0,
-       0,    86,     0,    67,    68,     0,    87,     0,     0,     0,
-      69,    70,     0,     0,     0,     0,     0,    71,    72,    73,
-       0,     0,     0,     0,     0,    74,     0,     0,     0,     0,
-       0,    75,     0,     0,    76,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    77,    78,     0,     0,     0,     0,
-       0,     0,    79,    80,     0,     0,     0,     0,     0,    31,
-      62,    32,    63,     0,     0,    81,     0,     0,     0,     0,
-       0,    82,     0,     0,    83,    84,    64,    65,     0,     0,
-       0,     0,    85,   121,     0,     0,    86,     0,    67,    68,
-       0,    87,     0,     0,     0,    69,    70,     0,     0,     0,
-       0,     0,    71,    72,    73,     0,     0,     0,     0,     0,
-      74,     0,     0,     0,     0,   169,    75,     0,     0,    76,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
-      78,     0,     0,     0,     0,     0,     0,    79,    80,     0,
-       0,     0,     0,     0,    31,    62,    32,    63,     0,     0,
-      81,     0,     0,     0,     0,     0,    82,     0,     0,    83,
-      84,    64,    65,     0,     0,     0,     0,    85,     0,     0,
-       0,    86,     0,    67,    68,     0,   170,     0,     0,     0,
-      69,    70,     0,     0,     0,     0,     0,    71,    72,    73,
-       0,     0,     0,     0,     0,    74,     0,     0,     0,     0,
-       0,    75,     0,     0,    76,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    77,    78,     0,     0,     0,     0,
-       0,     0,    79,    80,     0,     0,     0,     0,     0,    31,
-      62,    32,    63,     0,     0,    81,     0,     0,     0,     0,
-       0,    82,     0,     0,    83,    84,    64,   145,     0,     0,
-       0,     0,    85,     0,     0,     0,    86,     0,    67,    68,
-       0,    87,    62,     0,    63,    69,    70,     0,     0,     0,
-       0,     0,    71,    72,    73,     0,     0,     0,    64,   145,
-      74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
-      67,    68,     0,     0,     0,     0,     0,     0,    70,    77,
-      78,     0,     0,     0,    71,    72,    73,    79,    80,     0,
-       0,     0,    74,     0,     0,     0,     0,     0,     0,     0,
-      81,    76,     0,     0,     0,     0,    82,     0,     0,    83,
-      84,    77,    78,     0,    67,    68,     0,    85,     0,    79,
-      80,    86,    70,     0,     0,     0,    87,     0,    71,    72,
-      73,     0,    81,     0,     0,     0,    74,     0,    82,     0,
-       0,    83,    84,     0,     0,    76,     0,     0,     0,    85,
-       0,     0,     0,    86,     0,    77,   226,     0,     0,     0,
-       0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    81,     0,     0,     0,
-       0,     0,    82,     0,     0,    83,    84,     0,     0,     0,
-       0,     0,     0,    85,     0,     0,     0,    86
+      33,   178,   295,    45,   277,   193,   176,    42,    46,   246,
+      31,   147,    32,   452,   176,   232,   232,   232,   271,    51,
+      92,    31,   213,    32,   232,   317,    55,   154,   179,   183,
+      57,    58,    59,    60,    61,   453,   299,   270,   234,   235,
+     236,   237,   238,   239,   240,   241,   242,   243,   122,   136,
+     137,   136,   137,    50,   118,   183,   141,   142,   136,   137,
+      31,   176,    32,   176,   327,    34,   131,   382,   300,   214,
+     136,   137,   136,   137,    30,   328,   301,   230,   411,    10,
+     359,   360,   331,   413,    36,   479,   121,   258,   140,   298,
+     272,   229,   215,   332,    47,    45,   108,    35,   318,   151,
+      46,   480,   156,   157,   148,   211,   148,   164,   167,   302,
+     415,    38,   180,   156,    92,   291,   211,   339,   303,   216,
+     249,   211,   304,   187,   109,   176,   176,   204,   454,   194,
+     309,   393,   434,   368,   197,   305,   217,    37,   193,   153,
+     417,   402,   389,   200,   361,   439,   209,   330,   211,   231,
+     212,   189,   375,   189,   167,   323,   219,   220,   143,   250,
+     378,   350,   253,   180,    56,   442,   444,    39,    54,   261,
+     457,   348,   103,   288,   262,    10,   104,   176,   211,   263,
+     289,   204,   264,   211,   351,   352,    46,   281,   116,    46,
+     333,   345,    40,   397,   107,   458,   113,   195,   117,   265,
+     398,   334,   151,   211,   211,   206,   353,   283,   246,   136,
+     137,   379,   207,   381,   261,   383,   105,   385,   293,   262,
+     465,   167,   315,   316,   263,   106,   266,   264,   322,    52,
+     394,   395,    53,   373,   176,   325,   110,    31,    31,    32,
+      32,   466,   158,   159,   265,   136,   137,   112,   390,   326,
+      48,   399,    49,   111,    46,   136,   137,   113,   344,   156,
+     176,   125,   194,   119,   412,   138,   408,   120,   416,    46,
+     418,   312,   313,   314,   406,   176,   210,   211,   136,   137,
+     160,   161,   127,   156,   224,   225,   248,   211,   126,   414,
+     136,   137,   128,   372,   278,   279,   319,   320,   343,   279,
+     370,   129,   377,   130,   176,   132,   176,   133,   176,   186,
+     176,   135,   355,   356,   357,   358,   396,   211,   438,   204,
+     440,   162,   441,   156,   443,   156,   153,   156,   177,   156,
+     422,   211,   176,   423,   211,   176,   188,   176,   470,   437,
+     320,   208,   156,   156,   450,   451,   461,    10,   221,   462,
+     232,   463,   409,   233,   293,   245,   478,   254,   471,   451,
+     481,   477,   211,   482,   211,   483,   211,   222,     1,   255,
+       2,   256,   257,   276,   274,   282,   156,   284,   294,   285,
+     156,   286,   156,   287,   321,   324,   329,   436,   337,   338,
+     340,   341,   346,   347,   349,   147,   431,     3,   447,   363,
+     364,   366,   367,   435,   369,   374,   387,   376,   380,   384,
+     386,   388,     4,     5,   400,   391,   407,   279,     6,    31,
+      62,    32,    63,     7,   419,   403,   404,   455,   431,   420,
+     424,   433,   432,   448,   449,   460,    64,    65,   201,   474,
+       8,   464,   484,   447,   485,   468,   472,   431,    67,    68,
+     156,   371,   456,   227,   469,    69,    70,   280,   476,   473,
+       9,   152,    71,    72,    73,   336,    10,   335,   156,   202,
+      74,   310,   156,   198,   196,   228,    75,    11,   146,    76,
+     311,   184,   410,    12,   199,    13,   425,     0,     0,    77,
+      78,     0,   251,     0,   252,     0,     0,    79,    80,     0,
+       0,     0,     0,     0,     0,    31,    62,    32,    63,     0,
+      81,   168,     0,     0,     0,     0,     0,    82,     0,     0,
+      83,    84,    64,    65,     0,     0,     0,     0,    85,     0,
+       0,     0,    86,     0,    67,    68,     0,    87,   203,     0,
+       0,    69,    70,     0,     0,     0,     0,     0,    71,    72,
+      73,     0,     0,     0,     0,     0,    74,     0,     0,     0,
+       0,   169,    75,     0,     0,    76,     0,     0,    31,    62,
+      32,    63,     0,     0,     0,    77,    78,     0,     0,     0,
+       0,     0,     0,    79,    80,    64,    65,    66,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,    67,    68,     0,
+       0,     0,     0,    82,    69,    70,    83,    84,     0,     0,
+       0,    71,    72,    73,    85,     0,     0,     0,    86,    74,
+       0,     0,     0,   170,     0,    75,     0,     0,    76,     0,
+       0,    31,    62,    32,    63,     0,     0,     0,    77,    78,
+       0,     0,     0,     0,     0,     0,    79,    80,    64,    65,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
+      67,    68,     0,     0,     0,     0,    82,    69,    70,    83,
+      84,     0,     0,     0,    71,    72,    73,    85,     0,     0,
+       0,    86,    74,     0,     0,     0,    87,     0,    75,     0,
+       0,    76,     0,     0,    31,    62,    32,    63,     0,     0,
+       0,    77,    78,     0,     0,     0,     0,     0,     0,    79,
+      80,    64,    65,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    81,    67,    68,     0,     0,     0,     0,    82,
+      69,    70,    83,    84,     0,     0,     0,    71,    72,    73,
+      85,   121,     0,     0,    86,    74,     0,     0,     0,    87,
+     169,    75,     0,     0,    76,     0,     0,    31,    62,    32,
+      63,     0,     0,     0,    77,    78,     0,     0,     0,     0,
+       0,     0,    79,    80,    64,    65,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    81,    67,    68,     0,     0,
+       0,     0,    82,    69,    70,    83,    84,     0,     0,     0,
+      71,    72,    73,    85,     0,     0,     0,    86,    74,     0,
+       0,     0,   170,     0,    75,     0,     0,    76,     0,     0,
+      31,    62,    32,    63,     0,     0,     0,    77,    78,     0,
+       0,     0,     0,     0,     0,    79,    80,    64,   145,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,    67,
+      68,     0,     0,     0,     0,    82,    69,    70,    83,    84,
+       0,     0,     0,    71,    72,    73,    85,     0,     0,     0,
+      86,    74,     0,     0,     0,    87,     0,    75,     0,     0,
+      76,     0,     0,     0,    62,     0,    63,     0,     0,     0,
+      77,    78,     0,     0,     0,     0,     0,     0,    79,    80,
+      64,   145,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    81,    67,    68,     0,     0,     0,     0,    82,     0,
+      70,    83,    84,     0,     0,     0,    71,    72,    73,    85,
+       0,     0,     0,    86,    74,     0,     0,     0,    87,     0,
+       0,    67,    68,    76,     0,     0,     0,     0,     0,    70,
+       0,     0,     0,    77,    78,    71,    72,    73,     0,     0,
+       0,    79,    80,    74,     0,     0,     0,     0,     0,     0,
+       0,     0,    76,     0,    81,     0,     0,     0,     0,     0,
+       0,    82,    77,   226,    83,    84,     0,     0,     0,     0,
+      79,     0,    85,     0,     0,     0,    86,     0,     0,     0,
+       0,     0,     0,    81,     0,     0,     0,     0,     0,     0,
+      82,     0,     0,    83,    84,     0,     0,     0,     0,     0,
+       0,    85,     0,     0,     0,    86,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,     0,   136,   137
 };
 
 static const yytype_int16 yycheck[] =
 {
-       4,   177,    12,   224,   202,     8,    26,    11,    12,     4,
-       8,     6,   133,     4,     8,     6,     7,    10,     8,   113,
-      41,    27,   117,   105,    21,    22,    30,   121,   158,    57,
-      34,    35,    36,    37,    38,   121,    86,   193,    29,    23,
-      24,    61,    57,    86,    86,    21,    22,    28,    69,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    86,
-      21,    22,    21,    22,    86,    36,    87,    86,    86,    86,
-      21,    22,    29,   123,   168,    56,   170,    63,    10,     9,
-     123,   123,   122,   123,   170,   113,    73,   169,    92,    71,
-      83,    21,    22,    79,   104,   225,   123,    54,   113,   103,
-     104,   123,   106,   107,   123,   123,   123,   111,   112,   103,
-      42,    66,    99,   117,   135,   121,   113,   273,    50,   122,
-     102,     0,    69,   127,   122,   301,   121,   148,   222,   133,
-     121,    76,   122,   153,   138,    42,   107,   157,   232,   233,
-     124,   362,   340,   147,   320,   266,   122,    94,    52,   170,
-     121,    83,   103,   102,   158,    59,   160,   161,    65,   180,
-      92,   122,   183,   122,    96,     1,    99,     3,   263,     4,
-      67,     6,    62,    21,    22,    72,   108,     4,   111,     6,
-      77,   202,   134,    80,    32,    92,   190,   208,   121,   193,
-     284,   117,   287,   119,    30,    85,    86,   149,   284,   375,
-      97,   108,   206,   114,    31,    53,   102,   211,   117,    45,
-      46,   120,   123,     3,    67,    51,   106,     9,   222,    72,
-      56,   225,   243,   244,    77,    66,   123,    80,   249,    21,
-      22,    77,   327,    52,   329,   256,   331,    73,   333,    77,
-      59,   100,    88,     4,    97,     6,   123,   341,   258,    31,
-      88,   346,   347,   121,   258,   341,    77,    93,   279,   263,
-      21,    22,   266,    99,   358,    43,    44,    88,    76,   273,
-      31,     5,   366,   109,    17,    18,    19,    43,    44,   115,
-     366,   117,    86,   287,   379,   122,   123,   381,   383,   121,
-     385,   122,   123,   314,   114,   381,    21,    22,   122,   123,
-     304,     7,   323,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,     7,    21,    22,   410,     5,   412,   340,
-     414,   121,   416,   327,   410,   329,   412,   331,   414,   333,
-     416,   122,   123,   122,   123,   122,   123,   122,   123,    37,
-      38,   121,   346,   347,   438,   122,   123,   441,    75,   443,
-     121,   372,   438,    75,   358,   441,     5,   443,   453,   122,
-     123,    66,   122,   123,   122,   123,   122,   123,   122,   123,
-     122,   123,   122,   123,   123,   379,   471,   122,   123,   383,
-     475,   385,   121,   115,   121,     7,   407,     7,    11,    99,
-     121,   121,     8,    20,     9,   399,    58,   418,   122,    66,
-      68,   122,   406,   122,   122,   121,    78,    78,   121,   110,
-      58,   111,    77,     7,     7,    39,    70,   121,     4,     5,
-       6,     7,   121,     5,    27,   115,   430,   431,   123,   121,
-      83,    78,    83,    77,   121,    21,    22,    23,    77,    77,
-     121,    91,   463,    35,   448,    91,   450,    33,    34,   453,
-      87,   121,    39,    89,    40,    41,    81,   123,     5,    39,
-     121,    47,    48,    49,     7,    96,   122,   471,    54,    55,
-      84,   475,    90,     7,   167,    61,   121,   307,    64,   121,
-     123,   431,   450,   206,   268,   104,   463,   266,    74,    75,
-     232,   168,   233,   101,   135,   181,    82,    83,   181,   139,
-     375,    -1,   123,   397,     4,     5,     6,     7,    -1,    95,
-      10,   144,    -1,    -1,    -1,   101,    -1,    -1,   104,   105,
-      -1,    21,    22,    -1,    -1,    -1,   112,    -1,    -1,    -1,
-     116,    -1,    -1,    33,    34,   121,   122,    -1,    -1,    -1,
-      40,    41,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
-      -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,
-      60,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
-      -1,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,     4,
-       5,     6,     7,    -1,    -1,    95,    -1,    -1,    -1,    -1,
-      -1,   101,    -1,    -1,   104,   105,    21,    22,    23,    -1,
-      -1,    -1,   112,    -1,    -1,    -1,   116,    -1,    33,    34,
-      -1,   121,    -1,    -1,    -1,    40,    41,    -1,    -1,    -1,
-      -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
-      55,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,
-      -1,    -1,    -1,    -1,     4,     5,     6,     7,    -1,    -1,
-      95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,   104,
-     105,    21,    22,    -1,    -1,    -1,    -1,   112,    -1,    -1,
-      -1,   116,    -1,    33,    34,    -1,   121,    -1,    -1,    -1,
-      40,    41,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
-      -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,
-      -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
-      -1,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,     4,
-       5,     6,     7,    -1,    -1,    95,    -1,    -1,    -1,    -1,
-      -1,   101,    -1,    -1,   104,   105,    21,    22,    -1,    -1,
-      -1,    -1,   112,   113,    -1,    -1,   116,    -1,    33,    34,
-      -1,   121,    -1,    -1,    -1,    40,    41,    -1,    -1,    -1,
-      -1,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
-      55,    -1,    -1,    -1,    -1,    60,    61,    -1,    -1,    64,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,
-      -1,    -1,    -1,    -1,     4,     5,     6,     7,    -1,    -1,
-      95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,   104,
-     105,    21,    22,    -1,    -1,    -1,    -1,   112,    -1,    -1,
-      -1,   116,    -1,    33,    34,    -1,   121,    -1,    -1,    -1,
-      40,    41,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
-      -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,
-      -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
-      -1,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,     4,
-       5,     6,     7,    -1,    -1,    95,    -1,    -1,    -1,    -1,
-      -1,   101,    -1,    -1,   104,   105,    21,    22,    -1,    -1,
-      -1,    -1,   112,    -1,    -1,    -1,   116,    -1,    33,    34,
-      -1,   121,     5,    -1,     7,    40,    41,    -1,    -1,    -1,
-      -1,    -1,    47,    48,    49,    -1,    -1,    -1,    21,    22,
-      55,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    41,    74,
-      75,    -1,    -1,    -1,    47,    48,    49,    82,    83,    -1,
-      -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      95,    64,    -1,    -1,    -1,    -1,   101,    -1,    -1,   104,
-     105,    74,    75,    -1,    33,    34,    -1,   112,    -1,    82,
-      83,   116,    41,    -1,    -1,    -1,   121,    -1,    47,    48,
-      49,    -1,    95,    -1,    -1,    -1,    55,    -1,   101,    -1,
-      -1,   104,   105,    -1,    -1,    64,    -1,    -1,    -1,   112,
-      -1,    -1,    -1,   116,    -1,    74,    75,    -1,    -1,    -1,
-      -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,
-      -1,    -1,   101,    -1,    -1,   104,   105,    -1,    -1,    -1,
-      -1,    -1,    -1,   112,    -1,    -1,    -1,   116
+       4,   117,   224,    12,   202,   133,   113,    11,    12,   177,
+       4,    27,     6,     7,   121,     8,     8,     8,    36,    26,
+      41,     4,   158,     6,     8,    10,    30,   105,   121,    57,
+      34,    35,    36,    37,    38,    29,    10,   193,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    69,    21,
+      22,    21,    22,    73,    61,    57,    23,    24,    21,    22,
+       4,   168,     6,   170,    77,    71,    87,    86,    42,    42,
+      21,    22,    21,    22,   103,    88,    50,   170,    86,    99,
+      37,    38,    77,    86,    66,    63,   114,    31,    92,   225,
+     108,   169,    65,    88,     0,   104,    28,   103,    83,   103,
+     104,    79,   106,   107,   122,   124,   122,   111,   112,    83,
+      86,    76,   114,   117,   135,   222,   124,   273,    92,    92,
+     104,   124,    96,   127,    56,   232,   233,   148,   122,   133,
+     123,   123,   123,   301,   138,   109,   109,   103,   266,   122,
+      86,   363,   340,   147,   101,    86,   153,   263,   124,   170,
+     157,   123,   320,   123,   158,   104,   160,   161,   125,   180,
+     123,    62,   183,   114,    66,    86,    86,    29,     3,    67,
+      69,   287,   100,    52,    72,    99,   124,   284,   124,    77,
+      59,   202,    80,   124,    85,    86,   190,   208,   112,   193,
+      77,   284,    54,    52,    76,    94,   115,   134,   122,    97,
+      59,    88,   206,   124,   124,   124,   107,   211,   376,    21,
+      22,   327,   149,   329,    67,   331,    31,   333,   222,    72,
+      32,   225,   243,   244,    77,   122,   124,    80,   249,   118,
+     346,   347,   121,     9,   341,   256,     5,     4,     4,     6,
+       6,    53,    43,    44,    97,    21,    22,   122,   341,   258,
+     118,   358,   120,    86,   258,    21,    22,   115,   279,   263,
+     367,   122,   266,     7,   380,    31,     9,     7,   384,   273,
+     386,    17,    18,    19,   367,   382,   123,   124,    21,    22,
+      43,    44,   122,   287,   123,   124,   123,   124,    75,   382,
+      21,    22,     5,   314,   123,   124,   123,   124,   123,   124,
+     304,   122,   323,    75,   411,     5,   413,    66,   415,     7,
+     417,   124,   123,   124,   123,   124,   123,   124,   411,   340,
+     413,   116,   415,   327,   417,   329,   122,   331,   122,   333,
+     123,   124,   439,   123,   124,   442,     7,   444,   454,   123,
+     124,    11,   346,   347,   123,   124,   439,    99,   122,   442,
+       8,   444,   373,     9,   358,    20,   472,    58,   123,   124,
+     476,   123,   124,   123,   124,   123,   124,   122,     1,   123,
+       3,    66,   123,   123,    68,   123,   380,   122,   111,    78,
+     384,    78,   386,   122,   112,    58,    77,   408,     7,     7,
+      39,    70,   122,   122,     5,    27,   400,    30,   419,   124,
+     116,    83,   122,   407,    78,    83,    91,   122,    77,    77,
+      77,    91,    45,    46,   122,    87,   122,   124,    51,     4,
+       5,     6,     7,    56,    39,    35,    89,   431,   432,    81,
+       5,    39,   122,     7,    96,   123,    21,    22,    23,    84,
+      73,   124,    90,   464,     7,   449,   122,   451,    33,    34,
+     454,   307,   432,   167,   451,    40,    41,   206,   122,   464,
+      93,   104,    47,    48,    49,   268,    99,   266,   472,    54,
+      55,   232,   476,   139,   135,   168,    61,   110,   101,    64,
+     233,   123,   376,   116,   144,   118,   398,    -1,    -1,    74,
+      75,    -1,   181,    -1,   181,    -1,    -1,    82,    83,    -1,
+      -1,    -1,    -1,    -1,    -1,     4,     5,     6,     7,    -1,
+      95,    10,    -1,    -1,    -1,    -1,    -1,   102,    -1,    -1,
+     105,   106,    21,    22,    -1,    -1,    -1,    -1,   113,    -1,
+      -1,    -1,   117,    -1,    33,    34,    -1,   122,   123,    -1,
+      -1,    40,    41,    -1,    -1,    -1,    -1,    -1,    47,    48,
+      49,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
+      -1,    60,    61,    -1,    -1,    64,    -1,    -1,     4,     5,
+       6,     7,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
+      -1,    -1,    -1,    82,    83,    21,    22,    23,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    95,    33,    34,    -1,
+      -1,    -1,    -1,   102,    40,    41,   105,   106,    -1,    -1,
+      -1,    47,    48,    49,   113,    -1,    -1,    -1,   117,    55,
+      -1,    -1,    -1,   122,    -1,    61,    -1,    -1,    64,    -1,
+      -1,     4,     5,     6,     7,    -1,    -1,    -1,    74,    75,
+      -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    21,    22,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
+      33,    34,    -1,    -1,    -1,    -1,   102,    40,    41,   105,
+     106,    -1,    -1,    -1,    47,    48,    49,   113,    -1,    -1,
+      -1,   117,    55,    -1,    -1,    -1,   122,    -1,    61,    -1,
+      -1,    64,    -1,    -1,     4,     5,     6,     7,    -1,    -1,
+      -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,
+      83,    21,    22,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    95,    33,    34,    -1,    -1,    -1,    -1,   102,
+      40,    41,   105,   106,    -1,    -1,    -1,    47,    48,    49,
+     113,   114,    -1,    -1,   117,    55,    -1,    -1,    -1,   122,
+      60,    61,    -1,    -1,    64,    -1,    -1,     4,     5,     6,
+       7,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
+      -1,    -1,    82,    83,    21,    22,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    95,    33,    34,    -1,    -1,
+      -1,    -1,   102,    40,    41,   105,   106,    -1,    -1,    -1,
+      47,    48,    49,   113,    -1,    -1,    -1,   117,    55,    -1,
+      -1,    -1,   122,    -1,    61,    -1,    -1,    64,    -1,    -1,
+       4,     5,     6,     7,    -1,    -1,    -1,    74,    75,    -1,
+      -1,    -1,    -1,    -1,    -1,    82,    83,    21,    22,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,    33,
+      34,    -1,    -1,    -1,    -1,   102,    40,    41,   105,   106,
+      -1,    -1,    -1,    47,    48,    49,   113,    -1,    -1,    -1,
+     117,    55,    -1,    -1,    -1,   122,    -1,    61,    -1,    -1,
+      64,    -1,    -1,    -1,     5,    -1,     7,    -1,    -1,    -1,
+      74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83,
+      21,    22,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    95,    33,    34,    -1,    -1,    -1,    -1,   102,    -1,
+      41,   105,   106,    -1,    -1,    -1,    47,    48,    49,   113,
+      -1,    -1,    -1,   117,    55,    -1,    -1,    -1,   122,    -1,
+      -1,    33,    34,    64,    -1,    -1,    -1,    -1,    -1,    41,
+      -1,    -1,    -1,    74,    75,    47,    48,    49,    -1,    -1,
+      -1,    82,    83,    55,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    64,    -1,    95,    -1,    -1,    -1,    -1,    -1,
+      -1,   102,    74,    75,   105,   106,    -1,    -1,    -1,    -1,
+      82,    -1,   113,    -1,    -1,    -1,   117,    -1,    -1,    -1,
+      -1,    -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
+     102,    -1,    -1,   105,   106,    -1,    -1,    -1,    -1,    -1,
+      -1,   113,    -1,    -1,    -1,   117,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    -1,    21,    22
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1245,84 +1229,85 @@ static const yytype_int16 yycheck[] =
 static const yytype_uint8 yystos[] =
 {
        0,     1,     3,    30,    45,    46,    51,    56,    73,    93,
-      99,   109,   115,   117,   126,   127,   128,   129,   130,   131,
-     132,   153,   154,   157,   158,   161,   162,   165,   218,   219,
-     102,     4,     6,   216,    71,   102,    66,   102,    76,    29,
-      54,   166,   216,   163,   164,   178,   216,     0,   117,   119,
-      73,   165,   117,   120,     3,   216,    66,   216,   216,   216,
-     216,   216,     5,     7,    21,    22,    23,    33,    34,    40,
+      99,   110,   116,   118,   127,   128,   129,   130,   131,   132,
+     133,   154,   155,   158,   159,   162,   163,   166,   219,   220,
+     103,     4,     6,   217,    71,   103,    66,   103,    76,    29,
+      54,   167,   217,   164,   165,   179,   217,     0,   118,   120,
+      73,   166,   118,   121,     3,   217,    66,   217,   217,   217,
+     217,   217,     5,     7,    21,    22,    23,    33,    34,    40,
       41,    47,    48,    49,    55,    61,    64,    74,    75,    82,
-      83,    95,   101,   104,   105,   112,   116,   121,   135,   167,
-     168,   169,   194,   195,   196,   197,   198,   199,   200,   207,
-     209,   212,   216,   100,   123,    31,   121,    76,    28,    56,
-       5,    86,   121,   114,   188,   189,   111,   121,   165,     7,
-       7,   113,   194,   203,   204,   121,    75,   121,     5,   121,
-      75,   194,     5,    66,   170,   123,    21,    22,    31,   213,
-     216,    23,    24,   124,   214,    22,   197,    27,   121,   159,
-     160,   216,   164,   121,   174,   215,   216,   216,    43,    44,
-      43,    44,   115,   155,   216,   133,   134,   216,    10,    60,
-     121,   190,   191,   192,   193,   194,   209,   121,   215,   190,
-     113,   201,   202,    57,   204,   205,     7,   216,     7,   122,
-     174,   176,   179,   198,   216,   188,   169,   216,   195,   196,
-     216,    23,    54,   122,   194,   206,   123,   188,    11,   165,
-     122,   123,   165,   133,    42,    65,    92,   108,   139,   216,
-     216,   121,   121,   142,   122,   123,    75,   135,   193,   174,
-     190,   194,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,   211,    20,   207,   208,   122,   103,
-     194,   202,   205,   194,    58,   122,    66,   122,    31,   177,
-     178,    67,    72,    77,    80,    97,   123,   171,   172,   173,
-     177,    36,   107,   175,    68,   180,   122,   206,   122,   123,
-     160,   194,   122,   216,   121,    78,    78,   121,    52,    59,
-     156,   209,   210,   216,   110,   139,   140,   141,   133,    10,
-      42,    50,    83,    92,    96,   108,   136,   137,   138,   122,
-     191,   192,    17,    18,    19,   194,   194,    10,    83,   122,
-     123,   111,   194,   103,    58,   194,   178,    77,    88,    77,
-     215,    77,    88,    77,    88,   176,   173,     7,     7,   177,
-      39,    70,   181,   122,   194,   190,   121,   121,   215,     5,
-      62,    85,    86,   106,   217,   122,   123,   122,   123,    37,
-      38,   151,   123,   115,   143,    83,   121,   207,    78,   216,
-     136,   194,     9,    83,   207,   121,   194,   122,   215,    77,
-     215,    86,   215,    77,   215,    77,    91,    91,   206,   190,
-      87,   182,   122,   215,   215,   122,    52,    59,   209,   121,
-     152,   139,    35,    89,   144,   190,   121,     9,   194,   208,
-      86,   215,    86,   190,    86,   215,    86,   215,    39,    81,
-     183,   122,   122,     5,   217,   146,   147,   148,   149,   150,
-     216,   121,    39,   122,   216,   194,   122,   190,    86,   190,
-     190,    86,   190,    86,   184,   185,   194,     7,    96,   122,
-     123,     7,    29,   121,   216,   146,    69,    94,   145,   122,
-     190,   190,   190,   123,    32,    53,   186,   216,   147,   215,
-     122,   121,   185,    84,   187,   121,   122,   215,    63,    79,
-     215,   122,   122,    90,     7
+      83,    95,   102,   105,   106,   113,   117,   122,   136,   168,
+     169,   170,   195,   196,   197,   198,   199,   200,   201,   208,
+     210,   213,   217,   100,   124,    31,   122,    76,    28,    56,
+       5,    86,   122,   115,   189,   190,   112,   122,   166,     7,
+       7,   114,   195,   204,   205,   122,    75,   122,     5,   122,
+      75,   195,     5,    66,   171,   124,    21,    22,    31,   214,
+     217,    23,    24,   125,   215,    22,   198,    27,   122,   160,
+     161,   217,   165,   122,   175,   216,   217,   217,    43,    44,
+      43,    44,   116,   156,   217,   134,   135,   217,    10,    60,
+     122,   191,   192,   193,   194,   195,   210,   122,   216,   191,
+     114,   202,   203,    57,   205,   206,     7,   217,     7,   123,
+     175,   177,   180,   199,   217,   189,   170,   217,   196,   197,
+     217,    23,    54,   123,   195,   207,   124,   189,    11,   166,
+     123,   124,   166,   134,    42,    65,    92,   109,   140,   217,
+     217,   122,   122,   143,   123,   124,    75,   136,   194,   175,
+     191,   195,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,   212,    20,   208,   209,   123,   104,
+     195,   203,   206,   195,    58,   123,    66,   123,    31,   178,
+     179,    67,    72,    77,    80,    97,   124,   172,   173,   174,
+     178,    36,   108,   176,    68,   181,   123,   207,   123,   124,
+     161,   195,   123,   217,   122,    78,    78,   122,    52,    59,
+     157,   210,   211,   217,   111,   140,   141,   142,   134,    10,
+      42,    50,    83,    92,    96,   109,   137,   138,   139,   123,
+     192,   193,    17,    18,    19,   195,   195,    10,    83,   123,
+     124,   112,   195,   104,    58,   195,   179,    77,    88,    77,
+     216,    77,    88,    77,    88,   177,   174,     7,     7,   178,
+      39,    70,   182,   123,   195,   191,   122,   122,   216,     5,
+      62,    85,    86,   107,   218,   123,   124,   123,   124,    37,
+      38,   101,   152,   124,   116,   144,    83,   122,   208,    78,
+     217,   137,   195,     9,    83,   208,   122,   195,   123,   216,
+      77,   216,    86,   216,    77,   216,    77,    91,    91,   207,
+     191,    87,   183,   123,   216,   216,   123,    52,    59,   210,
+     122,   153,   140,    35,    89,   145,   191,   122,     9,   195,
+     209,    86,   216,    86,   191,    86,   216,    86,   216,    39,
+      81,   184,   123,   123,     5,   218,   147,   148,   149,   150,
+     151,   217,   122,    39,   123,   217,   195,   123,   191,    86,
+     191,   191,    86,   191,    86,   185,   186,   195,     7,    96,
+     123,   124,     7,    29,   122,   217,   147,    69,    94,   146,
+     123,   191,   191,   191,   124,    32,    53,   187,   217,   148,
+     216,   123,   122,   186,    84,   188,   122,   123,   216,    63,
+      79,   216,   123,   123,    90,     7
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,   125,   126,   126,   126,   126,   126,   126,   127,   127,
-     127,   127,   127,   127,   127,   127,   127,   127,   128,   129,
-     129,   129,   129,   130,   131,   132,   133,   134,   134,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   136,   136,   136,
-     136,   136,   136,   136,   137,   137,   138,   138,   139,   139,
-     139,   139,   140,   140,   141,   141,   142,   142,   143,   143,
-     144,   144,   145,   145,   146,   146,   147,   147,   147,   148,
-     148,   149,   150,   151,   151,   152,   152,   153,   153,   153,
-     153,   154,   155,   155,   156,   156,   156,   156,   157,   158,
-     159,   159,   160,   161,   161,   162,   163,   163,   164,   165,
-     166,   166,   166,   167,   167,   168,   168,   169,   169,   169,
-     170,   171,   171,   172,   172,   173,   173,   173,   173,   173,
-     173,   173,   173,   174,   175,   175,   175,   176,   176,   176,
-     176,   176,   177,   177,   178,   178,   179,   179,   180,   180,
-     181,   181,   182,   182,   183,   183,   184,   184,   185,   186,
-     186,   186,   187,   187,   187,   188,   188,   189,   190,   190,
-     191,   191,   192,   192,   193,   193,   193,   193,   193,   193,
-     193,   194,   194,   195,   195,   196,   196,   197,   197,   197,
-     197,   197,   197,   198,   198,   198,   198,   199,   200,   200,
-     201,   201,   202,   203,   203,   204,   205,   205,   206,   206,
-     207,   207,   207,   207,   207,   207,   207,   208,   208,   209,
-     209,   210,   210,   211,   211,   211,   211,   211,   211,   211,
-     211,   211,   211,   212,   213,   213,   214,   214,   214,   215,
-     215,   216,   216,   217,   217,   217,   217,   218,   219,   219
+       0,   126,   127,   127,   127,   127,   127,   127,   128,   128,
+     128,   128,   128,   128,   128,   128,   128,   128,   129,   130,
+     130,   130,   130,   131,   132,   133,   134,   135,   135,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   137,   137,   137,
+     137,   137,   137,   137,   138,   138,   139,   139,   140,   140,
+     140,   140,   141,   141,   142,   142,   143,   143,   144,   144,
+     145,   145,   146,   146,   147,   147,   148,   148,   148,   149,
+     149,   150,   151,   152,   152,   152,   153,   153,   154,   154,
+     154,   154,   155,   156,   156,   157,   157,   157,   157,   158,
+     159,   160,   160,   161,   162,   162,   163,   164,   164,   165,
+     166,   167,   167,   167,   168,   168,   169,   169,   170,   170,
+     170,   171,   172,   172,   173,   173,   174,   174,   174,   174,
+     174,   174,   174,   174,   175,   176,   176,   176,   177,   177,
+     177,   177,   177,   178,   178,   179,   179,   180,   180,   181,
+     181,   182,   182,   183,   183,   184,   184,   185,   185,   186,
+     187,   187,   187,   188,   188,   188,   189,   189,   190,   191,
+     191,   192,   192,   193,   193,   194,   194,   194,   194,   194,
+     194,   194,   195,   195,   196,   196,   197,   197,   198,   198,
+     198,   198,   198,   198,   199,   199,   199,   199,   200,   201,
+     201,   202,   202,   203,   204,   204,   205,   206,   206,   207,
+     207,   208,   208,   208,   208,   208,   208,   208,   209,   209,
+     210,   210,   211,   211,   212,   212,   212,   212,   212,   212,
+     212,   212,   212,   212,   213,   214,   214,   215,   215,   215,
+     216,   216,   217,   217,   218,   218,   218,   218,   219,   220,
+     220
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1336,23 +1321,24 @@ static const yytype_uint8 yyr2[] =
        2,     2,     4,     5,     2,     1,     0,     1,     4,     5,
       10,     4,     3,     1,     0,     1,     0,     3,     0,     5,
        0,     8,     1,     1,     1,     3,     1,     1,     1,     2,
-       2,     4,     2,     1,     1,     0,     3,    10,     7,     4,
-       5,     5,     0,     4,     2,     2,     4,     4,     5,     4,
-       3,     1,     3,     1,     2,     2,     1,     3,     3,     9,
-       0,     1,     1,     1,     1,     1,     3,     3,     2,     1,
-       3,     0,     1,     2,     1,     5,     4,     6,     5,     6,
-       5,     6,     5,     3,     0,     3,     3,     2,     3,     2,
-       2,     1,     1,     2,     1,     4,     1,     3,     0,     3,
-       0,     2,     0,     3,     0,     2,     1,     3,     3,     0,
-       1,     1,     0,     2,     2,     0,     1,     2,     3,     1,
-       3,     1,     2,     1,     5,     6,     4,     3,     3,     3,
-       2,     3,     1,     3,     1,     2,     1,     1,     1,     1,
-       1,     1,     3,     3,     4,     4,     5,     6,     5,     4,
-       1,     2,     4,     1,     2,     4,     0,     2,     1,     3,
-       1,     1,     2,     2,     1,     2,     2,     1,     3,     1,
-       3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
-       2,     1,     2,     1,     1,     1,     1,     1,     1,     1,
-       3,     1,     1,     1,     1,     1,     1,     2,     2,     0
+       2,     4,     2,     1,     1,     1,     0,     3,    10,     7,
+       4,     5,     5,     0,     4,     2,     2,     4,     4,     5,
+       4,     3,     1,     3,     1,     2,     2,     1,     3,     3,
+       9,     0,     1,     1,     1,     1,     1,     3,     3,     2,
+       1,     3,     0,     1,     2,     1,     5,     4,     6,     5,
+       6,     5,     6,     5,     3,     0,     3,     3,     2,     3,
+       2,     2,     1,     1,     2,     1,     4,     1,     3,     0,
+       3,     0,     2,     0,     3,     0,     2,     1,     3,     3,
+       0,     1,     1,     0,     2,     2,     0,     1,     2,     3,
+       1,     3,     1,     2,     1,     5,     6,     4,     3,     3,
+       3,     2,     3,     1,     3,     1,     2,     1,     1,     1,
+       1,     1,     1,     3,     3,     4,     4,     5,     6,     5,
+       4,     1,     2,     4,     1,     2,     4,     0,     2,     1,
+       3,     1,     1,     2,     2,     1,     2,     2,     1,     3,
+       1,     3,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     2,     1,     2,     1,     1,     1,     1,     1,     1,
+       1,     3,     1,     1,     1,     1,     1,     1,     2,     2,
+       0
 };
 
 
@@ -1849,893 +1835,893 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
   switch (yytype)
     {
           case 3: /* TOKEN_COMMAND  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 1859 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1845 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 4: /* TOKEN_NAME  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 1869 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1855 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 5: /* TOKEN_STRING_SINGLE_QUOTED  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 1879 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1865 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 6: /* TOKEN_STRING_DOUBLE_QUOTED  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 1889 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1875 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
     case 7: /* TOKEN_UNSIGNED_NUMVAL  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).numeric_literal_value_) != nullptr) {
     delete ((*yyvaluep).numeric_literal_value_);
   }
 }
-#line 1899 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1885 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 127: /* sql_statement  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 128: /* sql_statement  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).statement_) != nullptr) {
     delete ((*yyvaluep).statement_);
   }
 }
-#line 1909 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1895 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 128: /* quit_statement  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 129: /* quit_statement  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).quit_statement_) != nullptr) {
     delete ((*yyvaluep).quit_statement_);
   }
 }
-#line 1919 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1905 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 129: /* alter_table_statement  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 130: /* alter_table_statement  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).statement_) != nullptr) {
     delete ((*yyvaluep).statement_);
   }
 }
-#line 1929 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1915 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 130: /* create_table_statement  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 131: /* create_table_statement  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).create_table_statement_) != nullptr) {
     delete ((*yyvaluep).create_table_statement_);
   }
 }
-#line 1939 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1925 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 131: /* create_index_statement  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 132: /* create_index_statement  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).statement_) != nullptr) {
     delete ((*yyvaluep).statement_);
   }
 }
-#line 1949 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1935 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 132: /* drop_table_statement  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 133: /* drop_table_statement  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).drop_table_statement_) != nullptr) {
     delete ((*yyvaluep).drop_table_statement_);
   }
 }
-#line 1959 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1945 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 133: /* column_def  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 134: /* column_def  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).attribute_definition_) != nullptr) {
     delete ((*yyvaluep).attribute_definition_);
   }
 }
-#line 1969 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1955 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 134: /* column_def_commalist  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 135: /* column_def_commalist  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).attribute_definition_list_) != nullptr) {
     delete ((*yyvaluep).attribute_definition_list_);
   }
 }
-#line 1979 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1965 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 135: /* data_type  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 136: /* data_type  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).data_type_) != nullptr) {
     delete ((*yyvaluep).data_type_);
   }
 }
-#line 1989 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1975 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 136: /* column_constraint_def  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 137: /* column_constraint_def  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).column_constraint_) != nullptr) {
     delete ((*yyvaluep).column_constraint_);
   }
 }
-#line 1999 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1985 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 137: /* column_constraint_def_list  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 138: /* column_constraint_def_list  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).column_constraint_list_) != nullptr) {
     delete ((*yyvaluep).column_constraint_list_);
   }
 }
-#line 2009 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 1995 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 138: /* opt_column_constraint_def_list  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 139: /* opt_column_constraint_def_list  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).column_constraint_list_) != nullptr) {
     delete ((*yyvaluep).column_constraint_list_);
   }
 }
-#line 2019 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2005 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 142: /* opt_column_list  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 143: /* opt_column_list  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).attribute_list_) != nullptr) {
     delete ((*yyvaluep).attribute_list_);
   }
 }
-#line 2029 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2015 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 143: /* opt_block_properties  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 144: /* opt_block_properties  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).block_properties_) != nullptr) {
     delete ((*yyvaluep).block_properties_);
   }
 }
-#line 2039 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2025 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 144: /* opt_partition_clause  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 145: /* opt_partition_clause  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).partition_clause_) != nullptr) {
     delete ((*yyvaluep).partition_clause_);
   }
 }
-#line 2049 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2035 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 145: /* partition_type  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 146: /* partition_type  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2059 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2045 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 146: /* key_value_list  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 147: /* key_value_list  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_value_list_) != nullptr) {
     delete ((*yyvaluep).key_value_list_);
   }
 }
-#line 2069 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2055 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 147: /* key_value  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 148: /* key_value  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_value_) != nullptr) {
     delete ((*yyvaluep).key_value_);
   }
 }
-#line 2079 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2065 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 148: /* key_string_value  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 149: /* key_string_value  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_string_value_) != nullptr) {
     delete ((*yyvaluep).key_string_value_);
   }
 }
-#line 2089 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2075 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 149: /* key_string_list  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 150: /* key_string_list  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_string_list_) != nullptr) {
     delete ((*yyvaluep).key_string_list_);
   }
 }
-#line 2099 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2085 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 150: /* key_integer_value  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 151: /* key_integer_value  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_integer_value_) != nullptr) {
     delete ((*yyvaluep).key_integer_value_);
   }
 }
-#line 2109 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2095 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 151: /* index_type  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 152: /* index_type  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).string_value_) != nullptr) {
     delete ((*yyvaluep).string_value_);
   }
 }
-#line 2119 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2105 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 152: /* opt_index_properties  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 153: /* opt_index_properties  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).key_value_list_) != nullptr) {
     delete ((*yyvaluep).key_value_list_);
   }
 }
-#line 2129 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2115 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 153: /* insert_statement  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 154: /* insert_statement  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).insert_statement_) != nullptr) {
     delete ((*yyvaluep).insert_statement_);
   }
 }
-#line 2139 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2125 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 154: /* copy_from_statement  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 155: /* copy_from_statement  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).copy_from_statement_) != nullptr) {
     delete ((*yyvaluep).copy_from_statement_);
   }
 }
-#line 2149 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2135 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 155: /* opt_copy_from_params  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 156: /* opt_copy_from_params  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).copy_from_params_) != nullptr) {
     delete ((*yyvaluep).copy_from_params_);
   }
 }
-#line 2159 "SqlParser_gen.cpp" /* yacc.c:1257  */
+#line 2145 "SqlParser_gen.cpp" /* yacc.c:1257  */
         break;
 
-    case 156: /* copy_from_params  */
-#line 557 "../SqlParser.ypp" /* yacc.c:1257  */
+    case 157: /* copy_from_params  */
+#line 558 "../SqlParser.ypp" /* yacc.c:1257  */
       {
   if (((*yyvaluep).copy_from_params_) != nullptr) {
     delete ((*yyva

<TRUNCATED>