diff options
| author | 2025-01-16 01:58:22 -0500 | |
|---|---|---|
| committer | 2025-01-16 01:58:22 -0500 | |
| commit | a5ae79be08125b31bb6b8d9703090a98c6fd2e30 (patch) | |
| tree | 569ee612c9de85b2bb423efa485688ef1d43852e /SQLiteStudio3/coreSQLiteStudio/parser | |
| parent | 21966b4f924b0a1933d9662e75ff253bd154fdb7 (diff) | |
| parent | 81a21e6ce040e7740de86340c8ea4dba30e69bc3 (diff) | |
Update upstream source from tag 'upstream/3.4.13+dfsg'
Update to upstream version '3.4.13+dfsg'
with Debian dir bf81ee0219cb8e4562a4751df17d75814772d2d6
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/parser')
12 files changed, 2776 insertions, 2612 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp index fff4036..165a5fc 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp @@ -701,12 +701,15 @@ SqliteCreateTable::Column::Column(const QString &name, SqliteColumnType *type, c this->constraints.last()->type != SqliteCreateTable::Column::Constraint::NAME_ONLY) { SqliteCreateTable::Column::Constraint* last = this->constraints.last(); - last->foreignKey->deferrable = constr->deferrable; - last->foreignKey->initially = constr->initially; - delete constr; - - // We don't want deleted constr to be added to list. We finish this now. - continue; + if (last->type == Constraint::FOREIGN_KEY) + { + last->foreignKey->deferrable = constr->deferrable; + last->foreignKey->initially = constr->initially; + delete constr; + + // We don't want deleted constr to be added to list. We finish this now. + continue; + } } this->constraints << constr; @@ -870,8 +873,26 @@ TokenList SqliteCreateTable::Column::Constraint::rebuildTokensFromContents() break; } case SqliteCreateTable::Column::Constraint::NULL_: - case SqliteCreateTable::Column::Constraint::NAME_ONLY: + { + // Is the default and unofficial. Pass through + builder.withKeyword("NULL"); + break; + } case SqliteCreateTable::Column::Constraint::DEFERRABLE_ONLY: + { + // Pass through + if (deferrable == SqliteDeferrable::NOT_DEFERRABLE) + builder.withKeyword("NOT").withSpace(); + builder.withKeyword("DEFERRABLE"); + if (initially != SqliteInitially::null) + { + builder.withSpace().withKeyword("INITIALLY").withSpace(); + builder.withKeyword(initially == SqliteInitially::DEFERRED ? "DEFERRED" : "IMMEDIATE"); + } + break; + } + case SqliteCreateTable::Column::Constraint::NAME_ONLY: + // The CONSTRAINT <name> clause has already been output break; } diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h index 5d797c1..0507740 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h @@ -91,13 +91,14 @@ class API_EXPORT SqliteCreateTable : public SqliteQuery, public SqliteDdlWithDbC GeneratedType generatedType = GeneratedType::null; SqliteForeignKey* foreignKey = nullptr; + // DEFERRABLE_ONLY fields. A DEFERRABLE_ONLY pseudo-constraint following a + // a FK is merged to the FK at parse time. + SqliteDeferrable deferrable = SqliteDeferrable::null; + SqliteInitially initially = SqliteInitially::null; + protected: TokenList rebuildTokensFromContents(); - private: - SqliteDeferrable deferrable = SqliteDeferrable::null; // only a temporary field for parse time, before merging with actual FK - SqliteInitially initially = SqliteInitially::null; // only a temporary field for parse time, before merging with actual FK - }; typedef QSharedPointer<Constraint> ConstraintPtr; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.cpp index 0e11619..36d5852 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.cpp @@ -4,6 +4,7 @@ #include "parser/statementtokenbuilder.h" #include "common/global.h" #include "sqliteindexedcolumn.h" +#include <QDebug> SqliteCreateView::SqliteCreateView() { @@ -139,3 +140,57 @@ void SqliteCreateView::setObjectName(const QString& name) { view = name; } + +TokenList SqliteCreateView::equivalentSelectTokens() const +{ + if (columns.size() == 0) + return select->tokens; + + SqliteSelect::Core *core = select->coreSelects.first(); + bool hasStar = std::any_of(core->resultColumns.cbegin(), + core->resultColumns.cend(), + [](auto col) { return col->star; }); + bool useCTE = false; + if (!hasStar && columns.size() != core->resultColumns.size()) + { + qWarning() << "View with a column list clause and non-matching count of columns in SELECT. " + << "Expect an error if result column count does not match column list length."; + useCTE = true; + } + if (hasStar) + { + qWarning() << "View with a column list clause and SELECT *. " + << "Expect an error if result column count does not match column list length."; + useCTE = true; + } + if (useCTE) + { + StatementTokenBuilder builder; + builder.withKeyword("WITH").withSpace().withOther(view).withParLeft(); + bool first = true; + for (SqliteIndexedColumn *column : columns) + { + if (!first) + builder.withOperator(","); + first = false; + builder.withOther(column->name); + } + builder.withParRight().withKeyword("AS").withParLeft().withTokens(select->tokens).withParRight() + .withKeyword("SELECT").withSpace().withOperator("*").withSpace() + .withKeyword("FROM").withSpace().withOther(view); + return builder.build(); + } + + // There are no * in SELECT, and view column list length matches SELECT column list length. + // Apply view column names to SELECT as aliases. + SqliteSelect* selectCopy = dynamic_cast<SqliteSelect*>(select->clone()); + QList<SqliteSelect::Core::ResultColumn*> resultColumns = selectCopy->coreSelects.first()->resultColumns; + int n = 0; + for (SqliteSelect::Core::ResultColumn* column : resultColumns) + { + column->asKw = true; + column->alias = columns.at(n++)->name; + } + selectCopy->rebuildTokens(); + return selectCopy->tokens; +} diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.h index 645532c..d90ce7d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreateview.h @@ -23,6 +23,7 @@ class API_EXPORT SqliteCreateView : public SqliteQuery, public SqliteDdlWithDbCo void setTargetDatabase(const QString& database); QString getObjectName() const; void setObjectName(const QString& name); + TokenList equivalentSelectTokens() const; bool tempKw = false; bool temporaryKw = false; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp index 89c6b9b..7039970 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp @@ -456,6 +456,9 @@ QStringList SqliteExpr::getTablesInStatement() QStringList SqliteExpr::getDatabasesInStatement() { + if (database.isNull() && !table.isNull() && validDbNames.contains(table, Qt::CaseInsensitive)) + return getStrListFromValue(table); // it's a "db.", not a "db.table." + return getStrListFromValue(database); } @@ -494,7 +497,9 @@ TokenList SqliteExpr::getTableTokensInStatement() TokenList SqliteExpr::getDatabaseTokensInStatement() { TokenList list; - if (!database.isNull()) + if (database.isNull() && !table.isNull() && validDbNames.contains(table, Qt::CaseInsensitive)) + list << tokens[0]; // it's a "db.", not a "db.table." + else if (!database.isNull()) list << tokens[0]; return list; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.cpp index d349a86..90d670b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.cpp @@ -2,6 +2,7 @@ #include "../token.h" #include "../lexer.h" #include "common/unused.h" +#include "services/dbmanager.h" #include <QDebug> SqliteStatement::SqliteStatement() @@ -35,6 +36,7 @@ QStringList SqliteStatement::getContextTables(bool checkParent, bool checkChilds QStringList SqliteStatement::getContextDatabases(bool checkParent, bool checkChilds) { + prepareDbNames(); return getContextDatabases(this, checkParent, checkChilds); } @@ -50,6 +52,7 @@ TokenList SqliteStatement::getContextTableTokens(bool checkParent, bool checkChi TokenList SqliteStatement::getContextDatabaseTokens(bool checkParent, bool checkChilds) { + prepareDbNames(); return getContextDatabaseTokens(this, checkParent, checkChilds); } @@ -125,7 +128,10 @@ QStringList SqliteStatement::getContextDatabases(SqliteStatement *caller, bool c { QStringList results = getDatabasesInStatement(); for (SqliteStatement* stmt : getContextStatements(caller, checkParent, checkChilds)) + { + stmt->validDbNames = this->validDbNames; results += stmt->getContextDatabases(this, checkParent, checkChilds); + } return results; } @@ -152,7 +158,10 @@ TokenList SqliteStatement::getContextDatabaseTokens(SqliteStatement *caller, boo { TokenList results = getDatabaseTokensInStatement(); for (SqliteStatement* stmt : getContextStatements(caller, checkParent, checkChilds)) + { + stmt->validDbNames = this->validDbNames; results += stmt->getContextDatabaseTokens(this, checkParent, checkChilds); + } return results; } @@ -236,6 +245,11 @@ QList<SqliteStatement *> SqliteStatement::getContextStatements(SqliteStatement * return results; } +void SqliteStatement::prepareDbNames() +{ + validDbNames = DBLIST->getValidDbNames(); +} + TokenList SqliteStatement::extractPrintableTokens(const TokenList &tokens, bool skipMeaningless) { TokenList list; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.h index 167321f..794b6de 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.h @@ -333,8 +333,16 @@ class API_EXPORT SqliteStatement : public QObject */ TokenPtr dbTokenForFullObjects; + /** + * @brief List of database names as seen in the side Database List. + * It is resoled at top-level statement being queried for databases and then it's propagated down to all child statements. + * It helps to identify whether the xyz in "xyz." is a table or a database prefix. + */ + QStringList validDbNames; + private: QList<SqliteStatement*> getContextStatements(SqliteStatement* caller, bool checkParent, bool checkChilds); + void prepareDbNames(); }; #endif // SQLITESTATEMENT_H diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/compile_lemon.sh b/SQLiteStudio3/coreSQLiteStudio/parser/compile_lemon.sh new file mode 100755 index 0000000..b93c592 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/parser/compile_lemon.sh @@ -0,0 +1,6 @@ +#!/bin/sh +LEMON=~/lemon +GCC=gcc + +$GCC -o $LEMON lemon.c + diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp index b80d45a..aa99ee1 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/parser.cpp @@ -214,7 +214,8 @@ void Parser::expectedTokenLookup(void* pParser) Token::CTX_ALIAS, Token::CTX_TABLE_NEW, Token::CTX_INDEX_NEW, Token::CTX_TRIGGER_NEW, Token::CTX_VIEW_NEW, Token::CTX_COLUMN_NEW, Token::CTX_TRANSACTION, Token::CTX_CONSTRAINT, Token::CTX_COLUMN_TYPE, Token::CTX_OLD_KW, Token::CTX_NEW_KW, - Token::CTX_ROWID_KW, Token::CTX_STRICT_KW, Token::INVALID + Token::CTX_ROWID_KW, Token::CTX_STRICT_KW, Token::INVALID, + Token::BLOB, Token::STRING, Token::FLOAT, Token::INTEGER }); for (TokenPtr token : tokenSet) diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/run_lemon.sh b/SQLiteStudio3/coreSQLiteStudio/parser/run_lemon.sh index d42f0c1..9ed260c 100755 --- a/SQLiteStudio3/coreSQLiteStudio/parser/run_lemon.sh +++ b/SQLiteStudio3/coreSQLiteStudio/parser/run_lemon.sh @@ -1,5 +1,5 @@ #!/bin/sh #lemon -l -q -s sqlite3_parse.y -lemon -l -q sqlite3_parse.y +~/lemon -l -q sqlite3_parse.y mv sqlite3_parse.c sqlite3_parse.cpp diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp index 7be06fb..be0f9fc 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp @@ -112,80 +112,80 @@ ** defined, then do no error processing. */ #define YYCODETYPE unsigned short int -#define YYNOCODE 328 +#define YYNOCODE 329 #define YYACTIONTYPE unsigned short int #define YYWILDCARD 80 #define sqlite3_parseTOKENTYPE Token* typedef union { int yyinit; sqlite3_parseTOKENTYPE yy0; - SqliteCreateTable::Column* yy3; - SqliteFilterOver::Over* yy11; - SqliteWith::CommonTableExpression::AsMode* yy21; - ParserResultColumnList* yy27; - SqliteSortOrder* yy35; - SqliteFilterOver::Filter* yy39; - SqliteQuery* yy41; - ParserDeferSubClause* yy53; - SqliteForeignKey::Condition::Reaction* yy106; - ParserOtherSourceList* yy107; - SqliteIndexedColumn* yy110; - ParserCreateTableConstraintList* yy115; - SqliteCreateTrigger::Time* yy120; - int* yy130; - SqliteConflictAlgo* yy136; - SqliteSelect::CompoundOperator* yy142; - SqliteWindowDefinition::Window::Frame::RangeOrRows* yy143; - SqliteWith::CommonTableExpression* yy146; - SqliteWindowDefinition::Window::Frame* yy149; - ParserFkConditionList* yy156; - SqliteWith* yy161; - SqliteWindowDefinition::Window* yy162; - ParserCteList* yy164; - QStringList* yy173; - SqliteFilterOver* yy181; - SqliteExpr* yy186; - SqliteForeignKey::Condition* yy205; - SqliteSelect::Core::JoinConstraint* yy215; - bool* yy225; - ParserOrderByList* yy226; - SqliteWindowDefinition::Window::Frame::Exclude* yy237; - ParserQueryList* yy240; - SqliteCreateTrigger::Event* yy259; - SqliteColumnType* yy267; - SqliteExpr::LikeOp* yy274; - SqliteWindowDefinition::Window::Frame::Bound* yy285; - SqliteSelect* yy297; - ParserIndexedBy* yy300; - ParserStubInsertOrReplace* yy308; - SqliteNulls* yy315; - QString* yy319; - ParserCreateTableColumnConstraintList* yy323; - SqliteUpsert* yy332; - SqliteLimit* yy360; - SqliteSelect::Core* yy378; - ParserTermOrLiteral* yy380; - ParserCreateTableColumnList* yy390; - QVariant* yy393; - ParserFullName* yy396; - SqliteCreateTable::Constraint* yy400; - SqliteCreateTable::Column::Constraint* yy448; - SqliteSelect::Core::JoinOp* yy449; - ParserCreateTableOptionList* yy455; - SqliteCreateTrigger::Scope* yy456; - ParserStubExplain* yy499; - ParserStubTransDetails* yy512; - ParserExprNestedList* yy522; - ParserWindowDefList* yy525; - SqliteSelect::Core::JoinSource* yy553; - SqliteWindowDefinition* yy562; - SqliteSelect::Core::SingleSource* yy595; - SqliteInitially* yy612; - ParserExprList* yy615; - ParserSetValueList* yy621; - ParserIndexedColumnList* yy627; - ParserStubAlias* yy628; - ParserStubCreateTableOption* yy629; + SqliteLimit* yy4; + SqliteWindowDefinition::Window* yy14; + SqliteUpsert* yy16; + ParserCteList* yy17; + SqliteWindowDefinition::Window::Frame::RangeOrRows* yy34; + bool* yy35; + ParserExprNestedList* yy54; + ParserFkConditionList* yy56; + SqliteCreateTable::Column::Constraint* yy64; + SqliteConflictAlgo* yy66; + SqliteSelect* yy73; + SqliteWindowDefinition* yy74; + SqliteNulls* yy99; + ParserStubTransDetails* yy100; + SqliteExpr::LikeOp* yy104; + SqliteCreateTable::Column* yy115; + SqliteCreateTable::Constraint* yy166; + SqliteExpr* yy176; + ParserOtherSourceList* yy195; + ParserCreateTableOptionList* yy217; + ParserDeferSubClause* yy218; + ParserIndexedBy* yy224; + SqliteFilterOver::Over* yy231; + ParserCreateTableColumnList* yy234; + QString* yy255; + ParserCreateTableColumnConstraintList* yy259; + SqliteFilterOver::Filter* yy269; + ParserStubAlias* yy280; + ParserStubInsertOrReplace* yy281; + SqliteWith* yy321; + SqliteSelect::Core::JoinSource* yy335; + QStringList* yy336; + SqliteWindowDefinition::Window::Frame::Exclude* yy337; + SqliteWith::CommonTableExpression* yy366; + SqliteWith::CommonTableExpression::AsMode* yy383; + SqliteSelect::Core::SingleSource* yy393; + SqliteWindowDefinition::Window::Frame::Bound* yy394; + SqliteCreateTrigger::Scope* yy403; + SqliteCreateTrigger::Event* yy407; + ParserResultColumnList* yy421; + SqliteSelect::Core::JoinConstraint* yy423; + SqliteSelect::Core* yy438; + ParserCreateTableConstraintList* yy445; + SqliteSelect::Core::JoinOp* yy461; + SqliteFilterOver* yy487; + SqliteForeignKey::Condition::Reaction* yy488; + ParserOrderByList* yy499; + ParserFullName* yy520; + ParserIndexedColumnList* yy527; + SqliteInitially* yy536; + SqliteIndexedColumn* yy540; + ParserTermOrLiteral* yy542; + ParserWindowDefList* yy555; + int* yy562; + ParserExprList* yy567; + ParserStubExplain* yy571; + SqliteSelect::CompoundOperator* yy574; + ParserQueryList* yy575; + SqliteWindowDefinition::Window::Frame* yy585; + SqliteForeignKey::Condition* yy587; + SqliteColumnType* yy601; + ParserStubCreateTableOption* yy607; + SqliteCreateTrigger::Time* yy612; + ParserSetValueList* yy617; + QVariant* yy629; + SqliteQuery* yy635; + SqliteSortOrder* yy645; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -194,8 +194,8 @@ typedef union { #define sqlite3_parseARG_PDECL ,ParserContext* parserContext #define sqlite3_parseARG_FETCH ParserContext* parserContext = yypParser->parserContext #define sqlite3_parseARG_STORE yypParser->parserContext = parserContext -#define YYNSTATE 870 -#define YYNRULE 487 +#define YYNSTATE 871 +#define YYNRULE 490 #define YYFALLBACK 1 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) @@ -267,778 +267,775 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ -#define YY_ACTTAB_COUNT (2866) +#define YY_ACTTAB_COUNT (2846) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 530, 162, 431, 771, 456, 453, 452, 27, 67, 68, - /* 10 */ 529, 282, 521, 770, 818, 818, 65, 65, 66, 66, - /* 20 */ 66, 66, 451, 64, 64, 64, 64, 63, 63, 62, - /* 30 */ 62, 62, 61, 59, 263, 464, 1230, 807, 67, 68, - /* 40 */ 529, 282, 58, 116, 818, 818, 65, 65, 66, 66, - /* 50 */ 66, 66, 526, 64, 64, 64, 64, 63, 63, 62, - /* 60 */ 62, 62, 61, 59, 263, 681, 1280, 62, 62, 62, - /* 70 */ 61, 59, 263, 808, 432, 66, 66, 66, 66, 56, + /* 0 */ 531, 62, 62, 62, 61, 59, 263, 27, 67, 68, + /* 10 */ 530, 283, 522, 694, 819, 819, 65, 65, 66, 66, + /* 20 */ 66, 66, 837, 64, 64, 64, 64, 63, 63, 62, + /* 30 */ 62, 62, 61, 59, 263, 465, 1234, 808, 67, 68, + /* 40 */ 530, 283, 58, 135, 819, 819, 65, 65, 66, 66, + /* 50 */ 66, 66, 527, 64, 64, 64, 64, 63, 63, 62, + /* 60 */ 62, 62, 61, 59, 263, 381, 1284, 282, 281, 796, + /* 70 */ 659, 261, 78, 809, 194, 66, 66, 66, 66, 56, /* 80 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, - /* 90 */ 59, 263, 834, 862, 14, 835, 53, 54, 715, 704, - /* 100 */ 704, 353, 828, 619, 55, 1042, 508, 633, 295, 781, - /* 110 */ 530, 299, 2, 1042, 343, 861, 861, 816, 1042, 354, - /* 120 */ 867, 518, 521, 830, 859, 829, 230, 672, 673, 833, - /* 130 */ 1108, 821, 324, 861, 528, 327, 816, 832, 831, 830, - /* 140 */ 406, 1042, 39, 143, 608, 80, 862, 128, 515, 291, - /* 150 */ 472, 265, 709, 708, 1042, 301, 1042, 1042, 828, 585, - /* 160 */ 1042, 290, 526, 366, 368, 1042, 1042, 1042, 1042, 1042, - /* 170 */ 1042, 816, 861, 609, 816, 611, 806, 12, 610, 364, - /* 180 */ 560, 829, 230, 808, 510, 506, 163, 351, 1042, 56, - /* 190 */ 528, 782, 132, 82, 861, 371, 587, 365, 21, 428, - /* 200 */ 561, 562, 367, 183, 805, 72, 53, 54, 109, 89, - /* 210 */ 723, 81, 497, 127, 55, 1108, 860, 859, 483, 468, - /* 220 */ 530, 560, 2, 1108, 862, 297, 448, 816, 1108, 724, - /* 230 */ 791, 518, 521, 830, 859, 861, 107, 809, 498, 833, - /* 240 */ 381, 561, 414, 8, 723, 172, 816, 832, 831, 830, - /* 250 */ 369, 1108, 181, 745, 821, 1059, 1059, 141, 72, 52, - /* 260 */ 758, 50, 809, 723, 1108, 502, 1108, 1108, 688, 860, - /* 270 */ 859, 861, 526, 563, 798, 1108, 1108, 1108, 1108, 861, - /* 280 */ 1108, 816, 724, 78, 816, 194, 806, 12, 386, 862, - /* 290 */ 734, 382, 687, 808, 334, 79, 809, 723, 1108, 56, + /* 90 */ 59, 263, 835, 863, 23, 836, 53, 54, 716, 615, + /* 100 */ 831, 796, 520, 261, 55, 1043, 834, 634, 801, 800, + /* 110 */ 531, 829, 2, 1043, 833, 832, 831, 817, 1043, 840, + /* 120 */ 752, 519, 522, 831, 860, 862, 355, 666, 460, 834, + /* 130 */ 1109, 251, 250, 249, 830, 223, 817, 833, 832, 831, + /* 140 */ 862, 1043, 752, 529, 609, 80, 863, 128, 752, 292, + /* 150 */ 863, 265, 868, 412, 1043, 432, 1043, 1043, 829, 367, + /* 160 */ 1043, 291, 527, 163, 369, 1043, 1043, 1043, 1043, 1043, + /* 170 */ 1043, 817, 862, 610, 817, 612, 807, 12, 611, 141, + /* 180 */ 82, 830, 230, 809, 620, 308, 443, 318, 1043, 56, + /* 190 */ 529, 863, 132, 862, 776, 285, 474, 366, 325, 21, + /* 200 */ 428, 328, 368, 183, 806, 72, 53, 54, 109, 89, + /* 210 */ 724, 81, 810, 127, 55, 1109, 861, 860, 484, 469, + /* 220 */ 531, 162, 2, 1109, 457, 454, 453, 817, 1109, 725, + /* 230 */ 286, 519, 522, 831, 860, 341, 513, 810, 779, 834, + /* 240 */ 561, 382, 452, 523, 724, 365, 817, 833, 832, 831, + /* 250 */ 370, 1109, 181, 340, 862, 1060, 1060, 116, 72, 74, + /* 260 */ 562, 563, 113, 724, 1109, 387, 1109, 1109, 287, 861, + /* 270 */ 860, 810, 527, 861, 860, 1109, 1109, 1109, 1109, 682, + /* 280 */ 1109, 817, 725, 672, 817, 73, 807, 12, 407, 804, + /* 290 */ 803, 383, 863, 809, 501, 747, 4, 724, 1109, 56, /* 300 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, - /* 310 */ 59, 263, 751, 858, 415, 798, 53, 54, 790, 614, - /* 320 */ 856, 722, 828, 116, 55, 1093, 742, 167, 413, 857, - /* 330 */ 469, 173, 2, 1093, 751, 42, 861, 816, 1093, 809, - /* 340 */ 751, 518, 821, 830, 859, 829, 230, 860, 859, 833, - /* 350 */ 1358, 190, 535, 3, 528, 487, 816, 832, 831, 830, - /* 360 */ 815, 1093, 711, 759, 809, 721, 717, 58, 122, 505, - /* 370 */ 522, 500, 746, 4, 1093, 817, 1093, 1093, 767, 828, - /* 380 */ 1197, 1197, 483, 470, 600, 1093, 828, 1093, 1093, 601, - /* 390 */ 1093, 816, 91, 861, 816, 815, 806, 12, 809, 44, - /* 400 */ 861, 113, 829, 215, 381, 307, 442, 317, 1093, 829, - /* 410 */ 123, 528, 860, 859, 1200, 284, 473, 423, 528, 67, - /* 420 */ 68, 529, 282, 1197, 1197, 818, 818, 65, 65, 66, - /* 430 */ 66, 66, 66, 74, 64, 64, 64, 64, 63, 63, + /* 310 */ 59, 263, 344, 461, 861, 860, 53, 54, 61, 59, + /* 320 */ 263, 627, 829, 107, 55, 1094, 354, 816, 413, 671, + /* 330 */ 470, 264, 2, 1094, 564, 799, 862, 817, 1094, 822, + /* 340 */ 862, 519, 822, 831, 860, 830, 230, 498, 473, 834, + /* 350 */ 710, 709, 818, 503, 529, 658, 817, 833, 832, 831, + /* 360 */ 364, 1094, 816, 859, 799, 644, 92, 862, 122, 862, + /* 370 */ 857, 673, 674, 499, 1094, 829, 1094, 1094, 829, 858, + /* 380 */ 1199, 1199, 484, 471, 142, 1094, 503, 1094, 1094, 862, + /* 390 */ 1094, 817, 862, 772, 817, 759, 807, 12, 830, 201, + /* 400 */ 862, 830, 215, 771, 1, 382, 177, 529, 1094, 828, + /* 410 */ 529, 705, 705, 863, 1204, 861, 860, 790, 399, 67, + /* 420 */ 68, 530, 283, 1199, 1199, 819, 819, 65, 65, 66, + /* 430 */ 66, 66, 66, 822, 64, 64, 64, 64, 63, 63, /* 440 */ 62, 62, 62, 61, 59, 263, 63, 63, 62, 62, - /* 450 */ 62, 61, 59, 263, 800, 799, 172, 332, 504, 73, - /* 460 */ 626, 775, 116, 1197, 1197, 821, 389, 247, 775, 67, - /* 470 */ 68, 529, 282, 69, 264, 818, 818, 65, 65, 66, - /* 480 */ 66, 66, 66, 412, 64, 64, 64, 64, 63, 63, - /* 490 */ 62, 62, 62, 61, 59, 263, 496, 58, 142, 753, - /* 500 */ 588, 734, 67, 68, 529, 282, 1197, 1197, 818, 818, - /* 510 */ 65, 65, 66, 66, 66, 66, 862, 64, 64, 64, - /* 520 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 788, - /* 530 */ 449, 703, 828, 830, 340, 116, 372, 1307, 177, 833, - /* 540 */ 657, 787, 1307, 45, 505, 363, 861, 832, 831, 830, - /* 550 */ 643, 92, 339, 254, 861, 829, 230, 407, 803, 802, - /* 560 */ 285, 1197, 1197, 380, 528, 342, 699, 795, 658, 261, - /* 570 */ 1200, 81, 1200, 66, 66, 66, 66, 40, 64, 64, + /* 450 */ 62, 61, 59, 263, 39, 143, 172, 163, 776, 431, + /* 460 */ 506, 776, 822, 1199, 1199, 822, 504, 769, 254, 67, + /* 470 */ 68, 530, 283, 69, 821, 819, 819, 65, 65, 66, + /* 480 */ 66, 66, 66, 91, 64, 64, 64, 64, 63, 63, + /* 490 */ 62, 62, 62, 61, 59, 263, 497, 449, 760, 754, + /* 500 */ 768, 735, 67, 68, 530, 283, 1199, 1199, 819, 819, + /* 510 */ 65, 65, 66, 66, 66, 66, 589, 64, 64, 64, + /* 520 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 789, + /* 530 */ 345, 586, 782, 863, 561, 810, 861, 860, 603, 604, + /* 540 */ 425, 788, 176, 45, 862, 8, 57, 172, 862, 729, + /* 550 */ 388, 14, 373, 1311, 562, 414, 822, 863, 1311, 387, + /* 560 */ 810, 1199, 1199, 81, 728, 335, 689, 372, 588, 813, + /* 570 */ 1204, 516, 1204, 66, 66, 66, 66, 40, 64, 64, /* 580 */ 64, 64, 63, 63, 62, 62, 62, 61, 59, 263, - /* 590 */ 693, 862, 483, 484, 281, 280, 862, 1201, 286, 836, - /* 600 */ 67, 68, 529, 282, 1197, 1197, 818, 818, 65, 65, - /* 610 */ 66, 66, 66, 66, 381, 64, 64, 64, 64, 63, - /* 620 */ 63, 62, 62, 62, 61, 59, 263, 862, 1, 751, - /* 630 */ 430, 141, 798, 827, 812, 800, 799, 788, 647, 860, - /* 640 */ 859, 677, 328, 1197, 1197, 861, 409, 492, 648, 787, - /* 650 */ 87, 751, 67, 68, 529, 282, 861, 751, 818, 818, - /* 660 */ 65, 65, 66, 66, 66, 66, 862, 64, 64, 64, - /* 670 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 251, - /* 680 */ 250, 249, 67, 68, 529, 282, 1197, 1197, 818, 818, - /* 690 */ 65, 65, 66, 66, 66, 66, 176, 64, 64, 64, - /* 700 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 764, - /* 710 */ 502, 135, 777, 656, 860, 859, 657, 1266, 162, 860, - /* 720 */ 859, 456, 453, 452, 861, 811, 840, 92, 843, 357, - /* 730 */ 861, 350, 764, 255, 707, 531, 471, 841, 163, 451, - /* 740 */ 839, 684, 861, 584, 584, 467, 746, 4, 665, 459, - /* 750 */ 860, 859, 271, 1201, 644, 1201, 862, 683, 67, 68, - /* 760 */ 529, 282, 23, 491, 818, 818, 65, 65, 66, 66, - /* 770 */ 66, 66, 486, 64, 64, 64, 64, 63, 63, 62, - /* 780 */ 62, 62, 61, 59, 263, 67, 68, 529, 282, 860, - /* 790 */ 859, 818, 818, 65, 65, 66, 66, 66, 66, 751, + /* 590 */ 688, 863, 735, 296, 810, 276, 300, 1205, 586, 607, + /* 600 */ 67, 68, 530, 283, 1199, 1199, 819, 819, 65, 65, + /* 610 */ 66, 66, 66, 66, 752, 64, 64, 64, 64, 63, + /* 620 */ 63, 62, 62, 62, 61, 59, 263, 141, 415, 799, + /* 630 */ 685, 417, 493, 863, 372, 587, 752, 658, 422, 863, + /* 640 */ 302, 862, 752, 1199, 1199, 862, 684, 542, 92, 585, + /* 650 */ 585, 862, 67, 68, 530, 283, 861, 860, 819, 819, + /* 660 */ 65, 65, 66, 66, 66, 66, 812, 64, 64, 64, + /* 670 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 811, + /* 680 */ 861, 860, 67, 68, 530, 283, 1199, 1199, 819, 819, + /* 690 */ 65, 65, 66, 66, 66, 66, 197, 64, 64, 64, + /* 700 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 765, + /* 710 */ 298, 844, 805, 657, 861, 860, 658, 1270, 162, 411, + /* 720 */ 847, 457, 454, 453, 844, 862, 841, 92, 815, 42, + /* 730 */ 862, 532, 765, 842, 1362, 190, 536, 3, 862, 452, + /* 740 */ 118, 791, 468, 747, 4, 723, 116, 863, 492, 488, + /* 750 */ 599, 167, 272, 1205, 645, 1205, 861, 860, 67, 68, + /* 760 */ 530, 283, 861, 860, 819, 819, 65, 65, 66, 66, + /* 770 */ 66, 66, 794, 64, 64, 64, 64, 63, 63, 62, + /* 780 */ 62, 62, 61, 59, 263, 67, 68, 530, 283, 722, + /* 790 */ 718, 819, 819, 65, 65, 66, 66, 66, 66, 869, /* 800 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, - /* 810 */ 59, 263, 530, 1266, 866, 862, 636, 485, 344, 534, - /* 820 */ 457, 751, 503, 768, 521, 344, 180, 751, 597, 466, - /* 830 */ 633, 697, 861, 482, 419, 67, 68, 529, 282, 861, - /* 840 */ 386, 818, 818, 65, 65, 66, 66, 66, 66, 810, + /* 810 */ 59, 263, 531, 1270, 345, 863, 355, 599, 835, 345, + /* 820 */ 458, 836, 822, 598, 522, 801, 800, 483, 862, 419, + /* 830 */ 862, 589, 863, 862, 822, 67, 68, 530, 283, 349, + /* 840 */ 822, 819, 819, 65, 65, 66, 66, 66, 66, 822, /* 850 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, - /* 860 */ 59, 263, 821, 828, 526, 342, 699, 570, 80, 401, - /* 870 */ 353, 122, 119, 61, 59, 263, 842, 861, 585, 860, - /* 880 */ 859, 81, 744, 376, 861, 808, 829, 223, 692, 481, - /* 890 */ 376, 56, 135, 259, 804, 528, 569, 592, 568, 325, - /* 900 */ 283, 567, 633, 326, 965, 520, 803, 802, 53, 54, - /* 910 */ 22, 246, 245, 861, 371, 586, 55, 179, 126, 341, - /* 920 */ 462, 336, 461, 164, 2, 1207, 537, 71, 57, 816, - /* 930 */ 602, 603, 425, 518, 79, 830, 859, 334, 830, 608, - /* 940 */ 80, 833, 588, 165, 833, 775, 793, 1215, 816, 832, - /* 950 */ 831, 830, 832, 831, 830, 795, 519, 261, 197, 862, - /* 960 */ 789, 438, 1202, 354, 1315, 1315, 173, 690, 609, 689, - /* 970 */ 611, 255, 707, 610, 471, 613, 172, 861, 372, 1306, - /* 980 */ 798, 293, 821, 816, 1306, 821, 816, 792, 806, 12, - /* 990 */ 67, 68, 529, 282, 429, 861, 818, 818, 65, 65, - /* 1000 */ 66, 66, 66, 66, 435, 64, 64, 64, 64, 63, - /* 1010 */ 63, 62, 62, 62, 61, 59, 263, 67, 68, 529, - /* 1020 */ 282, 734, 81, 818, 818, 65, 65, 66, 66, 66, - /* 1030 */ 66, 780, 64, 64, 64, 64, 63, 63, 62, 62, - /* 1040 */ 62, 61, 59, 263, 67, 68, 529, 282, 662, 661, - /* 1050 */ 818, 818, 65, 65, 66, 66, 66, 66, 1251, 64, + /* 860 */ 59, 263, 822, 829, 527, 122, 845, 373, 1310, 401, + /* 870 */ 861, 860, 119, 1310, 348, 829, 354, 862, 745, 377, + /* 880 */ 793, 81, 789, 482, 377, 809, 830, 215, 693, 862, + /* 890 */ 862, 56, 593, 259, 788, 529, 704, 256, 830, 123, + /* 900 */ 255, 708, 634, 472, 966, 743, 781, 529, 53, 54, + /* 910 */ 173, 246, 245, 58, 736, 406, 55, 179, 126, 342, + /* 920 */ 463, 337, 462, 164, 2, 1211, 517, 71, 779, 817, + /* 930 */ 343, 700, 256, 519, 90, 831, 860, 335, 831, 609, + /* 940 */ 80, 834, 1219, 698, 834, 822, 776, 505, 817, 833, + /* 950 */ 832, 831, 833, 832, 831, 861, 860, 822, 776, 863, + /* 960 */ 506, 717, 1206, 822, 1319, 1319, 838, 783, 610, 785, + /* 970 */ 612, 780, 822, 611, 795, 664, 172, 343, 700, 196, + /* 980 */ 294, 347, 256, 817, 754, 822, 817, 777, 807, 12, + /* 990 */ 67, 68, 530, 283, 862, 429, 819, 819, 65, 65, + /* 1000 */ 66, 66, 66, 66, 1208, 64, 64, 64, 64, 63, + /* 1010 */ 63, 62, 62, 62, 61, 59, 263, 67, 68, 530, + /* 1020 */ 283, 735, 775, 819, 819, 65, 65, 66, 66, 66, + /* 1030 */ 66, 508, 64, 64, 64, 64, 63, 63, 62, 62, + /* 1040 */ 62, 61, 59, 263, 67, 68, 530, 283, 47, 752, + /* 1050 */ 819, 819, 65, 65, 66, 66, 66, 66, 355, 64, /* 1060 */ 64, 64, 64, 63, 63, 62, 62, 62, 61, 59, - /* 1070 */ 263, 779, 512, 566, 778, 639, 639, 870, 67, 68, - /* 1080 */ 529, 282, 860, 859, 818, 818, 65, 65, 66, 66, + /* 1070 */ 263, 752, 862, 567, 46, 640, 640, 752, 67, 68, + /* 1080 */ 530, 283, 861, 860, 819, 819, 65, 65, 66, 66, /* 1090 */ 66, 66, 51, 64, 64, 64, 64, 63, 63, 62, - /* 1100 */ 62, 62, 61, 59, 263, 821, 411, 794, 862, 67, - /* 1110 */ 68, 529, 282, 118, 698, 818, 818, 65, 65, 66, - /* 1120 */ 66, 66, 66, 437, 64, 64, 64, 64, 63, 63, - /* 1130 */ 62, 62, 62, 61, 59, 263, 834, 861, 862, 835, - /* 1140 */ 196, 67, 68, 529, 282, 696, 48, 818, 818, 65, - /* 1150 */ 65, 66, 66, 66, 66, 776, 64, 64, 64, 64, - /* 1160 */ 63, 63, 62, 62, 62, 61, 59, 263, 1204, 869, - /* 1170 */ 3, 436, 67, 68, 529, 282, 173, 679, 818, 818, - /* 1180 */ 65, 65, 66, 66, 66, 66, 868, 64, 64, 64, - /* 1190 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 774, - /* 1200 */ 267, 862, 622, 67, 68, 529, 282, 173, 195, 818, - /* 1210 */ 818, 65, 65, 66, 66, 66, 66, 735, 64, 64, + /* 1100 */ 62, 62, 61, 59, 263, 390, 247, 509, 863, 67, + /* 1110 */ 68, 530, 283, 746, 699, 819, 819, 65, 65, 66, + /* 1120 */ 66, 66, 66, 438, 64, 64, 64, 64, 63, 63, + /* 1130 */ 62, 62, 62, 61, 59, 263, 44, 862, 863, 20, + /* 1140 */ 863, 67, 68, 530, 283, 697, 48, 819, 819, 65, + /* 1150 */ 65, 66, 66, 66, 66, 79, 64, 64, 64, 64, + /* 1160 */ 63, 63, 62, 62, 62, 61, 59, 263, 255, 708, + /* 1170 */ 792, 472, 67, 68, 530, 283, 44, 680, 819, 819, + /* 1180 */ 65, 65, 66, 66, 66, 66, 507, 64, 64, 64, + /* 1190 */ 64, 63, 63, 62, 62, 62, 61, 59, 263, 117, + /* 1200 */ 268, 436, 863, 67, 68, 530, 283, 863, 195, 819, + /* 1210 */ 819, 65, 65, 66, 66, 66, 66, 77, 64, 64, /* 1220 */ 64, 64, 63, 63, 62, 62, 62, 61, 59, 263, - /* 1230 */ 507, 860, 859, 309, 67, 68, 529, 282, 44, 331, - /* 1240 */ 818, 818, 65, 65, 66, 66, 66, 66, 862, 64, + /* 1230 */ 502, 861, 860, 712, 67, 68, 530, 283, 58, 332, + /* 1240 */ 819, 819, 65, 65, 66, 66, 66, 66, 863, 64, /* 1250 */ 64, 64, 64, 63, 63, 62, 62, 62, 61, 59, - /* 1260 */ 263, 860, 859, 671, 729, 862, 67, 68, 529, 282, - /* 1270 */ 720, 28, 818, 818, 65, 65, 66, 66, 66, 66, - /* 1280 */ 735, 64, 64, 64, 64, 63, 63, 62, 62, 62, - /* 1290 */ 61, 59, 263, 460, 1281, 67, 68, 529, 282, 862, - /* 1300 */ 719, 818, 818, 65, 65, 66, 66, 66, 66, 670, + /* 1260 */ 263, 861, 860, 861, 860, 767, 67, 68, 530, 283, + /* 1270 */ 721, 28, 819, 819, 65, 65, 66, 66, 66, 66, + /* 1280 */ 736, 64, 64, 64, 64, 63, 63, 62, 62, 62, + /* 1290 */ 61, 59, 263, 19, 1285, 67, 68, 530, 283, 737, + /* 1300 */ 720, 819, 819, 65, 65, 66, 66, 66, 66, 864, /* 1310 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, - /* 1320 */ 59, 263, 530, 1279, 860, 859, 304, 726, 320, 354, - /* 1330 */ 735, 44, 269, 81, 521, 837, 47, 494, 67, 68, - /* 1340 */ 529, 282, 861, 861, 818, 818, 65, 65, 66, 66, - /* 1350 */ 66, 66, 862, 64, 64, 64, 64, 63, 63, 62, - /* 1360 */ 62, 62, 61, 59, 263, 598, 46, 828, 530, 606, - /* 1370 */ 828, 860, 859, 590, 526, 509, 20, 716, 373, 517, - /* 1380 */ 521, 861, 554, 494, 861, 821, 862, 493, 860, 859, - /* 1390 */ 829, 230, 828, 829, 230, 808, 843, 256, 399, 528, - /* 1400 */ 501, 56, 528, 6, 862, 846, 861, 437, 44, 986, - /* 1410 */ 861, 112, 117, 122, 645, 829, 215, 122, 53, 54, - /* 1420 */ 526, 861, 860, 859, 528, 77, 55, 408, 417, 862, - /* 1430 */ 483, 474, 598, 493, 2, 751, 862, 766, 516, 816, - /* 1440 */ 778, 808, 861, 518, 513, 830, 859, 56, 554, 381, - /* 1450 */ 530, 833, 381, 499, 539, 828, 441, 751, 816, 832, - /* 1460 */ 831, 830, 521, 751, 53, 54, 22, 862, 861, 861, - /* 1470 */ 625, 629, 55, 689, 775, 860, 859, 862, 829, 215, - /* 1480 */ 2, 864, 122, 19, 266, 816, 739, 528, 551, 518, - /* 1490 */ 761, 830, 859, 816, 862, 861, 816, 833, 806, 12, - /* 1500 */ 861, 828, 526, 548, 816, 832, 831, 830, 821, 860, - /* 1510 */ 859, 345, 756, 642, 755, 861, 551, 828, 637, 81, - /* 1520 */ 820, 549, 548, 808, 829, 230, 5, 860, 859, 56, - /* 1530 */ 311, 861, 760, 528, 862, 765, 4, 775, 862, 816, - /* 1540 */ 829, 230, 816, 863, 806, 12, 53, 54, 754, 528, - /* 1550 */ 548, 122, 860, 859, 55, 752, 122, 403, 18, 860, - /* 1560 */ 859, 277, 2, 281, 280, 728, 821, 816, 122, 490, - /* 1570 */ 862, 518, 346, 830, 859, 753, 735, 276, 316, 833, - /* 1580 */ 727, 387, 268, 381, 750, 4, 816, 832, 831, 830, - /* 1590 */ 860, 859, 861, 17, 630, 557, 16, 256, 344, 381, - /* 1600 */ 860, 859, 1315, 1315, 800, 799, 821, 530, 559, 862, - /* 1610 */ 558, 593, 861, 630, 749, 4, 553, 860, 859, 521, - /* 1620 */ 411, 816, 494, 725, 816, 11, 806, 12, 67, 38, - /* 1630 */ 529, 282, 284, 473, 818, 818, 65, 65, 66, 66, - /* 1640 */ 66, 66, 821, 64, 64, 64, 64, 63, 63, 62, - /* 1650 */ 62, 62, 61, 59, 263, 828, 115, 860, 859, 526, - /* 1660 */ 348, 860, 859, 275, 747, 4, 862, 828, 422, 861, - /* 1670 */ 825, 353, 495, 735, 547, 58, 593, 851, 829, 123, - /* 1680 */ 808, 861, 828, 852, 828, 861, 56, 528, 171, 821, - /* 1690 */ 829, 123, 862, 860, 859, 353, 861, 861, 861, 528, - /* 1700 */ 868, 784, 547, 53, 54, 829, 230, 829, 123, 861, - /* 1710 */ 270, 55, 748, 4, 528, 730, 528, 256, 90, 2, - /* 1720 */ 274, 170, 347, 169, 816, 168, 635, 175, 518, 821, - /* 1730 */ 830, 859, 860, 859, 398, 862, 833, 775, 718, 174, - /* 1740 */ 129, 657, 402, 816, 832, 831, 830, 477, 828, 775, - /* 1750 */ 862, 541, 92, 313, 862, 861, 392, 312, 713, 635, - /* 1760 */ 850, 782, 861, 475, 381, 821, 775, 861, 739, 710, - /* 1770 */ 7, 829, 123, 849, 861, 712, 862, 663, 816, 256, - /* 1780 */ 528, 816, 861, 806, 12, 782, 68, 529, 282, 860, - /* 1790 */ 859, 818, 818, 65, 65, 66, 66, 66, 66, 847, + /* 1320 */ 59, 263, 531, 1283, 333, 861, 860, 730, 450, 116, + /* 1330 */ 861, 860, 648, 116, 522, 678, 762, 495, 67, 68, + /* 1340 */ 530, 283, 649, 826, 819, 819, 65, 65, 66, 66, + /* 1350 */ 66, 66, 135, 64, 64, 64, 64, 63, 63, 62, + /* 1360 */ 62, 62, 61, 59, 263, 829, 663, 662, 531, 487, + /* 1370 */ 867, 861, 860, 510, 527, 535, 52, 329, 50, 862, + /* 1380 */ 522, 409, 540, 495, 667, 829, 634, 494, 830, 230, + /* 1390 */ 863, 862, 740, 354, 79, 809, 862, 529, 829, 862, + /* 1400 */ 761, 56, 740, 6, 863, 601, 862, 862, 830, 230, + /* 1410 */ 602, 122, 862, 871, 486, 81, 862, 529, 53, 54, + /* 1420 */ 527, 830, 123, 571, 80, 408, 55, 284, 5, 863, + /* 1430 */ 529, 439, 271, 494, 2, 438, 173, 22, 423, 817, + /* 1440 */ 756, 809, 411, 519, 518, 831, 860, 56, 382, 862, + /* 1450 */ 531, 834, 570, 863, 569, 829, 442, 568, 817, 833, + /* 1460 */ 832, 831, 522, 403, 53, 54, 22, 863, 511, 862, + /* 1470 */ 175, 352, 55, 396, 430, 863, 755, 863, 830, 230, + /* 1480 */ 2, 776, 122, 538, 783, 817, 829, 529, 863, 519, + /* 1490 */ 863, 831, 860, 817, 863, 514, 817, 834, 807, 12, + /* 1500 */ 862, 358, 527, 351, 817, 833, 832, 831, 752, 830, + /* 1510 */ 123, 829, 266, 861, 860, 484, 485, 643, 529, 81, + /* 1520 */ 115, 546, 869, 809, 753, 862, 500, 861, 860, 56, + /* 1530 */ 752, 18, 987, 122, 830, 123, 752, 646, 382, 817, + /* 1540 */ 546, 863, 817, 529, 807, 12, 53, 54, 17, 614, + /* 1550 */ 863, 437, 861, 860, 55, 122, 173, 691, 174, 690, + /* 1560 */ 852, 741, 2, 282, 281, 552, 16, 817, 546, 776, + /* 1570 */ 863, 519, 11, 831, 860, 58, 861, 860, 863, 834, + /* 1580 */ 521, 804, 803, 393, 171, 638, 817, 833, 832, 831, + /* 1590 */ 861, 860, 594, 552, 776, 558, 81, 863, 861, 860, + /* 1600 */ 861, 860, 1319, 1319, 801, 800, 76, 531, 560, 731, + /* 1610 */ 559, 861, 860, 861, 860, 870, 3, 861, 860, 522, + /* 1620 */ 180, 817, 495, 122, 817, 863, 807, 12, 67, 38, + /* 1630 */ 530, 283, 1255, 170, 819, 819, 65, 65, 66, 66, + /* 1640 */ 66, 66, 491, 64, 64, 64, 64, 63, 63, 62, + /* 1650 */ 62, 62, 61, 59, 263, 829, 799, 594, 549, 527, + /* 1660 */ 630, 784, 690, 525, 861, 860, 863, 326, 829, 862, + /* 1670 */ 843, 327, 496, 861, 860, 829, 550, 549, 830, 230, + /* 1680 */ 809, 862, 862, 285, 474, 310, 56, 529, 719, 862, + /* 1690 */ 44, 830, 123, 861, 860, 555, 740, 863, 830, 230, + /* 1700 */ 529, 861, 860, 53, 54, 549, 548, 529, 740, 112, + /* 1710 */ 862, 55, 305, 591, 169, 484, 475, 44, 374, 2, + /* 1720 */ 861, 860, 862, 168, 817, 736, 312, 354, 519, 129, + /* 1730 */ 831, 860, 435, 829, 548, 489, 834, 173, 382, 829, + /* 1740 */ 391, 862, 636, 817, 833, 832, 831, 862, 861, 860, + /* 1750 */ 863, 776, 863, 862, 766, 4, 830, 215, 382, 751, + /* 1760 */ 4, 555, 830, 211, 122, 529, 398, 395, 626, 750, + /* 1770 */ 4, 529, 727, 863, 467, 636, 863, 478, 817, 267, + /* 1780 */ 714, 817, 778, 807, 12, 740, 68, 530, 283, 861, + /* 1790 */ 860, 819, 819, 65, 65, 66, 66, 66, 66, 862, /* 1800 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, - /* 1810 */ 59, 263, 530, 15, 465, 860, 859, 706, 705, 81, - /* 1820 */ 390, 862, 121, 701, 521, 120, 273, 529, 282, 862, - /* 1830 */ 775, 818, 818, 65, 65, 66, 66, 66, 66, 396, + /* 1810 */ 59, 263, 531, 736, 575, 7, 776, 713, 783, 81, + /* 1820 */ 861, 860, 776, 736, 522, 321, 707, 530, 283, 270, + /* 1830 */ 476, 819, 819, 65, 65, 66, 66, 66, 66, 862, /* 1840 */ 64, 64, 64, 64, 63, 63, 62, 62, 62, 61, - /* 1850 */ 59, 263, 828, 138, 862, 848, 828, 862, 860, 859, - /* 1860 */ 37, 25, 72, 1052, 526, 669, 861, 723, 741, 861, - /* 1870 */ 861, 545, 862, 860, 859, 829, 230, 860, 859, 829, - /* 1880 */ 201, 845, 861, 353, 528, 808, 724, 458, 528, 862, - /* 1890 */ 545, 56, 660, 571, 36, 861, 862, 861, 455, 860, - /* 1900 */ 859, 723, 1315, 1315, 86, 739, 862, 333, 53, 54, - /* 1910 */ 524, 85, 488, 24, 530, 450, 55, 323, 545, 861, - /* 1920 */ 84, 862, 397, 828, 2, 678, 521, 714, 300, 816, - /* 1930 */ 161, 861, 583, 518, 381, 830, 859, 861, 775, 446, - /* 1940 */ 828, 833, 861, 739, 860, 859, 829, 211, 816, 832, - /* 1950 */ 831, 830, 860, 859, 861, 528, 339, 861, 638, 193, - /* 1960 */ 157, 571, 10, 829, 233, 815, 526, 105, 838, 745, - /* 1970 */ 862, 624, 528, 782, 574, 862, 395, 860, 859, 35, - /* 1980 */ 860, 859, 861, 816, 103, 828, 816, 808, 806, 12, - /* 1990 */ 624, 844, 814, 56, 34, 860, 859, 33, 862, 861, - /* 2000 */ 815, 828, 32, 102, 391, 775, 577, 393, 829, 231, - /* 2010 */ 53, 54, 860, 859, 394, 861, 530, 528, 55, 860, - /* 2020 */ 859, 574, 775, 616, 829, 241, 2, 330, 521, 860, - /* 2030 */ 859, 816, 828, 528, 828, 518, 101, 830, 859, 862, - /* 2040 */ 577, 618, 616, 833, 860, 859, 861, 828, 861, 828, - /* 2050 */ 816, 832, 831, 830, 862, 829, 240, 829, 242, 862, - /* 2060 */ 731, 861, 862, 861, 528, 308, 528, 775, 526, 612, - /* 2070 */ 829, 243, 829, 262, 607, 605, 862, 426, 828, 528, - /* 2080 */ 736, 528, 298, 775, 110, 816, 579, 581, 816, 808, - /* 2090 */ 806, 12, 861, 860, 859, 56, 861, 826, 860, 859, - /* 2100 */ 173, 829, 356, 296, 599, 306, 581, 575, 152, 739, - /* 2110 */ 528, 861, 53, 54, 775, 538, 775, 861, 530, 13, - /* 2120 */ 55, 860, 859, 861, 303, 862, 187, 828, 2, 775, - /* 2130 */ 521, 775, 580, 816, 538, 439, 198, 518, 556, 830, - /* 2140 */ 859, 861, 828, 96, 828, 833, 740, 555, 410, 861, - /* 2150 */ 829, 239, 816, 832, 831, 830, 861, 862, 861, 528, - /* 2160 */ 775, 862, 860, 859, 862, 829, 355, 829, 210, 144, - /* 2170 */ 526, 536, 94, 256, 528, 666, 528, 860, 859, 862, - /* 2180 */ 424, 248, 860, 859, 862, 860, 859, 816, 76, 828, - /* 2190 */ 816, 808, 806, 12, 1205, 604, 813, 56, 252, 860, - /* 2200 */ 859, 272, 862, 861, 828, 862, 114, 675, 385, 775, - /* 2210 */ 861, 185, 829, 228, 53, 54, 384, 865, 861, 294, - /* 2220 */ 530, 528, 55, 572, 775, 855, 775, 829, 232, 828, - /* 2230 */ 2, 1207, 521, 861, 854, 816, 528, 853, 634, 518, - /* 2240 */ 533, 830, 859, 861, 862, 184, 287, 833, 860, 859, - /* 2250 */ 383, 828, 829, 379, 816, 832, 831, 830, 862, 653, - /* 2260 */ 861, 528, 862, 523, 862, 861, 862, 182, 108, 447, - /* 2270 */ 532, 775, 526, 641, 829, 378, 737, 861, 75, 359, - /* 2280 */ 860, 859, 828, 528, 860, 859, 775, 860, 859, 816, - /* 2290 */ 861, 862, 816, 808, 806, 12, 861, 646, 178, 56, - /* 2300 */ 632, 824, 860, 859, 284, 829, 377, 860, 859, 358, - /* 2310 */ 823, 775, 862, 732, 528, 628, 53, 54, 23, 489, - /* 2320 */ 623, 591, 530, 192, 55, 860, 859, 861, 860, 859, - /* 2330 */ 43, 828, 2, 775, 521, 822, 70, 816, 166, 305, - /* 2340 */ 263, 518, 352, 830, 859, 861, 828, 88, 862, 833, - /* 2350 */ 862, 279, 861, 861, 829, 227, 816, 832, 831, 830, - /* 2360 */ 861, 480, 862, 528, 775, 700, 260, 860, 859, 829, - /* 2370 */ 213, 405, 278, 349, 526, 861, 49, 505, 528, 861, - /* 2380 */ 1209, 860, 859, 514, 596, 860, 859, 860, 859, 860, - /* 2390 */ 859, 816, 335, 828, 816, 808, 806, 12, 828, 773, - /* 2400 */ 594, 56, 1209, 772, 253, 404, 861, 861, 1209, 578, - /* 2410 */ 769, 763, 861, 775, 860, 859, 829, 226, 53, 54, - /* 2420 */ 862, 829, 225, 862, 676, 528, 55, 582, 775, 573, - /* 2430 */ 528, 139, 862, 828, 2, 860, 859, 757, 861, 816, - /* 2440 */ 140, 476, 473, 518, 702, 860, 859, 861, 165, 564, - /* 2450 */ 862, 833, 691, 686, 1209, 654, 829, 212, 816, 832, - /* 2460 */ 831, 830, 1209, 400, 463, 528, 542, 1209, 329, 861, - /* 2470 */ 685, 860, 859, 860, 859, 775, 576, 322, 828, 337, - /* 2480 */ 775, 420, 861, 681, 544, 860, 859, 682, 659, 680, - /* 2490 */ 1209, 861, 861, 816, 543, 861, 816, 828, 806, 12, - /* 2500 */ 375, 829, 238, 1209, 362, 1209, 1209, 652, 861, 828, - /* 2510 */ 528, 861, 651, 374, 1209, 775, 1209, 1209, 861, 1209, - /* 2520 */ 829, 237, 160, 861, 650, 527, 828, 649, 302, 528, - /* 2530 */ 106, 445, 829, 209, 30, 640, 777, 1209, 828, 861, - /* 2540 */ 861, 528, 861, 860, 859, 828, 860, 859, 159, 829, - /* 2550 */ 124, 158, 861, 292, 137, 860, 859, 288, 528, 861, - /* 2560 */ 775, 829, 208, 427, 828, 258, 289, 861, 829, 206, - /* 2570 */ 528, 861, 656, 860, 859, 31, 321, 528, 861, 775, - /* 2580 */ 861, 443, 156, 318, 199, 631, 104, 829, 234, 136, - /* 2590 */ 155, 775, 627, 314, 783, 154, 528, 191, 828, 111, - /* 2600 */ 828, 310, 828, 738, 434, 828, 621, 617, 775, 433, - /* 2610 */ 615, 134, 861, 153, 861, 421, 861, 828, 133, 861, - /* 2620 */ 775, 829, 236, 829, 229, 829, 235, 775, 829, 224, - /* 2630 */ 528, 861, 528, 595, 528, 151, 418, 528, 828, 100, - /* 2640 */ 829, 221, 416, 828, 150, 99, 775, 149, 98, 528, - /* 2650 */ 148, 97, 861, 147, 30, 565, 388, 861, 146, 29, - /* 2660 */ 552, 829, 205, 550, 131, 828, 829, 204, 546, 828, - /* 2670 */ 528, 828, 26, 130, 145, 528, 83, 540, 186, 861, - /* 2680 */ 775, 200, 775, 861, 775, 861, 360, 775, 829, 203, - /* 2690 */ 786, 801, 829, 202, 829, 214, 511, 528, 189, 775, - /* 2700 */ 828, 528, 188, 528, 60, 828, 797, 828, 743, 733, - /* 2710 */ 338, 677, 244, 315, 861, 454, 319, 440, 370, 861, - /* 2720 */ 775, 861, 620, 829, 219, 775, 819, 9, 829, 218, - /* 2730 */ 829, 125, 528, 796, 785, 41, 828, 528, 664, 528, - /* 2740 */ 444, 828, 361, 257, 525, 762, 674, 775, 668, 95, - /* 2750 */ 861, 775, 695, 775, 655, 861, 828, 667, 694, 829, - /* 2760 */ 217, 589, 828, 81, 829, 216, 862, 1359, 528, 1359, - /* 2770 */ 861, 1359, 1359, 528, 1359, 1359, 861, 1359, 1359, 829, - /* 2780 */ 222, 828, 775, 828, 1359, 829, 220, 775, 528, 775, - /* 2790 */ 1359, 1359, 1359, 1359, 528, 861, 1359, 861, 1359, 1359, - /* 2800 */ 1359, 1359, 1359, 1359, 829, 207, 829, 93, 1359, 1359, - /* 2810 */ 1359, 1359, 1359, 528, 1359, 479, 1359, 1359, 775, 1359, - /* 2820 */ 1359, 1359, 1359, 775, 1359, 1359, 1359, 1359, 1359, 1359, - /* 2830 */ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 775, 1359, - /* 2840 */ 1359, 1359, 1359, 1359, 775, 1359, 1359, 1359, 1359, 1359, - /* 2850 */ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, - /* 2860 */ 1359, 1359, 1359, 775, 1359, 775, + /* 1850 */ 59, 263, 863, 346, 757, 829, 424, 829, 863, 850, + /* 1860 */ 726, 575, 72, 1053, 527, 15, 711, 724, 354, 862, + /* 1870 */ 275, 862, 863, 861, 860, 861, 860, 706, 830, 230, + /* 1880 */ 830, 230, 862, 121, 863, 809, 725, 529, 165, 529, + /* 1890 */ 572, 56, 702, 631, 748, 4, 861, 860, 37, 861, + /* 1900 */ 860, 724, 1319, 1319, 865, 853, 87, 397, 53, 54, + /* 1910 */ 749, 4, 631, 851, 531, 278, 55, 277, 862, 862, + /* 1920 */ 829, 863, 466, 829, 2, 679, 522, 862, 120, 817, + /* 1930 */ 138, 849, 274, 519, 862, 831, 860, 862, 382, 829, + /* 1940 */ 382, 834, 863, 830, 230, 862, 830, 233, 817, 833, + /* 1950 */ 832, 831, 529, 862, 256, 529, 715, 25, 572, 783, + /* 1960 */ 317, 670, 830, 231, 269, 459, 527, 36, 778, 661, + /* 1970 */ 846, 529, 456, 554, 862, 861, 860, 86, 85, 848, + /* 1980 */ 402, 861, 860, 817, 862, 839, 817, 809, 807, 12, + /* 1990 */ 827, 829, 24, 56, 816, 861, 860, 451, 863, 862, + /* 2000 */ 863, 625, 334, 382, 862, 862, 776, 861, 860, 84, + /* 2010 */ 53, 54, 863, 447, 830, 241, 531, 340, 55, 863, + /* 2020 */ 625, 161, 776, 529, 639, 814, 2, 331, 522, 816, + /* 2030 */ 10, 817, 829, 524, 193, 519, 157, 831, 860, 862, + /* 2040 */ 746, 105, 863, 834, 861, 860, 862, 862, 829, 863, + /* 2050 */ 817, 833, 832, 831, 863, 830, 240, 647, 103, 578, + /* 2060 */ 35, 742, 862, 34, 529, 861, 860, 738, 527, 33, + /* 2070 */ 32, 830, 242, 829, 776, 862, 1202, 863, 829, 102, + /* 2080 */ 529, 862, 863, 394, 829, 817, 392, 862, 817, 809, + /* 2090 */ 807, 12, 862, 578, 101, 56, 830, 243, 862, 309, + /* 2100 */ 314, 830, 262, 733, 313, 529, 619, 830, 357, 426, + /* 2110 */ 529, 613, 53, 54, 862, 776, 529, 862, 531, 608, + /* 2120 */ 55, 861, 860, 861, 860, 863, 606, 829, 2, 617, + /* 2130 */ 522, 776, 110, 817, 654, 861, 860, 519, 173, 831, + /* 2140 */ 860, 862, 861, 860, 600, 834, 166, 863, 617, 481, + /* 2150 */ 830, 239, 817, 833, 832, 831, 776, 829, 642, 529, + /* 2160 */ 862, 776, 732, 862, 676, 861, 860, 776, 701, 307, + /* 2170 */ 527, 862, 861, 860, 336, 152, 13, 861, 860, 187, + /* 2180 */ 830, 356, 862, 304, 829, 198, 581, 817, 862, 529, + /* 2190 */ 817, 809, 807, 12, 1209, 829, 144, 56, 862, 637, + /* 2200 */ 861, 860, 863, 677, 863, 861, 860, 830, 210, 862, + /* 2210 */ 776, 557, 655, 605, 53, 54, 529, 862, 830, 228, + /* 2220 */ 531, 96, 55, 863, 556, 410, 862, 529, 863, 537, + /* 2230 */ 2, 1211, 522, 252, 94, 817, 829, 330, 635, 519, + /* 2240 */ 776, 831, 860, 863, 256, 863, 248, 834, 861, 860, + /* 2250 */ 862, 862, 829, 863, 817, 833, 832, 831, 273, 830, + /* 2260 */ 232, 633, 386, 114, 597, 863, 862, 776, 529, 866, + /* 2270 */ 861, 860, 527, 185, 385, 830, 380, 829, 776, 856, + /* 2280 */ 184, 108, 829, 629, 529, 854, 182, 863, 829, 817, + /* 2290 */ 855, 862, 817, 809, 807, 12, 862, 534, 533, 56, + /* 2300 */ 830, 379, 862, 448, 863, 830, 378, 323, 75, 529, + /* 2310 */ 178, 830, 227, 825, 529, 285, 53, 54, 23, 776, + /* 2320 */ 529, 862, 531, 824, 55, 861, 860, 861, 860, 863, + /* 2330 */ 490, 829, 2, 43, 522, 776, 70, 817, 624, 592, + /* 2340 */ 595, 519, 263, 831, 860, 862, 861, 860, 863, 834, + /* 2350 */ 863, 861, 860, 360, 830, 213, 817, 833, 832, 831, + /* 2360 */ 776, 829, 582, 529, 583, 776, 861, 860, 861, 860, + /* 2370 */ 359, 776, 420, 353, 527, 862, 861, 860, 544, 192, + /* 2380 */ 1213, 582, 280, 823, 830, 226, 862, 88, 861, 860, + /* 2390 */ 405, 817, 862, 529, 817, 809, 807, 12, 829, 301, + /* 2400 */ 260, 56, 1213, 584, 539, 515, 363, 577, 1213, 279, + /* 2410 */ 861, 860, 862, 862, 776, 49, 579, 528, 53, 54, + /* 2420 */ 862, 830, 225, 539, 829, 350, 55, 861, 860, 863, + /* 2430 */ 529, 862, 863, 506, 2, 324, 565, 773, 862, 817, + /* 2440 */ 774, 440, 404, 519, 776, 861, 860, 830, 212, 862, + /* 2450 */ 770, 834, 861, 860, 1213, 862, 529, 764, 817, 833, + /* 2460 */ 832, 831, 1213, 829, 543, 545, 758, 1213, 306, 303, + /* 2470 */ 253, 861, 860, 861, 860, 139, 140, 862, 474, 477, + /* 2480 */ 299, 776, 862, 862, 580, 165, 830, 238, 829, 574, + /* 2490 */ 1213, 692, 464, 817, 862, 529, 817, 703, 807, 12, + /* 2500 */ 686, 687, 862, 1213, 829, 1213, 1213, 776, 293, 829, + /* 2510 */ 289, 830, 237, 400, 1213, 829, 1213, 1213, 862, 1213, + /* 2520 */ 529, 739, 862, 862, 862, 338, 829, 830, 209, 862, + /* 2530 */ 297, 682, 830, 124, 576, 376, 529, 1213, 830, 208, + /* 2540 */ 862, 529, 681, 290, 862, 829, 776, 529, 660, 830, + /* 2550 */ 206, 375, 861, 860, 657, 861, 860, 862, 529, 862, + /* 2560 */ 295, 829, 288, 683, 573, 829, 384, 829, 830, 234, + /* 2570 */ 641, 776, 160, 106, 862, 862, 862, 529, 653, 862, + /* 2580 */ 652, 862, 651, 650, 830, 236, 159, 776, 830, 229, + /* 2590 */ 830, 235, 776, 529, 446, 137, 258, 529, 776, 529, + /* 2600 */ 829, 30, 829, 158, 322, 427, 829, 156, 31, 776, + /* 2610 */ 444, 199, 632, 104, 862, 136, 862, 319, 155, 628, + /* 2620 */ 862, 154, 829, 830, 224, 830, 221, 315, 776, 830, + /* 2630 */ 205, 111, 529, 311, 529, 434, 862, 433, 529, 622, + /* 2640 */ 616, 134, 829, 618, 776, 830, 204, 829, 776, 829, + /* 2650 */ 776, 421, 191, 133, 529, 153, 862, 596, 418, 151, + /* 2660 */ 100, 862, 416, 862, 829, 830, 203, 150, 99, 149, + /* 2670 */ 830, 202, 830, 214, 529, 148, 98, 97, 862, 529, + /* 2680 */ 147, 529, 30, 776, 566, 776, 389, 830, 219, 776, + /* 2690 */ 829, 553, 829, 146, 829, 29, 529, 829, 26, 551, + /* 2700 */ 131, 130, 145, 547, 862, 776, 862, 541, 862, 83, + /* 2710 */ 200, 862, 186, 830, 218, 830, 125, 830, 217, 829, + /* 2720 */ 830, 216, 529, 60, 529, 776, 529, 361, 189, 529, + /* 2730 */ 776, 829, 776, 862, 787, 188, 829, 744, 802, 798, + /* 2740 */ 512, 339, 830, 222, 678, 862, 734, 776, 455, 244, + /* 2750 */ 862, 529, 320, 441, 830, 220, 316, 623, 621, 830, + /* 2760 */ 207, 371, 829, 529, 9, 820, 797, 526, 529, 257, + /* 2770 */ 786, 665, 362, 776, 41, 776, 862, 776, 445, 763, + /* 2780 */ 776, 95, 675, 696, 695, 830, 93, 590, 81, 863, + /* 2790 */ 669, 668, 1363, 1363, 480, 1363, 656, 1363, 1363, 1363, + /* 2800 */ 1363, 1363, 776, 1363, 1363, 1363, 1363, 1363, 1363, 1363, + /* 2810 */ 1363, 1363, 1363, 1363, 776, 1363, 1363, 1363, 1363, 776, + /* 2820 */ 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, + /* 2830 */ 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, + /* 2840 */ 1363, 1363, 1363, 1363, 1363, 776, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 4, 131, 24, 31, 134, 135, 136, 50, 81, 82, - /* 10 */ 83, 84, 16, 41, 87, 88, 89, 90, 91, 92, - /* 20 */ 93, 94, 152, 96, 97, 98, 99, 100, 101, 102, + /* 0 */ 4, 102, 103, 104, 105, 106, 107, 50, 81, 82, + /* 10 */ 83, 84, 16, 217, 87, 88, 89, 90, 91, 92, + /* 20 */ 93, 94, 226, 96, 97, 98, 99, 100, 101, 102, /* 30 */ 103, 104, 105, 106, 107, 102, 109, 117, 81, 82, /* 40 */ 83, 84, 122, 122, 87, 88, 89, 90, 91, 92, /* 50 */ 93, 94, 56, 96, 97, 98, 99, 100, 101, 102, - /* 60 */ 103, 104, 105, 106, 107, 144, 109, 102, 103, 104, - /* 70 */ 105, 106, 107, 77, 148, 91, 92, 93, 94, 83, + /* 60 */ 103, 104, 105, 106, 107, 215, 109, 100, 101, 219, + /* 70 */ 220, 221, 116, 77, 118, 91, 92, 93, 94, 83, /* 80 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 90 */ 106, 107, 159, 4, 116, 162, 100, 101, 102, 42, - /* 100 */ 43, 203, 203, 177, 108, 109, 83, 211, 68, 44, - /* 110 */ 4, 71, 116, 117, 122, 217, 217, 121, 122, 203, - /* 120 */ 109, 125, 16, 127, 128, 226, 227, 132, 133, 133, - /* 130 */ 24, 4, 68, 217, 235, 71, 140, 141, 142, 143, - /* 140 */ 242, 145, 85, 86, 248, 249, 4, 9, 83, 11, - /* 150 */ 158, 13, 160, 161, 158, 115, 160, 161, 203, 80, - /* 160 */ 164, 23, 56, 113, 26, 169, 170, 171, 172, 173, - /* 170 */ 174, 175, 217, 277, 178, 279, 180, 181, 282, 115, - /* 180 */ 203, 226, 227, 77, 285, 162, 43, 288, 192, 83, - /* 190 */ 235, 293, 54, 117, 217, 116, 117, 59, 302, 303, - /* 200 */ 223, 224, 64, 65, 117, 116, 100, 101, 70, 122, - /* 210 */ 121, 73, 19, 75, 108, 109, 127, 128, 263, 264, - /* 220 */ 4, 203, 116, 117, 4, 185, 83, 121, 122, 140, - /* 230 */ 314, 125, 16, 127, 128, 217, 122, 5, 45, 133, - /* 240 */ 285, 223, 224, 116, 155, 118, 140, 141, 142, 143, - /* 250 */ 112, 145, 114, 122, 127, 166, 167, 203, 116, 182, - /* 260 */ 67, 184, 30, 121, 158, 203, 160, 161, 36, 127, - /* 270 */ 128, 217, 56, 296, 297, 169, 170, 171, 172, 217, - /* 280 */ 174, 175, 140, 116, 178, 118, 180, 181, 145, 4, - /* 290 */ 163, 153, 60, 77, 151, 164, 64, 155, 192, 83, + /* 90 */ 106, 107, 159, 4, 173, 162, 100, 101, 102, 60, + /* 100 */ 127, 219, 220, 221, 108, 109, 133, 211, 141, 142, + /* 110 */ 4, 203, 116, 117, 141, 142, 143, 121, 122, 225, + /* 120 */ 35, 125, 16, 127, 128, 217, 203, 233, 234, 133, + /* 130 */ 24, 146, 147, 148, 226, 227, 140, 141, 142, 143, + /* 140 */ 217, 145, 57, 235, 248, 249, 4, 9, 63, 11, + /* 150 */ 4, 13, 109, 76, 158, 148, 160, 161, 203, 113, + /* 160 */ 164, 23, 56, 43, 26, 169, 170, 171, 172, 173, + /* 170 */ 174, 175, 217, 277, 178, 279, 180, 181, 282, 203, + /* 180 */ 117, 226, 227, 77, 177, 146, 147, 148, 192, 83, + /* 190 */ 235, 4, 54, 217, 286, 156, 157, 59, 68, 303, + /* 200 */ 304, 71, 64, 65, 117, 116, 100, 101, 70, 122, + /* 210 */ 121, 73, 5, 75, 108, 109, 127, 128, 263, 264, + /* 220 */ 4, 131, 116, 117, 134, 135, 136, 121, 122, 140, + /* 230 */ 153, 125, 16, 127, 128, 133, 313, 30, 315, 133, + /* 240 */ 203, 286, 152, 36, 155, 115, 140, 141, 142, 143, + /* 250 */ 112, 145, 114, 151, 217, 166, 167, 122, 116, 90, + /* 260 */ 223, 224, 116, 121, 158, 145, 160, 161, 191, 127, + /* 270 */ 128, 64, 56, 127, 128, 169, 170, 171, 172, 144, + /* 280 */ 174, 175, 140, 15, 178, 116, 180, 181, 222, 223, + /* 290 */ 224, 153, 4, 77, 318, 319, 320, 155, 192, 83, /* 300 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 310 */ 106, 107, 35, 21, 296, 297, 100, 101, 117, 60, - /* 320 */ 28, 122, 203, 122, 108, 109, 117, 128, 190, 37, - /* 330 */ 211, 122, 116, 117, 57, 145, 217, 121, 122, 5, - /* 340 */ 63, 125, 4, 127, 128, 226, 227, 127, 128, 133, - /* 350 */ 196, 197, 198, 199, 235, 165, 140, 141, 142, 143, - /* 360 */ 140, 145, 117, 170, 30, 166, 167, 122, 249, 169, - /* 370 */ 36, 317, 318, 319, 158, 133, 160, 161, 316, 203, - /* 380 */ 42, 43, 263, 264, 7, 169, 203, 171, 172, 12, - /* 390 */ 174, 175, 192, 217, 178, 175, 180, 181, 64, 122, - /* 400 */ 217, 116, 226, 227, 285, 146, 147, 148, 192, 226, - /* 410 */ 227, 235, 127, 128, 26, 156, 157, 40, 235, 81, + /* 310 */ 106, 107, 122, 45, 127, 128, 100, 101, 105, 106, + /* 320 */ 107, 175, 203, 122, 108, 109, 203, 140, 190, 61, + /* 330 */ 211, 116, 116, 117, 297, 298, 217, 121, 122, 4, + /* 340 */ 217, 125, 4, 127, 128, 226, 227, 19, 158, 133, + /* 350 */ 160, 161, 133, 203, 235, 203, 140, 141, 142, 143, + /* 360 */ 208, 145, 175, 21, 298, 213, 214, 217, 249, 217, + /* 370 */ 28, 132, 133, 45, 158, 203, 160, 161, 203, 37, + /* 380 */ 42, 43, 263, 264, 119, 169, 203, 171, 172, 217, + /* 390 */ 174, 175, 217, 31, 178, 67, 180, 181, 226, 227, + /* 400 */ 217, 226, 227, 41, 116, 286, 119, 235, 192, 121, + /* 410 */ 235, 42, 43, 4, 26, 127, 128, 294, 150, 81, /* 420 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 430 */ 92, 93, 94, 90, 96, 97, 98, 99, 100, 101, + /* 430 */ 92, 93, 94, 4, 96, 97, 98, 99, 100, 101, /* 440 */ 102, 103, 104, 105, 106, 107, 100, 101, 102, 103, - /* 450 */ 104, 105, 106, 107, 141, 142, 118, 117, 275, 116, - /* 460 */ 175, 285, 122, 42, 43, 127, 308, 309, 285, 81, - /* 470 */ 82, 83, 84, 52, 116, 87, 88, 89, 90, 91, - /* 480 */ 92, 93, 94, 76, 96, 97, 98, 99, 100, 101, - /* 490 */ 102, 103, 104, 105, 106, 107, 320, 122, 119, 323, - /* 500 */ 80, 163, 81, 82, 83, 84, 85, 86, 87, 88, - /* 510 */ 89, 90, 91, 92, 93, 94, 4, 96, 97, 98, + /* 450 */ 104, 105, 106, 107, 85, 86, 118, 43, 286, 24, + /* 460 */ 169, 286, 127, 42, 43, 127, 316, 317, 116, 81, + /* 470 */ 82, 83, 84, 52, 139, 87, 88, 89, 90, 91, + /* 480 */ 92, 93, 94, 192, 96, 97, 98, 99, 100, 101, + /* 490 */ 102, 103, 104, 105, 106, 107, 321, 83, 170, 324, + /* 500 */ 317, 163, 81, 82, 83, 84, 85, 86, 87, 88, + /* 510 */ 89, 90, 91, 92, 93, 94, 80, 96, 97, 98, /* 520 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 10, - /* 530 */ 117, 291, 203, 127, 133, 122, 116, 117, 119, 133, - /* 540 */ 203, 22, 122, 122, 169, 208, 217, 141, 142, 143, - /* 550 */ 213, 214, 151, 116, 217, 226, 227, 222, 223, 224, - /* 560 */ 153, 42, 43, 215, 235, 325, 326, 219, 220, 221, - /* 570 */ 182, 73, 184, 91, 92, 93, 94, 95, 96, 97, + /* 530 */ 203, 80, 44, 4, 203, 5, 127, 128, 146, 147, + /* 540 */ 148, 22, 122, 122, 217, 116, 116, 118, 217, 140, + /* 550 */ 205, 116, 116, 117, 223, 224, 127, 4, 122, 145, + /* 560 */ 30, 42, 43, 73, 155, 151, 36, 116, 117, 117, + /* 570 */ 182, 83, 184, 91, 92, 93, 94, 95, 96, 97, /* 580 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - /* 590 */ 217, 4, 263, 264, 100, 101, 4, 26, 191, 226, + /* 590 */ 60, 4, 163, 68, 64, 268, 71, 26, 80, 109, /* 600 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 610 */ 91, 92, 93, 94, 285, 96, 97, 98, 99, 100, - /* 620 */ 101, 102, 103, 104, 105, 106, 107, 4, 116, 35, - /* 630 */ 132, 203, 297, 121, 117, 141, 142, 10, 233, 127, - /* 640 */ 128, 236, 203, 42, 43, 217, 207, 53, 243, 22, - /* 650 */ 58, 57, 81, 82, 83, 84, 217, 63, 87, 88, - /* 660 */ 89, 90, 91, 92, 93, 94, 4, 96, 97, 98, - /* 670 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 146, - /* 680 */ 147, 148, 81, 82, 83, 84, 85, 86, 87, 88, - /* 690 */ 89, 90, 91, 92, 93, 94, 122, 96, 97, 98, + /* 610 */ 91, 92, 93, 94, 35, 96, 97, 98, 99, 100, + /* 620 */ 101, 102, 103, 104, 105, 106, 107, 203, 297, 298, + /* 630 */ 21, 203, 53, 4, 116, 117, 57, 203, 293, 4, + /* 640 */ 115, 217, 63, 42, 43, 217, 37, 213, 214, 120, + /* 650 */ 121, 217, 81, 82, 83, 84, 127, 128, 87, 88, + /* 660 */ 89, 90, 91, 92, 93, 94, 117, 96, 97, 98, + /* 670 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 117, + /* 680 */ 127, 128, 81, 82, 83, 84, 85, 86, 87, 88, + /* 690 */ 89, 90, 91, 92, 93, 94, 116, 96, 97, 98, /* 700 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 32, - /* 710 */ 203, 122, 120, 126, 127, 128, 203, 13, 131, 127, - /* 720 */ 128, 134, 135, 136, 217, 117, 213, 214, 203, 260, - /* 730 */ 217, 262, 55, 250, 251, 210, 253, 212, 43, 152, - /* 740 */ 225, 21, 217, 120, 121, 317, 318, 319, 233, 234, - /* 750 */ 127, 128, 239, 182, 241, 184, 4, 37, 81, 82, - /* 760 */ 83, 84, 173, 169, 87, 88, 89, 90, 91, 92, - /* 770 */ 93, 94, 38, 96, 97, 98, 99, 100, 101, 102, - /* 780 */ 103, 104, 105, 106, 107, 81, 82, 83, 84, 127, - /* 790 */ 128, 87, 88, 89, 90, 91, 92, 93, 94, 35, + /* 710 */ 185, 203, 117, 126, 127, 128, 203, 13, 131, 29, + /* 720 */ 212, 134, 135, 136, 203, 217, 213, 214, 175, 145, + /* 730 */ 217, 210, 55, 212, 196, 197, 198, 199, 217, 152, + /* 740 */ 122, 117, 318, 319, 320, 122, 122, 4, 169, 165, + /* 750 */ 121, 128, 239, 182, 241, 184, 127, 128, 81, 82, + /* 760 */ 83, 84, 127, 128, 87, 88, 89, 90, 91, 92, + /* 770 */ 93, 94, 117, 96, 97, 98, 99, 100, 101, 102, + /* 780 */ 103, 104, 105, 106, 107, 81, 82, 83, 84, 166, + /* 790 */ 167, 87, 88, 89, 90, 91, 92, 93, 94, 109, /* 800 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 810 */ 106, 107, 4, 109, 195, 4, 154, 83, 203, 200, - /* 820 */ 34, 57, 315, 316, 16, 203, 74, 63, 66, 79, - /* 830 */ 211, 291, 217, 211, 72, 81, 82, 83, 84, 217, - /* 840 */ 145, 87, 88, 89, 90, 91, 92, 93, 94, 117, + /* 810 */ 106, 107, 4, 109, 203, 4, 203, 188, 159, 203, + /* 820 */ 34, 162, 4, 66, 16, 141, 142, 211, 217, 72, + /* 830 */ 217, 80, 4, 217, 4, 81, 82, 83, 84, 229, + /* 840 */ 4, 87, 88, 89, 90, 91, 92, 93, 94, 4, /* 850 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 860 */ 106, 107, 4, 203, 56, 325, 326, 248, 249, 83, - /* 870 */ 203, 249, 118, 105, 106, 107, 124, 217, 80, 127, - /* 880 */ 128, 73, 267, 268, 217, 77, 226, 227, 77, 267, - /* 890 */ 268, 83, 122, 107, 117, 235, 277, 135, 279, 203, - /* 900 */ 255, 282, 211, 207, 118, 222, 223, 224, 100, 101, - /* 910 */ 265, 100, 101, 217, 116, 117, 108, 131, 132, 133, - /* 920 */ 134, 135, 136, 137, 116, 117, 307, 116, 116, 121, - /* 930 */ 146, 147, 148, 125, 164, 127, 128, 151, 127, 248, - /* 940 */ 249, 133, 80, 193, 133, 285, 117, 185, 140, 141, - /* 950 */ 142, 143, 141, 142, 143, 219, 220, 221, 116, 4, - /* 960 */ 293, 117, 26, 203, 156, 157, 122, 244, 277, 246, - /* 970 */ 279, 250, 251, 282, 253, 26, 118, 217, 116, 117, - /* 980 */ 297, 203, 4, 175, 122, 127, 178, 117, 180, 181, - /* 990 */ 81, 82, 83, 84, 303, 217, 87, 88, 89, 90, - /* 1000 */ 91, 92, 93, 94, 283, 96, 97, 98, 99, 100, + /* 860 */ 106, 107, 4, 203, 56, 249, 123, 116, 117, 83, + /* 870 */ 127, 128, 118, 122, 229, 203, 203, 217, 267, 268, + /* 880 */ 117, 73, 10, 267, 268, 77, 226, 227, 77, 217, + /* 890 */ 217, 83, 135, 107, 22, 235, 292, 287, 226, 227, + /* 900 */ 250, 251, 211, 253, 118, 117, 44, 235, 100, 101, + /* 910 */ 122, 100, 101, 122, 219, 242, 108, 131, 132, 133, + /* 920 */ 134, 135, 136, 137, 116, 117, 313, 116, 315, 121, + /* 930 */ 326, 327, 287, 125, 116, 127, 128, 151, 127, 248, + /* 940 */ 249, 133, 185, 292, 133, 127, 286, 275, 140, 141, + /* 950 */ 142, 143, 141, 142, 143, 127, 128, 127, 286, 4, + /* 960 */ 169, 266, 26, 127, 156, 157, 138, 294, 277, 139, + /* 970 */ 279, 117, 127, 282, 129, 139, 118, 326, 327, 116, + /* 980 */ 203, 321, 287, 175, 324, 127, 178, 26, 180, 181, + /* 990 */ 81, 82, 83, 84, 217, 304, 87, 88, 89, 90, + /* 1000 */ 91, 92, 93, 94, 182, 96, 97, 98, 99, 100, /* 1010 */ 101, 102, 103, 104, 105, 106, 107, 81, 82, 83, - /* 1020 */ 84, 163, 73, 87, 88, 89, 90, 91, 92, 93, - /* 1030 */ 94, 44, 96, 97, 98, 99, 100, 101, 102, 103, - /* 1040 */ 104, 105, 106, 107, 81, 82, 83, 84, 217, 218, - /* 1050 */ 87, 88, 89, 90, 91, 92, 93, 94, 109, 96, + /* 1020 */ 84, 163, 117, 87, 88, 89, 90, 91, 92, 93, + /* 1030 */ 94, 162, 96, 97, 98, 99, 100, 101, 102, 103, + /* 1040 */ 104, 105, 106, 107, 81, 82, 83, 84, 164, 35, + /* 1050 */ 87, 88, 89, 90, 91, 92, 93, 94, 203, 96, /* 1060 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 1070 */ 107, 117, 312, 295, 314, 120, 121, 0, 81, 82, + /* 1070 */ 107, 57, 217, 296, 164, 120, 121, 63, 81, 82, /* 1080 */ 83, 84, 127, 128, 87, 88, 89, 90, 91, 92, /* 1090 */ 93, 94, 183, 96, 97, 98, 99, 100, 101, 102, - /* 1100 */ 103, 104, 105, 106, 107, 127, 29, 129, 4, 81, + /* 1100 */ 103, 104, 105, 106, 107, 309, 310, 83, 4, 81, /* 1110 */ 82, 83, 84, 122, 117, 87, 88, 89, 90, 91, /* 1120 */ 92, 93, 94, 203, 96, 97, 98, 99, 100, 101, - /* 1130 */ 102, 103, 104, 105, 106, 107, 159, 217, 4, 162, - /* 1140 */ 116, 81, 82, 83, 84, 117, 183, 87, 88, 89, - /* 1150 */ 90, 91, 92, 93, 94, 26, 96, 97, 98, 99, - /* 1160 */ 100, 101, 102, 103, 104, 105, 106, 107, 182, 198, - /* 1170 */ 199, 117, 81, 82, 83, 84, 122, 117, 87, 88, - /* 1180 */ 89, 90, 91, 92, 93, 94, 109, 96, 97, 98, - /* 1190 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 117, - /* 1200 */ 280, 4, 117, 81, 82, 83, 84, 122, 117, 87, - /* 1210 */ 88, 89, 90, 91, 92, 93, 94, 219, 96, 97, + /* 1130 */ 102, 103, 104, 105, 106, 107, 122, 217, 4, 14, + /* 1140 */ 4, 81, 82, 83, 84, 117, 183, 87, 88, 89, + /* 1150 */ 90, 91, 92, 93, 94, 164, 96, 97, 98, 99, + /* 1160 */ 100, 101, 102, 103, 104, 105, 106, 107, 250, 251, + /* 1170 */ 315, 253, 81, 82, 83, 84, 122, 117, 87, 88, + /* 1180 */ 89, 90, 91, 92, 93, 94, 162, 96, 97, 98, + /* 1190 */ 99, 100, 101, 102, 103, 104, 105, 106, 107, 122, + /* 1200 */ 280, 283, 4, 81, 82, 83, 84, 4, 117, 87, + /* 1210 */ 88, 89, 90, 91, 92, 93, 94, 116, 96, 97, /* 1220 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - /* 1230 */ 162, 127, 128, 117, 81, 82, 83, 84, 122, 117, + /* 1230 */ 118, 127, 128, 117, 81, 82, 83, 84, 122, 117, /* 1240 */ 87, 88, 89, 90, 91, 92, 93, 94, 4, 96, /* 1250 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - /* 1260 */ 107, 127, 128, 15, 266, 4, 81, 82, 83, 84, + /* 1260 */ 107, 127, 128, 127, 128, 117, 81, 82, 83, 84, /* 1270 */ 166, 118, 87, 88, 89, 90, 91, 92, 93, 94, /* 1280 */ 219, 96, 97, 98, 99, 100, 101, 102, 103, 104, - /* 1290 */ 105, 106, 107, 45, 109, 81, 82, 83, 84, 4, - /* 1300 */ 166, 87, 88, 89, 90, 91, 92, 93, 94, 61, + /* 1290 */ 105, 106, 107, 14, 109, 81, 82, 83, 84, 163, + /* 1300 */ 166, 87, 88, 89, 90, 91, 92, 93, 94, 111, /* 1310 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 1320 */ 106, 107, 4, 109, 127, 128, 117, 266, 203, 203, - /* 1330 */ 219, 122, 207, 73, 16, 138, 164, 19, 81, 82, - /* 1340 */ 83, 84, 217, 217, 87, 88, 89, 90, 91, 92, - /* 1350 */ 93, 94, 4, 96, 97, 98, 99, 100, 101, 102, - /* 1360 */ 103, 104, 105, 106, 107, 121, 164, 203, 4, 109, - /* 1370 */ 203, 127, 128, 117, 56, 211, 14, 266, 122, 211, - /* 1380 */ 16, 217, 121, 19, 217, 4, 4, 69, 127, 128, - /* 1390 */ 226, 227, 203, 226, 227, 77, 203, 286, 150, 235, - /* 1400 */ 118, 83, 235, 85, 4, 212, 217, 203, 122, 117, - /* 1410 */ 217, 116, 122, 249, 122, 226, 227, 249, 100, 101, - /* 1420 */ 56, 217, 127, 128, 235, 116, 108, 263, 203, 4, - /* 1430 */ 263, 264, 188, 69, 116, 35, 4, 117, 312, 121, - /* 1440 */ 314, 77, 217, 125, 211, 127, 128, 83, 187, 285, - /* 1450 */ 4, 133, 285, 53, 203, 203, 255, 57, 140, 141, - /* 1460 */ 142, 143, 16, 63, 100, 101, 265, 4, 217, 217, - /* 1470 */ 175, 244, 108, 246, 285, 127, 128, 4, 226, 227, - /* 1480 */ 116, 203, 249, 14, 280, 121, 203, 235, 140, 125, - /* 1490 */ 47, 127, 128, 175, 4, 217, 178, 133, 180, 181, - /* 1500 */ 217, 203, 56, 121, 140, 141, 142, 143, 127, 127, - /* 1510 */ 128, 322, 323, 211, 32, 217, 168, 203, 211, 73, - /* 1520 */ 139, 139, 140, 77, 226, 227, 82, 127, 128, 83, - /* 1530 */ 211, 217, 62, 235, 4, 318, 319, 285, 4, 175, - /* 1540 */ 226, 227, 178, 111, 180, 181, 100, 101, 62, 235, - /* 1550 */ 168, 249, 127, 128, 108, 55, 249, 274, 14, 127, - /* 1560 */ 128, 263, 116, 100, 101, 140, 4, 121, 249, 169, - /* 1570 */ 4, 125, 320, 127, 128, 323, 219, 263, 203, 133, - /* 1580 */ 155, 205, 207, 285, 318, 319, 140, 141, 142, 143, - /* 1590 */ 127, 128, 217, 14, 121, 132, 14, 286, 203, 285, - /* 1600 */ 127, 128, 156, 157, 141, 142, 4, 4, 145, 4, - /* 1610 */ 147, 121, 217, 140, 318, 319, 305, 127, 128, 16, - /* 1620 */ 29, 175, 19, 266, 178, 14, 180, 181, 81, 82, - /* 1630 */ 83, 84, 156, 157, 87, 88, 89, 90, 91, 92, - /* 1640 */ 93, 94, 4, 96, 97, 98, 99, 100, 101, 102, - /* 1650 */ 103, 104, 105, 106, 107, 203, 116, 127, 128, 56, - /* 1660 */ 229, 127, 128, 268, 318, 319, 4, 203, 292, 217, - /* 1670 */ 140, 203, 69, 219, 140, 122, 186, 111, 226, 227, - /* 1680 */ 77, 217, 203, 203, 203, 217, 83, 235, 14, 127, - /* 1690 */ 226, 227, 4, 127, 128, 203, 217, 217, 217, 235, - /* 1700 */ 109, 139, 168, 100, 101, 226, 227, 226, 227, 217, - /* 1710 */ 242, 108, 318, 319, 235, 38, 235, 286, 116, 116, - /* 1720 */ 266, 117, 229, 117, 121, 117, 121, 275, 125, 127, - /* 1730 */ 127, 128, 127, 128, 242, 4, 133, 285, 166, 275, - /* 1740 */ 119, 203, 263, 140, 141, 142, 143, 119, 203, 285, - /* 1750 */ 4, 213, 214, 203, 4, 217, 275, 207, 102, 154, - /* 1760 */ 203, 293, 217, 122, 285, 127, 285, 217, 203, 159, - /* 1770 */ 116, 226, 227, 111, 217, 117, 4, 139, 175, 286, - /* 1780 */ 235, 178, 217, 180, 181, 293, 82, 83, 84, 127, - /* 1790 */ 128, 87, 88, 89, 90, 91, 92, 93, 94, 111, + /* 1320 */ 106, 107, 4, 109, 117, 127, 128, 266, 117, 122, + /* 1330 */ 127, 128, 233, 122, 16, 236, 47, 19, 81, 82, + /* 1340 */ 83, 84, 243, 140, 87, 88, 89, 90, 91, 92, + /* 1350 */ 93, 94, 122, 96, 97, 98, 99, 100, 101, 102, + /* 1360 */ 103, 104, 105, 106, 107, 203, 217, 218, 4, 38, + /* 1370 */ 195, 127, 128, 211, 56, 200, 182, 203, 184, 217, + /* 1380 */ 16, 207, 203, 19, 140, 203, 211, 69, 226, 227, + /* 1390 */ 4, 217, 203, 203, 164, 77, 217, 235, 203, 217, + /* 1400 */ 62, 83, 203, 85, 4, 7, 217, 217, 226, 227, + /* 1410 */ 12, 249, 217, 0, 83, 73, 217, 235, 100, 101, + /* 1420 */ 56, 226, 227, 248, 249, 263, 108, 255, 82, 4, + /* 1430 */ 235, 117, 242, 69, 116, 203, 122, 265, 40, 121, + /* 1440 */ 32, 77, 29, 125, 211, 127, 128, 83, 286, 217, + /* 1450 */ 4, 133, 277, 4, 279, 203, 255, 282, 140, 141, + /* 1460 */ 142, 143, 16, 274, 100, 101, 265, 4, 286, 217, + /* 1470 */ 275, 289, 108, 274, 132, 4, 62, 4, 226, 227, + /* 1480 */ 116, 286, 249, 308, 294, 121, 203, 235, 4, 125, + /* 1490 */ 4, 127, 128, 175, 4, 211, 178, 133, 180, 181, + /* 1500 */ 217, 260, 56, 262, 140, 141, 142, 143, 35, 226, + /* 1510 */ 227, 203, 280, 127, 128, 263, 264, 211, 235, 73, + /* 1520 */ 116, 121, 109, 77, 55, 217, 53, 127, 128, 83, + /* 1530 */ 57, 14, 117, 249, 226, 227, 63, 122, 286, 175, + /* 1540 */ 140, 4, 178, 235, 180, 181, 100, 101, 14, 26, + /* 1550 */ 4, 117, 127, 128, 108, 249, 122, 244, 275, 246, + /* 1560 */ 111, 175, 116, 100, 101, 140, 14, 121, 168, 286, + /* 1570 */ 4, 125, 14, 127, 128, 122, 127, 128, 4, 133, + /* 1580 */ 222, 223, 224, 275, 14, 211, 140, 141, 142, 143, + /* 1590 */ 127, 128, 121, 168, 286, 132, 73, 4, 127, 128, + /* 1600 */ 127, 128, 156, 157, 141, 142, 116, 4, 145, 38, + /* 1610 */ 147, 127, 128, 127, 128, 198, 199, 127, 128, 16, + /* 1620 */ 74, 175, 19, 249, 178, 4, 180, 181, 81, 82, + /* 1630 */ 83, 84, 109, 117, 87, 88, 89, 90, 91, 92, + /* 1640 */ 93, 94, 169, 96, 97, 98, 99, 100, 101, 102, + /* 1650 */ 103, 104, 105, 106, 107, 203, 298, 186, 121, 56, + /* 1660 */ 244, 175, 246, 179, 127, 128, 4, 203, 203, 217, + /* 1670 */ 124, 207, 69, 127, 128, 203, 139, 140, 226, 227, + /* 1680 */ 77, 217, 217, 156, 157, 117, 83, 235, 166, 217, + /* 1690 */ 122, 226, 227, 127, 128, 121, 203, 4, 226, 227, + /* 1700 */ 235, 127, 128, 100, 101, 168, 140, 235, 203, 116, + /* 1710 */ 217, 108, 117, 117, 117, 263, 264, 122, 122, 116, + /* 1720 */ 127, 128, 217, 117, 121, 219, 211, 203, 125, 119, + /* 1730 */ 127, 128, 117, 203, 168, 263, 133, 122, 286, 203, + /* 1740 */ 275, 217, 121, 140, 141, 142, 143, 217, 127, 128, + /* 1750 */ 4, 286, 4, 217, 319, 320, 226, 227, 286, 319, + /* 1760 */ 320, 187, 226, 227, 249, 235, 242, 274, 175, 319, + /* 1770 */ 320, 235, 266, 4, 79, 154, 4, 119, 175, 274, + /* 1780 */ 102, 178, 120, 180, 181, 203, 82, 83, 84, 127, + /* 1790 */ 128, 87, 88, 89, 90, 91, 92, 93, 94, 217, /* 1800 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 1810 */ 106, 107, 4, 116, 116, 127, 128, 117, 117, 73, - /* 1820 */ 275, 4, 117, 117, 16, 117, 50, 83, 84, 4, - /* 1830 */ 285, 87, 88, 89, 90, 91, 92, 93, 94, 274, + /* 1810 */ 106, 107, 4, 219, 121, 116, 286, 117, 294, 73, + /* 1820 */ 127, 128, 286, 219, 16, 203, 117, 83, 84, 207, + /* 1830 */ 122, 87, 88, 89, 90, 91, 92, 93, 94, 217, /* 1840 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - /* 1850 */ 106, 107, 203, 18, 4, 203, 203, 4, 127, 128, - /* 1860 */ 173, 116, 116, 117, 56, 6, 217, 121, 203, 217, - /* 1870 */ 217, 121, 4, 127, 128, 226, 227, 127, 128, 226, - /* 1880 */ 227, 203, 217, 203, 235, 77, 140, 118, 235, 4, - /* 1890 */ 140, 83, 8, 121, 116, 217, 4, 217, 50, 127, - /* 1900 */ 128, 155, 156, 157, 116, 203, 4, 117, 100, 101, - /* 1910 */ 179, 116, 263, 116, 4, 50, 108, 203, 168, 217, - /* 1920 */ 116, 4, 242, 203, 116, 117, 16, 102, 203, 121, - /* 1930 */ 137, 217, 207, 125, 285, 127, 128, 217, 285, 83, - /* 1940 */ 203, 133, 217, 203, 127, 128, 226, 227, 140, 141, - /* 1950 */ 142, 143, 127, 128, 217, 235, 151, 217, 125, 118, - /* 1960 */ 145, 189, 13, 226, 227, 140, 56, 164, 203, 122, - /* 1970 */ 4, 121, 235, 293, 121, 4, 274, 127, 128, 90, - /* 1980 */ 127, 128, 217, 175, 150, 203, 178, 77, 180, 181, - /* 1990 */ 140, 123, 175, 83, 90, 127, 128, 90, 4, 217, - /* 2000 */ 175, 203, 90, 176, 24, 285, 121, 18, 226, 227, - /* 2010 */ 100, 101, 127, 128, 274, 217, 4, 235, 108, 127, - /* 2020 */ 128, 168, 285, 121, 226, 227, 116, 117, 16, 127, - /* 2030 */ 128, 121, 203, 235, 203, 125, 150, 127, 128, 4, - /* 2040 */ 155, 177, 140, 133, 127, 128, 217, 203, 217, 203, - /* 2050 */ 140, 141, 142, 143, 4, 226, 227, 226, 227, 4, - /* 2060 */ 168, 217, 4, 217, 235, 157, 235, 285, 56, 109, - /* 2070 */ 226, 227, 226, 227, 109, 62, 4, 25, 203, 235, - /* 2080 */ 163, 235, 203, 285, 51, 175, 207, 121, 178, 77, - /* 2090 */ 180, 181, 217, 127, 128, 83, 217, 203, 127, 128, - /* 2100 */ 122, 226, 227, 203, 51, 185, 140, 207, 145, 203, - /* 2110 */ 235, 217, 100, 101, 285, 121, 285, 217, 4, 116, - /* 2120 */ 108, 127, 128, 217, 115, 4, 165, 203, 116, 285, - /* 2130 */ 16, 285, 125, 121, 140, 203, 116, 125, 117, 127, - /* 2140 */ 128, 217, 203, 115, 203, 133, 175, 117, 49, 217, - /* 2150 */ 226, 227, 140, 141, 142, 143, 217, 4, 217, 235, - /* 2160 */ 285, 4, 127, 128, 4, 226, 227, 226, 227, 113, - /* 2170 */ 56, 48, 216, 286, 235, 140, 235, 127, 128, 4, - /* 2180 */ 274, 309, 127, 128, 4, 127, 128, 175, 116, 203, - /* 2190 */ 178, 77, 180, 181, 182, 140, 203, 83, 269, 127, - /* 2200 */ 128, 232, 4, 217, 203, 4, 232, 149, 311, 285, - /* 2210 */ 217, 110, 226, 227, 100, 101, 311, 202, 217, 203, - /* 2220 */ 4, 235, 108, 207, 285, 202, 285, 226, 227, 203, - /* 2230 */ 116, 117, 16, 217, 202, 121, 235, 65, 188, 125, - /* 2240 */ 202, 127, 128, 217, 4, 204, 203, 133, 127, 128, - /* 2250 */ 207, 203, 226, 227, 140, 141, 142, 143, 4, 138, - /* 2260 */ 217, 235, 4, 203, 4, 217, 4, 204, 206, 78, - /* 2270 */ 209, 285, 56, 120, 226, 227, 203, 217, 122, 257, - /* 2280 */ 127, 128, 203, 235, 127, 128, 285, 127, 128, 175, - /* 2290 */ 217, 4, 178, 77, 180, 181, 217, 140, 119, 83, - /* 2300 */ 140, 272, 127, 128, 156, 226, 227, 127, 128, 258, - /* 2310 */ 251, 285, 4, 203, 235, 140, 100, 101, 173, 170, - /* 2320 */ 140, 120, 4, 259, 108, 127, 128, 217, 127, 128, - /* 2330 */ 171, 203, 116, 285, 16, 261, 172, 121, 203, 203, - /* 2340 */ 107, 125, 231, 127, 128, 217, 203, 116, 4, 133, - /* 2350 */ 4, 294, 217, 217, 226, 227, 140, 141, 142, 143, - /* 2360 */ 217, 203, 4, 235, 285, 203, 107, 127, 128, 226, - /* 2370 */ 227, 118, 289, 260, 56, 217, 182, 169, 235, 217, - /* 2380 */ 35, 127, 128, 313, 186, 127, 128, 127, 128, 127, - /* 2390 */ 128, 175, 203, 203, 178, 77, 180, 181, 203, 261, - /* 2400 */ 140, 83, 57, 276, 27, 46, 217, 217, 63, 155, - /* 2410 */ 276, 321, 217, 285, 127, 128, 226, 227, 100, 101, - /* 2420 */ 4, 226, 227, 4, 203, 235, 108, 140, 285, 189, - /* 2430 */ 235, 119, 4, 203, 116, 127, 128, 321, 217, 121, - /* 2440 */ 272, 253, 157, 125, 326, 127, 128, 217, 193, 187, - /* 2450 */ 4, 133, 228, 228, 109, 203, 226, 227, 140, 141, - /* 2460 */ 142, 143, 117, 39, 145, 235, 120, 122, 203, 217, - /* 2470 */ 238, 127, 128, 127, 128, 285, 168, 203, 203, 228, - /* 2480 */ 285, 203, 217, 144, 140, 127, 128, 230, 238, 228, - /* 2490 */ 145, 217, 217, 175, 203, 217, 178, 203, 180, 181, - /* 2500 */ 231, 226, 227, 158, 203, 160, 161, 228, 217, 203, - /* 2510 */ 235, 217, 228, 231, 169, 285, 171, 172, 217, 174, - /* 2520 */ 226, 227, 119, 217, 228, 203, 203, 228, 203, 235, - /* 2530 */ 206, 231, 226, 227, 176, 272, 120, 192, 203, 217, - /* 2540 */ 217, 235, 217, 127, 128, 203, 127, 128, 119, 226, - /* 2550 */ 227, 119, 217, 203, 206, 127, 128, 203, 235, 217, - /* 2560 */ 285, 226, 227, 33, 203, 272, 203, 217, 226, 227, - /* 2570 */ 235, 217, 126, 127, 128, 182, 300, 235, 217, 285, - /* 2580 */ 217, 301, 119, 257, 174, 278, 245, 226, 227, 81, - /* 2590 */ 119, 285, 278, 257, 175, 119, 235, 281, 203, 116, - /* 2600 */ 203, 284, 203, 175, 145, 203, 278, 278, 285, 257, - /* 2610 */ 245, 206, 217, 119, 217, 272, 217, 203, 206, 217, - /* 2620 */ 285, 226, 227, 226, 227, 226, 227, 285, 226, 227, - /* 2630 */ 235, 217, 235, 257, 235, 119, 272, 235, 203, 247, - /* 2640 */ 226, 227, 78, 203, 119, 247, 285, 119, 247, 235, - /* 2650 */ 119, 247, 217, 119, 176, 295, 272, 217, 119, 304, - /* 2660 */ 20, 226, 227, 272, 119, 203, 226, 227, 272, 203, - /* 2670 */ 235, 203, 304, 119, 119, 235, 306, 17, 306, 217, - /* 2680 */ 285, 254, 285, 217, 285, 217, 256, 285, 226, 227, - /* 2690 */ 229, 297, 226, 227, 226, 227, 290, 235, 260, 285, - /* 2700 */ 203, 235, 260, 235, 286, 203, 297, 203, 271, 273, - /* 2710 */ 229, 236, 240, 256, 217, 230, 273, 273, 201, 217, - /* 2720 */ 285, 217, 257, 226, 227, 285, 219, 254, 226, 227, - /* 2730 */ 226, 227, 235, 219, 219, 287, 203, 235, 219, 235, - /* 2740 */ 299, 203, 252, 298, 246, 324, 237, 285, 237, 270, - /* 2750 */ 217, 285, 226, 285, 241, 217, 203, 237, 226, 226, - /* 2760 */ 227, 310, 203, 73, 226, 227, 4, 327, 235, 327, - /* 2770 */ 217, 327, 327, 235, 327, 327, 217, 327, 327, 226, - /* 2780 */ 227, 203, 285, 203, 327, 226, 227, 285, 235, 285, - /* 2790 */ 327, 327, 327, 327, 235, 217, 327, 217, 327, 327, - /* 2800 */ 327, 327, 327, 327, 226, 227, 226, 227, 327, 327, - /* 2810 */ 327, 327, 327, 235, 327, 235, 327, 327, 285, 327, - /* 2820 */ 327, 327, 327, 285, 327, 327, 327, 327, 327, 327, - /* 2830 */ 327, 327, 327, 327, 327, 327, 327, 327, 285, 327, - /* 2840 */ 327, 327, 327, 327, 285, 327, 327, 327, 327, 327, - /* 2850 */ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - /* 2860 */ 327, 327, 327, 285, 327, 285, + /* 1850 */ 106, 107, 4, 323, 324, 203, 274, 203, 4, 111, + /* 1860 */ 266, 168, 116, 117, 56, 116, 159, 121, 203, 217, + /* 1870 */ 266, 217, 4, 127, 128, 127, 128, 117, 226, 227, + /* 1880 */ 226, 227, 217, 117, 4, 77, 140, 235, 193, 235, + /* 1890 */ 121, 83, 117, 121, 319, 320, 127, 128, 173, 127, + /* 1900 */ 128, 155, 156, 157, 203, 203, 58, 242, 100, 101, + /* 1910 */ 319, 320, 140, 203, 4, 263, 108, 263, 217, 217, + /* 1920 */ 203, 4, 116, 203, 116, 117, 16, 217, 117, 121, + /* 1930 */ 18, 203, 50, 125, 217, 127, 128, 217, 286, 203, + /* 1940 */ 286, 133, 4, 226, 227, 217, 226, 227, 140, 141, + /* 1950 */ 142, 143, 235, 217, 287, 235, 102, 116, 189, 294, + /* 1960 */ 203, 6, 226, 227, 207, 118, 56, 116, 120, 8, + /* 1970 */ 203, 235, 50, 306, 217, 127, 128, 116, 116, 111, + /* 1980 */ 263, 127, 128, 175, 217, 203, 178, 77, 180, 181, + /* 1990 */ 203, 203, 116, 83, 140, 127, 128, 50, 4, 217, + /* 2000 */ 4, 121, 117, 286, 217, 217, 286, 127, 128, 116, + /* 2010 */ 100, 101, 4, 83, 226, 227, 4, 151, 108, 4, + /* 2020 */ 140, 137, 286, 235, 125, 203, 116, 117, 16, 175, + /* 2030 */ 13, 121, 203, 203, 118, 125, 145, 127, 128, 217, + /* 2040 */ 122, 164, 4, 133, 127, 128, 217, 217, 203, 4, + /* 2050 */ 140, 141, 142, 143, 4, 226, 227, 140, 150, 121, + /* 2060 */ 90, 203, 217, 90, 235, 127, 128, 203, 56, 90, + /* 2070 */ 90, 226, 227, 203, 286, 217, 109, 4, 203, 176, + /* 2080 */ 235, 217, 4, 18, 203, 175, 24, 217, 178, 77, + /* 2090 */ 180, 181, 217, 155, 150, 83, 226, 227, 217, 157, + /* 2100 */ 203, 226, 227, 203, 207, 235, 177, 226, 227, 25, + /* 2110 */ 235, 109, 100, 101, 217, 286, 235, 217, 4, 109, + /* 2120 */ 108, 127, 128, 127, 128, 4, 62, 203, 116, 121, + /* 2130 */ 16, 286, 51, 121, 138, 127, 128, 125, 122, 127, + /* 2140 */ 128, 217, 127, 128, 51, 133, 203, 4, 140, 203, + /* 2150 */ 226, 227, 140, 141, 142, 143, 286, 203, 120, 235, + /* 2160 */ 217, 286, 168, 217, 149, 127, 128, 286, 203, 185, + /* 2170 */ 56, 217, 127, 128, 203, 145, 116, 127, 128, 165, + /* 2180 */ 226, 227, 217, 115, 203, 116, 125, 175, 217, 235, + /* 2190 */ 178, 77, 180, 181, 182, 203, 113, 83, 217, 154, + /* 2200 */ 127, 128, 4, 203, 4, 127, 128, 226, 227, 217, + /* 2210 */ 286, 117, 203, 140, 100, 101, 235, 217, 226, 227, + /* 2220 */ 4, 115, 108, 4, 117, 49, 217, 235, 4, 48, + /* 2230 */ 116, 117, 16, 269, 216, 121, 203, 203, 188, 125, + /* 2240 */ 286, 127, 128, 4, 287, 4, 310, 133, 127, 128, + /* 2250 */ 217, 217, 203, 4, 140, 141, 142, 143, 232, 226, + /* 2260 */ 227, 140, 312, 232, 186, 4, 217, 286, 235, 202, + /* 2270 */ 127, 128, 56, 110, 312, 226, 227, 203, 286, 202, + /* 2280 */ 204, 206, 203, 140, 235, 65, 204, 4, 203, 175, + /* 2290 */ 202, 217, 178, 77, 180, 181, 217, 202, 209, 83, + /* 2300 */ 226, 227, 217, 78, 4, 226, 227, 203, 122, 235, + /* 2310 */ 119, 226, 227, 272, 235, 156, 100, 101, 173, 286, + /* 2320 */ 235, 217, 4, 251, 108, 127, 128, 127, 128, 4, + /* 2330 */ 170, 203, 116, 171, 16, 286, 172, 121, 140, 120, + /* 2340 */ 140, 125, 107, 127, 128, 217, 127, 128, 4, 133, + /* 2350 */ 4, 127, 128, 257, 226, 227, 140, 141, 142, 143, + /* 2360 */ 286, 203, 121, 235, 140, 286, 127, 128, 127, 128, + /* 2370 */ 258, 286, 203, 231, 56, 217, 127, 128, 203, 259, + /* 2380 */ 35, 140, 295, 261, 226, 227, 217, 116, 127, 128, + /* 2390 */ 118, 175, 217, 235, 178, 77, 180, 181, 203, 203, + /* 2400 */ 107, 83, 57, 207, 121, 314, 203, 168, 63, 290, + /* 2410 */ 127, 128, 217, 217, 286, 182, 155, 203, 100, 101, + /* 2420 */ 217, 226, 227, 140, 203, 260, 108, 127, 128, 4, + /* 2430 */ 235, 217, 4, 169, 116, 203, 187, 276, 217, 121, + /* 2440 */ 261, 203, 46, 125, 286, 127, 128, 226, 227, 217, + /* 2450 */ 276, 133, 127, 128, 109, 217, 235, 322, 140, 141, + /* 2460 */ 142, 143, 117, 203, 120, 140, 322, 122, 203, 203, + /* 2470 */ 27, 127, 128, 127, 128, 119, 272, 217, 157, 253, + /* 2480 */ 203, 286, 217, 217, 207, 193, 226, 227, 203, 189, + /* 2490 */ 145, 228, 145, 175, 217, 235, 178, 327, 180, 181, + /* 2500 */ 238, 228, 217, 158, 203, 160, 161, 286, 203, 203, + /* 2510 */ 203, 226, 227, 39, 169, 203, 171, 172, 217, 174, + /* 2520 */ 235, 175, 217, 217, 217, 228, 203, 226, 227, 217, + /* 2530 */ 203, 144, 226, 227, 207, 231, 235, 192, 226, 227, + /* 2540 */ 217, 235, 228, 203, 217, 203, 286, 235, 238, 226, + /* 2550 */ 227, 231, 127, 128, 126, 127, 128, 217, 235, 217, + /* 2560 */ 203, 203, 203, 230, 207, 203, 207, 203, 226, 227, + /* 2570 */ 272, 286, 119, 206, 217, 217, 217, 235, 228, 217, + /* 2580 */ 228, 217, 228, 228, 226, 227, 119, 286, 226, 227, + /* 2590 */ 226, 227, 286, 235, 231, 206, 272, 235, 286, 235, + /* 2600 */ 203, 176, 203, 119, 301, 33, 203, 119, 182, 286, + /* 2610 */ 302, 174, 278, 245, 217, 81, 217, 257, 119, 278, + /* 2620 */ 217, 119, 203, 226, 227, 226, 227, 257, 286, 226, + /* 2630 */ 227, 116, 235, 284, 235, 145, 217, 257, 235, 278, + /* 2640 */ 245, 206, 203, 278, 286, 226, 227, 203, 286, 203, + /* 2650 */ 286, 272, 281, 206, 235, 119, 217, 257, 272, 119, + /* 2660 */ 247, 217, 78, 217, 203, 226, 227, 119, 247, 119, + /* 2670 */ 226, 227, 226, 227, 235, 119, 247, 247, 217, 235, + /* 2680 */ 119, 235, 176, 286, 296, 286, 272, 226, 227, 286, + /* 2690 */ 203, 20, 203, 119, 203, 305, 235, 203, 305, 272, + /* 2700 */ 119, 119, 119, 272, 217, 286, 217, 17, 217, 307, + /* 2710 */ 254, 217, 307, 226, 227, 226, 227, 226, 227, 203, + /* 2720 */ 226, 227, 235, 287, 235, 286, 235, 256, 260, 235, + /* 2730 */ 286, 203, 286, 217, 229, 260, 203, 271, 298, 298, + /* 2740 */ 291, 229, 226, 227, 236, 217, 273, 286, 230, 240, + /* 2750 */ 217, 235, 273, 273, 226, 227, 256, 285, 257, 226, + /* 2760 */ 227, 201, 203, 235, 254, 219, 219, 246, 235, 299, + /* 2770 */ 219, 219, 252, 286, 288, 286, 217, 286, 300, 325, + /* 2780 */ 286, 270, 237, 226, 226, 226, 227, 311, 73, 4, + /* 2790 */ 237, 237, 328, 328, 235, 328, 241, 328, 328, 328, + /* 2800 */ 328, 328, 286, 328, 328, 328, 328, 328, 328, 328, + /* 2810 */ 328, 328, 328, 328, 286, 328, 328, 328, 328, 286, + /* 2820 */ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + /* 2830 */ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + /* 2840 */ 328, 328, 328, 328, 328, 286, }; -#define YY_SHIFT_USE_DFLT (-131) -#define YY_SHIFT_COUNT (534) -#define YY_SHIFT_MIN (-130) -#define YY_SHIFT_MAX (2762) +#define YY_SHIFT_USE_DFLT (-102) +#define YY_SHIFT_COUNT (535) +#define YY_SHIFT_MIN (-101) +#define YY_SHIFT_MAX (2785) static const short yy_shift_ofst[] = { - /* 0 */ 1591, 808, 1446, 138, 1318, 1603, 1364, 2114, 2114, 2114, - /* 10 */ 1260, 216, 2012, 2216, 2318, 2216, 2216, 2216, 2216, 2216, - /* 20 */ 2216, 949, -4, 106, 1910, 1808, 2216, 2216, 2216, 2216, - /* 30 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2318, 2216, + /* 0 */ 690, 808, 1446, 138, 1318, 1603, 1364, 2114, 2114, 2114, + /* 10 */ 490, 216, 2012, 2318, 2216, 2216, 2216, 2216, 2216, 2216, + /* 20 */ 2216, 1523, -4, 106, 1910, 1808, 2216, 2216, 2216, 2216, + /* 30 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, /* 40 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, /* 50 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, /* 60 */ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, - /* 70 */ 2216, 2216, 1746, 1463, 1463, 587, 1400, 1400, 2446, 89, - /* 80 */ 259, 592, 752, 2446, 2419, 2419, 2419, 2416, 2419, 494, - /* 90 */ 494, 2258, 978, 338, 786, 142, 1994, 1772, 1853, 1885, - /* 100 */ 1966, 1295, 1902, 1295, 1850, 1473, 1605, 752, 955, 2358, - /* 110 */ 2428, 2428, 2428, 2428, 143, 2428, 2419, 2258, 2258, 978, - /* 120 */ 750, 750, 1476, 519, 519, -43, 811, 1382, 1750, 1825, - /* 130 */ 1534, 1348, 1261, 623, 1490, 285, 232, 1244, 232, 1425, - /* 140 */ 127, 594, 220, 512, 2346, 2344, 2262, 2240, 2308, 2254, - /* 150 */ 2287, 2201, 2260, 2198, 2180, 2175, 2160, 2055, 2050, 662, - /* 160 */ 2153, 2157, 2121, 2058, 2035, 2072, 1134, 1104, 858, 858, - /* 170 */ 858, 1892, 1917, 1971, 277, 277, 1731, 1817, 1530, 1197, - /* 180 */ 1868, 762, 1688, 1662, 1566, 1432, 2258, 2258, 764, 764, - /* 190 */ 1077, 498, 200, 2690, 2690, 2762, 2690, 2690, -131, -131, - /* 200 */ -131, 421, 601, 601, 601, 601, 601, 601, 601, 601, + /* 70 */ 2216, 2216, 1746, 1463, 1463, 587, 1473, 1473, 2428, 89, + /* 80 */ 39, 1848, 1546, 2428, 1486, 1486, 1486, 1662, 1486, -33, + /* 90 */ -33, 635, 845, 338, 786, 142, 2283, 1769, 1693, 1938, + /* 100 */ 2241, 1593, 2008, 1593, 1880, 1772, 1621, 1546, 955, 2425, + /* 110 */ 2346, 2346, 2346, 2346, 414, 2346, 1486, 635, 635, 845, + /* 120 */ 1695, 1695, 1527, 519, 519, -43, 811, 1537, 1400, 1854, + /* 130 */ 1566, 1425, 1574, 529, 1471, 146, 530, 629, 530, 409, + /* 140 */ 429, 579, 187, 288, 2344, 2325, 2249, 2300, 2239, 2261, + /* 150 */ 2224, 2219, 2200, 2078, 2198, 2143, 2121, 2073, 2050, 2045, + /* 160 */ 2038, 1917, 1996, 2015, 1244, 1490, 1134, 1104, 858, 858, + /* 170 */ 858, 1994, 1136, 1386, 1014, 1014, 1484, 553, 1203, 828, + /* 180 */ 743, 757, 1868, 1748, 1449, 1198, 635, 635, 85, 85, + /* 190 */ 1413, 1342, 291, 2715, 2715, 2785, 2715, 2715, -102, -102, + /* 200 */ -102, 421, 601, 601, 601, 601, 601, 601, 601, 601, /* 210 */ 601, 601, 571, 388, 704, 677, 1214, 1185, 1153, -73, /* 220 */ 1122, 1091, 1060, 1028, 997, 963, 936, 909, 754, 1547, /* 230 */ 1257, 1704, 1744, 1744, 482, -16, -16, -16, -16, -16, - /* 240 */ -16, 204, 346, -35, -130, 406, 406, 862, 420, 1248, - /* 250 */ 1248, 1248, 199, 193, 334, -8, 57, 784, 377, 1638, - /* 260 */ 1562, 1602, 768, 1381, -67, 292, 589, 770, 734, 734, - /* 270 */ -79, 1292, 695, 627, 734, 190, 375, 375, 77, 627, - /* 280 */ 313, 313, 23, 131, 977, 2660, 2660, 2555, 2554, 2545, - /* 290 */ 2640, 2640, 2539, 2478, 2534, 2564, 2531, 2564, 2528, 2564, - /* 300 */ 2525, 2564, 2516, 2191, 2145, 2494, 2191, 2508, 2410, 2145, - /* 310 */ 2410, 2459, 2483, 2476, 2410, 2145, 2471, 2508, 2410, 2145, - /* 320 */ 2463, 2393, 2530, 2432, 2191, 2429, 2231, 2191, 2403, 2231, - /* 330 */ 2319, 2319, 2319, 2319, 2424, 2231, 2319, 2339, 2319, 2424, - /* 340 */ 2319, 2319, 2255, 2285, 2312, 2377, 2377, 2359, 2359, 2164, - /* 350 */ 2208, 2194, 2253, 2259, 2231, 2233, 2233, 2164, 2159, 2149, - /* 360 */ 2145, 2148, 2179, 2156, 2191, 2172, 2172, 2101, 2101, 2101, - /* 370 */ 2101, -131, -131, -131, -131, -131, -131, -131, -131, -131, - /* 380 */ -131, 2345, 40, 407, 798, 79, 533, 64, 343, 1256, - /* 390 */ 1209, -74, 1116, -22, 1085, 1054, 844, 413, 340, -5, - /* 400 */ 720, 401, 245, 209, -28, 65, 201, 87, -80, 167, - /* 410 */ 2123, 2099, 2056, 2028, 2030, 2021, 2007, 2020, 1961, 2009, - /* 420 */ 2003, 1963, 1920, 2053, 1978, 2033, 2013, 2052, 1965, 1960, - /* 430 */ 1908, 1864, 1886, 1980, 1989, 1827, 1912, 1907, 1904, 1889, - /* 440 */ 1834, 1847, 1803, 1949, 1815, 1841, 1833, 1856, 1805, 1793, - /* 450 */ 1804, 1865, 1797, 1795, 1790, 1788, 1848, 1884, 1778, 1769, - /* 460 */ 1859, 1745, 1776, 1835, 1708, 1687, 1698, 1706, 1705, 1701, - /* 470 */ 1700, 1641, 1610, 1697, 1658, 1654, 1641, 1656, 1628, 1621, - /* 480 */ 1572, 1608, 1606, 1553, 1604, 1677, 1674, 1540, 1553, 1611, - /* 490 */ 1582, 1579, 1544, 1500, 1486, 1482, 1444, 1470, 1443, 1469, - /* 500 */ 1320, 1309, 1282, 1290, 1286, 1362, 1202, 1172, 1068, 1082, - /* 510 */ 986, 1129, 991, 954, 1024, 987, 991, 870, 842, 829, - /* 520 */ 777, 812, 732, 608, 517, 574, 437, 419, 379, 242, - /* 530 */ 358, 114, 76, 50, 11, + /* 240 */ -16, 204, 346, -101, 90, -27, -27, 751, 436, 268, + /* 250 */ 268, 268, 623, 328, 207, 190, 369, 392, 1398, 836, + /* 260 */ 830, 818, 213, 335, -67, 342, -79, 1615, 1230, 1331, + /* 270 */ 1331, 135, 1415, 120, 872, 1331, 584, 791, 791, 1194, + /* 280 */ 872, 684, 684, 1024, 991, 659, 2690, 2690, 2583, 2582, + /* 290 */ 2581, 2671, 2671, 2574, 2506, 2561, 2584, 2556, 2584, 2550, + /* 300 */ 2584, 2548, 2584, 2540, 2225, 2145, 2536, 2225, 2534, 2437, + /* 310 */ 2145, 2437, 2490, 2515, 2502, 2437, 2145, 2499, 2534, 2437, + /* 320 */ 2145, 2488, 2426, 2572, 2484, 2225, 2467, 2271, 2225, 2453, + /* 330 */ 2271, 2347, 2347, 2347, 2347, 2474, 2271, 2347, 2387, 2347, + /* 340 */ 2474, 2347, 2347, 2292, 2321, 2356, 2443, 2443, 2396, 2396, + /* 350 */ 2164, 2264, 2233, 2272, 2293, 2271, 2235, 2235, 2164, 2162, + /* 360 */ 2160, 2145, 2159, 2191, 2186, 2225, 2220, 2220, 2163, 2163, + /* 370 */ 2163, 2163, -102, -102, -102, -102, -102, -102, -102, -102, + /* 380 */ -102, -102, 2345, 525, 77, 518, 451, -15, 130, 169, + /* 390 */ 1596, 1595, 7, 1568, 435, 1434, 1314, 1211, 1207, 239, + /* 400 */ 609, 102, 1116, 788, 362, 488, 624, 87, -80, -44, + /* 410 */ 2181, 2176, 2083, 2106, 2107, 2094, 2061, 2069, 2014, 2068, + /* 420 */ 2060, 2030, 1984, 2093, 2016, 2081, 2064, 2084, 2010, 2002, + /* 430 */ 1942, 1929, 1944, 2062, 2065, 1967, 1903, 1980, 1979, 1973, + /* 440 */ 1970, 1908, 1918, 1877, 2017, 1891, 1916, 1899, 1930, 1866, + /* 450 */ 1884, 1893, 1947, 1876, 1862, 1885, 1861, 1922, 1961, 1851, + /* 460 */ 1847, 1955, 1841, 1882, 1912, 1811, 1725, 1806, 1775, 1766, + /* 470 */ 1760, 1709, 1708, 1707, 1749, 1700, 1699, 1708, 1678, 1658, + /* 480 */ 1610, 1522, 1606, 1597, 1453, 1516, 1571, 1570, 1404, 1453, + /* 490 */ 1558, 1552, 1534, 1517, 1469, 1414, 1408, 1346, 1338, 1289, + /* 500 */ 1279, 1148, 1101, 1112, 1077, 1054, 1125, 910, 884, 869, + /* 510 */ 905, 822, 961, 618, 854, 863, 862, 618, 763, 580, + /* 520 */ 655, 595, 430, 562, 549, 452, 420, 352, 287, 265, + /* 530 */ 219, 215, 201, 63, 46, 43, }; -#define YY_REDUCE_USE_DFLT (-105) -#define YY_REDUCE_COUNT (380) -#define YY_REDUCE_MIN (-104) -#define YY_REDUCE_MAX (2580) +#define YY_REDUCE_USE_DFLT (-205) +#define YY_REDUCE_COUNT (381) +#define YY_REDUCE_MIN (-204) +#define YY_REDUCE_MAX (2560) static const short yy_reduce_ofst[] = { - /* 0 */ 154, 119, 1164, 619, 1252, 1189, 176, 1167, 329, -45, - /* 10 */ -104, 1649, -101, 1545, 1481, 1479, 1464, 1452, 1314, 1298, - /* 20 */ 183, 691, 2580, 2578, 2559, 2553, 2538, 2533, 2504, 2502, - /* 30 */ 2497, 2468, 2466, 2462, 2440, 2435, 2414, 2402, 2399, 2397, - /* 40 */ 2395, 2361, 2342, 2335, 2323, 2306, 2294, 2275, 2230, 2195, - /* 50 */ 2190, 2143, 2128, 2079, 2048, 2026, 2001, 1986, 1941, 1939, - /* 60 */ 1924, 1875, 1846, 1844, 1831, 1829, 1798, 1782, 1737, 1720, - /* 70 */ 1653, 660, 622, 18, -23, 513, 428, 54, 337, 615, - /* 80 */ 721, 1126, 525, 1538, 1680, 1492, 1468, 760, -102, 683, - /* 90 */ 335, 507, 348, 1111, 515, 1395, 2043, 2016, 1900, 1879, - /* 100 */ 1725, 1204, 1550, 920, 1375, 1125, 696, 1193, 439, 778, - /* 110 */ 1906, 1740, 1702, 1565, 405, 1283, 667, 62, -84, 736, - /* 120 */ 540, 240, 483, 1493, 1431, 1311, 373, 2363, 2354, 2322, - /* 130 */ 1894, 1894, 2350, 2325, 2136, 1932, 1227, 1714, 723, 1894, - /* 140 */ 1454, 1394, 2322, 2301, 2291, 1894, 1894, 1894, 1894, 1894, - /* 150 */ 1894, 1894, 2278, 1894, 1894, 1894, 1894, 2274, 1894, 1894, - /* 160 */ 1894, 2265, 2252, 2221, 2189, 2162, 2158, 2135, 1357, 1061, - /* 170 */ 998, 2110, 2073, 1665, 1346, 1296, 2060, 1993, 1894, 1765, - /* 180 */ 1678, 1376, 1652, 1557, 1480, 1278, 1251, 1225, 1266, 1217, - /* 190 */ 971, 1319, 469, 1307, 1302, 831, 1233, 1168, 158, 1201, - /* 200 */ 645, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, - /* 210 */ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, - /* 220 */ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, - /* 230 */ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, - /* 240 */ 1887, 1887, 1887, 1887, 2513, 2532, 2526, 2451, 2451, 2520, - /* 250 */ 2511, 2509, 2479, 2421, 2498, 2490, 2448, 2441, 2445, 2519, - /* 260 */ 2515, 2514, 1887, 2507, 2473, 2517, 2465, 2457, 2444, 2443, - /* 270 */ 2485, 2472, 2475, 2481, 2436, 2437, 2442, 2438, 2406, 2461, - /* 280 */ 2409, 2394, 2418, 2430, 2427, 2372, 2370, 2263, 2396, 2391, - /* 290 */ 2368, 2355, 2384, 2360, 2263, 2404, 2263, 2401, 2263, 2398, - /* 300 */ 2263, 2392, 2364, 2412, 2376, 2343, 2405, 2365, 2329, 2352, - /* 310 */ 2328, 2317, 2316, 2263, 2314, 2336, 2263, 2341, 2307, 2326, - /* 320 */ 2263, 2280, 2276, 2293, 2348, 2263, 2300, 2324, 2263, 2282, - /* 330 */ 2299, 2296, 2284, 2279, 2250, 2269, 2261, 2257, 2251, 2232, - /* 340 */ 2225, 2224, 2118, 2188, 2168, 2116, 2090, 2134, 2127, 2138, - /* 350 */ 2113, 2083, 2070, 2057, 2111, 1887, 1887, 2074, 2064, 2051, - /* 360 */ 2022, 2059, 2029, 2061, 2062, 2063, 2041, 2038, 2032, 2023, - /* 370 */ 2015, 1905, 1897, 1872, 1974, 1969, 1929, 1887, 1887, 1887, - /* 380 */ 1956, + /* 0 */ 538, 119, 1162, 1175, 660, 1530, 175, 1452, 1252, -45, + /* 10 */ -104, 1472, 1182, 1465, 1308, 1717, 1283, 1195, 1654, 1652, + /* 20 */ 672, 691, 2559, 2533, 2528, 2516, 2494, 2491, 2489, 2487, + /* 30 */ 2461, 2446, 2444, 2439, 2419, 2403, 2399, 2397, 2364, 2362, + /* 40 */ 2358, 2342, 2323, 2312, 2306, 2301, 2285, 2260, 2221, 2195, + /* 50 */ 2158, 2128, 2085, 2079, 2074, 2049, 2033, 1992, 1981, 1954, + /* 60 */ 1924, 1881, 1875, 1870, 1845, 1829, 1788, 1736, 1720, 1536, + /* 70 */ 172, -92, 616, 331, 37, 513, 424, -24, 152, 611, + /* 80 */ 918, 613, 521, 434, 1665, 1524, 1190, -77, 673, 1358, + /* 90 */ 66, 150, -150, 695, -106, 327, 2359, 2357, 2327, 2277, + /* 100 */ 2196, 1232, 1897, 920, 1757, 1622, 1464, 508, 1174, 777, + /* 110 */ 1582, 1505, 1493, 1199, 1099, 1189, 123, 183, 855, -118, + /* 120 */ 651, 604, 650, 645, 610, 1667, -204, 2340, 2307, 2214, + /* 130 */ 1787, 1787, 2305, 2266, 2265, 2238, 1416, 2232, 1313, 1787, + /* 140 */ 1604, 1591, 2214, 2203, 2175, 1787, 1787, 1787, 1787, 1787, + /* 150 */ 1787, 1787, 2169, 1787, 1787, 1787, 1787, 2104, 1787, 1787, + /* 160 */ 1787, 2034, 2009, 2000, 1971, 1965, 1946, 1943, 1594, 1506, + /* 170 */ 1061, 1900, 1864, 1858, 1575, 1450, 1830, 1822, 1787, 1782, + /* 180 */ 1767, 345, 1728, 1710, 1702, 1701, 1179, 428, 1440, 1435, + /* 190 */ 1417, 1515, 1241, 1374, 1306, 1149, 1284, 1233, 796, 1201, + /* 200 */ 1172, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + /* 210 */ 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + /* 220 */ 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + /* 230 */ 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, + /* 240 */ 1957, 1957, 1957, 1957, 2555, 2558, 2557, 2476, 2476, 2554, + /* 250 */ 2553, 2545, 2511, 2454, 2521, 2520, 2486, 2478, 2470, 2552, + /* 260 */ 2551, 2547, 1957, 2546, 2510, 2560, 2501, 2472, 2500, 2480, + /* 270 */ 2479, 2518, 2509, 2508, 2512, 2473, 2466, 2475, 2468, 2449, + /* 280 */ 2505, 2441, 2440, 2436, 2471, 2456, 2405, 2402, 2298, 2431, + /* 290 */ 2427, 2393, 2390, 2414, 2388, 2298, 2430, 2298, 2429, 2298, + /* 300 */ 2421, 2298, 2413, 2386, 2447, 2400, 2379, 2435, 2395, 2365, + /* 310 */ 2380, 2361, 2349, 2371, 2298, 2341, 2370, 2298, 2368, 2334, + /* 320 */ 2360, 2298, 2308, 2303, 2324, 2389, 2298, 2363, 2367, 2298, + /* 330 */ 2320, 2355, 2354, 2352, 2350, 2310, 2304, 2314, 2333, 2297, + /* 340 */ 2262, 2273, 2263, 2170, 2226, 2204, 2144, 2135, 2174, 2161, + /* 350 */ 2179, 2165, 2119, 2091, 2087, 2142, 1957, 1957, 2122, 2120, + /* 360 */ 2112, 2096, 2072, 2041, 2089, 2075, 2082, 2076, 2095, 2088, + /* 370 */ 2077, 2067, 1962, 1950, 1936, 2031, 2026, 1964, 1957, 1957, + /* 380 */ 1957, 2018, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 875, 1195, 1195, 1315, 1195, 1195, 1195, 1195, 1195, 1195, - /* 10 */ 1315, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - /* 20 */ 1195, 1315, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - /* 30 */ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - /* 40 */ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - /* 50 */ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - /* 60 */ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - /* 70 */ 1195, 1195, 1059, 1357, 1357, 1357, 1334, 1334, 1357, 1052, - /* 80 */ 1357, 1357, 903, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - /* 90 */ 1357, 1357, 926, 1048, 916, 1059, 1357, 1357, 1357, 1357, - /* 100 */ 1357, 1121, 1135, 1121, 1113, 1102, 1357, 1357, 1357, 1231, - /* 110 */ 1129, 1129, 1129, 1129, 999, 1129, 1357, 1357, 1357, 1357, - /* 120 */ 1163, 1162, 1357, 1087, 1087, 1197, 1357, 1284, 1289, 1156, - /* 130 */ 1357, 1357, 1357, 1357, 1357, 1122, 1357, 1357, 1357, 1060, - /* 140 */ 1048, 1334, 1156, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - /* 150 */ 1357, 1357, 1357, 1357, 1136, 1114, 1103, 1357, 1357, 1357, - /* 160 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1048, 1048, - /* 170 */ 1048, 1357, 1357, 1357, 1334, 1334, 1357, 1158, 1357, 1357, - /* 180 */ 1357, 913, 1357, 1357, 1357, 881, 1357, 1357, 1334, 1334, - /* 190 */ 875, 1315, 1081, 1315, 1315, 921, 1315, 1315, 1308, 1038, - /* 200 */ 1038, 1097, 1120, 1119, 1118, 1117, 1065, 1107, 1095, 1099, - /* 210 */ 1208, 1098, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, - /* 220 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, - /* 230 */ 1197, 1165, 1179, 1164, 1172, 1184, 1173, 1178, 1177, 1176, - /* 240 */ 1167, 1166, 1168, 1169, 1357, 1357, 1357, 1357, 1357, 1357, - /* 250 */ 1357, 1357, 1051, 1357, 1357, 1021, 1357, 1357, 1258, 1357, - /* 260 */ 1357, 928, 1170, 1357, 1036, 884, 1106, 1049, 1077, 1077, - /* 270 */ 966, 990, 950, 1087, 1077, 1067, 1081, 1081, 1203, 1087, - /* 280 */ 1357, 1357, 1197, 1049, 1036, 1299, 1299, 1068, 1068, 1068, - /* 290 */ 1283, 1283, 1068, 1231, 1068, 1012, 1068, 1012, 1068, 1012, - /* 300 */ 1068, 1012, 1068, 910, 1106, 1068, 910, 1003, 1109, 1106, - /* 310 */ 1109, 1141, 1125, 1068, 1109, 1106, 1068, 1003, 1109, 1106, - /* 320 */ 1068, 1265, 1263, 1068, 910, 1068, 1216, 910, 1068, 1216, - /* 330 */ 1001, 1001, 1001, 1001, 982, 1216, 1001, 966, 1001, 982, - /* 340 */ 1001, 1001, 1353, 1357, 1068, 1344, 1344, 1090, 1090, 1096, - /* 350 */ 1081, 1357, 1357, 1222, 1216, 1183, 1171, 1096, 1094, 1091, - /* 360 */ 1106, 1357, 1068, 985, 910, 892, 892, 880, 880, 880, - /* 370 */ 880, 1312, 1312, 1308, 968, 968, 1054, 1182, 1181, 1180, - /* 380 */ 937, 1196, 1357, 1357, 1357, 1357, 1357, 1357, 1232, 1357, - /* 390 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - /* 400 */ 1357, 1357, 1357, 1357, 1357, 1318, 1357, 1357, 1357, 1357, - /* 410 */ 1357, 876, 1357, 1357, 1357, 1357, 1357, 1302, 1357, 1357, - /* 420 */ 1357, 1357, 1357, 1357, 1262, 1261, 1357, 1357, 1357, 1357, - /* 430 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - /* 440 */ 1357, 1110, 1357, 1250, 1357, 1357, 1357, 1357, 1357, 1357, - /* 450 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - /* 460 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - /* 470 */ 1357, 1024, 1030, 1357, 1357, 1357, 1025, 1357, 1357, 1154, - /* 480 */ 1357, 1357, 1357, 1206, 1357, 1357, 1357, 1357, 1092, 1357, - /* 490 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - /* 500 */ 1357, 1357, 1357, 1350, 1082, 1357, 1357, 1357, 1198, 1357, - /* 510 */ 1196, 1357, 1317, 1357, 1357, 1357, 1316, 1357, 1357, 1357, - /* 520 */ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1155, 1154, 1198, - /* 530 */ 919, 899, 1357, 890, 1357, 872, 877, 1301, 1298, 1295, - /* 540 */ 1300, 1294, 1296, 1293, 1297, 1292, 1290, 1291, 1288, 1286, - /* 550 */ 1285, 1287, 1282, 1278, 1238, 1236, 1234, 1243, 1242, 1241, - /* 560 */ 1240, 1239, 1235, 1233, 1237, 1229, 1228, 1132, 1111, 1100, - /* 570 */ 1019, 1277, 1275, 1276, 1227, 1225, 1226, 1018, 1017, 1016, - /* 580 */ 1011, 1010, 1009, 1008, 1305, 1314, 1313, 1311, 1310, 1309, - /* 590 */ 1303, 1304, 1214, 1213, 1211, 1210, 1212, 912, 1254, 1257, - /* 600 */ 1256, 1255, 1260, 1259, 1252, 1264, 1269, 1268, 1273, 1272, - /* 610 */ 1271, 1270, 1267, 1249, 1140, 1139, 1137, 1134, 1144, 1143, - /* 620 */ 1142, 1133, 1126, 1138, 1116, 1124, 1123, 1112, 1115, 1004, - /* 630 */ 1105, 1101, 1104, 1020, 1253, 1015, 1014, 1013, 911, 902, - /* 640 */ 1070, 901, 900, 915, 988, 989, 997, 1000, 995, 998, - /* 650 */ 994, 993, 992, 996, 991, 987, 918, 917, 927, 981, - /* 660 */ 964, 953, 920, 955, 952, 951, 956, 973, 972, 979, - /* 670 */ 978, 977, 976, 975, 971, 974, 970, 969, 957, 949, - /* 680 */ 948, 967, 947, 984, 983, 980, 946, 1007, 1006, 1005, - /* 690 */ 1002, 945, 944, 943, 942, 941, 940, 1194, 1356, 1352, - /* 700 */ 1355, 1354, 1351, 1193, 1199, 1187, 1185, 1022, 1033, 1032, - /* 710 */ 1031, 1028, 1029, 1043, 1041, 1040, 1039, 1076, 1075, 1074, - /* 720 */ 1073, 1072, 1071, 1064, 1062, 1057, 1056, 1063, 1061, 1058, - /* 730 */ 1079, 1080, 1078, 1055, 1047, 1045, 1046, 1044, 1131, 1128, - /* 740 */ 1130, 1127, 1066, 1053, 1050, 1037, 1332, 1330, 1333, 1331, - /* 750 */ 1329, 1337, 1339, 1338, 1343, 1341, 1340, 1336, 1349, 1348, - /* 760 */ 1347, 1346, 1345, 1335, 1342, 1328, 1327, 1326, 1325, 1084, - /* 770 */ 1089, 1088, 1083, 1027, 1186, 1196, 1190, 1323, 1321, 1324, - /* 780 */ 1320, 1319, 1219, 1221, 1224, 1223, 1220, 1086, 1085, 1218, - /* 790 */ 1217, 1322, 1189, 1161, 933, 931, 932, 1246, 1245, 1248, - /* 800 */ 1247, 1244, 935, 934, 930, 929, 1159, 1153, 1152, 1274, - /* 810 */ 1191, 1192, 1151, 1157, 1149, 1148, 1147, 1175, 1174, 1160, - /* 820 */ 1150, 922, 1026, 1023, 1188, 1146, 1069, 1145, 963, 962, - /* 830 */ 961, 960, 959, 958, 1035, 1034, 939, 954, 938, 936, - /* 840 */ 914, 904, 909, 907, 908, 906, 905, 897, 894, 896, - /* 850 */ 893, 898, 895, 891, 889, 888, 887, 886, 885, 925, - /* 860 */ 924, 923, 919, 883, 882, 879, 878, 874, 873, 871, + /* 0 */ 876, 1197, 1197, 1319, 1197, 1197, 1197, 1197, 1197, 1197, + /* 10 */ 1319, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + /* 20 */ 1197, 1319, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + /* 30 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + /* 40 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + /* 50 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + /* 60 */ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + /* 70 */ 1197, 1197, 1060, 1361, 1361, 1361, 1338, 1338, 1361, 1053, + /* 80 */ 1361, 1361, 904, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + /* 90 */ 1361, 1361, 927, 1049, 917, 1060, 1361, 1361, 1361, 1361, + /* 100 */ 1361, 1122, 1137, 1122, 1114, 1103, 1361, 1361, 1361, 1235, + /* 110 */ 1130, 1130, 1130, 1130, 1000, 1130, 1361, 1361, 1361, 1361, + /* 120 */ 1165, 1164, 1361, 1088, 1088, 1199, 1361, 1288, 1293, 1158, + /* 130 */ 1361, 1361, 1361, 1361, 1361, 1123, 1361, 1361, 1361, 1061, + /* 140 */ 1049, 1338, 1158, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + /* 150 */ 1361, 1361, 1361, 1361, 1138, 1115, 1104, 1361, 1361, 1361, + /* 160 */ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1049, 1049, + /* 170 */ 1049, 1361, 1361, 1361, 1338, 1338, 1361, 1160, 1361, 1361, + /* 180 */ 1361, 914, 1361, 1361, 1361, 882, 1361, 1361, 1338, 1338, + /* 190 */ 876, 1319, 1082, 1319, 1319, 922, 1319, 1319, 1312, 1039, + /* 200 */ 1039, 1098, 1121, 1120, 1119, 1118, 1066, 1108, 1096, 1100, + /* 210 */ 1212, 1099, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, + /* 220 */ 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, + /* 230 */ 1199, 1167, 1181, 1166, 1174, 1186, 1175, 1180, 1179, 1178, + /* 240 */ 1169, 1168, 1170, 1171, 1361, 1361, 1361, 1361, 1361, 1361, + /* 250 */ 1361, 1361, 1052, 1361, 1361, 1022, 1361, 1361, 1262, 1361, + /* 260 */ 1361, 929, 1172, 1361, 1037, 885, 1107, 1201, 1050, 1078, + /* 270 */ 1078, 967, 991, 951, 1088, 1078, 1068, 1082, 1082, 1207, + /* 280 */ 1088, 1361, 1361, 1199, 1050, 1037, 1303, 1303, 1069, 1069, + /* 290 */ 1069, 1287, 1287, 1069, 1235, 1069, 1013, 1069, 1013, 1069, + /* 300 */ 1013, 1069, 1013, 1069, 911, 1107, 1069, 911, 1004, 1110, + /* 310 */ 1107, 1110, 1143, 1126, 1069, 1110, 1107, 1069, 1004, 1110, + /* 320 */ 1107, 1069, 1269, 1267, 1069, 911, 1069, 1220, 911, 1069, + /* 330 */ 1220, 1002, 1002, 1002, 1002, 983, 1220, 1002, 967, 1002, + /* 340 */ 983, 1002, 1002, 1357, 1361, 1069, 1348, 1348, 1091, 1091, + /* 350 */ 1097, 1082, 1361, 1361, 1226, 1220, 1185, 1173, 1097, 1095, + /* 360 */ 1092, 1107, 1361, 1069, 986, 911, 893, 893, 881, 881, + /* 370 */ 881, 881, 1316, 1316, 1312, 969, 969, 1055, 1184, 1183, + /* 380 */ 1182, 938, 1198, 1361, 1361, 1361, 1361, 1361, 1361, 1236, + /* 390 */ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + /* 400 */ 1361, 1361, 1361, 1361, 1361, 1322, 1361, 1361, 1361, 1361, + /* 410 */ 1361, 877, 1361, 1361, 1361, 1361, 1361, 1306, 1361, 1361, + /* 420 */ 1361, 1361, 1361, 1361, 1266, 1265, 1361, 1361, 1361, 1361, + /* 430 */ 1361, 1361, 1361, 1361, 1361, 1127, 1361, 1361, 1361, 1361, + /* 440 */ 1361, 1361, 1111, 1361, 1254, 1361, 1361, 1361, 1361, 1361, + /* 450 */ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + /* 460 */ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + /* 470 */ 1361, 1361, 1025, 1031, 1361, 1361, 1361, 1026, 1361, 1361, + /* 480 */ 1156, 1361, 1361, 1361, 1210, 1361, 1361, 1361, 1361, 1093, + /* 490 */ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + /* 500 */ 1361, 1361, 1361, 1361, 1354, 1083, 1361, 1361, 1361, 1200, + /* 510 */ 1361, 1198, 1361, 1321, 1361, 1361, 1361, 1320, 1361, 1361, + /* 520 */ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1157, 1156, + /* 530 */ 1200, 920, 900, 1361, 891, 1361, 873, 878, 1305, 1302, + /* 540 */ 1299, 1304, 1298, 1300, 1297, 1301, 1296, 1294, 1295, 1292, + /* 550 */ 1290, 1289, 1291, 1286, 1282, 1242, 1240, 1238, 1247, 1246, + /* 560 */ 1245, 1244, 1243, 1239, 1237, 1241, 1233, 1232, 1133, 1112, + /* 570 */ 1101, 1020, 1281, 1279, 1280, 1231, 1229, 1230, 1019, 1018, + /* 580 */ 1017, 1012, 1011, 1010, 1009, 1309, 1318, 1317, 1315, 1314, + /* 590 */ 1313, 1307, 1308, 1218, 1217, 1215, 1214, 1216, 913, 1258, + /* 600 */ 1261, 1260, 1259, 1264, 1263, 1256, 1268, 1273, 1272, 1277, + /* 610 */ 1276, 1275, 1274, 1271, 1253, 1142, 1141, 1139, 1135, 1146, + /* 620 */ 1145, 1144, 1134, 1136, 1140, 1117, 1125, 1124, 1113, 1116, + /* 630 */ 1005, 1106, 1102, 1105, 1021, 1257, 1016, 1015, 1014, 912, + /* 640 */ 903, 1071, 902, 901, 916, 989, 990, 998, 1001, 996, + /* 650 */ 999, 995, 994, 993, 997, 992, 988, 919, 918, 928, + /* 660 */ 982, 965, 954, 921, 956, 953, 952, 957, 974, 973, + /* 670 */ 980, 979, 978, 977, 976, 972, 975, 971, 970, 958, + /* 680 */ 950, 949, 968, 948, 985, 984, 981, 947, 1008, 1007, + /* 690 */ 1006, 1003, 946, 945, 944, 943, 942, 941, 1196, 1360, + /* 700 */ 1356, 1359, 1358, 1355, 1195, 1203, 1189, 1187, 1023, 1034, + /* 710 */ 1033, 1032, 1029, 1030, 1044, 1042, 1041, 1040, 1077, 1076, + /* 720 */ 1075, 1074, 1073, 1072, 1065, 1063, 1058, 1057, 1064, 1062, + /* 730 */ 1059, 1080, 1081, 1079, 1056, 1048, 1046, 1047, 1045, 1132, + /* 740 */ 1129, 1131, 1128, 1067, 1054, 1051, 1038, 1336, 1334, 1337, + /* 750 */ 1335, 1333, 1341, 1343, 1342, 1347, 1345, 1344, 1340, 1353, + /* 760 */ 1352, 1351, 1350, 1349, 1339, 1346, 1332, 1331, 1330, 1329, + /* 770 */ 1085, 1090, 1089, 1084, 1028, 1188, 1198, 1192, 1327, 1325, + /* 780 */ 1328, 1324, 1323, 1223, 1225, 1228, 1227, 1224, 1087, 1086, + /* 790 */ 1222, 1221, 1326, 1191, 1163, 934, 932, 933, 1250, 1249, + /* 800 */ 1252, 1251, 1248, 936, 935, 931, 930, 1161, 1155, 1154, + /* 810 */ 1278, 1193, 1194, 1153, 1159, 1151, 1150, 1149, 1177, 1176, + /* 820 */ 1162, 1152, 923, 1027, 1024, 1190, 1148, 1070, 1147, 964, + /* 830 */ 963, 962, 961, 960, 959, 1036, 1035, 940, 955, 939, + /* 840 */ 937, 915, 905, 910, 908, 909, 907, 906, 898, 895, + /* 850 */ 897, 894, 899, 896, 892, 890, 889, 888, 887, 886, + /* 860 */ 926, 925, 924, 920, 884, 883, 880, 879, 875, 874, + /* 870 */ 872, }; /* The next table maps tokens into fallback tokens. If a construct @@ -1353,17 +1350,17 @@ static const char *const yyTokenName[] = { "dbnm", "indexed_opt", "idlist", "sortlist", "nulls", "delete_stmt", "returning", "update_stmt", "setlist", "idlist_opt", "insert_stmt", "insert_cmd", - "upsert", "exprx", "not_opt", "likeop", - "case_operand", "case_exprlist", "case_else", "filter_over", - "uniqueflag", "idxlist_single", "collate", "vinto", - "nmnum", "number", "trigger_time", "trigger_event", - "foreach_clause", "when_clause", "trigger_cmd_list", "trigger_cmd", - "database_kw_opt", "key_opt", "kwcolumn_opt", "create_vtab", - "vtabarglist", "vtabarg", "vtabargtoken", "anylist", - "wqlist", "wqas", "wqcte", "windowdefn_list", - "windowdefn", "window", "frame_opt", "range_or_rows", - "frame_bound_s", "frame_exclude_opt", "frame_bound_e", "frame_bound", - "frame_exclude", "filter_clause", "over_clause", + "upsert", "rp_opt", "exprx", "not_opt", + "likeop", "case_operand", "case_exprlist", "case_else", + "filter_over", "uniqueflag", "idxlist_single", "collate", + "vinto", "nmnum", "number", "trigger_time", + "trigger_event", "foreach_clause", "when_clause", "trigger_cmd_list", + "trigger_cmd", "database_kw_opt", "key_opt", "kwcolumn_opt", + "create_vtab", "vtabarglist", "vtabarg", "vtabargtoken", + "anylist", "wqlist", "wqas", "wqcte", + "windowdefn_list", "windowdefn", "window", "frame_opt", + "range_or_rows", "frame_bound_s", "frame_exclude_opt", "frame_bound_e", + "frame_bound", "frame_exclude", "filter_clause", "over_clause", }; #endif /* NDEBUG */ @@ -1636,228 +1633,231 @@ static const char *const yyRuleName[] = { /* 262 */ "cmd ::= insert_stmt", /* 263 */ "insert_stmt ::= with insert_cmd INTO fullname idlist_opt select upsert returning", /* 264 */ "insert_stmt ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES returning", - /* 265 */ "insert_stmt ::= with insert_cmd INTO", - /* 266 */ "insert_stmt ::= with insert_cmd INTO nm DOT", - /* 267 */ "insert_stmt ::= with insert_cmd INTO ID_DB|ID_TAB", - /* 268 */ "insert_stmt ::= with insert_cmd INTO nm DOT ID_TAB", - /* 269 */ "insert_cmd ::= INSERT orconf", - /* 270 */ "insert_cmd ::= REPLACE", - /* 271 */ "upsert ::=", - /* 272 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt", - /* 273 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING", - /* 274 */ "upsert ::= ON CONFLICT DO NOTHING", - /* 275 */ "exprx ::= expr not_opt IN ID_DB", - /* 276 */ "exprx ::= expr not_opt IN nm DOT ID_TAB", - /* 277 */ "exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN", - /* 278 */ "exprx ::= tnm DOT ID_TAB|ID_COL", - /* 279 */ "exprx ::= tnm DOT nm DOT ID_COL", - /* 280 */ "exprx ::= expr COLLATE ID_COLLATE", - /* 281 */ "exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP", - /* 282 */ "exprx ::= CTIME_KW", - /* 283 */ "exprx ::= LP nexprlist RP", - /* 284 */ "exprx ::= tnm", - /* 285 */ "exprx ::= tnm DOT nm", - /* 286 */ "exprx ::= tnm DOT", - /* 287 */ "exprx ::= tnm DOT nm DOT nm", - /* 288 */ "exprx ::= tnm DOT nm DOT", - /* 289 */ "exprx ::= VARIABLE", - /* 290 */ "exprx ::= expr COLLATE ids", - /* 291 */ "exprx ::= CAST LP expr AS typetoken RP", - /* 292 */ "exprx ::= ID LP distinct exprlist RP", - /* 293 */ "exprx ::= ID LP STAR RP", - /* 294 */ "exprx ::= expr AND expr", - /* 295 */ "exprx ::= expr OR expr", - /* 296 */ "exprx ::= expr LT|GT|GE|LE expr", - /* 297 */ "exprx ::= expr EQ|NE expr", - /* 298 */ "exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", - /* 299 */ "exprx ::= expr PLUS|MINUS expr", - /* 300 */ "exprx ::= expr STAR|SLASH|REM expr", - /* 301 */ "exprx ::= expr CONCAT expr", - /* 302 */ "exprx ::= expr not_opt likeop expr", - /* 303 */ "exprx ::= expr not_opt likeop expr ESCAPE expr", - /* 304 */ "exprx ::= expr ISNULL|NOTNULL", - /* 305 */ "exprx ::= expr NOT NULL", - /* 306 */ "exprx ::= expr IS not_opt expr", - /* 307 */ "exprx ::= expr IS NOT DISTINCT FROM expr", - /* 308 */ "exprx ::= expr IS DISTINCT FROM expr", - /* 309 */ "exprx ::= NOT expr", - /* 310 */ "exprx ::= BITNOT expr", - /* 311 */ "exprx ::= MINUS expr", - /* 312 */ "exprx ::= PLUS expr", - /* 313 */ "exprx ::= expr PTR expr", - /* 314 */ "exprx ::= expr not_opt BETWEEN expr AND expr", - /* 315 */ "exprx ::= expr not_opt IN LP exprlist RP", - /* 316 */ "exprx ::= LP select RP", - /* 317 */ "exprx ::= expr not_opt IN LP select RP", - /* 318 */ "exprx ::= expr not_opt IN nm dbnm", - /* 319 */ "exprx ::= EXISTS LP select RP", - /* 320 */ "exprx ::= CASE case_operand case_exprlist case_else END", - /* 321 */ "exprx ::= RAISE LP IGNORE RP", - /* 322 */ "exprx ::= RAISE LP raisetype COMMA nm RP", - /* 323 */ "exprx ::= ID LP distinct exprlist RP filter_over", - /* 324 */ "exprx ::= ID LP STAR RP filter_over", - /* 325 */ "expr ::=", - /* 326 */ "expr ::= exprx", - /* 327 */ "not_opt ::=", - /* 328 */ "not_opt ::= NOT", - /* 329 */ "likeop ::= LIKE_KW|MATCH", - /* 330 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 331 */ "case_exprlist ::= WHEN expr THEN expr", - /* 332 */ "case_else ::= ELSE expr", - /* 333 */ "case_else ::=", - /* 334 */ "case_operand ::= exprx", - /* 335 */ "case_operand ::=", - /* 336 */ "exprlist ::= nexprlist", - /* 337 */ "exprlist ::=", - /* 338 */ "nexprlist ::= nexprlist COMMA expr", - /* 339 */ "nexprlist ::= exprx", - /* 340 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", - /* 341 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON ID_TAB", - /* 342 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW", - /* 343 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW", - /* 344 */ "uniqueflag ::= UNIQUE", - /* 345 */ "uniqueflag ::=", - /* 346 */ "idxlist_opt ::=", - /* 347 */ "idxlist_opt ::= LP idxlist RP", - /* 348 */ "idxlist ::= idxlist COMMA idxlist_single", - /* 349 */ "idxlist ::= idxlist_single", - /* 350 */ "idxlist_single ::= nm collate sortorder", - /* 351 */ "idxlist_single ::= ID_COL", - /* 352 */ "collate ::=", - /* 353 */ "collate ::= COLLATE ids", - /* 354 */ "collate ::= COLLATE ID_COLLATE", - /* 355 */ "cmd ::= DROP INDEX ifexists fullname", - /* 356 */ "cmd ::= DROP INDEX ifexists nm DOT ID_IDX", - /* 357 */ "cmd ::= DROP INDEX ifexists ID_DB|ID_IDX", - /* 358 */ "cmd ::= VACUUM vinto", - /* 359 */ "cmd ::= VACUUM nm vinto", - /* 360 */ "vinto ::= INTO expr", - /* 361 */ "vinto ::=", - /* 362 */ "cmd ::= PRAGMA nm dbnm", - /* 363 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", - /* 364 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", - /* 365 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 366 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", - /* 367 */ "cmd ::= PRAGMA nm DOT ID_PRAGMA", - /* 368 */ "cmd ::= PRAGMA ID_DB|ID_PRAGMA", - /* 369 */ "nmnum ::= plus_num", - /* 370 */ "nmnum ::= nm", - /* 371 */ "nmnum ::= ON", - /* 372 */ "nmnum ::= DELETE", - /* 373 */ "nmnum ::= DEFAULT", - /* 374 */ "plus_num ::= PLUS number", - /* 375 */ "plus_num ::= number", - /* 376 */ "minus_num ::= MINUS number", - /* 377 */ "number ::= INTEGER", - /* 378 */ "number ::= FLOAT", - /* 379 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list END", - /* 380 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause", - /* 381 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list", - /* 382 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON ID_TAB", - /* 383 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm DOT ID_TRIG_NEW", - /* 384 */ "cmd ::= CREATE temp TRIGGER ifnotexists ID_DB|ID_TRIG_NEW", - /* 385 */ "trigger_time ::= BEFORE", - /* 386 */ "trigger_time ::= AFTER", - /* 387 */ "trigger_time ::= INSTEAD OF", - /* 388 */ "trigger_time ::=", - /* 389 */ "trigger_event ::= DELETE", - /* 390 */ "trigger_event ::= INSERT", - /* 391 */ "trigger_event ::= UPDATE", - /* 392 */ "trigger_event ::= UPDATE OF idlist", - /* 393 */ "foreach_clause ::=", - /* 394 */ "foreach_clause ::= FOR EACH ROW", - /* 395 */ "when_clause ::=", - /* 396 */ "when_clause ::= WHEN expr", - /* 397 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", - /* 398 */ "trigger_cmd_list ::= trigger_cmd SEMI", - /* 399 */ "trigger_cmd_list ::= SEMI", - /* 400 */ "trigger_cmd ::= update_stmt", - /* 401 */ "trigger_cmd ::= insert_stmt", - /* 402 */ "trigger_cmd ::= delete_stmt", - /* 403 */ "trigger_cmd ::= select_stmt", - /* 404 */ "raisetype ::= ROLLBACK|ABORT|FAIL", - /* 405 */ "cmd ::= DROP TRIGGER ifexists fullname", - /* 406 */ "cmd ::= DROP TRIGGER ifexists nm DOT ID_TRIG", - /* 407 */ "cmd ::= DROP TRIGGER ifexists ID_DB|ID_TRIG", - /* 408 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", - /* 409 */ "cmd ::= DETACH database_kw_opt expr", - /* 410 */ "key_opt ::=", - /* 411 */ "key_opt ::= KEY expr", - /* 412 */ "database_kw_opt ::= DATABASE", - /* 413 */ "database_kw_opt ::=", - /* 414 */ "cmd ::= REINDEX", - /* 415 */ "cmd ::= REINDEX nm dbnm", - /* 416 */ "cmd ::= REINDEX ID_COLLATE", - /* 417 */ "cmd ::= REINDEX nm DOT ID_TAB|ID_IDX", - /* 418 */ "cmd ::= REINDEX ID_DB|ID_IDX|ID_TAB", - /* 419 */ "cmd ::= ANALYZE", - /* 420 */ "cmd ::= ANALYZE nm dbnm", - /* 421 */ "cmd ::= ANALYZE nm DOT ID_TAB|ID_IDX", - /* 422 */ "cmd ::= ANALYZE ID_DB|ID_IDX|ID_TAB", - /* 423 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", - /* 424 */ "cmd ::= ALTER TABLE fullname ADD kwcolumn_opt column", - /* 425 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", - /* 426 */ "cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW", - /* 427 */ "cmd ::= ALTER TABLE nm DOT ID_TAB", - /* 428 */ "cmd ::= ALTER TABLE ID_DB|ID_TAB", - /* 429 */ "kwcolumn_opt ::=", - /* 430 */ "kwcolumn_opt ::= COLUMNKW", - /* 431 */ "cmd ::= create_vtab", - /* 432 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm", - /* 433 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm LP vtabarglist RP", - /* 434 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm DOT ID_TAB_NEW", - /* 435 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists ID_DB|ID_TAB_NEW", - /* 436 */ "vtabarglist ::= vtabarg", - /* 437 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 438 */ "vtabarg ::=", - /* 439 */ "vtabarg ::= vtabarg vtabargtoken", - /* 440 */ "vtabargtoken ::= ANY", - /* 441 */ "vtabargtoken ::= LP anylist RP", - /* 442 */ "anylist ::=", - /* 443 */ "anylist ::= anylist LP anylist RP", - /* 444 */ "anylist ::= anylist ANY", - /* 445 */ "with ::=", - /* 446 */ "with ::= WITH wqlist", - /* 447 */ "with ::= WITH RECURSIVE wqlist", - /* 448 */ "wqas ::= AS", - /* 449 */ "wqas ::= AS MATERIALIZED", - /* 450 */ "wqas ::= AS NOT MATERIALIZED", - /* 451 */ "wqlist ::= wqcte", - /* 452 */ "wqlist ::= wqlist COMMA wqcte", - /* 453 */ "wqlist ::= ID_TAB_NEW", - /* 454 */ "wqcte ::= nm idxlist_opt wqas LP select RP", - /* 455 */ "windowdefn_list ::= windowdefn", - /* 456 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", - /* 457 */ "windowdefn ::= nm AS LP window RP", - /* 458 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", - /* 459 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", - /* 460 */ "window ::= ORDER BY sortlist frame_opt", - /* 461 */ "window ::= nm ORDER BY sortlist frame_opt", - /* 462 */ "window ::= frame_opt", - /* 463 */ "window ::= nm frame_opt", - /* 464 */ "frame_opt ::=", - /* 465 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", - /* 466 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", - /* 467 */ "range_or_rows ::= RANGE|ROWS|GROUPS", - /* 468 */ "frame_bound_s ::= frame_bound", - /* 469 */ "frame_bound_s ::= UNBOUNDED PRECEDING", - /* 470 */ "frame_bound_e ::= frame_bound", - /* 471 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", - /* 472 */ "frame_bound ::= expr PRECEDING|FOLLOWING", - /* 473 */ "frame_bound ::= CURRENT ROW", - /* 474 */ "frame_exclude_opt ::=", - /* 475 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", - /* 476 */ "frame_exclude ::= NO OTHERS", - /* 477 */ "frame_exclude ::= CURRENT ROW", - /* 478 */ "frame_exclude ::= GROUP", - /* 479 */ "frame_exclude ::= TIES", - /* 480 */ "window_clause ::= WINDOW windowdefn_list", - /* 481 */ "filter_over ::= filter_clause over_clause", - /* 482 */ "filter_over ::= over_clause", - /* 483 */ "filter_over ::= filter_clause", - /* 484 */ "over_clause ::= OVER LP window RP", - /* 485 */ "over_clause ::= OVER nm", - /* 486 */ "filter_clause ::= FILTER LP WHERE expr RP", + /* 265 */ "insert_stmt ::= with insert_cmd INTO fullname LP idlist rp_opt", + /* 266 */ "insert_stmt ::= with insert_cmd INTO", + /* 267 */ "insert_stmt ::= with insert_cmd INTO nm DOT", + /* 268 */ "insert_stmt ::= with insert_cmd INTO ID_DB|ID_TAB", + /* 269 */ "insert_stmt ::= with insert_cmd INTO nm DOT ID_TAB", + /* 270 */ "insert_cmd ::= INSERT orconf", + /* 271 */ "insert_cmd ::= REPLACE", + /* 272 */ "upsert ::=", + /* 273 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt", + /* 274 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING", + /* 275 */ "upsert ::= ON CONFLICT DO NOTHING", + /* 276 */ "exprx ::= expr not_opt IN ID_DB", + /* 277 */ "exprx ::= expr not_opt IN nm DOT ID_TAB", + /* 278 */ "exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN", + /* 279 */ "exprx ::= tnm DOT ID_TAB|ID_COL", + /* 280 */ "exprx ::= tnm DOT nm DOT ID_COL", + /* 281 */ "exprx ::= expr COLLATE ID_COLLATE", + /* 282 */ "exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP", + /* 283 */ "exprx ::= CTIME_KW", + /* 284 */ "exprx ::= LP nexprlist RP", + /* 285 */ "exprx ::= tnm", + /* 286 */ "exprx ::= tnm DOT nm", + /* 287 */ "exprx ::= tnm DOT", + /* 288 */ "exprx ::= tnm DOT nm DOT nm", + /* 289 */ "exprx ::= tnm DOT nm DOT", + /* 290 */ "exprx ::= VARIABLE", + /* 291 */ "exprx ::= expr COLLATE ids", + /* 292 */ "exprx ::= CAST LP expr AS typetoken RP", + /* 293 */ "exprx ::= ID LP distinct exprlist RP", + /* 294 */ "exprx ::= ID LP STAR RP", + /* 295 */ "exprx ::= expr AND expr", + /* 296 */ "exprx ::= expr OR expr", + /* 297 */ "exprx ::= expr LT|GT|GE|LE expr", + /* 298 */ "exprx ::= expr EQ|NE expr", + /* 299 */ "exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 300 */ "exprx ::= expr PLUS|MINUS expr", + /* 301 */ "exprx ::= expr STAR|SLASH|REM expr", + /* 302 */ "exprx ::= expr CONCAT expr", + /* 303 */ "exprx ::= expr not_opt likeop expr", + /* 304 */ "exprx ::= expr not_opt likeop expr ESCAPE expr", + /* 305 */ "exprx ::= expr ISNULL|NOTNULL", + /* 306 */ "exprx ::= expr NOT NULL", + /* 307 */ "exprx ::= expr IS not_opt expr", + /* 308 */ "exprx ::= expr IS NOT DISTINCT FROM expr", + /* 309 */ "exprx ::= expr IS DISTINCT FROM expr", + /* 310 */ "exprx ::= NOT expr", + /* 311 */ "exprx ::= BITNOT expr", + /* 312 */ "exprx ::= MINUS expr", + /* 313 */ "exprx ::= PLUS expr", + /* 314 */ "exprx ::= expr PTR expr", + /* 315 */ "exprx ::= expr not_opt BETWEEN expr AND expr", + /* 316 */ "exprx ::= expr not_opt IN LP exprlist RP", + /* 317 */ "exprx ::= LP select RP", + /* 318 */ "exprx ::= expr not_opt IN LP select RP", + /* 319 */ "exprx ::= expr not_opt IN nm dbnm", + /* 320 */ "exprx ::= EXISTS LP select RP", + /* 321 */ "exprx ::= CASE case_operand case_exprlist case_else END", + /* 322 */ "exprx ::= RAISE LP IGNORE RP", + /* 323 */ "exprx ::= RAISE LP raisetype COMMA nm RP", + /* 324 */ "exprx ::= ID LP distinct exprlist RP filter_over", + /* 325 */ "exprx ::= ID LP STAR RP filter_over", + /* 326 */ "expr ::=", + /* 327 */ "expr ::= exprx", + /* 328 */ "not_opt ::=", + /* 329 */ "not_opt ::= NOT", + /* 330 */ "rp_opt ::=", + /* 331 */ "rp_opt ::= RP", + /* 332 */ "likeop ::= LIKE_KW|MATCH", + /* 333 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 334 */ "case_exprlist ::= WHEN expr THEN expr", + /* 335 */ "case_else ::= ELSE expr", + /* 336 */ "case_else ::=", + /* 337 */ "case_operand ::= exprx", + /* 338 */ "case_operand ::=", + /* 339 */ "exprlist ::= nexprlist", + /* 340 */ "exprlist ::=", + /* 341 */ "nexprlist ::= nexprlist COMMA expr", + /* 342 */ "nexprlist ::= exprx", + /* 343 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", + /* 344 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON ID_TAB", + /* 345 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW", + /* 346 */ "cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW", + /* 347 */ "uniqueflag ::= UNIQUE", + /* 348 */ "uniqueflag ::=", + /* 349 */ "idxlist_opt ::=", + /* 350 */ "idxlist_opt ::= LP idxlist RP", + /* 351 */ "idxlist ::= idxlist COMMA idxlist_single", + /* 352 */ "idxlist ::= idxlist_single", + /* 353 */ "idxlist_single ::= nm collate sortorder", + /* 354 */ "idxlist_single ::= ID_COL", + /* 355 */ "collate ::=", + /* 356 */ "collate ::= COLLATE ids", + /* 357 */ "collate ::= COLLATE ID_COLLATE", + /* 358 */ "cmd ::= DROP INDEX ifexists fullname", + /* 359 */ "cmd ::= DROP INDEX ifexists nm DOT ID_IDX", + /* 360 */ "cmd ::= DROP INDEX ifexists ID_DB|ID_IDX", + /* 361 */ "cmd ::= VACUUM vinto", + /* 362 */ "cmd ::= VACUUM nm vinto", + /* 363 */ "vinto ::= INTO expr", + /* 364 */ "vinto ::=", + /* 365 */ "cmd ::= PRAGMA nm dbnm", + /* 366 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", + /* 367 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", + /* 368 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 369 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", + /* 370 */ "cmd ::= PRAGMA nm DOT ID_PRAGMA", + /* 371 */ "cmd ::= PRAGMA ID_DB|ID_PRAGMA", + /* 372 */ "nmnum ::= plus_num", + /* 373 */ "nmnum ::= nm", + /* 374 */ "nmnum ::= ON", + /* 375 */ "nmnum ::= DELETE", + /* 376 */ "nmnum ::= DEFAULT", + /* 377 */ "plus_num ::= PLUS number", + /* 378 */ "plus_num ::= number", + /* 379 */ "minus_num ::= MINUS number", + /* 380 */ "number ::= INTEGER", + /* 381 */ "number ::= FLOAT", + /* 382 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list END", + /* 383 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause", + /* 384 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list", + /* 385 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON ID_TAB", + /* 386 */ "cmd ::= CREATE temp TRIGGER ifnotexists nm DOT ID_TRIG_NEW", + /* 387 */ "cmd ::= CREATE temp TRIGGER ifnotexists ID_DB|ID_TRIG_NEW", + /* 388 */ "trigger_time ::= BEFORE", + /* 389 */ "trigger_time ::= AFTER", + /* 390 */ "trigger_time ::= INSTEAD OF", + /* 391 */ "trigger_time ::=", + /* 392 */ "trigger_event ::= DELETE", + /* 393 */ "trigger_event ::= INSERT", + /* 394 */ "trigger_event ::= UPDATE", + /* 395 */ "trigger_event ::= UPDATE OF idlist", + /* 396 */ "foreach_clause ::=", + /* 397 */ "foreach_clause ::= FOR EACH ROW", + /* 398 */ "when_clause ::=", + /* 399 */ "when_clause ::= WHEN expr", + /* 400 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 401 */ "trigger_cmd_list ::= trigger_cmd SEMI", + /* 402 */ "trigger_cmd_list ::= SEMI", + /* 403 */ "trigger_cmd ::= update_stmt", + /* 404 */ "trigger_cmd ::= insert_stmt", + /* 405 */ "trigger_cmd ::= delete_stmt", + /* 406 */ "trigger_cmd ::= select_stmt", + /* 407 */ "raisetype ::= ROLLBACK|ABORT|FAIL", + /* 408 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 409 */ "cmd ::= DROP TRIGGER ifexists nm DOT ID_TRIG", + /* 410 */ "cmd ::= DROP TRIGGER ifexists ID_DB|ID_TRIG", + /* 411 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 412 */ "cmd ::= DETACH database_kw_opt expr", + /* 413 */ "key_opt ::=", + /* 414 */ "key_opt ::= KEY expr", + /* 415 */ "database_kw_opt ::= DATABASE", + /* 416 */ "database_kw_opt ::=", + /* 417 */ "cmd ::= REINDEX", + /* 418 */ "cmd ::= REINDEX nm dbnm", + /* 419 */ "cmd ::= REINDEX ID_COLLATE", + /* 420 */ "cmd ::= REINDEX nm DOT ID_TAB|ID_IDX", + /* 421 */ "cmd ::= REINDEX ID_DB|ID_IDX|ID_TAB", + /* 422 */ "cmd ::= ANALYZE", + /* 423 */ "cmd ::= ANALYZE nm dbnm", + /* 424 */ "cmd ::= ANALYZE nm DOT ID_TAB|ID_IDX", + /* 425 */ "cmd ::= ANALYZE ID_DB|ID_IDX|ID_TAB", + /* 426 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 427 */ "cmd ::= ALTER TABLE fullname ADD kwcolumn_opt column", + /* 428 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", + /* 429 */ "cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW", + /* 430 */ "cmd ::= ALTER TABLE nm DOT ID_TAB", + /* 431 */ "cmd ::= ALTER TABLE ID_DB|ID_TAB", + /* 432 */ "kwcolumn_opt ::=", + /* 433 */ "kwcolumn_opt ::= COLUMNKW", + /* 434 */ "cmd ::= create_vtab", + /* 435 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm", + /* 436 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm LP vtabarglist RP", + /* 437 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm DOT ID_TAB_NEW", + /* 438 */ "create_vtab ::= CREATE VIRTUAL TABLE ifnotexists ID_DB|ID_TAB_NEW", + /* 439 */ "vtabarglist ::= vtabarg", + /* 440 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 441 */ "vtabarg ::=", + /* 442 */ "vtabarg ::= vtabarg vtabargtoken", + /* 443 */ "vtabargtoken ::= ANY", + /* 444 */ "vtabargtoken ::= LP anylist RP", + /* 445 */ "anylist ::=", + /* 446 */ "anylist ::= anylist LP anylist RP", + /* 447 */ "anylist ::= anylist ANY", + /* 448 */ "with ::=", + /* 449 */ "with ::= WITH wqlist", + /* 450 */ "with ::= WITH RECURSIVE wqlist", + /* 451 */ "wqas ::= AS", + /* 452 */ "wqas ::= AS MATERIALIZED", + /* 453 */ "wqas ::= AS NOT MATERIALIZED", + /* 454 */ "wqlist ::= wqcte", + /* 455 */ "wqlist ::= wqlist COMMA wqcte", + /* 456 */ "wqlist ::= ID_TAB_NEW", + /* 457 */ "wqcte ::= nm idxlist_opt wqas LP select RP", + /* 458 */ "windowdefn_list ::= windowdefn", + /* 459 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", + /* 460 */ "windowdefn ::= nm AS LP window RP", + /* 461 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", + /* 462 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", + /* 463 */ "window ::= ORDER BY sortlist frame_opt", + /* 464 */ "window ::= nm ORDER BY sortlist frame_opt", + /* 465 */ "window ::= frame_opt", + /* 466 */ "window ::= nm frame_opt", + /* 467 */ "frame_opt ::=", + /* 468 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", + /* 469 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", + /* 470 */ "range_or_rows ::= RANGE|ROWS|GROUPS", + /* 471 */ "frame_bound_s ::= frame_bound", + /* 472 */ "frame_bound_s ::= UNBOUNDED PRECEDING", + /* 473 */ "frame_bound_e ::= frame_bound", + /* 474 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", + /* 475 */ "frame_bound ::= expr PRECEDING|FOLLOWING", + /* 476 */ "frame_bound ::= CURRENT ROW", + /* 477 */ "frame_exclude_opt ::=", + /* 478 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", + /* 479 */ "frame_exclude ::= NO OTHERS", + /* 480 */ "frame_exclude ::= CURRENT ROW", + /* 481 */ "frame_exclude ::= GROUP", + /* 482 */ "frame_exclude ::= TIES", + /* 483 */ "window_clause ::= WINDOW windowdefn_list", + /* 484 */ "filter_over ::= filter_clause over_clause", + /* 485 */ "filter_over ::= over_clause", + /* 486 */ "filter_over ::= filter_clause", + /* 487 */ "over_clause ::= OVER LP window RP", + /* 488 */ "over_clause ::= OVER nm", + /* 489 */ "filter_clause ::= FILTER LP WHERE expr RP", }; #endif /* NDEBUG */ @@ -1945,21 +1945,21 @@ static void yy_destructor( case 277: /* delete_stmt */ case 279: /* update_stmt */ case 282: /* insert_stmt */ - case 303: /* trigger_cmd */ - case 307: /* create_vtab */ + case 304: /* trigger_cmd */ + case 308: /* create_vtab */ { -parser_safe_delete((yypminor->yy41)); +parser_safe_delete((yypminor->yy635)); } break; case 199: /* explain */ { -parser_safe_delete((yypminor->yy499)); +parser_safe_delete((yypminor->yy571)); } break; case 201: /* transtype */ case 202: /* trans_opt */ { -parser_safe_delete((yypminor->yy512)); +parser_safe_delete((yypminor->yy100)); } break; case 203: /* nm */ @@ -1969,12 +1969,12 @@ parser_safe_delete((yypminor->yy512)); case 219: /* ids */ case 221: /* typename */ case 272: /* dbnm */ - case 294: /* collate */ - case 309: /* vtabarg */ - case 310: /* vtabargtoken */ - case 311: /* anylist */ + case 295: /* collate */ + case 310: /* vtabarg */ + case 311: /* vtabargtoken */ + case 312: /* anylist */ { -parser_safe_delete((yypminor->yy319)); +parser_safe_delete((yypminor->yy255)); } break; case 204: /* savepoint_opt */ @@ -1983,354 +1983,355 @@ parser_safe_delete((yypminor->yy319)); case 234: /* gen_always */ case 240: /* tconscomma */ case 247: /* ifexists */ - case 286: /* not_opt */ - case 292: /* uniqueflag */ - case 304: /* database_kw_opt */ - case 306: /* kwcolumn_opt */ + case 285: /* rp_opt */ + case 287: /* not_opt */ + case 293: /* uniqueflag */ + case 305: /* database_kw_opt */ + case 307: /* kwcolumn_opt */ { -parser_safe_delete((yypminor->yy225)); +parser_safe_delete((yypminor->yy35)); } break; case 205: /* temp */ case 254: /* distinct */ { -parser_safe_delete((yypminor->yy130)); +parser_safe_delete((yypminor->yy562)); } break; case 207: /* fullname */ { -parser_safe_delete((yypminor->yy396)); +parser_safe_delete((yypminor->yy520)); } break; case 208: /* columnlist */ { -parser_safe_delete((yypminor->yy390)); +parser_safe_delete((yypminor->yy234)); } break; case 209: /* conslist_opt */ case 239: /* conslist */ { -parser_safe_delete((yypminor->yy115)); +parser_safe_delete((yypminor->yy445)); } break; case 210: /* table_options */ { -parser_safe_delete((yypminor->yy455)); +parser_safe_delete((yypminor->yy217)); } break; case 211: /* select */ case 250: /* selectnowith */ { -parser_safe_delete((yypminor->yy297)); +parser_safe_delete((yypminor->yy73)); } break; case 212: /* table_option */ { -parser_safe_delete((yypminor->yy629)); +parser_safe_delete((yypminor->yy607)); } break; case 213: /* column */ { -parser_safe_delete((yypminor->yy3)); +parser_safe_delete((yypminor->yy115)); } break; case 215: /* type */ case 220: /* typetoken */ { -parser_safe_delete((yypminor->yy267)); +parser_safe_delete((yypminor->yy601)); } break; case 216: /* carglist */ { -parser_safe_delete((yypminor->yy323)); +parser_safe_delete((yypminor->yy259)); } break; case 222: /* signed */ case 223: /* plus_num */ case 224: /* minus_num */ case 226: /* term */ - case 296: /* nmnum */ - case 297: /* number */ + case 297: /* nmnum */ + case 298: /* number */ { -parser_safe_delete((yypminor->yy393)); +parser_safe_delete((yypminor->yy629)); } break; case 225: /* ccons */ { -parser_safe_delete((yypminor->yy448)); +parser_safe_delete((yypminor->yy64)); } break; case 227: /* expr */ case 257: /* where_opt */ case 259: /* having_opt */ - case 285: /* exprx */ - case 288: /* case_operand */ - case 290: /* case_else */ - case 295: /* vinto */ - case 301: /* when_clause */ - case 305: /* key_opt */ -{ -parser_safe_delete((yypminor->yy186)); + case 286: /* exprx */ + case 289: /* case_operand */ + case 291: /* case_else */ + case 296: /* vinto */ + case 302: /* when_clause */ + case 306: /* key_opt */ +{ +parser_safe_delete((yypminor->yy176)); } break; case 228: /* onconf */ case 244: /* resolvetype */ case 245: /* orconf */ { -parser_safe_delete((yypminor->yy136)); +parser_safe_delete((yypminor->yy66)); } break; case 229: /* sortorder */ { -parser_safe_delete((yypminor->yy35)); +parser_safe_delete((yypminor->yy645)); } break; case 231: /* idxlist_opt */ case 242: /* idxlist */ { -parser_safe_delete((yypminor->yy627)); +parser_safe_delete((yypminor->yy527)); } break; case 232: /* refargs */ { -parser_safe_delete((yypminor->yy156)); +parser_safe_delete((yypminor->yy56)); } break; case 233: /* defer_subclause */ case 243: /* defer_subclause_opt */ { -parser_safe_delete((yypminor->yy53)); +parser_safe_delete((yypminor->yy218)); } break; case 235: /* tnm */ { -parser_safe_delete((yypminor->yy380)); +parser_safe_delete((yypminor->yy542)); } break; case 236: /* refarg */ { -parser_safe_delete((yypminor->yy205)); +parser_safe_delete((yypminor->yy587)); } break; case 237: /* refact */ { -parser_safe_delete((yypminor->yy106)); +parser_safe_delete((yypminor->yy488)); } break; case 238: /* init_deferred_pred_opt */ { -parser_safe_delete((yypminor->yy612)); +parser_safe_delete((yypminor->yy536)); } break; case 241: /* tcons */ { -parser_safe_delete((yypminor->yy400)); +parser_safe_delete((yypminor->yy166)); } break; case 249: /* with */ { -parser_safe_delete((yypminor->yy161)); +parser_safe_delete((yypminor->yy321)); } break; case 251: /* oneselect */ { -parser_safe_delete((yypminor->yy378)); +parser_safe_delete((yypminor->yy438)); } break; case 252: /* multiselect_op */ { -parser_safe_delete((yypminor->yy142)); +parser_safe_delete((yypminor->yy574)); } break; case 253: /* values */ { -parser_safe_delete((yypminor->yy522)); +parser_safe_delete((yypminor->yy54)); } break; case 255: /* selcollist */ case 265: /* sclp */ case 278: /* returning */ { -parser_safe_delete((yypminor->yy27)); +parser_safe_delete((yypminor->yy421)); } break; case 256: /* from */ case 267: /* joinsrc */ { -parser_safe_delete((yypminor->yy553)); +parser_safe_delete((yypminor->yy335)); } break; case 258: /* groupby_opt */ case 263: /* nexprlist */ case 264: /* exprlist */ - case 289: /* case_exprlist */ + case 290: /* case_exprlist */ { -parser_safe_delete((yypminor->yy615)); +parser_safe_delete((yypminor->yy567)); } break; case 260: /* orderby_opt */ case 275: /* sortlist */ { -parser_safe_delete((yypminor->yy226)); +parser_safe_delete((yypminor->yy499)); } break; case 261: /* limit_opt */ { -parser_safe_delete((yypminor->yy360)); +parser_safe_delete((yypminor->yy4)); } break; case 262: /* window_clause */ - case 315: /* windowdefn_list */ + case 316: /* windowdefn_list */ { -parser_safe_delete((yypminor->yy525)); +parser_safe_delete((yypminor->yy555)); } break; case 266: /* as */ { -parser_safe_delete((yypminor->yy628)); +parser_safe_delete((yypminor->yy280)); } break; case 268: /* singlesrc */ { -parser_safe_delete((yypminor->yy595)); +parser_safe_delete((yypminor->yy393)); } break; case 269: /* seltablist */ { -parser_safe_delete((yypminor->yy107)); +parser_safe_delete((yypminor->yy195)); } break; case 270: /* joinop */ { -parser_safe_delete((yypminor->yy449)); +parser_safe_delete((yypminor->yy461)); } break; case 271: /* joinconstr_opt */ { -parser_safe_delete((yypminor->yy215)); +parser_safe_delete((yypminor->yy423)); } break; case 273: /* indexed_opt */ { -parser_safe_delete((yypminor->yy300)); +parser_safe_delete((yypminor->yy224)); } break; case 274: /* idlist */ case 281: /* idlist_opt */ - case 308: /* vtabarglist */ + case 309: /* vtabarglist */ { -parser_safe_delete((yypminor->yy173)); +parser_safe_delete((yypminor->yy336)); } break; case 276: /* nulls */ { -parser_safe_delete((yypminor->yy315)); +parser_safe_delete((yypminor->yy99)); } break; case 280: /* setlist */ { -parser_safe_delete((yypminor->yy621)); +parser_safe_delete((yypminor->yy617)); } break; case 283: /* insert_cmd */ { -parser_safe_delete((yypminor->yy308)); +parser_safe_delete((yypminor->yy281)); } break; case 284: /* upsert */ { -parser_safe_delete((yypminor->yy332)); +parser_safe_delete((yypminor->yy16)); } break; - case 287: /* likeop */ + case 288: /* likeop */ { -parser_safe_delete((yypminor->yy274)); +parser_safe_delete((yypminor->yy104)); } break; - case 291: /* filter_over */ + case 292: /* filter_over */ { -parser_safe_delete((yypminor->yy181)); +parser_safe_delete((yypminor->yy487)); } break; - case 293: /* idxlist_single */ + case 294: /* idxlist_single */ { -parser_safe_delete((yypminor->yy110)); +parser_safe_delete((yypminor->yy540)); } break; - case 298: /* trigger_time */ + case 299: /* trigger_time */ { -parser_safe_delete((yypminor->yy120)); +parser_safe_delete((yypminor->yy612)); } break; - case 299: /* trigger_event */ + case 300: /* trigger_event */ { -parser_safe_delete((yypminor->yy259)); +parser_safe_delete((yypminor->yy407)); } break; - case 300: /* foreach_clause */ + case 301: /* foreach_clause */ { -parser_safe_delete((yypminor->yy456)); +parser_safe_delete((yypminor->yy403)); } break; - case 302: /* trigger_cmd_list */ + case 303: /* trigger_cmd_list */ { -parser_safe_delete((yypminor->yy240)); +parser_safe_delete((yypminor->yy575)); } break; - case 312: /* wqlist */ + case 313: /* wqlist */ { -parser_safe_delete((yypminor->yy164)); +parser_safe_delete((yypminor->yy17)); } break; - case 313: /* wqas */ + case 314: /* wqas */ { -parser_safe_delete((yypminor->yy21)); +parser_safe_delete((yypminor->yy383)); } break; - case 314: /* wqcte */ + case 315: /* wqcte */ { -parser_safe_delete((yypminor->yy146)); +parser_safe_delete((yypminor->yy366)); } break; - case 316: /* windowdefn */ + case 317: /* windowdefn */ { -parser_safe_delete((yypminor->yy562)); +parser_safe_delete((yypminor->yy74)); } break; - case 317: /* window */ + case 318: /* window */ { -parser_safe_delete((yypminor->yy162)); +parser_safe_delete((yypminor->yy14)); } break; - case 318: /* frame_opt */ + case 319: /* frame_opt */ { -parser_safe_delete((yypminor->yy149)); +parser_safe_delete((yypminor->yy585)); } break; - case 319: /* range_or_rows */ + case 320: /* range_or_rows */ { -parser_safe_delete((yypminor->yy143)); +parser_safe_delete((yypminor->yy34)); } break; - case 320: /* frame_bound_s */ - case 322: /* frame_bound_e */ + case 321: /* frame_bound_s */ + case 323: /* frame_bound_e */ { -parser_safe_delete((yypminor->yy285)); +parser_safe_delete((yypminor->yy394)); } break; - case 323: /* frame_bound */ + case 324: /* frame_bound */ { -parser_safe_delete((yypminor->yy285));parser_safe_delete((yypminor->yy285));parser_safe_delete((yypminor->yy285)); +parser_safe_delete((yypminor->yy394));parser_safe_delete((yypminor->yy394));parser_safe_delete((yypminor->yy394)); } break; - case 325: /* filter_clause */ + case 326: /* filter_clause */ { -parser_safe_delete((yypminor->yy39)); +parser_safe_delete((yypminor->yy269)); } break; - case 326: /* over_clause */ + case 327: /* over_clause */ { -parser_safe_delete((yypminor->yy11)); +parser_safe_delete((yypminor->yy231)); } break; default: break; /* If no destructor action specified: do nothing */ @@ -2846,6 +2847,7 @@ static const struct { { 195, 1 }, { 282, 8 }, { 282, 8 }, + { 282, 7 }, { 282, 3 }, { 282, 5 }, { 282, 4 }, @@ -2856,67 +2858,69 @@ static const struct { { 284, 11 }, { 284, 8 }, { 284, 4 }, - { 285, 4 }, - { 285, 6 }, - { 285, 1 }, - { 285, 3 }, - { 285, 5 }, - { 285, 3 }, - { 285, 6 }, - { 285, 1 }, - { 285, 3 }, - { 285, 1 }, - { 285, 3 }, - { 285, 2 }, - { 285, 5 }, - { 285, 4 }, - { 285, 1 }, - { 285, 3 }, - { 285, 6 }, - { 285, 5 }, - { 285, 4 }, - { 285, 3 }, - { 285, 3 }, - { 285, 3 }, - { 285, 3 }, - { 285, 3 }, - { 285, 3 }, - { 285, 3 }, - { 285, 3 }, - { 285, 4 }, - { 285, 6 }, - { 285, 2 }, - { 285, 3 }, - { 285, 4 }, - { 285, 6 }, - { 285, 5 }, - { 285, 2 }, - { 285, 2 }, - { 285, 2 }, - { 285, 2 }, - { 285, 3 }, - { 285, 6 }, - { 285, 6 }, - { 285, 3 }, - { 285, 6 }, - { 285, 5 }, - { 285, 4 }, - { 285, 5 }, - { 285, 4 }, - { 285, 6 }, - { 285, 6 }, - { 285, 5 }, + { 286, 4 }, + { 286, 6 }, + { 286, 1 }, + { 286, 3 }, + { 286, 5 }, + { 286, 3 }, + { 286, 6 }, + { 286, 1 }, + { 286, 3 }, + { 286, 1 }, + { 286, 3 }, + { 286, 2 }, + { 286, 5 }, + { 286, 4 }, + { 286, 1 }, + { 286, 3 }, + { 286, 6 }, + { 286, 5 }, + { 286, 4 }, + { 286, 3 }, + { 286, 3 }, + { 286, 3 }, + { 286, 3 }, + { 286, 3 }, + { 286, 3 }, + { 286, 3 }, + { 286, 3 }, + { 286, 4 }, + { 286, 6 }, + { 286, 2 }, + { 286, 3 }, + { 286, 4 }, + { 286, 6 }, + { 286, 5 }, + { 286, 2 }, + { 286, 2 }, + { 286, 2 }, + { 286, 2 }, + { 286, 3 }, + { 286, 6 }, + { 286, 6 }, + { 286, 3 }, + { 286, 6 }, + { 286, 5 }, + { 286, 4 }, + { 286, 5 }, + { 286, 4 }, + { 286, 6 }, + { 286, 6 }, + { 286, 5 }, { 227, 0 }, { 227, 1 }, - { 286, 0 }, - { 286, 1 }, + { 287, 0 }, { 287, 1 }, - { 289, 5 }, - { 289, 4 }, - { 290, 2 }, - { 290, 0 }, + { 285, 0 }, + { 285, 1 }, { 288, 1 }, - { 288, 0 }, + { 290, 5 }, + { 290, 4 }, + { 291, 2 }, + { 291, 0 }, + { 289, 1 }, + { 289, 0 }, { 264, 1 }, { 264, 0 }, { 263, 3 }, @@ -2925,24 +2929,24 @@ static const struct { { 195, 8 }, { 195, 7 }, { 195, 5 }, - { 292, 1 }, - { 292, 0 }, + { 293, 1 }, + { 293, 0 }, { 231, 0 }, { 231, 3 }, { 242, 3 }, { 242, 1 }, - { 293, 3 }, - { 293, 1 }, - { 294, 0 }, - { 294, 2 }, - { 294, 2 }, + { 294, 3 }, + { 294, 1 }, + { 295, 0 }, + { 295, 2 }, + { 295, 2 }, { 195, 4 }, { 195, 6 }, { 195, 4 }, { 195, 2 }, { 195, 3 }, - { 295, 2 }, - { 295, 0 }, + { 296, 2 }, + { 296, 0 }, { 195, 3 }, { 195, 5 }, { 195, 6 }, @@ -2950,51 +2954,51 @@ static const struct { { 195, 6 }, { 195, 4 }, { 195, 2 }, - { 296, 1 }, - { 296, 1 }, - { 296, 1 }, - { 296, 1 }, - { 296, 1 }, + { 297, 1 }, + { 297, 1 }, + { 297, 1 }, + { 297, 1 }, + { 297, 1 }, { 223, 2 }, { 223, 1 }, { 224, 2 }, - { 297, 1 }, - { 297, 1 }, + { 298, 1 }, + { 298, 1 }, { 195, 15 }, { 195, 12 }, { 195, 14 }, { 195, 10 }, { 195, 7 }, { 195, 5 }, - { 298, 1 }, - { 298, 1 }, - { 298, 2 }, - { 298, 0 }, { 299, 1 }, { 299, 1 }, - { 299, 1 }, - { 299, 3 }, - { 300, 0 }, + { 299, 2 }, + { 299, 0 }, + { 300, 1 }, + { 300, 1 }, + { 300, 1 }, { 300, 3 }, { 301, 0 }, - { 301, 2 }, - { 302, 3 }, + { 301, 3 }, + { 302, 0 }, { 302, 2 }, - { 302, 1 }, - { 303, 1 }, - { 303, 1 }, - { 303, 1 }, + { 303, 3 }, + { 303, 2 }, { 303, 1 }, + { 304, 1 }, + { 304, 1 }, + { 304, 1 }, + { 304, 1 }, { 246, 1 }, { 195, 4 }, { 195, 6 }, { 195, 4 }, { 195, 6 }, { 195, 3 }, + { 306, 0 }, + { 306, 2 }, + { 305, 1 }, { 305, 0 }, - { 305, 2 }, - { 304, 1 }, - { 304, 0 }, { 195, 1 }, { 195, 3 }, { 195, 2 }, @@ -3010,64 +3014,64 @@ static const struct { { 195, 6 }, { 195, 5 }, { 195, 3 }, - { 306, 0 }, - { 306, 1 }, + { 307, 0 }, + { 307, 1 }, { 195, 1 }, - { 307, 8 }, - { 307, 11 }, - { 307, 7 }, - { 307, 5 }, - { 308, 1 }, - { 308, 3 }, - { 309, 0 }, - { 309, 2 }, - { 310, 1 }, - { 310, 3 }, - { 311, 0 }, - { 311, 4 }, - { 311, 2 }, + { 308, 8 }, + { 308, 11 }, + { 308, 7 }, + { 308, 5 }, + { 309, 1 }, + { 309, 3 }, + { 310, 0 }, + { 310, 2 }, + { 311, 1 }, + { 311, 3 }, + { 312, 0 }, + { 312, 4 }, + { 312, 2 }, { 249, 0 }, { 249, 2 }, { 249, 3 }, + { 314, 1 }, + { 314, 2 }, + { 314, 3 }, { 313, 1 }, - { 313, 2 }, { 313, 3 }, - { 312, 1 }, - { 312, 3 }, - { 312, 1 }, - { 314, 6 }, - { 315, 1 }, - { 315, 3 }, - { 316, 5 }, - { 317, 5 }, - { 317, 6 }, - { 317, 4 }, + { 313, 1 }, + { 315, 6 }, + { 316, 1 }, + { 316, 3 }, { 317, 5 }, - { 317, 1 }, - { 317, 2 }, - { 318, 0 }, - { 318, 3 }, + { 318, 5 }, { 318, 6 }, - { 319, 1 }, + { 318, 4 }, + { 318, 5 }, + { 318, 1 }, + { 318, 2 }, + { 319, 0 }, + { 319, 3 }, + { 319, 6 }, { 320, 1 }, - { 320, 2 }, - { 322, 1 }, - { 322, 2 }, - { 323, 2 }, - { 323, 2 }, - { 321, 0 }, + { 321, 1 }, { 321, 2 }, + { 323, 1 }, + { 323, 2 }, { 324, 2 }, { 324, 2 }, - { 324, 1 }, - { 324, 1 }, + { 322, 0 }, + { 322, 2 }, + { 325, 2 }, + { 325, 2 }, + { 325, 1 }, + { 325, 1 }, { 262, 2 }, - { 291, 2 }, - { 291, 1 }, - { 291, 1 }, - { 326, 4 }, - { 326, 2 }, - { 325, 5 }, + { 292, 2 }, + { 292, 1 }, + { 292, 1 }, + { 327, 4 }, + { 327, 2 }, + { 326, 5 }, }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -3127,119 +3131,119 @@ static void yy_reduce( ** break; */ case 1: /* cmdlist ::= cmdlist ecmd */ -{parserContext->addQuery(yymsp[0].minor.yy41); DONT_INHERIT_TOKENS("cmdlist");} +{parserContext->addQuery(yymsp[0].minor.yy635); DONT_INHERIT_TOKENS("cmdlist");} break; case 2: /* cmdlist ::= ecmd */ -{parserContext->addQuery(yymsp[0].minor.yy41);} +{parserContext->addQuery(yymsp[0].minor.yy635);} break; case 3: /* ecmd ::= SEMI */ -{yygotominor.yy41 = new SqliteEmptyQuery();} +{yygotominor.yy635 = new SqliteEmptyQuery();} break; case 4: /* ecmd ::= explain cmdx SEMI */ { - yygotominor.yy41 = yymsp[-1].minor.yy41; - yygotominor.yy41->explain = yymsp[-2].minor.yy499->explain; - yygotominor.yy41->queryPlan = yymsp[-2].minor.yy499->queryPlan; - delete yymsp[-2].minor.yy499; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = yymsp[-1].minor.yy635; + yygotominor.yy635->explain = yymsp[-2].minor.yy571->explain; + yygotominor.yy635->queryPlan = yymsp[-2].minor.yy571->queryPlan; + delete yymsp[-2].minor.yy571; + objectForTokens = yygotominor.yy635; } break; case 5: /* explain ::= */ -{yygotominor.yy499 = new ParserStubExplain(false, false);} +{yygotominor.yy571 = new ParserStubExplain(false, false);} break; case 6: /* explain ::= EXPLAIN */ -{yygotominor.yy499 = new ParserStubExplain(true, false);} +{yygotominor.yy571 = new ParserStubExplain(true, false);} break; case 7: /* explain ::= EXPLAIN QUERY PLAN */ -{yygotominor.yy499 = new ParserStubExplain(true, true);} +{yygotominor.yy571 = new ParserStubExplain(true, true);} break; case 8: /* cmdx ::= cmd */ - case 400: /* trigger_cmd ::= update_stmt */ yytestcase(yyruleno==400); - case 401: /* trigger_cmd ::= insert_stmt */ yytestcase(yyruleno==401); - case 402: /* trigger_cmd ::= delete_stmt */ yytestcase(yyruleno==402); - case 403: /* trigger_cmd ::= select_stmt */ yytestcase(yyruleno==403); - case 431: /* cmd ::= create_vtab */ yytestcase(yyruleno==431); -{yygotominor.yy41 = yymsp[0].minor.yy41;} + case 403: /* trigger_cmd ::= update_stmt */ yytestcase(yyruleno==403); + case 404: /* trigger_cmd ::= insert_stmt */ yytestcase(yyruleno==404); + case 405: /* trigger_cmd ::= delete_stmt */ yytestcase(yyruleno==405); + case 406: /* trigger_cmd ::= select_stmt */ yytestcase(yyruleno==406); + case 434: /* cmd ::= create_vtab */ yytestcase(yyruleno==434); +{yygotominor.yy635 = yymsp[0].minor.yy635;} break; case 9: /* cmd ::= BEGIN transtype trans_opt */ { - yygotominor.yy41 = new SqliteBeginTrans( - yymsp[-1].minor.yy512->type, - yymsp[0].minor.yy512->transactionKw, - yymsp[0].minor.yy512->name + yygotominor.yy635 = new SqliteBeginTrans( + yymsp[-1].minor.yy100->type, + yymsp[0].minor.yy100->transactionKw, + yymsp[0].minor.yy100->name ); - delete yymsp[0].minor.yy512; - delete yymsp[-1].minor.yy512; - objectForTokens = yygotominor.yy41; + delete yymsp[0].minor.yy100; + delete yymsp[-1].minor.yy100; + objectForTokens = yygotominor.yy635; } break; case 10: /* trans_opt ::= */ case 14: /* transtype ::= */ yytestcase(yyruleno==14); -{yygotominor.yy512 = new ParserStubTransDetails();} +{yygotominor.yy100 = new ParserStubTransDetails();} break; case 11: /* trans_opt ::= TRANSACTION */ { - yygotominor.yy512 = new ParserStubTransDetails(); - yygotominor.yy512->transactionKw = true; + yygotominor.yy100 = new ParserStubTransDetails(); + yygotominor.yy100->transactionKw = true; } break; case 12: /* trans_opt ::= TRANSACTION nm */ case 13: /* trans_opt ::= TRANSACTION ID_TRANS */ yytestcase(yyruleno==13); { - yygotominor.yy512 = new ParserStubTransDetails(); - yygotominor.yy512->transactionKw = true; - yygotominor.yy512->name = *(yymsp[0].minor.yy319); - delete yymsp[0].minor.yy319; + yygotominor.yy100 = new ParserStubTransDetails(); + yygotominor.yy100->transactionKw = true; + yygotominor.yy100->name = *(yymsp[0].minor.yy255); + delete yymsp[0].minor.yy255; } break; case 15: /* transtype ::= DEFERRED */ { - yygotominor.yy512 = new ParserStubTransDetails(); - yygotominor.yy512->type = SqliteBeginTrans::Type::DEFERRED; + yygotominor.yy100 = new ParserStubTransDetails(); + yygotominor.yy100->type = SqliteBeginTrans::Type::DEFERRED; } break; case 16: /* transtype ::= IMMEDIATE */ { - yygotominor.yy512 = new ParserStubTransDetails(); - yygotominor.yy512->type = SqliteBeginTrans::Type::IMMEDIATE; + yygotominor.yy100 = new ParserStubTransDetails(); + yygotominor.yy100->type = SqliteBeginTrans::Type::IMMEDIATE; } break; case 17: /* transtype ::= EXCLUSIVE */ { - yygotominor.yy512 = new ParserStubTransDetails(); - yygotominor.yy512->type = SqliteBeginTrans::Type::EXCLUSIVE; + yygotominor.yy100 = new ParserStubTransDetails(); + yygotominor.yy100->type = SqliteBeginTrans::Type::EXCLUSIVE; } break; case 18: /* cmd ::= COMMIT trans_opt */ { - yygotominor.yy41 = new SqliteCommitTrans( - yymsp[0].minor.yy512->transactionKw, - yymsp[0].minor.yy512->name, + yygotominor.yy635 = new SqliteCommitTrans( + yymsp[0].minor.yy100->transactionKw, + yymsp[0].minor.yy100->name, false ); - delete yymsp[0].minor.yy512; - objectForTokens = yygotominor.yy41; + delete yymsp[0].minor.yy100; + objectForTokens = yygotominor.yy635; } break; case 19: /* cmd ::= END trans_opt */ { - yygotominor.yy41 = new SqliteCommitTrans( - yymsp[0].minor.yy512->transactionKw, - yymsp[0].minor.yy512->name, + yygotominor.yy635 = new SqliteCommitTrans( + yymsp[0].minor.yy100->transactionKw, + yymsp[0].minor.yy100->name, true ); - delete yymsp[0].minor.yy512; - objectForTokens = yygotominor.yy41; + delete yymsp[0].minor.yy100; + objectForTokens = yygotominor.yy635; } break; case 20: /* cmd ::= ROLLBACK trans_opt */ { - yygotominor.yy41 = new SqliteRollback( - yymsp[0].minor.yy512->transactionKw, - yymsp[0].minor.yy512->name + yygotominor.yy635 = new SqliteRollback( + yymsp[0].minor.yy100->transactionKw, + yymsp[0].minor.yy100->name ); - delete yymsp[0].minor.yy512; - objectForTokens = yygotominor.yy41; + delete yymsp[0].minor.yy100; + objectForTokens = yygotominor.yy635; } break; case 21: /* savepoint_opt ::= SAVEPOINT */ @@ -3248,11 +3252,12 @@ static void yy_reduce( case 97: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==97); case 119: /* tconscomma ::= COMMA */ yytestcase(yyruleno==119); case 141: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==141); - case 328: /* not_opt ::= NOT */ yytestcase(yyruleno==328); - case 344: /* uniqueflag ::= UNIQUE */ yytestcase(yyruleno==344); - case 412: /* database_kw_opt ::= DATABASE */ yytestcase(yyruleno==412); - case 429: /* kwcolumn_opt ::= */ yytestcase(yyruleno==429); -{yygotominor.yy225 = new bool(true);} + case 329: /* not_opt ::= NOT */ yytestcase(yyruleno==329); + case 331: /* rp_opt ::= RP */ yytestcase(yyruleno==331); + case 347: /* uniqueflag ::= UNIQUE */ yytestcase(yyruleno==347); + case 415: /* database_kw_opt ::= DATABASE */ yytestcase(yyruleno==415); + case 432: /* kwcolumn_opt ::= */ yytestcase(yyruleno==432); +{yygotominor.yy35 = new bool(true);} break; case 22: /* savepoint_opt ::= */ case 40: /* ifnotexists ::= */ yytestcase(yyruleno==40); @@ -3260,37 +3265,38 @@ static void yy_reduce( case 96: /* autoinc ::= */ yytestcase(yyruleno==96); case 120: /* tconscomma ::= */ yytestcase(yyruleno==120); case 142: /* ifexists ::= */ yytestcase(yyruleno==142); - case 327: /* not_opt ::= */ yytestcase(yyruleno==327); - case 345: /* uniqueflag ::= */ yytestcase(yyruleno==345); - case 413: /* database_kw_opt ::= */ yytestcase(yyruleno==413); - case 430: /* kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==430); -{yygotominor.yy225 = new bool(false);} + case 328: /* not_opt ::= */ yytestcase(yyruleno==328); + case 330: /* rp_opt ::= */ yytestcase(yyruleno==330); + case 348: /* uniqueflag ::= */ yytestcase(yyruleno==348); + case 416: /* database_kw_opt ::= */ yytestcase(yyruleno==416); + case 433: /* kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==433); +{yygotominor.yy35 = new bool(false);} break; case 23: /* cmd ::= SAVEPOINT nm */ { - yygotominor.yy41 = new SqliteSavepoint(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteSavepoint(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy635; } break; case 24: /* cmd ::= RELEASE savepoint_opt nm */ { - yygotominor.yy41 = new SqliteRelease(*(yymsp[-1].minor.yy225), *(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteRelease(*(yymsp[-1].minor.yy35), *(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy635; } break; case 25: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ case 26: /* cmd ::= SAVEPOINT ID_TRANS */ yytestcase(yyruleno==26); { - yygotominor.yy41 = new SqliteRollback( - yymsp[-3].minor.yy512->transactionKw, - *(yymsp[-1].minor.yy225), - *(yymsp[0].minor.yy319) + yygotominor.yy635 = new SqliteRollback( + yymsp[-3].minor.yy100->transactionKw, + *(yymsp[-1].minor.yy35), + *(yymsp[0].minor.yy255) ); - delete yymsp[-1].minor.yy225; - delete yymsp[-3].minor.yy512; - objectForTokens = yygotominor.yy41; + delete yymsp[-1].minor.yy35; + delete yymsp[-3].minor.yy100; + objectForTokens = yygotominor.yy635; } break; case 27: /* cmd ::= RELEASE savepoint_opt ID_TRANS */ @@ -3300,114 +3306,114 @@ static void yy_reduce( break; case 29: /* cmd ::= CREATE temp TABLE ifnotexists fullname LP columnlist conslist_opt RP table_options */ { - yygotominor.yy41 = new SqliteCreateTable( - *(yymsp[-6].minor.yy225), - *(yymsp[-8].minor.yy130), - yymsp[-5].minor.yy396->name1, - yymsp[-5].minor.yy396->name2, - *(yymsp[-3].minor.yy390), - *(yymsp[-2].minor.yy115), - *(yymsp[0].minor.yy455) + yygotominor.yy635 = new SqliteCreateTable( + *(yymsp[-6].minor.yy35), + *(yymsp[-8].minor.yy562), + yymsp[-5].minor.yy520->name1, + yymsp[-5].minor.yy520->name2, + *(yymsp[-3].minor.yy234), + *(yymsp[-2].minor.yy445), + *(yymsp[0].minor.yy217) ); - delete yymsp[-6].minor.yy225; - delete yymsp[-8].minor.yy130; - delete yymsp[-3].minor.yy390; - delete yymsp[-2].minor.yy115; - delete yymsp[-5].minor.yy396; - delete yymsp[0].minor.yy455; - objectForTokens = yygotominor.yy41; + delete yymsp[-6].minor.yy35; + delete yymsp[-8].minor.yy562; + delete yymsp[-3].minor.yy234; + delete yymsp[-2].minor.yy445; + delete yymsp[-5].minor.yy520; + delete yymsp[0].minor.yy217; + objectForTokens = yygotominor.yy635; } break; case 30: /* cmd ::= CREATE temp TABLE ifnotexists fullname AS select */ { - yygotominor.yy41 = new SqliteCreateTable( - *(yymsp[-3].minor.yy225), - *(yymsp[-5].minor.yy130), - yymsp[-2].minor.yy396->name1, - yymsp[-2].minor.yy396->name2, - yymsp[0].minor.yy297 + yygotominor.yy635 = new SqliteCreateTable( + *(yymsp[-3].minor.yy35), + *(yymsp[-5].minor.yy562), + yymsp[-2].minor.yy520->name1, + yymsp[-2].minor.yy520->name2, + yymsp[0].minor.yy73 ); - delete yymsp[-3].minor.yy225; - delete yymsp[-5].minor.yy130; - delete yymsp[-2].minor.yy396; - objectForTokens = yygotominor.yy41; + delete yymsp[-3].minor.yy35; + delete yymsp[-5].minor.yy562; + delete yymsp[-2].minor.yy520; + objectForTokens = yygotominor.yy635; } break; case 31: /* cmd ::= CREATE temp TABLE ifnotexists nm DOT ID_TAB_NEW */ case 144: /* cmd ::= CREATE temp VIEW ifnotexists nm DOT ID_VIEW_NEW */ yytestcase(yyruleno==144); - case 383: /* cmd ::= CREATE temp TRIGGER ifnotexists nm DOT ID_TRIG_NEW */ yytestcase(yyruleno==383); + case 386: /* cmd ::= CREATE temp TRIGGER ifnotexists nm DOT ID_TRIG_NEW */ yytestcase(yyruleno==386); { yy_destructor(yypParser,205,&yymsp[-5].minor); yy_destructor(yypParser,203,&yymsp[-2].minor); } break; case 32: /* cmd ::= CREATE temp TABLE ifnotexists ID_DB|ID_TAB_NEW */ case 145: /* cmd ::= CREATE temp VIEW ifnotexists ID_DB|ID_VIEW_NEW */ yytestcase(yyruleno==145); - case 384: /* cmd ::= CREATE temp TRIGGER ifnotexists ID_DB|ID_TRIG_NEW */ yytestcase(yyruleno==384); + case 387: /* cmd ::= CREATE temp TRIGGER ifnotexists ID_DB|ID_TRIG_NEW */ yytestcase(yyruleno==387); { yy_destructor(yypParser,205,&yymsp[-3].minor); } break; case 33: /* table_options ::= */ -{yygotominor.yy455 = new ParserCreateTableOptionList();} +{yygotominor.yy217 = new ParserCreateTableOptionList();} break; case 34: /* table_options ::= table_option */ { - yygotominor.yy455 = new ParserCreateTableOptionList(); - yygotominor.yy455->append(yymsp[0].minor.yy629); + yygotominor.yy217 = new ParserCreateTableOptionList(); + yygotominor.yy217->append(yymsp[0].minor.yy607); } break; case 35: /* table_options ::= table_options COMMA table_option */ { - yymsp[-2].minor.yy455->append(yymsp[0].minor.yy629); - yygotominor.yy455 = yymsp[-2].minor.yy455; + yymsp[-2].minor.yy217->append(yymsp[0].minor.yy607); + yygotominor.yy217 = yymsp[-2].minor.yy217; DONT_INHERIT_TOKENS("table_options"); } break; case 36: /* table_option ::= WITHOUT nm */ { - if (yymsp[0].minor.yy319->toLower() != "rowid") - parserContext->errorAtToken(QString("Invalid table option: %1").arg(*(yymsp[0].minor.yy319))); + if (yymsp[0].minor.yy255->toLower() != "rowid") + parserContext->errorAtToken(QString("Invalid table option: %1").arg(*(yymsp[0].minor.yy255))); - yygotominor.yy629 = new ParserStubCreateTableOption(ParserStubCreateTableOption::WITHOUT_ROWID); - delete yymsp[0].minor.yy319; + yygotominor.yy607 = new ParserStubCreateTableOption(ParserStubCreateTableOption::WITHOUT_ROWID); + delete yymsp[0].minor.yy255; } break; case 37: /* table_option ::= nm */ case 38: /* table_option ::= WITHOUT CTX_ROWID_KW */ yytestcase(yyruleno==38); case 39: /* table_option ::= CTX_STRICT_KW */ yytestcase(yyruleno==39); { - if (yymsp[0].minor.yy319->toLower() != "strict") - parserContext->errorAtToken(QString("Invalid table option: %1").arg(*(yymsp[0].minor.yy319))); + if (yymsp[0].minor.yy255->toLower() != "strict") + parserContext->errorAtToken(QString("Invalid table option: %1").arg(*(yymsp[0].minor.yy255))); - yygotominor.yy629 = new ParserStubCreateTableOption(ParserStubCreateTableOption::STRICT); - delete yymsp[0].minor.yy319; + yygotominor.yy607 = new ParserStubCreateTableOption(ParserStubCreateTableOption::STRICT); + delete yymsp[0].minor.yy255; } break; case 42: /* temp ::= TEMP */ -{yygotominor.yy130 = new int( (yymsp[0].minor.yy0->value.length() > 4) ? 2 : 1 );} +{yygotominor.yy562 = new int( (yymsp[0].minor.yy0->value.length() > 4) ? 2 : 1 );} break; case 43: /* temp ::= */ case 166: /* distinct ::= */ yytestcase(yyruleno==166); -{yygotominor.yy130 = new int(0);} +{yygotominor.yy562 = new int(0);} break; case 44: /* columnlist ::= columnlist COMMA column */ { - yymsp[-2].minor.yy390->append(yymsp[0].minor.yy3); - yygotominor.yy390 = yymsp[-2].minor.yy390; + yymsp[-2].minor.yy234->append(yymsp[0].minor.yy115); + yygotominor.yy234 = yymsp[-2].minor.yy234; DONT_INHERIT_TOKENS("columnlist"); } break; case 45: /* columnlist ::= column */ { - yygotominor.yy390 = new ParserCreateTableColumnList(); - yygotominor.yy390->append(yymsp[0].minor.yy3); + yygotominor.yy234 = new ParserCreateTableColumnList(); + yygotominor.yy234->append(yymsp[0].minor.yy115); } break; case 46: /* column ::= columnid type carglist */ { - yygotominor.yy3 = new SqliteCreateTable::Column(*(yymsp[-2].minor.yy319), yymsp[-1].minor.yy267, *(yymsp[0].minor.yy323)); - delete yymsp[-2].minor.yy319; - delete yymsp[0].minor.yy323; - objectForTokens = yygotominor.yy3; + yygotominor.yy115 = new SqliteCreateTable::Column(*(yymsp[-2].minor.yy255), yymsp[-1].minor.yy601, *(yymsp[0].minor.yy259)); + delete yymsp[-2].minor.yy255; + delete yymsp[0].minor.yy259; + objectForTokens = yygotominor.yy115; } break; case 47: /* columnid ::= nm */ @@ -3415,13 +3421,13 @@ static void yy_reduce( case 53: /* nm ::= id */ yytestcase(yyruleno==53); case 61: /* typename ::= ids */ yytestcase(yyruleno==61); case 199: /* dbnm ::= DOT nm */ yytestcase(yyruleno==199); - case 353: /* collate ::= COLLATE ids */ yytestcase(yyruleno==353); - case 354: /* collate ::= COLLATE ID_COLLATE */ yytestcase(yyruleno==354); -{yygotominor.yy319 = yymsp[0].minor.yy319;} + case 356: /* collate ::= COLLATE ids */ yytestcase(yyruleno==356); + case 357: /* collate ::= COLLATE ID_COLLATE */ yytestcase(yyruleno==357); +{yygotominor.yy255 = yymsp[0].minor.yy255;} break; case 49: /* id ::= ID */ { - yygotominor.yy319 = new QString( + yygotominor.yy255 = new QString( stripObjName( yymsp[0].minor.yy0->value ) @@ -3430,195 +3436,195 @@ static void yy_reduce( break; case 50: /* id_opt ::= id */ { - yygotominor.yy319 = yymsp[0].minor.yy319; + yygotominor.yy255 = yymsp[0].minor.yy255; } break; case 51: /* id_opt ::= */ { - yygotominor.yy319 = new QString(); + yygotominor.yy255 = new QString(); } break; case 52: /* ids ::= ID|STRING */ case 55: /* nm ::= JOIN_KW */ yytestcase(yyruleno==55); -{yygotominor.yy319 = new QString(yymsp[0].minor.yy0->value);} +{yygotominor.yy255 = new QString(yymsp[0].minor.yy0->value);} break; case 54: /* nm ::= STRING */ -{yygotominor.yy319 = new QString(stripString(yymsp[0].minor.yy0->value));} +{yygotominor.yy255 = new QString(stripString(yymsp[0].minor.yy0->value));} break; case 56: /* type ::= */ -{yygotominor.yy267 = nullptr;} +{yygotominor.yy601 = nullptr;} break; case 57: /* type ::= typetoken */ -{yygotominor.yy267 = yymsp[0].minor.yy267;} +{yygotominor.yy601 = yymsp[0].minor.yy601;} break; case 58: /* typetoken ::= typename */ { - yygotominor.yy267 = new SqliteColumnType(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy267; + yygotominor.yy601 = new SqliteColumnType(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy601; } break; case 59: /* typetoken ::= typename LP signed RP */ { - yygotominor.yy267 = new SqliteColumnType(*(yymsp[-3].minor.yy319), *(yymsp[-1].minor.yy393)); - delete yymsp[-3].minor.yy319; - delete yymsp[-1].minor.yy393; - objectForTokens = yygotominor.yy267; + yygotominor.yy601 = new SqliteColumnType(*(yymsp[-3].minor.yy255), *(yymsp[-1].minor.yy629)); + delete yymsp[-3].minor.yy255; + delete yymsp[-1].minor.yy629; + objectForTokens = yygotominor.yy601; } break; case 60: /* typetoken ::= typename LP signed COMMA signed RP */ { - yygotominor.yy267 = new SqliteColumnType(*(yymsp[-5].minor.yy319), *(yymsp[-3].minor.yy393), *(yymsp[-1].minor.yy393)); - delete yymsp[-5].minor.yy319; - delete yymsp[-3].minor.yy393; - delete yymsp[-1].minor.yy393; - objectForTokens = yygotominor.yy267; + yygotominor.yy601 = new SqliteColumnType(*(yymsp[-5].minor.yy255), *(yymsp[-3].minor.yy629), *(yymsp[-1].minor.yy629)); + delete yymsp[-5].minor.yy255; + delete yymsp[-3].minor.yy629; + delete yymsp[-1].minor.yy629; + objectForTokens = yygotominor.yy601; } break; case 62: /* typename ::= typename ids */ case 63: /* typename ::= ID_COL_TYPE */ yytestcase(yyruleno==63); { - yymsp[-1].minor.yy319->append(" " + *(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - yygotominor.yy319 = yymsp[-1].minor.yy319; + yymsp[-1].minor.yy255->append(" " + *(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + yygotominor.yy255 = yymsp[-1].minor.yy255; } break; case 64: /* signed ::= plus_num */ case 65: /* signed ::= minus_num */ yytestcase(yyruleno==65); - case 369: /* nmnum ::= plus_num */ yytestcase(yyruleno==369); - case 374: /* plus_num ::= PLUS number */ yytestcase(yyruleno==374); - case 375: /* plus_num ::= number */ yytestcase(yyruleno==375); -{yygotominor.yy393 = yymsp[0].minor.yy393;} + case 372: /* nmnum ::= plus_num */ yytestcase(yyruleno==372); + case 377: /* plus_num ::= PLUS number */ yytestcase(yyruleno==377); + case 378: /* plus_num ::= number */ yytestcase(yyruleno==378); +{yygotominor.yy629 = yymsp[0].minor.yy629;} break; case 66: /* carglist ::= carglist ccons */ { - yymsp[-1].minor.yy323->append(yymsp[0].minor.yy448); - yygotominor.yy323 = yymsp[-1].minor.yy323; + yymsp[-1].minor.yy259->append(yymsp[0].minor.yy64); + yygotominor.yy259 = yymsp[-1].minor.yy259; DONT_INHERIT_TOKENS("carglist"); } break; case 67: /* carglist ::= */ -{yygotominor.yy323 = new ParserCreateTableColumnConstraintList();} +{yygotominor.yy259 = new ParserCreateTableColumnConstraintList();} break; case 68: /* ccons ::= CONSTRAINT nm */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initDefNameOnly(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initDefNameOnly(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy64; } break; case 69: /* ccons ::= DEFAULT term */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initDefTerm(*(yymsp[0].minor.yy393)); - delete yymsp[0].minor.yy393; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initDefTerm(*(yymsp[0].minor.yy629)); + delete yymsp[0].minor.yy629; + objectForTokens = yygotominor.yy64; } break; case 70: /* ccons ::= DEFAULT LP expr RP */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initDefExpr(yymsp[-1].minor.yy186); - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initDefExpr(yymsp[-1].minor.yy176); + objectForTokens = yygotominor.yy64; } break; case 71: /* ccons ::= DEFAULT PLUS term */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initDefTerm(*(yymsp[0].minor.yy393), false); - delete yymsp[0].minor.yy393; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initDefTerm(*(yymsp[0].minor.yy629), false); + delete yymsp[0].minor.yy629; + objectForTokens = yygotominor.yy64; } break; case 72: /* ccons ::= DEFAULT MINUS term */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initDefTerm(*(yymsp[0].minor.yy393), true); - delete yymsp[0].minor.yy393; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initDefTerm(*(yymsp[0].minor.yy629), true); + delete yymsp[0].minor.yy629; + objectForTokens = yygotominor.yy64; } break; case 73: /* ccons ::= DEFAULT id */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initDefId(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initDefId(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy64; } break; case 74: /* ccons ::= DEFAULT CTIME_KW */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initDefCTime(yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initDefCTime(yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy64; } break; case 75: /* ccons ::= NULL onconf */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initNull(*(yymsp[0].minor.yy136)); - delete yymsp[0].minor.yy136; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initNull(*(yymsp[0].minor.yy66)); + delete yymsp[0].minor.yy66; + objectForTokens = yygotominor.yy64; } break; case 76: /* ccons ::= NOT NULL onconf */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initNotNull(*(yymsp[0].minor.yy136)); - delete yymsp[0].minor.yy136; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initNotNull(*(yymsp[0].minor.yy66)); + delete yymsp[0].minor.yy66; + objectForTokens = yygotominor.yy64; } break; case 77: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initPk(*(yymsp[-2].minor.yy35), *(yymsp[-1].minor.yy136), *(yymsp[0].minor.yy225)); - delete yymsp[-2].minor.yy35; - delete yymsp[0].minor.yy225; - delete yymsp[-1].minor.yy136; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initPk(*(yymsp[-2].minor.yy645), *(yymsp[-1].minor.yy66), *(yymsp[0].minor.yy35)); + delete yymsp[-2].minor.yy645; + delete yymsp[0].minor.yy35; + delete yymsp[-1].minor.yy66; + objectForTokens = yygotominor.yy64; } break; case 78: /* ccons ::= UNIQUE onconf */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initUnique(*(yymsp[0].minor.yy136)); - delete yymsp[0].minor.yy136; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initUnique(*(yymsp[0].minor.yy66)); + delete yymsp[0].minor.yy66; + objectForTokens = yygotominor.yy64; } break; case 79: /* ccons ::= CHECK LP expr RP */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initCheck(yymsp[-1].minor.yy186); - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initCheck(yymsp[-1].minor.yy176); + objectForTokens = yygotominor.yy64; } break; case 80: /* ccons ::= REFERENCES nm idxlist_opt refargs */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initFk(*(yymsp[-2].minor.yy319), *(yymsp[-1].minor.yy627), *(yymsp[0].minor.yy156)); - delete yymsp[-2].minor.yy319; - delete yymsp[0].minor.yy156; - delete yymsp[-1].minor.yy627; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initFk(*(yymsp[-2].minor.yy255), *(yymsp[-1].minor.yy527), *(yymsp[0].minor.yy56)); + delete yymsp[-2].minor.yy255; + delete yymsp[0].minor.yy56; + delete yymsp[-1].minor.yy527; + objectForTokens = yygotominor.yy64; } break; case 81: /* ccons ::= defer_subclause */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initDefer(yymsp[0].minor.yy53->initially, yymsp[0].minor.yy53->deferrable); - delete yymsp[0].minor.yy53; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initDefer(yymsp[0].minor.yy218->initially, yymsp[0].minor.yy218->deferrable); + delete yymsp[0].minor.yy218; + objectForTokens = yygotominor.yy64; } break; case 82: /* ccons ::= COLLATE ids */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initColl(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initColl(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy64; } break; case 83: /* ccons ::= gen_always AS LP expr RP id_opt */ @@ -3626,227 +3632,227 @@ static void yy_reduce( case 85: /* ccons ::= COLLATE ID_COLLATE */ yytestcase(yyruleno==85); case 86: /* ccons ::= REFERENCES ID_TAB */ yytestcase(yyruleno==86); { - if (!yymsp[0].minor.yy319->isNull() && yymsp[0].minor.yy319->toLower() != "stored" && yymsp[0].minor.yy319->toLower() != "virtual") - parserContext->errorAtToken(QString("Invalid generated column type: %1").arg(*(yymsp[0].minor.yy319))); + if (!yymsp[0].minor.yy255->isNull() && yymsp[0].minor.yy255->toLower() != "stored" && yymsp[0].minor.yy255->toLower() != "virtual") + parserContext->errorAtToken(QString("Invalid generated column type: %1").arg(*(yymsp[0].minor.yy255))); - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initGeneratedAs(yymsp[-2].minor.yy186, *(yymsp[-5].minor.yy225), *(yymsp[0].minor.yy319)); - delete yymsp[-5].minor.yy225; - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initGeneratedAs(yymsp[-2].minor.yy176, *(yymsp[-5].minor.yy35), *(yymsp[0].minor.yy255)); + delete yymsp[-5].minor.yy35; + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy64; } break; case 87: /* ccons ::= CHECK LP RP */ { - yygotominor.yy448 = new SqliteCreateTable::Column::Constraint(); - yygotominor.yy448->initCheck(); - objectForTokens = yygotominor.yy448; + yygotominor.yy64 = new SqliteCreateTable::Column::Constraint(); + yygotominor.yy64->initCheck(); + objectForTokens = yygotominor.yy64; parserContext->minorErrorAfterLastToken("Syntax error"); } break; case 88: /* term ::= NULL */ -{yygotominor.yy393 = new QVariant();} +{yygotominor.yy629 = new QVariant();} break; case 89: /* term ::= INTEGER */ - case 377: /* number ::= INTEGER */ yytestcase(yyruleno==377); -{yygotominor.yy393 = parserContext->handleNumberToken(yymsp[0].minor.yy0->value);} + case 380: /* number ::= INTEGER */ yytestcase(yyruleno==380); +{yygotominor.yy629 = parserContext->handleNumberToken(yymsp[0].minor.yy0->value);} break; case 90: /* term ::= FLOAT */ - case 378: /* number ::= FLOAT */ yytestcase(yyruleno==378); -{yygotominor.yy393 = new QVariant(QVariant(yymsp[0].minor.yy0->value).toDouble());} + case 381: /* number ::= FLOAT */ yytestcase(yyruleno==381); +{yygotominor.yy629 = new QVariant(QVariant(yymsp[0].minor.yy0->value).toDouble());} break; case 91: /* term ::= STRING|BLOB */ { if (yymsp[0].minor.yy0->value.length() >= 3 && yymsp[0].minor.yy0->value.startsWith("x'", Qt::CaseInsensitive)) - yygotominor.yy393 = new QVariant(blobFromLiteral(yymsp[0].minor.yy0->value)); + yygotominor.yy629 = new QVariant(blobFromLiteral(yymsp[0].minor.yy0->value)); else - yygotominor.yy393 = new QVariant(stripString(yymsp[0].minor.yy0->value)); + yygotominor.yy629 = new QVariant(stripString(yymsp[0].minor.yy0->value)); } break; case 92: /* tnm ::= term */ { - yygotominor.yy380 = new ParserTermOrLiteral(*(yymsp[0].minor.yy393)); - delete yymsp[0].minor.yy393; + yygotominor.yy542 = new ParserTermOrLiteral(*(yymsp[0].minor.yy629)); + delete yymsp[0].minor.yy629; } break; case 93: /* tnm ::= nm */ { - yygotominor.yy380 = new ParserTermOrLiteral(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; + yygotominor.yy542 = new ParserTermOrLiteral(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; } break; case 98: /* refargs ::= */ -{yygotominor.yy156 = new ParserFkConditionList();} +{yygotominor.yy56 = new ParserFkConditionList();} break; case 99: /* refargs ::= refargs refarg */ { - yymsp[-1].minor.yy156->append(yymsp[0].minor.yy205); - yygotominor.yy156 = yymsp[-1].minor.yy156; + yymsp[-1].minor.yy56->append(yymsp[0].minor.yy587); + yygotominor.yy56 = yymsp[-1].minor.yy56; DONT_INHERIT_TOKENS("refargs"); } break; case 100: /* refarg ::= MATCH nm */ { - yygotominor.yy205 = new SqliteForeignKey::Condition(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; + yygotominor.yy587 = new SqliteForeignKey::Condition(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; } break; case 101: /* refarg ::= ON INSERT refact */ -{yygotominor.yy205 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::INSERT, *(yymsp[0].minor.yy106)); delete yymsp[0].minor.yy106;} +{yygotominor.yy587 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::INSERT, *(yymsp[0].minor.yy488)); delete yymsp[0].minor.yy488;} break; case 102: /* refarg ::= ON DELETE refact */ -{yygotominor.yy205 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::DELETE, *(yymsp[0].minor.yy106)); delete yymsp[0].minor.yy106;} +{yygotominor.yy587 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::DELETE, *(yymsp[0].minor.yy488)); delete yymsp[0].minor.yy488;} break; case 103: /* refarg ::= ON UPDATE refact */ case 104: /* refarg ::= MATCH ID_FK_MATCH */ yytestcase(yyruleno==104); -{yygotominor.yy205 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::UPDATE, *(yymsp[0].minor.yy106)); delete yymsp[0].minor.yy106;} +{yygotominor.yy587 = new SqliteForeignKey::Condition(SqliteForeignKey::Condition::UPDATE, *(yymsp[0].minor.yy488)); delete yymsp[0].minor.yy488;} break; case 105: /* refact ::= SET NULL */ -{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::SET_NULL);} +{yygotominor.yy488 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::SET_NULL);} break; case 106: /* refact ::= SET DEFAULT */ -{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::SET_DEFAULT);} +{yygotominor.yy488 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::SET_DEFAULT);} break; case 107: /* refact ::= CASCADE */ -{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::CASCADE);} +{yygotominor.yy488 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::CASCADE);} break; case 108: /* refact ::= RESTRICT */ -{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::RESTRICT);} +{yygotominor.yy488 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::RESTRICT);} break; case 109: /* refact ::= NO ACTION */ -{yygotominor.yy106 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::NO_ACTION);} +{yygotominor.yy488 = new SqliteForeignKey::Condition::Reaction(SqliteForeignKey::Condition::NO_ACTION);} break; case 110: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ { - yygotominor.yy53 = new ParserDeferSubClause(SqliteDeferrable::NOT_DEFERRABLE, *(yymsp[0].minor.yy612)); - delete yymsp[0].minor.yy612; + yygotominor.yy218 = new ParserDeferSubClause(SqliteDeferrable::NOT_DEFERRABLE, *(yymsp[0].minor.yy536)); + delete yymsp[0].minor.yy536; } break; case 111: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ { - yygotominor.yy53 = new ParserDeferSubClause(SqliteDeferrable::DEFERRABLE, *(yymsp[0].minor.yy612)); - delete yymsp[0].minor.yy612; + yygotominor.yy218 = new ParserDeferSubClause(SqliteDeferrable::DEFERRABLE, *(yymsp[0].minor.yy536)); + delete yymsp[0].minor.yy536; } break; case 112: /* init_deferred_pred_opt ::= */ -{yygotominor.yy612 = new SqliteInitially(SqliteInitially::null);} +{yygotominor.yy536 = new SqliteInitially(SqliteInitially::null);} break; case 113: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ -{yygotominor.yy612 = new SqliteInitially(SqliteInitially::DEFERRED);} +{yygotominor.yy536 = new SqliteInitially(SqliteInitially::DEFERRED);} break; case 114: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ -{yygotominor.yy612 = new SqliteInitially(SqliteInitially::IMMEDIATE);} +{yygotominor.yy536 = new SqliteInitially(SqliteInitially::IMMEDIATE);} break; case 115: /* conslist_opt ::= */ -{yygotominor.yy115 = new ParserCreateTableConstraintList();} +{yygotominor.yy445 = new ParserCreateTableConstraintList();} break; case 116: /* conslist_opt ::= COMMA conslist */ -{yygotominor.yy115 = yymsp[0].minor.yy115;} +{yygotominor.yy445 = yymsp[0].minor.yy445;} break; case 117: /* conslist ::= conslist tconscomma tcons */ { - yymsp[0].minor.yy400->afterComma = *(yymsp[-1].minor.yy225); - yymsp[-2].minor.yy115->append(yymsp[0].minor.yy400); - yygotominor.yy115 = yymsp[-2].minor.yy115; - delete yymsp[-1].minor.yy225; + yymsp[0].minor.yy166->afterComma = *(yymsp[-1].minor.yy35); + yymsp[-2].minor.yy445->append(yymsp[0].minor.yy166); + yygotominor.yy445 = yymsp[-2].minor.yy445; + delete yymsp[-1].minor.yy35; DONT_INHERIT_TOKENS("conslist"); } break; case 118: /* conslist ::= tcons */ { - yygotominor.yy115 = new ParserCreateTableConstraintList(); - yygotominor.yy115->append(yymsp[0].minor.yy400); + yygotominor.yy445 = new ParserCreateTableConstraintList(); + yygotominor.yy445->append(yymsp[0].minor.yy166); } break; case 121: /* tcons ::= CONSTRAINT nm */ { - yygotominor.yy400 = new SqliteCreateTable::Constraint(); - yygotominor.yy400->initNameOnly(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy400; + yygotominor.yy166 = new SqliteCreateTable::Constraint(); + yygotominor.yy166->initNameOnly(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy166; } break; case 122: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ { - yygotominor.yy400 = new SqliteCreateTable::Constraint(); - yygotominor.yy400->initPk(*(yymsp[-3].minor.yy627), *(yymsp[-2].minor.yy225), *(yymsp[0].minor.yy136)); - delete yymsp[-2].minor.yy225; - delete yymsp[0].minor.yy136; - delete yymsp[-3].minor.yy627; - objectForTokens = yygotominor.yy400; + yygotominor.yy166 = new SqliteCreateTable::Constraint(); + yygotominor.yy166->initPk(*(yymsp[-3].minor.yy527), *(yymsp[-2].minor.yy35), *(yymsp[0].minor.yy66)); + delete yymsp[-2].minor.yy35; + delete yymsp[0].minor.yy66; + delete yymsp[-3].minor.yy527; + objectForTokens = yygotominor.yy166; } break; case 123: /* tcons ::= UNIQUE LP idxlist RP onconf */ { - yygotominor.yy400 = new SqliteCreateTable::Constraint(); - yygotominor.yy400->initUnique(*(yymsp[-2].minor.yy627), *(yymsp[0].minor.yy136)); - delete yymsp[0].minor.yy136; - delete yymsp[-2].minor.yy627; - objectForTokens = yygotominor.yy400; + yygotominor.yy166 = new SqliteCreateTable::Constraint(); + yygotominor.yy166->initUnique(*(yymsp[-2].minor.yy527), *(yymsp[0].minor.yy66)); + delete yymsp[0].minor.yy66; + delete yymsp[-2].minor.yy527; + objectForTokens = yygotominor.yy166; } break; case 124: /* tcons ::= CHECK LP expr RP onconf */ { - yygotominor.yy400 = new SqliteCreateTable::Constraint(); - yygotominor.yy400->initCheck(yymsp[-2].minor.yy186, *(yymsp[0].minor.yy136)); - objectForTokens = yygotominor.yy400; + yygotominor.yy166 = new SqliteCreateTable::Constraint(); + yygotominor.yy166->initCheck(yymsp[-2].minor.yy176, *(yymsp[0].minor.yy66)); + objectForTokens = yygotominor.yy166; } break; case 125: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */ case 126: /* tcons ::= CONSTRAINT ID_CONSTR */ yytestcase(yyruleno==126); case 127: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES ID_TAB */ yytestcase(yyruleno==127); { - yygotominor.yy400 = new SqliteCreateTable::Constraint(); - yygotominor.yy400->initFk( - *(yymsp[-6].minor.yy627), - *(yymsp[-3].minor.yy319), - *(yymsp[-2].minor.yy627), - *(yymsp[-1].minor.yy156), - yymsp[0].minor.yy53->initially, - yymsp[0].minor.yy53->deferrable + yygotominor.yy166 = new SqliteCreateTable::Constraint(); + yygotominor.yy166->initFk( + *(yymsp[-6].minor.yy527), + *(yymsp[-3].minor.yy255), + *(yymsp[-2].minor.yy527), + *(yymsp[-1].minor.yy56), + yymsp[0].minor.yy218->initially, + yymsp[0].minor.yy218->deferrable ); - delete yymsp[-3].minor.yy319; - delete yymsp[-1].minor.yy156; - delete yymsp[0].minor.yy53; - delete yymsp[-2].minor.yy627; - delete yymsp[-6].minor.yy627; - objectForTokens = yygotominor.yy400; + delete yymsp[-3].minor.yy255; + delete yymsp[-1].minor.yy56; + delete yymsp[0].minor.yy218; + delete yymsp[-2].minor.yy527; + delete yymsp[-6].minor.yy527; + objectForTokens = yygotominor.yy166; } break; case 128: /* tcons ::= CHECK LP RP onconf */ { - yygotominor.yy400 = new SqliteCreateTable::Constraint(); - yygotominor.yy400->initCheck(); - objectForTokens = yygotominor.yy400; + yygotominor.yy166 = new SqliteCreateTable::Constraint(); + yygotominor.yy166->initCheck(); + objectForTokens = yygotominor.yy166; parserContext->minorErrorAfterLastToken("Syntax error"); yy_destructor(yypParser,228,&yymsp[0].minor); } break; case 129: /* defer_subclause_opt ::= */ -{yygotominor.yy53 = new ParserDeferSubClause(SqliteDeferrable::null, SqliteInitially::null);} +{yygotominor.yy218 = new ParserDeferSubClause(SqliteDeferrable::null, SqliteInitially::null);} break; case 130: /* defer_subclause_opt ::= defer_subclause */ -{yygotominor.yy53 = yymsp[0].minor.yy53;} +{yygotominor.yy218 = yymsp[0].minor.yy218;} break; case 131: /* onconf ::= */ case 133: /* orconf ::= */ yytestcase(yyruleno==133); -{yygotominor.yy136 = new SqliteConflictAlgo(SqliteConflictAlgo::null);} +{yygotominor.yy66 = new SqliteConflictAlgo(SqliteConflictAlgo::null);} break; case 132: /* onconf ::= ON CONFLICT resolvetype */ case 134: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==134); -{yygotominor.yy136 = yymsp[0].minor.yy136;} +{yygotominor.yy66 = yymsp[0].minor.yy66;} break; case 135: /* resolvetype ::= raisetype */ case 136: /* resolvetype ::= IGNORE */ yytestcase(yyruleno==136); case 137: /* resolvetype ::= REPLACE */ yytestcase(yyruleno==137); -{yygotominor.yy136 = new SqliteConflictAlgo(sqliteConflictAlgo(yymsp[0].minor.yy0->value));} +{yygotominor.yy66 = new SqliteConflictAlgo(sqliteConflictAlgo(yymsp[0].minor.yy0->value));} break; case 138: /* cmd ::= DROP TABLE ifexists fullname */ { - yygotominor.yy41 = new SqliteDropTable(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy396->name1, yymsp[0].minor.yy396->name2); - delete yymsp[-1].minor.yy225; - delete yymsp[0].minor.yy396; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteDropTable(*(yymsp[-1].minor.yy35), yymsp[0].minor.yy520->name1, yymsp[0].minor.yy520->name2); + delete yymsp[-1].minor.yy35; + delete yymsp[0].minor.yy520; + objectForTokens = yygotominor.yy635; } break; case 139: /* cmd ::= DROP TABLE ifexists nm DOT ID_TAB */ @@ -3857,41 +3863,41 @@ static void yy_reduce( case 192: /* singlesrc ::= ID_DB|ID_TAB */ yytestcase(yyruleno==192); case 193: /* singlesrc ::= nm DOT ID_VIEW */ yytestcase(yyruleno==193); case 194: /* singlesrc ::= ID_DB|ID_VIEW */ yytestcase(yyruleno==194); - case 342: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW */ yytestcase(yyruleno==342); - case 343: /* cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW */ yytestcase(yyruleno==343); - case 356: /* cmd ::= DROP INDEX ifexists nm DOT ID_IDX */ yytestcase(yyruleno==356); - case 357: /* cmd ::= DROP INDEX ifexists ID_DB|ID_IDX */ yytestcase(yyruleno==357); - case 367: /* cmd ::= PRAGMA nm DOT ID_PRAGMA */ yytestcase(yyruleno==367); - case 368: /* cmd ::= PRAGMA ID_DB|ID_PRAGMA */ yytestcase(yyruleno==368); - case 406: /* cmd ::= DROP TRIGGER ifexists nm DOT ID_TRIG */ yytestcase(yyruleno==406); - case 407: /* cmd ::= DROP TRIGGER ifexists ID_DB|ID_TRIG */ yytestcase(yyruleno==407); - case 417: /* cmd ::= REINDEX nm DOT ID_TAB|ID_IDX */ yytestcase(yyruleno==417); - case 418: /* cmd ::= REINDEX ID_DB|ID_IDX|ID_TAB */ yytestcase(yyruleno==418); - case 421: /* cmd ::= ANALYZE nm DOT ID_TAB|ID_IDX */ yytestcase(yyruleno==421); - case 422: /* cmd ::= ANALYZE ID_DB|ID_IDX|ID_TAB */ yytestcase(yyruleno==422); - case 427: /* cmd ::= ALTER TABLE nm DOT ID_TAB */ yytestcase(yyruleno==427); - case 428: /* cmd ::= ALTER TABLE ID_DB|ID_TAB */ yytestcase(yyruleno==428); - case 434: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm DOT ID_TAB_NEW */ yytestcase(yyruleno==434); - case 435: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists ID_DB|ID_TAB_NEW */ yytestcase(yyruleno==435); + case 345: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm DOT ID_IDX_NEW */ yytestcase(yyruleno==345); + case 346: /* cmd ::= CREATE uniqueflag INDEX ifnotexists ID_DB|ID_IDX_NEW */ yytestcase(yyruleno==346); + case 359: /* cmd ::= DROP INDEX ifexists nm DOT ID_IDX */ yytestcase(yyruleno==359); + case 360: /* cmd ::= DROP INDEX ifexists ID_DB|ID_IDX */ yytestcase(yyruleno==360); + case 370: /* cmd ::= PRAGMA nm DOT ID_PRAGMA */ yytestcase(yyruleno==370); + case 371: /* cmd ::= PRAGMA ID_DB|ID_PRAGMA */ yytestcase(yyruleno==371); + case 409: /* cmd ::= DROP TRIGGER ifexists nm DOT ID_TRIG */ yytestcase(yyruleno==409); + case 410: /* cmd ::= DROP TRIGGER ifexists ID_DB|ID_TRIG */ yytestcase(yyruleno==410); + case 420: /* cmd ::= REINDEX nm DOT ID_TAB|ID_IDX */ yytestcase(yyruleno==420); + case 421: /* cmd ::= REINDEX ID_DB|ID_IDX|ID_TAB */ yytestcase(yyruleno==421); + case 424: /* cmd ::= ANALYZE nm DOT ID_TAB|ID_IDX */ yytestcase(yyruleno==424); + case 425: /* cmd ::= ANALYZE ID_DB|ID_IDX|ID_TAB */ yytestcase(yyruleno==425); + case 430: /* cmd ::= ALTER TABLE nm DOT ID_TAB */ yytestcase(yyruleno==430); + case 431: /* cmd ::= ALTER TABLE ID_DB|ID_TAB */ yytestcase(yyruleno==431); + case 437: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm DOT ID_TAB_NEW */ yytestcase(yyruleno==437); + case 438: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists ID_DB|ID_TAB_NEW */ yytestcase(yyruleno==438); { yy_destructor(yypParser,203,&yymsp[-2].minor); } break; case 143: /* cmd ::= CREATE temp VIEW ifnotexists fullname idxlist_opt AS select */ { - yygotominor.yy41 = new SqliteCreateView(*(yymsp[-6].minor.yy130), *(yymsp[-4].minor.yy225), yymsp[-3].minor.yy396->name1, yymsp[-3].minor.yy396->name2, yymsp[0].minor.yy297, *(yymsp[-2].minor.yy627)); - delete yymsp[-6].minor.yy130; - delete yymsp[-4].minor.yy225; - delete yymsp[-3].minor.yy396; - delete yymsp[-2].minor.yy627; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteCreateView(*(yymsp[-6].minor.yy562), *(yymsp[-4].minor.yy35), yymsp[-3].minor.yy520->name1, yymsp[-3].minor.yy520->name2, yymsp[0].minor.yy73, *(yymsp[-2].minor.yy527)); + delete yymsp[-6].minor.yy562; + delete yymsp[-4].minor.yy35; + delete yymsp[-3].minor.yy520; + delete yymsp[-2].minor.yy527; + objectForTokens = yygotominor.yy635; } break; case 146: /* cmd ::= DROP VIEW ifexists fullname */ { - yygotominor.yy41 = new SqliteDropView(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy396->name1, yymsp[0].minor.yy396->name2); - delete yymsp[-1].minor.yy225; - delete yymsp[0].minor.yy396; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteDropView(*(yymsp[-1].minor.yy35), yymsp[0].minor.yy520->name1, yymsp[0].minor.yy520->name2); + delete yymsp[-1].minor.yy35; + delete yymsp[0].minor.yy520; + objectForTokens = yygotominor.yy635; } break; case 149: /* cmd ::= select_stmt */ @@ -3899,143 +3905,143 @@ static void yy_reduce( case 241: /* cmd ::= update_stmt */ yytestcase(yyruleno==241); case 262: /* cmd ::= insert_stmt */ yytestcase(yyruleno==262); { - yygotominor.yy41 = yymsp[0].minor.yy41; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = yymsp[0].minor.yy635; + objectForTokens = yygotominor.yy635; } break; case 150: /* select_stmt ::= select */ { - yygotominor.yy41 = yymsp[0].minor.yy297; + yygotominor.yy635 = yymsp[0].minor.yy73; // since it's used in trigger: - objectForTokens = yygotominor.yy41; + objectForTokens = yygotominor.yy635; } break; case 151: /* select ::= with selectnowith */ { - yygotominor.yy297 = yymsp[0].minor.yy297; - yymsp[0].minor.yy297->setWith(yymsp[-1].minor.yy161); - objectForTokens = yygotominor.yy297; + yygotominor.yy73 = yymsp[0].minor.yy73; + yymsp[0].minor.yy73->setWith(yymsp[-1].minor.yy321); + objectForTokens = yygotominor.yy73; } break; case 152: /* selectnowith ::= oneselect */ { - yygotominor.yy297 = SqliteSelect::append(yymsp[0].minor.yy378); - objectForTokens = yygotominor.yy297; + yygotominor.yy73 = SqliteSelect::append(yymsp[0].minor.yy438); + objectForTokens = yygotominor.yy73; } break; case 153: /* selectnowith ::= selectnowith multiselect_op oneselect */ { - yygotominor.yy297 = SqliteSelect::append(yymsp[-2].minor.yy297, *(yymsp[-1].minor.yy142), yymsp[0].minor.yy378); - delete yymsp[-1].minor.yy142; - objectForTokens = yygotominor.yy297; + yygotominor.yy73 = SqliteSelect::append(yymsp[-2].minor.yy73, *(yymsp[-1].minor.yy574), yymsp[0].minor.yy438); + delete yymsp[-1].minor.yy574; + objectForTokens = yygotominor.yy73; } break; case 154: /* selectnowith ::= values */ { - yygotominor.yy297 = SqliteSelect::append(*(yymsp[0].minor.yy522)); - delete yymsp[0].minor.yy522; - objectForTokens = yygotominor.yy297; + yygotominor.yy73 = SqliteSelect::append(*(yymsp[0].minor.yy54)); + delete yymsp[0].minor.yy54; + objectForTokens = yygotominor.yy73; } break; case 155: /* selectnowith ::= selectnowith COMMA values */ { - yygotominor.yy297 = SqliteSelect::append(yymsp[-2].minor.yy297, SqliteSelect::CompoundOperator::UNION_ALL, *(yymsp[0].minor.yy522)); - delete yymsp[0].minor.yy522; - objectForTokens = yygotominor.yy297; + yygotominor.yy73 = SqliteSelect::append(yymsp[-2].minor.yy73, SqliteSelect::CompoundOperator::UNION_ALL, *(yymsp[0].minor.yy54)); + delete yymsp[0].minor.yy54; + objectForTokens = yygotominor.yy73; } break; case 156: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ { - yygotominor.yy378 = new SqliteSelect::Core( - *(yymsp[-7].minor.yy130), - *(yymsp[-6].minor.yy27), - yymsp[-5].minor.yy553, - yymsp[-4].minor.yy186, - *(yymsp[-3].minor.yy615), - yymsp[-2].minor.yy186, - *(yymsp[-1].minor.yy226), - yymsp[0].minor.yy360 + yygotominor.yy438 = new SqliteSelect::Core( + *(yymsp[-7].minor.yy562), + *(yymsp[-6].minor.yy421), + yymsp[-5].minor.yy335, + yymsp[-4].minor.yy176, + *(yymsp[-3].minor.yy567), + yymsp[-2].minor.yy176, + *(yymsp[-1].minor.yy499), + yymsp[0].minor.yy4 ); - delete yymsp[-6].minor.yy27; - delete yymsp[-7].minor.yy130; - delete yymsp[-3].minor.yy615; - delete yymsp[-1].minor.yy226; - objectForTokens = yygotominor.yy378; + delete yymsp[-6].minor.yy421; + delete yymsp[-7].minor.yy562; + delete yymsp[-3].minor.yy567; + delete yymsp[-1].minor.yy499; + objectForTokens = yygotominor.yy438; } break; case 157: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ { - yygotominor.yy378 = new SqliteSelect::Core( - *(yymsp[-8].minor.yy130), - *(yymsp[-7].minor.yy27), - yymsp[-6].minor.yy553, - yymsp[-5].minor.yy186, - *(yymsp[-4].minor.yy615), - yymsp[-3].minor.yy186, - *(yymsp[-2].minor.yy525), - *(yymsp[-1].minor.yy226), - yymsp[0].minor.yy360 + yygotominor.yy438 = new SqliteSelect::Core( + *(yymsp[-8].minor.yy562), + *(yymsp[-7].minor.yy421), + yymsp[-6].minor.yy335, + yymsp[-5].minor.yy176, + *(yymsp[-4].minor.yy567), + yymsp[-3].minor.yy176, + *(yymsp[-2].minor.yy555), + *(yymsp[-1].minor.yy499), + yymsp[0].minor.yy4 ); - delete yymsp[-7].minor.yy27; - delete yymsp[-8].minor.yy130; - delete yymsp[-4].minor.yy615; - delete yymsp[-1].minor.yy226; - delete yymsp[-2].minor.yy525; - objectForTokens = yygotominor.yy378; + delete yymsp[-7].minor.yy421; + delete yymsp[-8].minor.yy562; + delete yymsp[-4].minor.yy567; + delete yymsp[-1].minor.yy499; + delete yymsp[-2].minor.yy555; + objectForTokens = yygotominor.yy438; } break; case 158: /* values ::= VALUES LP nexprlist RP */ { - yygotominor.yy522 = new ParserExprNestedList(); - yygotominor.yy522->append(*(yymsp[-1].minor.yy615)); - delete yymsp[-1].minor.yy615; + yygotominor.yy54 = new ParserExprNestedList(); + yygotominor.yy54->append(*(yymsp[-1].minor.yy567)); + delete yymsp[-1].minor.yy567; } break; case 159: /* values ::= values COMMA LP exprlist RP */ { - yymsp[-4].minor.yy522->append(*(yymsp[-1].minor.yy615)); - yygotominor.yy522 = yymsp[-4].minor.yy522; - delete yymsp[-1].minor.yy615; + yymsp[-4].minor.yy54->append(*(yymsp[-1].minor.yy567)); + yygotominor.yy54 = yymsp[-4].minor.yy54; + delete yymsp[-1].minor.yy567; DONT_INHERIT_TOKENS("values"); } break; case 160: /* multiselect_op ::= UNION */ -{yygotominor.yy142 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::UNION);} +{yygotominor.yy574 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::UNION);} break; case 161: /* multiselect_op ::= UNION ALL */ -{yygotominor.yy142 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::UNION_ALL);} +{yygotominor.yy574 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::UNION_ALL);} break; case 162: /* multiselect_op ::= EXCEPT */ -{yygotominor.yy142 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::EXCEPT);} +{yygotominor.yy574 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::EXCEPT);} break; case 163: /* multiselect_op ::= INTERSECT */ -{yygotominor.yy142 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::INTERSECT);} +{yygotominor.yy574 = new SqliteSelect::CompoundOperator(SqliteSelect::CompoundOperator::INTERSECT);} break; case 164: /* distinct ::= DISTINCT */ -{yygotominor.yy130 = new int(1);} +{yygotominor.yy562 = new int(1);} break; case 165: /* distinct ::= ALL */ -{yygotominor.yy130 = new int(2);} +{yygotominor.yy562 = new int(2);} break; case 167: /* sclp ::= selcollist COMMA */ -{yygotominor.yy27 = yymsp[-1].minor.yy27;} +{yygotominor.yy421 = yymsp[-1].minor.yy421;} break; case 168: /* sclp ::= */ case 239: /* returning ::= */ yytestcase(yyruleno==239); -{yygotominor.yy27 = new ParserResultColumnList();} +{yygotominor.yy421 = new ParserResultColumnList();} break; case 169: /* selcollist ::= sclp expr as */ { SqliteSelect::Core::ResultColumn* obj = new SqliteSelect::Core::ResultColumn( - yymsp[-1].minor.yy186, - yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->asKw : false, - yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->name : QString() + yymsp[-1].minor.yy176, + yymsp[0].minor.yy280 ? yymsp[0].minor.yy280->asKw : false, + yymsp[0].minor.yy280 ? yymsp[0].minor.yy280->name : QString() ); - yymsp[-2].minor.yy27->append(obj); - yygotominor.yy27 = yymsp[-2].minor.yy27; - delete yymsp[0].minor.yy628; + yymsp[-2].minor.yy421->append(obj); + yygotominor.yy421 = yymsp[-2].minor.yy421; + delete yymsp[0].minor.yy280; objectForTokens = obj; DONT_INHERIT_TOKENS("sclp"); } @@ -4045,8 +4051,8 @@ static void yy_reduce( SqliteSelect::Core::ResultColumn* obj = new SqliteSelect::Core::ResultColumn(true); - yymsp[-1].minor.yy27->append(obj); - yygotominor.yy27 = yymsp[-1].minor.yy27; + yymsp[-1].minor.yy421->append(obj); + yygotominor.yy421 = yymsp[-1].minor.yy421; objectForTokens = obj; DONT_INHERIT_TOKENS("sclp"); } @@ -4056,15 +4062,15 @@ static void yy_reduce( SqliteSelect::Core::ResultColumn* obj = new SqliteSelect::Core::ResultColumn( true, - yymsp[-2].minor.yy380->toName() + yymsp[-2].minor.yy542->toName() ); - if (!yymsp[-2].minor.yy380->isName()) + if (!yymsp[-2].minor.yy542->isName()) parserContext->errorAtToken("Syntax error <expected name, not literal value>", -3); - yymsp[-3].minor.yy27->append(obj); - yygotominor.yy27 = yymsp[-3].minor.yy27; - delete yymsp[-2].minor.yy380; + yymsp[-3].minor.yy421->append(obj); + yygotominor.yy421 = yymsp[-3].minor.yy421; + delete yymsp[-2].minor.yy542; objectForTokens = obj; DONT_INHERIT_TOKENS("sclp"); } @@ -4073,378 +4079,378 @@ static void yy_reduce( case 173: /* selcollist ::= sclp ID_TAB DOT STAR */ yytestcase(yyruleno==173); { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy27 = yymsp[0].minor.yy27; + yygotominor.yy421 = yymsp[0].minor.yy421; } break; case 174: /* as ::= AS nm */ { - yygotominor.yy628 = new ParserStubAlias(*(yymsp[0].minor.yy319), true); - delete yymsp[0].minor.yy319; + yygotominor.yy280 = new ParserStubAlias(*(yymsp[0].minor.yy255), true); + delete yymsp[0].minor.yy255; } break; case 175: /* as ::= ids */ case 176: /* as ::= AS ID_ALIAS */ yytestcase(yyruleno==176); case 177: /* as ::= ID_ALIAS */ yytestcase(yyruleno==177); { - yygotominor.yy628 = new ParserStubAlias(*(yymsp[0].minor.yy319), false); - delete yymsp[0].minor.yy319; + yygotominor.yy280 = new ParserStubAlias(*(yymsp[0].minor.yy255), false); + delete yymsp[0].minor.yy255; } break; case 178: /* as ::= */ -{yygotominor.yy628 = nullptr;} +{yygotominor.yy280 = nullptr;} break; case 179: /* from ::= */ -{yygotominor.yy553 = nullptr;} +{yygotominor.yy335 = nullptr;} break; case 180: /* from ::= FROM joinsrc */ -{yygotominor.yy553 = yymsp[0].minor.yy553;} +{yygotominor.yy335 = yymsp[0].minor.yy335;} break; case 181: /* joinsrc ::= singlesrc seltablist */ { - yygotominor.yy553 = new SqliteSelect::Core::JoinSource( - yymsp[-1].minor.yy595, - *(yymsp[0].minor.yy107) + yygotominor.yy335 = new SqliteSelect::Core::JoinSource( + yymsp[-1].minor.yy393, + *(yymsp[0].minor.yy195) ); - delete yymsp[0].minor.yy107; - objectForTokens = yygotominor.yy553; + delete yymsp[0].minor.yy195; + objectForTokens = yygotominor.yy335; } break; case 182: /* joinsrc ::= */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy553 = new SqliteSelect::Core::JoinSource(); - objectForTokens = yygotominor.yy553; + yygotominor.yy335 = new SqliteSelect::Core::JoinSource(); + objectForTokens = yygotominor.yy335; } break; case 183: /* seltablist ::= seltablist joinop singlesrc joinconstr_opt */ { SqliteSelect::Core::JoinSourceOther* src = - new SqliteSelect::Core::JoinSourceOther(yymsp[-2].minor.yy449, yymsp[-1].minor.yy595, yymsp[0].minor.yy215); + new SqliteSelect::Core::JoinSourceOther(yymsp[-2].minor.yy461, yymsp[-1].minor.yy393, yymsp[0].minor.yy423); - yymsp[-3].minor.yy107->append(src); - yygotominor.yy107 = yymsp[-3].minor.yy107; + yymsp[-3].minor.yy195->append(src); + yygotominor.yy195 = yymsp[-3].minor.yy195; objectForTokens = src; DONT_INHERIT_TOKENS("seltablist"); } break; case 184: /* seltablist ::= */ { - yygotominor.yy107 = new ParserOtherSourceList(); + yygotominor.yy195 = new ParserOtherSourceList(); } break; case 185: /* singlesrc ::= nm dbnm as indexed_opt */ { - yygotominor.yy595 = new SqliteSelect::Core::SingleSource( - *(yymsp[-3].minor.yy319), - *(yymsp[-2].minor.yy319), - yymsp[-1].minor.yy628 ? yymsp[-1].minor.yy628->asKw : false, - yymsp[-1].minor.yy628 ? yymsp[-1].minor.yy628->name : QString(), - yymsp[0].minor.yy300 ? yymsp[0].minor.yy300->notIndexedKw : false, - yymsp[0].minor.yy300 ? yymsp[0].minor.yy300->indexedBy : QString() + yygotominor.yy393 = new SqliteSelect::Core::SingleSource( + *(yymsp[-3].minor.yy255), + *(yymsp[-2].minor.yy255), + yymsp[-1].minor.yy280 ? yymsp[-1].minor.yy280->asKw : false, + yymsp[-1].minor.yy280 ? yymsp[-1].minor.yy280->name : QString(), + yymsp[0].minor.yy224 ? yymsp[0].minor.yy224->notIndexedKw : false, + yymsp[0].minor.yy224 ? yymsp[0].minor.yy224->indexedBy : QString() ); - delete yymsp[-3].minor.yy319; - delete yymsp[-2].minor.yy319; - delete yymsp[-1].minor.yy628; - if (yymsp[0].minor.yy300) - delete yymsp[0].minor.yy300; - objectForTokens = yygotominor.yy595; + delete yymsp[-3].minor.yy255; + delete yymsp[-2].minor.yy255; + delete yymsp[-1].minor.yy280; + if (yymsp[0].minor.yy224) + delete yymsp[0].minor.yy224; + objectForTokens = yygotominor.yy393; } break; case 186: /* singlesrc ::= LP select RP as */ { - yygotominor.yy595 = new SqliteSelect::Core::SingleSource( - yymsp[-2].minor.yy297, - yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->asKw : false, - yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->name : QString() + yygotominor.yy393 = new SqliteSelect::Core::SingleSource( + yymsp[-2].minor.yy73, + yymsp[0].minor.yy280 ? yymsp[0].minor.yy280->asKw : false, + yymsp[0].minor.yy280 ? yymsp[0].minor.yy280->name : QString() ); - delete yymsp[0].minor.yy628; - objectForTokens = yygotominor.yy595; + delete yymsp[0].minor.yy280; + objectForTokens = yygotominor.yy393; } break; case 187: /* singlesrc ::= LP joinsrc RP as */ { - yygotominor.yy595 = new SqliteSelect::Core::SingleSource( - yymsp[-2].minor.yy553, - yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->asKw : false, - yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->name : QString() + yygotominor.yy393 = new SqliteSelect::Core::SingleSource( + yymsp[-2].minor.yy335, + yymsp[0].minor.yy280 ? yymsp[0].minor.yy280->asKw : false, + yymsp[0].minor.yy280 ? yymsp[0].minor.yy280->name : QString() ); - delete yymsp[0].minor.yy628; - objectForTokens = yygotominor.yy595; + delete yymsp[0].minor.yy280; + objectForTokens = yygotominor.yy393; } break; case 188: /* singlesrc ::= nm dbnm LP exprlist RP as */ { - yygotominor.yy595 = new SqliteSelect::Core::SingleSource( - *(yymsp[-5].minor.yy319), - *(yymsp[-4].minor.yy319), - yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->asKw : false, - yymsp[0].minor.yy628 ? yymsp[0].minor.yy628->name : QString(), - *(yymsp[-2].minor.yy615) + yygotominor.yy393 = new SqliteSelect::Core::SingleSource( + *(yymsp[-5].minor.yy255), + *(yymsp[-4].minor.yy255), + yymsp[0].minor.yy280 ? yymsp[0].minor.yy280->asKw : false, + yymsp[0].minor.yy280 ? yymsp[0].minor.yy280->name : QString(), + *(yymsp[-2].minor.yy567) ); - delete yymsp[-5].minor.yy319; - delete yymsp[-4].minor.yy319; - delete yymsp[0].minor.yy628; - if (yymsp[-2].minor.yy615) - delete yymsp[-2].minor.yy615; + delete yymsp[-5].minor.yy255; + delete yymsp[-4].minor.yy255; + delete yymsp[0].minor.yy280; + if (yymsp[-2].minor.yy567) + delete yymsp[-2].minor.yy567; - objectForTokens = yygotominor.yy595; + objectForTokens = yygotominor.yy393; } break; case 189: /* singlesrc ::= */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy595 = new SqliteSelect::Core::SingleSource(); - objectForTokens = yygotominor.yy595; + yygotominor.yy393 = new SqliteSelect::Core::SingleSource(); + objectForTokens = yygotominor.yy393; } break; case 190: /* singlesrc ::= nm DOT */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy595 = new SqliteSelect::Core::SingleSource(); - yygotominor.yy595->database = *(yymsp[-1].minor.yy319); - delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy595; + yygotominor.yy393 = new SqliteSelect::Core::SingleSource(); + yygotominor.yy393->database = *(yymsp[-1].minor.yy255); + delete yymsp[-1].minor.yy255; + objectForTokens = yygotominor.yy393; } break; case 195: /* joinconstr_opt ::= ON expr */ { - yygotominor.yy215 = new SqliteSelect::Core::JoinConstraint(yymsp[0].minor.yy186); - objectForTokens = yygotominor.yy215; + yygotominor.yy423 = new SqliteSelect::Core::JoinConstraint(yymsp[0].minor.yy176); + objectForTokens = yygotominor.yy423; } break; case 196: /* joinconstr_opt ::= USING LP idlist RP */ { - yygotominor.yy215 = new SqliteSelect::Core::JoinConstraint(*(yymsp[-1].minor.yy173)); - delete yymsp[-1].minor.yy173; - objectForTokens = yygotominor.yy215; + yygotominor.yy423 = new SqliteSelect::Core::JoinConstraint(*(yymsp[-1].minor.yy336)); + delete yymsp[-1].minor.yy336; + objectForTokens = yygotominor.yy423; } break; case 197: /* joinconstr_opt ::= */ -{yygotominor.yy215 = nullptr;} +{yygotominor.yy423 = nullptr;} break; case 198: /* dbnm ::= */ - case 352: /* collate ::= */ yytestcase(yyruleno==352); - case 438: /* vtabarg ::= */ yytestcase(yyruleno==438); - case 442: /* anylist ::= */ yytestcase(yyruleno==442); -{yygotominor.yy319 = new QString();} + case 355: /* collate ::= */ yytestcase(yyruleno==355); + case 441: /* vtabarg ::= */ yytestcase(yyruleno==441); + case 445: /* anylist ::= */ yytestcase(yyruleno==445); +{yygotominor.yy255 = new QString();} break; case 200: /* fullname ::= nm dbnm */ { - yygotominor.yy396 = new ParserFullName(); - yygotominor.yy396->name1 = *(yymsp[-1].minor.yy319); - yygotominor.yy396->name2 = *(yymsp[0].minor.yy319); - delete yymsp[-1].minor.yy319; - delete yymsp[0].minor.yy319; + yygotominor.yy520 = new ParserFullName(); + yygotominor.yy520->name1 = *(yymsp[-1].minor.yy255); + yygotominor.yy520->name2 = *(yymsp[0].minor.yy255); + delete yymsp[-1].minor.yy255; + delete yymsp[0].minor.yy255; } break; case 201: /* joinop ::= COMMA */ { - yygotominor.yy449 = new SqliteSelect::Core::JoinOp(true); - objectForTokens = yygotominor.yy449; + yygotominor.yy461 = new SqliteSelect::Core::JoinOp(true); + objectForTokens = yygotominor.yy461; } break; case 202: /* joinop ::= JOIN */ { - yygotominor.yy449 = new SqliteSelect::Core::JoinOp(false); - objectForTokens = yygotominor.yy449; + yygotominor.yy461 = new SqliteSelect::Core::JoinOp(false); + objectForTokens = yygotominor.yy461; } break; case 203: /* joinop ::= JOIN_KW JOIN */ { - yygotominor.yy449 = new SqliteSelect::Core::JoinOp(yymsp[-1].minor.yy0->value); - objectForTokens = yygotominor.yy449; + yygotominor.yy461 = new SqliteSelect::Core::JoinOp(yymsp[-1].minor.yy0->value); + objectForTokens = yygotominor.yy461; } break; case 204: /* joinop ::= JOIN_KW nm JOIN */ { - yygotominor.yy449 = new SqliteSelect::Core::JoinOp(yymsp[-2].minor.yy0->value, *(yymsp[-1].minor.yy319)); - delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy449; + yygotominor.yy461 = new SqliteSelect::Core::JoinOp(yymsp[-2].minor.yy0->value, *(yymsp[-1].minor.yy255)); + delete yymsp[-1].minor.yy255; + objectForTokens = yygotominor.yy461; } break; case 205: /* joinop ::= JOIN_KW nm nm JOIN */ case 206: /* joinop ::= ID_JOIN_OPTS */ yytestcase(yyruleno==206); { - yygotominor.yy449 = new SqliteSelect::Core::JoinOp(yymsp[-3].minor.yy0->value, *(yymsp[-2].minor.yy319), *(yymsp[-1].minor.yy319)); - delete yymsp[-2].minor.yy319; - objectForTokens = yygotominor.yy449; + yygotominor.yy461 = new SqliteSelect::Core::JoinOp(yymsp[-3].minor.yy0->value, *(yymsp[-2].minor.yy255), *(yymsp[-1].minor.yy255)); + delete yymsp[-2].minor.yy255; + objectForTokens = yygotominor.yy461; } break; case 207: /* indexed_opt ::= */ -{yygotominor.yy300 = nullptr;} +{yygotominor.yy224 = nullptr;} break; case 208: /* indexed_opt ::= INDEXED BY nm */ { - yygotominor.yy300 = new ParserIndexedBy(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; + yygotominor.yy224 = new ParserIndexedBy(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; } break; case 209: /* indexed_opt ::= NOT INDEXED */ case 210: /* indexed_opt ::= INDEXED BY ID_IDX */ yytestcase(yyruleno==210); -{yygotominor.yy300 = new ParserIndexedBy(true);} +{yygotominor.yy224 = new ParserIndexedBy(true);} break; case 211: /* orderby_opt ::= */ -{yygotominor.yy226 = new ParserOrderByList();} +{yygotominor.yy499 = new ParserOrderByList();} break; case 212: /* orderby_opt ::= ORDER BY sortlist */ -{yygotominor.yy226 = yymsp[0].minor.yy226;} +{yygotominor.yy499 = yymsp[0].minor.yy499;} break; case 213: /* sortlist ::= sortlist COMMA expr sortorder nulls */ { - SqliteOrderBy* obj = new SqliteOrderBy(yymsp[-2].minor.yy186, *(yymsp[-1].minor.yy35), *(yymsp[0].minor.yy315)); - yymsp[-4].minor.yy226->append(obj); - yygotominor.yy226 = yymsp[-4].minor.yy226; - delete yymsp[-1].minor.yy35; - delete yymsp[0].minor.yy315; + SqliteOrderBy* obj = new SqliteOrderBy(yymsp[-2].minor.yy176, *(yymsp[-1].minor.yy645), *(yymsp[0].minor.yy99)); + yymsp[-4].minor.yy499->append(obj); + yygotominor.yy499 = yymsp[-4].minor.yy499; + delete yymsp[-1].minor.yy645; + delete yymsp[0].minor.yy99; objectForTokens = obj; DONT_INHERIT_TOKENS("sortlist"); } break; case 214: /* sortlist ::= expr sortorder nulls */ { - SqliteOrderBy* obj = new SqliteOrderBy(yymsp[-2].minor.yy186, *(yymsp[-1].minor.yy35), *(yymsp[0].minor.yy315)); - yygotominor.yy226 = new ParserOrderByList(); - yygotominor.yy226->append(obj); - delete yymsp[-1].minor.yy35; - delete yymsp[0].minor.yy315; + SqliteOrderBy* obj = new SqliteOrderBy(yymsp[-2].minor.yy176, *(yymsp[-1].minor.yy645), *(yymsp[0].minor.yy99)); + yygotominor.yy499 = new ParserOrderByList(); + yygotominor.yy499->append(obj); + delete yymsp[-1].minor.yy645; + delete yymsp[0].minor.yy99; objectForTokens = obj; } break; case 215: /* sortorder ::= ASC */ -{yygotominor.yy35 = new SqliteSortOrder(SqliteSortOrder::ASC);} +{yygotominor.yy645 = new SqliteSortOrder(SqliteSortOrder::ASC);} break; case 216: /* sortorder ::= DESC */ -{yygotominor.yy35 = new SqliteSortOrder(SqliteSortOrder::DESC);} +{yygotominor.yy645 = new SqliteSortOrder(SqliteSortOrder::DESC);} break; case 217: /* sortorder ::= */ -{yygotominor.yy35 = new SqliteSortOrder(SqliteSortOrder::null);} +{yygotominor.yy645 = new SqliteSortOrder(SqliteSortOrder::null);} break; case 218: /* nulls ::= NULLS FIRST */ -{yygotominor.yy315 = new SqliteNulls(SqliteNulls::FIRST);} +{yygotominor.yy99 = new SqliteNulls(SqliteNulls::FIRST);} break; case 219: /* nulls ::= NULLS LAST */ -{yygotominor.yy315 = new SqliteNulls(SqliteNulls::LAST);} +{yygotominor.yy99 = new SqliteNulls(SqliteNulls::LAST);} break; case 220: /* nulls ::= */ -{yygotominor.yy315 = new SqliteNulls(SqliteNulls::null);} +{yygotominor.yy99 = new SqliteNulls(SqliteNulls::null);} break; case 221: /* groupby_opt ::= */ - case 337: /* exprlist ::= */ yytestcase(yyruleno==337); -{yygotominor.yy615 = new ParserExprList();} + case 340: /* exprlist ::= */ yytestcase(yyruleno==340); +{yygotominor.yy567 = new ParserExprList();} break; case 222: /* groupby_opt ::= GROUP BY nexprlist */ - case 336: /* exprlist ::= nexprlist */ yytestcase(yyruleno==336); -{yygotominor.yy615 = yymsp[0].minor.yy615;} + case 339: /* exprlist ::= nexprlist */ yytestcase(yyruleno==339); +{yygotominor.yy567 = yymsp[0].minor.yy567;} break; case 223: /* groupby_opt ::= GROUP BY */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy615 = new ParserExprList(); + yygotominor.yy567 = new ParserExprList(); } break; case 224: /* having_opt ::= */ case 236: /* where_opt ::= */ yytestcase(yyruleno==236); - case 333: /* case_else ::= */ yytestcase(yyruleno==333); - case 335: /* case_operand ::= */ yytestcase(yyruleno==335); - case 361: /* vinto ::= */ yytestcase(yyruleno==361); - case 395: /* when_clause ::= */ yytestcase(yyruleno==395); - case 410: /* key_opt ::= */ yytestcase(yyruleno==410); -{yygotominor.yy186 = nullptr;} + case 336: /* case_else ::= */ yytestcase(yyruleno==336); + case 338: /* case_operand ::= */ yytestcase(yyruleno==338); + case 364: /* vinto ::= */ yytestcase(yyruleno==364); + case 398: /* when_clause ::= */ yytestcase(yyruleno==398); + case 413: /* key_opt ::= */ yytestcase(yyruleno==413); +{yygotominor.yy176 = nullptr;} break; case 225: /* having_opt ::= HAVING expr */ case 237: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==237); - case 326: /* expr ::= exprx */ yytestcase(yyruleno==326); - case 332: /* case_else ::= ELSE expr */ yytestcase(yyruleno==332); - case 334: /* case_operand ::= exprx */ yytestcase(yyruleno==334); - case 360: /* vinto ::= INTO expr */ yytestcase(yyruleno==360); - case 396: /* when_clause ::= WHEN expr */ yytestcase(yyruleno==396); - case 411: /* key_opt ::= KEY expr */ yytestcase(yyruleno==411); -{yygotominor.yy186 = yymsp[0].minor.yy186;} + case 327: /* expr ::= exprx */ yytestcase(yyruleno==327); + case 335: /* case_else ::= ELSE expr */ yytestcase(yyruleno==335); + case 337: /* case_operand ::= exprx */ yytestcase(yyruleno==337); + case 363: /* vinto ::= INTO expr */ yytestcase(yyruleno==363); + case 399: /* when_clause ::= WHEN expr */ yytestcase(yyruleno==399); + case 414: /* key_opt ::= KEY expr */ yytestcase(yyruleno==414); +{yygotominor.yy176 = yymsp[0].minor.yy176;} break; case 226: /* limit_opt ::= */ -{yygotominor.yy360 = nullptr;} +{yygotominor.yy4 = nullptr;} break; case 227: /* limit_opt ::= LIMIT expr */ { - yygotominor.yy360 = new SqliteLimit(yymsp[0].minor.yy186); - objectForTokens = yygotominor.yy360; + yygotominor.yy4 = new SqliteLimit(yymsp[0].minor.yy176); + objectForTokens = yygotominor.yy4; } break; case 228: /* limit_opt ::= LIMIT expr OFFSET expr */ { - yygotominor.yy360 = new SqliteLimit(yymsp[-2].minor.yy186, yymsp[0].minor.yy186, true); - objectForTokens = yygotominor.yy360; + yygotominor.yy4 = new SqliteLimit(yymsp[-2].minor.yy176, yymsp[0].minor.yy176, true); + objectForTokens = yygotominor.yy4; } break; case 229: /* limit_opt ::= LIMIT expr COMMA expr */ { - yygotominor.yy360 = new SqliteLimit(yymsp[-2].minor.yy186, yymsp[0].minor.yy186, false); - objectForTokens = yygotominor.yy360; + yygotominor.yy4 = new SqliteLimit(yymsp[-2].minor.yy176, yymsp[0].minor.yy176, false); + objectForTokens = yygotominor.yy4; } break; case 231: /* delete_stmt ::= with DELETE FROM fullname indexed_opt where_opt returning */ { - if (yymsp[-2].minor.yy300) + if (yymsp[-2].minor.yy224) { - if (!yymsp[-2].minor.yy300->indexedBy.isNull()) + if (!yymsp[-2].minor.yy224->indexedBy.isNull()) { - yygotominor.yy41 = new SqliteDelete( - yymsp[-3].minor.yy396->name1, - yymsp[-3].minor.yy396->name2, - yymsp[-2].minor.yy300->indexedBy, - yymsp[-1].minor.yy186, - yymsp[-6].minor.yy161, - *(yymsp[0].minor.yy27) + yygotominor.yy635 = new SqliteDelete( + yymsp[-3].minor.yy520->name1, + yymsp[-3].minor.yy520->name2, + yymsp[-2].minor.yy224->indexedBy, + yymsp[-1].minor.yy176, + yymsp[-6].minor.yy321, + *(yymsp[0].minor.yy421) ); } else { - yygotominor.yy41 = new SqliteDelete( - yymsp[-3].minor.yy396->name1, - yymsp[-3].minor.yy396->name2, - yymsp[-2].minor.yy300->notIndexedKw, - yymsp[-1].minor.yy186, - yymsp[-6].minor.yy161, - *(yymsp[0].minor.yy27) + yygotominor.yy635 = new SqliteDelete( + yymsp[-3].minor.yy520->name1, + yymsp[-3].minor.yy520->name2, + yymsp[-2].minor.yy224->notIndexedKw, + yymsp[-1].minor.yy176, + yymsp[-6].minor.yy321, + *(yymsp[0].minor.yy421) ); } - delete yymsp[-2].minor.yy300; + delete yymsp[-2].minor.yy224; } else { - yygotominor.yy41 = new SqliteDelete( - yymsp[-3].minor.yy396->name1, - yymsp[-3].minor.yy396->name2, + yygotominor.yy635 = new SqliteDelete( + yymsp[-3].minor.yy520->name1, + yymsp[-3].minor.yy520->name2, false, - yymsp[-1].minor.yy186, - yymsp[-6].minor.yy161, - *(yymsp[0].minor.yy27) + yymsp[-1].minor.yy176, + yymsp[-6].minor.yy321, + *(yymsp[0].minor.yy421) ); } - delete yymsp[-3].minor.yy396; - delete yymsp[0].minor.yy27; + delete yymsp[-3].minor.yy520; + delete yymsp[0].minor.yy421; // since it's used in trigger: - objectForTokens = yygotominor.yy41; + objectForTokens = yygotominor.yy635; } break; case 232: /* delete_stmt ::= with DELETE FROM */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteDelete* q = new SqliteDelete(); - q->with = yymsp[-2].minor.yy161; - yygotominor.yy41 = q; - objectForTokens = yygotominor.yy41; + q->with = yymsp[-2].minor.yy321; + yygotominor.yy635 = q; + objectForTokens = yygotominor.yy635; } break; case 233: /* delete_stmt ::= with DELETE FROM nm DOT */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteDelete* q = new SqliteDelete(); - q->with = yymsp[-4].minor.yy161; - q->database = *(yymsp[-1].minor.yy319); - yygotominor.yy41 = q; - objectForTokens = yygotominor.yy41; - delete yymsp[-1].minor.yy319; + q->with = yymsp[-4].minor.yy321; + q->database = *(yymsp[-1].minor.yy255); + yygotominor.yy635 = q; + objectForTokens = yygotominor.yy635; + delete yymsp[-1].minor.yy255; } break; case 234: /* delete_stmt ::= with DELETE FROM nm DOT ID_TAB */ @@ -4461,96 +4467,96 @@ static void yy_reduce( case 238: /* where_opt ::= WHERE */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy186 = new SqliteExpr(); + yygotominor.yy176 = new SqliteExpr(); } break; case 240: /* returning ::= RETURNING selcollist */ -{yygotominor.yy27 = yymsp[0].minor.yy27;} +{yygotominor.yy421 = yymsp[0].minor.yy421;} break; case 242: /* update_stmt ::= with UPDATE orconf fullname indexed_opt SET setlist from where_opt returning */ { - yygotominor.yy41 = new SqliteUpdate( - *(yymsp[-7].minor.yy136), - yymsp[-6].minor.yy396->name1, - yymsp[-6].minor.yy396->name2, - yymsp[-5].minor.yy300 ? yymsp[-5].minor.yy300->notIndexedKw : false, - yymsp[-5].minor.yy300 ? yymsp[-5].minor.yy300->indexedBy : QString(), - *(yymsp[-3].minor.yy621), - yymsp[-2].minor.yy553, - yymsp[-1].minor.yy186, - yymsp[-9].minor.yy161, - *(yymsp[0].minor.yy27) + yygotominor.yy635 = new SqliteUpdate( + *(yymsp[-7].minor.yy66), + yymsp[-6].minor.yy520->name1, + yymsp[-6].minor.yy520->name2, + yymsp[-5].minor.yy224 ? yymsp[-5].minor.yy224->notIndexedKw : false, + yymsp[-5].minor.yy224 ? yymsp[-5].minor.yy224->indexedBy : QString(), + *(yymsp[-3].minor.yy617), + yymsp[-2].minor.yy335, + yymsp[-1].minor.yy176, + yymsp[-9].minor.yy321, + *(yymsp[0].minor.yy421) ); - delete yymsp[-7].minor.yy136; - delete yymsp[-6].minor.yy396; - delete yymsp[-3].minor.yy621; - delete yymsp[0].minor.yy27; - if (yymsp[-5].minor.yy300) - delete yymsp[-5].minor.yy300; + delete yymsp[-7].minor.yy66; + delete yymsp[-6].minor.yy520; + delete yymsp[-3].minor.yy617; + delete yymsp[0].minor.yy421; + if (yymsp[-5].minor.yy224) + delete yymsp[-5].minor.yy224; // since it's used in trigger: - objectForTokens = yygotominor.yy41; + objectForTokens = yygotominor.yy635; } break; case 243: /* update_stmt ::= with UPDATE orconf */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteUpdate* q = new SqliteUpdate(); - q->with = yymsp[-2].minor.yy161; - yygotominor.yy41 = q; - objectForTokens = yygotominor.yy41; - delete yymsp[0].minor.yy136; + q->with = yymsp[-2].minor.yy321; + yygotominor.yy635 = q; + objectForTokens = yygotominor.yy635; + delete yymsp[0].minor.yy66; } break; case 244: /* update_stmt ::= with UPDATE orconf nm DOT */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteUpdate* q = new SqliteUpdate(); - q->with = yymsp[-4].minor.yy161; - q->database = *(yymsp[-1].minor.yy319); - yygotominor.yy41 = q; - objectForTokens = yygotominor.yy41; - delete yymsp[-2].minor.yy136; - delete yymsp[-1].minor.yy319; + q->with = yymsp[-4].minor.yy321; + q->database = *(yymsp[-1].minor.yy255); + yygotominor.yy635 = q; + objectForTokens = yygotominor.yy635; + delete yymsp[-2].minor.yy66; + delete yymsp[-1].minor.yy255; } break; case 247: /* setlist ::= setlist COMMA nm EQ expr */ { - yymsp[-4].minor.yy621->append(ParserSetValue(*(yymsp[-2].minor.yy319), yymsp[0].minor.yy186)); - yygotominor.yy621 = yymsp[-4].minor.yy621; - delete yymsp[-2].minor.yy319; + yymsp[-4].minor.yy617->append(ParserSetValue(*(yymsp[-2].minor.yy255), yymsp[0].minor.yy176)); + yygotominor.yy617 = yymsp[-4].minor.yy617; + delete yymsp[-2].minor.yy255; } break; case 248: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ { - yymsp[-6].minor.yy621->append(ParserSetValue(*(yymsp[-3].minor.yy173), yymsp[0].minor.yy186)); - yygotominor.yy621 = yymsp[-6].minor.yy621; - delete yymsp[-3].minor.yy173; + yymsp[-6].minor.yy617->append(ParserSetValue(*(yymsp[-3].minor.yy336), yymsp[0].minor.yy176)); + yygotominor.yy617 = yymsp[-6].minor.yy617; + delete yymsp[-3].minor.yy336; } break; case 249: /* setlist ::= nm EQ expr */ { - yygotominor.yy621 = new ParserSetValueList(); - yygotominor.yy621->append(ParserSetValue(*(yymsp[-2].minor.yy319), yymsp[0].minor.yy186)); - delete yymsp[-2].minor.yy319; + yygotominor.yy617 = new ParserSetValueList(); + yygotominor.yy617->append(ParserSetValue(*(yymsp[-2].minor.yy255), yymsp[0].minor.yy176)); + delete yymsp[-2].minor.yy255; } break; case 250: /* setlist ::= LP idlist RP EQ expr */ { - yygotominor.yy621 = new ParserSetValueList(); - yygotominor.yy621->append(ParserSetValue(*(yymsp[-3].minor.yy173), yymsp[0].minor.yy186)); - delete yymsp[-3].minor.yy173; + yygotominor.yy617 = new ParserSetValueList(); + yygotominor.yy617->append(ParserSetValue(*(yymsp[-3].minor.yy336), yymsp[0].minor.yy176)); + delete yymsp[-3].minor.yy336; } break; case 251: /* setlist ::= */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy621 = new ParserSetValueList(); + yygotominor.yy617 = new ParserSetValueList(); } break; case 252: /* setlist ::= setlist COMMA */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy621 = yymsp[-1].minor.yy621; + yygotominor.yy617 = yymsp[-1].minor.yy617; } break; case 253: /* setlist ::= setlist COMMA ID_COL */ @@ -4559,29 +4565,29 @@ static void yy_reduce( } break; case 255: /* idlist_opt ::= */ -{yygotominor.yy173 = new QStringList();} +{yygotominor.yy336 = new QStringList();} break; case 256: /* idlist_opt ::= LP idlist RP */ -{yygotominor.yy173 = yymsp[-1].minor.yy173;} +{yygotominor.yy336 = yymsp[-1].minor.yy336;} break; case 257: /* idlist ::= idlist COMMA nm */ { - yygotominor.yy173 = yymsp[-2].minor.yy173; - *(yygotominor.yy173) << *(yymsp[0].minor.yy319); - delete yymsp[0].minor.yy319; + yygotominor.yy336 = yymsp[-2].minor.yy336; + *(yygotominor.yy336) << *(yymsp[0].minor.yy255); + delete yymsp[0].minor.yy255; } break; case 258: /* idlist ::= nm */ { - yygotominor.yy173 = new QStringList(); - *(yygotominor.yy173) << *(yymsp[0].minor.yy319); - delete yymsp[0].minor.yy319; + yygotominor.yy336 = new QStringList(); + *(yygotominor.yy336) << *(yymsp[0].minor.yy255); + delete yymsp[0].minor.yy255; } break; case 259: /* idlist ::= */ { parserContext->minorErrorBeforeNextToken("Syntax error"); - yygotominor.yy173 = new QStringList(); + yygotominor.yy336 = new QStringList(); } break; case 260: /* idlist ::= idlist COMMA ID_COL */ @@ -4591,1211 +4597,1230 @@ static void yy_reduce( break; case 263: /* insert_stmt ::= with insert_cmd INTO fullname idlist_opt select upsert returning */ { - yygotominor.yy41 = new SqliteInsert( - yymsp[-6].minor.yy308->replace, - yymsp[-6].minor.yy308->orConflict, - yymsp[-4].minor.yy396->name1, - yymsp[-4].minor.yy396->name2, - *(yymsp[-3].minor.yy173), - yymsp[-2].minor.yy297, - yymsp[-7].minor.yy161, - yymsp[-1].minor.yy332, - *(yymsp[0].minor.yy27) + yygotominor.yy635 = new SqliteInsert( + yymsp[-6].minor.yy281->replace, + yymsp[-6].minor.yy281->orConflict, + yymsp[-4].minor.yy520->name1, + yymsp[-4].minor.yy520->name2, + *(yymsp[-3].minor.yy336), + yymsp[-2].minor.yy73, + yymsp[-7].minor.yy321, + yymsp[-1].minor.yy16, + *(yymsp[0].minor.yy421) ); - delete yymsp[-4].minor.yy396; - delete yymsp[-6].minor.yy308; - delete yymsp[-3].minor.yy173; - delete yymsp[0].minor.yy27; + delete yymsp[-4].minor.yy520; + delete yymsp[-6].minor.yy281; + delete yymsp[-3].minor.yy336; + delete yymsp[0].minor.yy421; // since it's used in trigger: - objectForTokens = yygotominor.yy41; + objectForTokens = yygotominor.yy635; } break; case 264: /* insert_stmt ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES returning */ { - yygotominor.yy41 = new SqliteInsert( - yymsp[-6].minor.yy308->replace, - yymsp[-6].minor.yy308->orConflict, - yymsp[-4].minor.yy396->name1, - yymsp[-4].minor.yy396->name2, - *(yymsp[-3].minor.yy173), - yymsp[-7].minor.yy161, - *(yymsp[0].minor.yy27) + yygotominor.yy635 = new SqliteInsert( + yymsp[-6].minor.yy281->replace, + yymsp[-6].minor.yy281->orConflict, + yymsp[-4].minor.yy520->name1, + yymsp[-4].minor.yy520->name2, + *(yymsp[-3].minor.yy336), + yymsp[-7].minor.yy321, + *(yymsp[0].minor.yy421) ); - delete yymsp[-4].minor.yy396; - delete yymsp[-6].minor.yy308; - delete yymsp[-3].minor.yy173; - delete yymsp[0].minor.yy27; + delete yymsp[-4].minor.yy520; + delete yymsp[-6].minor.yy281; + delete yymsp[-3].minor.yy336; + delete yymsp[0].minor.yy421; // since it's used in trigger: - objectForTokens = yygotominor.yy41; + objectForTokens = yygotominor.yy635; } break; - case 265: /* insert_stmt ::= with insert_cmd INTO */ + case 265: /* insert_stmt ::= with insert_cmd INTO fullname LP idlist rp_opt */ +{ + parserContext->minorErrorBeforeNextToken("Syntax error"); + yygotominor.yy635 = new SqliteInsert( + yymsp[-5].minor.yy281->replace, + yymsp[-5].minor.yy281->orConflict, + yymsp[-3].minor.yy520->name1, + yymsp[-3].minor.yy520->name2, + *(yymsp[-1].minor.yy336), + yymsp[-6].minor.yy321, + QList<SqliteResultColumn*>() + ); + objectForTokens = yygotominor.yy635; + delete yymsp[-3].minor.yy520; + delete yymsp[-1].minor.yy336; + delete yymsp[-5].minor.yy281; + delete yymsp[0].minor.yy35; + } + break; + case 266: /* insert_stmt ::= with insert_cmd INTO */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteInsert* q = new SqliteInsert(); - q->replaceKw = yymsp[-1].minor.yy308->replace; - q->onConflict = yymsp[-1].minor.yy308->orConflict; - q->with = yymsp[-2].minor.yy161; - yygotominor.yy41 = q; - objectForTokens = yygotominor.yy41; - delete yymsp[-1].minor.yy308; + q->replaceKw = yymsp[-1].minor.yy281->replace; + q->onConflict = yymsp[-1].minor.yy281->orConflict; + q->with = yymsp[-2].minor.yy321; + yygotominor.yy635 = q; + objectForTokens = yygotominor.yy635; + delete yymsp[-1].minor.yy281; } break; - case 266: /* insert_stmt ::= with insert_cmd INTO nm DOT */ + case 267: /* insert_stmt ::= with insert_cmd INTO nm DOT */ { parserContext->minorErrorBeforeNextToken("Syntax error"); SqliteInsert* q = new SqliteInsert(); - q->replaceKw = yymsp[-3].minor.yy308->replace; - q->onConflict = yymsp[-3].minor.yy308->orConflict; - q->with = yymsp[-4].minor.yy161; - q->database = *(yymsp[-1].minor.yy319); - yygotominor.yy41 = q; - objectForTokens = yygotominor.yy41; - delete yymsp[-3].minor.yy308; - delete yymsp[-1].minor.yy319; + q->replaceKw = yymsp[-3].minor.yy281->replace; + q->onConflict = yymsp[-3].minor.yy281->orConflict; + q->with = yymsp[-4].minor.yy321; + q->database = *(yymsp[-1].minor.yy255); + yygotominor.yy635 = q; + objectForTokens = yygotominor.yy635; + delete yymsp[-3].minor.yy281; + delete yymsp[-1].minor.yy255; } break; - case 267: /* insert_stmt ::= with insert_cmd INTO ID_DB|ID_TAB */ + case 268: /* insert_stmt ::= with insert_cmd INTO ID_DB|ID_TAB */ { yy_destructor(yypParser,249,&yymsp[-3].minor); yy_destructor(yypParser,283,&yymsp[-2].minor); } break; - case 268: /* insert_stmt ::= with insert_cmd INTO nm DOT ID_TAB */ + case 269: /* insert_stmt ::= with insert_cmd INTO nm DOT ID_TAB */ { yy_destructor(yypParser,249,&yymsp[-5].minor); yy_destructor(yypParser,283,&yymsp[-4].minor); yy_destructor(yypParser,203,&yymsp[-2].minor); } break; - case 269: /* insert_cmd ::= INSERT orconf */ + case 270: /* insert_cmd ::= INSERT orconf */ { - yygotominor.yy308 = new ParserStubInsertOrReplace(false, *(yymsp[0].minor.yy136)); - delete yymsp[0].minor.yy136; + yygotominor.yy281 = new ParserStubInsertOrReplace(false, *(yymsp[0].minor.yy66)); + delete yymsp[0].minor.yy66; } break; - case 270: /* insert_cmd ::= REPLACE */ -{yygotominor.yy308 = new ParserStubInsertOrReplace(true);} + case 271: /* insert_cmd ::= REPLACE */ +{yygotominor.yy281 = new ParserStubInsertOrReplace(true);} break; - case 271: /* upsert ::= */ + case 272: /* upsert ::= */ { - yygotominor.yy332 = nullptr; + yygotominor.yy16 = nullptr; } break; - case 272: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */ + case 273: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */ { - yygotominor.yy332 = new SqliteUpsert(*(yymsp[-7].minor.yy226), yymsp[-5].minor.yy186, *(yymsp[-1].minor.yy621), yymsp[0].minor.yy186); - delete yymsp[-7].minor.yy226; - delete yymsp[-1].minor.yy621; - objectForTokens = yygotominor.yy332; + yygotominor.yy16 = new SqliteUpsert(*(yymsp[-7].minor.yy499), yymsp[-5].minor.yy176, *(yymsp[-1].minor.yy617), yymsp[0].minor.yy176); + delete yymsp[-7].minor.yy499; + delete yymsp[-1].minor.yy617; + objectForTokens = yygotominor.yy16; } break; - case 273: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */ + case 274: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */ { - yygotominor.yy332 = new SqliteUpsert(*(yymsp[-4].minor.yy226), yymsp[-2].minor.yy186); - delete yymsp[-4].minor.yy226; - objectForTokens = yygotominor.yy332; + yygotominor.yy16 = new SqliteUpsert(*(yymsp[-4].minor.yy499), yymsp[-2].minor.yy176); + delete yymsp[-4].minor.yy499; + objectForTokens = yygotominor.yy16; } break; - case 274: /* upsert ::= ON CONFLICT DO NOTHING */ + case 275: /* upsert ::= ON CONFLICT DO NOTHING */ { - yygotominor.yy332 = new SqliteUpsert(); - objectForTokens = yygotominor.yy332; + yygotominor.yy16 = new SqliteUpsert(); + objectForTokens = yygotominor.yy16; } break; - case 275: /* exprx ::= expr not_opt IN ID_DB */ + case 276: /* exprx ::= expr not_opt IN ID_DB */ { yy_destructor(yypParser,227,&yymsp[-3].minor); } break; - case 276: /* exprx ::= expr not_opt IN nm DOT ID_TAB */ - case 277: /* exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN */ yytestcase(yyruleno==277); + case 277: /* exprx ::= expr not_opt IN nm DOT ID_TAB */ + case 278: /* exprx ::= ID_DB|ID_TAB|ID_COL|ID_FN */ yytestcase(yyruleno==278); { yy_destructor(yypParser,227,&yymsp[-5].minor); yy_destructor(yypParser,203,&yymsp[-2].minor); } break; - case 278: /* exprx ::= tnm DOT ID_TAB|ID_COL */ + case 279: /* exprx ::= tnm DOT ID_TAB|ID_COL */ { yy_destructor(yypParser,235,&yymsp[-2].minor); } break; - case 279: /* exprx ::= tnm DOT nm DOT ID_COL */ + case 280: /* exprx ::= tnm DOT nm DOT ID_COL */ { yy_destructor(yypParser,235,&yymsp[-4].minor); yy_destructor(yypParser,203,&yymsp[-2].minor); } break; - case 280: /* exprx ::= expr COLLATE ID_COLLATE */ - case 281: /* exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP */ yytestcase(yyruleno==281); + case 281: /* exprx ::= expr COLLATE ID_COLLATE */ + case 282: /* exprx ::= RAISE LP raisetype COMMA ID_ERR_MSG RP */ yytestcase(yyruleno==282); { yy_destructor(yypParser,227,&yymsp[-2].minor); } break; - case 282: /* exprx ::= CTIME_KW */ + case 283: /* exprx ::= CTIME_KW */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initCTime(yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initCTime(yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy176; } break; - case 283: /* exprx ::= LP nexprlist RP */ + case 284: /* exprx ::= LP nexprlist RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initRowValue(*(yymsp[-1].minor.yy615)); - delete yymsp[-1].minor.yy615; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initRowValue(*(yymsp[-1].minor.yy567)); + delete yymsp[-1].minor.yy567; + objectForTokens = yygotominor.yy176; } break; - case 284: /* exprx ::= tnm */ + case 285: /* exprx ::= tnm */ { - yygotominor.yy186 = new SqliteExpr(); - if (yymsp[0].minor.yy380->isLiteral()) - yygotominor.yy186->initLiteral(yymsp[0].minor.yy380->toLiteral()); + yygotominor.yy176 = new SqliteExpr(); + if (yymsp[0].minor.yy542->isLiteral()) + yygotominor.yy176->initLiteral(yymsp[0].minor.yy542->toLiteral()); else - yygotominor.yy186->initId(yymsp[0].minor.yy380->toName()); + yygotominor.yy176->initId(yymsp[0].minor.yy542->toName()); //parserContext->errorBeforeLastToken("Syntax error <expected literal value>"); - delete yymsp[0].minor.yy380; - objectForTokens = yygotominor.yy186; + delete yymsp[0].minor.yy542; + objectForTokens = yygotominor.yy176; } break; - case 285: /* exprx ::= tnm DOT nm */ + case 286: /* exprx ::= tnm DOT nm */ { - yygotominor.yy186 = new SqliteExpr(); - if (yymsp[-2].minor.yy380->isName()) - yygotominor.yy186->initId(yymsp[-2].minor.yy380->toName(), *(yymsp[0].minor.yy319)); + yygotominor.yy176 = new SqliteExpr(); + if (yymsp[-2].minor.yy542->isName()) + yygotominor.yy176->initId(yymsp[-2].minor.yy542->toName(), *(yymsp[0].minor.yy255)); else parserContext->errorAtToken("Syntax error <expected name>", -3); - delete yymsp[-2].minor.yy380; - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy186; + delete yymsp[-2].minor.yy542; + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy176; } break; - case 286: /* exprx ::= tnm DOT */ + case 287: /* exprx ::= tnm DOT */ { - yygotominor.yy186 = new SqliteExpr(); - objectForTokens = yygotominor.yy186; - if (yymsp[-1].minor.yy380->isName()) + yygotominor.yy176 = new SqliteExpr(); + objectForTokens = yygotominor.yy176; + if (yymsp[-1].minor.yy542->isName()) { - yygotominor.yy186->initId(yymsp[-1].minor.yy380->toName(), QString()); + yygotominor.yy176->initId(yymsp[-1].minor.yy542->toName(), QString()); parserContext->minorErrorAfterLastToken("Syntax error <expr>"); } else parserContext->errorAtToken("Syntax error <expected name>", -3); - delete yymsp[-1].minor.yy380; + delete yymsp[-1].minor.yy542; } break; - case 287: /* exprx ::= tnm DOT nm DOT nm */ + case 288: /* exprx ::= tnm DOT nm DOT nm */ { - yygotominor.yy186 = new SqliteExpr(); - if (yymsp[-4].minor.yy380->isName()) - yygotominor.yy186->initId(yymsp[-4].minor.yy380->toName(), *(yymsp[-2].minor.yy319), *(yymsp[0].minor.yy319)); + yygotominor.yy176 = new SqliteExpr(); + if (yymsp[-4].minor.yy542->isName()) + yygotominor.yy176->initId(yymsp[-4].minor.yy542->toName(), *(yymsp[-2].minor.yy255), *(yymsp[0].minor.yy255)); else parserContext->errorAtToken("Syntax error <expected name>", -5); - delete yymsp[-4].minor.yy380; - delete yymsp[-2].minor.yy319; - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy186; + delete yymsp[-4].minor.yy542; + delete yymsp[-2].minor.yy255; + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy176; } break; - case 288: /* exprx ::= tnm DOT nm DOT */ + case 289: /* exprx ::= tnm DOT nm DOT */ { - yygotominor.yy186 = new SqliteExpr(); - objectForTokens = yygotominor.yy186; - if (yymsp[-3].minor.yy380->isName()) + yygotominor.yy176 = new SqliteExpr(); + objectForTokens = yygotominor.yy176; + if (yymsp[-3].minor.yy542->isName()) { - yygotominor.yy186->initId(yymsp[-3].minor.yy380->toName(), *(yymsp[-1].minor.yy319), QString()); + yygotominor.yy176->initId(yymsp[-3].minor.yy542->toName(), *(yymsp[-1].minor.yy255), QString()); parserContext->minorErrorAfterLastToken("Syntax error <expr>"); } else parserContext->errorAtToken("Syntax error <expected name>", -5); - delete yymsp[-3].minor.yy380; - delete yymsp[-1].minor.yy319; + delete yymsp[-3].minor.yy542; + delete yymsp[-1].minor.yy255; } break; - case 289: /* exprx ::= VARIABLE */ + case 290: /* exprx ::= VARIABLE */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initBindParam(yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initBindParam(yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy176; } break; - case 290: /* exprx ::= expr COLLATE ids */ + case 291: /* exprx ::= expr COLLATE ids */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initCollate(yymsp[-2].minor.yy186, *(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initCollate(yymsp[-2].minor.yy176, *(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy176; } break; - case 291: /* exprx ::= CAST LP expr AS typetoken RP */ + case 292: /* exprx ::= CAST LP expr AS typetoken RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initCast(yymsp[-3].minor.yy186, yymsp[-1].minor.yy267); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initCast(yymsp[-3].minor.yy176, yymsp[-1].minor.yy601); + objectForTokens = yygotominor.yy176; } break; - case 292: /* exprx ::= ID LP distinct exprlist RP */ + case 293: /* exprx ::= ID LP distinct exprlist RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initFunction(stripObjName(yymsp[-4].minor.yy0->value), *(yymsp[-2].minor.yy130), *(yymsp[-1].minor.yy615)); - delete yymsp[-2].minor.yy130; - delete yymsp[-1].minor.yy615; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initFunction(stripObjName(yymsp[-4].minor.yy0->value), *(yymsp[-2].minor.yy562), *(yymsp[-1].minor.yy567)); + delete yymsp[-2].minor.yy562; + delete yymsp[-1].minor.yy567; + objectForTokens = yygotominor.yy176; } break; - case 293: /* exprx ::= ID LP STAR RP */ + case 294: /* exprx ::= ID LP STAR RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initFunction(stripObjName(yymsp[-3].minor.yy0->value), true); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initFunction(stripObjName(yymsp[-3].minor.yy0->value), true); + objectForTokens = yygotominor.yy176; } break; - case 294: /* exprx ::= expr AND expr */ - case 295: /* exprx ::= expr OR expr */ yytestcase(yyruleno==295); - case 296: /* exprx ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==296); - case 297: /* exprx ::= expr EQ|NE expr */ yytestcase(yyruleno==297); - case 298: /* exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==298); - case 299: /* exprx ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==299); - case 300: /* exprx ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==300); - case 301: /* exprx ::= expr CONCAT expr */ yytestcase(yyruleno==301); + case 295: /* exprx ::= expr AND expr */ + case 296: /* exprx ::= expr OR expr */ yytestcase(yyruleno==296); + case 297: /* exprx ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==297); + case 298: /* exprx ::= expr EQ|NE expr */ yytestcase(yyruleno==298); + case 299: /* exprx ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==299); + case 300: /* exprx ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==300); + case 301: /* exprx ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==301); + case 302: /* exprx ::= expr CONCAT expr */ yytestcase(yyruleno==302); { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initBinOp(yymsp[-2].minor.yy186, yymsp[-1].minor.yy0->value, yymsp[0].minor.yy186); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initBinOp(yymsp[-2].minor.yy176, yymsp[-1].minor.yy0->value, yymsp[0].minor.yy176); + objectForTokens = yygotominor.yy176; } break; - case 302: /* exprx ::= expr not_opt likeop expr */ + case 303: /* exprx ::= expr not_opt likeop expr */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initLike(yymsp[-3].minor.yy186, *(yymsp[-2].minor.yy225), *(yymsp[-1].minor.yy274), yymsp[0].minor.yy186); - delete yymsp[-2].minor.yy225; - delete yymsp[-1].minor.yy274; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initLike(yymsp[-3].minor.yy176, *(yymsp[-2].minor.yy35), *(yymsp[-1].minor.yy104), yymsp[0].minor.yy176); + delete yymsp[-2].minor.yy35; + delete yymsp[-1].minor.yy104; + objectForTokens = yygotominor.yy176; } break; - case 303: /* exprx ::= expr not_opt likeop expr ESCAPE expr */ + case 304: /* exprx ::= expr not_opt likeop expr ESCAPE expr */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initLike(yymsp[-5].minor.yy186, *(yymsp[-4].minor.yy225), *(yymsp[-3].minor.yy274), yymsp[-2].minor.yy186, yymsp[0].minor.yy186); - delete yymsp[-4].minor.yy225; - delete yymsp[-3].minor.yy274; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initLike(yymsp[-5].minor.yy176, *(yymsp[-4].minor.yy35), *(yymsp[-3].minor.yy104), yymsp[-2].minor.yy176, yymsp[0].minor.yy176); + delete yymsp[-4].minor.yy35; + delete yymsp[-3].minor.yy104; + objectForTokens = yygotominor.yy176; } break; - case 304: /* exprx ::= expr ISNULL|NOTNULL */ + case 305: /* exprx ::= expr ISNULL|NOTNULL */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initNull(yymsp[-1].minor.yy186, yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initNull(yymsp[-1].minor.yy176, yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy176; } break; - case 305: /* exprx ::= expr NOT NULL */ + case 306: /* exprx ::= expr NOT NULL */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initNull(yymsp[-2].minor.yy186, "NOT NULL"); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initNull(yymsp[-2].minor.yy176, "NOT NULL"); + objectForTokens = yygotominor.yy176; } break; - case 306: /* exprx ::= expr IS not_opt expr */ + case 307: /* exprx ::= expr IS not_opt expr */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initIs(yymsp[-3].minor.yy186, *(yymsp[-1].minor.yy225), yymsp[0].minor.yy186); - delete yymsp[-1].minor.yy225; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initIs(yymsp[-3].minor.yy176, *(yymsp[-1].minor.yy35), yymsp[0].minor.yy176); + delete yymsp[-1].minor.yy35; + objectForTokens = yygotominor.yy176; } break; - case 307: /* exprx ::= expr IS NOT DISTINCT FROM expr */ + case 308: /* exprx ::= expr IS NOT DISTINCT FROM expr */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initDistinct(yymsp[-5].minor.yy186, true, yymsp[0].minor.yy186); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initDistinct(yymsp[-5].minor.yy176, true, yymsp[0].minor.yy176); + objectForTokens = yygotominor.yy176; } break; - case 308: /* exprx ::= expr IS DISTINCT FROM expr */ + case 309: /* exprx ::= expr IS DISTINCT FROM expr */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initDistinct(yymsp[-4].minor.yy186, false, yymsp[0].minor.yy186); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initDistinct(yymsp[-4].minor.yy176, false, yymsp[0].minor.yy176); + objectForTokens = yygotominor.yy176; } break; - case 309: /* exprx ::= NOT expr */ + case 310: /* exprx ::= NOT expr */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initUnaryOp(yymsp[0].minor.yy186, yymsp[-1].minor.yy0->value); + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initUnaryOp(yymsp[0].minor.yy176, yymsp[-1].minor.yy0->value); } break; - case 310: /* exprx ::= BITNOT expr */ - case 312: /* exprx ::= PLUS expr */ yytestcase(yyruleno==312); + case 311: /* exprx ::= BITNOT expr */ + case 313: /* exprx ::= PLUS expr */ yytestcase(yyruleno==313); { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initUnaryOp(yymsp[0].minor.yy186, yymsp[-1].minor.yy0->value); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initUnaryOp(yymsp[0].minor.yy176, yymsp[-1].minor.yy0->value); + objectForTokens = yygotominor.yy176; } break; - case 311: /* exprx ::= MINUS expr */ + case 312: /* exprx ::= MINUS expr */ { - yygotominor.yy186 = new SqliteExpr(); - if (yymsp[0].minor.yy186->mode == SqliteExpr::Mode::LITERAL_VALUE && + yygotominor.yy176 = new SqliteExpr(); + if (yymsp[0].minor.yy176->mode == SqliteExpr::Mode::LITERAL_VALUE && parserContext->isCandidateForMaxNegativeNumber() && - yymsp[0].minor.yy186->literalValue == static_cast<qint64>(0L)) + yymsp[0].minor.yy176->literalValue == static_cast<qint64>(0L)) { - yygotominor.yy186->initLiteral(std::numeric_limits<qint64>::min()); - delete yymsp[0].minor.yy186; + yygotominor.yy176->initLiteral(std::numeric_limits<qint64>::min()); + delete yymsp[0].minor.yy176; } else { - yygotominor.yy186->initUnaryOp(yymsp[0].minor.yy186, yymsp[-1].minor.yy0->value); + yygotominor.yy176->initUnaryOp(yymsp[0].minor.yy176, yymsp[-1].minor.yy0->value); } - objectForTokens = yygotominor.yy186; + objectForTokens = yygotominor.yy176; } break; - case 313: /* exprx ::= expr PTR expr */ + case 314: /* exprx ::= expr PTR expr */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initPtrOp(yymsp[-2].minor.yy186, yymsp[-1].minor.yy0->value, yymsp[0].minor.yy186); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initPtrOp(yymsp[-2].minor.yy176, yymsp[-1].minor.yy0->value, yymsp[0].minor.yy176); + objectForTokens = yygotominor.yy176; } break; - case 314: /* exprx ::= expr not_opt BETWEEN expr AND expr */ + case 315: /* exprx ::= expr not_opt BETWEEN expr AND expr */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initBetween(yymsp[-5].minor.yy186, *(yymsp[-4].minor.yy225), yymsp[-2].minor.yy186, yymsp[0].minor.yy186); - delete yymsp[-4].minor.yy225; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initBetween(yymsp[-5].minor.yy176, *(yymsp[-4].minor.yy35), yymsp[-2].minor.yy176, yymsp[0].minor.yy176); + delete yymsp[-4].minor.yy35; + objectForTokens = yygotominor.yy176; } break; - case 315: /* exprx ::= expr not_opt IN LP exprlist RP */ + case 316: /* exprx ::= expr not_opt IN LP exprlist RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initIn(yymsp[-5].minor.yy186, *(yymsp[-4].minor.yy225), *(yymsp[-1].minor.yy615)); - delete yymsp[-4].minor.yy225; - delete yymsp[-1].minor.yy615; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initIn(yymsp[-5].minor.yy176, *(yymsp[-4].minor.yy35), *(yymsp[-1].minor.yy567)); + delete yymsp[-4].minor.yy35; + delete yymsp[-1].minor.yy567; + objectForTokens = yygotominor.yy176; } break; - case 316: /* exprx ::= LP select RP */ + case 317: /* exprx ::= LP select RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initSubSelect(yymsp[-1].minor.yy297); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initSubSelect(yymsp[-1].minor.yy73); + objectForTokens = yygotominor.yy176; } break; - case 317: /* exprx ::= expr not_opt IN LP select RP */ + case 318: /* exprx ::= expr not_opt IN LP select RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initIn(yymsp[-5].minor.yy186, *(yymsp[-4].minor.yy225), yymsp[-1].minor.yy297); - delete yymsp[-4].minor.yy225; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initIn(yymsp[-5].minor.yy176, *(yymsp[-4].minor.yy35), yymsp[-1].minor.yy73); + delete yymsp[-4].minor.yy35; + objectForTokens = yygotominor.yy176; } break; - case 318: /* exprx ::= expr not_opt IN nm dbnm */ + case 319: /* exprx ::= expr not_opt IN nm dbnm */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initIn(yymsp[-4].minor.yy186, *(yymsp[-3].minor.yy225), *(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); - delete yymsp[-3].minor.yy225; - delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initIn(yymsp[-4].minor.yy176, *(yymsp[-3].minor.yy35), *(yymsp[-1].minor.yy255), *(yymsp[0].minor.yy255)); + delete yymsp[-3].minor.yy35; + delete yymsp[-1].minor.yy255; + objectForTokens = yygotominor.yy176; } break; - case 319: /* exprx ::= EXISTS LP select RP */ + case 320: /* exprx ::= EXISTS LP select RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initExists(yymsp[-1].minor.yy297); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initExists(yymsp[-1].minor.yy73); + objectForTokens = yygotominor.yy176; } break; - case 320: /* exprx ::= CASE case_operand case_exprlist case_else END */ + case 321: /* exprx ::= CASE case_operand case_exprlist case_else END */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initCase(yymsp[-3].minor.yy186, *(yymsp[-2].minor.yy615), yymsp[-1].minor.yy186); - delete yymsp[-2].minor.yy615; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initCase(yymsp[-3].minor.yy176, *(yymsp[-2].minor.yy567), yymsp[-1].minor.yy176); + delete yymsp[-2].minor.yy567; + objectForTokens = yygotominor.yy176; } break; - case 321: /* exprx ::= RAISE LP IGNORE RP */ + case 322: /* exprx ::= RAISE LP IGNORE RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initRaise(yymsp[-1].minor.yy0->value); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initRaise(yymsp[-1].minor.yy0->value); + objectForTokens = yygotominor.yy176; } break; - case 322: /* exprx ::= RAISE LP raisetype COMMA nm RP */ + case 323: /* exprx ::= RAISE LP raisetype COMMA nm RP */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initRaise(yymsp[-3].minor.yy0->value, *(yymsp[-1].minor.yy319)); - delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initRaise(yymsp[-3].minor.yy0->value, *(yymsp[-1].minor.yy255)); + delete yymsp[-1].minor.yy255; + objectForTokens = yygotominor.yy176; } break; - case 323: /* exprx ::= ID LP distinct exprlist RP filter_over */ + case 324: /* exprx ::= ID LP distinct exprlist RP filter_over */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initWindowFunction(stripObjName(yymsp[-5].minor.yy0->value), *(yymsp[-3].minor.yy130), *(yymsp[-2].minor.yy615), yymsp[0].minor.yy181); - delete yymsp[-3].minor.yy130; - delete yymsp[-2].minor.yy615; - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initWindowFunction(stripObjName(yymsp[-5].minor.yy0->value), *(yymsp[-3].minor.yy562), *(yymsp[-2].minor.yy567), yymsp[0].minor.yy487); + delete yymsp[-3].minor.yy562; + delete yymsp[-2].minor.yy567; + objectForTokens = yygotominor.yy176; } break; - case 324: /* exprx ::= ID LP STAR RP filter_over */ + case 325: /* exprx ::= ID LP STAR RP filter_over */ { - yygotominor.yy186 = new SqliteExpr(); - yygotominor.yy186->initWindowFunction(stripObjName(yymsp[-4].minor.yy0->value), yymsp[0].minor.yy181); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + yygotominor.yy176->initWindowFunction(stripObjName(yymsp[-4].minor.yy0->value), yymsp[0].minor.yy487); + objectForTokens = yygotominor.yy176; } break; - case 325: /* expr ::= */ + case 326: /* expr ::= */ { - yygotominor.yy186 = new SqliteExpr(); - objectForTokens = yygotominor.yy186; + yygotominor.yy176 = new SqliteExpr(); + objectForTokens = yygotominor.yy176; parserContext->minorErrorAfterLastToken("Syntax error <expr>"); } break; - case 329: /* likeop ::= LIKE_KW|MATCH */ -{yygotominor.yy274 = new SqliteExpr::LikeOp(SqliteExpr::likeOp(yymsp[0].minor.yy0->value));} + case 332: /* likeop ::= LIKE_KW|MATCH */ +{yygotominor.yy104 = new SqliteExpr::LikeOp(SqliteExpr::likeOp(yymsp[0].minor.yy0->value));} break; - case 330: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ + case 333: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { - yymsp[-4].minor.yy615->append(yymsp[-2].minor.yy186); - yymsp[-4].minor.yy615->append(yymsp[0].minor.yy186); - yygotominor.yy615 = yymsp[-4].minor.yy615; + yymsp[-4].minor.yy567->append(yymsp[-2].minor.yy176); + yymsp[-4].minor.yy567->append(yymsp[0].minor.yy176); + yygotominor.yy567 = yymsp[-4].minor.yy567; } break; - case 331: /* case_exprlist ::= WHEN expr THEN expr */ + case 334: /* case_exprlist ::= WHEN expr THEN expr */ { - yygotominor.yy615 = new ParserExprList(); - yygotominor.yy615->append(yymsp[-2].minor.yy186); - yygotominor.yy615->append(yymsp[0].minor.yy186); + yygotominor.yy567 = new ParserExprList(); + yygotominor.yy567->append(yymsp[-2].minor.yy176); + yygotominor.yy567->append(yymsp[0].minor.yy176); } break; - case 338: /* nexprlist ::= nexprlist COMMA expr */ + case 341: /* nexprlist ::= nexprlist COMMA expr */ { - yymsp[-2].minor.yy615->append(yymsp[0].minor.yy186); - yygotominor.yy615 = yymsp[-2].minor.yy615; + yymsp[-2].minor.yy567->append(yymsp[0].minor.yy176); + yygotominor.yy567 = yymsp[-2].minor.yy567; DONT_INHERIT_TOKENS("nexprlist"); } break; - case 339: /* nexprlist ::= exprx */ + case 342: /* nexprlist ::= exprx */ { - yygotominor.yy615 = new ParserExprList(); - yygotominor.yy615->append(yymsp[0].minor.yy186); + yygotominor.yy567 = new ParserExprList(); + yygotominor.yy567->append(yymsp[0].minor.yy176); } break; - case 340: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + case 343: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { - yygotominor.yy41 = new SqliteCreateIndex( - *(yymsp[-10].minor.yy225), - *(yymsp[-8].minor.yy225), - *(yymsp[-7].minor.yy319), - *(yymsp[-6].minor.yy319), - *(yymsp[-4].minor.yy319), - *(yymsp[-2].minor.yy226), - yymsp[0].minor.yy186 + yygotominor.yy635 = new SqliteCreateIndex( + *(yymsp[-10].minor.yy35), + *(yymsp[-8].minor.yy35), + *(yymsp[-7].minor.yy255), + *(yymsp[-6].minor.yy255), + *(yymsp[-4].minor.yy255), + *(yymsp[-2].minor.yy499), + yymsp[0].minor.yy176 ); - delete yymsp[-8].minor.yy225; - delete yymsp[-10].minor.yy225; - delete yymsp[-7].minor.yy319; - delete yymsp[-6].minor.yy319; - delete yymsp[-4].minor.yy319; - delete yymsp[-2].minor.yy226; - objectForTokens = yygotominor.yy41; + delete yymsp[-8].minor.yy35; + delete yymsp[-10].minor.yy35; + delete yymsp[-7].minor.yy255; + delete yymsp[-6].minor.yy255; + delete yymsp[-4].minor.yy255; + delete yymsp[-2].minor.yy499; + objectForTokens = yygotominor.yy635; } break; - case 341: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON ID_TAB */ + case 344: /* cmd ::= CREATE uniqueflag INDEX ifnotexists nm dbnm ON ID_TAB */ { yy_destructor(yypParser,203,&yymsp[-3].minor); } break; - case 346: /* idxlist_opt ::= */ -{yygotominor.yy627 = new ParserIndexedColumnList();} + case 349: /* idxlist_opt ::= */ +{yygotominor.yy527 = new ParserIndexedColumnList();} break; - case 347: /* idxlist_opt ::= LP idxlist RP */ -{yygotominor.yy627 = yymsp[-1].minor.yy627;} + case 350: /* idxlist_opt ::= LP idxlist RP */ +{yygotominor.yy527 = yymsp[-1].minor.yy527;} break; - case 348: /* idxlist ::= idxlist COMMA idxlist_single */ + case 351: /* idxlist ::= idxlist COMMA idxlist_single */ { - yymsp[-2].minor.yy627->append(yymsp[0].minor.yy110); - yygotominor.yy627 = yymsp[-2].minor.yy627; + yymsp[-2].minor.yy527->append(yymsp[0].minor.yy540); + yygotominor.yy527 = yymsp[-2].minor.yy527; DONT_INHERIT_TOKENS("idxlist"); } break; - case 349: /* idxlist ::= idxlist_single */ + case 352: /* idxlist ::= idxlist_single */ { - yygotominor.yy627 = new ParserIndexedColumnList(); - yygotominor.yy627->append(yymsp[0].minor.yy110); + yygotominor.yy527 = new ParserIndexedColumnList(); + yygotominor.yy527->append(yymsp[0].minor.yy540); } break; - case 350: /* idxlist_single ::= nm collate sortorder */ - case 351: /* idxlist_single ::= ID_COL */ yytestcase(yyruleno==351); + case 353: /* idxlist_single ::= nm collate sortorder */ + case 354: /* idxlist_single ::= ID_COL */ yytestcase(yyruleno==354); { SqliteIndexedColumn* obj = new SqliteIndexedColumn( - *(yymsp[-2].minor.yy319), - *(yymsp[-1].minor.yy319), - *(yymsp[0].minor.yy35) + *(yymsp[-2].minor.yy255), + *(yymsp[-1].minor.yy255), + *(yymsp[0].minor.yy645) ); - yygotominor.yy110 = obj; - delete yymsp[0].minor.yy35; - delete yymsp[-2].minor.yy319; - delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy110; + yygotominor.yy540 = obj; + delete yymsp[0].minor.yy645; + delete yymsp[-2].minor.yy255; + delete yymsp[-1].minor.yy255; + objectForTokens = yygotominor.yy540; } break; - case 355: /* cmd ::= DROP INDEX ifexists fullname */ + case 358: /* cmd ::= DROP INDEX ifexists fullname */ { - yygotominor.yy41 = new SqliteDropIndex(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy396->name1, yymsp[0].minor.yy396->name2); - delete yymsp[-1].minor.yy225; - delete yymsp[0].minor.yy396; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteDropIndex(*(yymsp[-1].minor.yy35), yymsp[0].minor.yy520->name1, yymsp[0].minor.yy520->name2); + delete yymsp[-1].minor.yy35; + delete yymsp[0].minor.yy520; + objectForTokens = yygotominor.yy635; } break; - case 358: /* cmd ::= VACUUM vinto */ + case 361: /* cmd ::= VACUUM vinto */ { - yygotominor.yy41 = new SqliteVacuum(yymsp[0].minor.yy186); - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteVacuum(yymsp[0].minor.yy176); + objectForTokens = yygotominor.yy635; } break; - case 359: /* cmd ::= VACUUM nm vinto */ + case 362: /* cmd ::= VACUUM nm vinto */ { - yygotominor.yy41 = new SqliteVacuum(*(yymsp[-1].minor.yy319), yymsp[0].minor.yy186); - delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteVacuum(*(yymsp[-1].minor.yy255), yymsp[0].minor.yy176); + delete yymsp[-1].minor.yy255; + objectForTokens = yygotominor.yy635; } break; - case 362: /* cmd ::= PRAGMA nm dbnm */ + case 365: /* cmd ::= PRAGMA nm dbnm */ { - yygotominor.yy41 = new SqlitePragma(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); - delete yymsp[-1].minor.yy319; - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqlitePragma(*(yymsp[-1].minor.yy255), *(yymsp[0].minor.yy255)); + delete yymsp[-1].minor.yy255; + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy635; } break; - case 363: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ - case 365: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ yytestcase(yyruleno==365); + case 366: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ + case 368: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ yytestcase(yyruleno==368); { - yygotominor.yy41 = new SqlitePragma(*(yymsp[-3].minor.yy319), *(yymsp[-2].minor.yy319), *(yymsp[0].minor.yy393), true); - delete yymsp[-3].minor.yy319; - delete yymsp[-2].minor.yy319; - delete yymsp[0].minor.yy393; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqlitePragma(*(yymsp[-3].minor.yy255), *(yymsp[-2].minor.yy255), *(yymsp[0].minor.yy629), true); + delete yymsp[-3].minor.yy255; + delete yymsp[-2].minor.yy255; + delete yymsp[0].minor.yy629; + objectForTokens = yygotominor.yy635; } break; - case 364: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ - case 366: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ yytestcase(yyruleno==366); + case 367: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ + case 369: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ yytestcase(yyruleno==369); { - yygotominor.yy41 = new SqlitePragma(*(yymsp[-4].minor.yy319), *(yymsp[-3].minor.yy319), *(yymsp[-1].minor.yy393), false); - delete yymsp[-4].minor.yy319; - delete yymsp[-3].minor.yy319; - delete yymsp[-1].minor.yy393; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqlitePragma(*(yymsp[-4].minor.yy255), *(yymsp[-3].minor.yy255), *(yymsp[-1].minor.yy629), false); + delete yymsp[-4].minor.yy255; + delete yymsp[-3].minor.yy255; + delete yymsp[-1].minor.yy629; + objectForTokens = yygotominor.yy635; } break; - case 370: /* nmnum ::= nm */ + case 373: /* nmnum ::= nm */ { - yygotominor.yy393 = new QVariant(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; + yygotominor.yy629 = new QVariant(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; } break; - case 371: /* nmnum ::= ON */ - case 372: /* nmnum ::= DELETE */ yytestcase(yyruleno==372); - case 373: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==373); -{yygotominor.yy393 = new QVariant(yymsp[0].minor.yy0->value);} + case 374: /* nmnum ::= ON */ + case 375: /* nmnum ::= DELETE */ yytestcase(yyruleno==375); + case 376: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==376); +{yygotominor.yy629 = new QVariant(yymsp[0].minor.yy0->value);} break; - case 376: /* minus_num ::= MINUS number */ + case 379: /* minus_num ::= MINUS number */ { - if (yymsp[0].minor.yy393->type() == QVariant::Double) - *(yymsp[0].minor.yy393) = -(yymsp[0].minor.yy393->toDouble()); - else if (yymsp[0].minor.yy393->type() == QVariant::LongLong) + if (yymsp[0].minor.yy629->type() == QVariant::Double) + *(yymsp[0].minor.yy629) = -(yymsp[0].minor.yy629->toDouble()); + else if (yymsp[0].minor.yy629->type() == QVariant::LongLong) { if (parserContext->isCandidateForMaxNegativeNumber()) - *(yymsp[0].minor.yy393) = std::numeric_limits<qint64>::min(); + *(yymsp[0].minor.yy629) = std::numeric_limits<qint64>::min(); else - *(yymsp[0].minor.yy393) = -(yymsp[0].minor.yy393->toLongLong()); + *(yymsp[0].minor.yy629) = -(yymsp[0].minor.yy629->toLongLong()); } else Q_ASSERT_X(true, "producing minus number", "QVariant is neither of Double or LongLong."); - yygotominor.yy393 = yymsp[0].minor.yy393; - } - break; - case 379: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list END */ -{ - yygotominor.yy41 = new SqliteCreateTrigger( - *(yymsp[-13].minor.yy130), - *(yymsp[-11].minor.yy225), - *(yymsp[-10].minor.yy319), - *(yymsp[-9].minor.yy319), - *(yymsp[-5].minor.yy319), - *(yymsp[-8].minor.yy120), - yymsp[-7].minor.yy259, - *(yymsp[-4].minor.yy456), - yymsp[-3].minor.yy186, - *(yymsp[-1].minor.yy240), + yygotominor.yy629 = yymsp[0].minor.yy629; + } + break; + case 382: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list END */ +{ + yygotominor.yy635 = new SqliteCreateTrigger( + *(yymsp[-13].minor.yy562), + *(yymsp[-11].minor.yy35), + *(yymsp[-10].minor.yy255), + *(yymsp[-9].minor.yy255), + *(yymsp[-5].minor.yy255), + *(yymsp[-8].minor.yy612), + yymsp[-7].minor.yy407, + *(yymsp[-4].minor.yy403), + yymsp[-3].minor.yy176, + *(yymsp[-1].minor.yy575), 3 ); - delete yymsp[-11].minor.yy225; - delete yymsp[-13].minor.yy130; - delete yymsp[-8].minor.yy120; - delete yymsp[-4].minor.yy456; - delete yymsp[-10].minor.yy319; - delete yymsp[-5].minor.yy319; - delete yymsp[-9].minor.yy319; - delete yymsp[-1].minor.yy240; - objectForTokens = yygotominor.yy41; + delete yymsp[-11].minor.yy35; + delete yymsp[-13].minor.yy562; + delete yymsp[-8].minor.yy612; + delete yymsp[-4].minor.yy403; + delete yymsp[-10].minor.yy255; + delete yymsp[-5].minor.yy255; + delete yymsp[-9].minor.yy255; + delete yymsp[-1].minor.yy575; + objectForTokens = yygotominor.yy635; } break; - case 380: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause */ + case 383: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause */ { QList<SqliteQuery *> CL; - yygotominor.yy41 = new SqliteCreateTrigger( - *(yymsp[-10].minor.yy130), - *(yymsp[-8].minor.yy225), - *(yymsp[-7].minor.yy319), - *(yymsp[-6].minor.yy319), - *(yymsp[-2].minor.yy319), - *(yymsp[-5].minor.yy120), - yymsp[-4].minor.yy259, - *(yymsp[-1].minor.yy456), - yymsp[0].minor.yy186, + yygotominor.yy635 = new SqliteCreateTrigger( + *(yymsp[-10].minor.yy562), + *(yymsp[-8].minor.yy35), + *(yymsp[-7].minor.yy255), + *(yymsp[-6].minor.yy255), + *(yymsp[-2].minor.yy255), + *(yymsp[-5].minor.yy612), + yymsp[-4].minor.yy407, + *(yymsp[-1].minor.yy403), + yymsp[0].minor.yy176, CL, 3 ); - delete yymsp[-8].minor.yy225; - delete yymsp[-10].minor.yy130; - delete yymsp[-5].minor.yy120; - delete yymsp[-1].minor.yy456; - delete yymsp[-7].minor.yy319; - delete yymsp[-2].minor.yy319; - delete yymsp[-6].minor.yy319; - objectForTokens = yygotominor.yy41; + delete yymsp[-8].minor.yy35; + delete yymsp[-10].minor.yy562; + delete yymsp[-5].minor.yy612; + delete yymsp[-1].minor.yy403; + delete yymsp[-7].minor.yy255; + delete yymsp[-2].minor.yy255; + delete yymsp[-6].minor.yy255; + objectForTokens = yygotominor.yy635; parserContext->minorErrorAfterLastToken("Syntax error"); } break; - case 381: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list */ + case 384: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON nm foreach_clause when_clause BEGIN trigger_cmd_list */ { - yygotominor.yy41 = new SqliteCreateTrigger( - *(yymsp[-12].minor.yy130), - *(yymsp[-10].minor.yy225), - *(yymsp[-9].minor.yy319), - *(yymsp[-8].minor.yy319), - *(yymsp[-4].minor.yy319), - *(yymsp[-7].minor.yy120), - yymsp[-6].minor.yy259, - *(yymsp[-3].minor.yy456), - yymsp[-2].minor.yy186, - *(yymsp[0].minor.yy240), + yygotominor.yy635 = new SqliteCreateTrigger( + *(yymsp[-12].minor.yy562), + *(yymsp[-10].minor.yy35), + *(yymsp[-9].minor.yy255), + *(yymsp[-8].minor.yy255), + *(yymsp[-4].minor.yy255), + *(yymsp[-7].minor.yy612), + yymsp[-6].minor.yy407, + *(yymsp[-3].minor.yy403), + yymsp[-2].minor.yy176, + *(yymsp[0].minor.yy575), 3 ); - delete yymsp[-10].minor.yy225; - delete yymsp[-12].minor.yy130; - delete yymsp[-7].minor.yy120; - delete yymsp[-3].minor.yy456; - delete yymsp[-9].minor.yy319; - delete yymsp[-4].minor.yy319; - delete yymsp[-8].minor.yy319; - delete yymsp[0].minor.yy240; - objectForTokens = yygotominor.yy41; + delete yymsp[-10].minor.yy35; + delete yymsp[-12].minor.yy562; + delete yymsp[-7].minor.yy612; + delete yymsp[-3].minor.yy403; + delete yymsp[-9].minor.yy255; + delete yymsp[-4].minor.yy255; + delete yymsp[-8].minor.yy255; + delete yymsp[0].minor.yy575; + objectForTokens = yygotominor.yy635; parserContext->minorErrorAfterLastToken("Syntax error"); } break; - case 382: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON ID_TAB */ + case 385: /* cmd ::= CREATE temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON ID_TAB */ { yy_destructor(yypParser,205,&yymsp[-8].minor); yy_destructor(yypParser,203,&yymsp[-5].minor); - yy_destructor(yypParser,298,&yymsp[-3].minor); - yy_destructor(yypParser,299,&yymsp[-2].minor); + yy_destructor(yypParser,299,&yymsp[-3].minor); + yy_destructor(yypParser,300,&yymsp[-2].minor); } break; - case 385: /* trigger_time ::= BEFORE */ -{yygotominor.yy120 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::BEFORE);} + case 388: /* trigger_time ::= BEFORE */ +{yygotominor.yy612 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::BEFORE);} break; - case 386: /* trigger_time ::= AFTER */ -{yygotominor.yy120 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::AFTER);} + case 389: /* trigger_time ::= AFTER */ +{yygotominor.yy612 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::AFTER);} break; - case 387: /* trigger_time ::= INSTEAD OF */ -{yygotominor.yy120 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::INSTEAD_OF);} + case 390: /* trigger_time ::= INSTEAD OF */ +{yygotominor.yy612 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::INSTEAD_OF);} break; - case 388: /* trigger_time ::= */ -{yygotominor.yy120 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::null);} + case 391: /* trigger_time ::= */ +{yygotominor.yy612 = new SqliteCreateTrigger::Time(SqliteCreateTrigger::Time::null);} break; - case 389: /* trigger_event ::= DELETE */ + case 392: /* trigger_event ::= DELETE */ { - yygotominor.yy259 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::DELETE); - objectForTokens = yygotominor.yy259; + yygotominor.yy407 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::DELETE); + objectForTokens = yygotominor.yy407; } break; - case 390: /* trigger_event ::= INSERT */ + case 393: /* trigger_event ::= INSERT */ { - yygotominor.yy259 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::INSERT); - objectForTokens = yygotominor.yy259; + yygotominor.yy407 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::INSERT); + objectForTokens = yygotominor.yy407; } break; - case 391: /* trigger_event ::= UPDATE */ + case 394: /* trigger_event ::= UPDATE */ { - yygotominor.yy259 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::UPDATE); - objectForTokens = yygotominor.yy259; + yygotominor.yy407 = new SqliteCreateTrigger::Event(SqliteCreateTrigger::Event::UPDATE); + objectForTokens = yygotominor.yy407; } break; - case 392: /* trigger_event ::= UPDATE OF idlist */ + case 395: /* trigger_event ::= UPDATE OF idlist */ { - yygotominor.yy259 = new SqliteCreateTrigger::Event(*(yymsp[0].minor.yy173)); - delete yymsp[0].minor.yy173; - objectForTokens = yygotominor.yy259; + yygotominor.yy407 = new SqliteCreateTrigger::Event(*(yymsp[0].minor.yy336)); + delete yymsp[0].minor.yy336; + objectForTokens = yygotominor.yy407; } break; - case 393: /* foreach_clause ::= */ -{yygotominor.yy456 = new SqliteCreateTrigger::Scope(SqliteCreateTrigger::Scope::null);} + case 396: /* foreach_clause ::= */ +{yygotominor.yy403 = new SqliteCreateTrigger::Scope(SqliteCreateTrigger::Scope::null);} break; - case 394: /* foreach_clause ::= FOR EACH ROW */ -{yygotominor.yy456 = new SqliteCreateTrigger::Scope(SqliteCreateTrigger::Scope::FOR_EACH_ROW);} + case 397: /* foreach_clause ::= FOR EACH ROW */ +{yygotominor.yy403 = new SqliteCreateTrigger::Scope(SqliteCreateTrigger::Scope::FOR_EACH_ROW);} break; - case 397: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + case 400: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { - yymsp[-2].minor.yy240->append(yymsp[-1].minor.yy41); - yygotominor.yy240 = yymsp[-2].minor.yy240; + yymsp[-2].minor.yy575->append(yymsp[-1].minor.yy635); + yygotominor.yy575 = yymsp[-2].minor.yy575; DONT_INHERIT_TOKENS("trigger_cmd_list"); } break; - case 398: /* trigger_cmd_list ::= trigger_cmd SEMI */ + case 401: /* trigger_cmd_list ::= trigger_cmd SEMI */ { - yygotominor.yy240 = new ParserQueryList(); - yygotominor.yy240->append(yymsp[-1].minor.yy41); + yygotominor.yy575 = new ParserQueryList(); + yygotominor.yy575->append(yymsp[-1].minor.yy635); } break; - case 399: /* trigger_cmd_list ::= SEMI */ + case 402: /* trigger_cmd_list ::= SEMI */ { - yygotominor.yy240 = new ParserQueryList(); + yygotominor.yy575 = new ParserQueryList(); parserContext->minorErrorAfterLastToken("Syntax error"); } break; - case 404: /* raisetype ::= ROLLBACK|ABORT|FAIL */ + case 407: /* raisetype ::= ROLLBACK|ABORT|FAIL */ {yygotominor.yy0 = yymsp[0].minor.yy0;} break; - case 405: /* cmd ::= DROP TRIGGER ifexists fullname */ + case 408: /* cmd ::= DROP TRIGGER ifexists fullname */ { - yygotominor.yy41 = new SqliteDropTrigger(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy396->name1, yymsp[0].minor.yy396->name2); - delete yymsp[-1].minor.yy225; - delete yymsp[0].minor.yy396; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteDropTrigger(*(yymsp[-1].minor.yy35), yymsp[0].minor.yy520->name1, yymsp[0].minor.yy520->name2); + delete yymsp[-1].minor.yy35; + delete yymsp[0].minor.yy520; + objectForTokens = yygotominor.yy635; } break; - case 408: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + case 411: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { - yygotominor.yy41 = new SqliteAttach(*(yymsp[-4].minor.yy225), yymsp[-3].minor.yy186, yymsp[-1].minor.yy186, yymsp[0].minor.yy186); - delete yymsp[-4].minor.yy225; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteAttach(*(yymsp[-4].minor.yy35), yymsp[-3].minor.yy176, yymsp[-1].minor.yy176, yymsp[0].minor.yy176); + delete yymsp[-4].minor.yy35; + objectForTokens = yygotominor.yy635; } break; - case 409: /* cmd ::= DETACH database_kw_opt expr */ + case 412: /* cmd ::= DETACH database_kw_opt expr */ { - yygotominor.yy41 = new SqliteDetach(*(yymsp[-1].minor.yy225), yymsp[0].minor.yy186); - delete yymsp[-1].minor.yy225; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteDetach(*(yymsp[-1].minor.yy35), yymsp[0].minor.yy176); + delete yymsp[-1].minor.yy35; + objectForTokens = yygotominor.yy635; } break; - case 414: /* cmd ::= REINDEX */ -{yygotominor.yy41 = new SqliteReindex();} + case 417: /* cmd ::= REINDEX */ +{yygotominor.yy635 = new SqliteReindex();} break; - case 415: /* cmd ::= REINDEX nm dbnm */ - case 416: /* cmd ::= REINDEX ID_COLLATE */ yytestcase(yyruleno==416); + case 418: /* cmd ::= REINDEX nm dbnm */ + case 419: /* cmd ::= REINDEX ID_COLLATE */ yytestcase(yyruleno==419); { - yygotominor.yy41 = new SqliteReindex(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); - delete yymsp[-1].minor.yy319; - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteReindex(*(yymsp[-1].minor.yy255), *(yymsp[0].minor.yy255)); + delete yymsp[-1].minor.yy255; + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy635; } break; - case 419: /* cmd ::= ANALYZE */ + case 422: /* cmd ::= ANALYZE */ { - yygotominor.yy41 = new SqliteAnalyze(); - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteAnalyze(); + objectForTokens = yygotominor.yy635; } break; - case 420: /* cmd ::= ANALYZE nm dbnm */ + case 423: /* cmd ::= ANALYZE nm dbnm */ { - yygotominor.yy41 = new SqliteAnalyze(*(yymsp[-1].minor.yy319), *(yymsp[0].minor.yy319)); - delete yymsp[-1].minor.yy319; - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy41; + yygotominor.yy635 = new SqliteAnalyze(*(yymsp[-1].minor.yy255), *(yymsp[0].minor.yy255)); + delete yymsp[-1].minor.yy255; + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy635; } break; - case 423: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ + case 426: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { - yygotominor.yy41 = new SqliteAlterTable( - yymsp[-3].minor.yy396->name1, - yymsp[-3].minor.yy396->name2, - *(yymsp[0].minor.yy319) + yygotominor.yy635 = new SqliteAlterTable( + yymsp[-3].minor.yy520->name1, + yymsp[-3].minor.yy520->name2, + *(yymsp[0].minor.yy255) ); - delete yymsp[0].minor.yy319; - delete yymsp[-3].minor.yy396; - objectForTokens = yygotominor.yy41; + delete yymsp[0].minor.yy255; + delete yymsp[-3].minor.yy520; + objectForTokens = yygotominor.yy635; } break; - case 424: /* cmd ::= ALTER TABLE fullname ADD kwcolumn_opt column */ + case 427: /* cmd ::= ALTER TABLE fullname ADD kwcolumn_opt column */ { - yygotominor.yy41 = new SqliteAlterTable( - yymsp[-3].minor.yy396->name1, - yymsp[-3].minor.yy396->name2, - *(yymsp[-1].minor.yy225), - yymsp[0].minor.yy3 + yygotominor.yy635 = new SqliteAlterTable( + yymsp[-3].minor.yy520->name1, + yymsp[-3].minor.yy520->name2, + *(yymsp[-1].minor.yy35), + yymsp[0].minor.yy115 ); - delete yymsp[-1].minor.yy225; - delete yymsp[-3].minor.yy396; - objectForTokens = yygotominor.yy41; + delete yymsp[-1].minor.yy35; + delete yymsp[-3].minor.yy520; + objectForTokens = yygotominor.yy635; } break; - case 425: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + case 428: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ { - yygotominor.yy41 = new SqliteAlterTable( - yymsp[-3].minor.yy396->name1, - yymsp[-3].minor.yy396->name2, - *(yymsp[-1].minor.yy225), - *(yymsp[0].minor.yy319) + yygotominor.yy635 = new SqliteAlterTable( + yymsp[-3].minor.yy520->name1, + yymsp[-3].minor.yy520->name2, + *(yymsp[-1].minor.yy35), + *(yymsp[0].minor.yy255) ); - delete yymsp[-1].minor.yy225; - delete yymsp[-3].minor.yy396; - delete yymsp[0].minor.yy319; + delete yymsp[-1].minor.yy35; + delete yymsp[-3].minor.yy520; + delete yymsp[0].minor.yy255; } break; - case 426: /* cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW */ + case 429: /* cmd ::= ALTER TABLE fullname RENAME TO ID_TAB_NEW */ { yy_destructor(yypParser,207,&yymsp[-3].minor); } break; - case 432: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + case 435: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { - yygotominor.yy41 = new SqliteCreateVirtualTable( - *(yymsp[-4].minor.yy225), - *(yymsp[-3].minor.yy319), - *(yymsp[-2].minor.yy319), - *(yymsp[0].minor.yy319) + yygotominor.yy635 = new SqliteCreateVirtualTable( + *(yymsp[-4].minor.yy35), + *(yymsp[-3].minor.yy255), + *(yymsp[-2].minor.yy255), + *(yymsp[0].minor.yy255) ); - delete yymsp[-4].minor.yy225; - delete yymsp[-3].minor.yy319; - delete yymsp[-2].minor.yy319; - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy41; + delete yymsp[-4].minor.yy35; + delete yymsp[-3].minor.yy255; + delete yymsp[-2].minor.yy255; + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy635; } break; - case 433: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm LP vtabarglist RP */ + case 436: /* create_vtab ::= CREATE VIRTUAL TABLE ifnotexists nm dbnm USING nm LP vtabarglist RP */ { - yygotominor.yy41 = new SqliteCreateVirtualTable( - *(yymsp[-7].minor.yy225), - *(yymsp[-6].minor.yy319), - *(yymsp[-5].minor.yy319), - *(yymsp[-3].minor.yy319), - *(yymsp[-1].minor.yy173) + yygotominor.yy635 = new SqliteCreateVirtualTable( + *(yymsp[-7].minor.yy35), + *(yymsp[-6].minor.yy255), + *(yymsp[-5].minor.yy255), + *(yymsp[-3].minor.yy255), + *(yymsp[-1].minor.yy336) ); - delete yymsp[-6].minor.yy319; - delete yymsp[-5].minor.yy319; - delete yymsp[-3].minor.yy319; - delete yymsp[-7].minor.yy225; - delete yymsp[-1].minor.yy173; - objectForTokens = yygotominor.yy41; + delete yymsp[-6].minor.yy255; + delete yymsp[-5].minor.yy255; + delete yymsp[-3].minor.yy255; + delete yymsp[-7].minor.yy35; + delete yymsp[-1].minor.yy336; + objectForTokens = yygotominor.yy635; } break; - case 436: /* vtabarglist ::= vtabarg */ + case 439: /* vtabarglist ::= vtabarg */ { - yygotominor.yy173 = new QStringList(); - yygotominor.yy173->append((yymsp[0].minor.yy319)->mid(1)); // mid(1) to skip the first whitespace added in vtabarg - delete yymsp[0].minor.yy319; + yygotominor.yy336 = new QStringList(); + yygotominor.yy336->append((yymsp[0].minor.yy255)->mid(1)); // mid(1) to skip the first whitespace added in vtabarg + delete yymsp[0].minor.yy255; } break; - case 437: /* vtabarglist ::= vtabarglist COMMA vtabarg */ + case 440: /* vtabarglist ::= vtabarglist COMMA vtabarg */ { - yymsp[-2].minor.yy173->append((yymsp[0].minor.yy319)->mid(1)); // mid(1) to skip the first whitespace added in vtabarg - yygotominor.yy173 = yymsp[-2].minor.yy173; - delete yymsp[0].minor.yy319; + yymsp[-2].minor.yy336->append((yymsp[0].minor.yy255)->mid(1)); // mid(1) to skip the first whitespace added in vtabarg + yygotominor.yy336 = yymsp[-2].minor.yy336; + delete yymsp[0].minor.yy255; DONT_INHERIT_TOKENS("vtabarglist"); } break; - case 439: /* vtabarg ::= vtabarg vtabargtoken */ + case 442: /* vtabarg ::= vtabarg vtabargtoken */ { - yymsp[-1].minor.yy319->append(" "+ *(yymsp[0].minor.yy319)); - yygotominor.yy319 = yymsp[-1].minor.yy319; - delete yymsp[0].minor.yy319; + yymsp[-1].minor.yy255->append(" "+ *(yymsp[0].minor.yy255)); + yygotominor.yy255 = yymsp[-1].minor.yy255; + delete yymsp[0].minor.yy255; } break; - case 440: /* vtabargtoken ::= ANY */ + case 443: /* vtabargtoken ::= ANY */ { - yygotominor.yy319 = new QString(yymsp[0].minor.yy0->value); + yygotominor.yy255 = new QString(yymsp[0].minor.yy0->value); } break; - case 441: /* vtabargtoken ::= LP anylist RP */ + case 444: /* vtabargtoken ::= LP anylist RP */ { - yygotominor.yy319 = new QString("("); - yygotominor.yy319->append(*(yymsp[-1].minor.yy319)); - yygotominor.yy319->append(")"); - delete yymsp[-1].minor.yy319; + yygotominor.yy255 = new QString("("); + yygotominor.yy255->append(*(yymsp[-1].minor.yy255)); + yygotominor.yy255->append(")"); + delete yymsp[-1].minor.yy255; } break; - case 443: /* anylist ::= anylist LP anylist RP */ + case 446: /* anylist ::= anylist LP anylist RP */ { - yygotominor.yy319 = yymsp[-3].minor.yy319; - yygotominor.yy319->append("("); - yygotominor.yy319->append(*(yymsp[-1].minor.yy319)); - yygotominor.yy319->append(")"); - delete yymsp[-1].minor.yy319; + yygotominor.yy255 = yymsp[-3].minor.yy255; + yygotominor.yy255->append("("); + yygotominor.yy255->append(*(yymsp[-1].minor.yy255)); + yygotominor.yy255->append(")"); + delete yymsp[-1].minor.yy255; DONT_INHERIT_TOKENS("anylist"); } break; - case 444: /* anylist ::= anylist ANY */ + case 447: /* anylist ::= anylist ANY */ { - yygotominor.yy319 = yymsp[-1].minor.yy319; - yygotominor.yy319->append(yymsp[0].minor.yy0->value); + yygotominor.yy255 = yymsp[-1].minor.yy255; + yygotominor.yy255->append(yymsp[0].minor.yy0->value); DONT_INHERIT_TOKENS("anylist"); } break; - case 445: /* with ::= */ -{yygotominor.yy161 = nullptr;} + case 448: /* with ::= */ +{yygotominor.yy321 = nullptr;} break; - case 446: /* with ::= WITH wqlist */ + case 449: /* with ::= WITH wqlist */ { - yygotominor.yy161 = new SqliteWith(); - yygotominor.yy161->cteList = *(yymsp[0].minor.yy164); - delete yymsp[0].minor.yy164; - objectForTokens = yygotominor.yy161; + yygotominor.yy321 = new SqliteWith(); + yygotominor.yy321->cteList = *(yymsp[0].minor.yy17); + delete yymsp[0].minor.yy17; + objectForTokens = yygotominor.yy321; } break; - case 447: /* with ::= WITH RECURSIVE wqlist */ + case 450: /* with ::= WITH RECURSIVE wqlist */ { - yygotominor.yy161 = new SqliteWith(); - yygotominor.yy161->cteList = *(yymsp[0].minor.yy164); - yygotominor.yy161->recursive = true; - delete yymsp[0].minor.yy164; - objectForTokens = yygotominor.yy161; + yygotominor.yy321 = new SqliteWith(); + yygotominor.yy321->cteList = *(yymsp[0].minor.yy17); + yygotominor.yy321->recursive = true; + delete yymsp[0].minor.yy17; + objectForTokens = yygotominor.yy321; } break; - case 448: /* wqas ::= AS */ -{yygotominor.yy21 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::ANY);} + case 451: /* wqas ::= AS */ +{yygotominor.yy383 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::ANY);} break; - case 449: /* wqas ::= AS MATERIALIZED */ -{yygotominor.yy21 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::MATERIALIZED);} + case 452: /* wqas ::= AS MATERIALIZED */ +{yygotominor.yy383 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::MATERIALIZED);} break; - case 450: /* wqas ::= AS NOT MATERIALIZED */ -{yygotominor.yy21 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::NOT_MATERIALIZED);} + case 453: /* wqas ::= AS NOT MATERIALIZED */ +{yygotominor.yy383 = new SqliteWith::CommonTableExpression::AsMode(SqliteWith::CommonTableExpression::NOT_MATERIALIZED);} break; - case 451: /* wqlist ::= wqcte */ + case 454: /* wqlist ::= wqcte */ { - yygotominor.yy164 = new ParserCteList(); - yygotominor.yy164->append(yymsp[0].minor.yy146); + yygotominor.yy17 = new ParserCteList(); + yygotominor.yy17->append(yymsp[0].minor.yy366); } break; - case 452: /* wqlist ::= wqlist COMMA wqcte */ + case 455: /* wqlist ::= wqlist COMMA wqcte */ { - yygotominor.yy164 = yymsp[-2].minor.yy164; - yygotominor.yy164->append(yymsp[0].minor.yy146); + yygotominor.yy17 = yymsp[-2].minor.yy17; + yygotominor.yy17->append(yymsp[0].minor.yy366); DONT_INHERIT_TOKENS("wqlist"); } break; - case 453: /* wqlist ::= ID_TAB_NEW */ + case 456: /* wqlist ::= ID_TAB_NEW */ { parserContext->minorErrorBeforeNextToken("Syntax error"); } break; - case 454: /* wqcte ::= nm idxlist_opt wqas LP select RP */ + case 457: /* wqcte ::= nm idxlist_opt wqas LP select RP */ { - yygotominor.yy146 = new SqliteWith::CommonTableExpression(*(yymsp[-5].minor.yy319), *(yymsp[-4].minor.yy627), yymsp[-1].minor.yy297, *(yymsp[-3].minor.yy21)); - delete yymsp[-5].minor.yy319; - delete yymsp[-4].minor.yy627; - delete yymsp[-3].minor.yy21; - objectForTokens = yygotominor.yy146; + yygotominor.yy366 = new SqliteWith::CommonTableExpression(*(yymsp[-5].minor.yy255), *(yymsp[-4].minor.yy527), yymsp[-1].minor.yy73, *(yymsp[-3].minor.yy383)); + delete yymsp[-5].minor.yy255; + delete yymsp[-4].minor.yy527; + delete yymsp[-3].minor.yy383; + objectForTokens = yygotominor.yy366; } break; - case 455: /* windowdefn_list ::= windowdefn */ + case 458: /* windowdefn_list ::= windowdefn */ { - yygotominor.yy525 = new ParserWindowDefList(); - yygotominor.yy525->append(yymsp[0].minor.yy562); + yygotominor.yy555 = new ParserWindowDefList(); + yygotominor.yy555->append(yymsp[0].minor.yy74); } break; - case 456: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ + case 459: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ { - yymsp[-2].minor.yy525->append(yymsp[0].minor.yy562); - yygotominor.yy525 = yymsp[-2].minor.yy525; + yymsp[-2].minor.yy555->append(yymsp[0].minor.yy74); + yygotominor.yy555 = yymsp[-2].minor.yy555; DONT_INHERIT_TOKENS("windowdefn_list"); } break; - case 457: /* windowdefn ::= nm AS LP window RP */ + case 460: /* windowdefn ::= nm AS LP window RP */ { - yygotominor.yy562 = new SqliteWindowDefinition(*(yymsp[-4].minor.yy319), yymsp[-1].minor.yy162); - delete yymsp[-4].minor.yy319; - objectForTokens = yygotominor.yy562; + yygotominor.yy74 = new SqliteWindowDefinition(*(yymsp[-4].minor.yy255), yymsp[-1].minor.yy14); + delete yymsp[-4].minor.yy255; + objectForTokens = yygotominor.yy74; } break; - case 458: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + case 461: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ { - yygotominor.yy162 = new SqliteWindowDefinition::Window(); - yygotominor.yy162->initPartitionBy(QString(), *(yymsp[-2].minor.yy615), *(yymsp[-1].minor.yy226), yymsp[0].minor.yy149); - delete yymsp[-2].minor.yy615; - delete yymsp[-1].minor.yy226; - objectForTokens = yygotominor.yy162; + yygotominor.yy14 = new SqliteWindowDefinition::Window(); + yygotominor.yy14->initPartitionBy(QString(), *(yymsp[-2].minor.yy567), *(yymsp[-1].minor.yy499), yymsp[0].minor.yy585); + delete yymsp[-2].minor.yy567; + delete yymsp[-1].minor.yy499; + objectForTokens = yygotominor.yy14; } break; - case 459: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + case 462: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ { - yygotominor.yy162 = new SqliteWindowDefinition::Window(); - yygotominor.yy162->initPartitionBy(*(yymsp[-5].minor.yy319), *(yymsp[-2].minor.yy615), *(yymsp[-1].minor.yy226), yymsp[0].minor.yy149); - delete yymsp[-2].minor.yy615; - delete yymsp[-5].minor.yy319; - delete yymsp[-1].minor.yy226; - objectForTokens = yygotominor.yy162; + yygotominor.yy14 = new SqliteWindowDefinition::Window(); + yygotominor.yy14->initPartitionBy(*(yymsp[-5].minor.yy255), *(yymsp[-2].minor.yy567), *(yymsp[-1].minor.yy499), yymsp[0].minor.yy585); + delete yymsp[-2].minor.yy567; + delete yymsp[-5].minor.yy255; + delete yymsp[-1].minor.yy499; + objectForTokens = yygotominor.yy14; } break; - case 460: /* window ::= ORDER BY sortlist frame_opt */ + case 463: /* window ::= ORDER BY sortlist frame_opt */ { - yygotominor.yy162 = new SqliteWindowDefinition::Window(); - yygotominor.yy162->initOrderBy(QString(), *(yymsp[-1].minor.yy226), yymsp[0].minor.yy149); - delete yymsp[-1].minor.yy226; - objectForTokens = yygotominor.yy162; + yygotominor.yy14 = new SqliteWindowDefinition::Window(); + yygotominor.yy14->initOrderBy(QString(), *(yymsp[-1].minor.yy499), yymsp[0].minor.yy585); + delete yymsp[-1].minor.yy499; + objectForTokens = yygotominor.yy14; } break; - case 461: /* window ::= nm ORDER BY sortlist frame_opt */ + case 464: /* window ::= nm ORDER BY sortlist frame_opt */ { - yygotominor.yy162 = new SqliteWindowDefinition::Window(); - yygotominor.yy162->initOrderBy(*(yymsp[-4].minor.yy319), *(yymsp[-1].minor.yy226), yymsp[0].minor.yy149); - delete yymsp[-1].minor.yy226; - delete yymsp[-4].minor.yy319; - objectForTokens = yygotominor.yy162; + yygotominor.yy14 = new SqliteWindowDefinition::Window(); + yygotominor.yy14->initOrderBy(*(yymsp[-4].minor.yy255), *(yymsp[-1].minor.yy499), yymsp[0].minor.yy585); + delete yymsp[-1].minor.yy499; + delete yymsp[-4].minor.yy255; + objectForTokens = yygotominor.yy14; } break; - case 462: /* window ::= frame_opt */ + case 465: /* window ::= frame_opt */ { - yygotominor.yy162 = new SqliteWindowDefinition::Window(); - yygotominor.yy162->init(QString(), yymsp[0].minor.yy149); - objectForTokens = yygotominor.yy162; + yygotominor.yy14 = new SqliteWindowDefinition::Window(); + yygotominor.yy14->init(QString(), yymsp[0].minor.yy585); + objectForTokens = yygotominor.yy14; } break; - case 463: /* window ::= nm frame_opt */ + case 466: /* window ::= nm frame_opt */ { - yygotominor.yy162 = new SqliteWindowDefinition::Window(); - yygotominor.yy162->init(QString(), yymsp[0].minor.yy149); - delete yymsp[-1].minor.yy319; - objectForTokens = yygotominor.yy162; + yygotominor.yy14 = new SqliteWindowDefinition::Window(); + yygotominor.yy14->init(QString(), yymsp[0].minor.yy585); + delete yymsp[-1].minor.yy255; + objectForTokens = yygotominor.yy14; } break; - case 464: /* frame_opt ::= */ -{yygotominor.yy149 = nullptr;} + case 467: /* frame_opt ::= */ +{yygotominor.yy585 = nullptr;} break; - case 465: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + case 468: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ { - yygotominor.yy149 = new SqliteWindowDefinition::Window::Frame(*(yymsp[-2].minor.yy143), yymsp[-1].minor.yy285, nullptr, *(yymsp[0].minor.yy237)); - delete yymsp[-2].minor.yy143; - delete yymsp[0].minor.yy237; - objectForTokens = yygotominor.yy149; + yygotominor.yy585 = new SqliteWindowDefinition::Window::Frame(*(yymsp[-2].minor.yy34), yymsp[-1].minor.yy394, nullptr, *(yymsp[0].minor.yy337)); + delete yymsp[-2].minor.yy34; + delete yymsp[0].minor.yy337; + objectForTokens = yygotominor.yy585; } break; - case 466: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + case 469: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ { - yygotominor.yy149 = new SqliteWindowDefinition::Window::Frame(*(yymsp[-5].minor.yy143), yymsp[-3].minor.yy285, yymsp[-1].minor.yy285, *(yymsp[0].minor.yy237)); - delete yymsp[-5].minor.yy143; - delete yymsp[0].minor.yy237; - objectForTokens = yygotominor.yy149; + yygotominor.yy585 = new SqliteWindowDefinition::Window::Frame(*(yymsp[-5].minor.yy34), yymsp[-3].minor.yy394, yymsp[-1].minor.yy394, *(yymsp[0].minor.yy337)); + delete yymsp[-5].minor.yy34; + delete yymsp[0].minor.yy337; + objectForTokens = yygotominor.yy585; } break; - case 467: /* range_or_rows ::= RANGE|ROWS|GROUPS */ + case 470: /* range_or_rows ::= RANGE|ROWS|GROUPS */ { - yygotominor.yy143 = new SqliteWindowDefinition::Window::Frame::RangeOrRows( + yygotominor.yy34 = new SqliteWindowDefinition::Window::Frame::RangeOrRows( SqliteWindowDefinition::Window::Frame::toRangeOrRows(yymsp[0].minor.yy0->value) ); } break; - case 468: /* frame_bound_s ::= frame_bound */ - case 470: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==470); + case 471: /* frame_bound_s ::= frame_bound */ + case 473: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==473); { - yygotominor.yy285 = yymsp[0].minor.yy285; - objectForTokens = yygotominor.yy285; + yygotominor.yy394 = yymsp[0].minor.yy394; + objectForTokens = yygotominor.yy394; } break; - case 469: /* frame_bound_s ::= UNBOUNDED PRECEDING */ - case 471: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==471); - case 473: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==473); + case 472: /* frame_bound_s ::= UNBOUNDED PRECEDING */ + case 474: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==474); + case 476: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==476); { - yygotominor.yy285 = new SqliteWindowDefinition::Window::Frame::Bound(nullptr, yymsp[-1].minor.yy0->value + " " + yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy285; + yygotominor.yy394 = new SqliteWindowDefinition::Window::Frame::Bound(nullptr, yymsp[-1].minor.yy0->value + " " + yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy394; } break; - case 472: /* frame_bound ::= expr PRECEDING|FOLLOWING */ + case 475: /* frame_bound ::= expr PRECEDING|FOLLOWING */ { - yygotominor.yy285 = new SqliteWindowDefinition::Window::Frame::Bound(yymsp[-1].minor.yy186, yymsp[0].minor.yy0->value); - objectForTokens = yygotominor.yy285; + yygotominor.yy394 = new SqliteWindowDefinition::Window::Frame::Bound(yymsp[-1].minor.yy176, yymsp[0].minor.yy0->value); + objectForTokens = yygotominor.yy394; } break; - case 474: /* frame_exclude_opt ::= */ + case 477: /* frame_exclude_opt ::= */ { - yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy337 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::null ); } break; - case 475: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ + case 478: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ { - yygotominor.yy237 = yymsp[0].minor.yy237; + yygotominor.yy337 = yymsp[0].minor.yy337; } break; - case 476: /* frame_exclude ::= NO OTHERS */ + case 479: /* frame_exclude ::= NO OTHERS */ { - yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy337 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::NO_OTHERS ); } break; - case 477: /* frame_exclude ::= CURRENT ROW */ + case 480: /* frame_exclude ::= CURRENT ROW */ { - yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy337 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::CURRENT_ROW ); } break; - case 478: /* frame_exclude ::= GROUP */ + case 481: /* frame_exclude ::= GROUP */ { - yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy337 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::GROUP ); } break; - case 479: /* frame_exclude ::= TIES */ + case 482: /* frame_exclude ::= TIES */ { - yygotominor.yy237 = new SqliteWindowDefinition::Window::Frame::Exclude( + yygotominor.yy337 = new SqliteWindowDefinition::Window::Frame::Exclude( SqliteWindowDefinition::Window::Frame::Exclude::TIES ); } break; - case 480: /* window_clause ::= WINDOW windowdefn_list */ + case 483: /* window_clause ::= WINDOW windowdefn_list */ { - yygotominor.yy525 = yymsp[0].minor.yy525; + yygotominor.yy555 = yymsp[0].minor.yy555; } break; - case 481: /* filter_over ::= filter_clause over_clause */ + case 484: /* filter_over ::= filter_clause over_clause */ { - yygotominor.yy181 = new SqliteFilterOver(yymsp[-1].minor.yy39, yymsp[0].minor.yy11); - objectForTokens = yygotominor.yy181; + yygotominor.yy487 = new SqliteFilterOver(yymsp[-1].minor.yy269, yymsp[0].minor.yy231); + objectForTokens = yygotominor.yy487; } break; - case 482: /* filter_over ::= over_clause */ + case 485: /* filter_over ::= over_clause */ { - yygotominor.yy181 = new SqliteFilterOver(nullptr, yymsp[0].minor.yy11); - objectForTokens = yygotominor.yy181; + yygotominor.yy487 = new SqliteFilterOver(nullptr, yymsp[0].minor.yy231); + objectForTokens = yygotominor.yy487; } break; - case 483: /* filter_over ::= filter_clause */ + case 486: /* filter_over ::= filter_clause */ { - yygotominor.yy181 = new SqliteFilterOver(yymsp[0].minor.yy39, nullptr); - objectForTokens = yygotominor.yy181; + yygotominor.yy487 = new SqliteFilterOver(yymsp[0].minor.yy269, nullptr); + objectForTokens = yygotominor.yy487; } break; - case 484: /* over_clause ::= OVER LP window RP */ + case 487: /* over_clause ::= OVER LP window RP */ { - yygotominor.yy11 = new SqliteFilterOver::Over(yymsp[-1].minor.yy162); - objectForTokens = yygotominor.yy11; + yygotominor.yy231 = new SqliteFilterOver::Over(yymsp[-1].minor.yy14); + objectForTokens = yygotominor.yy231; } break; - case 485: /* over_clause ::= OVER nm */ + case 488: /* over_clause ::= OVER nm */ { - yygotominor.yy11 = new SqliteFilterOver::Over(*(yymsp[0].minor.yy319)); - delete yymsp[0].minor.yy319; - objectForTokens = yygotominor.yy11; + yygotominor.yy231 = new SqliteFilterOver::Over(*(yymsp[0].minor.yy255)); + delete yymsp[0].minor.yy255; + objectForTokens = yygotominor.yy231; } break; - case 486: /* filter_clause ::= FILTER LP WHERE expr RP */ + case 489: /* filter_clause ::= FILTER LP WHERE expr RP */ { - yygotominor.yy39 = new SqliteFilterOver::Filter(yymsp[-1].minor.yy186); - objectForTokens = yygotominor.yy39; + yygotominor.yy269 = new SqliteFilterOver::Filter(yymsp[-1].minor.yy176); + objectForTokens = yygotominor.yy269; } break; default: diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y index 4b1dda4..0e50178 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y @@ -1566,6 +1566,27 @@ insert_stmt(X) ::= with(W) insert_cmd(C) objectForTokens = X; } + +insert_stmt(X) ::= with(W) insert_cmd(C) + INTO fullname(N) + LP idlist(I) rp_opt(R). { + parserContext->minorErrorBeforeNextToken("Syntax error"); + X = new SqliteInsert( + C->replace, + C->orConflict, + N->name1, + N->name2, + *(I), + W, + QList<SqliteResultColumn*>() + ); + objectForTokens = X; + delete N; + delete I; + delete C; + delete R; + } + insert_stmt(X) ::= with(W) insert_cmd(C) INTO. { parserContext->minorErrorBeforeNextToken("Syntax error"); @@ -1964,6 +1985,12 @@ expr(X) ::= exprx(E). {X = E;} not_opt(X) ::= . {X = new bool(false);} not_opt(X) ::= NOT. {X = new bool(true);} +%type rp_opt {bool*} +%destructor rp_opt {parser_safe_delete($$);} +rp_opt(X) ::= . {X = new bool(false);} +rp_opt(X) ::= RP. {X = new bool(true);} + + %type likeop {SqliteExpr::LikeOp*} %destructor likeop {parser_safe_delete($$);} likeop(X) ::= LIKE_KW|MATCH(T). {X = new SqliteExpr::LikeOp(SqliteExpr::likeOp(T->value));} |
