提交 313248ce 编写于 作者: G Ganlin Zhao

Merge branch '3.0' into fix/TD-17799

......@@ -56,7 +56,6 @@ enum {
STREAM_INPUT__DATA_SUBMIT = 1,
STREAM_INPUT__DATA_BLOCK,
STREAM_INPUT__MERGED_SUBMIT,
// STREAM_INPUT__TABLE_SCAN,
STREAM_INPUT__TQ_SCAN,
STREAM_INPUT__DATA_RETRIEVE,
STREAM_INPUT__GET_RES,
......@@ -154,7 +153,7 @@ typedef struct SQueryTableDataCond {
int32_t order; // desc|asc order to iterate the data block
int32_t numOfCols;
SColumnInfo* colList;
int32_t type; // data block load type:
int32_t type; // data block load type:
STimeWindow twindows;
int64_t startVersion;
int64_t endVersion;
......
......@@ -283,6 +283,7 @@ typedef struct SCreateIndexStmt {
EIndexType indexType;
bool ignoreExists;
char indexName[TSDB_INDEX_NAME_LEN];
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
SNodeList* pCols;
SIndexOptions* pOptions;
......
......@@ -41,7 +41,7 @@ extern "C" {
#define WAL_REFRESH_MS 1000
#define WAL_PATH_LEN (TSDB_FILENAME_LEN + 12)
#define WAL_FILE_LEN (WAL_PATH_LEN + 32)
#define WAL_MAGIC 0xFAFBFCFDULL
#define WAL_MAGIC 0xFAFBFCFDF4F3F2F1ULL
#define WAL_SCAN_BUF_SIZE (1024 * 1024 * 3)
typedef enum {
......
......@@ -162,10 +162,7 @@ int32_t tNameGetDbName(const SName* name, char* dst) {
return 0;
}
const char* tNameGetDbNameP(const SName* name) {
return &name->dbname[0];
}
const char* tNameGetDbNameP(const SName* name) { return &name->dbname[0]; }
int32_t tNameGetFullDbName(const SName* name, char* dst) {
assert(name != NULL && dst != NULL);
......@@ -212,7 +209,6 @@ int32_t tNameAddTbName(SName* dst, const char* tbName, size_t nameLen) {
return 0;
}
int32_t tNameSetAcctId(SName* dst, int32_t acctId) {
assert(dst != NULL);
dst->acctId = acctId;
......@@ -266,11 +262,21 @@ int32_t tNameFromString(SName* dst, const char* str, uint32_t type) {
char* start = (char*)((p == NULL) ? str : (p + 1));
int32_t len = 0;
p = strstr(start, TS_PATH_DELIMITER);
if (p == NULL) {
len = (int32_t)strlen(start);
if (TS_ESCAPE_CHAR == *start) {
++start;
char* end = start;
while ('`' != *end) {
++end;
}
len = end - start;
p = ++end;
} else {
len = (int32_t)(p - start);
p = strstr(start, TS_PATH_DELIMITER);
if (p == NULL) {
len = (int32_t)strlen(start);
} else {
len = (int32_t)(p - start);
}
}
// too long account id or too long db name
......@@ -288,6 +294,10 @@ int32_t tNameFromString(SName* dst, const char* str, uint32_t type) {
// too long account id or too long db name
int32_t len = (int32_t)strlen(start);
if (TS_ESCAPE_CHAR == *start) {
len -= 2;
++start;
}
if ((len >= tListLen(dst->tname)) || (len <= 0)) {
return -1;
}
......@@ -340,7 +350,7 @@ void buildChildTableName(RandTableName* rName) {
char temp[8] = {0};
rName->childTableName[0] = 't';
rName->childTableName[1] = '_';
for(int i = 0; i < 16; i++){
for (int i = 0; i < 16; i++) {
sprintf(temp, "%02x", context.digest[i]);
strcat(rName->childTableName, temp);
}
......
......@@ -78,7 +78,10 @@ struct SMeta {
TTB* pTagIdx;
TTB* pTtlIdx;
TTB* pSmaIdx;
TTB* pSmaIdx;
TTB* pTaskIdx;
SMetaIdx* pIdx;
};
......
......@@ -153,7 +153,7 @@ int32_t tqProcessOffsetCommitReq(STQ* pTq, char* msg, int32_t msgLen);
int32_t tqProcessPollReq(STQ* pTq, SRpcMsg* pMsg);
int32_t tqProcessTaskDeployReq(STQ* pTq, char* msg, int32_t msgLen);
int32_t tqProcessTaskDropReq(STQ* pTq, char* msg, int32_t msgLen);
int32_t tqProcessStreamTrigger(STQ* pTq, SSubmitReq* data);
int32_t tqProcessStreamTrigger(STQ* pTq, SSubmitReq* data, int64_t ver);
int32_t tqProcessTaskRunReq(STQ* pTq, SRpcMsg* pMsg);
int32_t tqProcessTaskDispatchReq(STQ* pTq, SRpcMsg* pMsg);
int32_t tqProcessTaskRecoverReq(STQ* pTq, SRpcMsg* pMsg);
......
......@@ -22,6 +22,7 @@ static int tagIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kL
static int ttlIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kLen2);
static int uidIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kLen2);
static int smaIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kLen2);
static int taskIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kLen2);
static int32_t metaInitLock(SMeta *pMeta) { return taosThreadRwlockInit(&pMeta->lock, NULL); }
static int32_t metaDestroyLock(SMeta *pMeta) { return taosThreadRwlockDestroy(&pMeta->lock); }
......@@ -130,6 +131,12 @@ int metaOpen(SVnode *pVnode, SMeta **ppMeta) {
goto _err;
}
ret = tdbTbOpen("stream.task.db", sizeof(int64_t), -1, taskIdxKeyCmpr, pMeta->pEnv, &pMeta->pTaskIdx);
if (ret < 0) {
metaError("vgId: %d, failed to open meta stream task index since %s", TD_VID(pVnode), tstrerror(terrno));
goto _err;
}
// open index
if (metaOpenIdx(pMeta) < 0) {
metaError("vgId:%d, failed to open meta index since %s", TD_VID(pVnode), tstrerror(terrno));
......@@ -143,6 +150,7 @@ int metaOpen(SVnode *pVnode, SMeta **ppMeta) {
_err:
if (pMeta->pIdx) metaCloseIdx(pMeta);
if (pMeta->pTaskIdx) tdbTbClose(pMeta->pTaskIdx);
if (pMeta->pSmaIdx) tdbTbClose(pMeta->pSmaIdx);
if (pMeta->pTtlIdx) tdbTbClose(pMeta->pTtlIdx);
if (pMeta->pTagIvtIdx) indexClose(pMeta->pTagIvtIdx);
......@@ -162,6 +170,7 @@ _err:
int metaClose(SMeta *pMeta) {
if (pMeta) {
if (pMeta->pIdx) metaCloseIdx(pMeta);
if (pMeta->pTaskIdx) tdbTbClose(pMeta->pTaskIdx);
if (pMeta->pSmaIdx) tdbTbClose(pMeta->pSmaIdx);
if (pMeta->pTtlIdx) tdbTbClose(pMeta->pTtlIdx);
if (pMeta->pTagIvtIdx) indexClose(pMeta->pTagIvtIdx);
......@@ -378,3 +387,16 @@ static int smaIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kL
return 0;
}
static int taskIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kLen2) {
int32_t uid1 = *(int32_t *)pKey1;
int32_t uid2 = *(int32_t *)pKey2;
if (uid1 > uid2) {
return 1;
} else if (uid1 < uid2) {
return -1;
}
return 0;
}
......@@ -695,7 +695,7 @@ FAIL:
return -1;
}
int32_t tqProcessStreamTrigger(STQ* pTq, SSubmitReq* pReq) {
int32_t tqProcessStreamTrigger(STQ* pTq, SSubmitReq* pReq, int64_t ver) {
void* pIter = NULL;
bool failed = false;
SStreamDataSubmit* pSubmit = NULL;
......@@ -713,7 +713,7 @@ int32_t tqProcessStreamTrigger(STQ* pTq, SSubmitReq* pReq) {
SStreamTask* pTask = *(SStreamTask**)pIter;
if (!pTask->isDataScan) continue;
qDebug("data submit enqueue stream task: %d", pTask->taskId);
qDebug("data submit enqueue stream task: %d, ver: %ld", pTask->taskId, ver);
if (!failed) {
if (streamTaskInput(pTask, (SStreamQueueItem*)pSubmit) < 0) {
......
......@@ -48,7 +48,7 @@ int32_t tqMetaOpen(STQ* pTq) {
ASSERT(0);
}
if (tdbTbOpen("handles", -1, -1, 0, pTq->pMetaStore, &pTq->pExecStore) < 0) {
if (tdbTbOpen("handles", -1, -1, NULL, pTq->pMetaStore, &pTq->pExecStore) < 0) {
ASSERT(0);
}
......
......@@ -252,7 +252,7 @@ int tqPushMsg(STQ* pTq, void* msg, int32_t msgLen, tmsg_t msgType, int64_t ver)
SSubmitReq* pReq = (SSubmitReq*)data;
pReq->version = ver;
tqProcessStreamTrigger(pTq, data);
tqProcessStreamTrigger(pTq, data, ver);
}
return 0;
......
......@@ -177,7 +177,7 @@ SNode* createCreateDnodeStmt(SAstCreateContext* pCxt, const SToken* pFqdn, const
SNode* createDropDnodeStmt(SAstCreateContext* pCxt, const SToken* pDnode);
SNode* createAlterDnodeStmt(SAstCreateContext* pCxt, const SToken* pDnode, const SToken* pConfig, const SToken* pValue);
SNode* createCreateIndexStmt(SAstCreateContext* pCxt, EIndexType type, bool ignoreExists, SToken* pIndexName,
SToken* pTableName, SNodeList* pCols, SNode* pOptions);
SNode* pRealTable, SNodeList* pCols, SNode* pOptions);
SNode* createIndexOption(SAstCreateContext* pCxt, SNodeList* pFuncs, SNode* pInterval, SNode* pOffset, SNode* pSliding,
SNode* pStreamOptions);
SNode* createDropIndexStmt(SAstCreateContext* pCxt, bool ignoreNotExists, SToken* pIndexName);
......
......@@ -33,6 +33,8 @@
} else {
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INCOMPLETE_SQL);
}
} else if (TSDB_CODE_PAR_DB_NOT_SPECIFIED == pCxt->errCode && TK_NK_FLOAT == TOKEN.type) {
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_SYNTAX_ERROR, TOKEN.z);
}
}
......@@ -422,9 +424,7 @@ from_db_opt(A) ::= FROM db_name(B).
/************************************************ create index ********************************************************/
cmd ::= CREATE SMA INDEX not_exists_opt(D)
index_name(A) ON table_name(B) index_options(C). { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, D, &A, &B, NULL, C); }
//cmd ::= CREATE FULLTEXT INDEX not_exists_opt(D)
// index_name(A) ON table_name(B) NK_LP col_name_list(C) NK_RP. { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_FULLTEXT, D, &A, &B, C, NULL); }
index_name(A) ON full_table_name(B) index_options(C). { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, D, &A, B, NULL, C); }
cmd ::= DROP INDEX exists_opt(B) index_name(A). { pCxt->pRootNode = createDropIndexStmt(pCxt, B, &A); }
index_options(A) ::= FUNCTION NK_LP func_list(B) NK_RP INTERVAL
......
......@@ -1403,9 +1403,9 @@ SNode* createAlterDnodeStmt(SAstCreateContext* pCxt, const SToken* pDnode, const
}
SNode* createCreateIndexStmt(SAstCreateContext* pCxt, EIndexType type, bool ignoreExists, SToken* pIndexName,
SToken* pTableName, SNodeList* pCols, SNode* pOptions) {
SNode* pRealTable, SNodeList* pCols, SNode* pOptions) {
CHECK_PARSER_STATUS(pCxt);
if (!checkIndexName(pCxt, pIndexName) || !checkTableName(pCxt, pTableName) || !checkDbName(pCxt, NULL, true)) {
if (!checkIndexName(pCxt, pIndexName)) {
return NULL;
}
SCreateIndexStmt* pStmt = (SCreateIndexStmt*)nodesMakeNode(QUERY_NODE_CREATE_INDEX_STMT);
......@@ -1413,7 +1413,9 @@ SNode* createCreateIndexStmt(SAstCreateContext* pCxt, EIndexType type, bool igno
pStmt->indexType = type;
pStmt->ignoreExists = ignoreExists;
COPY_STRING_FORM_ID_TOKEN(pStmt->indexName, pIndexName);
COPY_STRING_FORM_ID_TOKEN(pStmt->tableName, pTableName);
strcpy(pStmt->dbName, ((SRealTableNode*)pRealTable)->table.dbName);
strcpy(pStmt->tableName, ((SRealTableNode*)pRealTable)->table.tableName);
nodesDestroyNode(pRealTable);
pStmt->pCols = pCols;
pStmt->pOptions = (SIndexOptions*)pOptions;
return (SNode*)pStmt;
......
......@@ -244,7 +244,10 @@ static int32_t collectMetaKeyFromDropTable(SCollectMetaKeyCxt* pCxt, SDropTableS
}
static int32_t collectMetaKeyFromAlterTable(SCollectMetaKeyCxt* pCxt, SAlterTableStmt* pStmt) {
int32_t code = reserveTableMetaInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, pCxt->pMetaCache);
int32_t code = reserveDbCfgInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pCxt->pMetaCache);
if (TSDB_CODE_SUCCESS == code) {
code = reserveTableMetaInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, pCxt->pMetaCache);
}
if (TSDB_CODE_SUCCESS == code) {
code = reserveTableVgroupInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, pCxt->pMetaCache);
}
......@@ -252,7 +255,11 @@ static int32_t collectMetaKeyFromAlterTable(SCollectMetaKeyCxt* pCxt, SAlterTabl
}
static int32_t collectMetaKeyFromAlterStable(SCollectMetaKeyCxt* pCxt, SAlterTableStmt* pStmt) {
return reserveTableMetaInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, pCxt->pMetaCache);
int32_t code = reserveDbCfgInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pCxt->pMetaCache);
if (TSDB_CODE_SUCCESS == code) {
code = reserveTableMetaInCache(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, pCxt->pMetaCache);
}
return code;
}
static int32_t collectMetaKeyFromUseDatabase(SCollectMetaKeyCxt* pCxt, SUseDatabaseStmt* pStmt) {
......
......@@ -434,7 +434,7 @@ static FORCE_INLINE int32_t checkAndTrimValue(SToken* pToken, char* tmpTokenBuf,
}
static bool isNullStr(SToken* pToken) {
return ((pToken->type == TK_NK_STRING) && (pToken->n != 0) &&
return ((pToken->type == TK_NK_STRING) && (strlen(TSDB_DATA_NULL_STR_L) == pToken->n) &&
(strncasecmp(TSDB_DATA_NULL_STR_L, pToken->z, pToken->n) == 0));
}
......
......@@ -886,8 +886,7 @@ static EDealRes translateNormalValue(STranslateContext* pCxt, SValueNode* pVal,
}
case TSDB_DATA_TYPE_VARCHAR:
case TSDB_DATA_TYPE_VARBINARY: {
if (strict && (!IS_VAR_DATA_TYPE(pVal->node.resType.type) ||
pVal->node.resType.bytes > targetDt.bytes - VARSTR_HEADER_SIZE)) {
if (strict && (pVal->node.resType.bytes > targetDt.bytes - VARSTR_HEADER_SIZE)) {
return generateDealNodeErrMsg(pCxt, TSDB_CODE_PAR_WRONG_VALUE_TYPE, pVal->literal);
}
pVal->datum.p = taosMemoryCalloc(1, targetDt.bytes + 1);
......@@ -907,9 +906,6 @@ static EDealRes translateNormalValue(STranslateContext* pCxt, SValueNode* pVal,
break;
}
case TSDB_DATA_TYPE_NCHAR: {
if (strict && !IS_VAR_DATA_TYPE(pVal->node.resType.type)) {
return generateDealNodeErrMsg(pCxt, TSDB_CODE_PAR_WRONG_VALUE_TYPE, pVal->literal);
}
pVal->datum.p = taosMemoryCalloc(1, targetDt.bytes + 1);
if (NULL == pVal->datum.p) {
return generateDealNodeErrMsg(pCxt, TSDB_CODE_OUT_OF_MEMORY);
......@@ -4127,7 +4123,7 @@ static SSchema* getTagSchema(STableMeta* pTableMeta, const char* pTagName) {
return NULL;
}
static int32_t checkAlterSuperTableImpl(STranslateContext* pCxt, SAlterTableStmt* pStmt, STableMeta* pTableMeta) {
static int32_t checkAlterSuperTableBySchema(STranslateContext* pCxt, SAlterTableStmt* pStmt, STableMeta* pTableMeta) {
SSchema* pTagsSchema = getTableTagSchema(pTableMeta);
if (getNumOfTags(pTableMeta) == 1 && pTagsSchema->type == TSDB_DATA_TYPE_JSON &&
(pStmt->alterType == TSDB_ALTER_TABLE_ADD_TAG || pStmt->alterType == TSDB_ALTER_TABLE_DROP_TAG ||
......@@ -4153,11 +4149,16 @@ static int32_t checkAlterSuperTableImpl(STranslateContext* pCxt, SAlterTableStmt
}
static int32_t checkAlterSuperTable(STranslateContext* pCxt, SAlterTableStmt* pStmt) {
if (TSDB_ALTER_TABLE_UPDATE_TAG_VAL == pStmt->alterType || TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME == pStmt->alterType) {
if (TSDB_ALTER_TABLE_UPDATE_TAG_VAL == pStmt->alterType) {
return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_ALTER_TABLE,
"Set tag value only available for child table");
}
if (TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME == pStmt->alterType) {
return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_ALTER_TABLE,
"Rename column only available for normal table");
}
if (pStmt->alterType == TSDB_ALTER_TABLE_UPDATE_OPTIONS && -1 != pStmt->pOptions->ttl) {
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_ALTER_TABLE);
}
......@@ -4170,10 +4171,21 @@ static int32_t checkAlterSuperTable(STranslateContext* pCxt, SAlterTableStmt* pS
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_COL_JSON);
}
SDbCfgInfo dbCfg = {0};
int32_t code = getDBCfg(pCxt, pStmt->dbName, &dbCfg);
if (TSDB_CODE_SUCCESS == code && NULL != dbCfg.pRetensions &&
(TSDB_ALTER_TABLE_ADD_COLUMN == pStmt->alterType || TSDB_ALTER_TABLE_DROP_COLUMN == pStmt->alterType ||
TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES == pStmt->alterType)) {
return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_ALTER_TABLE,
"Modifying the table schema is not supported in databases "
"configured with the 'RETENTIONS' option");
}
STableMeta* pTableMeta = NULL;
int32_t code = getTableMeta(pCxt, pStmt->dbName, pStmt->tableName, &pTableMeta);
if (TSDB_CODE_SUCCESS == code) {
code = checkAlterSuperTableImpl(pCxt, pStmt, pTableMeta);
code = getTableMeta(pCxt, pStmt->dbName, pStmt->tableName, &pTableMeta);
}
if (TSDB_CODE_SUCCESS == code) {
code = checkAlterSuperTableBySchema(pCxt, pStmt, pTableMeta);
}
taosMemoryFree(pTableMeta);
return code;
......@@ -4311,9 +4323,8 @@ static int32_t getSmaIndexAst(STranslateContext* pCxt, SCreateIndexStmt* pStmt,
static int32_t buildCreateSmaReq(STranslateContext* pCxt, SCreateIndexStmt* pStmt, SMCreateSmaReq* pReq) {
SName name;
tNameExtractFullName(toName(pCxt->pParseCxt->acctId, pCxt->pParseCxt->db, pStmt->indexName, &name), pReq->name);
strcpy(name.tname, pStmt->tableName);
name.tname[strlen(pStmt->tableName)] = '\0';
tNameExtractFullName(&name, pReq->stb);
memset(&name, 0, sizeof(SName));
tNameExtractFullName(toName(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, &name), pReq->stb);
pReq->igExists = pStmt->ignoreExists;
pReq->interval = ((SValueNode*)pStmt->pOptions->pInterval)->datum.i;
pReq->intervalUnit = ((SValueNode*)pStmt->pOptions->pInterval)->unit;
......@@ -4391,7 +4402,7 @@ static int32_t translateCreateSmaIndex(STranslateContext* pCxt, SCreateIndexStmt
static int32_t buildCreateFullTextReq(STranslateContext* pCxt, SCreateIndexStmt* pStmt, SMCreateFullTextReq* pReq) {
// impl later
return 0;
return TSDB_CODE_SUCCESS;
}
static int32_t translateCreateFullTextIndex(STranslateContext* pCxt, SCreateIndexStmt* pStmt) {
......@@ -4405,12 +4416,10 @@ static int32_t translateCreateFullTextIndex(STranslateContext* pCxt, SCreateInde
}
static int32_t translateCreateIndex(STranslateContext* pCxt, SCreateIndexStmt* pStmt) {
if (INDEX_TYPE_SMA == pStmt->indexType) {
return translateCreateSmaIndex(pCxt, pStmt);
} else if (INDEX_TYPE_FULLTEXT == pStmt->indexType) {
if (INDEX_TYPE_FULLTEXT == pStmt->indexType) {
return translateCreateFullTextIndex(pCxt, pStmt);
}
return TSDB_CODE_FAILED;
return translateCreateSmaIndex(pCxt, pStmt);
}
static int32_t translateDropIndex(STranslateContext* pCxt, SDropIndexStmt* pStmt) {
......
......@@ -653,7 +653,7 @@ static int32_t reserveTableReqInCacheImpl(const char* pTbFName, int32_t len, SHa
static int32_t reserveTableReqInCache(int32_t acctId, const char* pDb, const char* pTable, SHashObj** pTables) {
char fullName[TSDB_TABLE_FNAME_LEN];
int32_t len = snprintf(fullName, sizeof(fullName), "%d.%s.%s", acctId, pDb, pTable);
int32_t len = snprintf(fullName, sizeof(fullName), "%d.`%s`.`%s`", acctId, pDb, pTable);
return reserveTableReqInCacheImpl(fullName, len, pTables);
}
......
......@@ -219,82 +219,82 @@ typedef union {
#define YY_ACTTAB_COUNT (2395)
static const YYACTIONTYPE yy_action[] = {
/* 0 */ 433, 1937, 434, 1503, 1654, 1655, 1599, 326, 441, 548,
/* 10 */ 434, 1503, 39, 37, 1936, 143, 1709, 1776, 1934, 1937,
/* 10 */ 434, 1503, 39, 37, 1936, 144, 1709, 1776, 1934, 1937,
/* 20 */ 339, 1469, 1264, 513, 1610, 40, 38, 36, 35, 34,
/* 30 */ 1793, 325, 163, 1341, 1706, 1262, 1934, 124, 1290, 1023,
/* 40 */ 1006, 1022, 104, 1772, 1778, 103, 102, 101, 100, 99,
/* 50 */ 98, 97, 96, 95, 156, 570, 1336, 73, 1811, 344,
/* 60 */ 147, 14, 1653, 1655, 1568, 88, 577, 1647, 1270, 1024,
/* 70 */ 1023, 1762, 1022, 576, 39, 37, 1404, 122, 121, 1604,
/* 80 */ 1010, 1011, 339, 1530, 1264, 469, 1600, 553, 145, 1,
/* 90 */ 1480, 550, 158, 1879, 1880, 1341, 1884, 1262, 1825, 551,
/* 100 */ 1024, 64, 91, 1794, 579, 1796, 1797, 575, 1660, 570,
/* 30 */ 1793, 325, 164, 1341, 1706, 1262, 1934, 125, 1290, 1023,
/* 40 */ 1006, 1022, 105, 1772, 1778, 104, 103, 102, 101, 100,
/* 50 */ 99, 98, 97, 96, 157, 570, 1336, 73, 1811, 344,
/* 60 */ 148, 14, 1653, 1655, 1568, 89, 577, 1647, 1270, 1024,
/* 70 */ 1023, 1762, 1022, 576, 39, 37, 1404, 123, 122, 1604,
/* 80 */ 1010, 1011, 339, 1530, 1264, 469, 1600, 553, 146, 1,
/* 90 */ 1480, 550, 159, 1879, 1880, 1341, 1884, 1262, 1825, 551,
/* 100 */ 1024, 64, 92, 1794, 579, 1796, 1797, 575, 1660, 570,
/* 110 */ 1291, 662, 1871, 1408, 1937, 312, 306, 1867, 1336, 1289,
/* 120 */ 36, 35, 34, 14, 1658, 1343, 1344, 1935, 1937, 104,
/* 130 */ 1270, 1934, 103, 102, 101, 100, 99, 98, 97, 96,
/* 140 */ 95, 164, 450, 1161, 1162, 1934, 639, 638, 637, 636,
/* 150 */ 349, 2, 635, 634, 125, 629, 628, 627, 626, 625,
/* 160 */ 624, 623, 136, 619, 618, 617, 348, 347, 614, 613,
/* 120 */ 36, 35, 34, 14, 1658, 1343, 1344, 1935, 1937, 105,
/* 130 */ 1270, 1934, 104, 103, 102, 101, 100, 99, 98, 97,
/* 140 */ 96, 165, 450, 1161, 1162, 1934, 639, 638, 637, 636,
/* 150 */ 349, 2, 635, 634, 126, 629, 628, 627, 626, 625,
/* 160 */ 624, 623, 137, 619, 618, 617, 348, 347, 614, 613,
/* 170 */ 1265, 316, 1263, 662, 1491, 33, 32, 1466, 1937, 40,
/* 180 */ 38, 36, 35, 34, 30, 261, 63, 1343, 1344, 432,
/* 190 */ 1290, 163, 436, 1268, 1269, 1934, 1318, 1319, 1321, 1322,
/* 190 */ 1290, 164, 436, 1268, 1269, 1934, 1318, 1319, 1321, 1322,
/* 200 */ 1323, 1324, 1325, 1326, 572, 568, 1334, 1335, 1337, 1338,
/* 210 */ 1339, 1340, 1342, 1345, 1468, 1762, 33, 32, 612, 551,
/* 220 */ 40, 38, 36, 35, 34, 1289, 317, 165, 315, 314,
/* 230 */ 610, 473, 1265, 209, 1263, 475, 1425, 354, 113, 112,
/* 240 */ 111, 110, 109, 108, 107, 106, 105, 253, 384, 134,
/* 250 */ 133, 607, 606, 605, 63, 1268, 1269, 474, 1318, 1319,
/* 220 */ 40, 38, 36, 35, 34, 1289, 317, 166, 315, 314,
/* 230 */ 610, 473, 1265, 210, 1263, 475, 1425, 354, 114, 113,
/* 240 */ 112, 111, 110, 109, 108, 107, 106, 253, 384, 135,
/* 250 */ 134, 607, 606, 605, 63, 1268, 1269, 474, 1318, 1319,
/* 260 */ 1321, 1322, 1323, 1324, 1325, 1326, 572, 568, 1334, 1335,
/* 270 */ 1337, 1338, 1339, 1340, 1342, 1345, 39, 37, 1937, 534,
/* 280 */ 1423, 1424, 1426, 1427, 339, 303, 1264, 378, 43, 75,
/* 290 */ 305, 162, 221, 515, 1793, 1934, 1320, 1341, 1435, 1262,
/* 290 */ 305, 163, 222, 515, 1793, 1934, 1320, 1341, 1435, 1262,
/* 300 */ 1119, 601, 600, 599, 1123, 598, 1125, 1126, 597, 1128,
/* 310 */ 594, 487, 1134, 591, 1136, 1137, 588, 585, 440, 1811,
/* 320 */ 1336, 436, 1811, 537, 165, 14, 497, 541, 1937, 1461,
/* 320 */ 1336, 436, 1811, 537, 166, 14, 497, 541, 1937, 1461,
/* 330 */ 577, 1699, 1270, 551, 377, 1762, 376, 576, 39, 37,
/* 340 */ 208, 162, 170, 63, 548, 1934, 339, 49, 1264, 525,
/* 350 */ 665, 1244, 1245, 2, 490, 1490, 222, 223, 484, 1341,
/* 360 */ 55, 1262, 1825, 207, 268, 540, 93, 1794, 579, 1796,
/* 370 */ 1797, 575, 124, 570, 1289, 662, 1871, 1608, 154, 143,
/* 340 */ 209, 163, 171, 63, 548, 1934, 339, 49, 1264, 525,
/* 350 */ 665, 1244, 1245, 2, 490, 1490, 223, 224, 484, 1341,
/* 360 */ 55, 1262, 1825, 208, 268, 540, 94, 1794, 579, 1796,
/* 370 */ 1797, 575, 125, 570, 1289, 662, 1871, 1608, 155, 144,
/* 380 */ 1870, 1867, 1336, 655, 651, 647, 643, 266, 1611, 1343,
/* 390 */ 1344, 1270, 165, 1264, 1270, 58, 1762, 216, 57, 1489,
/* 390 */ 1344, 1270, 166, 1264, 1270, 58, 1762, 217, 57, 1489,
/* 400 */ 543, 538, 42, 39, 37, 1346, 1262, 1780, 496, 1488,
/* 410 */ 548, 339, 122, 1264, 305, 8, 1460, 515, 1776, 89,
/* 420 */ 73, 494, 231, 492, 1341, 542, 1262, 159, 1879, 1880,
/* 430 */ 63, 1884, 77, 119, 1265, 1351, 1263, 662, 124, 1270,
/* 410 */ 548, 339, 123, 1264, 305, 8, 1460, 515, 1776, 90,
/* 420 */ 73, 494, 231, 492, 1341, 542, 1262, 160, 1879, 1880,
/* 430 */ 63, 1884, 77, 120, 1265, 1351, 1263, 662, 125, 1270,
/* 440 */ 1762, 1289, 1603, 63, 1772, 1778, 328, 1336, 479, 478,
/* 450 */ 1762, 1343, 1344, 11, 10, 522, 570, 1268, 1269, 1270,
/* 460 */ 1318, 1319, 1321, 1322, 1323, 1324, 1325, 1326, 572, 568,
/* 470 */ 1334, 1335, 1337, 1338, 1339, 1340, 1342, 1345, 122, 215,
/* 480 */ 9, 165, 662, 482, 481, 165, 171, 218, 1586, 195,
/* 490 */ 120, 633, 631, 160, 1879, 1880, 1265, 1884, 1263, 1660,
/* 500 */ 477, 480, 662, 149, 61, 1236, 327, 211, 467, 463,
/* 510 */ 459, 455, 194, 1585, 76, 1658, 1343, 1344, 71, 1268,
/* 470 */ 1334, 1335, 1337, 1338, 1339, 1340, 1342, 1345, 123, 216,
/* 480 */ 9, 166, 662, 482, 481, 166, 172, 219, 1586, 196,
/* 490 */ 121, 633, 631, 161, 1879, 1880, 1265, 1884, 1263, 1660,
/* 500 */ 477, 480, 662, 150, 61, 1236, 327, 212, 467, 463,
/* 510 */ 459, 455, 195, 1585, 76, 1658, 1343, 1344, 71, 1268,
/* 520 */ 1269, 70, 1318, 1319, 1321, 1322, 1323, 1324, 1325, 1326,
/* 530 */ 572, 568, 1334, 1335, 1337, 1338, 1339, 1340, 1342, 1345,
/* 540 */ 165, 1265, 1377, 1263, 74, 1583, 1288, 192, 450, 81,
/* 550 */ 33, 32, 342, 165, 40, 38, 36, 35, 34, 1533,
/* 560 */ 143, 1265, 1584, 1263, 1268, 1269, 621, 512, 165, 1610,
/* 540 */ 166, 1265, 1377, 1263, 74, 1583, 1288, 193, 450, 82,
/* 550 */ 33, 32, 342, 166, 40, 38, 36, 35, 34, 1533,
/* 560 */ 144, 1265, 1584, 1263, 1268, 1269, 621, 512, 166, 1610,
/* 570 */ 1601, 1699, 33, 32, 1010, 1011, 40, 38, 36, 35,
/* 580 */ 34, 165, 173, 604, 1268, 1269, 1081, 1318, 1319, 1321,
/* 580 */ 34, 166, 174, 604, 1268, 1269, 1081, 1318, 1319, 1321,
/* 590 */ 1322, 1323, 1324, 1325, 1326, 572, 568, 1334, 1335, 1337,
/* 600 */ 1338, 1339, 1340, 1342, 1345, 39, 37, 22, 1937, 191,
/* 610 */ 184, 1793, 189, 339, 610, 1264, 446, 1597, 1320, 1083,
/* 620 */ 513, 162, 612, 482, 481, 1934, 1341, 525, 1262, 1593,
/* 630 */ 120, 1707, 182, 134, 133, 607, 606, 605, 114, 1811,
/* 600 */ 1338, 1339, 1340, 1342, 1345, 39, 37, 22, 1937, 192,
/* 610 */ 185, 1793, 190, 339, 610, 1264, 446, 1597, 1320, 1083,
/* 620 */ 513, 163, 612, 482, 481, 1934, 1341, 525, 1262, 1593,
/* 630 */ 121, 1707, 183, 135, 134, 607, 606, 605, 115, 1811,
/* 640 */ 477, 480, 7, 345, 548, 471, 610, 577, 1487, 1336,
/* 650 */ 438, 143, 1762, 525, 576, 1608, 1287, 1595, 419, 352,
/* 660 */ 1610, 1270, 351, 1365, 167, 134, 133, 607, 606, 605,
/* 670 */ 33, 32, 124, 1486, 40, 38, 36, 35, 34, 1825,
/* 650 */ 438, 144, 1762, 525, 576, 1608, 1287, 1595, 419, 352,
/* 660 */ 1610, 1270, 351, 1365, 168, 135, 134, 607, 606, 605,
/* 670 */ 33, 32, 125, 1486, 40, 38, 36, 35, 34, 1825,
/* 680 */ 1485, 1608, 9, 280, 1794, 579, 1796, 1797, 575, 1762,
/* 690 */ 570, 33, 32, 553, 505, 40, 38, 36, 35, 34,
/* 700 */ 1937, 33, 32, 1937, 662, 40, 38, 36, 35, 34,
/* 710 */ 175, 174, 122, 162, 1762, 498, 162, 1934, 1343, 1344,
/* 710 */ 176, 175, 123, 163, 1762, 498, 163, 1934, 1343, 1344,
/* 720 */ 1934, 1762, 1705, 307, 300, 27, 1484, 251, 1879, 547,
/* 730 */ 525, 546, 39, 37, 1937, 1370, 1483, 302, 1886, 1287,
/* 740 */ 339, 114, 1264, 525, 307, 555, 412, 164, 476, 424,
/* 750 */ 1591, 1934, 1303, 1341, 382, 1262, 1937, 212, 1608, 373,
/* 760 */ 1363, 1886, 1883, 1265, 1509, 1263, 397, 1762, 425, 162,
/* 740 */ 339, 115, 1264, 525, 307, 555, 412, 165, 476, 424,
/* 750 */ 1591, 1934, 1303, 1341, 382, 1262, 1937, 213, 1608, 373,
/* 760 */ 1363, 1886, 1883, 1265, 1509, 1263, 397, 1762, 425, 163,
/* 770 */ 399, 1608, 1482, 1934, 1479, 1292, 1336, 1762, 375, 371,
/* 780 */ 1704, 1363, 300, 1415, 1478, 1882, 1268, 1269, 1270, 1318,
/* 790 */ 1319, 1321, 1322, 1323, 1324, 1325, 1326, 572, 568, 1334,
......@@ -311,111 +311,111 @@ static const YYACTIONTYPE yy_action[] = {
/* 900 */ 1359, 1360, 1361, 1362, 1366, 1367, 1368, 1369, 1471, 1762,
/* 910 */ 1793, 1881, 233, 1268, 1269, 1762, 1318, 1319, 1321, 1322,
/* 920 */ 1323, 1324, 1325, 1326, 572, 568, 1334, 1335, 1337, 1338,
/* 930 */ 1339, 1340, 1342, 1345, 525, 144, 525, 525, 1811, 1273,
/* 930 */ 1339, 1340, 1342, 1345, 525, 145, 525, 525, 1811, 1273,
/* 940 */ 279, 525, 1891, 1397, 548, 383, 577, 389, 404, 1762,
/* 950 */ 603, 1762, 405, 576, 277, 60, 273, 132, 59, 1638,
/* 960 */ 44, 4, 1608, 1749, 1608, 1608, 1481, 553, 200, 1608,
/* 970 */ 525, 198, 124, 1520, 178, 429, 427, 1780, 1825, 1515,
/* 980 */ 560, 449, 91, 1794, 579, 1796, 1797, 575, 1776, 570,
/* 990 */ 566, 202, 1871, 553, 201, 483, 306, 1867, 1608, 336,
/* 1000 */ 335, 485, 525, 41, 54, 557, 63, 220, 1937, 1278,
/* 1010 */ 361, 1513, 122, 1605, 1772, 1778, 334, 53, 509, 1320,
/* 1020 */ 1341, 162, 1271, 11, 10, 1934, 570, 251, 1879, 547,
/* 1030 */ 1608, 546, 256, 488, 1937, 525, 204, 1781, 206, 203,
/* 1040 */ 128, 205, 1793, 1336, 90, 131, 1737, 162, 1776, 51,
/* 1050 */ 1213, 1934, 33, 32, 224, 1270, 40, 38, 36, 35,
/* 1060 */ 34, 33, 32, 1608, 132, 40, 38, 36, 35, 34,
/* 950 */ 603, 1762, 405, 576, 277, 60, 273, 133, 59, 1638,
/* 960 */ 44, 4, 1608, 1749, 1608, 1608, 1481, 553, 201, 1608,
/* 970 */ 525, 199, 125, 1520, 179, 429, 427, 1780, 1825, 1515,
/* 980 */ 560, 449, 92, 1794, 579, 1796, 1797, 575, 1776, 570,
/* 990 */ 566, 203, 1871, 553, 202, 483, 306, 1867, 1608, 336,
/* 1000 */ 335, 485, 525, 41, 54, 557, 63, 221, 1937, 1278,
/* 1010 */ 361, 1513, 123, 1605, 1772, 1778, 334, 53, 509, 1320,
/* 1020 */ 1341, 163, 1271, 11, 10, 1934, 570, 251, 1879, 547,
/* 1030 */ 1608, 546, 256, 488, 1937, 525, 205, 1781, 207, 204,
/* 1040 */ 129, 206, 1793, 1336, 91, 132, 1737, 163, 1776, 51,
/* 1050 */ 1213, 1934, 33, 32, 225, 1270, 40, 38, 36, 35,
/* 1060 */ 34, 33, 32, 1608, 133, 40, 38, 36, 35, 34,
/* 1070 */ 1811, 525, 1463, 1464, 1772, 1778, 1276, 1569, 552, 68,
/* 1080 */ 67, 381, 506, 1762, 169, 576, 570, 518, 51, 1783,
/* 1090 */ 615, 535, 230, 1272, 87, 468, 1371, 1400, 565, 1608,
/* 1100 */ 301, 499, 237, 369, 84, 367, 363, 359, 356, 353,
/* 1110 */ 1825, 1112, 1069, 41, 92, 1794, 579, 1796, 1797, 575,
/* 1080 */ 67, 381, 506, 1762, 170, 576, 570, 518, 468, 1783,
/* 1090 */ 615, 535, 230, 1272, 88, 245, 1371, 1400, 565, 1608,
/* 1100 */ 301, 499, 51, 369, 85, 367, 363, 359, 356, 353,
/* 1110 */ 1825, 1112, 1069, 237, 93, 1794, 579, 1796, 1797, 575,
/* 1120 */ 525, 570, 1355, 525, 1871, 525, 525, 525, 330, 1867,
/* 1130 */ 157, 510, 1785, 1050, 523, 1422, 524, 262, 346, 616,
/* 1140 */ 41, 1793, 161, 1303, 165, 245, 350, 1504, 1608, 240,
/* 1150 */ 1897, 1608, 583, 1608, 1608, 1608, 1812, 1279, 131, 1274,
/* 1160 */ 1327, 1067, 1648, 132, 1901, 116, 1051, 549, 250, 1811,
/* 1170 */ 255, 258, 3, 260, 131, 5, 355, 552, 313, 360,
/* 1180 */ 1282, 1284, 1762, 1793, 576, 561, 1229, 272, 172, 269,
/* 1190 */ 385, 1287, 568, 1334, 1335, 1337, 1338, 1339, 1340, 1140,
/* 1200 */ 406, 142, 1701, 413, 421, 1144, 420, 422, 558, 1825,
/* 1210 */ 1151, 1811, 1149, 92, 1794, 579, 1796, 1797, 575, 577,
/* 1220 */ 570, 135, 426, 1871, 1762, 428, 576, 330, 1867, 157,
/* 1230 */ 1275, 1293, 431, 430, 439, 1296, 1793, 1295, 442, 181,
/* 1240 */ 183, 443, 444, 1297, 447, 445, 186, 188, 1294, 1898,
/* 1250 */ 448, 1825, 190, 1793, 72, 92, 1794, 579, 1796, 1797,
/* 1260 */ 575, 193, 570, 451, 1811, 1871, 470, 1742, 500, 330,
/* 1270 */ 1867, 1950, 577, 472, 1598, 304, 197, 1762, 1594, 576,
/* 1280 */ 1905, 1811, 199, 115, 137, 507, 138, 1596, 1592, 577,
/* 1290 */ 210, 139, 270, 501, 1762, 140, 576, 213, 511, 322,
/* 1300 */ 533, 217, 514, 129, 1825, 519, 226, 271, 92, 1794,
/* 1310 */ 579, 1796, 1797, 575, 1292, 570, 1793, 504, 1871, 520,
/* 1320 */ 1741, 1825, 330, 1867, 1950, 92, 1794, 579, 1796, 1797,
/* 1330 */ 575, 228, 570, 1928, 1711, 1871, 516, 130, 324, 330,
/* 1340 */ 1867, 1950, 80, 521, 1811, 1609, 536, 1902, 529, 531,
/* 1350 */ 1890, 235, 577, 239, 6, 532, 1912, 1762, 329, 576,
/* 1360 */ 545, 539, 530, 528, 527, 1397, 1793, 123, 249, 1291,
/* 1370 */ 1887, 562, 1911, 553, 559, 331, 1793, 48, 82, 1893,
/* 1380 */ 581, 1652, 1581, 658, 1825, 274, 659, 246, 286, 1794,
/* 1390 */ 579, 1796, 1797, 575, 1811, 570, 52, 265, 244, 248,
/* 1400 */ 151, 254, 577, 1933, 1811, 1953, 661, 1762, 247, 576,
/* 1410 */ 1852, 150, 577, 276, 1937, 287, 1756, 1762, 1793, 576,
/* 1420 */ 297, 278, 296, 553, 556, 563, 1755, 164, 257, 65,
/* 1430 */ 1754, 1934, 1753, 66, 1825, 259, 1750, 357, 286, 1794,
/* 1440 */ 579, 1796, 1797, 575, 1825, 570, 1811, 358, 93, 1794,
/* 1450 */ 579, 1796, 1797, 575, 574, 570, 1256, 1257, 1871, 1762,
/* 1460 */ 168, 576, 564, 1867, 1937, 362, 1748, 366, 364, 365,
/* 1470 */ 1747, 368, 1793, 370, 1745, 372, 1744, 162, 1746, 374,
/* 1480 */ 1232, 1934, 1231, 1722, 1793, 1721, 1825, 379, 1720, 380,
/* 1130 */ 158, 510, 1785, 1050, 227, 525, 523, 524, 262, 616,
/* 1140 */ 41, 1793, 162, 1303, 166, 350, 346, 1504, 1608, 1422,
/* 1150 */ 1897, 1608, 41, 1608, 1608, 1608, 1812, 1279, 583, 1274,
/* 1160 */ 240, 1067, 1648, 1608, 1901, 132, 1051, 549, 255, 1811,
/* 1170 */ 250, 258, 3, 260, 133, 117, 355, 552, 132, 5,
/* 1180 */ 1282, 1284, 1762, 1793, 576, 561, 360, 1327, 313, 269,
/* 1190 */ 173, 1229, 568, 1334, 1335, 1337, 1338, 1339, 1340, 272,
/* 1200 */ 385, 143, 1287, 406, 1701, 1140, 421, 413, 558, 1825,
/* 1210 */ 426, 1811, 1144, 93, 1794, 579, 1796, 1797, 575, 577,
/* 1220 */ 570, 1151, 1149, 1871, 1762, 136, 576, 330, 1867, 158,
/* 1230 */ 1275, 420, 422, 428, 430, 1293, 1793, 431, 1296, 439,
/* 1240 */ 182, 443, 442, 184, 444, 1295, 1297, 447, 445, 1898,
/* 1250 */ 187, 1825, 189, 1793, 1294, 93, 1794, 579, 1796, 1797,
/* 1260 */ 575, 448, 570, 191, 1811, 1871, 72, 451, 194, 330,
/* 1270 */ 1867, 1950, 577, 472, 470, 304, 1598, 1762, 198, 576,
/* 1280 */ 1905, 1811, 116, 1594, 1742, 211, 200, 500, 138, 577,
/* 1290 */ 270, 139, 1596, 507, 1762, 1592, 576, 140, 141, 214,
/* 1300 */ 511, 218, 322, 501, 1825, 533, 519, 1292, 93, 1794,
/* 1310 */ 579, 1796, 1797, 575, 1609, 570, 1793, 228, 1871, 504,
/* 1320 */ 130, 1825, 330, 1867, 1950, 93, 1794, 579, 1796, 1797,
/* 1330 */ 575, 514, 570, 1928, 1741, 1871, 1711, 516, 131, 330,
/* 1340 */ 1867, 1950, 324, 521, 1811, 271, 81, 520, 1902, 529,
/* 1350 */ 1890, 235, 577, 536, 239, 6, 1912, 1762, 531, 576,
/* 1360 */ 545, 532, 530, 329, 539, 1911, 1793, 528, 527, 1397,
/* 1370 */ 124, 249, 1291, 553, 562, 559, 1793, 48, 331, 1887,
/* 1380 */ 83, 581, 1652, 246, 1825, 248, 1893, 265, 286, 1794,
/* 1390 */ 579, 1796, 1797, 575, 1811, 570, 658, 274, 1581, 659,
/* 1400 */ 247, 1933, 577, 661, 1811, 52, 244, 1762, 151, 576,
/* 1410 */ 152, 1852, 577, 276, 1937, 287, 297, 1762, 1793, 576,
/* 1420 */ 278, 1756, 296, 553, 254, 1755, 556, 165, 257, 1953,
/* 1430 */ 65, 1934, 1754, 1753, 1825, 66, 1750, 259, 286, 1794,
/* 1440 */ 579, 1796, 1797, 575, 1825, 570, 1811, 563, 94, 1794,
/* 1450 */ 579, 1796, 1797, 575, 574, 570, 358, 357, 1871, 1762,
/* 1460 */ 362, 576, 564, 1867, 1937, 1256, 1257, 1748, 1747, 169,
/* 1470 */ 364, 366, 1793, 365, 1746, 370, 368, 163, 1745, 372,
/* 1480 */ 1744, 1934, 374, 1232, 1793, 1231, 1825, 1722, 1721, 380,
/* 1490 */ 294, 1794, 579, 1796, 1797, 575, 573, 570, 567, 1843,
/* 1500 */ 1811, 1719, 1201, 1694, 126, 1693, 1692, 1691, 577, 69,
/* 1510 */ 1690, 1689, 1811, 1762, 1688, 576, 1687, 1686, 395, 396,
/* 1520 */ 577, 1685, 398, 1684, 1683, 1762, 1682, 576, 1681, 1680,
/* 1530 */ 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670,
/* 1540 */ 1825, 1793, 127, 1669, 146, 1794, 579, 1796, 1797, 575,
/* 1550 */ 1668, 570, 1825, 180, 176, 1534, 93, 1794, 579, 1796,
/* 1560 */ 1797, 575, 1667, 570, 1666, 1793, 1871, 1203, 1664, 1811,
/* 1570 */ 1665, 1868, 1663, 1662, 323, 1661, 1535, 577, 177, 1532,
/* 1580 */ 1500, 117, 1762, 1793, 576, 1013, 179, 435, 554, 1951,
/* 1590 */ 155, 1012, 437, 1811, 1499, 118, 1735, 1729, 526, 1718,
/* 1600 */ 185, 577, 187, 1717, 1703, 1587, 1762, 1531, 576, 1825,
/* 1610 */ 1043, 1811, 1529, 295, 1794, 579, 1796, 1797, 575, 577,
/* 1620 */ 570, 452, 454, 1527, 1762, 453, 576, 456, 457, 458,
/* 1630 */ 1525, 461, 462, 1825, 1523, 460, 464, 295, 1794, 579,
/* 1640 */ 1796, 1797, 575, 1512, 570, 1793, 1511, 466, 1496, 465,
/* 1650 */ 1589, 1825, 50, 196, 1154, 290, 1794, 579, 1796, 1797,
/* 1660 */ 575, 1155, 570, 1793, 1588, 630, 1080, 632, 1077, 1075,
/* 1670 */ 1076, 1521, 1516, 1811, 318, 319, 486, 1514, 320, 489,
/* 1680 */ 1495, 577, 1494, 1493, 491, 495, 1762, 94, 576, 493,
/* 1690 */ 1734, 1811, 1238, 544, 1728, 502, 1716, 56, 141, 574,
/* 1700 */ 1714, 1715, 1713, 214, 1762, 1712, 576, 15, 503, 321,
/* 1710 */ 219, 1710, 1702, 1825, 225, 1793, 229, 146, 1794, 579,
/* 1720 */ 1796, 1797, 575, 227, 570, 508, 78, 79, 84, 517,
/* 1730 */ 41, 1825, 232, 1793, 23, 294, 1794, 579, 1796, 1797,
/* 1740 */ 575, 1248, 570, 1811, 1844, 1437, 16, 234, 338, 236,
/* 1750 */ 1419, 577, 47, 242, 238, 148, 1762, 1793, 576, 1421,
/* 1760 */ 1414, 1811, 1952, 241, 24, 243, 340, 1783, 83, 577,
/* 1770 */ 25, 1394, 252, 46, 1762, 1393, 576, 1782, 1454, 152,
/* 1780 */ 18, 1443, 1449, 1825, 1448, 1811, 332, 295, 1794, 579,
/* 1790 */ 1796, 1797, 575, 577, 570, 1453, 17, 1452, 1762, 333,
/* 1800 */ 576, 1825, 10, 1280, 1356, 295, 1794, 579, 1796, 1797,
/* 1810 */ 575, 19, 570, 1793, 45, 1331, 13, 1828, 569, 153,
/* 1820 */ 166, 1311, 580, 578, 1329, 1825, 1328, 1793, 31, 281,
/* 1830 */ 1794, 579, 1796, 1797, 575, 12, 570, 20, 582, 21,
/* 1840 */ 341, 1811, 1141, 584, 586, 1138, 587, 589, 1135, 577,
/* 1850 */ 590, 592, 595, 1129, 1762, 1811, 576, 1127, 593, 596,
/* 1860 */ 1118, 85, 1150, 577, 86, 62, 1133, 602, 1762, 1793,
/* 1870 */ 576, 263, 1132, 1146, 1072, 1041, 611, 1071, 1131, 1793,
/* 1880 */ 1070, 1825, 1068, 1066, 1130, 282, 1794, 579, 1796, 1797,
/* 1890 */ 575, 1065, 570, 1064, 1087, 1825, 264, 1811, 620, 289,
/* 1900 */ 1794, 579, 1796, 1797, 575, 577, 570, 1811, 1062, 1061,
/* 1910 */ 1762, 1060, 576, 1059, 1058, 577, 1057, 1056, 1084, 1082,
/* 1920 */ 1762, 1793, 576, 1053, 1047, 1528, 1052, 1526, 1049, 1048,
/* 1930 */ 1046, 640, 641, 644, 645, 1524, 642, 1825, 646, 648,
/* 1940 */ 650, 291, 1794, 579, 1796, 1797, 575, 1825, 570, 1811,
/* 1950 */ 649, 283, 1794, 579, 1796, 1797, 575, 577, 570, 1522,
/* 1960 */ 653, 652, 1762, 654, 576, 1510, 656, 1003, 1492, 267,
/* 1970 */ 660, 1467, 1266, 275, 1793, 663, 664, 1467, 1467, 1467,
/* 1500 */ 1811, 379, 1720, 1719, 1201, 1694, 127, 1693, 577, 1692,
/* 1510 */ 1691, 69, 1811, 1762, 1690, 576, 1689, 1688, 1687, 1686,
/* 1520 */ 577, 395, 1685, 398, 396, 1762, 1684, 576, 1683, 1682,
/* 1530 */ 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672,
/* 1540 */ 1825, 1793, 1671, 128, 147, 1794, 579, 1796, 1797, 575,
/* 1550 */ 1670, 570, 1825, 180, 177, 1534, 94, 1794, 579, 1796,
/* 1560 */ 1797, 575, 1669, 570, 1668, 1793, 1871, 1203, 1664, 1811,
/* 1570 */ 1667, 1868, 1666, 1665, 323, 1663, 1662, 577, 1661, 1535,
/* 1580 */ 178, 1532, 1762, 1793, 576, 1500, 118, 156, 554, 1951,
/* 1590 */ 1499, 1013, 435, 1811, 1012, 437, 181, 119, 526, 1735,
/* 1600 */ 1729, 577, 1718, 188, 186, 1717, 1762, 1703, 576, 1825,
/* 1610 */ 1587, 1811, 1531, 295, 1794, 579, 1796, 1797, 575, 577,
/* 1620 */ 570, 1043, 1529, 452, 1762, 454, 576, 1527, 456, 453,
/* 1630 */ 457, 458, 1525, 1825, 461, 462, 460, 295, 1794, 579,
/* 1640 */ 1796, 1797, 575, 1523, 570, 1793, 464, 466, 1512, 1511,
/* 1650 */ 465, 1825, 1496, 1589, 1588, 290, 1794, 579, 1796, 1797,
/* 1660 */ 575, 50, 570, 1793, 1155, 197, 1154, 630, 1080, 632,
/* 1670 */ 1077, 1076, 1075, 1811, 1521, 1516, 1514, 318, 319, 486,
/* 1680 */ 320, 577, 489, 1495, 1494, 1493, 1762, 495, 576, 95,
/* 1690 */ 1734, 1811, 491, 544, 493, 1238, 1728, 56, 142, 574,
/* 1700 */ 502, 1716, 1714, 1715, 1762, 503, 576, 1713, 215, 321,
/* 1710 */ 508, 1712, 15, 1825, 226, 1793, 1710, 147, 1794, 579,
/* 1720 */ 1796, 1797, 575, 1248, 570, 1702, 517, 220, 78, 80,
/* 1730 */ 79, 1825, 232, 1793, 23, 294, 1794, 579, 1796, 1797,
/* 1740 */ 575, 85, 570, 1811, 1844, 243, 16, 229, 338, 41,
/* 1750 */ 1783, 577, 1437, 234, 17, 238, 1762, 1793, 576, 252,
/* 1760 */ 236, 1811, 1952, 1419, 47, 242, 340, 1421, 149, 577,
/* 1770 */ 241, 24, 25, 46, 1762, 1449, 576, 1414, 84, 1782,
/* 1780 */ 153, 18, 1394, 1825, 1393, 1811, 45, 295, 1794, 579,
/* 1790 */ 1796, 1797, 575, 577, 570, 1454, 1448, 13, 1762, 1443,
/* 1800 */ 576, 1825, 332, 1453, 1452, 295, 1794, 579, 1796, 1797,
/* 1810 */ 575, 333, 570, 1793, 10, 1280, 19, 1828, 154, 1311,
/* 1820 */ 569, 1356, 582, 167, 31, 1825, 1331, 1793, 12, 281,
/* 1830 */ 1794, 579, 1796, 1797, 575, 1329, 570, 1328, 20, 21,
/* 1840 */ 341, 1811, 580, 1141, 584, 587, 578, 1138, 586, 577,
/* 1850 */ 1135, 589, 590, 592, 1762, 1811, 576, 595, 1118, 1133,
/* 1860 */ 1129, 1127, 1150, 577, 593, 1132, 602, 596, 1762, 1793,
/* 1870 */ 576, 1131, 1130, 263, 86, 87, 1146, 62, 611, 1793,
/* 1880 */ 1072, 1825, 1041, 1071, 1070, 282, 1794, 579, 1796, 1797,
/* 1890 */ 575, 1068, 570, 1066, 1065, 1825, 1064, 1811, 620, 289,
/* 1900 */ 1794, 579, 1796, 1797, 575, 577, 570, 1811, 1087, 264,
/* 1910 */ 1762, 1062, 576, 1061, 1060, 577, 1059, 1058, 1057, 1056,
/* 1920 */ 1762, 1793, 576, 1084, 1082, 1047, 1053, 1528, 1052, 1049,
/* 1930 */ 1526, 1048, 1046, 640, 641, 644, 1524, 1825, 642, 648,
/* 1940 */ 646, 291, 1794, 579, 1796, 1797, 575, 1825, 570, 1811,
/* 1950 */ 650, 283, 1794, 579, 1796, 1797, 575, 577, 570, 645,
/* 1960 */ 649, 1522, 1762, 652, 576, 653, 1510, 656, 654, 1003,
/* 1970 */ 1492, 267, 660, 663, 1793, 1266, 275, 664, 1467, 1467,
/* 1980 */ 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1825,
/* 1990 */ 1467, 1467, 1793, 292, 1794, 579, 1796, 1797, 575, 1467,
/* 2000 */ 570, 1467, 1811, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
......@@ -568,96 +568,96 @@ static const YYCODETYPE yy_lookahead[] = {
/* 1050 */ 90, 375, 8, 9, 90, 68, 12, 13, 14, 15,
/* 1060 */ 16, 8, 9, 296, 43, 12, 13, 14, 15, 16,
/* 1070 */ 288, 268, 125, 126, 327, 328, 172, 277, 296, 162,
/* 1080 */ 163, 164, 279, 301, 167, 303, 339, 90, 43, 46,
/* 1090 */ 13, 369, 90, 35, 89, 269, 90, 228, 111, 296,
/* 1080 */ 163, 164, 279, 301, 167, 303, 339, 90, 269, 46,
/* 1090 */ 13, 369, 90, 35, 89, 365, 90, 228, 111, 296,
/* 1100 */ 183, 324, 43, 186, 99, 188, 189, 190, 191, 192,
/* 1110 */ 328, 90, 35, 43, 332, 333, 334, 335, 336, 337,
/* 1120 */ 268, 339, 193, 268, 342, 268, 268, 268, 346, 347,
/* 1130 */ 348, 279, 89, 35, 279, 90, 279, 279, 279, 13,
/* 1140 */ 43, 260, 360, 90, 227, 365, 269, 267, 296, 90,
/* 1130 */ 348, 279, 89, 35, 279, 268, 279, 279, 279, 13,
/* 1140 */ 43, 260, 360, 90, 227, 269, 279, 267, 296, 90,
/* 1150 */ 368, 296, 43, 296, 296, 296, 288, 170, 43, 172,
/* 1160 */ 90, 35, 300, 43, 331, 43, 68, 356, 349, 288,
/* 1170 */ 372, 372, 359, 372, 43, 229, 326, 296, 325, 47,
/* 1180 */ 193, 194, 301, 260, 303, 248, 168, 90, 42, 319,
/* 1190 */ 308, 20, 205, 206, 207, 208, 209, 210, 211, 90,
/* 1200 */ 268, 157, 268, 308, 152, 90, 306, 306, 246, 328,
/* 1210 */ 90, 288, 90, 332, 333, 334, 335, 336, 337, 296,
/* 1220 */ 339, 90, 268, 342, 301, 268, 303, 346, 347, 348,
/* 1230 */ 172, 20, 262, 268, 262, 20, 260, 20, 323, 272,
/* 1240 */ 272, 303, 316, 20, 316, 318, 272, 272, 20, 368,
/* 1250 */ 309, 328, 272, 260, 272, 332, 333, 334, 335, 336,
/* 1260 */ 337, 272, 339, 268, 288, 342, 262, 301, 175, 346,
/* 1270 */ 347, 348, 296, 288, 288, 262, 288, 301, 288, 303,
/* 1280 */ 357, 288, 288, 268, 288, 268, 288, 288, 288, 296,
/* 1290 */ 270, 288, 323, 322, 301, 288, 303, 270, 268, 316,
/* 1300 */ 234, 270, 301, 312, 328, 154, 296, 284, 332, 333,
/* 1310 */ 334, 335, 336, 337, 20, 339, 260, 303, 342, 310,
/* 1320 */ 301, 328, 346, 347, 348, 332, 333, 334, 335, 336,
/* 1330 */ 337, 270, 339, 357, 301, 342, 301, 312, 301, 346,
/* 1340 */ 347, 348, 270, 309, 288, 296, 235, 331, 301, 301,
/* 1350 */ 357, 312, 296, 312, 241, 301, 364, 301, 301, 303,
/* 1360 */ 161, 301, 243, 242, 230, 226, 260, 296, 326, 20,
/* 1370 */ 330, 247, 364, 317, 245, 250, 260, 89, 89, 367,
/* 1380 */ 292, 301, 278, 36, 328, 268, 263, 363, 332, 333,
/* 1390 */ 334, 335, 336, 337, 288, 339, 320, 270, 366, 361,
/* 1400 */ 364, 373, 296, 374, 288, 379, 262, 301, 362, 303,
/* 1410 */ 345, 315, 296, 271, 358, 282, 0, 301, 260, 303,
/* 1420 */ 282, 258, 282, 317, 374, 374, 0, 371, 373, 177,
/* 1430 */ 0, 375, 0, 42, 328, 373, 0, 35, 332, 333,
/* 1440 */ 334, 335, 336, 337, 328, 339, 288, 187, 332, 333,
/* 1450 */ 334, 335, 336, 337, 296, 339, 35, 35, 342, 301,
/* 1460 */ 35, 303, 346, 347, 358, 187, 0, 187, 35, 35,
/* 1470 */ 0, 187, 260, 35, 0, 22, 0, 371, 0, 35,
/* 1480 */ 172, 375, 170, 0, 260, 0, 328, 166, 0, 165,
/* 1160 */ 90, 35, 300, 296, 331, 43, 68, 356, 372, 288,
/* 1170 */ 349, 372, 359, 372, 43, 43, 326, 296, 43, 229,
/* 1180 */ 193, 194, 301, 260, 303, 248, 47, 90, 325, 319,
/* 1190 */ 42, 168, 205, 206, 207, 208, 209, 210, 211, 90,
/* 1200 */ 308, 157, 20, 268, 268, 90, 152, 308, 246, 328,
/* 1210 */ 268, 288, 90, 332, 333, 334, 335, 336, 337, 296,
/* 1220 */ 339, 90, 90, 342, 301, 90, 303, 346, 347, 348,
/* 1230 */ 172, 306, 306, 268, 268, 20, 260, 262, 20, 262,
/* 1240 */ 272, 303, 323, 272, 316, 20, 20, 316, 318, 368,
/* 1250 */ 272, 328, 272, 260, 20, 332, 333, 334, 335, 336,
/* 1260 */ 337, 309, 339, 272, 288, 342, 272, 268, 272, 346,
/* 1270 */ 347, 348, 296, 288, 262, 262, 288, 301, 288, 303,
/* 1280 */ 357, 288, 268, 288, 301, 270, 288, 175, 288, 296,
/* 1290 */ 323, 288, 288, 268, 301, 288, 303, 288, 288, 270,
/* 1300 */ 268, 270, 316, 322, 328, 234, 154, 20, 332, 333,
/* 1310 */ 334, 335, 336, 337, 296, 339, 260, 270, 342, 303,
/* 1320 */ 312, 328, 346, 347, 348, 332, 333, 334, 335, 336,
/* 1330 */ 337, 301, 339, 357, 301, 342, 301, 301, 312, 346,
/* 1340 */ 347, 348, 301, 309, 288, 284, 270, 310, 331, 301,
/* 1350 */ 357, 312, 296, 235, 312, 241, 364, 301, 301, 303,
/* 1360 */ 161, 301, 243, 301, 301, 364, 260, 242, 230, 226,
/* 1370 */ 296, 326, 20, 317, 247, 245, 260, 89, 250, 330,
/* 1380 */ 89, 292, 301, 363, 328, 361, 367, 270, 332, 333,
/* 1390 */ 334, 335, 336, 337, 288, 339, 36, 268, 278, 263,
/* 1400 */ 362, 374, 296, 262, 288, 320, 366, 301, 315, 303,
/* 1410 */ 364, 345, 296, 271, 358, 282, 282, 301, 260, 303,
/* 1420 */ 258, 0, 282, 317, 373, 0, 374, 371, 373, 379,
/* 1430 */ 177, 375, 0, 0, 328, 42, 0, 373, 332, 333,
/* 1440 */ 334, 335, 336, 337, 328, 339, 288, 374, 332, 333,
/* 1450 */ 334, 335, 336, 337, 296, 339, 187, 35, 342, 301,
/* 1460 */ 187, 303, 346, 347, 358, 35, 35, 0, 0, 35,
/* 1470 */ 35, 187, 260, 35, 0, 35, 187, 371, 0, 22,
/* 1480 */ 0, 375, 35, 172, 260, 170, 328, 0, 0, 165,
/* 1490 */ 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
/* 1500 */ 288, 0, 46, 0, 42, 0, 0, 0, 296, 149,
/* 1510 */ 0, 0, 288, 301, 0, 303, 0, 0, 144, 35,
/* 1520 */ 296, 0, 144, 0, 0, 301, 0, 303, 0, 0,
/* 1500 */ 288, 166, 0, 0, 46, 0, 42, 0, 296, 0,
/* 1510 */ 0, 149, 288, 301, 0, 303, 0, 0, 0, 0,
/* 1520 */ 296, 144, 0, 144, 35, 301, 0, 303, 0, 0,
/* 1530 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 1540 */ 328, 260, 42, 0, 332, 333, 334, 335, 336, 337,
/* 1550 */ 0, 339, 328, 40, 56, 0, 332, 333, 334, 335,
/* 1540 */ 328, 260, 0, 42, 332, 333, 334, 335, 336, 337,
/* 1550 */ 0, 339, 328, 42, 56, 0, 332, 333, 334, 335,
/* 1560 */ 336, 337, 0, 339, 0, 260, 342, 22, 0, 288,
/* 1570 */ 0, 347, 0, 0, 293, 0, 0, 296, 56, 0,
/* 1580 */ 0, 39, 301, 260, 303, 14, 42, 46, 376, 377,
/* 1590 */ 43, 14, 46, 288, 0, 39, 0, 0, 293, 0,
/* 1600 */ 39, 296, 161, 0, 0, 0, 301, 0, 303, 328,
/* 1610 */ 62, 288, 0, 332, 333, 334, 335, 336, 337, 296,
/* 1620 */ 339, 35, 39, 0, 301, 47, 303, 35, 47, 39,
/* 1630 */ 0, 47, 39, 328, 0, 35, 35, 332, 333, 334,
/* 1640 */ 335, 336, 337, 0, 339, 260, 0, 39, 0, 47,
/* 1650 */ 0, 328, 98, 96, 22, 332, 333, 334, 335, 336,
/* 1660 */ 337, 35, 339, 260, 0, 43, 35, 43, 35, 22,
/* 1670 */ 35, 0, 0, 288, 22, 22, 49, 0, 22, 35,
/* 1680 */ 0, 296, 0, 0, 35, 22, 301, 20, 303, 35,
/* 1690 */ 0, 288, 35, 370, 0, 22, 0, 157, 173, 296,
/* 1700 */ 0, 0, 0, 154, 301, 0, 303, 89, 157, 157,
/* 1710 */ 90, 0, 0, 328, 89, 260, 153, 332, 333, 334,
/* 1720 */ 335, 336, 337, 39, 339, 159, 89, 89, 99, 155,
/* 1730 */ 43, 328, 46, 260, 89, 332, 333, 334, 335, 336,
/* 1740 */ 337, 182, 339, 288, 341, 90, 231, 89, 293, 90,
/* 1750 */ 90, 296, 43, 43, 89, 89, 301, 260, 303, 90,
/* 1760 */ 90, 288, 377, 89, 89, 46, 293, 46, 89, 296,
/* 1770 */ 43, 90, 46, 43, 301, 90, 303, 46, 90, 46,
/* 1780 */ 43, 90, 35, 328, 35, 288, 35, 332, 333, 334,
/* 1790 */ 335, 336, 337, 296, 339, 35, 231, 35, 301, 35,
/* 1800 */ 303, 328, 2, 22, 193, 332, 333, 334, 335, 336,
/* 1810 */ 337, 43, 339, 260, 225, 90, 231, 89, 89, 46,
/* 1820 */ 46, 22, 100, 195, 90, 328, 90, 260, 89, 332,
/* 1830 */ 333, 334, 335, 336, 337, 89, 339, 89, 35, 89,
/* 1840 */ 35, 288, 90, 89, 35, 90, 89, 35, 90, 296,
/* 1850 */ 89, 35, 35, 90, 301, 288, 303, 90, 89, 89,
/* 1860 */ 22, 89, 35, 296, 89, 89, 113, 101, 301, 260,
/* 1870 */ 303, 43, 113, 22, 35, 62, 61, 35, 113, 260,
/* 1880 */ 35, 328, 35, 35, 113, 332, 333, 334, 335, 336,
/* 1890 */ 337, 35, 339, 35, 68, 328, 43, 288, 87, 332,
/* 1900 */ 333, 334, 335, 336, 337, 296, 339, 288, 35, 35,
/* 1910 */ 301, 22, 303, 35, 22, 296, 35, 35, 68, 35,
/* 1920 */ 301, 260, 303, 35, 22, 0, 35, 0, 35, 35,
/* 1930 */ 35, 35, 47, 35, 47, 0, 39, 328, 39, 35,
/* 1570 */ 0, 347, 0, 0, 293, 0, 0, 296, 0, 0,
/* 1580 */ 56, 0, 301, 260, 303, 0, 39, 43, 376, 377,
/* 1590 */ 0, 14, 46, 288, 14, 46, 40, 39, 293, 0,
/* 1600 */ 0, 296, 0, 161, 39, 0, 301, 0, 303, 328,
/* 1610 */ 0, 288, 0, 332, 333, 334, 335, 336, 337, 296,
/* 1620 */ 339, 62, 0, 35, 301, 39, 303, 0, 35, 47,
/* 1630 */ 47, 39, 0, 328, 47, 39, 35, 332, 333, 334,
/* 1640 */ 335, 336, 337, 0, 339, 260, 35, 39, 0, 0,
/* 1650 */ 47, 328, 0, 0, 0, 332, 333, 334, 335, 336,
/* 1660 */ 337, 98, 339, 260, 35, 96, 22, 43, 35, 43,
/* 1670 */ 35, 35, 22, 288, 0, 0, 0, 22, 22, 49,
/* 1680 */ 22, 296, 35, 0, 0, 0, 301, 22, 303, 20,
/* 1690 */ 0, 288, 35, 370, 35, 35, 0, 157, 173, 296,
/* 1700 */ 22, 0, 0, 0, 301, 157, 303, 0, 154, 157,
/* 1710 */ 159, 0, 89, 328, 89, 260, 0, 332, 333, 334,
/* 1720 */ 335, 336, 337, 182, 339, 0, 155, 90, 89, 89,
/* 1730 */ 39, 328, 46, 260, 89, 332, 333, 334, 335, 336,
/* 1740 */ 337, 99, 339, 288, 341, 46, 231, 153, 293, 43,
/* 1750 */ 46, 296, 90, 89, 231, 89, 301, 260, 303, 46,
/* 1760 */ 90, 288, 377, 90, 43, 43, 293, 90, 89, 296,
/* 1770 */ 89, 89, 43, 43, 301, 35, 303, 90, 89, 46,
/* 1780 */ 46, 43, 90, 328, 90, 288, 225, 332, 333, 334,
/* 1790 */ 335, 336, 337, 296, 339, 90, 35, 231, 301, 90,
/* 1800 */ 303, 328, 35, 35, 35, 332, 333, 334, 335, 336,
/* 1810 */ 337, 35, 339, 260, 2, 22, 43, 89, 46, 22,
/* 1820 */ 89, 193, 35, 46, 89, 328, 90, 260, 89, 332,
/* 1830 */ 333, 334, 335, 336, 337, 90, 339, 90, 89, 89,
/* 1840 */ 35, 288, 100, 90, 89, 89, 195, 90, 35, 296,
/* 1850 */ 90, 35, 89, 35, 301, 288, 303, 35, 22, 113,
/* 1860 */ 90, 90, 35, 296, 89, 113, 101, 89, 301, 260,
/* 1870 */ 303, 113, 113, 43, 89, 89, 22, 89, 61, 260,
/* 1880 */ 35, 328, 62, 35, 35, 332, 333, 334, 335, 336,
/* 1890 */ 337, 35, 339, 35, 35, 328, 35, 288, 87, 332,
/* 1900 */ 333, 334, 335, 336, 337, 296, 339, 288, 68, 43,
/* 1910 */ 301, 35, 303, 35, 22, 296, 35, 22, 35, 35,
/* 1920 */ 301, 260, 303, 68, 35, 22, 35, 0, 35, 35,
/* 1930 */ 0, 35, 35, 35, 47, 35, 0, 328, 39, 35,
/* 1940 */ 39, 332, 333, 334, 335, 336, 337, 328, 339, 288,
/* 1950 */ 47, 332, 333, 334, 335, 336, 337, 296, 339, 0,
/* 1960 */ 47, 35, 301, 39, 303, 0, 35, 35, 0, 22,
/* 1970 */ 21, 380, 22, 22, 260, 21, 20, 380, 380, 380,
/* 1950 */ 39, 332, 333, 334, 335, 336, 337, 296, 339, 47,
/* 1960 */ 47, 0, 301, 35, 303, 47, 0, 35, 39, 35,
/* 1970 */ 0, 22, 21, 21, 260, 22, 22, 20, 380, 380,
/* 1980 */ 380, 380, 380, 380, 380, 380, 380, 380, 380, 328,
/* 1990 */ 380, 380, 260, 332, 333, 334, 335, 336, 337, 380,
/* 2000 */ 339, 380, 288, 380, 380, 380, 380, 380, 380, 380,
......@@ -703,7 +703,7 @@ static const YYCODETYPE yy_lookahead[] = {
};
#define YY_SHIFT_COUNT (665)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (1968)
#define YY_SHIFT_MAX (1970)
static const unsigned short int yy_shift_ofst[] = {
/* 0 */ 917, 0, 0, 62, 62, 264, 264, 264, 326, 326,
/* 10 */ 264, 264, 391, 593, 720, 593, 593, 593, 593, 593,
......@@ -712,66 +712,66 @@ static const unsigned short int yy_shift_ofst[] = {
/* 40 */ 593, 593, 313, 313, 199, 199, 199, 987, 987, 354,
/* 50 */ 987, 987, 165, 341, 254, 258, 254, 79, 79, 36,
/* 60 */ 36, 97, 18, 254, 254, 79, 79, 79, 79, 79,
/* 70 */ 79, 79, 79, 79, 82, 79, 79, 79, 170, 205,
/* 80 */ 79, 79, 205, 405, 79, 205, 205, 205, 79, 158,
/* 90 */ 719, 662, 683, 683, 108, 371, 371, 371, 371, 371,
/* 70 */ 79, 79, 79, 79, 82, 79, 79, 79, 170, 79,
/* 80 */ 205, 79, 79, 205, 405, 79, 205, 205, 205, 79,
/* 90 */ 158, 719, 662, 683, 683, 108, 371, 371, 371, 371,
/* 100 */ 371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
/* 110 */ 371, 371, 371, 371, 134, 419, 18, 636, 636, 488,
/* 120 */ 551, 562, 90, 90, 90, 551, 526, 526, 170, 16,
/* 130 */ 16, 205, 205, 323, 323, 483, 498, 198, 198, 198,
/* 140 */ 198, 198, 198, 198, 331, 21, 167, 559, 43, 50,
/* 150 */ 112, 168, 99, 421, 19, 530, 771, 755, 717, 603,
/* 160 */ 717, 918, 501, 501, 501, 869, 822, 946, 1132, 1018,
/* 170 */ 1146, 1171, 1171, 1146, 1052, 1052, 1171, 1171, 1171, 1211,
/* 180 */ 1211, 1215, 82, 170, 82, 1217, 1223, 82, 1217, 82,
/* 190 */ 1228, 82, 82, 1171, 82, 1211, 205, 205, 205, 205,
/* 200 */ 205, 205, 205, 205, 205, 205, 205, 1171, 1211, 323,
/* 210 */ 1215, 158, 1093, 170, 158, 1171, 1171, 1217, 158, 1066,
/* 220 */ 323, 323, 323, 323, 1066, 323, 1151, 526, 1228, 158,
/* 230 */ 483, 158, 526, 1294, 323, 1111, 1066, 323, 323, 1111,
/* 240 */ 1066, 323, 323, 205, 1113, 1199, 1111, 1119, 1121, 1134,
/* 250 */ 946, 1139, 526, 1349, 1124, 1129, 1125, 1124, 1129, 1124,
/* 260 */ 1129, 1288, 1289, 323, 498, 1171, 158, 1347, 1211, 2395,
/* 110 */ 371, 371, 371, 371, 371, 134, 419, 18, 636, 636,
/* 120 */ 488, 551, 562, 90, 90, 90, 551, 526, 526, 170,
/* 130 */ 16, 16, 205, 205, 323, 323, 483, 498, 198, 198,
/* 140 */ 198, 198, 198, 198, 198, 331, 21, 167, 559, 43,
/* 150 */ 50, 112, 168, 99, 421, 19, 530, 771, 755, 717,
/* 160 */ 603, 717, 918, 501, 501, 501, 869, 822, 950, 1139,
/* 170 */ 1023, 1148, 1182, 1182, 1148, 1054, 1054, 1182, 1182, 1182,
/* 180 */ 1215, 1215, 1218, 82, 170, 82, 1225, 1226, 82, 1225,
/* 190 */ 82, 1234, 82, 82, 1182, 82, 1215, 205, 205, 205,
/* 200 */ 205, 205, 205, 205, 205, 205, 205, 205, 1182, 1215,
/* 210 */ 323, 1218, 158, 1112, 170, 158, 1182, 1182, 1225, 158,
/* 220 */ 1071, 323, 323, 323, 323, 1071, 323, 1152, 1234, 158,
/* 230 */ 483, 158, 526, 1287, 323, 1118, 1071, 323, 323, 1118,
/* 240 */ 1071, 323, 323, 205, 1114, 1199, 1118, 1119, 1125, 1138,
/* 250 */ 950, 1143, 526, 1352, 1127, 1130, 1128, 1127, 1130, 1127,
/* 260 */ 1130, 1288, 1291, 323, 498, 1182, 158, 1360, 1215, 2395,
/* 270 */ 2395, 2395, 2395, 2395, 2395, 2395, 83, 456, 214, 307,
/* 280 */ 208, 564, 693, 808, 824, 1044, 1053, 513, 542, 542,
/* 290 */ 542, 542, 542, 542, 542, 542, 545, 129, 13, 13,
/* 300 */ 236, 594, 430, 581, 387, 172, 452, 511, 106, 106,
/* 310 */ 106, 106, 914, 963, 875, 898, 943, 945, 973, 979,
/* 320 */ 1011, 423, 860, 960, 964, 997, 1002, 1021, 1045, 1059,
/* 330 */ 1022, 947, 962, 937, 1006, 904, 1058, 929, 1070, 1043,
/* 340 */ 1097, 1109, 1115, 1120, 1122, 1131, 1005, 1077, 1126, 1098,
/* 350 */ 764, 1416, 1426, 1252, 1430, 1432, 1391, 1436, 1402, 1260,
/* 360 */ 1421, 1422, 1425, 1278, 1466, 1433, 1434, 1280, 1470, 1284,
/* 370 */ 1478, 1438, 1474, 1453, 1476, 1444, 1308, 1312, 1483, 1485,
/* 380 */ 1321, 1324, 1488, 1501, 1456, 1503, 1462, 1505, 1506, 1507,
/* 390 */ 1360, 1510, 1511, 1514, 1516, 1517, 1374, 1484, 1521, 1378,
/* 400 */ 1523, 1524, 1526, 1528, 1529, 1530, 1531, 1532, 1533, 1534,
/* 410 */ 1535, 1536, 1537, 1538, 1500, 1539, 1543, 1550, 1562, 1564,
/* 420 */ 1570, 1545, 1568, 1572, 1573, 1575, 1576, 1498, 1555, 1522,
/* 430 */ 1579, 1580, 1544, 1542, 1547, 1571, 1541, 1577, 1546, 1594,
/* 440 */ 1513, 1556, 1596, 1597, 1599, 1561, 1441, 1603, 1604, 1605,
/* 450 */ 1548, 1607, 1612, 1586, 1578, 1583, 1623, 1592, 1581, 1590,
/* 460 */ 1630, 1600, 1584, 1593, 1634, 1601, 1602, 1608, 1643, 1646,
/* 470 */ 1648, 1650, 1554, 1557, 1626, 1632, 1664, 1631, 1622, 1624,
/* 480 */ 1633, 1635, 1647, 1671, 1652, 1672, 1653, 1627, 1677, 1656,
/* 490 */ 1644, 1680, 1649, 1682, 1654, 1683, 1663, 1667, 1690, 1540,
/* 500 */ 1657, 1694, 1525, 1673, 1551, 1549, 1696, 1700, 1552, 1566,
/* 510 */ 1701, 1702, 1705, 1618, 1620, 1559, 1711, 1625, 1574, 1637,
/* 520 */ 1712, 1684, 1563, 1638, 1629, 1686, 1687, 1515, 1645, 1655,
/* 530 */ 1658, 1659, 1660, 1665, 1709, 1669, 1666, 1674, 1675, 1670,
/* 540 */ 1710, 1719, 1721, 1679, 1727, 1565, 1681, 1685, 1726, 1589,
/* 550 */ 1730, 1731, 1733, 1688, 1737, 1585, 1691, 1747, 1749, 1751,
/* 560 */ 1760, 1762, 1764, 1691, 1800, 1781, 1611, 1768, 1728, 1725,
/* 570 */ 1729, 1734, 1739, 1736, 1773, 1746, 1748, 1774, 1799, 1628,
/* 580 */ 1750, 1722, 1752, 1803, 1805, 1754, 1755, 1809, 1757, 1758,
/* 590 */ 1812, 1761, 1763, 1816, 1769, 1767, 1817, 1770, 1753, 1759,
/* 600 */ 1765, 1771, 1838, 1766, 1772, 1775, 1827, 1776, 1828, 1828,
/* 610 */ 1851, 1813, 1815, 1839, 1842, 1845, 1847, 1848, 1856, 1858,
/* 620 */ 1826, 1811, 1853, 1873, 1874, 1889, 1878, 1892, 1881, 1882,
/* 630 */ 1850, 1622, 1884, 1624, 1888, 1891, 1893, 1894, 1902, 1895,
/* 640 */ 1925, 1896, 1885, 1897, 1927, 1898, 1887, 1899, 1935, 1904,
/* 650 */ 1903, 1901, 1959, 1926, 1913, 1924, 1965, 1931, 1932, 1968,
/* 660 */ 1947, 1949, 1950, 1951, 1954, 1956,
/* 320 */ 1011, 423, 860, 960, 964, 997, 1002, 1021, 1059, 1070,
/* 330 */ 1022, 947, 962, 937, 1006, 904, 1058, 929, 1097, 1043,
/* 340 */ 1109, 1115, 1122, 1131, 1132, 1135, 1005, 1077, 1126, 1098,
/* 350 */ 764, 1421, 1425, 1253, 1432, 1433, 1393, 1436, 1422, 1269,
/* 360 */ 1430, 1431, 1434, 1273, 1467, 1435, 1438, 1284, 1468, 1289,
/* 370 */ 1474, 1440, 1478, 1457, 1480, 1447, 1311, 1315, 1487, 1488,
/* 380 */ 1335, 1324, 1502, 1503, 1458, 1505, 1464, 1507, 1509, 1510,
/* 390 */ 1362, 1514, 1516, 1517, 1518, 1519, 1377, 1489, 1522, 1379,
/* 400 */ 1526, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536,
/* 410 */ 1537, 1538, 1539, 1542, 1501, 1550, 1562, 1564, 1570, 1572,
/* 420 */ 1573, 1545, 1568, 1575, 1576, 1578, 1579, 1498, 1555, 1524,
/* 430 */ 1581, 1585, 1511, 1547, 1544, 1577, 1546, 1580, 1549, 1590,
/* 440 */ 1556, 1558, 1599, 1600, 1602, 1565, 1442, 1605, 1607, 1610,
/* 450 */ 1559, 1612, 1622, 1588, 1582, 1586, 1627, 1593, 1583, 1592,
/* 460 */ 1632, 1601, 1587, 1596, 1643, 1611, 1603, 1608, 1648, 1649,
/* 470 */ 1652, 1653, 1563, 1569, 1629, 1644, 1654, 1633, 1624, 1626,
/* 480 */ 1635, 1636, 1650, 1674, 1655, 1675, 1656, 1630, 1676, 1658,
/* 490 */ 1647, 1683, 1657, 1684, 1659, 1685, 1665, 1669, 1690, 1540,
/* 500 */ 1660, 1696, 1525, 1678, 1548, 1554, 1701, 1702, 1552, 1551,
/* 510 */ 1703, 1707, 1711, 1623, 1637, 1541, 1716, 1625, 1571, 1639,
/* 520 */ 1725, 1691, 1594, 1640, 1642, 1686, 1706, 1515, 1645, 1662,
/* 530 */ 1664, 1670, 1673, 1666, 1721, 1677, 1679, 1681, 1682, 1687,
/* 540 */ 1722, 1699, 1704, 1689, 1729, 1523, 1692, 1694, 1713, 1561,
/* 550 */ 1730, 1733, 1734, 1705, 1738, 1566, 1709, 1740, 1761, 1767,
/* 560 */ 1768, 1769, 1776, 1709, 1812, 1793, 1628, 1773, 1728, 1736,
/* 570 */ 1731, 1745, 1735, 1747, 1772, 1739, 1749, 1777, 1797, 1651,
/* 580 */ 1750, 1742, 1753, 1787, 1805, 1755, 1757, 1813, 1756, 1760,
/* 590 */ 1816, 1763, 1770, 1818, 1775, 1771, 1822, 1778, 1746, 1752,
/* 600 */ 1758, 1759, 1836, 1765, 1785, 1786, 1827, 1788, 1830, 1830,
/* 610 */ 1854, 1820, 1817, 1845, 1848, 1849, 1856, 1858, 1859, 1861,
/* 620 */ 1840, 1811, 1866, 1876, 1878, 1892, 1881, 1895, 1883, 1884,
/* 630 */ 1855, 1624, 1889, 1626, 1891, 1893, 1894, 1896, 1903, 1897,
/* 640 */ 1927, 1898, 1887, 1899, 1930, 1900, 1912, 1901, 1936, 1904,
/* 650 */ 1913, 1911, 1961, 1928, 1918, 1929, 1966, 1932, 1934, 1970,
/* 660 */ 1949, 1951, 1953, 1954, 1952, 1957,
};
#define YY_REDUCE_COUNT (275)
#define YY_REDUCE_MIN (-357)
......@@ -784,27 +784,27 @@ static const short yy_reduce_ofst[] = {
/* 40 */ 2045, 2055, 376, 676, -259, 76, 142, 117, 687, -180,
/* 50 */ -284, 747, -30, 250, 342, 345, 398, 359, 462, -264,
/* 60 */ -256, -357, -240, -339, -244, 81, 385, 475, 666, 668,
/* 70 */ 669, 673, 702, 734, 148, 767, 803, 852, -280, -273,
/* 80 */ 855, 857, 211, 31, 858, 272, 523, 363, 859, -205,
/* 90 */ -20, -159, -159, -159, -171, -86, 95, 139, 149, 388,
/* 100 */ 413, 420, 466, 476, 512, 514, 524, 548, 570, 574,
/* 110 */ 588, 608, 614, 648, -233, -213, -298, -76, 53, -215,
/* 120 */ 174, 279, 408, 431, 557, 217, 35, 275, 317, 409,
/* 130 */ 467, 91, 540, 590, 595, 675, 565, 328, 340, 368,
/* 140 */ 461, 468, 606, 661, 373, 705, 654, 800, 722, 826,
/* 150 */ 777, 780, 868, 868, 877, 880, 862, 833, 811, 811,
/* 160 */ 811, 819, 798, 799, 801, 813, 868, 850, 853, 870,
/* 170 */ 882, 932, 934, 895, 900, 901, 954, 957, 965, 970,
/* 180 */ 972, 915, 967, 938, 968, 926, 927, 974, 928, 975,
/* 190 */ 941, 980, 982, 995, 989, 1004, 985, 986, 988, 990,
/* 200 */ 994, 996, 998, 999, 1000, 1003, 1007, 1015, 1013, 966,
/* 210 */ 969, 1020, 971, 1014, 1027, 1017, 1030, 983, 1031, 991,
/* 220 */ 1001, 1019, 1033, 1035, 1025, 1037, 1009, 1010, 1034, 1061,
/* 230 */ 1023, 1072, 1049, 1016, 1047, 992, 1039, 1048, 1054, 1008,
/* 240 */ 1041, 1057, 1060, 868, 1012, 1032, 1036, 1024, 1046, 1038,
/* 250 */ 1042, 811, 1071, 1040, 1029, 1028, 1026, 1050, 1055, 1051,
/* 260 */ 1062, 1065, 1088, 1080, 1104, 1117, 1127, 1123, 1144, 1076,
/* 270 */ 1096, 1133, 1138, 1140, 1142, 1163,
/* 70 */ 669, 673, 702, 734, 148, 767, 803, 852, -280, 855,
/* 80 */ -273, 857, 858, 211, 31, 859, 272, 523, 363, 867,
/* 90 */ -205, -20, -159, -159, -159, -171, -86, 95, 139, 149,
/* 100 */ 388, 413, 420, 466, 476, 512, 514, 524, 548, 570,
/* 110 */ 574, 588, 608, 614, 648, -233, -213, -298, -76, 53,
/* 120 */ -215, 174, 279, 408, 431, 557, 217, 35, 275, 317,
/* 130 */ 409, 467, 91, 540, 590, 595, 675, 565, 328, 340,
/* 140 */ 368, 461, 468, 606, 661, 373, 705, 654, 800, 722,
/* 150 */ 819, 777, 730, 868, 868, 876, 880, 862, 833, 811,
/* 160 */ 811, 811, 821, 796, 799, 801, 813, 868, 850, 863,
/* 170 */ 870, 892, 935, 936, 899, 925, 926, 942, 965, 966,
/* 180 */ 975, 977, 919, 968, 938, 971, 928, 930, 978, 931,
/* 190 */ 980, 952, 991, 994, 999, 996, 1012, 985, 988, 990,
/* 200 */ 995, 998, 1000, 1003, 1004, 1007, 1009, 1010, 1014, 1013,
/* 210 */ 983, 967, 1015, 981, 1016, 1029, 1025, 1032, 986, 1031,
/* 220 */ 1008, 1030, 1033, 1035, 1036, 1026, 1041, 1037, 1034, 1047,
/* 230 */ 1061, 1076, 1018, 1017, 1048, 992, 1039, 1057, 1060, 1001,
/* 240 */ 1042, 1062, 1063, 868, 1019, 1040, 1046, 1020, 1038, 1024,
/* 250 */ 1045, 811, 1074, 1049, 1027, 1051, 1050, 1052, 1055, 1073,
/* 260 */ 1064, 1066, 1089, 1081, 1120, 1129, 1117, 1136, 1141, 1085,
/* 270 */ 1093, 1133, 1134, 1140, 1142, 1162,
};
static const YYACTIONTYPE yy_default[] = {
/* 0 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
......@@ -815,21 +815,21 @@ static const YYACTIONTYPE yy_default[] = {
/* 50 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
/* 60 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
/* 70 */ 1465, 1465, 1465, 1465, 1539, 1465, 1465, 1465, 1465, 1465,
/* 80 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1537,
/* 90 */ 1695, 1465, 1873, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
/* 80 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
/* 90 */ 1537, 1695, 1465, 1873, 1465, 1465, 1465, 1465, 1465, 1465,
/* 100 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
/* 110 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1539,
/* 120 */ 1465, 1537, 1885, 1885, 1885, 1465, 1465, 1465, 1465, 1738,
/* 130 */ 1738, 1465, 1465, 1465, 1465, 1637, 1465, 1465, 1465, 1465,
/* 140 */ 1465, 1465, 1465, 1465, 1730, 1465, 1954, 1465, 1465, 1465,
/* 150 */ 1736, 1908, 1465, 1465, 1465, 1465, 1590, 1900, 1877, 1891,
/* 160 */ 1878, 1875, 1939, 1939, 1939, 1894, 1465, 1904, 1465, 1723,
/* 170 */ 1700, 1465, 1465, 1700, 1697, 1697, 1465, 1465, 1465, 1465,
/* 180 */ 1465, 1465, 1539, 1465, 1539, 1465, 1465, 1539, 1465, 1539,
/* 190 */ 1465, 1539, 1539, 1465, 1539, 1465, 1465, 1465, 1465, 1465,
/* 110 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
/* 120 */ 1539, 1465, 1537, 1885, 1885, 1885, 1465, 1465, 1465, 1465,
/* 130 */ 1738, 1738, 1465, 1465, 1465, 1465, 1637, 1465, 1465, 1465,
/* 140 */ 1465, 1465, 1465, 1465, 1465, 1730, 1465, 1954, 1465, 1465,
/* 150 */ 1465, 1736, 1908, 1465, 1465, 1465, 1465, 1590, 1900, 1877,
/* 160 */ 1891, 1878, 1875, 1939, 1939, 1939, 1894, 1465, 1904, 1465,
/* 170 */ 1723, 1700, 1465, 1465, 1700, 1697, 1697, 1465, 1465, 1465,
/* 180 */ 1465, 1465, 1465, 1539, 1465, 1539, 1465, 1465, 1539, 1465,
/* 190 */ 1539, 1465, 1539, 1539, 1465, 1539, 1465, 1465, 1465, 1465,
/* 200 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
/* 210 */ 1465, 1537, 1732, 1465, 1537, 1465, 1465, 1465, 1537, 1913,
/* 220 */ 1465, 1465, 1465, 1465, 1913, 1465, 1465, 1465, 1465, 1537,
/* 210 */ 1465, 1465, 1537, 1732, 1465, 1537, 1465, 1465, 1465, 1537,
/* 220 */ 1913, 1465, 1465, 1465, 1465, 1913, 1465, 1465, 1465, 1537,
/* 230 */ 1465, 1537, 1465, 1465, 1465, 1915, 1913, 1465, 1465, 1915,
/* 240 */ 1913, 1465, 1465, 1465, 1927, 1923, 1915, 1931, 1929, 1906,
/* 250 */ 1904, 1891, 1465, 1465, 1945, 1941, 1957, 1945, 1941, 1945,
......@@ -1858,7 +1858,7 @@ static const char *const yyRuleName[] = {
/* 231 */ "table_name_cond ::= table_name",
/* 232 */ "from_db_opt ::=",
/* 233 */ "from_db_opt ::= FROM db_name",
/* 234 */ "cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options",
/* 234 */ "cmd ::= CREATE SMA INDEX not_exists_opt index_name ON full_table_name index_options",
/* 235 */ "cmd ::= DROP INDEX exists_opt index_name",
/* 236 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt",
/* 237 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt",
......@@ -2949,7 +2949,7 @@ static const struct {
{ 307, -1 }, /* (231) table_name_cond ::= table_name */
{ 308, 0 }, /* (232) from_db_opt ::= */
{ 308, -2 }, /* (233) from_db_opt ::= FROM db_name */
{ 257, -8 }, /* (234) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */
{ 257, -8 }, /* (234) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON full_table_name index_options */
{ 257, -4 }, /* (235) cmd ::= DROP INDEX exists_opt index_name */
{ 310, -10 }, /* (236) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */
{ 310, -12 }, /* (237) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */
......@@ -4064,8 +4064,8 @@ static YYACTIONTYPE yy_reduce(
case 233: /* from_db_opt ::= FROM db_name */
{ yymsp[-1].minor.yy712 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy129); }
break;
case 234: /* cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */
{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy337, &yymsp[-3].minor.yy129, &yymsp[-1].minor.yy129, NULL, yymsp[0].minor.yy712); }
case 234: /* cmd ::= CREATE SMA INDEX not_exists_opt index_name ON full_table_name index_options */
{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy337, &yymsp[-3].minor.yy129, yymsp[-1].minor.yy712, NULL, yymsp[0].minor.yy712); }
break;
case 235: /* cmd ::= DROP INDEX exists_opt index_name */
{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy337, &yymsp[0].minor.yy129); }
......@@ -4805,6 +4805,8 @@ static void yy_syntax_error(
} else {
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INCOMPLETE_SQL);
}
} else if (TSDB_CODE_PAR_DB_NOT_SPECIFIED == pCxt->errCode && TK_NK_FLOAT == TOKEN.type) {
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_SYNTAX_ERROR, TOKEN.z);
}
/************ End %syntax_error code ******************************************/
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
......
......@@ -779,8 +779,10 @@ static SNode* stbSplCreateColumnNode(SExprNode* pExpr) {
strcpy(pCol->dbName, ((SColumnNode*)pExpr)->dbName);
strcpy(pCol->tableName, ((SColumnNode*)pExpr)->tableName);
strcpy(pCol->tableAlias, ((SColumnNode*)pExpr)->tableAlias);
strcpy(pCol->colName, ((SColumnNode*)pExpr)->colName);
} else {
strcpy(pCol->colName, pExpr->aliasName);
}
strcpy(pCol->colName, pExpr->aliasName);
strcpy(pCol->node.aliasName, pExpr->aliasName);
pCol->node.resType = pExpr->resType;
return (SNode*)pCol;
......
......@@ -64,6 +64,12 @@ TEST_F(PlanSubqeuryTest, innerFill) {
"WHERE ts > '2022-04-06 00:00:00'");
}
TEST_F(PlanSubqeuryTest, innerOrderBy) {
useDb("root", "test");
run("SELECT c2 FROM (SELECT c2 FROM st1 ORDER BY c1, _rowts)");
}
TEST_F(PlanSubqeuryTest, outerInterval) {
useDb("root", "test");
......
......@@ -381,8 +381,8 @@ void cliHandleResp(SCliConn* conn) {
STraceId* trace = &transMsg.info.traceId;
tGTrace("%s conn %p %s received from %s, local info:%s, msg size:%d, code:0x%x", CONN_GET_INST_LABEL(conn), conn,
TMSG_INFO(pHead->msgType), conn->dst, conn->src, transMsg.contLen, transMsg.code);
tGTrace("%s conn %p %s received from %s, local info:%s, len:%d, code str:%s", CONN_GET_INST_LABEL(conn), conn,
TMSG_INFO(pHead->msgType), conn->dst, conn->src, transMsg.contLen, tstrerror(transMsg.code));
if (pCtx == NULL && CONN_NO_PERSIST_BY_APP(conn)) {
tDebug("%s except, conn %p read while cli ignore it", CONN_GET_INST_LABEL(conn), conn);
......@@ -549,6 +549,8 @@ static void addConnToPool(void* pool, SCliConn* conn) {
CONN_CONSTRUCT_HASH_KEY(key, conn->ip, conn->port);
tTrace("%s conn %p added to conn pool, read buf cap:%d", CONN_GET_INST_LABEL(conn), conn, conn->readBuf.cap);
conn->list = taosHashGet((SHashObj*)pool, key, strlen(key));
} else {
tTrace("%s conn %p added to conn pool, read buf cap:%d", CONN_GET_INST_LABEL(conn), conn, conn->readBuf.cap);
}
assert(conn->list != NULL);
QUEUE_INIT(&conn->q);
......@@ -756,8 +758,8 @@ void cliSend(SCliConn* pConn) {
uv_buf_t wb = uv_buf_init((char*)pHead, msgLen);
STraceId* trace = &pMsg->info.traceId;
tGTrace("%s conn %p %s is sent to %s, local info %s", CONN_GET_INST_LABEL(pConn), pConn, TMSG_INFO(pHead->msgType),
pConn->dst, pConn->src);
tGTrace("%s conn %p %s is sent to %s, local info %s, len:%d", CONN_GET_INST_LABEL(pConn), pConn,
TMSG_INFO(pHead->msgType), pConn->dst, pConn->src, pMsg->contLen);
if (pHead->persist == 1) {
CONN_SET_PERSIST_BY_APP(pConn);
......
......@@ -253,11 +253,11 @@ static void uvHandleReq(SSvrConn* pConn) {
if (pConn->status == ConnNormal && pHead->noResp == 0) {
transRefSrvHandle(pConn);
tGTrace("%s conn %p %s received from %s, local info:%s, msg size:%d", transLabel(pTransInst), pConn,
tGTrace("%s conn %p %s received from %s, local info:%s, len:%d", transLabel(pTransInst), pConn,
TMSG_INFO(transMsg.msgType), pConn->dst, pConn->src, transMsg.contLen);
} else {
tGTrace("%s conn %p %s received from %s, local info:%s, msg size:%d, resp:%d, code:%d", transLabel(pTransInst),
pConn, TMSG_INFO(transMsg.msgType), pConn->dst, pConn->src, transMsg.contLen, pHead->noResp, transMsg.code);
tGTrace("%s conn %p %s received from %s, local info:%s, len:%d, resp:%d, code:%d", transLabel(pTransInst), pConn,
TMSG_INFO(transMsg.msgType), pConn->dst, pConn->src, transMsg.contLen, pHead->noResp, transMsg.code);
}
// pHead->noResp = 1,
......@@ -296,11 +296,9 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) {
if (nread > 0) {
pBuf->len += nread;
tTrace("%s conn %p total read:%d, current read:%d", transLabel(pTransInst), conn, pBuf->len, (int)nread);
if (transReadComplete(pBuf)) {
while (transReadComplete(pBuf)) {
tTrace("%s conn %p alread read complete packet", transLabel(pTransInst), conn);
uvHandleReq(conn);
} else {
tTrace("%s conn %p read partial packet, continue to read", transLabel(pTransInst), conn);
}
return;
}
......@@ -418,8 +416,8 @@ static void uvPrepareSendData(SSvrMsg* smsg, uv_buf_t* wb) {
STrans* pTransInst = pConn->pTransInst;
STraceId* trace = &pMsg->info.traceId;
tGTrace("%s conn %p %s is sent to %s, local info:%s, msglen:%d", transLabel(pTransInst), pConn,
TMSG_INFO(pHead->msgType), pConn->dst, pConn->src, len);
tGTrace("%s conn %p %s is sent to %s, local info:%s, len:%d", transLabel(pTransInst), pConn,
TMSG_INFO(pHead->msgType), pConn->dst, pConn->src, pMsg->contLen);
pHead->msgLen = htonl(len);
wb->base = msg;
......
......@@ -116,15 +116,15 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
}
walBuildIdxName(pWal, walGetCurFileFirstVer(pWal), fnameStr);
TdFilePtr pIdxTFile = taosOpenFile(fnameStr, TD_FILE_WRITE | TD_FILE_READ | TD_FILE_APPEND);
TdFilePtr pIdxFile = taosOpenFile(fnameStr, TD_FILE_WRITE | TD_FILE_READ | TD_FILE_APPEND);
if (pIdxTFile == NULL) {
if (pIdxFile == NULL) {
ASSERT(0);
taosThreadMutexUnlock(&pWal->mutex);
return -1;
}
int64_t idxOff = walGetVerIdxOffset(pWal, ver);
code = taosLSeekFile(pIdxTFile, idxOff, SEEK_SET);
code = taosLSeekFile(pIdxFile, idxOff, SEEK_SET);
if (code < 0) {
ASSERT(0);
taosThreadMutexUnlock(&pWal->mutex);
......@@ -132,7 +132,7 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
}
// read idx file and get log file pos
SWalIdxEntry entry;
if (taosReadFile(pIdxTFile, &entry, sizeof(SWalIdxEntry)) != sizeof(SWalIdxEntry)) {
if (taosReadFile(pIdxFile, &entry, sizeof(SWalIdxEntry)) != sizeof(SWalIdxEntry)) {
ASSERT(0);
taosThreadMutexUnlock(&pWal->mutex);
return -1;
......@@ -140,24 +140,24 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
ASSERT(entry.ver == ver);
walBuildLogName(pWal, walGetCurFileFirstVer(pWal), fnameStr);
TdFilePtr pLogTFile = taosOpenFile(fnameStr, TD_FILE_WRITE | TD_FILE_READ | TD_FILE_APPEND);
if (pLogTFile == NULL) {
ASSERT(0);
TdFilePtr pLogFile = taosOpenFile(fnameStr, TD_FILE_WRITE | TD_FILE_READ | TD_FILE_APPEND);
if (pLogFile == NULL) {
// TODO
terrno = TAOS_SYSTEM_ERROR(errno);
taosThreadMutexUnlock(&pWal->mutex);
return -1;
}
code = taosLSeekFile(pLogTFile, entry.offset, SEEK_SET);
code = taosLSeekFile(pLogFile, entry.offset, SEEK_SET);
if (code < 0) {
ASSERT(0);
// TODO
terrno = TAOS_SYSTEM_ERROR(errno);
taosThreadMutexUnlock(&pWal->mutex);
return -1;
}
// validate offset
SWalCkHead head;
ASSERT(taosValidFile(pLogTFile));
int64_t size = taosReadFile(pLogTFile, &head, sizeof(SWalCkHead));
ASSERT(taosValidFile(pLogFile));
int64_t size = taosReadFile(pLogFile, &head, sizeof(SWalCkHead));
if (size != sizeof(SWalCkHead)) {
ASSERT(0);
taosThreadMutexUnlock(&pWal->mutex);
......@@ -180,14 +180,14 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
}
// truncate old files
code = taosFtruncateFile(pLogTFile, entry.offset);
code = taosFtruncateFile(pLogFile, entry.offset);
if (code < 0) {
ASSERT(0);
terrno = TAOS_SYSTEM_ERROR(errno);
taosThreadMutexUnlock(&pWal->mutex);
return -1;
}
code = taosFtruncateFile(pIdxTFile, idxOff);
code = taosFtruncateFile(pIdxFile, idxOff);
if (code < 0) {
ASSERT(0);
terrno = TAOS_SYSTEM_ERROR(errno);
......@@ -205,8 +205,10 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
ASSERT(((SWalFileInfo *)taosArrayGetLast(pWal->fileInfoSet))->fileSize == 0);
((SWalFileInfo *)taosArrayGetLast(pWal->fileInfoSet))->firstVer = -1;
}
taosCloseFile(&pIdxTFile);
taosCloseFile(&pLogTFile);
taosCloseFile(&pIdxFile);
taosCloseFile(&pLogFile);
walSaveMeta(pWal);
// unlock
taosThreadMutexUnlock(&pWal->mutex);
......
......@@ -26,8 +26,8 @@ endi
print =============== step3-1 insert records into ct1
sql insert into ct1 values('2022-05-03 16:59:00.010', 10, 20, 'n','n',30);
sql insert into ct1 values('2022-05-03 16:59:00.011', 'N', 'n', 'N',"N",30);
sql insert into ct1 values('2022-05-03 16:59:00.012', 'Nu', 'nul', 'Nul','NUL',30);
sql insert into ct1 values('2022-05-03 16:59:00.011', 'null', 'null', 'N',"N",30);
sql insert into ct1 values('2022-05-03 16:59:00.012', 'null', 'null', 'Nul','NUL',30);
sql insert into ct1 values('2022-05-03 16:59:00.013', NULL, 'null', 'Null',null,30);
sql insert into ct1 values('2022-05-03 16:59:00.014', NULL, 'NuLL', 'Null',NULL,30);
......
......@@ -253,34 +253,34 @@ class TDTestCase:
tdLog.printNoPrefix("==========step2.1.1 : alter stb schemaL drop column")
tdSql.query(f"select {BINT_COL} from {DB3}.{STBNAME}")
tdSql.execute(f"alter stable {DB3}.stb1 drop column {BINT_COL}")
# TODO not support alter stable schema anymore
# tdSql.error(f"alter stable {DB3}.stb1 drop column {BINT_COL}")
tdSql.error(f"select {BINT_COL} from {DB3}.{STBNAME}")
#tdSql.execute(f"alter stable {DB3}.stb1 drop column {BINT_COL}")
# not support alter stable schema anymore
tdSql.error(f"alter stable {DB3}.stb1 drop column {BINT_COL}")
#tdSql.error(f"select {BINT_COL} from {DB3}.{STBNAME}")
tdLog.printNoPrefix("==========step2.1.2 : alter stb schemaL add num_column")
# TODO not support alter stable schema anymore
# tdSql.error(f"alter stable {DB3}.stb1 add column {INT_COL}_1 int")
# not support alter stable schema anymore
tdSql.error(f"alter stable {DB3}.stb1 add column {INT_COL}_1 int")
tdSql.error(f"select {INT_COL}_1 from {DB3}.{STBNAME}")
tdSql.execute(f"alter stable {DB3}.stb1 add column {INT_COL}_1 int")
tdSql.query(f"select count({INT_COL}_1) from {DB3}.{STBNAME} where _c0 > now-5m")
tdSql.checkData(0, 0, 0)
tdSql.execute(f"insert into {DB3}.{CTBNAME} ({PRIMARY_COL}, {INT_COL}, {INT_COL}_1) values({NOW}+20s, 111, 112)")
time.sleep(7)
tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-1h and _c0>{NOW}")
tdSql.checkRows(1)
tdSql.checkData(0, 1, 111)
tdSql.checkData(0, 2, 112)
tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-2d and _c0>{NOW}")
tdSql.checkRows(1)
tdSql.checkData(0, 1, 111)
tdSql.checkData(0, 2, 112)
tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-7d and _c0>{NOW}")
tdSql.checkRows(1)
tdSql.checkData(0, 1, 111)
tdSql.checkData(0, 2, 112)
#tdSql.execute(f"alter stable {DB3}.stb1 add column {INT_COL}_1 int")
#tdSql.query(f"select count({INT_COL}_1) from {DB3}.{STBNAME} where _c0 > now-5m")
#tdSql.checkData(0, 0, 0)
#tdSql.execute(f"insert into {DB3}.{CTBNAME} ({PRIMARY_COL}, {INT_COL}, {INT_COL}_1) values({NOW}+20s, 111, 112)")
#time.sleep(7)
#tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-1h and _c0>{NOW}")
#tdSql.checkRows(1)
#tdSql.checkData(0, 1, 111)
#tdSql.checkData(0, 2, 112)
#
#tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-2d and _c0>{NOW}")
#tdSql.checkRows(1)
#tdSql.checkData(0, 1, 111)
#tdSql.checkData(0, 2, 112)
#tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-7d and _c0>{NOW}")
#tdSql.checkRows(1)
#tdSql.checkData(0, 1, 111)
#tdSql.checkData(0, 2, 112)
tdLog.printNoPrefix("==========step2.1.3 : drop child-table")
tdSql.execute(f"drop table {DB3}.{CTBNAME} ")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册