📄 cqllex.cpp
字号:
return EVERY;} YY_BREAKcase 11:YY_RULE_SETUP#line 203 "CQL.l"{ sprintf(msg_,"LEX: %s [FIRST] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return FIRST;} YY_BREAKcase 12:YY_RULE_SETUP#line 211 "CQL.l"{ sprintf(msg_,"LEX: %s [IN] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return IN;} YY_BREAKcase 13:YY_RULE_SETUP#line 219 "CQL.l"{ sprintf(msg_,"LEX: %s [IS] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return IS;} YY_BREAKcase 14:YY_RULE_SETUP#line 227 "CQL.l"{ sprintf(msg_,"LEX: %s [ISA] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return _ISA;} YY_BREAKcase 15:YY_RULE_SETUP#line 235 "CQL.l"{ sprintf(msg_,"LEX: %s [LIKE] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return _LIKE;} YY_BREAKcase 16:YY_RULE_SETUP#line 243 "CQL.l"{ sprintf(msg_,"LEX: %s [ORDER] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return ORDER;} YY_BREAKcase 17:YY_RULE_SETUP#line 251 "CQL.l"{ sprintf(msg_,"LEX: %s [SATISFIES] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return SATISFIES;} YY_BREAKcase 18:YY_RULE_SETUP#line 259 "CQL.l"{ sprintf(msg_,"LEX: %s [_TRUE] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return _TRUE;} YY_BREAKcase 19:YY_RULE_SETUP#line 267 "CQL.l"{ sprintf(msg_,"LEX: %s [_FALSE] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return _FALSE;} YY_BREAKcase 20:YY_RULE_SETUP#line 275 "CQL.l"{ sprintf(msg_,"LEX: %s [_NULL] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return _NULL;} YY_BREAKcase 21:YY_RULE_SETUP#line 283 "CQL.l"{ sprintf(msg_,"LEX: %s [NOT] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return NOT;} YY_BREAKcase 22:YY_RULE_SETUP#line 291 "CQL.l"{ sprintf(msg_,"LEX: %s [AND] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return _AND;} YY_BREAKcase 23:YY_RULE_SETUP#line 299 "CQL.l"{ sprintf(msg_,"LEX: %s [OR] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return _OR;} YY_BREAKcase 24:YY_RULE_SETUP#line 307 "CQL.l"{ CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; /* remove any single quotes surrounding embedded literals */ size_t n; if(CQL_lval.strValue) delete [] CQL_lval.strValue; // chuck if (!isUTF8Str(yytext)) { sprintf(msg_,"LEX: [STRING]-> BAD UTF\n"); printf__(msg_); throw CQLSyntaxErrorException( MessageLoaderParms(String("CQL.CQL_y.BAD_UTF8"), String("Bad UTF8 encountered parsing rule $0 in position $1."), String("identifier"), CQL_globalParserState->currentTokenPos)); } String s(yytext); Uint32 index = s.find("'"); if(index != PEG_NOT_FOUND){ s.remove(index,1); s.remove(s.size()-1,1); CString cstr = s.getCString(); const char* string = (const char*)cstr; n = strlen(string); CQL_lval.strValue = new char[n+1]; memcpy(CQL_lval.strValue, string, n); }else{ n = strlen(yytext); CQL_lval.strValue = new char[n+1]; memcpy(CQL_lval.strValue, yytext, n); } CQL_lval.strValue[n] = '\0'; sprintf(msg_,"LEX: %s [SCOPED_PROPERTY] ", CQL_lval.strValue); printf__(msg_); return SCOPED_PROPERTY;} YY_BREAKcase 25:YY_RULE_SETUP#line 349 "CQL.l"{ sprintf(msg_,"LEX: %s [NEGATIVE_HEXADECIMAL] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; /* copy the hex value */ { size_t n = strlen(yytext); if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, yytext, n); CQL_lval.strValue[n] = '\0'; } return NEGATIVE_HEXADECIMAL;} YY_BREAKcase 26:YY_RULE_SETUP#line 366 "CQL.l"{ sprintf(msg_,"LEX: %s [HEXADECIMAL] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; /* copy the hex value */ { size_t n = strlen(yytext); if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, yytext, n); CQL_lval.strValue[n] = '\0'; } return HEXADECIMAL;} YY_BREAKcase 27:YY_RULE_SETUP#line 383 "CQL.l"{ sprintf(msg_,"LEX: %s [NEGATIVE_BINARY] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; /* copy the bin value */ { size_t n = strlen(yytext); if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, yytext, n); CQL_lval.strValue[n] = '\0'; } return NEGATIVE_BINARY;} YY_BREAKcase 28:YY_RULE_SETUP#line 400 "CQL.l"{ sprintf(msg_,"LEX: %s [BINARY] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; /* copy the bin value */ { size_t n = strlen(yytext); if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, yytext, n); CQL_lval.strValue[n] = '\0'; } return BINARY;} YY_BREAKcase 29:YY_RULE_SETUP#line 418 "CQL.l"{ sprintf(msg_,"LEX: %s [NEGATIVE_INTEGER] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; size_t n = strlen(yytext); if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, yytext, n); CQL_lval.strValue[n] = '\0'; /*CQL_lval.intValue = strtol(yytext, (char**)0, 10);*/ return NEGATIVE_INTEGER;} YY_BREAKcase 30:YY_RULE_SETUP#line 435 "CQL.l"{ sprintf(msg_,"LEX: %s [INTEGER] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; size_t n = strlen(yytext); if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, yytext, n); CQL_lval.strValue[n] = '\0'; /*CQL_lval.intValue = strtol(yytext, (char**)0, 10);*/ return INTEGER;} YY_BREAKcase 31:YY_RULE_SETUP#line 452 "CQL.l"{ sprintf(msg_,"LEX: %s [NEGATIVE_REAL] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; size_t n = strlen(yytext); if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, yytext, n); CQL_lval.strValue[n] = '\0'; /*CQL_lval.realValue = strtod((char*)yytext, (char**)0);*/ return NEGATIVE_REAL;} YY_BREAKcase 32:YY_RULE_SETUP#line 469 "CQL.l"{ sprintf(msg_,"LEX: %s [REAL] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; size_t n = strlen(yytext); if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, yytext, n); CQL_lval.strValue[n] = '\0'; /*CQL_lval.realValue = strtod((char*)yytext, (char**)0);*/ return REAL;} YY_BREAKcase 33:YY_RULE_SETUP#line 486 "CQL.l"{ /* \'[^\'\n]*\' */ /* ATTN-B: handle long literals by using yyinput(). */ /* ATTN-B: Handle expansion of special characters */ sprintf(msg_,"LEX: %s [STRING] ", yytext); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; /* remove any escaped \ OR escaped ' */ String _esc_doubleslash = "\\\\"; String _esc_singlequote = "\\'"; // chuck if (!isUTF8Str(yytext)) { sprintf(msg_,"LEX: [STRING]-> BAD UTF\n"); printf__(msg_); throw CQLSyntaxErrorException( MessageLoaderParms(String("CQL.CQL_y.BAD_UTF8"), String("Bad UTF8 encountered parsing rule $0 in position $1."), String("literal_string"), CQL_globalParserState->currentTokenPos)); } String s(yytext); Uint32 index = 1; while((index = s.find(_esc_doubleslash)) != PEG_NOT_FOUND || (index = s.find(_esc_singlequote)) != PEG_NOT_FOUND) { if(index == s.size() - 2) // make sure we dont remove the slash from say 'abc\' break; s.remove(index,1); } CString cstr = s.getCString(); const char* string = (const char*)cstr; /* Copy the string (but remove the surrounding quotes */ { size_t n = strlen(string) - 2; if(CQL_lval.strValue) delete [] CQL_lval.strValue; CQL_lval.strValue = new char[n + 1]; memcpy(CQL_lval.strValue, string + 1, n); CQL_lval.strValue[n] = '\0'; } return STRING_LITERAL;} YY_BREAKcase 34:*yy_cp = yy_hold_char; /* undo effects of setting up yytext */yy_c_buf_p = yy_cp -= 1;YY_DO_BEFORE_ACTION; /* set up yytext again */YY_RULE_SETUP#line 538 "CQL.l"{ sprintf(msg_,"Unterminated string"); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++;} YY_BREAKcase 35:YY_RULE_SETUP#line 546 "CQL.l"{ sprintf(msg_,"LEX: [STAR] "); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return STAR;} YY_BREAKcase 36:YY_RULE_SETUP#line 554 "CQL.l"{ sprintf(msg_,"LEX: [DIV] "); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return DIV;} YY_BREAKcase 37:YY_RULE_SETUP#line 562 "CQL.l"{ sprintf(msg_,"LEX: [PLUS] "); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return PLUS;} YY_BREAKcase 38:YY_RULE_SETUP#line 570 "CQL.l"{ sprintf(msg_,"LEX: [MINUS] "); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return MINUS;} YY_BREAKcase 39:YY_RULE_SETUP#line 578 "CQL.l"{ sprintf(msg_,"LEX: [COMMA] "); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++; return COMMA;} YY_BREAKcase 40:YY_RULE_SETUP#line 586 "CQL.l"{ sprintf(msg_,"LEX: [DOTDOT] "); printf__(msg_); CQL_globalParserState->currentTokenPos+=yyleng; CQL_globalParserState->tokenCount++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -