diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2012-06-02 19:06:50 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2012-06-02 19:06:50 -0500 |
commit | 2fbb371fa11c7c54749136a8e2cd8279b8123d0b (patch) | |
tree | fa5507dc276807eb096f6873673378616776195c /connectivity/source | |
parent | targeted string re-work (diff) | |
download | core-2fbb371fa11c7c54749136a8e2cd8279b8123d0b.tar.gz core-2fbb371fa11c7c54749136a8e2cd8279b8123d0b.zip |
cosmetic clean-up
Change-Id: I78ecfec2c03df2d040671722c255af2c63f81991
Diffstat (limited to 'connectivity/source')
-rwxr-xr-x | connectivity/source/parse/sqlbison.y | 210 | ||||
-rwxr-xr-x | connectivity/source/parse/sqlflex.l | 1112 |
2 files changed, 661 insertions, 661 deletions
diff --git a/connectivity/source/parse/sqlbison.y b/connectivity/source/parse/sqlbison.y index bf576519e85e..87b3f89046c8 100755 --- a/connectivity/source/parse/sqlbison.y +++ b/connectivity/source/parse/sqlbison.y @@ -193,25 +193,25 @@ using namespace connectivity; %token <pParseNode> SQL_TOKEN_CALL SQL_TOKEN_D SQL_TOKEN_FN SQL_TOKEN_T SQL_TOKEN_TS SQL_TOKEN_OJ /* string functions */ %token <pParseNode> SQL_TOKEN_ASCII SQL_TOKEN_BIT_LENGTH SQL_TOKEN_CHAR SQL_TOKEN_CHAR_LENGTH SQL_TOKEN_SQL_TOKEN_INTNUM -%token <pParseNode> SQL_TOKEN_CONCAT -%token <pParseNode> SQL_TOKEN_DIFFERENCE SQL_TOKEN_INSERT SQL_TOKEN_LCASE SQL_TOKEN_LEFT SQL_TOKEN_LENGTH SQL_TOKEN_LOCATE -%token <pParseNode> SQL_TOKEN_LOCATE_2 SQL_TOKEN_LTRIM SQL_TOKEN_POSITION SQL_TOKEN_REPEAT SQL_TOKEN_REPLACE -%token <pParseNode> SQL_TOKEN_RIGHT SQL_TOKEN_RTRIM SQL_TOKEN_SOUNDEX SQL_TOKEN_SPACE SQL_TOKEN_SUBSTRING SQL_TOKEN_UCASE +%token <pParseNode> SQL_TOKEN_CONCAT +%token <pParseNode> SQL_TOKEN_DIFFERENCE SQL_TOKEN_INSERT SQL_TOKEN_LCASE SQL_TOKEN_LEFT SQL_TOKEN_LENGTH SQL_TOKEN_LOCATE +%token <pParseNode> SQL_TOKEN_LOCATE_2 SQL_TOKEN_LTRIM SQL_TOKEN_POSITION SQL_TOKEN_REPEAT SQL_TOKEN_REPLACE +%token <pParseNode> SQL_TOKEN_RIGHT SQL_TOKEN_RTRIM SQL_TOKEN_SOUNDEX SQL_TOKEN_SPACE SQL_TOKEN_SUBSTRING SQL_TOKEN_UCASE /* time and date functions */ -%token <pParseNode> SQL_TOKEN_CURRENT_DATE SQL_TOKEN_CURRENT_TIME SQL_TOKEN_CURRENT_TIMESTAMP SQL_TOKEN_CURDATE SQL_TOKEN_CURTIME -%token <pParseNode> SQL_TOKEN_DAYNAME SQL_TOKEN_DAYOFMONTH SQL_TOKEN_DAYOFWEEK SQL_TOKEN_DAYOFYEAR SQL_TOKEN_EXTRACT +%token <pParseNode> SQL_TOKEN_CURRENT_DATE SQL_TOKEN_CURRENT_TIME SQL_TOKEN_CURRENT_TIMESTAMP SQL_TOKEN_CURDATE SQL_TOKEN_CURTIME +%token <pParseNode> SQL_TOKEN_DAYNAME SQL_TOKEN_DAYOFMONTH SQL_TOKEN_DAYOFWEEK SQL_TOKEN_DAYOFYEAR SQL_TOKEN_EXTRACT %token <pParseNode> SQL_TOKEN_HOUR SQL_TOKEN_MINUTE SQL_TOKEN_MONTH SQL_TOKEN_MONTHNAME SQL_TOKEN_NOW SQL_TOKEN_QUARTER SQL_TOKEN_DATEDIFF -%token <pParseNode> SQL_TOKEN_SECOND SQL_TOKEN_TIMESTAMPADD SQL_TOKEN_TIMESTAMPDIFF SQL_TOKEN_TIMEVALUE SQL_TOKEN_WEEK SQL_TOKEN_YEAR +%token <pParseNode> SQL_TOKEN_SECOND SQL_TOKEN_TIMESTAMPADD SQL_TOKEN_TIMESTAMPDIFF SQL_TOKEN_TIMEVALUE SQL_TOKEN_WEEK SQL_TOKEN_YEAR /* numeric functions */ -%token <pParseNode> SQL_TOKEN_ABS SQL_TOKEN_ACOS SQL_TOKEN_ASIN SQL_TOKEN_ATAN SQL_TOKEN_ATAN2 SQL_TOKEN_CEILING +%token <pParseNode> SQL_TOKEN_ABS SQL_TOKEN_ACOS SQL_TOKEN_ASIN SQL_TOKEN_ATAN SQL_TOKEN_ATAN2 SQL_TOKEN_CEILING %token <pParseNode> SQL_TOKEN_COS SQL_TOKEN_COT SQL_TOKEN_DEGREES SQL_TOKEN_EXP SQL_TOKEN_FLOOR SQL_TOKEN_LOGF SQL_TOKEN_LOG SQL_TOKEN_LN %token <pParseNode> SQL_TOKEN_LOG10 SQL_TOKEN_MOD SQL_TOKEN_PI SQL_TOKEN_POWER SQL_TOKEN_RADIANS SQL_TOKEN_RAND SQL_TOKEN_ROUNDMAGIC %token <pParseNode> SQL_TOKEN_ROUND SQL_TOKEN_SIGN SQL_TOKEN_SIN SQL_TOKEN_SQRT SQL_TOKEN_TAN SQL_TOKEN_TRUNCATE // computational operation -%token <pParseNode> SQL_TOKEN_EVERY SQL_TOKEN_INTERSECTION SQL_TOKEN_FUSION SQL_TOKEN_COLLECT SQL_TOKEN_VAR_POP SQL_TOKEN_VAR_SAMP +%token <pParseNode> SQL_TOKEN_EVERY SQL_TOKEN_INTERSECTION SQL_TOKEN_FUSION SQL_TOKEN_COLLECT SQL_TOKEN_VAR_POP SQL_TOKEN_VAR_SAMP %token <pParseNode> SQL_TOKEN_STDDEV_SAMP SQL_TOKEN_STDDEV_POP %token <pParseNode> SQL_TOKEN_RANK SQL_TOKEN_DENSE_RANK SQL_TOKEN_PERCENT_RANK SQL_TOKEN_CUME_DIST SQL_TOKEN_PERCENTILE_CONT SQL_TOKEN_PERCENTILE_DISC SQL_TOKEN_WITHIN SQL_TOKEN_ARRAY_AGG @@ -222,7 +222,7 @@ using namespace connectivity; %token <pParseNode> SQL_TOKEN_SESSION_USER SQL_TOKEN_SYSTEM_USER SQL_TOKEN_VARCHAR SQL_TOKEN_VARBINARY SQL_TOKEN_VARYING SQL_TOKEN_OBJECT SQL_TOKEN_NCLOB SQL_TOKEN_NATIONAL %token <pParseNode> SQL_TOKEN_LARGE SQL_TOKEN_CLOB SQL_TOKEN_BLOB SQL_TOKEN_BIGINT SQL_TOKEN_BINARY SQL_TOKEN_WITHOUT SQL_TOKEN_BOOLEAN SQL_TOKEN_INTERVAL // window function -%token <pParseNode> SQL_TOKEN_OVER SQL_TOKEN_ROW_NUMBER SQL_TOKEN_NTILE SQL_TOKEN_LEAD SQL_TOKEN_LAG SQL_TOKEN_RESPECT SQL_TOKEN_IGNORE SQL_TOKEN_NULLS +%token <pParseNode> SQL_TOKEN_OVER SQL_TOKEN_ROW_NUMBER SQL_TOKEN_NTILE SQL_TOKEN_LEAD SQL_TOKEN_LAG SQL_TOKEN_RESPECT SQL_TOKEN_IGNORE SQL_TOKEN_NULLS %token <pParseNode> SQL_TOKEN_FIRST_VALUE SQL_TOKEN_LAST_VALUE SQL_TOKEN_NTH_VALUE SQL_TOKEN_FIRST SQL_TOKEN_LAST %token <pParseNode> SQL_TOKEN_EXCLUDE SQL_TOKEN_OTHERS SQL_TOKEN_TIES SQL_TOKEN_FOLLOWING SQL_TOKEN_UNBOUNDED SQL_TOKEN_PRECEDING SQL_TOKEN_RANGE SQL_TOKEN_ROWS %token <pParseNode> SQL_TOKEN_PARTITION SQL_TOKEN_WINDOW SQL_TOKEN_NO @@ -263,8 +263,8 @@ using namespace connectivity; %type <pParseNode> where_clause opt_group_by_clause column_ref_commalist opt_having_clause %type <pParseNode> search_condition predicate comparison_predicate comparison_predicate_part_2 between_predicate between_predicate_part_2 %type <pParseNode> like_predicate opt_escape test_for_null null_predicate_part_2 in_predicate in_predicate_part_2 character_like_predicate_part_2 other_like_predicate_part_2 -%type <pParseNode> all_or_any_predicate any_all_some existence_test subquery quantified_comparison_predicate_part_2 -%type <pParseNode> scalar_exp_commalist parameter_ref literal parenthesized_boolean_value_expression +%type <pParseNode> all_or_any_predicate any_all_some existence_test subquery quantified_comparison_predicate_part_2 +%type <pParseNode> scalar_exp_commalist parameter_ref literal parenthesized_boolean_value_expression %type <pParseNode> column_ref data_type column cursor parameter range_variable user /*like_check*/ /* neue Regeln bei OJ */ %type <pParseNode> derived_column as_clause table_name num_primary term num_value_exp @@ -281,9 +281,9 @@ using namespace connectivity; %type <pParseNode> extract_source char_length_exp octet_length_exp bit_length_exp select_sublist string_value_exp %type <pParseNode> char_value_exp concatenation char_factor char_primary string_value_fct char_substring_fct fold %type <pParseNode> form_conversion char_translation trim_fct trim_operands trim_spec bit_value_fct bit_substring_fct op_column_commalist -%type <pParseNode> /*bit_concatenation*/ bit_value_exp bit_factor bit_primary collate_clause char_value_fct unique_spec value_exp_commalist in_predicate_value unique_test update_source +%type <pParseNode> /*bit_concatenation*/ bit_value_exp bit_factor bit_primary collate_clause char_value_fct unique_spec value_exp_commalist in_predicate_value unique_test update_source %type <pParseNode> function_arg_commalist3 string_function_3Argument function_arg_commalist4 string_function_4Argument function_arg_commalist2 string_function_1Argument string_function_2Argument -%type <pParseNode> date_function_0Argument date_function_1Argument function_name12 function_name23 function_name1 function_name2 function_name3 function_name0 numeric_function_0Argument numeric_function_1Argument numeric_function_2Argument +%type <pParseNode> date_function_0Argument date_function_1Argument function_name12 function_name23 function_name1 function_name2 function_name3 function_name0 numeric_function_0Argument numeric_function_1Argument numeric_function_2Argument %type <pParseNode> all query_primary sql_not for_length upper_lower comparison column_val cross_union /*opt_schema_element_list*/ %type <pParseNode> /*op_authorization op_schema*/ nil_fkt schema_element base_table_def base_table_element base_table_element_commalist %type <pParseNode> column_def odbc_fct_spec odbc_call_spec odbc_fct_type op_parameter union_statement @@ -292,7 +292,7 @@ using namespace connectivity; %type <pParseNode> ordered_set_function inverse_distribution_function hypothetical_set_function hypothetical_set_function_value_expression_list rank_function_type within_group_specification inverse_distribution_function_type array_aggregate_function inverse_distribution_function_argument %type <pParseNode> case_expression else_clause result_expression result case_abbreviation case_specification searched_when_clause simple_when_clause searched_case simple_case %type <pParseNode> when_operand_list when_operand case_operand -%type <pParseNode> trigger_definition trigger_name trigger_action_time trigger_event transition_table_or_variable_list triggered_action trigger_column_list triggered_when_clause triggered_SQL_statement SQL_procedure_statement old_transition_variable_name new_transition_variable_name +%type <pParseNode> trigger_definition trigger_name trigger_action_time trigger_event transition_table_or_variable_list triggered_action trigger_column_list triggered_when_clause triggered_SQL_statement SQL_procedure_statement old_transition_variable_name new_transition_variable_name %type <pParseNode> op_referencing op_trigger_columnlist op_triggered_action_for opt_row trigger_for SQL_procedure_statement_list transition_table_or_variable old_transition_table_name new_transition_table_name transition_table_name %type <pParseNode> searched_when_clause_list simple_when_clause_list predefined_type opt_char_set_spec opt_collate_clause character_string_type national_character_string_type %type <pParseNode> binary_string_type numeric_type boolean_type datetime_type interval_type opt_paren_precision paren_char_length opt_paren_char_large_length paren_character_large_object_length @@ -323,7 +323,7 @@ sql_single_statement: /* schema definition language */ /* Note: other ``sql:sal_Unicode() rules appear later in the grammar */ - + sql: manipulative_statement | schema_element @@ -332,7 +332,7 @@ sql: $$->append($1); } ; - + /*** op_authorization: @@ -945,7 +945,7 @@ selection: opt_result_offset_clause: /* empty */ {$$ = SQL_NEW_RULE;} | result_offset_clause - ; + ; result_offset_clause: SQL_TOKEN_OFFSET offset_row_count row_or_rows { @@ -960,11 +960,11 @@ opt_fetch_first_row_count: | fetch_first_row_count ; first_or_next: - SQL_TOKEN_FIRST + SQL_TOKEN_FIRST | SQL_TOKEN_NEXT ; row_or_rows: - SQL_TOKEN_ROW + SQL_TOKEN_ROW | SQL_TOKEN_ROWS ; opt_fetch_first_clause: @@ -1090,7 +1090,7 @@ table_ref: $$->append($1 = newNode("(", SQL_NODE_PUNCTUATION)); $$->append($2); $$->append($3 = newNode(")", SQL_NODE_PUNCTUATION)); - } + } ; where_clause: SQL_TOKEN_WHERE search_condition @@ -1231,7 +1231,7 @@ predicate: | in_predicate | like_predicate ; -comparison_predicate_part_2: +comparison_predicate_part_2: comparison row_value_constructor { $$ = SQL_NEW_RULE; // comparison_predicate: rule 1 @@ -1295,10 +1295,10 @@ comparison: between_predicate_part_2: sql_not SQL_TOKEN_BETWEEN row_value_constructor SQL_TOKEN_AND row_value_constructor { - if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck()) // between_predicate: rule 2 + if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck()) // between_predicate: rule 2 { $$ = SQL_NEW_RULE; - + sal_Int16 nErg = xxx_pGLOBAL_SQLPARSER->buildPredicateRule($$,$3,$2,$5); if(nErg == 1) { @@ -1310,7 +1310,7 @@ between_predicate_part_2: pBetween_predicate->append(pColumnRef); pBetween_predicate->append($$); $$ = pBetween_predicate; - + delete pTemp; delete $4; } @@ -1332,7 +1332,7 @@ between_predicate_part_2: } between_predicate: row_value_constructor between_predicate_part_2 - { + { $$ = SQL_NEW_RULE; // between_predicate: rule 1 $$->append($1); $$->append($2); @@ -1734,7 +1734,7 @@ char_length_exp: $$->append($3); $$->append($4 = newNode(")", SQL_NODE_PUNCTUATION)); } - + ; octet_length_exp: SQL_TOKEN_OCTET_LENGTH '(' value_exp ')' @@ -1977,85 +1977,85 @@ string_function_1Argument: | SQL_TOKEN_SPACE | SQL_TOKEN_UCASE ; - + string_function_2Argument: - SQL_TOKEN_REPEAT + SQL_TOKEN_REPEAT | SQL_TOKEN_LEFT | SQL_TOKEN_RIGHT ; string_function_3Argument: - SQL_TOKEN_REPLACE + SQL_TOKEN_REPLACE ; string_function_4Argument: SQL_TOKEN_INSERT ; - + string_function: SQL_TOKEN_CHAR | SQL_TOKEN_CONCAT | SQL_TOKEN_DIFFERENCE - | SQL_TOKEN_LOCATE_2 - | SQL_TOKEN_SOUNDEX + | SQL_TOKEN_LOCATE_2 + | SQL_TOKEN_SOUNDEX ; date_function_0Argument: - SQL_TOKEN_CURDATE - | SQL_TOKEN_CURTIME - | SQL_TOKEN_NOW + SQL_TOKEN_CURDATE + | SQL_TOKEN_CURTIME + | SQL_TOKEN_NOW ; date_function_1Argument: - SQL_TOKEN_DAYOFWEEK - | SQL_TOKEN_DAYOFMONTH - | SQL_TOKEN_DAYOFYEAR - | SQL_TOKEN_MONTH - | SQL_TOKEN_DAYNAME - | SQL_TOKEN_MONTHNAME - | SQL_TOKEN_QUARTER - | SQL_TOKEN_HOUR - | SQL_TOKEN_MINUTE - | SQL_TOKEN_SECOND + SQL_TOKEN_DAYOFWEEK + | SQL_TOKEN_DAYOFMONTH + | SQL_TOKEN_DAYOFYEAR + | SQL_TOKEN_MONTH + | SQL_TOKEN_DAYNAME + | SQL_TOKEN_MONTHNAME + | SQL_TOKEN_QUARTER + | SQL_TOKEN_HOUR + | SQL_TOKEN_MINUTE + | SQL_TOKEN_SECOND | SQL_TOKEN_YEAR | SQL_TOKEN_DAY | SQL_TOKEN_TIMEVALUE | SQL_TOKEN_DATEVALUE ; - + date_function: - SQL_TOKEN_TIMESTAMPADD - | SQL_TOKEN_TIMESTAMPDIFF + SQL_TOKEN_TIMESTAMPADD + | SQL_TOKEN_TIMESTAMPDIFF ; numeric_function_0Argument: - SQL_TOKEN_PI + SQL_TOKEN_PI ; numeric_function_1Argument: SQL_TOKEN_ABS - | SQL_TOKEN_ACOS - | SQL_TOKEN_ASIN - | SQL_TOKEN_ATAN - | SQL_TOKEN_CEILING - | SQL_TOKEN_COS - | SQL_TOKEN_COT - | SQL_TOKEN_DEGREES - | SQL_TOKEN_FLOOR - | SQL_TOKEN_SIGN - | SQL_TOKEN_SIN - | SQL_TOKEN_SQRT - | SQL_TOKEN_TAN - | SQL_TOKEN_EXP - | SQL_TOKEN_LOG10 + | SQL_TOKEN_ACOS + | SQL_TOKEN_ASIN + | SQL_TOKEN_ATAN + | SQL_TOKEN_CEILING + | SQL_TOKEN_COS + | SQL_TOKEN_COT + | SQL_TOKEN_DEGREES + | SQL_TOKEN_FLOOR + | SQL_TOKEN_SIGN + | SQL_TOKEN_SIN + | SQL_TOKEN_SQRT + | SQL_TOKEN_TAN + | SQL_TOKEN_EXP + | SQL_TOKEN_LOG10 | SQL_TOKEN_LN | SQL_TOKEN_RADIANS | SQL_TOKEN_ROUNDMAGIC ; numeric_function_2Argument: - SQL_TOKEN_ATAN2 - | SQL_TOKEN_MOD - | SQL_TOKEN_POWER + SQL_TOKEN_ATAN2 + | SQL_TOKEN_MOD + | SQL_TOKEN_POWER ; numeric_function: - SQL_TOKEN_RAND + SQL_TOKEN_RAND | SQL_TOKEN_TRUNCATE ; - + window_function: window_function_type SQL_TOKEN_OVER window_name_or_specification { @@ -2108,7 +2108,7 @@ number_of_tiles : ; opt_lead_or_lag_function: /* empty */ {$$ = SQL_NEW_RULE;} - | ',' offset + | ',' offset { $$ = SQL_NEW_RULE; $$->append($1 = newNode(",", SQL_NODE_PUNCTUATION)); @@ -2127,7 +2127,7 @@ opt_null_treatment: /* empty */ {$$ = SQL_NEW_RULE;} | null_treatment ; - + lead_or_lag_function: lead_or_lag '(' lead_or_lag_extent opt_lead_or_lag_function ')' opt_null_treatment { @@ -2141,7 +2141,7 @@ lead_or_lag_function: } ; lead_or_lag: - SQL_TOKEN_LEAD + SQL_TOKEN_LEAD | SQL_TOKEN_LAG ; lead_or_lag_extent: @@ -2154,7 +2154,7 @@ default_expression: value_exp ; null_treatment: - SQL_TOKEN_RESPECT SQL_TOKEN_NULLS + SQL_TOKEN_RESPECT SQL_TOKEN_NULLS | SQL_TOKEN_IGNORE SQL_TOKEN_NULLS ; first_or_last_value_function: @@ -2169,7 +2169,7 @@ first_or_last_value_function: } ; first_or_last_value : - SQL_TOKEN_FIRST_VALUE + SQL_TOKEN_FIRST_VALUE | SQL_TOKEN_LAST_VALUE ; opt_from_first_or_last: @@ -2215,7 +2215,7 @@ window_name_or_specification: window_name | in_line_window_specification ; -in_line_window_specification: +in_line_window_specification: window_specification ; opt_window_clause: @@ -2263,11 +2263,11 @@ opt_existing_window_name: /* empty */ {$$ = SQL_NEW_RULE;} | existing_window_name ; -opt_window_partition_clause: +opt_window_partition_clause: /* empty */ {$$ = SQL_NEW_RULE;} | window_partition_clause ; -opt_window_frame_clause: +opt_window_frame_clause: /* empty */ {$$ = SQL_NEW_RULE;} | window_frame_clause ; @@ -2316,7 +2316,7 @@ window_frame_clause: $$->append($1); $$->append($2); $$->append($3); - } + } ; window_frame_units: SQL_TOKEN_ROWS @@ -2332,14 +2332,14 @@ window_frame_start: $$ = SQL_NEW_RULE; $$->append($1); $$->append($2); - } + } | window_frame_preceding | SQL_TOKEN_CURRENT SQL_TOKEN_ROW { $$ = SQL_NEW_RULE; $$->append($1); $$->append($2); - } + } ; window_frame_preceding: unsigned_value_spec SQL_TOKEN_PRECEDING @@ -2526,7 +2526,7 @@ set_fct_type: | SQL_TOKEN_INTERSECTION ; -ordered_set_function: +ordered_set_function: hypothetical_set_function | inverse_distribution_function ; @@ -2569,8 +2569,8 @@ within_group_specification: ; hypothetical_set_function_value_expression_list: value_exp_commalist - ; - + ; + inverse_distribution_function: inverse_distribution_function_type '('inverse_distribution_function_argument ')' within_group_specification { @@ -2588,7 +2588,7 @@ inverse_distribution_function_type: SQL_TOKEN_PERCENTILE_CONT | SQL_TOKEN_PERCENTILE_DISC ; - + array_aggregate_function: SQL_TOKEN_ARRAY_AGG '(' value_exp opt_order_by_clause ')' { @@ -2600,7 +2600,7 @@ array_aggregate_function: $$->append($5 = newNode(")", SQL_NODE_PUNCTUATION)); } ; - + rank_function_type: SQL_TOKEN_RANK | SQL_TOKEN_DENSE_RANK @@ -3093,7 +3093,7 @@ value_exp_commalist: } ; function_arg: - result + result | value_exp comparison value_exp { $$ = SQL_NEW_RULE; @@ -3136,7 +3136,7 @@ function_args_commalist: YYERROR; } ; - + value_exp: num_value_exp /*[^')']*/ | string_value_exp @@ -3402,7 +3402,7 @@ trim_operands: } | value_exp ; - + trim_spec: SQL_TOKEN_BOTH | SQL_TOKEN_LEADING @@ -3440,7 +3440,7 @@ catalog_name: } ; schema_name: - SQL_TOKEN_NAME '.' table_name + SQL_TOKEN_NAME '.' table_name { $$ = SQL_NEW_RULE; $$->append($1); @@ -3464,7 +3464,7 @@ column_ref: $$->append($1); $$->append($2 = newNode(".", SQL_NODE_PUNCTUATION)); $$->append($3);} -*/ +*/ | SQL_TOKEN_NAME '.' column_val %prec '.' {$$ = SQL_NEW_RULE; $$->append($1); @@ -3524,7 +3524,7 @@ column_val: data_type: predefined_type ; -opt_char_set_spec: +opt_char_set_spec: {$$ = SQL_NEW_RULE;} | SQL_TOKEN_CHARACTER SQL_TOKEN_SET SQL_TOKEN_NAME { @@ -3532,7 +3532,7 @@ opt_char_set_spec: $$->append($1); $$->append($2); $$->append($3); - } + } ; opt_collate_clause: {$$ = SQL_NEW_RULE;} @@ -3610,7 +3610,7 @@ opt_paren_char_large_length: {$$ = SQL_NEW_RULE;} | paren_character_large_object_length ; -paren_character_large_object_length: +paren_character_large_object_length: '(' large_object_length ')' { $$ = SQL_NEW_RULE; @@ -3619,7 +3619,7 @@ paren_character_large_object_length: $$->append($3 = newNode(")", SQL_NODE_PUNCTUATION)); } ; - + large_object_length: SQL_TOKEN_INTNUM opt_multiplier { @@ -4056,7 +4056,7 @@ result_expression: case_operand: row_value_constructor_elem ; - + cursor: SQL_TOKEN_NAME {$$ = SQL_NEW_RULE; $$->append($1);} @@ -4091,7 +4091,7 @@ procedure: SQL_TOKEN_NAME ; ***/ -range_variable: +range_variable: {$$ = SQL_NEW_RULE;} | opt_as SQL_TOKEN_NAME {$$ = SQL_NEW_RULE; @@ -4203,7 +4203,7 @@ op_triggered_action_for: } ; trigger_for: - SQL_TOKEN_ROW + SQL_TOKEN_ROW | SQL_TOKEN_STATEMENT ; triggered_when_clause: @@ -4230,12 +4230,12 @@ triggered_SQL_statement: } ; SQL_procedure_statement_list: - SQL_procedure_statement + SQL_procedure_statement { $$ = SQL_NEW_LISTRULE; $$->append($1); } - | SQL_procedure_statement_list ';' SQL_procedure_statement + | SQL_procedure_statement_list ';' SQL_procedure_statement { $1->append($3); $$ = $1; @@ -4244,7 +4244,7 @@ SQL_procedure_statement_list: SQL_procedure_statement: sql ; - + transition_table_or_variable_list: transition_table_or_variable { @@ -4542,7 +4542,7 @@ const double fMilliSecondsPerDay = 86400000.0; sSearch.appendAscii("*?",2); sReplace.appendAscii("%_",2); } - + for (sal_Int32 i = 0; i < nLen; i++) { const sal_Unicode c = aMatchStr[i]; @@ -4594,7 +4594,7 @@ void OSQLParser::setParseTree(OSQLParseNode * pNewParseTree) */ static ::rtl::OUString delComment( const ::rtl::OUString& rQuery ) { - // First a quick search if there is any "--" or "//" or "/*", if not then the whole + // First a quick search if there is any "--" or "//" or "/*", if not then the whole // copying loop is pointless. if (rQuery.indexOfAsciiL( "--", 2, 0) < 0 && rQuery.indexOfAsciiL( "//", 2, 0) < 0 && rQuery.indexOfAsciiL( "/*", 2, 0) < 0) @@ -4784,14 +4784,14 @@ sal_Int16 OSQLParser::buildNode(OSQLParseNode*& pAppend,OSQLParseNode* pCompare, pComp = new OSQLInternalNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::between_predicate_part_2)); else pComp = new OSQLInternalNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::comparison_predicate)); - + pComp->append(pColumnRef); pComp->append(pCompare); pComp->append(pLiteral); if ( pLiteral2 ) { pComp->append(new OSQLInternalNode(aEmptyString, SQL_NODE_KEYWORD,SQL_TOKEN_AND)); - pComp->append(pLiteral2); + pComp->append(pLiteral2); } pAppend->append(pComp); return 1; @@ -4848,7 +4848,7 @@ void OSQLParser::reduceLiteral(OSQLParseNode*& pLiteral, sal_Bool bAppendBlank) { aValue.appendAscii(" "); } - + aValue.append(pLiteral->getChild(1)->getTokenValue()); pLiteral = new OSQLInternalNode(aValue.makeStringAndClear(),SQL_NODE_STRING); diff --git a/connectivity/source/parse/sqlflex.l b/connectivity/source/parse/sqlflex.l index b3562a8403a8..9bb3cce3929e 100755 --- a/connectivity/source/parse/sqlflex.l +++ b/connectivity/source/parse/sqlflex.l @@ -27,7 +27,7 @@ // //-------------------------------------------------------------------------- -#define YY_EXIT 1 // YY_FATAL will not halt the application +#define YY_EXIT 1 // YY_FATAL will not halt the application #ifndef _CSTDARG_ #include <cstdarg> // std::va_list @@ -79,33 +79,33 @@ using namespace connectivity; static ::rtl::OUString aEmptyString; -static sal_Int32 gatherString(int delim, sal_Int32 nTyp); -static sal_Int32 gatherName(const sal_Char*); -static sal_Int32 gatherNamePre(const sal_Char* ); +static sal_Int32 gatherString(int delim, sal_Int32 nTyp); +static sal_Int32 gatherName(const sal_Char*); +static sal_Int32 gatherNamePre(const sal_Char* ); // has to be set before the parser starts OSQLScanner* xxx_pGLOBAL_SQLSCAN = NULL; -#define SQL_NEW_NODE(text, token) \ - SQLyylval.pParseNode = new OSQLInternalNode(text, token); +#define SQL_NEW_NODE(text, token) \ + SQLyylval.pParseNode = new OSQLInternalNode(text, token); -#define SQL_NEW_KEYWORD(token) \ - SQLyylval.pParseNode = new OSQLInternalNode(aEmptyString, SQL_NODE_KEYWORD, (token)); return token; +#define SQL_NEW_KEYWORD(token) \ + SQLyylval.pParseNode = new OSQLInternalNode(aEmptyString, SQL_NODE_KEYWORD, (token)); return token; -#define SQL_NEW_INTNUM SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_INTNUM); return SQL_TOKEN_INTNUM; -#define SQL_NEW_APPROXNUM SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_APPROXNUM); return SQL_TOKEN_APPROXNUM; -#define SQL_NEW_DATE SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_ACCESS_DATE); return SQL_TOKEN_ACCESS_DATE; +#define SQL_NEW_INTNUM SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_INTNUM); return SQL_TOKEN_INTNUM; +#define SQL_NEW_APPROXNUM SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_APPROXNUM); return SQL_TOKEN_APPROXNUM; +#define SQL_NEW_DATE SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_ACCESS_DATE); return SQL_TOKEN_ACCESS_DATE; -#define YY_INPUT(buf,result,max_size) \ -{ \ - int c = xxx_pGLOBAL_SQLSCAN->SQLyygetc(); \ +#define YY_INPUT(buf,result,max_size) \ +{ \ + int c = xxx_pGLOBAL_SQLSCAN->SQLyygetc(); \ result = (c == EOF) ? YY_NULL : (buf[0] = c, 1);\ } -#define YY_FATAL_ERROR(msg) \ -{ \ - xxx_pGLOBAL_SQLSCAN->SQLyyerror(msg); \ -} - +#define YY_FATAL_ERROR(msg) \ +{ \ + xxx_pGLOBAL_SQLSCAN->SQLyyerror(msg); \ +} + // //============================================================================= @@ -121,368 +121,368 @@ OSQLScanner* xxx_pGLOBAL_SQLSCAN = NULL; %option never-interactive %% -ABS {SQL_NEW_KEYWORD(SQL_TOKEN_ABS); } -ACOS {SQL_NEW_KEYWORD(SQL_TOKEN_ACOS); } -AFTER {SQL_NEW_KEYWORD(SQL_TOKEN_AFTER); } -ALL {SQL_NEW_KEYWORD(SQL_TOKEN_ALL); } -ALTER {SQL_NEW_KEYWORD(SQL_TOKEN_ALTER); } -AND {SQL_NEW_KEYWORD(SQL_TOKEN_AND); } -ANY {SQL_NEW_KEYWORD(SQL_TOKEN_ANY); } -ARRAY_AGG {SQL_NEW_KEYWORD(SQL_TOKEN_ARRAY_AGG); } -AS {SQL_NEW_KEYWORD(SQL_TOKEN_AS); } -ASC {SQL_NEW_KEYWORD(SQL_TOKEN_ASC); } -ASCII {SQL_NEW_KEYWORD(SQL_TOKEN_ASCII); } -ASIN {SQL_NEW_KEYWORD(SQL_TOKEN_ASIN); } -AT {SQL_NEW_KEYWORD(SQL_TOKEN_AT); } -ATAN {SQL_NEW_KEYWORD(SQL_TOKEN_ATAN); } -ATAN2 {SQL_NEW_KEYWORD(SQL_TOKEN_ATAN2); } -ATOMIC {SQL_NEW_KEYWORD(SQL_TOKEN_ATOMIC); } -AUTHORIZATION {SQL_NEW_KEYWORD(SQL_TOKEN_AUTHORIZATION); } -AVG {SQL_NEW_KEYWORD(SQL_TOKEN_AVG); } - -BEFORE {SQL_NEW_KEYWORD(SQL_TOKEN_BEFORE); } -BEGIN {SQL_NEW_KEYWORD(SQL_TOKEN_BEGIN); } -BETWEEN {SQL_NEW_KEYWORD(SQL_TOKEN_BETWEEN); } -BIGINT {SQL_NEW_KEYWORD(SQL_TOKEN_BIGINT); } -BINARY {SQL_NEW_KEYWORD(SQL_TOKEN_BINARY); } -BIT {SQL_NEW_KEYWORD(SQL_TOKEN_BIT); } +ABS {SQL_NEW_KEYWORD(SQL_TOKEN_ABS); } +ACOS {SQL_NEW_KEYWORD(SQL_TOKEN_ACOS); } +AFTER {SQL_NEW_KEYWORD(SQL_TOKEN_AFTER); } +ALL {SQL_NEW_KEYWORD(SQL_TOKEN_ALL); } +ALTER {SQL_NEW_KEYWORD(SQL_TOKEN_ALTER); } +AND {SQL_NEW_KEYWORD(SQL_TOKEN_AND); } +ANY {SQL_NEW_KEYWORD(SQL_TOKEN_ANY); } +ARRAY_AGG {SQL_NEW_KEYWORD(SQL_TOKEN_ARRAY_AGG); } +AS {SQL_NEW_KEYWORD(SQL_TOKEN_AS); } +ASC {SQL_NEW_KEYWORD(SQL_TOKEN_ASC); } +ASCII {SQL_NEW_KEYWORD(SQL_TOKEN_ASCII); } +ASIN {SQL_NEW_KEYWORD(SQL_TOKEN_ASIN); } +AT {SQL_NEW_KEYWORD(SQL_TOKEN_AT); } +ATAN {SQL_NEW_KEYWORD(SQL_TOKEN_ATAN); } +ATAN2 {SQL_NEW_KEYWORD(SQL_TOKEN_ATAN2); } +ATOMIC {SQL_NEW_KEYWORD(SQL_TOKEN_ATOMIC); } +AUTHORIZATION {SQL_NEW_KEYWORD(SQL_TOKEN_AUTHORIZATION); } +AVG {SQL_NEW_KEYWORD(SQL_TOKEN_AVG); } + +BEFORE {SQL_NEW_KEYWORD(SQL_TOKEN_BEFORE); } +BEGIN {SQL_NEW_KEYWORD(SQL_TOKEN_BEGIN); } +BETWEEN {SQL_NEW_KEYWORD(SQL_TOKEN_BETWEEN); } +BIGINT {SQL_NEW_KEYWORD(SQL_TOKEN_BIGINT); } +BINARY {SQL_NEW_KEYWORD(SQL_TOKEN_BINARY); } +BIT {SQL_NEW_KEYWORD(SQL_TOKEN_BIT); } BIT_LENGTH {SQL_NEW_KEYWORD(SQL_TOKEN_BIT_LENGTH); } -BLOB {SQL_NEW_KEYWORD(SQL_TOKEN_BLOB); } -BOTH {SQL_NEW_KEYWORD(SQL_TOKEN_BOTH); } -BY {SQL_NEW_KEYWORD(SQL_TOKEN_BY); } - -CALL {SQL_NEW_KEYWORD(SQL_TOKEN_CALL); } -CASE {SQL_NEW_KEYWORD(SQL_TOKEN_CASE); } -CAST {SQL_NEW_KEYWORD(SQL_TOKEN_CAST); } -CEILING {SQL_NEW_KEYWORD(SQL_TOKEN_CEILING); } -CHAR {SQL_NEW_KEYWORD(SQL_TOKEN_CHAR); } -CHARACTER {SQL_NEW_KEYWORD(SQL_TOKEN_CHARACTER); } +BLOB {SQL_NEW_KEYWORD(SQL_TOKEN_BLOB); } +BOTH {SQL_NEW_KEYWORD(SQL_TOKEN_BOTH); } +BY {SQL_NEW_KEYWORD(SQL_TOKEN_BY); } + +CALL {SQL_NEW_KEYWORD(SQL_TOKEN_CALL); } +CASE {SQL_NEW_KEYWORD(SQL_TOKEN_CASE); } +CAST {SQL_NEW_KEYWORD(SQL_TOKEN_CAST); } +CEILING {SQL_NEW_KEYWORD(SQL_TOKEN_CEILING); } +CHAR {SQL_NEW_KEYWORD(SQL_TOKEN_CHAR); } +CHARACTER {SQL_NEW_KEYWORD(SQL_TOKEN_CHARACTER); } CHAR(ACTER)?_LENGTH {SQL_NEW_KEYWORD(SQL_TOKEN_CHAR_LENGTH); } -CHECK {SQL_NEW_KEYWORD(SQL_TOKEN_CHECK); } -CLOB {SQL_NEW_KEYWORD(SQL_TOKEN_CLOB); } -COALESCE {SQL_NEW_KEYWORD(SQL_TOKEN_COALESCE); } -COLLATE {SQL_NEW_KEYWORD(SQL_TOKEN_COLLATE); } +CHECK {SQL_NEW_KEYWORD(SQL_TOKEN_CHECK); } +CLOB {SQL_NEW_KEYWORD(SQL_TOKEN_CLOB); } +COALESCE {SQL_NEW_KEYWORD(SQL_TOKEN_COALESCE); } +COLLATE {SQL_NEW_KEYWORD(SQL_TOKEN_COLLATE); } COLLECT {SQL_NEW_KEYWORD(SQL_TOKEN_COLLECT); } -COMMIT {SQL_NEW_KEYWORD(SQL_TOKEN_COMMIT); } -CONCAT {SQL_NEW_KEYWORD(SQL_TOKEN_CONCAT); } -CONTINUE {SQL_NEW_KEYWORD(SQL_TOKEN_CONTINUE); } -CONVERT {SQL_NEW_KEYWORD(SQL_TOKEN_CONVERT); } -COS {SQL_NEW_KEYWORD(SQL_TOKEN_COS); } -COT {SQL_NEW_KEYWORD(SQL_TOKEN_COT); } -COUNT {SQL_NEW_KEYWORD(SQL_TOKEN_COUNT); } -CREATE {SQL_NEW_KEYWORD(SQL_TOKEN_CREATE); } -CROSS {SQL_NEW_KEYWORD(SQL_TOKEN_CROSS); } -CUME_RANK {SQL_NEW_KEYWORD(SQL_TOKEN_CUME_DIST); } -CURRENT {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT); } -CURRENT_DATE {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_DATE); } -CURRENT_CATALOG {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_CATALOG); } -CURRENT_DEFAULT_TRANSFORM_GROUP {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_DEFAULT_TRANSFORM_GROUP); } -CURRENT_PATH {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_PATH); } -CURRENT_ROLE {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_ROLE); } -CURRENT_SCHEMA {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_SCHEMA); } -CURRENT_USER {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_USER); } -CURDATE {SQL_NEW_KEYWORD(SQL_TOKEN_CURDATE); } -CURRENT_TIME {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_TIME); } -CURTIME {SQL_NEW_KEYWORD(SQL_TOKEN_CURTIME); } -CURRENT_TIMESTAMP {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_TIMESTAMP); } -CURSOR {SQL_NEW_KEYWORD(SQL_TOKEN_CURSOR); } - -D {SQL_NEW_KEYWORD(SQL_TOKEN_D); } -DATE {SQL_NEW_KEYWORD(SQL_TOKEN_DATE); } -DATEDIFF {SQL_NEW_KEYWORD(SQL_TOKEN_DATEDIFF); } -DATEVALUE {SQL_NEW_KEYWORD(SQL_TOKEN_DATEVALUE); } -DAY {SQL_NEW_KEYWORD(SQL_TOKEN_DAY); } -DAYNAME {SQL_NEW_KEYWORD(SQL_TOKEN_DAYNAME); } -DAYOFMONTH {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFMONTH); } -DAYOFWEEK {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFWEEK); } -DAYOFYEAR {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFYEAR); } -DEC {SQL_NEW_KEYWORD(SQL_TOKEN_DEC); } -DECIMAL {SQL_NEW_KEYWORD(SQL_TOKEN_DECIMAL); } -DECLARE {SQL_NEW_KEYWORD(SQL_TOKEN_DECLARE); } -DEFAULT {SQL_NEW_KEYWORD(SQL_TOKEN_DEFAULT); } -DEGREES {SQL_NEW_KEYWORD(SQL_TOKEN_DEGREES); } -DELETE {SQL_NEW_KEYWORD(SQL_TOKEN_DELETE); } -DENSE_RANK {SQL_NEW_KEYWORD(SQL_TOKEN_DENSE_RANK); } -DESC {SQL_NEW_KEYWORD(SQL_TOKEN_DESC); } -DIFFERENCE {SQL_NEW_KEYWORD(SQL_TOKEN_DIFFERENCE); } -DISTINCT {SQL_NEW_KEYWORD(SQL_TOKEN_DISTINCT); } -DOUBLE {SQL_NEW_KEYWORD(SQL_TOKEN_DOUBLE); } -DROP {SQL_NEW_KEYWORD(SQL_TOKEN_DROP); } - -EACH {SQL_NEW_KEYWORD(SQL_TOKEN_EACH); } -ELSE {SQL_NEW_KEYWORD(SQL_TOKEN_ELSE); } -END {SQL_NEW_KEYWORD(SQL_TOKEN_END); } +COMMIT {SQL_NEW_KEYWORD(SQL_TOKEN_COMMIT); } +CONCAT {SQL_NEW_KEYWORD(SQL_TOKEN_CONCAT); } +CONTINUE {SQL_NEW_KEYWORD(SQL_TOKEN_CONTINUE); } +CONVERT {SQL_NEW_KEYWORD(SQL_TOKEN_CONVERT); } +COS {SQL_NEW_KEYWORD(SQL_TOKEN_COS); } +COT {SQL_NEW_KEYWORD(SQL_TOKEN_COT); } +COUNT {SQL_NEW_KEYWORD(SQL_TOKEN_COUNT); } +CREATE {SQL_NEW_KEYWORD(SQL_TOKEN_CREATE); } +CROSS {SQL_NEW_KEYWORD(SQL_TOKEN_CROSS); } +CUME_RANK {SQL_NEW_KEYWORD(SQL_TOKEN_CUME_DIST); } +CURRENT {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT); } +CURRENT_DATE {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_DATE); } +CURRENT_CATALOG {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_CATALOG); } +CURRENT_DEFAULT_TRANSFORM_GROUP {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_DEFAULT_TRANSFORM_GROUP); } +CURRENT_PATH {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_PATH); } +CURRENT_ROLE {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_ROLE); } +CURRENT_SCHEMA {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_SCHEMA); } +CURRENT_USER {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_USER); } +CURDATE {SQL_NEW_KEYWORD(SQL_TOKEN_CURDATE); } +CURRENT_TIME {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_TIME); } +CURTIME {SQL_NEW_KEYWORD(SQL_TOKEN_CURTIME); } +CURRENT_TIMESTAMP {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_TIMESTAMP); } +CURSOR {SQL_NEW_KEYWORD(SQL_TOKEN_CURSOR); } + +D {SQL_NEW_KEYWORD(SQL_TOKEN_D); } +DATE {SQL_NEW_KEYWORD(SQL_TOKEN_DATE); } +DATEDIFF {SQL_NEW_KEYWORD(SQL_TOKEN_DATEDIFF); } +DATEVALUE {SQL_NEW_KEYWORD(SQL_TOKEN_DATEVALUE); } +DAY {SQL_NEW_KEYWORD(SQL_TOKEN_DAY); } +DAYNAME {SQL_NEW_KEYWORD(SQL_TOKEN_DAYNAME); } +DAYOFMONTH {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFMONTH); } +DAYOFWEEK {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFWEEK); } +DAYOFYEAR {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFYEAR); } +DEC {SQL_NEW_KEYWORD(SQL_TOKEN_DEC); } +DECIMAL {SQL_NEW_KEYWORD(SQL_TOKEN_DECIMAL); } +DECLARE {SQL_NEW_KEYWORD(SQL_TOKEN_DECLARE); } +DEFAULT {SQL_NEW_KEYWORD(SQL_TOKEN_DEFAULT); } +DEGREES {SQL_NEW_KEYWORD(SQL_TOKEN_DEGREES); } +DELETE {SQL_NEW_KEYWORD(SQL_TOKEN_DELETE); } +DENSE_RANK {SQL_NEW_KEYWORD(SQL_TOKEN_DENSE_RANK); } +DESC {SQL_NEW_KEYWORD(SQL_TOKEN_DESC); } +DIFFERENCE {SQL_NEW_KEYWORD(SQL_TOKEN_DIFFERENCE); } +DISTINCT {SQL_NEW_KEYWORD(SQL_TOKEN_DISTINCT); } +DOUBLE {SQL_NEW_KEYWORD(SQL_TOKEN_DOUBLE); } +DROP {SQL_NEW_KEYWORD(SQL_TOKEN_DROP); } + +EACH {SQL_NEW_KEYWORD(SQL_TOKEN_EACH); } +ELSE {SQL_NEW_KEYWORD(SQL_TOKEN_ELSE); } +END {SQL_NEW_KEYWORD(SQL_TOKEN_END); } EVERY {SQL_NEW_KEYWORD(SQL_TOKEN_EVERY); } -ESCAPE {SQL_NEW_KEYWORD(SQL_TOKEN_ESCAPE); } -EXCEPT {SQL_NEW_KEYWORD(SQL_TOKEN_EXCEPT); } -EXCLUDE {SQL_NEW_KEYWORD(SQL_TOKEN_EXCLUDE); } -EXISTS {SQL_NEW_KEYWORD(SQL_TOKEN_EXISTS); } -EXP {SQL_NEW_KEYWORD(SQL_TOKEN_EXP); } -EXTRACT {SQL_NEW_KEYWORD(SQL_TOKEN_EXTRACT); } - -FALSE {SQL_NEW_KEYWORD(SQL_TOKEN_FALSE); } -FETCH {SQL_NEW_KEYWORD(SQL_TOKEN_FETCH); } -FIRST {SQL_NEW_KEYWORD(SQL_TOKEN_FIRST); } -FIRST_VALUE {SQL_NEW_KEYWORD(SQL_TOKEN_FIRST_VALUE); } -FLOAT {SQL_NEW_KEYWORD(SQL_TOKEN_FLOAT); } -FLOOR {SQL_NEW_KEYWORD(SQL_TOKEN_FLOOR); } -FN {SQL_NEW_KEYWORD(SQL_TOKEN_FN); } -FOLLOWING {SQL_NEW_KEYWORD(SQL_TOKEN_FOLLOWING); } -FOR {SQL_NEW_KEYWORD(SQL_TOKEN_FOR); } -FOREIGN {SQL_NEW_KEYWORD(SQL_TOKEN_FOREIGN); } -FOUND {SQL_NEW_KEYWORD(SQL_TOKEN_FOUND); } -FROM {SQL_NEW_KEYWORD(SQL_TOKEN_FROM); } -FULL {SQL_NEW_KEYWORD(SQL_TOKEN_FULL); } +ESCAPE {SQL_NEW_KEYWORD(SQL_TOKEN_ESCAPE); } +EXCEPT {SQL_NEW_KEYWORD(SQL_TOKEN_EXCEPT); } +EXCLUDE {SQL_NEW_KEYWORD(SQL_TOKEN_EXCLUDE); } +EXISTS {SQL_NEW_KEYWORD(SQL_TOKEN_EXISTS); } +EXP {SQL_NEW_KEYWORD(SQL_TOKEN_EXP); } +EXTRACT {SQL_NEW_KEYWORD(SQL_TOKEN_EXTRACT); } + +FALSE {SQL_NEW_KEYWORD(SQL_TOKEN_FALSE); } +FETCH {SQL_NEW_KEYWORD(SQL_TOKEN_FETCH); } +FIRST {SQL_NEW_KEYWORD(SQL_TOKEN_FIRST); } +FIRST_VALUE {SQL_NEW_KEYWORD(SQL_TOKEN_FIRST_VALUE); } +FLOAT {SQL_NEW_KEYWORD(SQL_TOKEN_FLOAT); } +FLOOR {SQL_NEW_KEYWORD(SQL_TOKEN_FLOOR); } +FN {SQL_NEW_KEYWORD(SQL_TOKEN_FN); } +FOLLOWING {SQL_NEW_KEYWORD(SQL_TOKEN_FOLLOWING); } +FOR {SQL_NEW_KEYWORD(SQL_TOKEN_FOR); } +FOREIGN {SQL_NEW_KEYWORD(SQL_TOKEN_FOREIGN); } +FOUND {SQL_NEW_KEYWORD(SQL_TOKEN_FOUND); } +FROM {SQL_NEW_KEYWORD(SQL_TOKEN_FROM); } +FULL {SQL_NEW_KEYWORD(SQL_TOKEN_FULL); } FUSION {SQL_NEW_KEYWORD(SQL_TOKEN_FUSION); } -GRANT {SQL_NEW_KEYWORD(SQL_TOKEN_GRANT); } -GROUP {SQL_NEW_KEYWORD(SQL_TOKEN_GROUP); } - -HAVING {SQL_NEW_KEYWORD(SQL_TOKEN_HAVING); } -HOUR {SQL_NEW_KEYWORD(SQL_TOKEN_HOUR); } - -IGNORE {SQL_NEW_KEYWORD(SQL_TOKEN_IGNORE); } -IN {SQL_NEW_KEYWORD(SQL_TOKEN_IN); } -INNER {SQL_NEW_KEYWORD(SQL_TOKEN_INNER); } -INSERT {SQL_NEW_KEYWORD(SQL_TOKEN_INSERT); } -INSTEAD {SQL_NEW_KEYWORD(SQL_TOKEN_INSTEAD); } -INT(EGER)? {SQL_NEW_KEYWORD(SQL_TOKEN_INTEGER); } -INTERSECT {SQL_NEW_KEYWORD(SQL_TOKEN_INTERSECT); } -INTERVAL {SQL_NEW_KEYWORD(SQL_TOKEN_INTERVAL); } -INTERSECTION {SQL_NEW_KEYWORD(SQL_TOKEN_INTERSECTION); } -INTO {SQL_NEW_KEYWORD(SQL_TOKEN_INTO); } -IS {SQL_NEW_KEYWORD(SQL_TOKEN_IS); } - -JOIN {SQL_NEW_KEYWORD(SQL_TOKEN_JOIN); } - -KEY {SQL_NEW_KEYWORD(SQL_TOKEN_KEY); } - -LAG {SQL_NEW_KEYWORD(SQL_TOKEN_LAG); } -LARGE {SQL_NEW_KEYWORD(SQL_TOKEN_LARGE); } -LAST {SQL_NEW_KEYWORD(SQL_TOKEN_LAST); } -LAST_VALUE {SQL_NEW_KEYWORD(SQL_TOKEN_LAST_VALUE); } -LCASE {SQL_NEW_KEYWORD(SQL_TOKEN_LCASE); } -LEAD {SQL_NEW_KEYWORD(SQL_TOKEN_LEAD); } -LEADING {SQL_NEW_KEYWORD(SQL_TOKEN_LEADING); } -LEFT {SQL_NEW_KEYWORD(SQL_TOKEN_LEFT); } -LENGTH {SQL_NEW_KEYWORD(SQL_TOKEN_LENGTH); } -LIKE {SQL_NEW_KEYWORD(SQL_TOKEN_LIKE); } -LIMIT {SQL_NEW_KEYWORD(SQL_TOKEN_LIMIT); } -LN {SQL_NEW_KEYWORD(SQL_TOKEN_LN); } -LOCAL {SQL_NEW_KEYWORD(SQL_TOKEN_LOCAL); } -LOCATE {SQL_NEW_KEYWORD(SQL_TOKEN_LOCATE); } -LOG {SQL_NEW_KEYWORD(SQL_TOKEN_LOG); } -LOGF {SQL_NEW_KEYWORD(SQL_TOKEN_LOGF); } -LOG10 {SQL_NEW_KEYWORD(SQL_TOKEN_LOG10); } -LOWER {SQL_NEW_KEYWORD(SQL_TOKEN_LOWER); } -LTRIM {SQL_NEW_KEYWORD(SQL_TOKEN_LTRIM); } - -MAX {SQL_NEW_KEYWORD(SQL_TOKEN_MAX); } -MIN {SQL_NEW_KEYWORD(SQL_TOKEN_MIN); } -MINUTE {SQL_NEW_KEYWORD(SQL_TOKEN_MINUTE); } -MOD {SQL_NEW_KEYWORD(SQL_TOKEN_MOD); } -MONTH {SQL_NEW_KEYWORD(SQL_TOKEN_MONTH); } -MONTHNAME {SQL_NEW_KEYWORD(SQL_TOKEN_MONTHNAME); } - -NATIONAL {SQL_NEW_KEYWORD(SQL_TOKEN_NATIONAL); } -NATURAL {SQL_NEW_KEYWORD(SQL_TOKEN_NATURAL); } -NCHAR {SQL_NEW_KEYWORD(SQL_TOKEN_NCHAR); } -NCLOB {SQL_NEW_KEYWORD(SQL_TOKEN_NCLOB); } -NEW {SQL_NEW_KEYWORD(SQL_TOKEN_NEW); } -NEXT {SQL_NEW_KEYWORD(SQL_TOKEN_NEXT); } -NO {SQL_NEW_KEYWORD(SQL_TOKEN_NO); } -NOT {SQL_NEW_KEYWORD(SQL_TOKEN_NOT); } -NOW {SQL_NEW_KEYWORD(SQL_TOKEN_NOW); } -NTH_VALUE {SQL_NEW_KEYWORD(SQL_TOKEN_NTH_VALUE); } -NTILE {SQL_NEW_KEYWORD(SQL_TOKEN_NTILE); } -NULL {SQL_NEW_KEYWORD(SQL_TOKEN_NULL); } -NULLIF {SQL_NEW_KEYWORD(SQL_TOKEN_NULLIF); } -NULLS {SQL_NEW_KEYWORD(SQL_TOKEN_NULLS); } -NUMERIC {SQL_NEW_KEYWORD(SQL_TOKEN_NUMERIC); } - -OBJECT {SQL_NEW_KEYWORD(SQL_TOKEN_OBJECT); } -OCTET_LENGTH {SQL_NEW_KEYWORD(SQL_TOKEN_OCTET_LENGTH); } -OF {SQL_NEW_KEYWORD(SQL_TOKEN_OF); } -OFFSET {SQL_NEW_KEYWORD(SQL_TOKEN_OFFSET); } -OJ {SQL_NEW_KEYWORD(SQL_TOKEN_OJ); } -OLD {SQL_NEW_KEYWORD(SQL_TOKEN_OLD); } -ON {SQL_NEW_KEYWORD(SQL_TOKEN_ON); } -ONLY {SQL_NEW_KEYWORD(SQL_TOKEN_ONLY); } -OPTION {SQL_NEW_KEYWORD(SQL_TOKEN_OPTION); } -OR {SQL_NEW_KEYWORD(SQL_TOKEN_OR); } -ORDER {SQL_NEW_KEYWORD(SQL_TOKEN_ORDER); } -OTHERS {SQL_NEW_KEYWORD(SQL_TOKEN_OTHERS); } -OUTER {SQL_NEW_KEYWORD(SQL_TOKEN_OUTER); } -OVER {SQL_NEW_KEYWORD(SQL_TOKEN_OVER); } - -PARTITION {SQL_NEW_KEYWORD(SQL_TOKEN_PARTITION); } -PERCENT_RANK {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENT_RANK); } -PERCENTILE_CONT {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENTILE_CONT); } -PERCENTILE_DISC {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENTILE_DISC); } -PI {SQL_NEW_KEYWORD(SQL_TOKEN_PI); } -POSITION {SQL_NEW_KEYWORD(SQL_TOKEN_POSITION); } -POWER {SQL_NEW_KEYWORD(SQL_TOKEN_POWER); } +GRANT {SQL_NEW_KEYWORD(SQL_TOKEN_GRANT); } +GROUP {SQL_NEW_KEYWORD(SQL_TOKEN_GROUP); } + +HAVING {SQL_NEW_KEYWORD(SQL_TOKEN_HAVING); } +HOUR {SQL_NEW_KEYWORD(SQL_TOKEN_HOUR); } + +IGNORE {SQL_NEW_KEYWORD(SQL_TOKEN_IGNORE); } +IN {SQL_NEW_KEYWORD(SQL_TOKEN_IN); } +INNER {SQL_NEW_KEYWORD(SQL_TOKEN_INNER); } +INSERT {SQL_NEW_KEYWORD(SQL_TOKEN_INSERT); } +INSTEAD {SQL_NEW_KEYWORD(SQL_TOKEN_INSTEAD); } +INT(EGER)? {SQL_NEW_KEYWORD(SQL_TOKEN_INTEGER); } +INTERSECT {SQL_NEW_KEYWORD(SQL_TOKEN_INTERSECT); } +INTERVAL {SQL_NEW_KEYWORD(SQL_TOKEN_INTERVAL); } +INTERSECTION {SQL_NEW_KEYWORD(SQL_TOKEN_INTERSECTION); } +INTO {SQL_NEW_KEYWORD(SQL_TOKEN_INTO); } +IS {SQL_NEW_KEYWORD(SQL_TOKEN_IS); } + +JOIN {SQL_NEW_KEYWORD(SQL_TOKEN_JOIN); } + +KEY {SQL_NEW_KEYWORD(SQL_TOKEN_KEY); } + +LAG {SQL_NEW_KEYWORD(SQL_TOKEN_LAG); } +LARGE {SQL_NEW_KEYWORD(SQL_TOKEN_LARGE); } +LAST {SQL_NEW_KEYWORD(SQL_TOKEN_LAST); } +LAST_VALUE {SQL_NEW_KEYWORD(SQL_TOKEN_LAST_VALUE); } +LCASE {SQL_NEW_KEYWORD(SQL_TOKEN_LCASE); } +LEAD {SQL_NEW_KEYWORD(SQL_TOKEN_LEAD); } +LEADING {SQL_NEW_KEYWORD(SQL_TOKEN_LEADING); } +LEFT {SQL_NEW_KEYWORD(SQL_TOKEN_LEFT); } +LENGTH {SQL_NEW_KEYWORD(SQL_TOKEN_LENGTH); } +LIKE {SQL_NEW_KEYWORD(SQL_TOKEN_LIKE); } +LIMIT {SQL_NEW_KEYWORD(SQL_TOKEN_LIMIT); } +LN {SQL_NEW_KEYWORD(SQL_TOKEN_LN); } +LOCAL {SQL_NEW_KEYWORD(SQL_TOKEN_LOCAL); } +LOCATE {SQL_NEW_KEYWORD(SQL_TOKEN_LOCATE); } +LOG {SQL_NEW_KEYWORD(SQL_TOKEN_LOG); } +LOGF {SQL_NEW_KEYWORD(SQL_TOKEN_LOGF); } +LOG10 {SQL_NEW_KEYWORD(SQL_TOKEN_LOG10); } +LOWER {SQL_NEW_KEYWORD(SQL_TOKEN_LOWER); } +LTRIM {SQL_NEW_KEYWORD(SQL_TOKEN_LTRIM); } + +MAX {SQL_NEW_KEYWORD(SQL_TOKEN_MAX); } +MIN {SQL_NEW_KEYWORD(SQL_TOKEN_MIN); } +MINUTE {SQL_NEW_KEYWORD(SQL_TOKEN_MINUTE); } +MOD {SQL_NEW_KEYWORD(SQL_TOKEN_MOD); } +MONTH {SQL_NEW_KEYWORD(SQL_TOKEN_MONTH); } +MONTHNAME {SQL_NEW_KEYWORD(SQL_TOKEN_MONTHNAME); } + +NATIONAL {SQL_NEW_KEYWORD(SQL_TOKEN_NATIONAL); } +NATURAL {SQL_NEW_KEYWORD(SQL_TOKEN_NATURAL); } +NCHAR {SQL_NEW_KEYWORD(SQL_TOKEN_NCHAR); } +NCLOB {SQL_NEW_KEYWORD(SQL_TOKEN_NCLOB); } +NEW {SQL_NEW_KEYWORD(SQL_TOKEN_NEW); } +NEXT {SQL_NEW_KEYWORD(SQL_TOKEN_NEXT); } +NO {SQL_NEW_KEYWORD(SQL_TOKEN_NO); } +NOT {SQL_NEW_KEYWORD(SQL_TOKEN_NOT); } +NOW {SQL_NEW_KEYWORD(SQL_TOKEN_NOW); } +NTH_VALUE {SQL_NEW_KEYWORD(SQL_TOKEN_NTH_VALUE); } +NTILE {SQL_NEW_KEYWORD(SQL_TOKEN_NTILE); } +NULL {SQL_NEW_KEYWORD(SQL_TOKEN_NULL); } +NULLIF {SQL_NEW_KEYWORD(SQL_TOKEN_NULLIF); } +NULLS {SQL_NEW_KEYWORD(SQL_TOKEN_NULLS); } +NUMERIC {SQL_NEW_KEYWORD(SQL_TOKEN_NUMERIC); } + +OBJECT {SQL_NEW_KEYWORD(SQL_TOKEN_OBJECT); } +OCTET_LENGTH {SQL_NEW_KEYWORD(SQL_TOKEN_OCTET_LENGTH); } +OF {SQL_NEW_KEYWORD(SQL_TOKEN_OF); } +OFFSET {SQL_NEW_KEYWORD(SQL_TOKEN_OFFSET); } +OJ {SQL_NEW_KEYWORD(SQL_TOKEN_OJ); } +OLD {SQL_NEW_KEYWORD(SQL_TOKEN_OLD); } +ON {SQL_NEW_KEYWORD(SQL_TOKEN_ON); } +ONLY {SQL_NEW_KEYWORD(SQL_TOKEN_ONLY); } +OPTION {SQL_NEW_KEYWORD(SQL_TOKEN_OPTION); } +OR {SQL_NEW_KEYWORD(SQL_TOKEN_OR); } +ORDER {SQL_NEW_KEYWORD(SQL_TOKEN_ORDER); } +OTHERS {SQL_NEW_KEYWORD(SQL_TOKEN_OTHERS); } +OUTER {SQL_NEW_KEYWORD(SQL_TOKEN_OUTER); } +OVER {SQL_NEW_KEYWORD(SQL_TOKEN_OVER); } + +PARTITION {SQL_NEW_KEYWORD(SQL_TOKEN_PARTITION); } +PERCENT_RANK {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENT_RANK); } +PERCENTILE_CONT {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENTILE_CONT); } +PERCENTILE_DISC {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENTILE_DISC); } +PI {SQL_NEW_KEYWORD(SQL_TOKEN_PI); } +POSITION {SQL_NEW_KEYWORD(SQL_TOKEN_POSITION); } +POWER {SQL_NEW_KEYWORD(SQL_TOKEN_POWER); } PRECEDING {SQL_NEW_KEYWORD(SQL_TOKEN_PRECEDING); } PRECISION {SQL_NEW_KEYWORD(SQL_TOKEN_PRECISION); } -PRIMARY {SQL_NEW_KEYWORD(SQL_TOKEN_PRIMARY); } -PRIVILEGES {SQL_NEW_KEYWORD(SQL_TOKEN_PRIVILEGES); } +PRIMARY {SQL_NEW_KEYWORD(SQL_TOKEN_PRIMARY); } +PRIVILEGES {SQL_NEW_KEYWORD(SQL_TOKEN_PRIVILEGES); } PROCEDURE {SQL_NEW_KEYWORD(SQL_TOKEN_PROCEDURE); } -PUBLIC {SQL_NEW_KEYWORD(SQL_TOKEN_PUBLIC); } - -QUARTER {SQL_NEW_KEYWORD(SQL_TOKEN_QUARTER); } - -RADIANS {SQL_NEW_KEYWORD(SQL_TOKEN_RADIANS); } -RAND {SQL_NEW_KEYWORD(SQL_TOKEN_RAND); } -RANGE {SQL_NEW_KEYWORD(SQL_TOKEN_RANGE); } -RANK {SQL_NEW_KEYWORD(SQL_TOKEN_RANK); } -REAL {SQL_NEW_KEYWORD(SQL_TOKEN_REAL); } -REFERENCES {SQL_NEW_KEYWORD(SQL_TOKEN_REFERENCES); } -REFERENCING {SQL_NEW_KEYWORD(SQL_TOKEN_REFERENCING); } -REPEAT {SQL_NEW_KEYWORD(SQL_TOKEN_REPEAT); } -REPLACE {SQL_NEW_KEYWORD(SQL_TOKEN_REPLACE); } -RESPECT {SQL_NEW_KEYWORD(SQL_TOKEN_RESPECT); } +PUBLIC {SQL_NEW_KEYWORD(SQL_TOKEN_PUBLIC); } + +QUARTER {SQL_NEW_KEYWORD(SQL_TOKEN_QUARTER); } + +RADIANS {SQL_NEW_KEYWORD(SQL_TOKEN_RADIANS); } +RAND {SQL_NEW_KEYWORD(SQL_TOKEN_RAND); } +RANGE {SQL_NEW_KEYWORD(SQL_TOKEN_RANGE); } +RANK {SQL_NEW_KEYWORD(SQL_TOKEN_RANK); } +REAL {SQL_NEW_KEYWORD(SQL_TOKEN_REAL); } +REFERENCES {SQL_NEW_KEYWORD(SQL_TOKEN_REFERENCES); } +REFERENCING {SQL_NEW_KEYWORD(SQL_TOKEN_REFERENCING); } +REPEAT {SQL_NEW_KEYWORD(SQL_TOKEN_REPEAT); } +REPLACE {SQL_NEW_KEYWORD(SQL_TOKEN_REPLACE); } +RESPECT {SQL_NEW_KEYWORD(SQL_TOKEN_RESPECT); } ROLLBACK {SQL_NEW_KEYWORD(SQL_TOKEN_ROLLBACK); } -ROUND {SQL_NEW_KEYWORD(SQL_TOKEN_ROUND); } -ROUNDMAGIC {SQL_NEW_KEYWORD(SQL_TOKEN_ROUNDMAGIC); } -ROW {SQL_NEW_KEYWORD(SQL_TOKEN_ROW); } -ROWS {SQL_NEW_KEYWORD(SQL_TOKEN_ROWS); } -ROW_NUMBER {SQL_NEW_KEYWORD(SQL_TOKEN_ROW_NUMBER); } -RIGHT {SQL_NEW_KEYWORD(SQL_TOKEN_RIGHT); } -RTRIM {SQL_NEW_KEYWORD(SQL_TOKEN_RTRIM); } - -SCHEMA {SQL_NEW_KEYWORD(SQL_TOKEN_SCHEMA); } -SECOND {SQL_NEW_KEYWORD(SQL_TOKEN_SECOND); } -SELECT {SQL_NEW_KEYWORD(SQL_TOKEN_SELECT); } -SET {SQL_NEW_KEYWORD(SQL_TOKEN_SET); } -SIZE {SQL_NEW_KEYWORD(SQL_TOKEN_SIZE); } -SIGN {SQL_NEW_KEYWORD(SQL_TOKEN_SIGN); } -SIN {SQL_NEW_KEYWORD(SQL_TOKEN_SIN); } +ROUND {SQL_NEW_KEYWORD(SQL_TOKEN_ROUND); } +ROUNDMAGIC {SQL_NEW_KEYWORD(SQL_TOKEN_ROUNDMAGIC); } +ROW {SQL_NEW_KEYWORD(SQL_TOKEN_ROW); } +ROWS {SQL_NEW_KEYWORD(SQL_TOKEN_ROWS); } +ROW_NUMBER {SQL_NEW_KEYWORD(SQL_TOKEN_ROW_NUMBER); } +RIGHT {SQL_NEW_KEYWORD(SQL_TOKEN_RIGHT); } +RTRIM {SQL_NEW_KEYWORD(SQL_TOKEN_RTRIM); } + +SCHEMA {SQL_NEW_KEYWORD(SQL_TOKEN_SCHEMA); } +SECOND {SQL_NEW_KEYWORD(SQL_TOKEN_SECOND); } +SELECT {SQL_NEW_KEYWORD(SQL_TOKEN_SELECT); } +SET {SQL_NEW_KEYWORD(SQL_TOKEN_SET); } +SIZE {SQL_NEW_KEYWORD(SQL_TOKEN_SIZE); } +SIGN {SQL_NEW_KEYWORD(SQL_TOKEN_SIGN); } +SIN {SQL_NEW_KEYWORD(SQL_TOKEN_SIN); } SMALLINT {SQL_NEW_KEYWORD(SQL_TOKEN_SMALLINT); } -SOME {SQL_NEW_KEYWORD(SQL_TOKEN_SOME); } -SOUNDEX {SQL_NEW_KEYWORD(SQL_TOKEN_SOUNDEX); } -SPACE {SQL_NEW_KEYWORD(SQL_TOKEN_SPACE); } -SQRT {SQL_NEW_KEYWORD(SQL_TOKEN_SQRT); } +SOME {SQL_NEW_KEYWORD(SQL_TOKEN_SOME); } +SOUNDEX {SQL_NEW_KEYWORD(SQL_TOKEN_SOUNDEX); } +SPACE {SQL_NEW_KEYWORD(SQL_TOKEN_SPACE); } +SQRT {SQL_NEW_KEYWORD(SQL_TOKEN_SQRT); } STDDEV_POP {SQL_NEW_KEYWORD(SQL_TOKEN_STDDEV_POP); } -STDDEV_SAMP {SQL_NEW_KEYWORD(SQL_TOKEN_STDDEV_SAMP); } -STATEMENT {SQL_NEW_KEYWORD(SQL_TOKEN_STATEMENT); } -SUBSTRING {SQL_NEW_KEYWORD(SQL_TOKEN_SUBSTRING); } -SUM {SQL_NEW_KEYWORD(SQL_TOKEN_SUM); } -SESSION_USER {SQL_NEW_KEYWORD(SQL_TOKEN_SESSION_USER); } -SYSTEM_USER {SQL_NEW_KEYWORD(SQL_TOKEN_SYSTEM_USER); } - -TABLE {SQL_NEW_KEYWORD(SQL_TOKEN_TABLE); } -TAN {SQL_NEW_KEYWORD(SQL_TOKEN_TAN); } -THEN {SQL_NEW_KEYWORD(SQL_TOKEN_THEN); } -TIES {SQL_NEW_KEYWORD(SQL_TOKEN_TIES); } -TIME {SQL_NEW_KEYWORD(SQL_TOKEN_TIME); } -TIMESTAMP {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMP); } -TIMESTAMPADD {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMPADD); } -TIMESTAMPDIFF {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMPDIFF); } -TIMEVALUE {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEVALUE); } -TIMEZONE_HOUR {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEZONE_HOUR); } -TIMEZONE_MINUTE {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEZONE_MINUTE); } -TO {SQL_NEW_KEYWORD(SQL_TOKEN_TO); } -TRAILING {SQL_NEW_KEYWORD(SQL_TOKEN_TRAILING); } -TRANSLATE {SQL_NEW_KEYWORD(SQL_TOKEN_TRANSLATE); } -TRIGGER {SQL_NEW_KEYWORD(SQL_TOKEN_TRIGGER); } -TRIM {SQL_NEW_KEYWORD(SQL_TOKEN_TRIM); } -TRUE {SQL_NEW_KEYWORD(SQL_TOKEN_TRUE); } -TRUNCATE {SQL_NEW_KEYWORD(SQL_TOKEN_TRUNCATE); } -TS {SQL_NEW_KEYWORD(SQL_TOKEN_TS); } -T {SQL_NEW_KEYWORD(SQL_TOKEN_T); } - -UCASE {SQL_NEW_KEYWORD(SQL_TOKEN_UCASE); } -UNBOUNDED {SQL_NEW_KEYWORD(SQL_TOKEN_UNBOUNDED); } -UNION {SQL_NEW_KEYWORD(SQL_TOKEN_UNION); } -UNIQUE {SQL_NEW_KEYWORD(SQL_TOKEN_UNIQUE); } -UNKNOWN {SQL_NEW_KEYWORD(SQL_TOKEN_UNKNOWN); } -UPDATE {SQL_NEW_KEYWORD(SQL_TOKEN_UPDATE); } -UPPER {SQL_NEW_KEYWORD(SQL_TOKEN_UPPER); } -USAGE {SQL_NEW_KEYWORD(SQL_TOKEN_USAGE); } -USER {SQL_NEW_KEYWORD(SQL_TOKEN_USER); } -USING {SQL_NEW_KEYWORD(SQL_TOKEN_USING); } - -VARBINARY {SQL_NEW_KEYWORD(SQL_TOKEN_VARBINARY); } +STDDEV_SAMP {SQL_NEW_KEYWORD(SQL_TOKEN_STDDEV_SAMP); } +STATEMENT {SQL_NEW_KEYWORD(SQL_TOKEN_STATEMENT); } +SUBSTRING {SQL_NEW_KEYWORD(SQL_TOKEN_SUBSTRING); } +SUM {SQL_NEW_KEYWORD(SQL_TOKEN_SUM); } +SESSION_USER {SQL_NEW_KEYWORD(SQL_TOKEN_SESSION_USER); } +SYSTEM_USER {SQL_NEW_KEYWORD(SQL_TOKEN_SYSTEM_USER); } + +TABLE {SQL_NEW_KEYWORD(SQL_TOKEN_TABLE); } +TAN {SQL_NEW_KEYWORD(SQL_TOKEN_TAN); } +THEN {SQL_NEW_KEYWORD(SQL_TOKEN_THEN); } +TIES {SQL_NEW_KEYWORD(SQL_TOKEN_TIES); } +TIME {SQL_NEW_KEYWORD(SQL_TOKEN_TIME); } +TIMESTAMP {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMP); } +TIMESTAMPADD {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMPADD); } +TIMESTAMPDIFF {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMPDIFF); } +TIMEVALUE {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEVALUE); } +TIMEZONE_HOUR {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEZONE_HOUR); } +TIMEZONE_MINUTE {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEZONE_MINUTE); } +TO {SQL_NEW_KEYWORD(SQL_TOKEN_TO); } +TRAILING {SQL_NEW_KEYWORD(SQL_TOKEN_TRAILING); } +TRANSLATE {SQL_NEW_KEYWORD(SQL_TOKEN_TRANSLATE); } +TRIGGER {SQL_NEW_KEYWORD(SQL_TOKEN_TRIGGER); } +TRIM {SQL_NEW_KEYWORD(SQL_TOKEN_TRIM); } +TRUE {SQL_NEW_KEYWORD(SQL_TOKEN_TRUE); } +TRUNCATE {SQL_NEW_KEYWORD(SQL_TOKEN_TRUNCATE); } +TS {SQL_NEW_KEYWORD(SQL_TOKEN_TS); } +T {SQL_NEW_KEYWORD(SQL_TOKEN_T); } + +UCASE {SQL_NEW_KEYWORD(SQL_TOKEN_UCASE); } +UNBOUNDED {SQL_NEW_KEYWORD(SQL_TOKEN_UNBOUNDED); } +UNION {SQL_NEW_KEYWORD(SQL_TOKEN_UNION); } +UNIQUE {SQL_NEW_KEYWORD(SQL_TOKEN_UNIQUE); } +UNKNOWN {SQL_NEW_KEYWORD(SQL_TOKEN_UNKNOWN); } +UPDATE {SQL_NEW_KEYWORD(SQL_TOKEN_UPDATE); } +UPPER {SQL_NEW_KEYWORD(SQL_TOKEN_UPPER); } +USAGE {SQL_NEW_KEYWORD(SQL_TOKEN_USAGE); } +USER {SQL_NEW_KEYWORD(SQL_TOKEN_USER); } +USING {SQL_NEW_KEYWORD(SQL_TOKEN_USING); } + +VARBINARY {SQL_NEW_KEYWORD(SQL_TOKEN_VARBINARY); } VARCHAR {SQL_NEW_KEYWORD(SQL_TOKEN_VARCHAR); } VARYING {SQL_NEW_KEYWORD(SQL_TOKEN_VARYING); } VAR_POP {SQL_NEW_KEYWORD(SQL_TOKEN_VAR_POP); } VAR_SAMP {SQL_NEW_KEYWORD(SQL_TOKEN_VAR_SAMP); } -VALUE {SQL_NEW_KEYWORD(SQL_TOKEN_VALUE); } -VALUES {SQL_NEW_KEYWORD(SQL_TOKEN_VALUES); } -VIEW {SQL_NEW_KEYWORD(SQL_TOKEN_VIEW); } +VALUE {SQL_NEW_KEYWORD(SQL_TOKEN_VALUE); } +VALUES {SQL_NEW_KEYWORD(SQL_TOKEN_VALUES); } +VIEW {SQL_NEW_KEYWORD(SQL_TOKEN_VIEW); } -WEEK {SQL_NEW_KEYWORD(SQL_TOKEN_WEEK); } -WHEN {SQL_NEW_KEYWORD(SQL_TOKEN_WHEN); } -WHERE {SQL_NEW_KEYWORD(SQL_TOKEN_WHERE); } -WITH {SQL_NEW_KEYWORD(SQL_TOKEN_WITH); } -WITHIN {SQL_NEW_KEYWORD(SQL_TOKEN_WITHIN); } -WITHOUT {SQL_NEW_KEYWORD(SQL_TOKEN_WITHOUT); } -WORK {SQL_NEW_KEYWORD(SQL_TOKEN_WORK); } +WEEK {SQL_NEW_KEYWORD(SQL_TOKEN_WEEK); } +WHEN {SQL_NEW_KEYWORD(SQL_TOKEN_WHEN); } +WHERE {SQL_NEW_KEYWORD(SQL_TOKEN_WHERE); } +WITH {SQL_NEW_KEYWORD(SQL_TOKEN_WITH); } +WITHIN {SQL_NEW_KEYWORD(SQL_TOKEN_WITHIN); } +WITHOUT {SQL_NEW_KEYWORD(SQL_TOKEN_WITHOUT); } +WORK {SQL_NEW_KEYWORD(SQL_TOKEN_WORK); } -YEAR {SQL_NEW_KEYWORD(SQL_TOKEN_YEAR); } +YEAR {SQL_NEW_KEYWORD(SQL_TOKEN_YEAR); } -ZONE {SQL_NEW_KEYWORD(SQL_TOKEN_ZONE); } +ZONE {SQL_NEW_KEYWORD(SQL_TOKEN_ZONE); } -"<" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_LESS);return SQL_LESS;} -">" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_GREAT);return SQL_GREAT;} -"=" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_EQUAL);return SQL_EQUAL;} -"<=" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_LESSEQ);return SQL_LESSEQ;} -">=" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_GREATEQ);return SQL_GREATEQ;} -"<>" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_NOTEQUAL);return SQL_NOTEQUAL;} -"!=" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_NOTEQUAL);return SQL_NOTEQUAL;} -"||" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_CONCAT);return SQL_CONCAT;} +"<" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_LESS);return SQL_LESS;} +">" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_GREAT);return SQL_GREAT;} +"=" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_EQUAL);return SQL_EQUAL;} +"<=" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_LESSEQ);return SQL_LESSEQ;} +">=" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_GREATEQ);return SQL_GREATEQ;} +"<>" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_NOTEQUAL);return SQL_NOTEQUAL;} +"!=" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_NOTEQUAL);return SQL_NOTEQUAL;} +"||" { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_CONCAT);return SQL_CONCAT;} [-+*/:(),.;?{}] { return SQLyytext[0]; } -<SQL>[A-Za-z\200-\277\300-\337\340-\357\360-\367\370-\373\374-\375][A-Za-z\200-\277\300-\337\340-\357\360-\367\370-\373\374-\375_0-9]* {return gatherName( SQLyytext);} +<SQL>[A-Za-z\200-\277\300-\337\340-\357\360-\367\370-\373\374-\375][A-Za-z\200-\277\300-\337\340-\357\360-\367\370-\373\374-\375_0-9]* {return gatherName( SQLyytext);} -<SQL>([0-9]+) {SQL_NEW_INTNUM; } +<SQL>([0-9]+) {SQL_NEW_INTNUM; } <SQL>("."[0-9]*) | -<SQL>([0-9]+"."[0-9]*) | +<SQL>([0-9]+"."[0-9]*) | <SQL>[0-9]+[eE][+-]?[0-9]+ | <SQL>[0-9]+"."[0-9]*[eE][+-]?[0-9]+ | -<SQL>"."[0-9]*[eE][+-]?[0-9]+ {SQL_NEW_APPROXNUM; } +<SQL>"."[0-9]*[eE][+-]?[0-9]+ {SQL_NEW_APPROXNUM; } <PREDICATE_GER,PREDICATE_ENG,DATE>[A-Za-z\200-\277\300-\337\340-\357\360-\367\370-\373\374-\375][A-Za-z0-9_%.,*?\200-\277\300-\337\340-\357\360-\367\370-\373\374-\375]* {return gatherNamePre(SQLyytext);} -<PREDICATE_GER,PREDICATE_ENG>([0-9]+) {SQL_NEW_INTNUM; } -<PREDICATE_ENG>([0-9]{1,3}(","[0-9]{3})+) {SQL_NEW_INTNUM; } -<PREDICATE_GER>([0-9]{1,3}("."[0-9]{3})+) {SQL_NEW_INTNUM; } +<PREDICATE_GER,PREDICATE_ENG>([0-9]+) {SQL_NEW_INTNUM; } +<PREDICATE_ENG>([0-9]{1,3}(","[0-9]{3})+) {SQL_NEW_INTNUM; } +<PREDICATE_GER>([0-9]{1,3}("."[0-9]{3})+) {SQL_NEW_INTNUM; } <PREDICATE_ENG>([0-9]+"."[0-9]+) | -<PREDICATE_ENG>([0-9]{1,3}(","[0-9]{3})+"."[0-9]+) | -<PREDICATE_ENG>("."[0-9]+) {SQL_NEW_APPROXNUM; } +<PREDICATE_ENG>([0-9]{1,3}(","[0-9]{3})+"."[0-9]+) | +<PREDICATE_ENG>("."[0-9]+) {SQL_NEW_APPROXNUM; } <PREDICATE_ENG>[0-9]+[eE][+-]?[0-9]+ | <PREDICATE_ENG>[0-9]+"."[0-9]*[eE][+-]?[0-9]+ | -<PREDICATE_ENG>"."[0-9]*[eE][+-]?[0-9]+ {SQL_NEW_APPROXNUM; } +<PREDICATE_ENG>"."[0-9]*[eE][+-]?[0-9]+ {SQL_NEW_APPROXNUM; } <PREDICATE_GER>([0-9]+","[0-9]+) | -<PREDICATE_GER>([0-9]{1,3}("."[0-9]{3})+","[0-9]+) | -<PREDICATE_GER>(","[0-9]+) {SQL_NEW_APPROXNUM; } +<PREDICATE_GER>([0-9]{1,3}("."[0-9]{3})+","[0-9]+) | +<PREDICATE_GER>(","[0-9]+) {SQL_NEW_APPROXNUM; } <PREDICATE_GER>[0-9]+[eE][+-]?[0-9]+ | <PREDICATE_GER>[0-9]+","[0-9]*[eE][+-]?[0-9]+ | -<PREDICATE_GER>","[0-9]*[eE][+-]?[0-9]+ {SQL_NEW_APPROXNUM; } +<PREDICATE_GER>","[0-9]*[eE][+-]?[0-9]+ {SQL_NEW_APPROXNUM; } <PREDICATE_GER,PREDICATE_ENG>[0-9.,][A-Za-z0-9_.,%]* {return gatherNamePre(SQLyytext);} -<SQL>\" { return gatherString('\"',0); } -<SQL>` { return gatherString('`' ,0); } +<SQL>\" { return gatherString('\"',0); } +<SQL>` { return gatherString('`' ,0); } -<PREDICATE_GER,PREDICATE_ENG,DATE,SQL>"[" { return gatherString(']' ,0);} +<PREDICATE_GER,PREDICATE_ENG,DATE,SQL>"[" { return gatherString(']' ,0);} -\' { return gatherString('\'',1); } +\' { return gatherString('\'',1); } -<PREDICATE_GER,PREDICATE_ENG,DATE># { return gatherString('#' ,2); } +<PREDICATE_GER,PREDICATE_ENG,DATE># { return gatherString('#' ,2); } <DATE>[0-9]{1,4}[^ ]*[0-9] | -<DATE>[0-9]{1,4}[^ ]*[0-9][ ][0-9]{1,4}[^ ]*[0-9] { SQL_NEW_DATE; } +<DATE>[0-9]{1,4}[^ ]*[0-9][ ][0-9]{1,4}[^ ]*[0-9] { SQL_NEW_DATE; } -<STRING>["-""+""*""/"":""("")"",""."";""?""{""}"] { return SQLyytext[0]; } /* */ -<STRING>"[" { return gatherString(']' ,0); } -<STRING>[^ ':["?"]* { return gatherNamePre(SQLyytext); } +<STRING>["-""+""*""/"":""("")"",""."";""?""{""}"] { return SQLyytext[0]; } /* */ +<STRING>"[" { return gatherString(']' ,0); } +<STRING>[^ ':["?"]* { return gatherNamePre(SQLyytext); } \n {} @@ -490,23 +490,23 @@ ZONE {SQL_NEW_KEYWORD(SQL_TOKEN_ZONE); } "--".*$ {} -. {YY_FATAL_ERROR("Invalid symbol"); return SQL_TOKEN_INVALIDSYMBOL;} +. {YY_FATAL_ERROR("Invalid symbol"); return SQL_TOKEN_INVALIDSYMBOL;} %% -// Kludge around a bug (well, Posix incompatibility) in flex 2.5.x -// http://bugs.debian.org/cgi-bin/bugreport.cgi?archive=no&bug=189332 -#if YY_FLEX_MAJOR_VERSION >= 2 && YY_FLEX_MINOR_VERSION >= 5 - - #ifndef YY_FLUSH_BUFFER - #define YY_FLUSH_BUFFER SQLyy_flush_buffer(YY_CURRENT_BUFFER ) - #endif - - #ifndef yytext_ptr - #define yytext_ptr SQLyytext - #endif - -#endif +// Kludge around a bug (well, Posix incompatibility) in flex 2.5.x +// http://bugs.debian.org/cgi-bin/bugreport.cgi?archive=no&bug=189332 +#if YY_FLEX_MAJOR_VERSION >= 2 && YY_FLEX_MINOR_VERSION >= 5 + + #ifndef YY_FLUSH_BUFFER + #define YY_FLUSH_BUFFER SQLyy_flush_buffer(YY_CURRENT_BUFFER ) + #endif + + #ifndef yytext_ptr + #define yytext_ptr SQLyytext + #endif + +#endif // Versions of flex apparently differ in whether input() resp. yyinput() returns // zero or EOF upon end of file: @@ -515,75 +515,75 @@ inline bool checkeof(int c) { return c == 0 || c == EOF; } /* * Read SQL string literal * Valid strings: - * '' 'a string' 'quote '' within string' - * "" "a string" "quote "" within string" + * '' 'a string' 'quote '' within string' + * "" "a string" "quote "" within string" * nTyp == 0 -> SQL_NODE_NAME * nTyp == 1 -> SQL_NODE_STRING * nTyp == 2 -> SQL_NODE_ACCESS_DATE */ sal_Int32 gatherString(int delim, sal_Int32 nTyp) { - int ch; - ::rtl::OStringBuffer sBuffer(256); - - while (!checkeof(ch = yyinput())) - { - if (ch == delim) - { - if ((ch = yyinput()) != delim) - { - if (!checkeof(ch)) - unput(ch); - - switch(nTyp) - { - case 0: - SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_NAME); - return SQL_TOKEN_NAME; - case 1: - SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_STRING); - return SQL_TOKEN_STRING; - case 2: - SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_ACCESS_DATE); - return SQL_TOKEN_ACCESS_DATE; - } - } - else - { - sBuffer.append(static_cast<sal_Char>(ch)); - } - - } - else if (nTyp != 1 && (ch == '\r' || ch == '\n') ) - break; - else - { - sBuffer.append(static_cast<sal_Char>(ch)); - } - } - YY_FATAL_ERROR("Unterminated name string"); - return SQL_TOKEN_INVALIDSYMBOL; + int ch; + ::rtl::OStringBuffer sBuffer(256); + + while (!checkeof(ch = yyinput())) + { + if (ch == delim) + { + if ((ch = yyinput()) != delim) + { + if (!checkeof(ch)) + unput(ch); + + switch(nTyp) + { + case 0: + SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_NAME); + return SQL_TOKEN_NAME; + case 1: + SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_STRING); + return SQL_TOKEN_STRING; + case 2: + SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_ACCESS_DATE); + return SQL_TOKEN_ACCESS_DATE; + } + } + else + { + sBuffer.append(static_cast<sal_Char>(ch)); + } + + } + else if (nTyp != 1 && (ch == '\r' || ch == '\n') ) + break; + else + { + sBuffer.append(static_cast<sal_Char>(ch)); + } + } + YY_FATAL_ERROR("Unterminated name string"); + return SQL_TOKEN_INVALIDSYMBOL; } sal_Int32 mapEnumToToken(IParseContext::InternationalKeyCode _eKeyCode ) { - sal_Int32 nTokenID = 0; - switch( _eKeyCode ) - { - case IParseContext::KEY_LIKE: nTokenID = SQL_TOKEN_LIKE; break; - case IParseContext::KEY_NOT: nTokenID = SQL_TOKEN_NOT; break; - case IParseContext::KEY_NULL: nTokenID = SQL_TOKEN_NULL; break; - case IParseContext::KEY_TRUE: nTokenID = SQL_TOKEN_TRUE; break; - case IParseContext::KEY_FALSE: nTokenID = SQL_TOKEN_FALSE; break; - case IParseContext::KEY_IS: nTokenID = SQL_TOKEN_IS; break; - case IParseContext::KEY_BETWEEN: nTokenID = SQL_TOKEN_BETWEEN; break; - case IParseContext::KEY_OR: nTokenID = SQL_TOKEN_OR; break; - case IParseContext::KEY_AND: nTokenID = SQL_TOKEN_AND; break; - case IParseContext::KEY_AVG: nTokenID = SQL_TOKEN_AVG; break; - case IParseContext::KEY_COUNT: nTokenID = SQL_TOKEN_COUNT; break; - case IParseContext::KEY_MAX: nTokenID = SQL_TOKEN_MAX; break; - case IParseContext::KEY_MIN: nTokenID = SQL_TOKEN_MIN; break; - case IParseContext::KEY_SUM: nTokenID = SQL_TOKEN_SUM; break; + sal_Int32 nTokenID = 0; + switch( _eKeyCode ) + { + case IParseContext::KEY_LIKE: nTokenID = SQL_TOKEN_LIKE; break; + case IParseContext::KEY_NOT: nTokenID = SQL_TOKEN_NOT; break; + case IParseContext::KEY_NULL: nTokenID = SQL_TOKEN_NULL; break; + case IParseContext::KEY_TRUE: nTokenID = SQL_TOKEN_TRUE; break; + case IParseContext::KEY_FALSE: nTokenID = SQL_TOKEN_FALSE; break; + case IParseContext::KEY_IS: nTokenID = SQL_TOKEN_IS; break; + case IParseContext::KEY_BETWEEN: nTokenID = SQL_TOKEN_BETWEEN; break; + case IParseContext::KEY_OR: nTokenID = SQL_TOKEN_OR; break; + case IParseContext::KEY_AND: nTokenID = SQL_TOKEN_AND; break; + case IParseContext::KEY_AVG: nTokenID = SQL_TOKEN_AVG; break; + case IParseContext::KEY_COUNT: nTokenID = SQL_TOKEN_COUNT; break; + case IParseContext::KEY_MAX: nTokenID = SQL_TOKEN_MAX; break; + case IParseContext::KEY_MIN: nTokenID = SQL_TOKEN_MIN; break; + case IParseContext::KEY_SUM: nTokenID = SQL_TOKEN_SUM; break; case IParseContext::KEY_EVERY: nTokenID = SQL_TOKEN_EVERY; break; case IParseContext::KEY_ANY: nTokenID = SQL_TOKEN_ANY; break; case IParseContext::KEY_SOME: nTokenID = SQL_TOKEN_SOME; break; @@ -594,113 +594,113 @@ sal_Int32 mapEnumToToken(IParseContext::InternationalKeyCode _eKeyCode ) case IParseContext::KEY_COLLECT: nTokenID = SQL_TOKEN_COLLECT; break; case IParseContext::KEY_FUSION: nTokenID = SQL_TOKEN_FUSION; break; case IParseContext::KEY_INTERSECTION: nTokenID = SQL_TOKEN_INTERSECTION; break; - default: + default: OSL_FAIL( "mapEnumToToken: unsupported key!" ); - } - return nTokenID; + } + return nTokenID; } /* * Read SQL Name literal * Valid Names or international keywords: - * As we have international keywords, we test first on them + * As we have international keywords, we test first on them */ sal_Int32 gatherName(const sal_Char* text) { - sal_Int32 nToken; - OSL_ENSURE(xxx_pGLOBAL_SQLSCAN,"You forgot to set the scanner!"); - IParseContext::InternationalKeyCode eKeyCode = xxx_pGLOBAL_SQLSCAN->getInternationalTokenID(text); - switch (eKeyCode) - { - case IParseContext::KEY_LIKE: - case IParseContext::KEY_NOT: - case IParseContext::KEY_NULL: - case IParseContext::KEY_TRUE: - case IParseContext::KEY_FALSE: - case IParseContext::KEY_IS: - case IParseContext::KEY_BETWEEN: - case IParseContext::KEY_OR: - case IParseContext::KEY_AND: - case IParseContext::KEY_COUNT: - case IParseContext::KEY_AVG: - case IParseContext::KEY_MAX: - case IParseContext::KEY_MIN: - case IParseContext::KEY_SUM: - case IParseContext::KEY_EVERY: - case IParseContext::KEY_ANY: - case IParseContext::KEY_SOME: - case IParseContext::KEY_STDDEV_POP: + sal_Int32 nToken; + OSL_ENSURE(xxx_pGLOBAL_SQLSCAN,"You forgot to set the scanner!"); + IParseContext::InternationalKeyCode eKeyCode = xxx_pGLOBAL_SQLSCAN->getInternationalTokenID(text); + switch (eKeyCode) + { + case IParseContext::KEY_LIKE: + case IParseContext::KEY_NOT: + case IParseContext::KEY_NULL: + case IParseContext::KEY_TRUE: + case IParseContext::KEY_FALSE: + case IParseContext::KEY_IS: + case IParseContext::KEY_BETWEEN: + case IParseContext::KEY_OR: + case IParseContext::KEY_AND: + case IParseContext::KEY_COUNT: + case IParseContext::KEY_AVG: + case IParseContext::KEY_MAX: + case IParseContext::KEY_MIN: + case IParseContext::KEY_SUM: + case IParseContext::KEY_EVERY: + case IParseContext::KEY_ANY: + case IParseContext::KEY_SOME: + case IParseContext::KEY_STDDEV_POP: case IParseContext::KEY_STDDEV_SAMP: - case IParseContext::KEY_VAR_SAMP: - case IParseContext::KEY_VAR_POP: - case IParseContext::KEY_COLLECT: - case IParseContext::KEY_FUSION: - case IParseContext::KEY_INTERSECTION: - nToken = mapEnumToToken(eKeyCode); - SQL_NEW_KEYWORD(nToken); - break; - default: - SQL_NEW_NODE(::rtl::OUString(text,strlen(text),RTL_TEXTENCODING_UTF8), SQL_NODE_NAME); - return SQL_TOKEN_NAME; - } + case IParseContext::KEY_VAR_SAMP: + case IParseContext::KEY_VAR_POP: + case IParseContext::KEY_COLLECT: + case IParseContext::KEY_FUSION: + case IParseContext::KEY_INTERSECTION: + nToken = mapEnumToToken(eKeyCode); + SQL_NEW_KEYWORD(nToken); + break; + default: + SQL_NEW_NODE(::rtl::OUString(text,strlen(text),RTL_TEXTENCODING_UTF8), SQL_NODE_NAME); + return SQL_TOKEN_NAME; + } } /** Read SQL Name literal for predicate check Valid Names or internatioanl keywords: - As we have international keywords, we test first on them + As we have international keywords, we test first on them */ sal_Int32 gatherNamePre(const sal_Char* text) -{ - sal_Int32 nToken; - OSL_ENSURE(xxx_pGLOBAL_SQLSCAN,"You forgot to set the scanner!"); - IParseContext::InternationalKeyCode eKeyCode = xxx_pGLOBAL_SQLSCAN->getInternationalTokenID(text); - switch (eKeyCode) - { - case IParseContext::KEY_LIKE: - case IParseContext::KEY_NOT: - case IParseContext::KEY_NULL: - case IParseContext::KEY_TRUE: - case IParseContext::KEY_FALSE: - case IParseContext::KEY_IS: - case IParseContext::KEY_BETWEEN: - case IParseContext::KEY_OR: - case IParseContext::KEY_AND: - case IParseContext::KEY_COUNT: - case IParseContext::KEY_AVG: - case IParseContext::KEY_MAX: - case IParseContext::KEY_MIN: - case IParseContext::KEY_SUM: - case IParseContext::KEY_EVERY: - case IParseContext::KEY_ANY: - case IParseContext::KEY_SOME: - case IParseContext::KEY_STDDEV_POP: +{ + sal_Int32 nToken; + OSL_ENSURE(xxx_pGLOBAL_SQLSCAN,"You forgot to set the scanner!"); + IParseContext::InternationalKeyCode eKeyCode = xxx_pGLOBAL_SQLSCAN->getInternationalTokenID(text); + switch (eKeyCode) + { + case IParseContext::KEY_LIKE: + case IParseContext::KEY_NOT: + case IParseContext::KEY_NULL: + case IParseContext::KEY_TRUE: + case IParseContext::KEY_FALSE: + case IParseContext::KEY_IS: + case IParseContext::KEY_BETWEEN: + case IParseContext::KEY_OR: + case IParseContext::KEY_AND: + case IParseContext::KEY_COUNT: + case IParseContext::KEY_AVG: + case IParseContext::KEY_MAX: + case IParseContext::KEY_MIN: + case IParseContext::KEY_SUM: + case IParseContext::KEY_EVERY: + case IParseContext::KEY_ANY: + case IParseContext::KEY_SOME: + case IParseContext::KEY_STDDEV_POP: case IParseContext::KEY_STDDEV_SAMP: - case IParseContext::KEY_VAR_SAMP: - case IParseContext::KEY_VAR_POP: - case IParseContext::KEY_COLLECT: - case IParseContext::KEY_FUSION: + case IParseContext::KEY_VAR_SAMP: + case IParseContext::KEY_VAR_POP: + case IParseContext::KEY_COLLECT: + case IParseContext::KEY_FUSION: case IParseContext::KEY_INTERSECTION: - nToken = mapEnumToToken(eKeyCode); - SQL_NEW_KEYWORD(nToken); - break; - default: - // we need a special handling for parameter - { - ::rtl::OString sStmt = xxx_pGLOBAL_SQLSCAN->getStatement(); - sal_Int32 nLength = strlen(text); - sal_Int32 nPos = xxx_pGLOBAL_SQLSCAN->GetCurrentPos() - nLength - 2; - if (sStmt.getStr()[nPos] == ':') - { - SQL_NEW_NODE(::rtl::OUString(text,nLength,RTL_TEXTENCODING_UTF8), SQL_NODE_NAME); - nToken = SQL_TOKEN_NAME; - } - else - { - SQL_NEW_NODE(::rtl::OUString(text,nLength,RTL_TEXTENCODING_UTF8), SQL_NODE_STRING); - nToken = SQL_TOKEN_STRING; - } - } - } - return nToken; + nToken = mapEnumToToken(eKeyCode); + SQL_NEW_KEYWORD(nToken); + break; + default: + // we need a special handling for parameter + { + ::rtl::OString sStmt = xxx_pGLOBAL_SQLSCAN->getStatement(); + sal_Int32 nLength = strlen(text); + sal_Int32 nPos = xxx_pGLOBAL_SQLSCAN->GetCurrentPos() - nLength - 2; + if (sStmt.getStr()[nPos] == ':') + { + SQL_NEW_NODE(::rtl::OUString(text,nLength,RTL_TEXTENCODING_UTF8), SQL_NODE_NAME); + nToken = SQL_TOKEN_NAME; + } + else + { + SQL_NEW_NODE(::rtl::OUString(text,nLength,RTL_TEXTENCODING_UTF8), SQL_NODE_STRING); + nToken = SQL_TOKEN_STRING; + } + } + } + return nToken; } using namespace connectivity; @@ -708,12 +708,12 @@ using namespace connectivity; static bool IN_SQLyyerror; //------------------------------------------------------------------------------ OSQLScanner::OSQLScanner() - : m_pContext(NULL) - , m_nCurrentPos(0) - , m_bInternational(sal_False) - , m_nRule(0) // 0 is INITIAL + : m_pContext(NULL) + , m_nCurrentPos(0) + , m_bInternational(sal_False) + , m_nRule(0) // 0 is INITIAL { - IN_SQLyyerror = false; + IN_SQLyyerror = false; } //------------------------------------------------------------------------------ @@ -724,52 +724,52 @@ OSQLScanner::~OSQLScanner() void OSQLScanner::SQLyyerror(sal_Char *fmt) { - if(IN_SQLyyerror) - return; - IN_SQLyyerror = true; - - OSL_ENSURE(m_pContext, "OSQLScanner::SQLyyerror: No Context set"); - m_sErrorMessage = ::rtl::OUString(fmt,strlen(fmt),RTL_TEXTENCODING_UTF8); - if (m_nCurrentPos < m_sStatement.getLength()) - { - m_sErrorMessage += ::rtl::OUString(": "); - - ::rtl::OUString aError; - static sal_Int32 BUFFERSIZE = 256; - static sal_Char* Buffer = 0; - if(!Buffer) - Buffer = new sal_Char[BUFFERSIZE]; - - sal_Char *s = Buffer; - sal_Int32 nPos = 1; - int ch = SQLyytext ? (SQLyytext[0] == 0 ? ' ' : SQLyytext[0]): ' '; - *s++ = ch; - while (!checkeof(ch = yyinput())) - { - if (ch == ' ') - { - if ((ch = yyinput()) != ' ') - { - if (!checkeof(ch)) - unput(ch); - } - *s = '\0'; - aError = ::rtl::OUString(Buffer,nPos,RTL_TEXTENCODING_UTF8); - break; - } - else - { - *s++ = ch; - if (++nPos == BUFFERSIZE) - { - ::rtl::OString aBuf(Buffer); - delete[] Buffer; - BUFFERSIZE *=2; - Buffer = new sal_Char[BUFFERSIZE]; - for(sal_Int32 i=0;i<aBuf.getLength();++i,++Buffer) - *Buffer = aBuf.getStr()[i]; - s = &Buffer[nPos]; - } + if(IN_SQLyyerror) + return; + IN_SQLyyerror = true; + + OSL_ENSURE(m_pContext, "OSQLScanner::SQLyyerror: No Context set"); + m_sErrorMessage = ::rtl::OUString(fmt,strlen(fmt),RTL_TEXTENCODING_UTF8); + if (m_nCurrentPos < m_sStatement.getLength()) + { + m_sErrorMessage += ::rtl::OUString(": "); + + ::rtl::OUString aError; + static sal_Int32 BUFFERSIZE = 256; + static sal_Char* Buffer = 0; + if(!Buffer) + Buffer = new sal_Char[BUFFERSIZE]; + + sal_Char *s = Buffer; + sal_Int32 nPos = 1; + int ch = SQLyytext ? (SQLyytext[0] == 0 ? ' ' : SQLyytext[0]): ' '; + *s++ = ch; + while (!checkeof(ch = yyinput())) + { + if (ch == ' ') + { + if ((ch = yyinput()) != ' ') + { + if (!checkeof(ch)) + unput(ch); + } + *s = '\0'; + aError = ::rtl::OUString(Buffer,nPos,RTL_TEXTENCODING_UTF8); + break; + } + else + { + *s++ = ch; + if (++nPos == BUFFERSIZE) + { + ::rtl::OString aBuf(Buffer); + delete[] Buffer; + BUFFERSIZE *=2; + Buffer = new sal_Char[BUFFERSIZE]; + for(sal_Int32 i=0;i<aBuf.getLength();++i,++Buffer) + *Buffer = aBuf.getStr()[i]; + s = &Buffer[nPos]; + } } } m_sErrorMessage += aError; @@ -783,14 +783,14 @@ void OSQLScanner::SQLyyerror(sal_Char *fmt) //------------------------------------------------------------------------------ void OSQLScanner::prepareScan(const ::rtl::OUString & rNewStatement, const IParseContext* pContext, sal_Bool bInternational) { - YY_FLUSH_BUFFER; - BEGIN(m_nRule); - - m_sErrorMessage = ::rtl::OUString(); - m_sStatement = ::rtl::OUStringToOString(rNewStatement, RTL_TEXTENCODING_UTF8); - m_nCurrentPos = 0; - m_bInternational = bInternational; - m_pContext = pContext; + YY_FLUSH_BUFFER; + BEGIN(m_nRule); + + m_sErrorMessage = ::rtl::OUString(); + m_sStatement = ::rtl::OUStringToOString(rNewStatement, RTL_TEXTENCODING_UTF8); + m_nCurrentPos = 0; + m_bInternational = bInternational; + m_pContext = pContext; } //------------------------------------------------------------------------------ @@ -803,9 +803,9 @@ sal_Int32 OSQLScanner::SQLyygetc(void) //------------------------------------------------------------------------------ IParseContext::InternationalKeyCode OSQLScanner::getInternationalTokenID(const sal_Char* sToken) const -{ - OSL_ENSURE(m_pContext, "OSQLScanner::getInternationalTokenID: No Context set"); - return (m_bInternational) ? m_pContext->getIntlKeyCode(::rtl::OString(sToken) ) : IParseContext::KEY_NONE; +{ + OSL_ENSURE(m_pContext, "OSQLScanner::getInternationalTokenID: No Context set"); + return (m_bInternational) ? m_pContext->getIntlKeyCode(::rtl::OString(sToken) ) : IParseContext::KEY_NONE; } // ------------------------------------------------------------------------- sal_Int32 OSQLScanner::GetCurrentRule() const { return m_nRule; } |