aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/parser
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/parser')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecolumntype.cpp4
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp20
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h2
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp1
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp2
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp1549
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h8
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y138
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp4
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.h2
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/token.cpp10
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/parser/token.h1
12 files changed, 891 insertions, 850 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecolumntype.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecolumntype.cpp
index cc773bb..2c48119 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecolumntype.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecolumntype.cpp
@@ -60,7 +60,7 @@ TokenList SqliteColumnType::rebuildTokensFromContents()
else if (scale.userType() == QVariant::LongLong)
builder.withInteger(scale.toLongLong());
else if (scale.userType() == QVariant::Double)
- builder.withFloat(scale.toDouble());
+ builder.withFloat(scale);
else
builder.withOther(scale.toString());
@@ -72,7 +72,7 @@ TokenList SqliteColumnType::rebuildTokensFromContents()
else if (precision.userType() == QVariant::LongLong)
builder.withInteger(precision.toLongLong());
else if (precision.userType() == QVariant::Double)
- builder.withFloat(precision.toDouble());
+ builder.withFloat(precision);
else
builder.withOther(precision.toString());
}
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp
index 3009b4b..5dc830b 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp
@@ -124,6 +124,21 @@ void SqliteExpr::initSubExpr(SqliteExpr *expr)
expr->setParent(this);
}
+void SqliteExpr::initRowValue(const QList<SqliteExpr*> &exprList)
+{
+ if (exprList.size() == 1)
+ {
+ initSubExpr(exprList.first());
+ return;
+ }
+
+ mode = SqliteExpr::Mode::ROW_VALUE;
+ this->exprList = exprList;
+
+ for (SqliteExpr* expr : exprList)
+ expr->setParent(this);
+}
+
void SqliteExpr::initBindParam(const QString& value)
{
mode = SqliteExpr::Mode::BIND_PARAM;
@@ -158,7 +173,7 @@ void SqliteExpr::initFunction(const QString& fnName, int distinct, const QList<S
else if (distinct == 2)
allKw = true;
- foreach (SqliteExpr* expr, exprList)
+ for (SqliteExpr* expr : exprList)
expr->setParent(this);
}
@@ -496,6 +511,9 @@ TokenList SqliteExpr::rebuildTokensFromContents()
case SqliteExpr::Mode::IN:
builder.withTokens(rebuildIn());
break;
+ case SqliteExpr::Mode::ROW_VALUE:
+ builder.withParLeft().withStatementList(exprList).withParRight();
+ break;
case SqliteExpr::Mode::EXISTS:
builder.withKeyword("EXISTS").withParLeft().withStatement(select).withParRight();
break;
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h
index f57004f..4d5bb03 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.h
@@ -24,6 +24,7 @@ class API_EXPORT SqliteExpr : public SqliteStatement
BINARY_OP,
FUNCTION,
SUB_EXPR,
+ ROW_VALUE,
CAST,
COLLATE, // in Sqlite2 exists only in expr of sortlist
LIKE,
@@ -69,6 +70,7 @@ class API_EXPORT SqliteExpr : public SqliteStatement
void initNull();
void initCTime(const QString& name);
void initSubExpr(SqliteExpr* expr);
+ void initRowValue(const QList<SqliteExpr*>& exprList);
void initId(const QString& db, const QString& table, const QString& column);
void initId(const QString& table, const QString& column);
void initId(const QString& column);
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp
index 6be7528..77036f7 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp
@@ -1,5 +1,6 @@
#include "lexer.h"
#include "keywords.h"
+#include "log.h"
#include "lexer_low_lev.h"
#include "sqlite2_parse.h"
#include "sqlite3_parse.h"
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp
index 894afd1..0f9aa91 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/lexer_low_lev.cpp
@@ -315,7 +315,7 @@ int lexerGetToken(const QString& z, TokenPtr token, int sqliteVersion, bool tole
)
{
i += 2;
- while ( charAt(z, i+2).isDigit() )
+ while ( charAt(z, i).isDigit() )
i++;
token->lemonType = v3 ? TK3_FLOAT : TK2_FLOAT;
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp
index 43cc4a0..3884655 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp
@@ -243,602 +243,600 @@ static const YYMINORTYPE yyzerominor = { 0 };
** shifting non-terminals after a reduce.
** yy_default[] Default action for each state.
*/
-#define YY_ACTTAB_COUNT (2285)
+#define YY_ACTTAB_COUNT (2271)
static const YYACTIONTYPE yy_action[] = {
- /* 0 */ 432, 49, 49, 48, 48, 48, 47, 216, 717, 340,
- /* 10 */ 644, 426, 52, 52, 52, 52, 45, 50, 50, 50,
- /* 20 */ 50, 49, 49, 48, 48, 48, 47, 216, 722, 1027,
- /* 30 */ 1027, 644, 131, 581, 52, 52, 52, 52, 412, 50,
- /* 40 */ 50, 50, 50, 49, 49, 48, 48, 48, 47, 216,
- /* 50 */ 580, 81, 59, 644, 157, 686, 302, 283, 1027, 1027,
- /* 60 */ 42, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
- /* 70 */ 1027, 1027, 564, 1027, 1027, 1027, 1027, 39, 40, 1027,
- /* 80 */ 1027, 1027, 1027, 1027, 41, 432, 529, 386, 717, 596,
- /* 90 */ 595, 281, 4, 378, 717, 631, 426, 643, 609, 423,
- /* 100 */ 13, 134, 688, 430, 563, 610, 484, 691, 332, 280,
- /* 110 */ 715, 714, 565, 566, 643, 690, 689, 688, 235, 507,
- /* 120 */ 61, 321, 611, 412, 48, 48, 48, 47, 216, 122,
- /* 130 */ 243, 213, 247, 60, 1143, 1143, 487, 610, 608, 604,
- /* 140 */ 686, 307, 486, 585, 717, 42, 508, 510, 643, 509,
- /* 150 */ 677, 9, 643, 144, 95, 282, 380, 277, 379, 132,
- /* 160 */ 298, 717, 39, 40, 602, 200, 199, 7, 356, 41,
- /* 170 */ 885, 308, 1135, 275, 249, 717, 18, 4, 885, 1135,
- /* 180 */ 57, 718, 643, 432, 423, 885, 330, 688, 430, 717,
- /* 190 */ 688, 644, 691, 688, 426, 691, 715, 714, 691, 643,
- /* 200 */ 690, 689, 688, 690, 689, 688, 690, 689, 688, 98,
- /* 210 */ 683, 240, 644, 218, 411, 885, 487, 885, 885, 484,
- /* 220 */ 717, 412, 239, 885, 304, 583, 513, 582, 885, 885,
- /* 230 */ 885, 885, 885, 643, 644, 677, 9, 643, 686, 217,
- /* 240 */ 245, 674, 102, 42, 288, 301, 715, 714, 67, 303,
- /* 250 */ 148, 308, 1134, 151, 307, 485, 81, 716, 97, 1134,
- /* 260 */ 39, 40, 552, 715, 714, 772, 130, 41, 947, 377,
- /* 270 */ 374, 373, 448, 47, 216, 4, 947, 715, 714, 335,
- /* 280 */ 643, 683, 423, 947, 607, 688, 430, 372, 449, 448,
- /* 290 */ 691, 715, 714, 305, 265, 146, 268, 643, 690, 689,
- /* 300 */ 688, 288, 68, 678, 692, 255, 363, 259, 360, 693,
- /* 310 */ 1028, 1028, 683, 947, 716, 947, 947, 448, 699, 234,
- /* 320 */ 387, 716, 715, 714, 774, 652, 947, 947, 947, 947,
- /* 330 */ 110, 643, 318, 677, 9, 643, 222, 678, 300, 53,
- /* 340 */ 54, 427, 290, 1028, 1028, 676, 676, 51, 51, 52,
- /* 350 */ 52, 52, 52, 717, 50, 50, 50, 50, 49, 49,
- /* 360 */ 48, 48, 48, 47, 216, 432, 429, 341, 717, 336,
- /* 370 */ 672, 671, 288, 284, 717, 138, 426, 209, 219, 431,
- /* 380 */ 269, 396, 652, 683, 337, 716, 716, 687, 187, 53,
- /* 390 */ 54, 427, 290, 716, 453, 676, 676, 51, 51, 52,
- /* 400 */ 52, 52, 52, 412, 50, 50, 50, 50, 49, 49,
- /* 410 */ 48, 48, 48, 47, 216, 91, 954, 717, 620, 713,
- /* 420 */ 686, 404, 383, 130, 711, 42, 377, 374, 373, 712,
- /* 430 */ 233, 954, 395, 312, 210, 594, 667, 385, 429, 17,
- /* 440 */ 317, 660, 39, 40, 372, 231, 230, 717, 89, 41,
- /* 450 */ 932, 431, 717, 659, 717, 715, 714, 4, 932, 687,
- /* 460 */ 92, 143, 643, 359, 423, 932, 675, 688, 430, 15,
- /* 470 */ 715, 714, 691, 131, 457, 552, 715, 714, 954, 643,
- /* 480 */ 690, 689, 688, 669, 668, 210, 594, 459, 385, 458,
- /* 490 */ 577, 88, 1028, 1028, 14, 932, 673, 932, 932, 55,
- /* 500 */ 576, 679, 43, 369, 38, 402, 36, 382, 932, 1,
- /* 510 */ 932, 932, 642, 643, 635, 677, 9, 643, 662, 715,
- /* 520 */ 714, 53, 54, 427, 290, 1028, 1028, 676, 676, 51,
- /* 530 */ 51, 52, 52, 52, 52, 661, 50, 50, 50, 50,
- /* 540 */ 49, 49, 48, 48, 48, 47, 216, 658, 649, 715,
- /* 550 */ 714, 497, 543, 570, 715, 714, 715, 714, 657, 692,
- /* 560 */ 544, 615, 321, 31, 693, 28, 717, 586, 275, 683,
- /* 570 */ 160, 1028, 1028, 427, 290, 694, 614, 676, 676, 51,
- /* 580 */ 51, 52, 52, 52, 52, 399, 50, 50, 50, 50,
- /* 590 */ 49, 49, 48, 48, 48, 47, 216, 1026, 1026, 81,
- /* 600 */ 53, 54, 427, 290, 1028, 1028, 676, 676, 51, 51,
- /* 610 */ 52, 52, 52, 52, 497, 50, 50, 50, 50, 49,
- /* 620 */ 49, 48, 48, 48, 47, 216, 1026, 1026, 1026, 1026,
- /* 630 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
- /* 640 */ 717, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
- /* 650 */ 1026, 1026, 1028, 1028, 358, 50, 50, 50, 50, 49,
- /* 660 */ 49, 48, 48, 48, 47, 216, 289, 553, 715, 714,
- /* 670 */ 496, 683, 299, 663, 347, 153, 539, 69, 695, 716,
- /* 680 */ 716, 53, 54, 427, 290, 1028, 1028, 676, 676, 51,
- /* 690 */ 51, 52, 52, 52, 52, 1095, 50, 50, 50, 50,
- /* 700 */ 49, 49, 48, 48, 48, 47, 216, 53, 54, 427,
- /* 710 */ 290, 419, 512, 676, 676, 51, 51, 52, 52, 52,
- /* 720 */ 52, 159, 50, 50, 50, 50, 49, 49, 48, 48,
- /* 730 */ 48, 47, 216, 491, 955, 316, 483, 483, 664, 554,
- /* 740 */ 215, 651, 715, 714, 81, 53, 54, 427, 290, 955,
- /* 750 */ 415, 676, 676, 51, 51, 52, 52, 52, 52, 398,
- /* 760 */ 50, 50, 50, 50, 49, 49, 48, 48, 48, 47,
- /* 770 */ 216, 158, 1095, 22, 717, 628, 460, 717, 1080, 717,
- /* 780 */ 648, 1046, 140, 89, 717, 1150, 154, 436, 2, 716,
- /* 790 */ 425, 672, 671, 397, 461, 462, 955, 53, 54, 427,
- /* 800 */ 290, 574, 717, 676, 676, 51, 51, 52, 52, 52,
- /* 810 */ 52, 322, 50, 50, 50, 50, 49, 49, 48, 48,
- /* 820 */ 48, 47, 216, 432, 1109, 81, 206, 205, 204, 53,
- /* 830 */ 54, 427, 290, 717, 426, 676, 676, 51, 51, 52,
- /* 840 */ 52, 52, 52, 345, 50, 50, 50, 50, 49, 49,
- /* 850 */ 48, 48, 48, 47, 216, 598, 716, 667, 601, 463,
- /* 860 */ 667, 412, 32, 717, 658, 90, 13, 895, 721, 669,
- /* 870 */ 668, 610, 725, 435, 81, 657, 715, 714, 686, 715,
- /* 880 */ 714, 715, 714, 42, 529, 273, 715, 714, 611, 350,
- /* 890 */ 529, 451, 89, 678, 13, 634, 634, 339, 637, 610,
- /* 900 */ 39, 40, 650, 610, 715, 714, 717, 41, 1143, 1143,
- /* 910 */ 717, 525, 683, 582, 717, 4, 611, 469, 61, 451,
- /* 920 */ 643, 208, 423, 507, 61, 688, 430, 678, 33, 109,
- /* 930 */ 691, 610, 501, 502, 353, 715, 714, 643, 690, 689,
- /* 940 */ 688, 429, 901, 901, 468, 467, 553, 466, 422, 384,
- /* 950 */ 508, 510, 142, 509, 431, 441, 69, 1143, 1143, 716,
- /* 960 */ 445, 723, 687, 182, 647, 715, 714, 646, 231, 230,
- /* 970 */ 438, 643, 357, 677, 9, 643, 418, 445, 53, 54,
- /* 980 */ 427, 290, 91, 91, 676, 676, 51, 51, 52, 52,
- /* 990 */ 52, 52, 645, 50, 50, 50, 50, 49, 49, 48,
- /* 1000 */ 48, 48, 47, 216, 1035, 445, 669, 668, 715, 714,
- /* 1010 */ 91, 454, 715, 714, 683, 642, 715, 714, 325, 202,
- /* 1020 */ 53, 54, 427, 290, 447, 681, 676, 676, 51, 51,
- /* 1030 */ 52, 52, 52, 52, 640, 50, 50, 50, 50, 49,
- /* 1040 */ 49, 48, 48, 48, 47, 216, 606, 53, 54, 427,
- /* 1050 */ 290, 717, 447, 676, 676, 51, 51, 52, 52, 52,
- /* 1060 */ 52, 460, 50, 50, 50, 50, 49, 49, 48, 48,
- /* 1070 */ 48, 47, 216, 454, 716, 37, 664, 424, 215, 461,
- /* 1080 */ 342, 370, 593, 53, 54, 427, 290, 639, 89, 676,
- /* 1090 */ 676, 51, 51, 52, 52, 52, 52, 32, 50, 50,
- /* 1100 */ 50, 50, 49, 49, 48, 48, 48, 47, 216, 414,
- /* 1110 */ 724, 2, 12, 53, 54, 427, 290, 34, 589, 676,
- /* 1120 */ 676, 51, 51, 52, 52, 52, 52, 625, 50, 50,
- /* 1130 */ 50, 50, 49, 49, 48, 48, 48, 47, 216, 516,
- /* 1140 */ 716, 538, 30, 91, 343, 667, 140, 136, 572, 53,
- /* 1150 */ 54, 427, 290, 715, 714, 676, 676, 51, 51, 52,
- /* 1160 */ 52, 52, 52, 549, 50, 50, 50, 50, 49, 49,
- /* 1170 */ 48, 48, 48, 47, 216, 91, 717, 234, 387, 53,
- /* 1180 */ 54, 427, 290, 339, 272, 676, 676, 51, 51, 52,
- /* 1190 */ 52, 52, 52, 334, 50, 50, 50, 50, 49, 49,
- /* 1200 */ 48, 48, 48, 47, 216, 533, 8, 518, 697, 87,
- /* 1210 */ 137, 53, 54, 427, 290, 23, 558, 676, 676, 51,
- /* 1220 */ 51, 52, 52, 52, 52, 135, 50, 50, 50, 50,
- /* 1230 */ 49, 49, 48, 48, 48, 47, 216, 81, 1110, 91,
- /* 1240 */ 717, 91, 53, 54, 427, 290, 616, 723, 676, 676,
- /* 1250 */ 51, 51, 52, 52, 52, 52, 605, 50, 50, 50,
- /* 1260 */ 50, 49, 49, 48, 48, 48, 47, 216, 99, 1108,
- /* 1270 */ 391, 505, 389, 492, 53, 54, 427, 290, 715, 714,
- /* 1280 */ 676, 676, 51, 51, 52, 52, 52, 52, 621, 50,
- /* 1290 */ 50, 50, 50, 49, 49, 48, 48, 48, 47, 216,
- /* 1300 */ 683, 53, 58, 427, 290, 683, 600, 676, 676, 51,
- /* 1310 */ 51, 52, 52, 52, 52, 429, 50, 50, 50, 50,
- /* 1320 */ 49, 49, 48, 48, 48, 47, 216, 432, 431, 717,
- /* 1330 */ 5, 621, 226, 633, 492, 632, 687, 187, 426, 54,
- /* 1340 */ 427, 290, 715, 714, 676, 676, 51, 51, 52, 52,
- /* 1350 */ 52, 52, 717, 50, 50, 50, 50, 49, 49, 48,
- /* 1360 */ 48, 48, 47, 216, 553, 412, 288, 599, 287, 717,
- /* 1370 */ 404, 388, 429, 698, 69, 613, 252, 716, 429, 716,
- /* 1380 */ 405, 716, 686, 30, 209, 431, 209, 42, 626, 317,
- /* 1390 */ 489, 431, 597, 687, 187, 429, 223, 309, 540, 687,
- /* 1400 */ 187, 329, 683, 717, 39, 40, 11, 683, 431, 287,
- /* 1410 */ 432, 41, 621, 654, 91, 592, 687, 92, 556, 4,
- /* 1420 */ 571, 426, 716, 625, 643, 537, 423, 404, 406, 688,
- /* 1430 */ 430, 715, 714, 333, 691, 717, 716, 429, 717, 591,
- /* 1440 */ 717, 643, 690, 689, 688, 107, 317, 652, 412, 531,
- /* 1450 */ 431, 590, 317, 717, 715, 714, 612, 830, 687, 187,
- /* 1460 */ 429, 225, 326, 717, 541, 686, 526, 417, 20, 642,
- /* 1470 */ 42, 715, 714, 431, 683, 643, 717, 677, 9, 643,
- /* 1480 */ 531, 687, 187, 526, 562, 717, 621, 39, 40, 327,
- /* 1490 */ 376, 65, 64, 432, 41, 274, 19, 266, 371, 535,
- /* 1500 */ 535, 267, 4, 271, 426, 715, 714, 643, 421, 423,
- /* 1510 */ 716, 407, 688, 430, 286, 400, 717, 691, 717, 280,
- /* 1520 */ 717, 63, 129, 429, 643, 690, 689, 688, 367, 717,
- /* 1530 */ 603, 412, 520, 534, 317, 515, 431, 715, 714, 156,
- /* 1540 */ 715, 714, 715, 714, 687, 192, 717, 209, 686, 520,
- /* 1550 */ 480, 465, 515, 42, 717, 715, 714, 3, 643, 717,
- /* 1560 */ 677, 9, 643, 717, 716, 715, 714, 480, 138, 125,
- /* 1570 */ 39, 40, 85, 476, 79, 432, 683, 41, 715, 714,
- /* 1580 */ 27, 429, 473, 511, 717, 4, 426, 715, 714, 517,
- /* 1590 */ 643, 532, 423, 408, 431, 688, 430, 642, 26, 719,
- /* 1600 */ 691, 717, 687, 181, 77, 476, 506, 643, 690, 689,
- /* 1610 */ 688, 620, 716, 412, 354, 470, 706, 439, 715, 714,
- /* 1620 */ 715, 714, 715, 714, 261, 288, 717, 473, 221, 504,
- /* 1630 */ 686, 715, 714, 704, 439, 42, 717, 716, 716, 568,
- /* 1640 */ 83, 643, 140, 677, 9, 643, 498, 1036, 715, 714,
- /* 1650 */ 702, 284, 39, 40, 254, 642, 715, 714, 432, 41,
- /* 1660 */ 328, 715, 714, 429, 716, 715, 714, 4, 1038, 426,
- /* 1670 */ 119, 10, 643, 503, 423, 707, 431, 688, 430, 470,
- /* 1680 */ 429, 161, 691, 251, 687, 163, 715, 714, 716, 643,
- /* 1690 */ 690, 689, 688, 431, 717, 429, 412, 152, 479, 456,
- /* 1700 */ 455, 687, 172, 715, 714, 72, 652, 705, 431, 429,
- /* 1710 */ 630, 312, 111, 686, 530, 338, 687, 190, 42, 437,
- /* 1720 */ 716, 622, 431, 643, 96, 677, 9, 643, 715, 714,
- /* 1730 */ 687, 188, 209, 717, 207, 39, 40, 642, 715, 714,
- /* 1740 */ 432, 224, 41, 617, 86, 429, 703, 717, 203, 429,
- /* 1750 */ 4, 426, 320, 720, 642, 643, 150, 423, 431, 716,
- /* 1760 */ 688, 430, 431, 700, 429, 691, 687, 196, 475, 642,
- /* 1770 */ 687, 195, 643, 690, 689, 688, 716, 431, 412, 717,
- /* 1780 */ 319, 710, 717, 642, 522, 687, 197, 709, 708, 258,
- /* 1790 */ 499, 429, 434, 220, 500, 686, 715, 714, 625, 16,
- /* 1800 */ 42, 717, 716, 257, 431, 717, 643, 256, 677, 9,
- /* 1810 */ 643, 716, 687, 201, 717, 351, 716, 39, 40, 642,
- /* 1820 */ 149, 248, 432, 642, 41, 482, 147, 246, 433, 442,
- /* 1830 */ 368, 478, 4, 426, 716, 715, 714, 643, 642, 423,
- /* 1840 */ 716, 717, 715, 430, 82, 701, 429, 691, 685, 715,
- /* 1850 */ 714, 145, 495, 234, 643, 690, 689, 688, 429, 431,
- /* 1860 */ 412, 559, 244, 284, 352, 642, 474, 687, 232, 18,
- /* 1870 */ 242, 431, 401, 429, 471, 716, 716, 686, 295, 687,
- /* 1880 */ 291, 715, 714, 716, 715, 714, 431, 294, 643, 696,
- /* 1890 */ 677, 9, 643, 542, 687, 191, 528, 293, 680, 39,
- /* 1900 */ 40, 717, 716, 715, 714, 429, 41, 715, 714, 429,
- /* 1910 */ 490, 716, 292, 29, 4, 493, 715, 714, 431, 643,
- /* 1920 */ 642, 423, 431, 227, 688, 430, 687, 194, 429, 691,
- /* 1930 */ 687, 193, 642, 429, 477, 429, 643, 690, 689, 688,
- /* 1940 */ 429, 431, 717, 715, 714, 429, 431, 642, 431, 687,
- /* 1950 */ 185, 717, 403, 431, 687, 189, 687, 315, 431, 717,
- /* 1960 */ 216, 687, 314, 429, 409, 684, 687, 313, 717, 429,
- /* 1970 */ 643, 56, 677, 9, 643, 44, 431, 716, 717, 642,
- /* 1980 */ 638, 627, 431, 642, 687, 184, 623, 420, 236, 653,
- /* 1990 */ 687, 171, 323, 716, 716, 641, 229, 66, 214, 716,
- /* 2000 */ 429, 716, 642, 715, 714, 618, 35, 642, 228, 642,
- /* 2010 */ 429, 133, 394, 431, 642, 524, 276, 429, 716, 642,
- /* 2020 */ 429, 687, 170, 431, 716, 716, 636, 569, 416, 716,
- /* 2030 */ 431, 687, 183, 431, 429, 550, 429, 642, 687, 169,
- /* 2040 */ 716, 687, 186, 642, 715, 714, 429, 431, 716, 431,
- /* 2050 */ 141, 429, 108, 715, 714, 687, 168, 687, 167, 431,
- /* 2060 */ 139, 715, 714, 270, 431, 519, 429, 687, 93, 390,
- /* 2070 */ 715, 714, 687, 166, 642, 717, 716, 429, 584, 431,
- /* 2080 */ 715, 714, 481, 429, 642, 717, 381, 687, 164, 717,
- /* 2090 */ 431, 642, 444, 579, 642, 578, 431, 387, 687, 174,
- /* 2100 */ 429, 263, 429, 472, 687, 173, 429, 331, 642, 278,
- /* 2110 */ 642, 574, 575, 431, 716, 431, 429, 361, 464, 431,
- /* 2120 */ 642, 687, 175, 687, 178, 642, 429, 687, 94, 431,
- /* 2130 */ 716, 429, 573, 429, 555, 548, 348, 687, 177, 431,
- /* 2140 */ 642, 547, 546, 545, 431, 429, 431, 687, 176, 716,
- /* 2150 */ 393, 642, 687, 180, 687, 179, 443, 642, 431, 536,
- /* 2160 */ 428, 128, 285, 431, 311, 310, 687, 165, 80, 716,
- /* 2170 */ 264, 687, 70, 716, 642, 716, 642, 715, 714, 366,
- /* 2180 */ 642, 649, 253, 716, 106, 250, 127, 715, 714, 241,
- /* 2190 */ 642, 715, 714, 237, 126, 716, 238, 262, 716, 355,
- /* 2200 */ 642, 212, 716, 25, 124, 642, 716, 642, 527, 716,
- /* 2210 */ 364, 78, 105, 123, 121, 155, 84, 514, 104, 642,
- /* 2220 */ 120, 349, 494, 624, 642, 346, 103, 118, 76, 344,
- /* 2230 */ 117, 75, 116, 115, 74, 73, 114, 521, 324, 113,
- /* 2240 */ 24, 452, 450, 21, 101, 100, 112, 446, 62, 440,
- /* 2250 */ 162, 296, 670, 666, 656, 413, 279, 619, 570, 198,
- /* 2260 */ 629, 375, 523, 260, 362, 306, 6, 71, 682, 665,
- /* 2270 */ 655, 557, 211, 297, 410, 567, 365, 46, 551, 561,
- /* 2280 */ 560, 488, 588, 81, 587,
+ /* 0 */ 432, 565, 566, 717, 50, 50, 49, 49, 49, 48,
+ /* 10 */ 215, 420, 53, 53, 53, 53, 28, 51, 51, 51,
+ /* 20 */ 51, 50, 50, 49, 49, 49, 48, 215, 717, 1026,
+ /* 30 */ 1026, 336, 666, 665, 53, 53, 53, 53, 425, 51,
+ /* 40 */ 51, 51, 51, 50, 50, 49, 49, 49, 48, 215,
+ /* 50 */ 722, 81, 205, 204, 203, 672, 592, 592, 1026, 1026,
+ /* 60 */ 41, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
+ /* 70 */ 1026, 1026, 639, 1026, 1026, 1026, 1026, 38, 39, 1026,
+ /* 80 */ 1026, 1026, 1026, 1026, 40, 432, 529, 285, 717, 56,
+ /* 90 */ 108, 684, 3, 717, 668, 301, 420, 678, 661, 417,
+ /* 100 */ 716, 67, 688, 430, 552, 715, 714, 691, 130, 331,
+ /* 110 */ 60, 377, 374, 373, 678, 690, 689, 688, 674, 507,
+ /* 120 */ 61, 216, 717, 425, 49, 49, 49, 48, 215, 372,
+ /* 130 */ 715, 714, 212, 131, 1143, 1143, 242, 629, 246, 674,
+ /* 140 */ 672, 421, 685, 48, 215, 41, 508, 510, 678, 509,
+ /* 150 */ 9, 678, 33, 669, 144, 95, 281, 380, 276, 379,
+ /* 160 */ 132, 674, 38, 39, 609, 229, 228, 7, 356, 40,
+ /* 170 */ 885, 717, 403, 717, 274, 484, 685, 3, 885, 529,
+ /* 180 */ 248, 610, 678, 68, 417, 885, 411, 688, 430, 209,
+ /* 190 */ 715, 714, 691, 684, 457, 715, 714, 717, 209, 678,
+ /* 200 */ 690, 689, 688, 663, 662, 432, 453, 459, 460, 458,
+ /* 210 */ 306, 486, 507, 61, 717, 885, 420, 885, 885, 492,
+ /* 220 */ 725, 716, 320, 885, 715, 714, 461, 462, 885, 885,
+ /* 230 */ 885, 885, 885, 678, 297, 9, 678, 772, 669, 508,
+ /* 240 */ 510, 687, 509, 425, 717, 339, 244, 51, 51, 51,
+ /* 250 */ 51, 50, 50, 49, 49, 49, 48, 215, 543, 570,
+ /* 260 */ 672, 357, 713, 283, 688, 41, 544, 711, 448, 691,
+ /* 270 */ 445, 577, 712, 715, 714, 715, 714, 690, 689, 688,
+ /* 280 */ 492, 576, 38, 39, 449, 448, 512, 445, 487, 40,
+ /* 290 */ 947, 463, 661, 389, 497, 603, 602, 3, 947, 715,
+ /* 300 */ 714, 230, 678, 684, 417, 947, 13, 688, 430, 723,
+ /* 310 */ 17, 617, 691, 448, 513, 445, 715, 714, 81, 678,
+ /* 320 */ 690, 689, 688, 307, 1135, 679, 460, 654, 618, 360,
+ /* 330 */ 774, 1135, 1028, 1028, 89, 947, 1, 947, 947, 716,
+ /* 340 */ 110, 595, 716, 617, 461, 342, 715, 714, 947, 947,
+ /* 350 */ 947, 947, 1080, 678, 692, 9, 678, 497, 669, 693,
+ /* 360 */ 717, 54, 55, 427, 295, 1028, 1028, 681, 681, 52,
+ /* 370 */ 52, 53, 53, 53, 53, 717, 51, 51, 51, 51,
+ /* 380 */ 50, 50, 49, 49, 49, 48, 215, 432, 496, 382,
+ /* 390 */ 717, 553, 347, 254, 363, 258, 298, 139, 420, 218,
+ /* 400 */ 539, 69, 286, 287, 716, 684, 143, 231, 390, 343,
+ /* 410 */ 661, 54, 55, 427, 295, 716, 716, 681, 681, 52,
+ /* 420 */ 52, 53, 53, 53, 53, 425, 51, 51, 51, 51,
+ /* 430 */ 50, 50, 49, 49, 49, 48, 215, 684, 954, 608,
+ /* 440 */ 628, 692, 672, 663, 662, 585, 693, 41, 429, 207,
+ /* 450 */ 601, 491, 388, 954, 130, 652, 499, 377, 374, 373,
+ /* 460 */ 500, 431, 715, 714, 38, 39, 651, 199, 198, 673,
+ /* 470 */ 186, 40, 932, 699, 685, 372, 717, 715, 714, 3,
+ /* 480 */ 932, 351, 57, 653, 678, 616, 417, 932, 135, 688,
+ /* 490 */ 430, 59, 688, 157, 691, 717, 680, 691, 340, 1046,
+ /* 500 */ 954, 678, 690, 689, 688, 690, 689, 688, 685, 419,
+ /* 510 */ 666, 665, 724, 2, 1028, 1028, 636, 932, 208, 932,
+ /* 520 */ 932, 43, 386, 141, 294, 615, 611, 264, 284, 267,
+ /* 530 */ 932, 139, 932, 932, 122, 678, 400, 9, 678, 684,
+ /* 540 */ 669, 716, 142, 54, 55, 427, 295, 1028, 1028, 681,
+ /* 550 */ 681, 52, 52, 53, 53, 53, 53, 339, 51, 51,
+ /* 560 */ 51, 51, 50, 50, 49, 49, 49, 48, 215, 652,
+ /* 570 */ 91, 299, 483, 483, 628, 717, 661, 717, 715, 714,
+ /* 580 */ 651, 18, 717, 605, 717, 37, 677, 399, 311, 717,
+ /* 590 */ 34, 535, 535, 1028, 1028, 427, 295, 715, 714, 681,
+ /* 600 */ 681, 52, 52, 53, 53, 53, 53, 234, 51, 51,
+ /* 610 */ 51, 51, 50, 50, 49, 49, 49, 48, 215, 1027,
+ /* 620 */ 1027, 723, 54, 55, 427, 295, 1028, 1028, 681, 681,
+ /* 630 */ 52, 52, 53, 53, 53, 53, 42, 51, 51, 51,
+ /* 640 */ 51, 50, 50, 49, 49, 49, 48, 215, 1027, 1027,
+ /* 650 */ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ /* 660 */ 1027, 1027, 717, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
+ /* 670 */ 1027, 1027, 1027, 1027, 1028, 1028, 718, 715, 714, 715,
+ /* 680 */ 714, 454, 324, 201, 715, 714, 715, 714, 321, 695,
+ /* 690 */ 315, 715, 714, 658, 554, 214, 676, 46, 568, 32,
+ /* 700 */ 81, 88, 675, 54, 55, 427, 295, 1028, 1028, 681,
+ /* 710 */ 681, 52, 52, 53, 53, 53, 53, 1095, 51, 51,
+ /* 720 */ 51, 51, 50, 50, 49, 49, 49, 48, 215, 54,
+ /* 730 */ 55, 427, 295, 667, 423, 681, 681, 52, 52, 53,
+ /* 740 */ 53, 53, 53, 454, 51, 51, 51, 51, 50, 50,
+ /* 750 */ 49, 49, 49, 48, 215, 358, 955, 656, 643, 1150,
+ /* 760 */ 154, 436, 2, 487, 715, 714, 350, 54, 55, 427,
+ /* 770 */ 295, 955, 484, 681, 681, 52, 52, 53, 53, 53,
+ /* 780 */ 53, 160, 51, 51, 51, 51, 50, 50, 49, 49,
+ /* 790 */ 49, 48, 215, 600, 1095, 22, 717, 280, 307, 1134,
+ /* 800 */ 34, 717, 501, 502, 353, 629, 1134, 306, 485, 697,
+ /* 810 */ 268, 717, 229, 228, 337, 279, 717, 558, 955, 54,
+ /* 820 */ 55, 427, 295, 716, 717, 681, 681, 52, 52, 53,
+ /* 830 */ 53, 53, 53, 655, 51, 51, 51, 51, 50, 50,
+ /* 840 */ 49, 49, 49, 48, 215, 432, 1109, 81, 717, 225,
+ /* 850 */ 663, 662, 54, 55, 427, 295, 420, 153, 681, 681,
+ /* 860 */ 52, 52, 53, 53, 53, 53, 641, 51, 51, 51,
+ /* 870 */ 51, 50, 50, 49, 49, 49, 48, 215, 586, 89,
+ /* 880 */ 717, 231, 390, 425, 15, 717, 694, 413, 13, 895,
+ /* 890 */ 721, 207, 601, 617, 388, 435, 81, 574, 715, 714,
+ /* 900 */ 672, 272, 553, 715, 714, 41, 529, 537, 89, 14,
+ /* 910 */ 618, 698, 69, 715, 714, 716, 13, 209, 715, 714,
+ /* 920 */ 359, 617, 38, 39, 159, 617, 715, 714, 645, 40,
+ /* 930 */ 1143, 1143, 717, 345, 222, 674, 540, 3, 618, 469,
+ /* 940 */ 61, 285, 678, 625, 417, 473, 716, 688, 430, 45,
+ /* 950 */ 715, 714, 691, 617, 716, 416, 674, 402, 581, 678,
+ /* 960 */ 690, 689, 688, 429, 901, 901, 468, 467, 284, 466,
+ /* 970 */ 629, 81, 706, 633, 495, 580, 431, 526, 674, 1143,
+ /* 980 */ 1143, 716, 715, 714, 673, 92, 716, 715, 714, 91,
+ /* 990 */ 473, 401, 438, 678, 526, 9, 678, 370, 669, 409,
+ /* 1000 */ 54, 55, 427, 295, 89, 505, 681, 681, 52, 52,
+ /* 1010 */ 53, 53, 53, 53, 620, 51, 51, 51, 51, 50,
+ /* 1020 */ 50, 49, 49, 49, 48, 215, 717, 638, 311, 717,
+ /* 1030 */ 406, 658, 418, 214, 715, 714, 90, 642, 131, 334,
+ /* 1040 */ 415, 644, 54, 55, 427, 295, 451, 640, 681, 681,
+ /* 1050 */ 52, 52, 53, 53, 53, 53, 158, 51, 51, 51,
+ /* 1060 */ 51, 50, 50, 49, 49, 49, 48, 215, 369, 54,
+ /* 1070 */ 55, 427, 295, 12, 451, 681, 681, 52, 52, 53,
+ /* 1080 */ 53, 53, 53, 633, 51, 51, 51, 51, 50, 50,
+ /* 1090 */ 49, 49, 49, 48, 215, 36, 716, 8, 209, 54,
+ /* 1100 */ 55, 427, 295, 34, 589, 681, 681, 52, 52, 53,
+ /* 1110 */ 53, 53, 53, 704, 51, 51, 51, 51, 50, 50,
+ /* 1120 */ 49, 49, 49, 48, 215, 87, 138, 320, 715, 714,
+ /* 1130 */ 412, 715, 714, 274, 572, 54, 55, 427, 295, 30,
+ /* 1140 */ 624, 681, 681, 52, 52, 53, 53, 53, 53, 326,
+ /* 1150 */ 51, 51, 51, 51, 50, 50, 49, 49, 49, 48,
+ /* 1160 */ 215, 408, 717, 137, 91, 54, 55, 427, 295, 614,
+ /* 1170 */ 271, 681, 681, 52, 52, 53, 53, 53, 53, 465,
+ /* 1180 */ 51, 51, 51, 51, 50, 50, 49, 49, 49, 48,
+ /* 1190 */ 215, 136, 716, 538, 612, 91, 99, 54, 55, 427,
+ /* 1200 */ 295, 23, 607, 681, 681, 52, 52, 53, 53, 53,
+ /* 1210 */ 53, 395, 51, 51, 51, 51, 50, 50, 49, 49,
+ /* 1220 */ 49, 48, 215, 533, 1110, 516, 717, 91, 54, 55,
+ /* 1230 */ 427, 295, 141, 393, 681, 681, 52, 52, 53, 53,
+ /* 1240 */ 53, 53, 5, 51, 51, 51, 51, 50, 50, 49,
+ /* 1250 */ 49, 49, 48, 215, 717, 1108, 606, 91, 717, 476,
+ /* 1260 */ 54, 55, 427, 295, 715, 714, 681, 681, 52, 52,
+ /* 1270 */ 53, 53, 53, 53, 684, 51, 51, 51, 51, 50,
+ /* 1280 */ 50, 49, 49, 49, 48, 215, 684, 54, 58, 427,
+ /* 1290 */ 295, 476, 717, 681, 681, 52, 52, 53, 53, 53,
+ /* 1300 */ 53, 633, 51, 51, 51, 51, 50, 50, 49, 49,
+ /* 1310 */ 49, 48, 215, 432, 716, 251, 518, 604, 1035, 11,
+ /* 1320 */ 107, 629, 36, 531, 420, 55, 427, 295, 715, 714,
+ /* 1330 */ 681, 681, 52, 52, 53, 53, 53, 53, 224, 51,
+ /* 1340 */ 51, 51, 51, 50, 50, 49, 49, 49, 48, 215,
+ /* 1350 */ 91, 425, 717, 583, 531, 582, 715, 714, 429, 20,
+ /* 1360 */ 715, 714, 429, 684, 429, 619, 384, 352, 672, 562,
+ /* 1370 */ 387, 431, 623, 41, 489, 431, 684, 431, 657, 673,
+ /* 1380 */ 186, 308, 717, 673, 186, 673, 186, 622, 684, 470,
+ /* 1390 */ 38, 39, 599, 597, 715, 714, 432, 40, 719, 683,
+ /* 1400 */ 91, 830, 634, 596, 91, 3, 571, 420, 541, 591,
+ /* 1410 */ 678, 716, 417, 391, 385, 688, 430, 332, 707, 333,
+ /* 1420 */ 691, 525, 429, 582, 717, 65, 429, 678, 690, 689,
+ /* 1430 */ 688, 716, 316, 717, 425, 431, 316, 564, 316, 431,
+ /* 1440 */ 717, 590, 376, 673, 186, 64, 429, 673, 186, 429,
+ /* 1450 */ 273, 672, 19, 470, 715, 714, 41, 371, 378, 431,
+ /* 1460 */ 684, 678, 431, 9, 678, 684, 669, 673, 186, 563,
+ /* 1470 */ 673, 92, 717, 38, 39, 63, 648, 391, 383, 432,
+ /* 1480 */ 40, 391, 392, 129, 715, 714, 717, 279, 3, 270,
+ /* 1490 */ 420, 367, 613, 678, 705, 417, 316, 534, 688, 430,
+ /* 1500 */ 316, 404, 4, 691, 717, 553, 717, 716, 156, 284,
+ /* 1510 */ 678, 690, 689, 688, 441, 69, 325, 425, 716, 630,
+ /* 1520 */ 316, 717, 716, 642, 125, 79, 715, 714, 703, 27,
+ /* 1530 */ 26, 85, 517, 77, 672, 715, 714, 520, 447, 41,
+ /* 1540 */ 717, 716, 715, 714, 678, 549, 9, 678, 717, 669,
+ /* 1550 */ 511, 329, 700, 506, 520, 354, 38, 39, 504, 702,
+ /* 1560 */ 83, 432, 684, 40, 265, 716, 447, 286, 266, 226,
+ /* 1570 */ 141, 3, 420, 556, 715, 714, 678, 716, 417, 696,
+ /* 1580 */ 716, 688, 430, 515, 686, 422, 691, 717, 715, 714,
+ /* 1590 */ 498, 429, 716, 678, 690, 689, 688, 716, 716, 425,
+ /* 1600 */ 515, 480, 335, 439, 431, 253, 715, 714, 715, 714,
+ /* 1610 */ 119, 479, 673, 194, 250, 260, 672, 717, 480, 220,
+ /* 1620 */ 439, 41, 717, 715, 714, 10, 152, 678, 716, 9,
+ /* 1630 */ 678, 161, 669, 1036, 286, 594, 456, 455, 38, 39,
+ /* 1640 */ 72, 111, 715, 714, 432, 40, 635, 716, 646, 429,
+ /* 1650 */ 715, 714, 338, 3, 1038, 420, 437, 209, 678, 716,
+ /* 1660 */ 417, 202, 431, 688, 430, 642, 429, 96, 691, 221,
+ /* 1670 */ 673, 181, 631, 717, 223, 678, 690, 689, 688, 431,
+ /* 1680 */ 717, 429, 425, 206, 86, 716, 717, 673, 185, 715,
+ /* 1690 */ 714, 319, 626, 257, 431, 429, 522, 219, 720, 672,
+ /* 1700 */ 530, 559, 673, 189, 41, 716, 716, 318, 431, 678,
+ /* 1710 */ 710, 9, 678, 717, 669, 646, 673, 187, 490, 715,
+ /* 1720 */ 714, 38, 39, 642, 715, 714, 432, 150, 40, 134,
+ /* 1730 */ 709, 542, 429, 717, 149, 429, 3, 420, 708, 286,
+ /* 1740 */ 642, 678, 716, 417, 434, 431, 688, 430, 431, 286,
+ /* 1750 */ 429, 691, 716, 673, 195, 642, 673, 193, 678, 690,
+ /* 1760 */ 689, 688, 716, 431, 425, 398, 256, 621, 368, 642,
+ /* 1770 */ 255, 673, 196, 147, 328, 715, 714, 429, 716, 716,
+ /* 1780 */ 716, 672, 715, 714, 327, 82, 41, 433, 715, 714,
+ /* 1790 */ 431, 16, 678, 701, 9, 678, 598, 669, 673, 200,
+ /* 1800 */ 503, 532, 145, 38, 39, 215, 642, 232, 432, 642,
+ /* 1810 */ 40, 47, 671, 247, 31, 715, 714, 482, 3, 420,
+ /* 1820 */ 646, 275, 475, 678, 642, 417, 716, 528, 715, 430,
+ /* 1830 */ 646, 569, 429, 691, 716, 715, 714, 550, 231, 291,
+ /* 1840 */ 678, 690, 689, 688, 716, 431, 425, 524, 245, 18,
+ /* 1850 */ 716, 642, 478, 673, 233, 98, 290, 239, 243, 217,
+ /* 1860 */ 429, 716, 474, 672, 717, 241, 35, 405, 238, 471,
+ /* 1870 */ 303, 716, 289, 431, 678, 288, 9, 678, 716, 669,
+ /* 1880 */ 235, 673, 296, 670, 322, 38, 39, 414, 102, 44,
+ /* 1890 */ 717, 300, 40, 716, 407, 302, 148, 66, 227, 151,
+ /* 1900 */ 3, 213, 81, 269, 97, 678, 642, 417, 410, 140,
+ /* 1910 */ 688, 430, 717, 262, 429, 691, 716, 361, 109, 348,
+ /* 1920 */ 394, 390, 678, 690, 689, 688, 716, 431, 584, 429,
+ /* 1930 */ 716, 429, 716, 429, 642, 673, 192, 593, 133, 304,
+ /* 1940 */ 717, 146, 431, 381, 431, 579, 431, 429, 277, 429,
+ /* 1950 */ 673, 184, 673, 172, 673, 163, 678, 578, 9, 678,
+ /* 1960 */ 431, 669, 431, 330, 429, 575, 715, 714, 673, 171,
+ /* 1970 */ 673, 183, 717, 574, 717, 573, 429, 431, 317, 310,
+ /* 1980 */ 548, 555, 443, 547, 546, 673, 188, 429, 642, 431,
+ /* 1990 */ 545, 309, 715, 714, 536, 716, 128, 673, 314, 428,
+ /* 2000 */ 431, 80, 127, 642, 519, 642, 429, 642, 673, 313,
+ /* 2010 */ 366, 429, 716, 341, 715, 714, 717, 106, 429, 431,
+ /* 2020 */ 211, 642, 261, 642, 431, 472, 493, 673, 312, 126,
+ /* 2030 */ 717, 431, 673, 170, 355, 429, 282, 25, 642, 673,
+ /* 2040 */ 93, 429, 715, 714, 124, 527, 429, 263, 431, 716,
+ /* 2050 */ 642, 429, 252, 78, 431, 105, 673, 169, 249, 431,
+ /* 2060 */ 716, 642, 673, 168, 431, 716, 429, 673, 166, 429,
+ /* 2070 */ 84, 716, 673, 165, 715, 714, 715, 714, 717, 431,
+ /* 2080 */ 642, 717, 431, 429, 123, 642, 444, 673, 182, 429,
+ /* 2090 */ 673, 164, 642, 240, 236, 364, 431, 717, 121, 464,
+ /* 2100 */ 429, 717, 431, 477, 673, 190, 716, 716, 717, 642,
+ /* 2110 */ 673, 191, 442, 431, 429, 642, 155, 429, 715, 714,
+ /* 2120 */ 642, 673, 174, 717, 429, 642, 514, 431, 429, 237,
+ /* 2130 */ 431, 429, 715, 714, 429, 673, 173, 431, 673, 175,
+ /* 2140 */ 642, 431, 716, 642, 431, 673, 178, 431, 429, 673,
+ /* 2150 */ 94, 349, 673, 177, 429, 673, 176, 642, 104, 120,
+ /* 2160 */ 494, 431, 103, 642, 429, 346, 118, 431, 344, 673,
+ /* 2170 */ 180, 117, 76, 75, 642, 673, 179, 431, 647, 116,
+ /* 2180 */ 715, 714, 74, 715, 714, 673, 167, 115, 642, 73,
+ /* 2190 */ 114, 642, 481, 643, 323, 113, 397, 24, 642, 715,
+ /* 2200 */ 714, 452, 642, 715, 714, 642, 21, 450, 642, 431,
+ /* 2210 */ 715, 714, 101, 100, 446, 112, 62, 673, 70, 440,
+ /* 2220 */ 162, 292, 642, 664, 552, 715, 714, 570, 642, 632,
+ /* 2230 */ 426, 650, 637, 627, 278, 197, 375, 660, 642, 259,
+ /* 2240 */ 362, 523, 6, 305, 682, 659, 649, 557, 210, 521,
+ /* 2250 */ 29, 365, 424, 293, 71, 567, 561, 560, 488, 588,
+ /* 2260 */ 587, 81, 551, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ /* 2270 */ 642,
};
static const YYCODETYPE yy_lookahead[] = {
- /* 0 */ 4, 81, 82, 83, 84, 85, 86, 87, 4, 58,
- /* 10 */ 5, 15, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 20 */ 80, 81, 82, 83, 84, 85, 86, 87, 89, 33,
- /* 30 */ 34, 26, 34, 28, 72, 73, 74, 75, 42, 77,
+ /* 0 */ 4, 110, 111, 4, 81, 82, 83, 84, 85, 86,
+ /* 10 */ 87, 15, 72, 73, 74, 75, 76, 77, 78, 79,
+ /* 20 */ 80, 81, 82, 83, 84, 85, 86, 87, 4, 33,
+ /* 30 */ 34, 194, 195, 196, 72, 73, 74, 75, 42, 77,
/* 40 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- /* 50 */ 45, 55, 96, 48, 98, 59, 93, 104, 62, 63,
+ /* 50 */ 89, 55, 124, 125, 126, 59, 33, 34, 62, 63,
/* 60 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- /* 70 */ 74, 75, 14, 77, 78, 79, 80, 81, 82, 83,
- /* 80 */ 84, 85, 86, 87, 88, 4, 185, 134, 4, 136,
- /* 90 */ 137, 111, 96, 35, 4, 104, 15, 101, 104, 103,
- /* 100 */ 96, 107, 106, 107, 46, 101, 61, 111, 64, 129,
- /* 110 */ 106, 107, 110, 111, 118, 119, 120, 121, 167, 218,
- /* 120 */ 219, 123, 118, 42, 83, 84, 85, 86, 87, 104,
- /* 130 */ 51, 87, 53, 142, 138, 139, 61, 133, 144, 145,
- /* 140 */ 59, 96, 97, 59, 4, 64, 245, 246, 152, 248,
- /* 150 */ 154, 155, 156, 109, 110, 111, 112, 113, 114, 115,
- /* 160 */ 97, 4, 81, 82, 83, 81, 82, 266, 267, 88,
- /* 170 */ 89, 96, 97, 129, 95, 4, 151, 96, 97, 104,
- /* 180 */ 96, 91, 101, 4, 103, 104, 128, 106, 107, 4,
- /* 190 */ 106, 5, 111, 106, 15, 111, 106, 107, 111, 118,
- /* 200 */ 119, 120, 121, 119, 120, 121, 119, 120, 121, 8,
- /* 210 */ 4, 10, 26, 12, 28, 134, 61, 136, 137, 61,
- /* 220 */ 4, 42, 21, 142, 23, 214, 45, 216, 147, 148,
- /* 230 */ 149, 150, 151, 152, 48, 154, 155, 156, 59, 96,
- /* 240 */ 161, 97, 41, 64, 177, 44, 106, 107, 104, 48,
- /* 250 */ 49, 96, 97, 52, 96, 97, 55, 190, 57, 104,
- /* 260 */ 81, 82, 105, 106, 107, 99, 109, 88, 89, 112,
- /* 270 */ 113, 114, 101, 86, 87, 96, 97, 106, 107, 212,
- /* 280 */ 101, 4, 103, 104, 144, 106, 107, 130, 117, 118,
- /* 290 */ 111, 106, 107, 92, 51, 94, 53, 118, 119, 120,
- /* 300 */ 121, 177, 96, 118, 135, 124, 125, 126, 177, 140,
- /* 310 */ 33, 34, 106, 134, 190, 136, 137, 146, 102, 138,
- /* 320 */ 139, 190, 106, 107, 99, 258, 147, 148, 149, 150,
- /* 330 */ 99, 152, 131, 154, 155, 156, 212, 152, 95, 62,
- /* 340 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- /* 350 */ 73, 74, 75, 4, 77, 78, 79, 80, 81, 82,
- /* 360 */ 83, 84, 85, 86, 87, 4, 177, 166, 4, 194,
- /* 370 */ 195, 196, 177, 177, 4, 98, 15, 252, 247, 190,
- /* 380 */ 177, 185, 258, 106, 181, 190, 190, 198, 199, 62,
- /* 390 */ 63, 64, 65, 190, 269, 68, 69, 70, 71, 72,
- /* 400 */ 73, 74, 75, 42, 77, 78, 79, 80, 81, 82,
- /* 410 */ 83, 84, 85, 86, 87, 219, 89, 4, 141, 19,
- /* 420 */ 59, 232, 233, 109, 24, 64, 112, 113, 114, 29,
- /* 430 */ 225, 104, 236, 237, 220, 221, 261, 223, 177, 234,
- /* 440 */ 251, 97, 81, 82, 130, 81, 82, 4, 104, 88,
- /* 450 */ 89, 190, 4, 258, 4, 106, 107, 96, 97, 198,
- /* 460 */ 199, 99, 101, 249, 103, 104, 111, 106, 107, 71,
- /* 470 */ 106, 107, 111, 34, 110, 105, 106, 107, 151, 118,
- /* 480 */ 119, 120, 121, 119, 120, 220, 221, 123, 223, 125,
- /* 490 */ 19, 43, 33, 34, 96, 134, 97, 136, 137, 40,
- /* 500 */ 29, 152, 96, 64, 158, 244, 160, 83, 147, 96,
- /* 510 */ 149, 150, 251, 152, 101, 154, 155, 156, 97, 106,
- /* 520 */ 107, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- /* 530 */ 71, 72, 73, 74, 75, 97, 77, 78, 79, 80,
- /* 540 */ 81, 82, 83, 84, 85, 86, 87, 9, 100, 106,
- /* 550 */ 107, 101, 205, 206, 106, 107, 106, 107, 20, 135,
- /* 560 */ 213, 118, 123, 104, 140, 123, 4, 190, 129, 4,
- /* 570 */ 96, 33, 34, 64, 65, 198, 133, 68, 69, 70,
- /* 580 */ 71, 72, 73, 74, 75, 143, 77, 78, 79, 80,
- /* 590 */ 81, 82, 83, 84, 85, 86, 87, 33, 34, 55,
- /* 600 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- /* 610 */ 72, 73, 74, 75, 164, 77, 78, 79, 80, 81,
- /* 620 */ 82, 83, 84, 85, 86, 87, 62, 63, 64, 65,
- /* 630 */ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- /* 640 */ 4, 77, 78, 79, 80, 81, 82, 83, 84, 85,
- /* 650 */ 86, 87, 33, 34, 110, 77, 78, 79, 80, 81,
- /* 660 */ 82, 83, 84, 85, 86, 87, 177, 177, 106, 107,
- /* 670 */ 50, 106, 182, 108, 54, 104, 186, 187, 116, 190,
- /* 680 */ 190, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- /* 690 */ 71, 72, 73, 74, 75, 12, 77, 78, 79, 80,
- /* 700 */ 81, 82, 83, 84, 85, 86, 87, 62, 63, 64,
- /* 710 */ 65, 98, 23, 68, 69, 70, 71, 72, 73, 74,
- /* 720 */ 75, 96, 77, 78, 79, 80, 81, 82, 83, 84,
- /* 730 */ 85, 86, 87, 113, 89, 188, 100, 101, 191, 192,
- /* 740 */ 193, 97, 106, 107, 55, 62, 63, 64, 65, 104,
- /* 750 */ 98, 68, 69, 70, 71, 72, 73, 74, 75, 30,
- /* 760 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- /* 770 */ 87, 96, 89, 38, 4, 97, 177, 4, 89, 4,
- /* 780 */ 23, 161, 104, 104, 4, 170, 171, 172, 173, 190,
- /* 790 */ 194, 195, 196, 64, 195, 196, 151, 62, 63, 64,
- /* 800 */ 65, 122, 4, 68, 69, 70, 71, 72, 73, 74,
- /* 810 */ 75, 179, 77, 78, 79, 80, 81, 82, 83, 84,
- /* 820 */ 85, 86, 87, 4, 89, 55, 124, 125, 126, 62,
- /* 830 */ 63, 64, 65, 4, 15, 68, 69, 70, 71, 72,
- /* 840 */ 73, 74, 75, 177, 77, 78, 79, 80, 81, 82,
- /* 850 */ 83, 84, 85, 86, 87, 97, 190, 261, 83, 260,
- /* 860 */ 261, 42, 104, 4, 9, 98, 96, 97, 169, 119,
- /* 870 */ 120, 101, 0, 174, 55, 20, 106, 107, 59, 106,
- /* 880 */ 107, 106, 107, 64, 185, 97, 106, 107, 118, 257,
- /* 890 */ 185, 118, 104, 118, 96, 33, 34, 25, 118, 101,
- /* 900 */ 81, 82, 97, 133, 106, 107, 4, 88, 138, 139,
- /* 910 */ 4, 214, 4, 216, 4, 96, 118, 218, 219, 146,
- /* 920 */ 101, 96, 103, 218, 219, 106, 107, 152, 66, 67,
- /* 930 */ 111, 133, 124, 125, 126, 106, 107, 118, 119, 120,
- /* 940 */ 121, 177, 144, 145, 245, 246, 177, 248, 185, 185,
- /* 950 */ 245, 246, 104, 248, 190, 186, 187, 138, 139, 190,
- /* 960 */ 101, 89, 198, 199, 97, 106, 107, 97, 81, 82,
- /* 970 */ 271, 152, 267, 154, 155, 156, 185, 118, 62, 63,
- /* 980 */ 64, 65, 219, 219, 68, 69, 70, 71, 72, 73,
- /* 990 */ 74, 75, 97, 77, 78, 79, 80, 81, 82, 83,
- /* 1000 */ 84, 85, 86, 87, 158, 146, 119, 120, 106, 107,
- /* 1010 */ 219, 101, 106, 107, 106, 251, 106, 107, 272, 273,
- /* 1020 */ 62, 63, 64, 65, 118, 117, 68, 69, 70, 71,
- /* 1030 */ 72, 73, 74, 75, 97, 77, 78, 79, 80, 81,
- /* 1040 */ 82, 83, 84, 85, 86, 87, 144, 62, 63, 64,
- /* 1050 */ 65, 4, 146, 68, 69, 70, 71, 72, 73, 74,
- /* 1060 */ 75, 177, 77, 78, 79, 80, 81, 82, 83, 84,
- /* 1070 */ 85, 86, 87, 163, 190, 159, 191, 192, 193, 195,
- /* 1080 */ 196, 97, 97, 62, 63, 64, 65, 97, 104, 68,
- /* 1090 */ 69, 70, 71, 72, 73, 74, 75, 104, 77, 78,
- /* 1100 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 185,
- /* 1110 */ 172, 173, 13, 62, 63, 64, 65, 159, 97, 68,
- /* 1120 */ 69, 70, 71, 72, 73, 74, 75, 177, 77, 78,
- /* 1130 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 97,
- /* 1140 */ 190, 185, 104, 219, 260, 261, 104, 97, 97, 62,
- /* 1150 */ 63, 64, 65, 106, 107, 68, 69, 70, 71, 72,
- /* 1160 */ 73, 74, 75, 116, 77, 78, 79, 80, 81, 82,
- /* 1170 */ 83, 84, 85, 86, 87, 219, 4, 138, 139, 62,
- /* 1180 */ 63, 64, 65, 25, 97, 68, 69, 70, 71, 72,
- /* 1190 */ 73, 74, 75, 243, 77, 78, 79, 80, 81, 82,
- /* 1200 */ 83, 84, 85, 86, 87, 185, 13, 185, 197, 96,
- /* 1210 */ 13, 62, 63, 64, 65, 98, 205, 68, 69, 70,
- /* 1220 */ 71, 72, 73, 74, 75, 97, 77, 78, 79, 80,
- /* 1230 */ 81, 82, 83, 84, 85, 86, 87, 55, 89, 219,
- /* 1240 */ 4, 219, 62, 63, 64, 65, 30, 89, 68, 69,
- /* 1250 */ 70, 71, 72, 73, 74, 75, 144, 77, 78, 79,
- /* 1260 */ 80, 81, 82, 83, 84, 85, 86, 87, 99, 89,
- /* 1270 */ 99, 89, 104, 101, 62, 63, 64, 65, 106, 107,
- /* 1280 */ 68, 69, 70, 71, 72, 73, 74, 75, 191, 77,
- /* 1290 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- /* 1300 */ 4, 62, 63, 64, 65, 4, 83, 68, 69, 70,
- /* 1310 */ 71, 72, 73, 74, 75, 177, 77, 78, 79, 80,
- /* 1320 */ 81, 82, 83, 84, 85, 86, 87, 4, 190, 4,
- /* 1330 */ 96, 191, 235, 201, 162, 201, 198, 199, 15, 63,
- /* 1340 */ 64, 65, 106, 107, 68, 69, 70, 71, 72, 73,
- /* 1350 */ 74, 75, 4, 77, 78, 79, 80, 81, 82, 83,
- /* 1360 */ 84, 85, 86, 87, 177, 42, 177, 97, 177, 4,
- /* 1370 */ 232, 233, 177, 186, 187, 235, 97, 190, 177, 190,
- /* 1380 */ 185, 190, 59, 104, 252, 190, 252, 64, 152, 251,
- /* 1390 */ 97, 190, 135, 198, 199, 177, 209, 104, 211, 198,
- /* 1400 */ 199, 212, 106, 4, 81, 82, 96, 106, 190, 177,
- /* 1410 */ 4, 88, 191, 117, 219, 97, 198, 199, 117, 96,
- /* 1420 */ 97, 15, 190, 177, 101, 100, 103, 232, 233, 106,
- /* 1430 */ 107, 106, 107, 232, 111, 4, 190, 177, 4, 97,
- /* 1440 */ 4, 118, 119, 120, 121, 17, 251, 258, 42, 101,
- /* 1450 */ 190, 97, 251, 4, 106, 107, 235, 97, 198, 199,
- /* 1460 */ 177, 38, 244, 4, 104, 59, 101, 276, 96, 251,
- /* 1470 */ 64, 106, 107, 190, 4, 152, 4, 154, 155, 156,
- /* 1480 */ 132, 198, 199, 118, 6, 4, 191, 81, 82, 243,
- /* 1490 */ 38, 96, 96, 4, 88, 97, 96, 177, 38, 100,
- /* 1500 */ 101, 181, 96, 97, 15, 106, 107, 101, 276, 103,
- /* 1510 */ 190, 251, 106, 107, 254, 232, 4, 111, 4, 129,
- /* 1520 */ 4, 96, 115, 177, 118, 119, 120, 121, 64, 4,
- /* 1530 */ 235, 42, 101, 103, 251, 101, 190, 106, 107, 98,
- /* 1540 */ 106, 107, 106, 107, 198, 199, 4, 252, 59, 118,
- /* 1550 */ 101, 177, 118, 64, 4, 106, 107, 12, 152, 4,
- /* 1560 */ 154, 155, 156, 4, 190, 106, 107, 118, 98, 123,
- /* 1570 */ 81, 82, 128, 101, 142, 4, 106, 88, 106, 107,
- /* 1580 */ 71, 177, 101, 89, 4, 96, 15, 106, 107, 139,
- /* 1590 */ 101, 132, 103, 157, 190, 106, 107, 251, 71, 177,
- /* 1600 */ 111, 4, 198, 199, 153, 133, 89, 118, 119, 120,
- /* 1610 */ 121, 141, 190, 42, 22, 101, 91, 101, 106, 107,
- /* 1620 */ 106, 107, 106, 107, 177, 177, 4, 146, 181, 47,
- /* 1630 */ 59, 106, 107, 91, 118, 64, 4, 190, 190, 127,
- /* 1640 */ 39, 152, 104, 154, 155, 156, 39, 158, 106, 107,
- /* 1650 */ 91, 177, 81, 82, 161, 251, 106, 107, 4, 88,
- /* 1660 */ 212, 106, 107, 177, 190, 106, 107, 96, 97, 15,
- /* 1670 */ 123, 96, 101, 118, 103, 177, 190, 106, 107, 165,
- /* 1680 */ 177, 96, 111, 95, 198, 199, 106, 107, 190, 118,
- /* 1690 */ 119, 120, 121, 190, 4, 177, 42, 143, 103, 97,
- /* 1700 */ 97, 198, 199, 106, 107, 95, 258, 177, 190, 177,
- /* 1710 */ 236, 237, 93, 59, 164, 37, 198, 199, 64, 36,
- /* 1720 */ 190, 141, 190, 152, 189, 154, 155, 156, 106, 107,
- /* 1730 */ 198, 199, 252, 4, 238, 81, 82, 251, 106, 107,
- /* 1740 */ 4, 204, 88, 146, 204, 177, 177, 4, 273, 177,
- /* 1750 */ 96, 15, 275, 176, 251, 101, 90, 103, 190, 190,
- /* 1760 */ 106, 107, 190, 177, 177, 111, 198, 199, 146, 251,
- /* 1770 */ 198, 199, 118, 119, 120, 121, 190, 190, 42, 4,
- /* 1780 */ 275, 176, 4, 251, 152, 198, 199, 176, 49, 177,
- /* 1790 */ 7, 177, 176, 181, 11, 59, 106, 107, 177, 104,
- /* 1800 */ 64, 4, 190, 177, 190, 4, 152, 181, 154, 155,
- /* 1810 */ 156, 190, 198, 199, 4, 32, 190, 81, 82, 251,
- /* 1820 */ 178, 177, 4, 251, 88, 181, 178, 177, 183, 100,
- /* 1830 */ 60, 181, 96, 15, 190, 106, 107, 101, 251, 103,
- /* 1840 */ 190, 4, 106, 107, 180, 184, 177, 111, 221, 106,
- /* 1850 */ 107, 56, 162, 138, 118, 119, 120, 121, 177, 190,
- /* 1860 */ 42, 118, 177, 177, 243, 251, 181, 198, 199, 151,
- /* 1870 */ 177, 190, 148, 177, 181, 190, 190, 59, 227, 198,
- /* 1880 */ 199, 106, 107, 190, 106, 107, 190, 228, 152, 177,
- /* 1890 */ 154, 155, 156, 118, 198, 199, 118, 229, 177, 81,
- /* 1900 */ 82, 4, 190, 106, 107, 177, 88, 106, 107, 177,
- /* 1910 */ 100, 190, 230, 149, 96, 118, 106, 107, 190, 101,
- /* 1920 */ 251, 103, 190, 237, 106, 107, 198, 199, 177, 111,
- /* 1930 */ 198, 199, 251, 177, 133, 177, 118, 119, 120, 121,
- /* 1940 */ 177, 190, 4, 106, 107, 177, 190, 251, 190, 198,
- /* 1950 */ 199, 4, 147, 190, 198, 199, 198, 199, 190, 4,
- /* 1960 */ 87, 198, 199, 177, 177, 231, 198, 199, 4, 177,
- /* 1970 */ 152, 150, 154, 155, 156, 252, 190, 190, 4, 251,
- /* 1980 */ 177, 177, 190, 251, 198, 199, 177, 203, 177, 152,
- /* 1990 */ 198, 199, 181, 190, 190, 64, 259, 96, 87, 190,
- /* 2000 */ 177, 190, 251, 106, 107, 177, 158, 251, 255, 251,
- /* 2010 */ 177, 177, 177, 190, 251, 118, 177, 177, 190, 251,
- /* 2020 */ 177, 198, 199, 190, 190, 190, 241, 177, 203, 190,
- /* 2030 */ 190, 198, 199, 190, 177, 177, 177, 251, 198, 199,
- /* 2040 */ 190, 198, 199, 251, 106, 107, 177, 190, 190, 190,
- /* 2050 */ 99, 177, 99, 106, 107, 198, 199, 198, 199, 190,
- /* 2060 */ 241, 106, 107, 177, 190, 118, 177, 198, 199, 223,
- /* 2070 */ 106, 107, 198, 199, 251, 4, 190, 177, 200, 190,
- /* 2080 */ 106, 107, 118, 177, 251, 4, 123, 198, 199, 4,
- /* 2090 */ 190, 251, 118, 200, 251, 208, 190, 139, 198, 199,
- /* 2100 */ 177, 177, 177, 165, 198, 199, 177, 31, 251, 200,
- /* 2110 */ 251, 122, 202, 190, 190, 190, 177, 177, 163, 190,
- /* 2120 */ 251, 198, 199, 198, 199, 251, 177, 198, 199, 190,
- /* 2130 */ 190, 177, 200, 177, 208, 200, 177, 198, 199, 190,
- /* 2140 */ 251, 200, 200, 200, 190, 177, 190, 198, 199, 190,
- /* 2150 */ 177, 251, 198, 199, 198, 199, 177, 251, 190, 241,
- /* 2160 */ 177, 99, 177, 190, 203, 203, 198, 199, 180, 190,
- /* 2170 */ 177, 198, 199, 190, 251, 190, 251, 106, 107, 203,
- /* 2180 */ 251, 100, 177, 190, 180, 177, 99, 106, 107, 177,
- /* 2190 */ 251, 106, 107, 177, 99, 190, 177, 264, 190, 27,
- /* 2200 */ 251, 241, 190, 158, 99, 251, 190, 251, 227, 190,
- /* 2210 */ 265, 215, 62, 99, 99, 250, 96, 215, 180, 251,
- /* 2220 */ 99, 241, 227, 152, 251, 241, 180, 99, 217, 60,
- /* 2230 */ 99, 217, 99, 99, 217, 217, 99, 152, 241, 99,
- /* 2240 */ 268, 18, 241, 268, 99, 99, 99, 241, 270, 16,
- /* 2250 */ 224, 226, 261, 261, 201, 256, 201, 242, 206, 210,
- /* 2260 */ 240, 202, 227, 242, 242, 175, 224, 239, 191, 191,
- /* 2270 */ 191, 191, 262, 222, 216, 207, 263, 253, 211, 207,
- /* 2280 */ 207, 274, 198, 55, 198,
+ /* 70 */ 74, 75, 104, 77, 78, 79, 80, 81, 82, 83,
+ /* 80 */ 84, 85, 86, 87, 88, 4, 185, 177, 4, 66,
+ /* 90 */ 67, 4, 96, 4, 97, 93, 15, 101, 261, 103,
+ /* 100 */ 190, 104, 106, 107, 105, 106, 107, 111, 109, 64,
+ /* 110 */ 142, 112, 113, 114, 118, 119, 120, 121, 5, 218,
+ /* 120 */ 219, 96, 4, 42, 83, 84, 85, 86, 87, 130,
+ /* 130 */ 106, 107, 87, 34, 138, 139, 51, 191, 53, 26,
+ /* 140 */ 59, 28, 118, 86, 87, 64, 245, 246, 152, 248,
+ /* 150 */ 154, 155, 123, 157, 109, 110, 111, 112, 113, 114,
+ /* 160 */ 115, 48, 81, 82, 83, 81, 82, 266, 267, 88,
+ /* 170 */ 89, 4, 143, 4, 129, 61, 152, 96, 97, 185,
+ /* 180 */ 95, 235, 101, 96, 103, 104, 276, 106, 107, 252,
+ /* 190 */ 106, 107, 111, 106, 110, 106, 107, 4, 252, 118,
+ /* 200 */ 119, 120, 121, 119, 120, 4, 269, 123, 177, 125,
+ /* 210 */ 96, 97, 218, 219, 4, 134, 15, 136, 137, 101,
+ /* 220 */ 0, 190, 123, 142, 106, 107, 195, 196, 147, 148,
+ /* 230 */ 149, 150, 151, 152, 97, 154, 155, 99, 157, 245,
+ /* 240 */ 246, 152, 248, 42, 4, 25, 161, 77, 78, 79,
+ /* 250 */ 80, 81, 82, 83, 84, 85, 86, 87, 205, 206,
+ /* 260 */ 59, 267, 19, 104, 106, 64, 213, 24, 101, 111,
+ /* 270 */ 101, 19, 29, 106, 107, 106, 107, 119, 120, 121,
+ /* 280 */ 162, 29, 81, 82, 117, 118, 23, 118, 61, 88,
+ /* 290 */ 89, 260, 261, 134, 101, 136, 137, 96, 97, 106,
+ /* 300 */ 107, 225, 101, 4, 103, 104, 96, 106, 107, 89,
+ /* 310 */ 234, 101, 111, 146, 45, 146, 106, 107, 55, 118,
+ /* 320 */ 119, 120, 121, 96, 97, 23, 177, 97, 118, 177,
+ /* 330 */ 99, 104, 33, 34, 104, 134, 96, 136, 137, 190,
+ /* 340 */ 99, 101, 190, 133, 195, 196, 106, 107, 147, 148,
+ /* 350 */ 149, 150, 89, 152, 135, 154, 155, 164, 157, 140,
+ /* 360 */ 4, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ /* 370 */ 71, 72, 73, 74, 75, 4, 77, 78, 79, 80,
+ /* 380 */ 81, 82, 83, 84, 85, 86, 87, 4, 50, 83,
+ /* 390 */ 4, 177, 54, 124, 125, 126, 182, 98, 15, 247,
+ /* 400 */ 186, 187, 177, 177, 190, 106, 99, 138, 139, 260,
+ /* 410 */ 261, 62, 63, 64, 65, 190, 190, 68, 69, 70,
+ /* 420 */ 71, 72, 73, 74, 75, 42, 77, 78, 79, 80,
+ /* 430 */ 81, 82, 83, 84, 85, 86, 87, 4, 89, 83,
+ /* 440 */ 141, 135, 59, 119, 120, 59, 140, 64, 177, 220,
+ /* 450 */ 221, 113, 223, 104, 109, 9, 7, 112, 113, 114,
+ /* 460 */ 11, 190, 106, 107, 81, 82, 20, 81, 82, 198,
+ /* 470 */ 199, 88, 89, 102, 118, 130, 4, 106, 107, 96,
+ /* 480 */ 97, 32, 96, 258, 101, 104, 103, 104, 107, 106,
+ /* 490 */ 107, 96, 106, 98, 111, 4, 111, 111, 58, 161,
+ /* 500 */ 151, 118, 119, 120, 121, 119, 120, 121, 152, 194,
+ /* 510 */ 195, 196, 172, 173, 33, 34, 97, 134, 96, 136,
+ /* 520 */ 137, 40, 251, 104, 253, 144, 145, 51, 177, 53,
+ /* 530 */ 147, 98, 149, 150, 104, 152, 185, 154, 155, 106,
+ /* 540 */ 157, 190, 104, 62, 63, 64, 65, 66, 67, 68,
+ /* 550 */ 69, 70, 71, 72, 73, 74, 75, 25, 77, 78,
+ /* 560 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 9,
+ /* 570 */ 219, 95, 100, 101, 141, 4, 261, 4, 106, 107,
+ /* 580 */ 20, 151, 4, 97, 4, 104, 97, 236, 237, 4,
+ /* 590 */ 104, 100, 101, 33, 34, 64, 65, 106, 107, 68,
+ /* 600 */ 69, 70, 71, 72, 73, 74, 75, 167, 77, 78,
+ /* 610 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 33,
+ /* 620 */ 34, 89, 62, 63, 64, 65, 66, 67, 68, 69,
+ /* 630 */ 70, 71, 72, 73, 74, 75, 96, 77, 78, 79,
+ /* 640 */ 80, 81, 82, 83, 84, 85, 86, 87, 62, 63,
+ /* 650 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ /* 660 */ 74, 75, 4, 77, 78, 79, 80, 81, 82, 83,
+ /* 670 */ 84, 85, 86, 87, 33, 34, 91, 106, 107, 106,
+ /* 680 */ 107, 101, 272, 273, 106, 107, 106, 107, 179, 116,
+ /* 690 */ 188, 106, 107, 191, 192, 193, 97, 158, 127, 160,
+ /* 700 */ 55, 43, 97, 62, 63, 64, 65, 66, 67, 68,
+ /* 710 */ 69, 70, 71, 72, 73, 74, 75, 12, 77, 78,
+ /* 720 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 62,
+ /* 730 */ 63, 64, 65, 97, 156, 68, 69, 70, 71, 72,
+ /* 740 */ 73, 74, 75, 163, 77, 78, 79, 80, 81, 82,
+ /* 750 */ 83, 84, 85, 86, 87, 110, 89, 97, 100, 170,
+ /* 760 */ 171, 172, 173, 61, 106, 107, 257, 62, 63, 64,
+ /* 770 */ 65, 104, 61, 68, 69, 70, 71, 72, 73, 74,
+ /* 780 */ 75, 96, 77, 78, 79, 80, 81, 82, 83, 84,
+ /* 790 */ 85, 86, 87, 97, 89, 38, 4, 111, 96, 97,
+ /* 800 */ 104, 4, 124, 125, 126, 191, 104, 96, 97, 197,
+ /* 810 */ 177, 4, 81, 82, 181, 129, 4, 205, 151, 62,
+ /* 820 */ 63, 64, 65, 190, 4, 68, 69, 70, 71, 72,
+ /* 830 */ 73, 74, 75, 97, 77, 78, 79, 80, 81, 82,
+ /* 840 */ 83, 84, 85, 86, 87, 4, 89, 55, 4, 235,
+ /* 850 */ 119, 120, 62, 63, 64, 65, 15, 104, 68, 69,
+ /* 860 */ 70, 71, 72, 73, 74, 75, 201, 77, 78, 79,
+ /* 870 */ 80, 81, 82, 83, 84, 85, 86, 87, 190, 104,
+ /* 880 */ 4, 138, 139, 42, 71, 4, 198, 98, 96, 97,
+ /* 890 */ 169, 220, 221, 101, 223, 174, 55, 122, 106, 107,
+ /* 900 */ 59, 97, 177, 106, 107, 64, 185, 100, 104, 96,
+ /* 910 */ 118, 186, 187, 106, 107, 190, 96, 252, 106, 107,
+ /* 920 */ 249, 101, 81, 82, 96, 133, 106, 107, 97, 88,
+ /* 930 */ 138, 139, 4, 177, 209, 5, 211, 96, 118, 218,
+ /* 940 */ 219, 177, 101, 146, 103, 101, 190, 106, 107, 159,
+ /* 950 */ 106, 107, 111, 133, 190, 185, 26, 30, 28, 118,
+ /* 960 */ 119, 120, 121, 177, 144, 145, 245, 246, 177, 248,
+ /* 970 */ 191, 55, 91, 177, 162, 45, 190, 101, 48, 138,
+ /* 980 */ 139, 190, 106, 107, 198, 199, 190, 106, 107, 219,
+ /* 990 */ 146, 64, 271, 152, 118, 154, 155, 97, 157, 98,
+ /* 1000 */ 62, 63, 64, 65, 104, 89, 68, 69, 70, 71,
+ /* 1010 */ 72, 73, 74, 75, 235, 77, 78, 79, 80, 81,
+ /* 1020 */ 82, 83, 84, 85, 86, 87, 4, 236, 237, 4,
+ /* 1030 */ 244, 191, 192, 193, 106, 107, 98, 251, 34, 243,
+ /* 1040 */ 276, 97, 62, 63, 64, 65, 118, 201, 68, 69,
+ /* 1050 */ 70, 71, 72, 73, 74, 75, 96, 77, 78, 79,
+ /* 1060 */ 80, 81, 82, 83, 84, 85, 86, 87, 64, 62,
+ /* 1070 */ 63, 64, 65, 13, 146, 68, 69, 70, 71, 72,
+ /* 1080 */ 73, 74, 75, 177, 77, 78, 79, 80, 81, 82,
+ /* 1090 */ 83, 84, 85, 86, 87, 104, 190, 13, 252, 62,
+ /* 1100 */ 63, 64, 65, 104, 97, 68, 69, 70, 71, 72,
+ /* 1110 */ 73, 74, 75, 91, 77, 78, 79, 80, 81, 82,
+ /* 1120 */ 83, 84, 85, 86, 87, 96, 13, 123, 106, 107,
+ /* 1130 */ 185, 106, 107, 129, 97, 62, 63, 64, 65, 159,
+ /* 1140 */ 30, 68, 69, 70, 71, 72, 73, 74, 75, 243,
+ /* 1150 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ /* 1160 */ 87, 185, 4, 97, 219, 62, 63, 64, 65, 144,
+ /* 1170 */ 97, 68, 69, 70, 71, 72, 73, 74, 75, 177,
+ /* 1180 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ /* 1190 */ 87, 97, 190, 185, 144, 219, 99, 62, 63, 64,
+ /* 1200 */ 65, 98, 83, 68, 69, 70, 71, 72, 73, 74,
+ /* 1210 */ 75, 99, 77, 78, 79, 80, 81, 82, 83, 84,
+ /* 1220 */ 85, 86, 87, 185, 89, 97, 4, 219, 62, 63,
+ /* 1230 */ 64, 65, 104, 104, 68, 69, 70, 71, 72, 73,
+ /* 1240 */ 74, 75, 96, 77, 78, 79, 80, 81, 82, 83,
+ /* 1250 */ 84, 85, 86, 87, 4, 89, 97, 219, 4, 101,
+ /* 1260 */ 62, 63, 64, 65, 106, 107, 68, 69, 70, 71,
+ /* 1270 */ 72, 73, 74, 75, 4, 77, 78, 79, 80, 81,
+ /* 1280 */ 82, 83, 84, 85, 86, 87, 4, 62, 63, 64,
+ /* 1290 */ 65, 133, 4, 68, 69, 70, 71, 72, 73, 74,
+ /* 1300 */ 75, 177, 77, 78, 79, 80, 81, 82, 83, 84,
+ /* 1310 */ 85, 86, 87, 4, 190, 97, 185, 135, 158, 96,
+ /* 1320 */ 17, 191, 104, 101, 15, 63, 64, 65, 106, 107,
+ /* 1330 */ 68, 69, 70, 71, 72, 73, 74, 75, 38, 77,
+ /* 1340 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ /* 1350 */ 219, 42, 4, 214, 132, 216, 106, 107, 177, 96,
+ /* 1360 */ 106, 107, 177, 4, 177, 235, 185, 243, 59, 6,
+ /* 1370 */ 185, 190, 118, 64, 97, 190, 106, 190, 108, 198,
+ /* 1380 */ 199, 104, 4, 198, 199, 198, 199, 133, 106, 101,
+ /* 1390 */ 81, 82, 97, 97, 106, 107, 4, 88, 177, 117,
+ /* 1400 */ 219, 97, 152, 97, 219, 96, 97, 15, 104, 97,
+ /* 1410 */ 101, 190, 103, 232, 233, 106, 107, 232, 177, 232,
+ /* 1420 */ 111, 214, 177, 216, 4, 96, 177, 118, 119, 120,
+ /* 1430 */ 121, 190, 251, 4, 42, 190, 251, 14, 251, 190,
+ /* 1440 */ 4, 97, 38, 198, 199, 96, 177, 198, 199, 177,
+ /* 1450 */ 97, 59, 96, 165, 106, 107, 64, 38, 35, 190,
+ /* 1460 */ 4, 152, 190, 154, 155, 106, 157, 198, 199, 46,
+ /* 1470 */ 198, 199, 4, 81, 82, 96, 117, 232, 233, 4,
+ /* 1480 */ 88, 232, 233, 115, 106, 107, 4, 129, 96, 97,
+ /* 1490 */ 15, 64, 144, 101, 177, 103, 251, 103, 106, 107,
+ /* 1500 */ 251, 232, 12, 111, 4, 177, 4, 190, 98, 177,
+ /* 1510 */ 118, 119, 120, 121, 186, 187, 244, 42, 190, 141,
+ /* 1520 */ 251, 4, 190, 251, 123, 142, 106, 107, 177, 71,
+ /* 1530 */ 71, 128, 139, 153, 59, 106, 107, 101, 118, 64,
+ /* 1540 */ 4, 190, 106, 107, 152, 116, 154, 155, 4, 157,
+ /* 1550 */ 89, 128, 177, 89, 118, 22, 81, 82, 47, 91,
+ /* 1560 */ 39, 4, 106, 88, 177, 190, 146, 177, 181, 237,
+ /* 1570 */ 104, 96, 15, 117, 106, 107, 101, 190, 103, 177,
+ /* 1580 */ 190, 106, 107, 101, 177, 177, 111, 4, 106, 107,
+ /* 1590 */ 39, 177, 190, 118, 119, 120, 121, 190, 190, 42,
+ /* 1600 */ 118, 101, 212, 101, 190, 161, 106, 107, 106, 107,
+ /* 1610 */ 123, 103, 198, 199, 95, 177, 59, 4, 118, 181,
+ /* 1620 */ 118, 64, 4, 106, 107, 96, 143, 152, 190, 154,
+ /* 1630 */ 155, 96, 157, 158, 177, 118, 97, 97, 81, 82,
+ /* 1640 */ 95, 93, 106, 107, 4, 88, 177, 190, 258, 177,
+ /* 1650 */ 106, 107, 37, 96, 97, 15, 36, 252, 101, 190,
+ /* 1660 */ 103, 273, 190, 106, 107, 251, 177, 189, 111, 212,
+ /* 1670 */ 198, 199, 177, 4, 204, 118, 119, 120, 121, 190,
+ /* 1680 */ 4, 177, 42, 238, 204, 190, 4, 198, 199, 106,
+ /* 1690 */ 107, 275, 177, 177, 190, 177, 152, 181, 176, 59,
+ /* 1700 */ 164, 118, 198, 199, 64, 190, 190, 275, 190, 152,
+ /* 1710 */ 176, 154, 155, 4, 157, 258, 198, 199, 100, 106,
+ /* 1720 */ 107, 81, 82, 251, 106, 107, 4, 90, 88, 177,
+ /* 1730 */ 176, 118, 177, 4, 178, 177, 96, 15, 49, 177,
+ /* 1740 */ 251, 101, 190, 103, 176, 190, 106, 107, 190, 177,
+ /* 1750 */ 177, 111, 190, 198, 199, 251, 198, 199, 118, 119,
+ /* 1760 */ 120, 121, 190, 190, 42, 177, 177, 177, 60, 251,
+ /* 1770 */ 181, 198, 199, 178, 212, 106, 107, 177, 190, 190,
+ /* 1780 */ 190, 59, 106, 107, 212, 180, 64, 183, 106, 107,
+ /* 1790 */ 190, 104, 152, 184, 154, 155, 64, 157, 198, 199,
+ /* 1800 */ 118, 132, 56, 81, 82, 87, 251, 254, 4, 251,
+ /* 1810 */ 88, 252, 221, 177, 158, 106, 107, 181, 96, 15,
+ /* 1820 */ 258, 177, 146, 101, 251, 103, 190, 118, 106, 107,
+ /* 1830 */ 258, 177, 177, 111, 190, 106, 107, 177, 138, 227,
+ /* 1840 */ 118, 119, 120, 121, 190, 190, 42, 118, 177, 151,
+ /* 1850 */ 190, 251, 181, 198, 199, 8, 228, 10, 177, 12,
+ /* 1860 */ 177, 190, 181, 59, 4, 177, 149, 148, 21, 181,
+ /* 1870 */ 23, 190, 229, 190, 152, 230, 154, 155, 190, 157,
+ /* 1880 */ 177, 198, 199, 231, 181, 81, 82, 203, 41, 150,
+ /* 1890 */ 4, 44, 88, 190, 147, 48, 49, 96, 259, 52,
+ /* 1900 */ 96, 87, 55, 177, 57, 101, 251, 103, 203, 241,
+ /* 1910 */ 106, 107, 4, 177, 177, 111, 190, 177, 99, 177,
+ /* 1920 */ 223, 139, 118, 119, 120, 121, 190, 190, 200, 177,
+ /* 1930 */ 190, 177, 190, 177, 251, 198, 199, 241, 99, 92,
+ /* 1940 */ 4, 94, 190, 123, 190, 200, 190, 177, 200, 177,
+ /* 1950 */ 198, 199, 198, 199, 198, 199, 152, 208, 154, 155,
+ /* 1960 */ 190, 157, 190, 31, 177, 202, 106, 107, 198, 199,
+ /* 1970 */ 198, 199, 4, 122, 4, 200, 177, 190, 131, 203,
+ /* 1980 */ 200, 208, 177, 200, 200, 198, 199, 177, 251, 190,
+ /* 1990 */ 200, 203, 106, 107, 241, 190, 99, 198, 199, 177,
+ /* 2000 */ 190, 180, 99, 251, 118, 251, 177, 251, 198, 199,
+ /* 2010 */ 203, 177, 190, 166, 106, 107, 4, 180, 177, 190,
+ /* 2020 */ 241, 251, 264, 251, 190, 165, 118, 198, 199, 99,
+ /* 2030 */ 4, 190, 198, 199, 27, 177, 177, 158, 251, 198,
+ /* 2040 */ 199, 177, 106, 107, 99, 227, 177, 177, 190, 190,
+ /* 2050 */ 251, 177, 177, 215, 190, 62, 198, 199, 177, 190,
+ /* 2060 */ 190, 251, 198, 199, 190, 190, 177, 198, 199, 177,
+ /* 2070 */ 96, 190, 198, 199, 106, 107, 106, 107, 4, 190,
+ /* 2080 */ 251, 4, 190, 177, 99, 251, 118, 198, 199, 177,
+ /* 2090 */ 198, 199, 251, 177, 177, 265, 190, 4, 99, 163,
+ /* 2100 */ 177, 4, 190, 133, 198, 199, 190, 190, 4, 251,
+ /* 2110 */ 198, 199, 100, 190, 177, 251, 250, 177, 106, 107,
+ /* 2120 */ 251, 198, 199, 4, 177, 251, 215, 190, 177, 177,
+ /* 2130 */ 190, 177, 106, 107, 177, 198, 199, 190, 198, 199,
+ /* 2140 */ 251, 190, 190, 251, 190, 198, 199, 190, 177, 198,
+ /* 2150 */ 199, 241, 198, 199, 177, 198, 199, 251, 180, 99,
+ /* 2160 */ 227, 190, 180, 251, 177, 241, 99, 190, 60, 198,
+ /* 2170 */ 199, 99, 217, 217, 251, 198, 199, 190, 152, 99,
+ /* 2180 */ 106, 107, 217, 106, 107, 198, 199, 99, 251, 217,
+ /* 2190 */ 99, 251, 118, 100, 241, 99, 177, 268, 251, 106,
+ /* 2200 */ 107, 18, 251, 106, 107, 251, 268, 241, 251, 190,
+ /* 2210 */ 106, 107, 99, 99, 241, 99, 270, 198, 199, 16,
+ /* 2220 */ 224, 226, 251, 261, 105, 106, 107, 206, 251, 152,
+ /* 2230 */ 255, 201, 240, 242, 201, 210, 202, 261, 251, 242,
+ /* 2240 */ 242, 227, 224, 175, 191, 191, 191, 191, 262, 152,
+ /* 2250 */ 256, 263, 216, 222, 239, 207, 207, 207, 274, 198,
+ /* 2260 */ 198, 55, 211, 277, 277, 277, 277, 277, 277, 277,
+ /* 2270 */ 251,
};
-#define YY_SHIFT_USE_DFLT (-81)
+#define YY_SHIFT_USE_DFLT (-110)
#define YY_SHIFT_COUNT (435)
-#define YY_SHIFT_MIN (-80)
-#define YY_SHIFT_MAX (2233)
+#define YY_SHIFT_MIN (-109)
+#define YY_SHIFT_MAX (2206)
static const short yy_shift_ofst[] = {
- /* 0 */ 1158, -4, 201, 1182, 819, 1571, 1571, 689, 361, 1489,
- /* 10 */ 1654, 1654, 1654, 770, 364, 364, 157, 81, 179, 1406,
- /* 20 */ 1323, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654,
- /* 30 */ 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654,
- /* 40 */ 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654,
- /* 50 */ 1654, 1654, 1654, 1654, 1654, 1654, 1736, 1654, 1818, 370,
- /* 60 */ 798, 181, 370, 1837, 1837, 1837, 1837, 887, 887, 565,
- /* 70 */ 277, 4, 1516, 1514, 1481, 1472, 1449, 1434, 1431, 1365,
- /* 80 */ 1348, 448, 1399, 2071, 2071, 2085, 439, 2071, 2081, 1837,
- /* 90 */ 565, 1039, 538, 538, 735, 84, 44, 171, 859, 775,
- /* 100 */ 906, 773, 910, 636, 1172, 5, 450, 5, 443, 413,
- /* 110 */ 185, 1729, 1974, 1955, 1938, 1622, 1801, 1964, 1810, 1797,
- /* 120 */ 1690, 1947, 1632, 1897, 1778, 1555, 1550, 1459, 1325, 1775,
- /* 130 */ 1047, 1512, 1743, 902, 140, 1470, 1470, 1597, 1580, 1470,
- /* 140 */ 1236, 780, 1436, 349, 562, 216, 620, 1559, 1542, 1525,
- /* 150 */ 90, 829, 829, 829, 872, 544, 2228, 2228, 2228, 2228,
- /* 160 */ 2228, -81, -81, 459, 619, 619, 619, 619, 619, 619,
- /* 170 */ 619, 619, 619, 645, 327, 683, 1180, 1149, 1117, 1087,
- /* 180 */ 1051, 1021, 985, 958, 916, 767, 1239, 1212, 1276, 509,
- /* 190 */ 509, -60, -38, -38, -38, -38, 578, -80, 314, 87,
- /* 200 */ 87, 41, 155, 75, 58, 58, 58, -6, 186, 862,
- /* 210 */ -47, 808, 1783, 1301, 1296, 206, 908, 424, 400, 25,
- /* 220 */ 729, 729, 679, 1360, -2, 855, 729, 442, 346, 855,
- /* 230 */ 750, 750, 187, -9, 169, 2233, 2147, 2146, 2145, 2223,
- /* 240 */ 2223, 2140, 2137, 2169, 2134, 2169, 2133, 2169, 2131, 2169,
- /* 250 */ 2128, 1770, 1718, 2121, 1770, 2150, 2120, 2115, 2114, 2150,
- /* 260 */ 1718, 2105, 2045, 2172, 2095, 1770, 2087, 1901, 1770, 2062,
- /* 270 */ 1901, 1963, 1963, 1963, 1963, 2076, 1901, 1963, 1989, 1963,
- /* 280 */ 2076, 1963, 1963, 1958, 1953, 1951, 1848, 1901, 1911, 1901,
- /* 290 */ 1931, 1873, 1821, 1805, 1764, 1724, 1718, 1715, 1795, 1695,
- /* 300 */ 1770, 1739, 1739, 1666, 1666, 1666, 1666, -81, -81, -81,
- /* 310 */ -81, -81, -81, -81, -81, -81, -81, 564, 79, 158,
- /* 320 */ 45, 702, 243, -49, 398, 1293, 1279, 1042, 984, 788,
- /* 330 */ 2, 471, -20, 758, 678, 344, 144, -44, 1683, 1678,
- /* 340 */ 1619, 1610, 1603, 1602, 1595, 1585, 1554, 1588, 1575, 1547,
- /* 350 */ 1493, 1607, 1538, 1601, 1582, 1592, 1517, 1494, 1450, 1451,
- /* 360 */ 1527, 1509, 1444, 1432, 1545, 1446, 1441, 1430, 1464, 1390,
- /* 370 */ 1407, 1425, 1460, 1400, 1396, 1398, 1395, 1452, 1478, 1372,
- /* 380 */ 1423, 1428, 1354, 1342, 1318, 1168, 1257, 1310, 1270, 1234,
- /* 390 */ 1168, 1223, 1171, 1169, 1112, 1128, 1050, 1216, 1197, 1113,
- /* 400 */ 993, 1193, 1038, 1099, 993, 990, 937, 846, 895, 870,
- /* 410 */ 848, 867, 825, 757, 805, 675, 652, 571, 644, 625,
- /* 420 */ 613, 571, 438, 474, 421, 399, 406, 355, 362, 231,
- /* 430 */ 225, 166, 143, 63, -37, -61,
+ /* 0 */ 532, -4, 1847, 841, 916, 1557, 1557, 263, 383, 1475,
+ /* 10 */ 1722, 1640, 1640, 792, 84, 84, -1, 81, 201, 1392,
+ /* 20 */ 1309, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
+ /* 30 */ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
+ /* 40 */ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
+ /* 50 */ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1804, 2119,
+ /* 60 */ 820, 269, 2119, 2026, 2026, 2026, 2026, 731, 731, 1270,
+ /* 70 */ 299, 210, 1502, 1288, 844, 1158, 1500, 1482, 1436, 876,
+ /* 80 */ 1222, 658, 491, 2077, 2077, 2097, 1004, 2077, 2093, 2026,
+ /* 90 */ 1270, 743, 560, 560, 757, 386, 45, 167, 169, 356,
+ /* 100 */ 1420, 928, 580, 472, 118, 930, 193, 930, 240, 1254,
+ /* 110 */ 24, 2012, 1968, 1936, 1860, 1676, 1970, 2074, 1618, 1908,
+ /* 120 */ 812, 1886, 1544, 1729, 1709, 1682, 1536, 1669, 807, 1613,
+ /* 130 */ 1429, 571, 1583, 1517, 1348, 1025, 433, 433, 797, 1378,
+ /* 140 */ 433, 1250, 578, 89, 573, 371, 338, 1468, 1022, 881,
+ /* 150 */ 585, 2104, 2104, 2104, 220, 645, 2206, 2206, 2206, 2206,
+ /* 160 */ 2206, -110, -110, 481, 641, 641, 641, 641, 641, 641,
+ /* 170 */ 641, 641, 641, 667, 349, 705, 1166, 1135, 1103, 1073,
+ /* 180 */ 1037, 1007, 980, 938, 790, 1225, 1198, 1262, 531, 531,
+ /* 190 */ -60, -38, -38, -38, -38, 170, -77, 345, 158, 158,
+ /* 200 */ 41, 702, 227, 1423, 1423, 1423, 381, 159, 113, 23,
+ /* 210 */ 678, 449, 1456, 1359, 87, 1282, 306, 243, 430, 927,
+ /* 220 */ 927, 775, 1304, 99, 446, 927, 29, 446, 324, 324,
+ /* 230 */ -32, 219, 539, 57, 2203, 2116, 2114, 2113, 2183, 2183,
+ /* 240 */ 2096, 2091, 2108, 2088, 2108, 2080, 2108, 2072, 2108, 2067,
+ /* 250 */ 1708, 1698, 2060, 1708, 1993, 1974, 1999, 1985, 1993, 1698,
+ /* 260 */ 1945, 1879, 2007, 1930, 1708, 1903, 1801, 1708, 1897, 1801,
+ /* 270 */ 1820, 1820, 1820, 1820, 1932, 1801, 1820, 1851, 1820, 1932,
+ /* 280 */ 1820, 1820, 1839, 1782, 1819, 1801, 1814, 1801, 1739, 1747,
+ /* 290 */ 1717, 1719, 1698, 1700, 1656, 1732, 1718, 1746, 1687, 1708,
+ /* 300 */ 1689, 1689, 1637, 1637, 1637, 1637, -110, -110, -110, -110,
+ /* 310 */ -110, -110, -110, -110, -110, -110, 586, 85, 711, 114,
+ /* 320 */ -72, 476, 440, 813, 1277, 1218, 1128, 900, 804, -109,
+ /* 330 */ 252, 686, 696, 486, 419, 230, -3, 395, 1620, 1615,
+ /* 340 */ 1548, 1545, 1540, 1539, 1508, 1535, 1483, 1519, 1529, 1487,
+ /* 350 */ 1444, 1551, 1466, 1521, 1511, 1533, 1464, 1461, 1393, 1380,
+ /* 360 */ 1459, 1458, 1403, 1383, 1490, 1401, 1410, 1394, 1427, 1358,
+ /* 370 */ 1368, 1379, 1419, 1356, 1349, 1353, 1329, 1404, 1363, 1263,
+ /* 380 */ 1300, 1303, 1344, 1312, 1306, 1296, 1160, 1295, 1129, 1182,
+ /* 390 */ 1223, 999, 1159, 1146, 1129, 1119, 1112, 1097, 1050, 1094,
+ /* 400 */ 1066, 1110, 1113, 1029, 999, 1084, 991, 1060, 944, 960,
+ /* 410 */ 901, 753, 831, 828, 789, 753, 736, 685, 660, 636,
+ /* 420 */ 540, 605, 599, 489, 438, 422, 302, 385, 307, 241,
+ /* 430 */ 231, 138, 25, 137, 2, -39,
};
-#define YY_REDUCE_USE_DFLT (-100)
-#define YY_REDUCE_COUNT (316)
-#define YY_REDUCE_MIN (-99)
-#define YY_REDUCE_MAX (2090)
+#define YY_REDUCE_USE_DFLT (-164)
+#define YY_REDUCE_COUNT (315)
+#define YY_REDUCE_MIN (-163)
+#define YY_REDUCE_MAX (2068)
static const short yy_reduce_ofst[] = {
- /* 0 */ 615, 1195, 699, -99, 764, 1138, 189, 705, 1283, 1260,
- /* 10 */ 1218, 1201, 261, 196, 884, 599, 1187, 1973, 1968, 1956,
- /* 20 */ 1954, 1949, 1939, 1929, 1925, 1923, 1906, 1900, 1889, 1874,
- /* 30 */ 1869, 1859, 1857, 1843, 1840, 1833, 1823, 1792, 1786, 1768,
- /* 40 */ 1763, 1758, 1756, 1751, 1732, 1728, 1696, 1681, 1669, 1614,
- /* 50 */ 1587, 1572, 1568, 1532, 1518, 1503, 1486, 1404, 1346, 490,
- /* 60 */ 1474, 214, 769, 1448, 1189, 124, 67, 596, 175, 547,
- /* 70 */ 1295, 1686, 1811, 1693, 1685, 1650, 1644, 1626, 1612, 1447,
- /* 80 */ 1320, 1232, 203, 1621, 1246, 131, 347, 950, 1191, 195,
- /* 90 */ 885, 265, 1134, 1132, 125, 377, 1011, 2019, 2016, 1983,
- /* 100 */ 1803, 1803, 2012, 2008, 2005, 697, 1993, 11, 1803, 1985,
- /* 110 */ 1983, 1979, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1959,
- /* 120 */ 1803, 1803, 1940, 1803, 1803, 1924, 1803, 1803, 1803, 1886,
- /* 130 */ 1858, 1850, 1839, 1835, 1834, 1221, 1140, 1828, 1809, 1097,
- /* 140 */ 1804, 1803, 1787, 1721, 1712, 1586, 632, 1569, 1530, 1498,
- /* 150 */ 1422, 1374, 666, 489, 938, 1022, 1020, 956, 924, 791,
- /* 160 */ 763, 746, 205, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
- /* 170 */ 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
- /* 180 */ 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
- /* 190 */ 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 2067, 2086,
- /* 200 */ 2084, 1480, 2007, 2007, 2073, 2072, 2068, 2028, 2058, 2024,
- /* 210 */ 2051, 2013, 2010, 2080, 2079, 2078, 2077, 2042, 2090, 2035,
- /* 220 */ 2022, 2021, 2059, 2049, 2052, 2055, 2015, 2020, 1999, 2053,
- /* 230 */ 1992, 1991, 1480, 2025, 2026, 1978, 1918, 2006, 2001, 1975,
- /* 240 */ 1972, 1997, 1918, 2018, 1918, 2017, 1918, 2014, 1918, 2011,
- /* 250 */ 1984, 2046, 1995, 1980, 2038, 2002, 1965, 1918, 1918, 1996,
- /* 260 */ 1981, 1918, 1945, 1933, 1960, 2004, 1918, 1976, 1988, 1918,
- /* 270 */ 1962, 1943, 1942, 1941, 1935, 1926, 1961, 1932, 1910, 1909,
- /* 280 */ 1887, 1893, 1878, 1846, 1819, 1785, 1753, 1825, 1737, 1784,
- /* 290 */ 1723, 1480, 1734, 1682, 1668, 1659, 1651, 1627, 1661, 1645,
- /* 300 */ 1664, 1648, 1642, 1616, 1611, 1605, 1577, 1505, 1477, 1475,
- /* 310 */ 1540, 1537, 1496, 1480, 1480, 1480, 1535,
+ /* 0 */ 589, 1181, 721, 1185, -99, 1249, 1245, -6, 1269, 271,
+ /* 10 */ 1272, 1187, 786, 351, 149, 31, 725, 2019, 1987, 1977,
+ /* 20 */ 1971, 1957, 1954, 1951, 1947, 1940, 1937, 1923, 1912, 1906,
+ /* 30 */ 1892, 1889, 1874, 1869, 1864, 1858, 1841, 1834, 1829, 1810,
+ /* 40 */ 1799, 1787, 1772, 1770, 1756, 1754, 1752, 1737, 1683, 1655,
+ /* 50 */ 1600, 1573, 1558, 1555, 1518, 1504, 1489, 1472, 1414, 214,
+ /* 60 */ 791, 671, 1328, 1572, 1562, 1457, 1390, 315, -163, 502,
+ /* 70 */ -54, 1332, 1703, 1688, 1681, 1671, 1636, 1589, 1516, 1438,
+ /* 80 */ 1387, 764, 633, 1124, 906, 152, 53, 796, -90, 225,
+ /* 90 */ 840, 229, 846, 665, -63, 688, 612, 1952, 1917, 1822,
+ /* 100 */ 1590, 1590, 1916, 1881, 1875, 1207, 1870, 1139, 1859, 1590,
+ /* 110 */ 1822, 1805, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1742,
+ /* 120 */ 1590, 1590, 1740, 1590, 1590, 1736, 1590, 1590, 1590, 1726,
+ /* 130 */ 1660, 1654, 1644, 1590, 1588, 1552, 1130, 779, 1515, 1495,
+ /* 140 */ 614, 1469, 1408, 1407, 1402, 1375, 509, 1351, 1317, 1241,
+ /* 150 */ 1221, 1002, 756, 226, 340, 1131, 1038, 1008, 976, 945,
+ /* 160 */ 770, 410, 76, 1405, 1405, 1405, 1405, 1405, 1405, 1405,
+ /* 170 */ 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405,
+ /* 180 */ 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405,
+ /* 190 */ 1405, 1405, 1405, 1405, 1405, 1405, 1405, 2051, 2062, 2061,
+ /* 200 */ 1405, 1984, 1984, 2050, 2049, 2048, 2015, 2031, 2036, 1994,
+ /* 210 */ 1988, 1986, 2056, 2055, 2054, 2053, 2018, 2068, 2014, 1998,
+ /* 220 */ 1997, 2034, 2025, 2021, 2033, 1991, 1992, 2030, 1976, 1962,
+ /* 230 */ 1995, 1996, 1975, 1405, 1946, 1753, 1973, 1966, 1938, 1929,
+ /* 240 */ 1953, 1753, 1972, 1753, 1965, 1753, 1956, 1753, 1955, 1924,
+ /* 250 */ 1982, 1933, 1910, 1978, 1911, 1866, 1753, 1753, 1838, 1818,
+ /* 260 */ 1753, 1830, 1758, 1779, 1837, 1753, 1807, 1821, 1753, 1788,
+ /* 270 */ 1790, 1784, 1783, 1780, 1773, 1776, 1775, 1763, 1748, 1749,
+ /* 280 */ 1745, 1728, 1696, 1697, 1668, 1705, 1639, 1684, 1652, 1645,
+ /* 290 */ 1643, 1628, 1612, 1591, 1553, 1559, 1405, 1609, 1604, 1605,
+ /* 300 */ 1595, 1556, 1568, 1554, 1534, 1522, 1432, 1416, 1388, 1480,
+ /* 310 */ 1470, 1445, 1405, 1405, 1405, 1478,
};
static const YYACTIONTYPE yy_default[] = {
- /* 0 */ 730, 1038, 1143, 1143, 1027, 1027, 1027, 1143, 1027, 1027,
- /* 10 */ 1027, 1027, 1027, 901, 1149, 1149, 1149, 1027, 1027, 1027,
- /* 20 */ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
- /* 30 */ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
- /* 40 */ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
- /* 50 */ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1016, 1149,
+ /* 0 */ 730, 1038, 1143, 1026, 1143, 1026, 1026, 1143, 1026, 1026,
+ /* 10 */ 1026, 1026, 1026, 901, 1149, 1149, 1149, 1026, 1026, 1026,
+ /* 20 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
+ /* 30 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
+ /* 40 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
+ /* 50 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 978, 1149,
/* 60 */ 895, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 775,
/* 70 */ 891, 901, 1149, 1149, 1149, 1149, 1149, 963, 950, 941,
/* 80 */ 1149, 1149, 1149, 973, 973, 956, 843, 973, 1149, 1149,
- /* 90 */ 1149, 1149, 929, 929, 1028, 1149, 767, 1113, 1118, 1014,
- /* 100 */ 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 902, 1149,
- /* 110 */ 1014, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+ /* 90 */ 1149, 1149, 929, 929, 1028, 1149, 767, 1113, 1118, 976,
+ /* 100 */ 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 902,
+ /* 110 */ 976, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
/* 120 */ 1149, 964, 957, 951, 942, 1149, 1149, 1149, 1149, 1149,
- /* 130 */ 1149, 1149, 1149, 1149, 1149, 891, 891, 1149, 1149, 891,
- /* 140 */ 1149, 1149, 1149, 1015, 1149, 1149, 764, 1149, 1149, 1149,
+ /* 130 */ 1149, 1149, 1149, 1149, 1149, 1149, 891, 891, 1149, 1149,
+ /* 140 */ 891, 1149, 1149, 977, 1149, 1149, 764, 1149, 1149, 1149,
/* 150 */ 736, 1059, 1149, 1149, 730, 1143, 1143, 1143, 1143, 1143,
- /* 160 */ 1143, 1136, 881, 936, 907, 946, 934, 938, 1039, 1032,
- /* 170 */ 1033, 1031, 937, 1028, 1028, 1028, 1028, 1028, 1028, 1028,
- /* 180 */ 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 989, 1001,
- /* 190 */ 988, 996, 1005, 1000, 997, 991, 990, 992, 1149, 1149,
- /* 200 */ 1149, 993, 1149, 1149, 1149, 1149, 1149, 894, 1149, 1149,
- /* 210 */ 865, 1149, 1087, 1149, 1149, 777, 1149, 879, 739, 945,
- /* 220 */ 919, 919, 810, 834, 799, 929, 919, 909, 1034, 929,
- /* 230 */ 1149, 1149, 994, 892, 879, 1127, 910, 910, 910, 1112,
- /* 240 */ 1112, 910, 910, 856, 910, 856, 910, 856, 910, 856,
- /* 250 */ 910, 761, 945, 910, 761, 847, 969, 910, 910, 847,
- /* 260 */ 945, 910, 1094, 1092, 910, 761, 910, 1047, 761, 910,
- /* 270 */ 1047, 845, 845, 845, 845, 826, 1047, 845, 810, 845,
- /* 280 */ 826, 845, 845, 1149, 910, 910, 1149, 1047, 1053, 1047,
- /* 290 */ 1028, 995, 935, 923, 933, 930, 945, 1149, 758, 829,
- /* 300 */ 761, 747, 747, 735, 735, 735, 735, 1140, 1140, 1136,
- /* 310 */ 812, 812, 897, 1004, 1003, 1002, 786, 1040, 1149, 1149,
- /* 320 */ 1149, 1149, 1149, 1149, 1061, 1149, 1149, 1149, 1149, 1149,
+ /* 160 */ 1143, 1136, 881, 936, 1032, 1033, 907, 946, 1039, 934,
+ /* 170 */ 938, 937, 1031, 1028, 1028, 1028, 1028, 1028, 1028, 1028,
+ /* 180 */ 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1001, 1013, 1000,
+ /* 190 */ 1008, 1009, 1012, 1003, 1017, 1002, 1004, 1149, 1149, 1149,
+ /* 200 */ 1005, 1149, 1149, 1149, 1149, 1149, 894, 865, 1149, 1149,
+ /* 210 */ 1149, 1087, 1149, 1149, 777, 1149, 879, 739, 945, 919,
+ /* 220 */ 919, 810, 834, 799, 929, 919, 909, 929, 1149, 1149,
+ /* 230 */ 892, 879, 1034, 1006, 1127, 910, 910, 910, 1112, 1112,
+ /* 240 */ 910, 910, 856, 910, 856, 910, 856, 910, 856, 910,
+ /* 250 */ 761, 945, 910, 761, 847, 969, 910, 910, 847, 945,
+ /* 260 */ 910, 1094, 1092, 910, 761, 910, 1047, 761, 910, 1047,
+ /* 270 */ 845, 845, 845, 845, 826, 1047, 845, 810, 845, 826,
+ /* 280 */ 845, 845, 910, 1149, 910, 1047, 1053, 1047, 935, 923,
+ /* 290 */ 933, 930, 945, 1149, 1149, 1028, 1007, 758, 829, 761,
+ /* 300 */ 747, 747, 735, 735, 735, 735, 1140, 1140, 1136, 812,
+ /* 310 */ 812, 897, 1016, 1015, 1014, 786, 1040, 1149, 1149, 1149,
+ /* 320 */ 1149, 1149, 1149, 1061, 1149, 1149, 1149, 1149, 1149, 1149,
/* 330 */ 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 731,
/* 340 */ 1149, 1149, 1149, 1149, 1149, 1130, 1149, 1149, 1149, 1149,
/* 350 */ 1149, 1149, 1091, 1090, 1149, 1149, 1149, 1149, 1149, 1149,
/* 360 */ 1149, 1149, 1149, 1149, 1079, 1149, 1149, 1149, 1149, 1149,
/* 370 */ 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
- /* 380 */ 1149, 1149, 1149, 1149, 1149, 868, 870, 1149, 1149, 1149,
- /* 390 */ 869, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
- /* 400 */ 931, 1149, 924, 1149, 1037, 1149, 1018, 1026, 1149, 1149,
- /* 410 */ 1149, 1149, 1149, 1017, 1149, 1149, 1149, 1145, 1149, 1149,
- /* 420 */ 1149, 1144, 1149, 1149, 1149, 1149, 1149, 1029, 981, 1149,
- /* 430 */ 980, 979, 770, 1149, 745, 1149, 727, 732, 1129, 1126,
+ /* 380 */ 1149, 1149, 1149, 1149, 1149, 980, 1027, 1149, 868, 870,
+ /* 390 */ 1149, 1037, 1149, 1149, 869, 1149, 1149, 1149, 1149, 1149,
+ /* 400 */ 1149, 1149, 1149, 1149, 931, 1149, 924, 1149, 1149, 1149,
+ /* 410 */ 1149, 1145, 1149, 1149, 1149, 1144, 1149, 1149, 1149, 1149,
+ /* 420 */ 1149, 1149, 1149, 1149, 1149, 1149, 979, 1029, 993, 1149,
+ /* 430 */ 992, 991, 770, 1149, 745, 1149, 727, 732, 1129, 1126,
/* 440 */ 1128, 1123, 1124, 1122, 1125, 1121, 1119, 1120, 1117, 1115,
/* 450 */ 1114, 1116, 1111, 1107, 1067, 1065, 1063, 1072, 1071, 1070,
/* 460 */ 1069, 1068, 1064, 1062, 1066, 1060, 960, 948, 939, 863,
@@ -854,16 +852,16 @@ static const YYACTIONTYPE yy_default[] = {
/* 560 */ 817, 816, 823, 822, 821, 820, 819, 815, 818, 814,
/* 570 */ 813, 805, 798, 797, 811, 796, 828, 827, 824, 795,
/* 580 */ 851, 850, 849, 846, 794, 793, 792, 791, 790, 789,
- /* 590 */ 987, 986, 1007, 978, 866, 873, 872, 871, 875, 876,
- /* 600 */ 886, 884, 883, 882, 918, 917, 916, 915, 914, 913,
- /* 610 */ 906, 904, 900, 899, 905, 903, 921, 922, 920, 898,
- /* 620 */ 890, 888, 889, 887, 975, 972, 974, 971, 908, 896,
- /* 630 */ 893, 880, 926, 925, 1030, 1019, 1009, 1020, 911, 1008,
- /* 640 */ 1006, 1029, 1026, 1021, 1103, 1025, 1013, 1012, 1011, 1148,
- /* 650 */ 1146, 1147, 1050, 1052, 1055, 1054, 1051, 928, 927, 1049,
- /* 660 */ 1048, 1010, 985, 782, 780, 781, 1075, 1074, 1077, 1076,
- /* 670 */ 1073, 784, 783, 779, 778, 999, 998, 983, 1022, 1023,
- /* 680 */ 982, 1024, 984, 771, 874, 867, 977, 976, 809, 808,
+ /* 590 */ 999, 998, 1030, 1021, 982, 981, 1020, 1018, 1029, 1019,
+ /* 600 */ 990, 866, 873, 872, 871, 875, 876, 886, 884, 883,
+ /* 610 */ 882, 918, 917, 916, 915, 914, 913, 906, 904, 900,
+ /* 620 */ 899, 911, 905, 903, 921, 922, 920, 898, 890, 888,
+ /* 630 */ 889, 887, 975, 972, 974, 971, 908, 896, 893, 880,
+ /* 640 */ 926, 925, 1027, 1148, 1146, 1147, 1050, 1052, 1055, 1054,
+ /* 650 */ 1051, 928, 927, 1049, 1048, 1022, 997, 782, 780, 781,
+ /* 660 */ 1075, 1074, 1077, 1076, 1073, 784, 783, 779, 778, 995,
+ /* 670 */ 874, 867, 989, 988, 1103, 1024, 1025, 987, 983, 1023,
+ /* 680 */ 1011, 1010, 996, 986, 771, 984, 994, 985, 809, 808,
/* 690 */ 807, 806, 878, 877, 788, 802, 787, 785, 765, 760,
/* 700 */ 759, 754, 752, 749, 751, 748, 753, 750, 746, 744,
/* 710 */ 743, 742, 741, 740, 774, 773, 772, 770, 738, 737,
@@ -1130,8 +1128,8 @@ static const char *const yyTokenName[] = {
"DISTINCT", "ID_ALIAS", "FROM", "USING",
"JOIN", "ID_JOIN_OPTS", "ID_IDX", "ORDER",
"GROUP", "HAVING", "LIMIT", "WHERE",
- "ID_COL", "INTO", "VARIABLE", "CASE",
- "ID_FN", "ID_ERR_MSG", "WHEN", "THEN",
+ "ID_COL", "INTO", "CASE", "ID_FN",
+ "ID_ERR_MSG", "VARIABLE", "WHEN", "THEN",
"ELSE", "INDEX", "ID_IDX_NEW", "ID_PRAGMA",
"ID_TRIG_NEW", "ID_TRIG", "ALTER", "ADD",
"error", "cmd", "input", "cmdlist",
@@ -1155,8 +1153,8 @@ static const char *const yyTokenName[] = {
"joinconstr_opt", "dbnm", "indexed_opt", "inscollist",
"sortlist", "delete_stmt", "update_stmt", "setlist",
"insert_stmt", "insert_cmd", "inscollist_opt", "exprx",
- "not_opt", "likeop", "case_operand", "case_exprlist",
- "case_else", "uniqueflag", "idxlist_single", "collate",
+ "not_opt", "case_operand", "case_exprlist", "case_else",
+ "likeop", "uniqueflag", "idxlist_single", "collate",
"nmnum", "number", "trigger_time", "trigger_event",
"foreach_clause", "when_clause", "trigger_cmd_list", "trigger_cmd",
"database_kw_opt", "key_opt", "kwcolumn_opt", "create_vtab",
@@ -1420,58 +1418,58 @@ static const char *const yyRuleName[] = {
/* 248 */ "inscollist ::=",
/* 249 */ "inscollist ::= inscollist COMMA ID_COL",
/* 250 */ "inscollist ::= ID_COL",
- /* 251 */ "exprx ::= term",
- /* 252 */ "exprx ::= CTIME_KW",
- /* 253 */ "exprx ::= LP expr RP",
- /* 254 */ "exprx ::= id",
- /* 255 */ "exprx ::= JOIN_KW",
- /* 256 */ "exprx ::= nm DOT nm",
- /* 257 */ "exprx ::= nm DOT nm DOT nm",
- /* 258 */ "exprx ::= VARIABLE",
- /* 259 */ "exprx ::= expr COLLATE ids",
- /* 260 */ "exprx ::= CAST LP expr AS typetoken RP",
- /* 261 */ "exprx ::= ID LP distinct exprlist RP",
- /* 262 */ "exprx ::= ID LP STAR RP",
- /* 263 */ "exprx ::= expr AND expr",
- /* 264 */ "exprx ::= expr OR expr",
- /* 265 */ "exprx ::= expr LT|GT|GE|LE expr",
- /* 266 */ "exprx ::= expr EQ|NE expr",
- /* 267 */ "exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
- /* 268 */ "exprx ::= expr PLUS|MINUS expr",
- /* 269 */ "exprx ::= expr STAR|SLASH|REM expr",
- /* 270 */ "exprx ::= expr CONCAT expr",
- /* 271 */ "exprx ::= expr not_opt likeop expr",
- /* 272 */ "exprx ::= expr not_opt likeop expr ESCAPE expr",
- /* 273 */ "exprx ::= expr ISNULL|NOTNULL",
- /* 274 */ "exprx ::= expr NOT NULL",
- /* 275 */ "exprx ::= expr IS not_opt expr",
- /* 276 */ "exprx ::= NOT expr",
- /* 277 */ "exprx ::= BITNOT expr",
- /* 278 */ "exprx ::= MINUS expr",
- /* 279 */ "exprx ::= PLUS expr",
- /* 280 */ "exprx ::= expr not_opt BETWEEN expr AND expr",
- /* 281 */ "exprx ::= expr not_opt IN LP exprlist RP",
- /* 282 */ "exprx ::= LP select RP",
- /* 283 */ "exprx ::= expr not_opt IN LP select RP",
- /* 284 */ "exprx ::= expr not_opt IN nm dbnm",
- /* 285 */ "exprx ::= EXISTS LP select RP",
- /* 286 */ "exprx ::= CASE case_operand case_exprlist case_else END",
- /* 287 */ "exprx ::= RAISE LP IGNORE RP",
- /* 288 */ "exprx ::= RAISE LP raisetype COMMA nm RP",
- /* 289 */ "exprx ::= nm DOT",
- /* 290 */ "exprx ::= nm DOT nm DOT",
- /* 291 */ "exprx ::= expr not_opt BETWEEN expr AND",
- /* 292 */ "exprx ::= CASE case_operand case_exprlist case_else",
- /* 293 */ "exprx ::= expr not_opt IN LP exprlist",
- /* 294 */ "exprx ::= expr not_opt IN ID_DB",
- /* 295 */ "exprx ::= expr not_opt IN nm DOT ID_TAB",
- /* 296 */ "exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN",
- /* 297 */ "exprx ::= nm DOT ID_TAB|ID_COL",
- /* 298 */ "exprx ::= nm DOT nm DOT ID_COL",
- /* 299 */ "exprx ::= expr COLLATE ID_COLLATE",
- /* 300 */ "exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP",
- /* 301 */ "expr ::= exprx",
- /* 302 */ "expr ::=",
+ /* 251 */ "exprx ::= nm DOT",
+ /* 252 */ "exprx ::= nm DOT nm DOT",
+ /* 253 */ "exprx ::= expr not_opt BETWEEN expr AND",
+ /* 254 */ "exprx ::= CASE case_operand case_exprlist case_else",
+ /* 255 */ "exprx ::= expr not_opt IN LP exprlist",
+ /* 256 */ "exprx ::= expr not_opt IN ID_DB",
+ /* 257 */ "exprx ::= expr not_opt IN nm DOT ID_TAB",
+ /* 258 */ "exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN",
+ /* 259 */ "exprx ::= nm DOT ID_TAB|ID_COL",
+ /* 260 */ "exprx ::= nm DOT nm DOT ID_COL",
+ /* 261 */ "exprx ::= expr COLLATE ID_COLLATE",
+ /* 262 */ "exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP",
+ /* 263 */ "exprx ::= term",
+ /* 264 */ "exprx ::= CTIME_KW",
+ /* 265 */ "exprx ::= LP nexprlist RP",
+ /* 266 */ "exprx ::= id",
+ /* 267 */ "exprx ::= JOIN_KW",
+ /* 268 */ "exprx ::= nm DOT nm",
+ /* 269 */ "exprx ::= nm DOT nm DOT nm",
+ /* 270 */ "exprx ::= VARIABLE",
+ /* 271 */ "exprx ::= expr COLLATE ids",
+ /* 272 */ "exprx ::= CAST LP expr AS typetoken RP",
+ /* 273 */ "exprx ::= ID LP distinct exprlist RP",
+ /* 274 */ "exprx ::= ID LP STAR RP",
+ /* 275 */ "exprx ::= expr AND expr",
+ /* 276 */ "exprx ::= expr OR expr",
+ /* 277 */ "exprx ::= expr LT|GT|GE|LE expr",
+ /* 278 */ "exprx ::= expr EQ|NE expr",
+ /* 279 */ "exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
+ /* 280 */ "exprx ::= expr PLUS|MINUS expr",
+ /* 281 */ "exprx ::= expr STAR|SLASH|REM expr",
+ /* 282 */ "exprx ::= expr CONCAT expr",
+ /* 283 */ "exprx ::= expr not_opt likeop expr",
+ /* 284 */ "exprx ::= expr not_opt likeop expr ESCAPE expr",
+ /* 285 */ "exprx ::= expr ISNULL|NOTNULL",
+ /* 286 */ "exprx ::= expr NOT NULL",
+ /* 287 */ "exprx ::= expr IS not_opt expr",
+ /* 288 */ "exprx ::= NOT expr",
+ /* 289 */ "exprx ::= BITNOT expr",
+ /* 290 */ "exprx ::= MINUS expr",
+ /* 291 */ "exprx ::= PLUS expr",
+ /* 292 */ "exprx ::= expr not_opt BETWEEN expr AND expr",
+ /* 293 */ "exprx ::= expr not_opt IN LP exprlist RP",
+ /* 294 */ "exprx ::= LP select RP",
+ /* 295 */ "exprx ::= expr not_opt IN LP select RP",
+ /* 296 */ "exprx ::= expr not_opt IN nm dbnm",
+ /* 297 */ "exprx ::= EXISTS LP select RP",
+ /* 298 */ "exprx ::= CASE case_operand case_exprlist case_else END",
+ /* 299 */ "exprx ::= RAISE LP IGNORE RP",
+ /* 300 */ "exprx ::= RAISE LP raisetype COMMA nm RP",
+ /* 301 */ "expr ::=",
+ /* 302 */ "expr ::= exprx",
/* 303 */ "not_opt ::=",
/* 304 */ "not_opt ::= NOT",
/* 305 */ "likeop ::= LIKE_KW|MATCH",
@@ -1788,8 +1786,8 @@ delete (yypminor->yy4);
case 227: /* where_opt */
case 229: /* having_opt */
case 251: /* exprx */
- case 254: /* case_operand */
- case 256: /* case_else */
+ case 253: /* case_operand */
+ case 255: /* case_else */
{
delete (yypminor->yy490);
}
@@ -1879,7 +1877,7 @@ delete (yypminor->yy373);
case 228: /* groupby_opt */
case 232: /* nexprlist */
case 233: /* exprlist */
- case 255: /* case_exprlist */
+ case 254: /* case_exprlist */
{
delete (yypminor->yy13);
}
@@ -1942,7 +1940,7 @@ delete (yypminor->yy381);
delete (yypminor->yy250);
}
break;
- case 253: /* likeop */
+ case 256: /* likeop */
{
delete (yypminor->yy374);
}
@@ -2477,6 +2475,18 @@ static const struct {
{ 243, 0 },
{ 243, 3 },
{ 243, 1 },
+ { 251, 2 },
+ { 251, 4 },
+ { 251, 5 },
+ { 251, 4 },
+ { 251, 5 },
+ { 251, 4 },
+ { 251, 6 },
+ { 251, 1 },
+ { 251, 3 },
+ { 251, 5 },
+ { 251, 3 },
+ { 251, 6 },
{ 251, 1 },
{ 251, 1 },
{ 251, 3 },
@@ -2515,29 +2525,17 @@ static const struct {
{ 251, 5 },
{ 251, 4 },
{ 251, 6 },
- { 251, 2 },
- { 251, 4 },
- { 251, 5 },
- { 251, 4 },
- { 251, 5 },
- { 251, 4 },
- { 251, 6 },
- { 251, 1 },
- { 251, 3 },
- { 251, 5 },
- { 251, 3 },
- { 251, 6 },
- { 199, 1 },
{ 199, 0 },
+ { 199, 1 },
{ 252, 0 },
{ 252, 1 },
+ { 256, 1 },
+ { 254, 5 },
+ { 254, 4 },
+ { 255, 2 },
+ { 255, 0 },
{ 253, 1 },
- { 255, 5 },
- { 255, 4 },
- { 256, 2 },
- { 256, 0 },
- { 254, 1 },
- { 254, 0 },
+ { 253, 0 },
{ 233, 1 },
{ 233, 0 },
{ 232, 3 },
@@ -3382,7 +3380,7 @@ static void yy_reduce(
case 179: /* singlesrc ::= ID_DB|ID_TAB */ yytestcase(yyruleno==179);
case 180: /* singlesrc ::= nm DOT ID_VIEW */ yytestcase(yyruleno==180);
case 181: /* singlesrc ::= ID_DB|ID_VIEW */ yytestcase(yyruleno==181);
- case 297: /* exprx ::= nm DOT ID_TAB|ID_COL */ yytestcase(yyruleno==297);
+ case 259: /* exprx ::= nm DOT ID_TAB|ID_COL */ yytestcase(yyruleno==259);
case 318: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW */ yytestcase(yyruleno==318);
case 319: /* cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW */ yytestcase(yyruleno==319);
case 332: /* cmd ::= DROP INDEX ifexists nm DOT ID_IDX */ yytestcase(yyruleno==332);
@@ -3818,7 +3816,7 @@ static void yy_reduce(
break;
case 209: /* having_opt ::= HAVING expr */
case 221: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==221);
- case 301: /* expr ::= exprx */ yytestcase(yyruleno==301);
+ case 302: /* expr ::= exprx */ yytestcase(yyruleno==302);
case 308: /* case_else ::= ELSE expr */ yytestcase(yyruleno==308);
case 310: /* case_operand ::= exprx */ yytestcase(yyruleno==310);
case 370: /* when_clause ::= WHEN expr */ yytestcase(yyruleno==370);
@@ -4112,7 +4110,76 @@ static void yy_reduce(
{ yy_destructor(yypParser,243,&yymsp[-2].minor);
}
break;
- case 251: /* exprx ::= term */
+ case 251: /* exprx ::= nm DOT */
+{
+ yygotominor.yy490 = new SqliteExpr();
+ yygotominor.yy490->initId(*(yymsp[-1].minor.yy211), QString::null, QString::null);
+ delete yymsp[-1].minor.yy211;
+ objectForTokens = yygotominor.yy490;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: nm.>");
+ }
+ break;
+ case 252: /* exprx ::= nm DOT nm DOT */
+{
+ yygotominor.yy490 = new SqliteExpr();
+ yygotominor.yy490->initId(*(yymsp[-3].minor.yy211), *(yymsp[-1].minor.yy211), QString::null);
+ delete yymsp[-3].minor.yy211;
+ delete yymsp[-1].minor.yy211;
+ objectForTokens = yygotominor.yy490;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: nm.nm.>");
+ }
+ break;
+ case 253: /* exprx ::= expr not_opt BETWEEN expr AND */
+{
+ yygotominor.yy490 = new SqliteExpr();
+ delete yymsp[-3].minor.yy237;
+ delete yymsp[-4].minor.yy490;
+ delete yymsp[-1].minor.yy490;
+ objectForTokens = yygotominor.yy490;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: expr not_opt BETWEEN expr AND>");
+ }
+ break;
+ case 254: /* exprx ::= CASE case_operand case_exprlist case_else */
+{
+ yygotominor.yy490 = new SqliteExpr();
+ delete yymsp[-1].minor.yy13;
+ delete yymsp[-2].minor.yy490;
+ delete yymsp[0].minor.yy490;
+ objectForTokens = yygotominor.yy490;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: CASE operand exprlist else>");
+ }
+ break;
+ case 255: /* exprx ::= expr not_opt IN LP exprlist */
+{
+ yygotominor.yy490 = new SqliteExpr();
+ delete yymsp[-3].minor.yy237;
+ delete yymsp[0].minor.yy13;
+ delete yymsp[-4].minor.yy490;
+ objectForTokens = yygotominor.yy490;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: expr not_opt IN LP exprlist>");
+ }
+ break;
+ case 256: /* exprx ::= expr not_opt IN ID_DB */
+{ yy_destructor(yypParser,199,&yymsp[-3].minor);
+}
+ break;
+ case 257: /* exprx ::= expr not_opt IN nm DOT ID_TAB */
+ case 258: /* exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN */ yytestcase(yyruleno==258);
+{ yy_destructor(yypParser,199,&yymsp[-5].minor);
+ yy_destructor(yypParser,177,&yymsp[-2].minor);
+}
+ break;
+ case 260: /* exprx ::= nm DOT nm DOT ID_COL */
+{ yy_destructor(yypParser,177,&yymsp[-4].minor);
+ yy_destructor(yypParser,177,&yymsp[-2].minor);
+}
+ break;
+ case 261: /* exprx ::= expr COLLATE ID_COLLATE */
+ case 262: /* exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP */ yytestcase(yyruleno==262);
+{ yy_destructor(yypParser,199,&yymsp[-2].minor);
+}
+ break;
+ case 263: /* exprx ::= term */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initLiteral(*(yymsp[0].minor.yy21));
@@ -4120,21 +4187,22 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 252: /* exprx ::= CTIME_KW */
+ case 264: /* exprx ::= CTIME_KW */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initCTime(yymsp[0].minor.yy0->value);
objectForTokens = yygotominor.yy490;
}
break;
- case 253: /* exprx ::= LP expr RP */
+ case 265: /* exprx ::= LP nexprlist RP */
{
yygotominor.yy490 = new SqliteExpr();
- yygotominor.yy490->initSubExpr(yymsp[-1].minor.yy490);
+ yygotominor.yy490->initRowValue(*(yymsp[-1].minor.yy13));
+ delete yymsp[-1].minor.yy13;
objectForTokens = yygotominor.yy490;
}
break;
- case 254: /* exprx ::= id */
+ case 266: /* exprx ::= id */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initId(*(yymsp[0].minor.yy211));
@@ -4142,14 +4210,14 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 255: /* exprx ::= JOIN_KW */
+ case 267: /* exprx ::= JOIN_KW */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initId(yymsp[0].minor.yy0->value);
objectForTokens = yygotominor.yy490;
}
break;
- case 256: /* exprx ::= nm DOT nm */
+ case 268: /* exprx ::= nm DOT nm */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initId(*(yymsp[-2].minor.yy211), *(yymsp[0].minor.yy211));
@@ -4158,7 +4226,7 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 257: /* exprx ::= nm DOT nm DOT nm */
+ case 269: /* exprx ::= nm DOT nm DOT nm */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initId(*(yymsp[-4].minor.yy211), *(yymsp[-2].minor.yy211), *(yymsp[0].minor.yy211));
@@ -4168,14 +4236,14 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 258: /* exprx ::= VARIABLE */
+ case 270: /* exprx ::= VARIABLE */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initBindParam(yymsp[0].minor.yy0->value);
objectForTokens = yygotominor.yy490;
}
break;
- case 259: /* exprx ::= expr COLLATE ids */
+ case 271: /* exprx ::= expr COLLATE ids */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initCollate(yymsp[-2].minor.yy490, *(yymsp[0].minor.yy211));
@@ -4183,14 +4251,14 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 260: /* exprx ::= CAST LP expr AS typetoken RP */
+ case 272: /* exprx ::= CAST LP expr AS typetoken RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initCast(yymsp[-3].minor.yy490, yymsp[-1].minor.yy299);
objectForTokens = yygotominor.yy490;
}
break;
- case 261: /* exprx ::= ID LP distinct exprlist RP */
+ case 273: /* exprx ::= ID LP distinct exprlist RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initFunction(yymsp[-4].minor.yy0->value, *(yymsp[-2].minor.yy376), *(yymsp[-1].minor.yy13));
@@ -4199,28 +4267,28 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 262: /* exprx ::= ID LP STAR RP */
+ case 274: /* exprx ::= ID LP STAR RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initFunction(yymsp[-3].minor.yy0->value, true);
objectForTokens = yygotominor.yy490;
}
break;
- case 263: /* exprx ::= expr AND expr */
- case 264: /* exprx ::= expr OR expr */ yytestcase(yyruleno==264);
- case 265: /* exprx ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==265);
- case 266: /* exprx ::= expr EQ|NE expr */ yytestcase(yyruleno==266);
- case 267: /* exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==267);
- case 268: /* exprx ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==268);
- case 269: /* exprx ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==269);
- case 270: /* exprx ::= expr CONCAT expr */ yytestcase(yyruleno==270);
+ case 275: /* exprx ::= expr AND expr */
+ case 276: /* exprx ::= expr OR expr */ yytestcase(yyruleno==276);
+ case 277: /* exprx ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==277);
+ case 278: /* exprx ::= expr EQ|NE expr */ yytestcase(yyruleno==278);
+ case 279: /* exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==279);
+ case 280: /* exprx ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==280);
+ case 281: /* exprx ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==281);
+ case 282: /* exprx ::= expr CONCAT expr */ yytestcase(yyruleno==282);
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initBinOp(yymsp[-2].minor.yy490, yymsp[-1].minor.yy0->value, yymsp[0].minor.yy490);
objectForTokens = yygotominor.yy490;
}
break;
- case 271: /* exprx ::= expr not_opt likeop expr */
+ case 283: /* exprx ::= expr not_opt likeop expr */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initLike(yymsp[-3].minor.yy490, *(yymsp[-2].minor.yy237), *(yymsp[-1].minor.yy374), yymsp[0].minor.yy490);
@@ -4229,7 +4297,7 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 272: /* exprx ::= expr not_opt likeop expr ESCAPE expr */
+ case 284: /* exprx ::= expr not_opt likeop expr ESCAPE expr */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initLike(yymsp[-5].minor.yy490, *(yymsp[-4].minor.yy237), *(yymsp[-3].minor.yy374), yymsp[-2].minor.yy490, yymsp[0].minor.yy490);
@@ -4238,21 +4306,21 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 273: /* exprx ::= expr ISNULL|NOTNULL */
+ case 285: /* exprx ::= expr ISNULL|NOTNULL */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initNull(yymsp[-1].minor.yy490, yymsp[0].minor.yy0->value);
objectForTokens = yygotominor.yy490;
}
break;
- case 274: /* exprx ::= expr NOT NULL */
+ case 286: /* exprx ::= expr NOT NULL */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initNull(yymsp[-2].minor.yy490, "NOT NULL");
objectForTokens = yygotominor.yy490;
}
break;
- case 275: /* exprx ::= expr IS not_opt expr */
+ case 287: /* exprx ::= expr IS not_opt expr */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initIs(yymsp[-3].minor.yy490, *(yymsp[-1].minor.yy237), yymsp[0].minor.yy490);
@@ -4260,21 +4328,21 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 276: /* exprx ::= NOT expr */
+ case 288: /* exprx ::= NOT expr */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initUnaryOp(yymsp[0].minor.yy490, yymsp[-1].minor.yy0->value);
}
break;
- case 277: /* exprx ::= BITNOT expr */
- case 279: /* exprx ::= PLUS expr */ yytestcase(yyruleno==279);
+ case 289: /* exprx ::= BITNOT expr */
+ case 291: /* exprx ::= PLUS expr */ yytestcase(yyruleno==291);
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initUnaryOp(yymsp[0].minor.yy490, yymsp[-1].minor.yy0->value);
objectForTokens = yygotominor.yy490;
}
break;
- case 278: /* exprx ::= MINUS expr */
+ case 290: /* exprx ::= MINUS expr */
{
yygotominor.yy490 = new SqliteExpr();
if (yymsp[0].minor.yy490->mode == SqliteExpr::Mode::LITERAL_VALUE &&
@@ -4291,7 +4359,7 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 280: /* exprx ::= expr not_opt BETWEEN expr AND expr */
+ case 292: /* exprx ::= expr not_opt BETWEEN expr AND expr */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initBetween(yymsp[-5].minor.yy490, *(yymsp[-4].minor.yy237), yymsp[-2].minor.yy490, yymsp[0].minor.yy490);
@@ -4299,7 +4367,7 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 281: /* exprx ::= expr not_opt IN LP exprlist RP */
+ case 293: /* exprx ::= expr not_opt IN LP exprlist RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initIn(yymsp[-5].minor.yy490, *(yymsp[-4].minor.yy237), *(yymsp[-1].minor.yy13));
@@ -4308,14 +4376,14 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 282: /* exprx ::= LP select RP */
+ case 294: /* exprx ::= LP select RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initSubSelect(yymsp[-1].minor.yy123);
objectForTokens = yygotominor.yy490;
}
break;
- case 283: /* exprx ::= expr not_opt IN LP select RP */
+ case 295: /* exprx ::= expr not_opt IN LP select RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initIn(yymsp[-5].minor.yy490, *(yymsp[-4].minor.yy237), yymsp[-1].minor.yy123);
@@ -4323,7 +4391,7 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 284: /* exprx ::= expr not_opt IN nm dbnm */
+ case 296: /* exprx ::= expr not_opt IN nm dbnm */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initIn(yymsp[-4].minor.yy490, *(yymsp[-3].minor.yy237), *(yymsp[-1].minor.yy211), *(yymsp[0].minor.yy211));
@@ -4332,14 +4400,14 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 285: /* exprx ::= EXISTS LP select RP */
+ case 297: /* exprx ::= EXISTS LP select RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initExists(yymsp[-1].minor.yy123);
objectForTokens = yygotominor.yy490;
}
break;
- case 286: /* exprx ::= CASE case_operand case_exprlist case_else END */
+ case 298: /* exprx ::= CASE case_operand case_exprlist case_else END */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initCase(yymsp[-3].minor.yy490, *(yymsp[-2].minor.yy13), yymsp[-1].minor.yy490);
@@ -4347,14 +4415,14 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 287: /* exprx ::= RAISE LP IGNORE RP */
+ case 299: /* exprx ::= RAISE LP IGNORE RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initRaise(yymsp[-1].minor.yy0->value);
objectForTokens = yygotominor.yy490;
}
break;
- case 288: /* exprx ::= RAISE LP raisetype COMMA nm RP */
+ case 300: /* exprx ::= RAISE LP raisetype COMMA nm RP */
{
yygotominor.yy490 = new SqliteExpr();
yygotominor.yy490->initRaise(yymsp[-3].minor.yy0->value, *(yymsp[-1].minor.yy211));
@@ -4362,80 +4430,11 @@ static void yy_reduce(
objectForTokens = yygotominor.yy490;
}
break;
- case 289: /* exprx ::= nm DOT */
+ case 301: /* expr ::= */
{
yygotominor.yy490 = new SqliteExpr();
- yygotominor.yy490->initId(*(yymsp[-1].minor.yy211), QString::null, QString::null);
- delete yymsp[-1].minor.yy211;
objectForTokens = yygotominor.yy490;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
- break;
- case 290: /* exprx ::= nm DOT nm DOT */
-{
- yygotominor.yy490 = new SqliteExpr();
- yygotominor.yy490->initId(*(yymsp[-3].minor.yy211), *(yymsp[-1].minor.yy211), QString::null);
- delete yymsp[-3].minor.yy211;
- delete yymsp[-1].minor.yy211;
- objectForTokens = yygotominor.yy490;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
- break;
- case 291: /* exprx ::= expr not_opt BETWEEN expr AND */
-{
- yygotominor.yy490 = new SqliteExpr();
- delete yymsp[-3].minor.yy237;
- delete yymsp[-4].minor.yy490;
- delete yymsp[-1].minor.yy490;
- objectForTokens = yygotominor.yy490;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
- break;
- case 292: /* exprx ::= CASE case_operand case_exprlist case_else */
-{
- yygotominor.yy490 = new SqliteExpr();
- delete yymsp[-1].minor.yy13;
- delete yymsp[-2].minor.yy490;
- delete yymsp[0].minor.yy490;
- objectForTokens = yygotominor.yy490;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
- break;
- case 293: /* exprx ::= expr not_opt IN LP exprlist */
-{
- yygotominor.yy490 = new SqliteExpr();
- delete yymsp[-3].minor.yy237;
- delete yymsp[0].minor.yy13;
- delete yymsp[-4].minor.yy490;
- objectForTokens = yygotominor.yy490;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
- break;
- case 294: /* exprx ::= expr not_opt IN ID_DB */
-{ yy_destructor(yypParser,199,&yymsp[-3].minor);
-}
- break;
- case 295: /* exprx ::= expr not_opt IN nm DOT ID_TAB */
- case 296: /* exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN */ yytestcase(yyruleno==296);
-{ yy_destructor(yypParser,199,&yymsp[-5].minor);
- yy_destructor(yypParser,177,&yymsp[-2].minor);
-}
- break;
- case 298: /* exprx ::= nm DOT nm DOT ID_COL */
-{ yy_destructor(yypParser,177,&yymsp[-4].minor);
- yy_destructor(yypParser,177,&yymsp[-2].minor);
-}
- break;
- case 299: /* exprx ::= expr COLLATE ID_COLLATE */
- case 300: /* exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP */ yytestcase(yyruleno==300);
-{ yy_destructor(yypParser,199,&yymsp[-2].minor);
-}
- break;
- case 302: /* expr ::= */
-{
- yygotominor.yy490 = new SqliteExpr();
- objectForTokens = yygotominor.yy490;
- parserContext->minorErrorAfterLastToken("Syntax error");
+ parserContext->minorErrorAfterLastToken("Syntax error <expr>");
}
break;
case 305: /* likeop ::= LIKE_KW|MATCH */
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h
index d18c81c..92a40ca 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.h
@@ -151,10 +151,10 @@
#define TK3_WHERE 151
#define TK3_ID_COL 152
#define TK3_INTO 153
-#define TK3_VARIABLE 154
-#define TK3_CASE 155
-#define TK3_ID_FN 156
-#define TK3_ID_ERR_MSG 157
+#define TK3_CASE 154
+#define TK3_ID_FN 155
+#define TK3_ID_ERR_MSG 156
+#define TK3_VARIABLE 157
#define TK3_WHEN 158
#define TK3_THEN 159
#define TK3_ELSE 160
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y
index 932e965..0dc9154 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y
@@ -1455,6 +1455,70 @@ inscollist ::= ID_COL. {}
%type exprx {SqliteExpr*}
%destructor exprx {delete $$;}
+
+exprx(X) ::= nm(N1) DOT. {
+ X = new SqliteExpr();
+ X->initId(*(N1), QString::null, QString::null);
+ delete N1;
+ objectForTokens = X;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: nm.>");
+ }
+exprx(X) ::= nm(N1) DOT nm(N2) DOT. {
+ X = new SqliteExpr();
+ X->initId(*(N1), *(N2), QString::null);
+ delete N1;
+ delete N2;
+ objectForTokens = X;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: nm.nm.>");
+ }
+exprx(X) ::= expr(E1) not_opt(N) BETWEEN
+ expr(E2) AND. {
+ X = new SqliteExpr();
+ delete N;
+ delete E1;
+ delete E2;
+ objectForTokens = X;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: expr not_opt BETWEEN expr AND>");
+ }
+exprx(X) ::= CASE case_operand(O)
+ case_exprlist(L)
+ case_else(E). {
+ X = new SqliteExpr();
+ delete L;
+ delete O;
+ delete E;
+ objectForTokens = X;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: CASE operand exprlist else>");
+ }
+exprx(X) ::= expr(E) not_opt(N) IN LP
+ exprlist(L). [IN] {
+ X = new SqliteExpr();
+ delete N;
+ delete L;
+ delete E;
+ objectForTokens = X;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: expr not_opt IN LP exprlist>");
+ }
+/*
+This introduces premature reduce for LP-expr and causes bug #2755
+exprx(X) ::= LP expr(E). {
+ X = new SqliteExpr();
+ X->initSubExpr(E);
+ objectForTokens = X;
+ parserContext->minorErrorBeforeNextToken("Syntax error <exprx: LP expr>");
+ }
+*/
+exprx ::= expr not_opt IN ID_DB. [IN] {}
+exprx ::= expr not_opt IN nm DOT
+ ID_TAB. [IN] {}
+exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN. {}
+exprx ::= nm DOT ID_TAB|ID_COL. {}
+exprx ::= nm DOT nm DOT ID_COL. {}
+exprx ::= expr COLLATE ID_COLLATE. {}
+exprx ::= RAISE LP raisetype COMMA
+ ID_ERR_MSG RP. {}
+
+
exprx(X) ::= term(T). {
X = new SqliteExpr();
X->initLiteral(*(T));
@@ -1466,11 +1530,19 @@ exprx(X) ::= CTIME_KW(K). {
X->initCTime(K->value);
objectForTokens = X;
}
+exprx(X) ::= LP nexprlist(L) RP. {
+ X = new SqliteExpr();
+ X->initRowValue(*(L));
+ delete L;
+ objectForTokens = X;
+ }
+/*
exprx(X) ::= LP expr(E) RP. {
X = new SqliteExpr();
X->initSubExpr(E);
objectForTokens = X;
}
+*/
exprx(X) ::= id(N). {
X = new SqliteExpr();
X->initId(*(N));
@@ -1697,77 +1769,15 @@ exprx(X) ::= RAISE LP raisetype(R) COMMA
delete N;
objectForTokens = X;
}
-exprx(X) ::= nm(N1) DOT. {
- X = new SqliteExpr();
- X->initId(*(N1), QString::null, QString::null);
- delete N1;
- objectForTokens = X;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
-exprx(X) ::= nm(N1) DOT nm(N2) DOT. {
- X = new SqliteExpr();
- X->initId(*(N1), *(N2), QString::null);
- delete N1;
- delete N2;
- objectForTokens = X;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
-exprx(X) ::= expr(E1) not_opt(N) BETWEEN
- expr(E2) AND. {
- X = new SqliteExpr();
- delete N;
- delete E1;
- delete E2;
- objectForTokens = X;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
-exprx(X) ::= CASE case_operand(O)
- case_exprlist(L)
- case_else(E). {
- X = new SqliteExpr();
- delete L;
- delete O;
- delete E;
- objectForTokens = X;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
-exprx(X) ::= expr(E) not_opt(N) IN LP
- exprlist(L). [IN] {
- X = new SqliteExpr();
- delete N;
- delete L;
- delete E;
- objectForTokens = X;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
-/*
-This introduces premature reduce for LP-expr and causes bug #2755
-exprx(X) ::= LP expr(E). {
- X = new SqliteExpr();
- X->initSubExpr(E);
- objectForTokens = X;
- parserContext->minorErrorBeforeNextToken("Syntax error");
- }
-*/
-
-exprx ::= expr not_opt IN ID_DB. [IN] {}
-exprx ::= expr not_opt IN nm DOT
- ID_TAB. [IN] {}
-exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN. {}
-exprx ::= nm DOT ID_TAB|ID_COL. {}
-exprx ::= nm DOT nm DOT ID_COL. {}
-exprx ::= expr COLLATE ID_COLLATE. {}
-exprx ::= RAISE LP raisetype COMMA
- ID_ERR_MSG RP. {}
%type expr {SqliteExpr*}
%destructor expr {delete $$;}
-expr(X) ::= exprx(E). {X = E;}
expr(X) ::= . {
X = new SqliteExpr();
objectForTokens = X;
- parserContext->minorErrorAfterLastToken("Syntax error");
+ parserContext->minorErrorAfterLastToken("Syntax error <expr>");
}
+expr(X) ::= exprx(E). {X = E;}
%type not_opt {bool*}
%destructor not_opt {delete $$;}
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp
index a97b765..a0a0e3a 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp
@@ -72,7 +72,7 @@ StatementTokenBuilder& StatementTokenBuilder::withComment(const QString& value)
return with(Token::COMMENT, value);
}
-StatementTokenBuilder& StatementTokenBuilder::withFloat(double value)
+StatementTokenBuilder& StatementTokenBuilder::withFloat(const QVariant& value)
{
return with(Token::FLOAT, doubleToString(value));
}
@@ -163,7 +163,7 @@ StatementTokenBuilder& StatementTokenBuilder::withLiteralValue(const QVariant& v
value.toDouble(&ok);
if (ok)
{
- withFloat(value.toDouble());
+ withFloat(value);
return *this;
}
}
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.h b/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.h
index 3d748ad..14856e7 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.h
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.h
@@ -131,7 +131,7 @@ class StatementTokenBuilder
* @param value Value for the token.
* @return Reference to the builder for the further building.
*/
- StatementTokenBuilder& withFloat(double value);
+ StatementTokenBuilder& withFloat(const QVariant &value);
/**
* @brief Add integer numer token.
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp
index f2102c3..5396edd 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp
@@ -490,6 +490,16 @@ TokenList TokenList::filter(Token::Type type) const
return filtered;
}
+TokenList TokenList::filterOut(Token::Type type) const
+{
+ TokenList filtered;
+ foreach (TokenPtr token, *this)
+ if (token->type != type)
+ filtered << token;
+
+ return filtered;
+}
+
TokenList TokenList::filterWhiteSpaces(bool includeComments) const
{
TokenList filtered;
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/token.h b/SQLiteStudio3/coreSQLiteStudio/parser/token.h
index aecc7ec..aeb505c 100644
--- a/SQLiteStudio3/coreSQLiteStudio/parser/token.h
+++ b/SQLiteStudio3/coreSQLiteStudio/parser/token.h
@@ -626,6 +626,7 @@ class API_EXPORT TokenList : public QList<TokenPtr>
* @return List of tokens from this list matching given \p type.
*/
TokenList filter(Token::Type type) const;
+ TokenList filterOut(Token::Type type) const;
/**
* @brief Creates list of tokens from this list, letting through only tokens that are not a whitespace.