User: vg      
Date: 05/02/17 02:15:57

Modified:
 /dba/connectivity/source/parse/
  sqlbison.y

Log:
 INTEGRATION: CWS dba23 (1.49.42); FILE MERGED
 2005/01/20 16:36:23 oj 1.49.42.1: #i40898# new function arguments

File Changes:

Directory: /dba/connectivity/source/parse/
==========================================

File [changed]: sqlbison.y
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/parse/sqlbison.y?r1=1.50&r2=1.51
Delta lines:  +51 -21
---------------------
--- sqlbison.y  16 Feb 2005 15:57:07 -0000      1.50
+++ sqlbison.y  17 Feb 2005 10:15:54 -0000      1.51
@@ -242,12 +242,12 @@
 %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> value_exp_commalist3 string_function_3Argument 
value_exp_commalist4 string_function_4Argument value_exp_commalist2 
string_function_1Argument string_function_2Argument
+%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> all query_primary as 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
-%type <pParseNode> op_odbc_call_parameter odbc_parameter_commalist 
odbc_parameter
+%type <pParseNode> op_odbc_call_parameter odbc_parameter_commalist 
odbc_parameter function_args_commalist function_arg
 %type <pParseNode> catalog_name schema_name table_node numeric_function 
string_function function_name date_function
 %%
 
@@ -1731,7 +1731,7 @@
                        $$->append($2 = newNode("(", SQL_NODE_PUNCTUATION));
                        $$->append($3 = newNode(")", SQL_NODE_PUNCTUATION));
                }
-       |       function_name1 '(' value_exp ')'
+       |       function_name1 '(' function_arg ')'
                {
                        $$ = SQL_NEW_RULE;
                        $$->append($1);
@@ -1739,7 +1739,7 @@
                        $$->append($3);
                        $$->append($4 = newNode(")", SQL_NODE_PUNCTUATION));
                }
-       |       function_name2 '(' value_exp_commalist2 ')'
+       |       function_name2 '(' function_arg_commalist2 ')'
                {
                        $$ = SQL_NEW_RULE;
                        $$->append($1);
@@ -1747,7 +1747,7 @@
                        $$->append($3);
                        $$->append($4 = newNode(")", SQL_NODE_PUNCTUATION));
                }
-       |       function_name3 '(' value_exp_commalist3 ')'
+       |       function_name3 '(' function_arg_commalist3 ')'
                {
                        $$ = SQL_NEW_RULE;
                        $$->append($1);
@@ -1755,7 +1755,7 @@
                        $$->append($3);
                        $$->append($4 = newNode(")", SQL_NODE_PUNCTUATION));
                }
-       |       string_function_4Argument '(' value_exp_commalist4 ')'
+       |       string_function_4Argument '(' function_arg_commalist4 ')'
                {
                        $$ = SQL_NEW_RULE;
                        $$->append($1);
@@ -1763,7 +1763,7 @@
                        $$->append($3);
                        $$->append($4 = newNode(")", SQL_NODE_PUNCTUATION));
                }
-       |       function_name '(' value_exp_commalist ')'
+       |       function_name '(' function_args_commalist ')'
                {
                        $$ = SQL_NEW_RULE;
                        $$->append($1);
@@ -1771,7 +1771,7 @@
                        $$->append($3);
                        $$->append($4 = newNode(")", SQL_NODE_PUNCTUATION));
                }
-       |       function_name12 '(' value_exp_commalist ')'
+       |       function_name12 '(' function_args_commalist ')'
                {
                        if ( $3->count() == 1 || $3->count() == 2 )
                        {
@@ -1784,7 +1784,7 @@
                        else
                                YYERROR;
                }
-       |       function_name23 '(' value_exp_commalist ')'
+       |       function_name23 '(' function_args_commalist ')'
                {
                        if ( $3->count() == 2 || $3->count() == 3)
                        {
@@ -2507,14 +2507,14 @@
                }
        ;
 */
-value_exp_commalist2:
-           value_exp ',' value_exp
+function_arg_commalist2:
+           function_arg ',' function_arg
                        {$$ = SQL_NEW_COMMALISTRULE;
                        $$->append($1);
                        $$->append($3);}
        ;
-value_exp_commalist3:
-           value_exp ',' value_exp ',' value_exp
+function_arg_commalist3:
+           function_arg ',' function_arg ',' function_arg
                {
                        $$ = SQL_NEW_COMMALISTRULE;
                        $$->append($1);
@@ -2522,8 +2522,8 @@
                        $$->append($5);
                }
        ;
-value_exp_commalist4:
-           value_exp ',' value_exp ',' value_exp ',' value_exp
+function_arg_commalist4:
+           function_arg ',' function_arg ',' function_arg ',' function_arg
                {
                        $$ = SQL_NEW_COMMALISTRULE;
                        $$->append($1);
@@ -2551,6 +2551,36 @@
                                YYERROR;
                }
        ;
+function_arg:
+               value_exp 
+       |       value_exp comparison value_exp
+               {
+                       $$ = SQL_NEW_RULE;
+                       $$->append($1);
+                       $$->append($2);
+                       $$->append($3);
+               }
+       ;
+function_args_commalist:
+               function_arg
+                       {$$ = SQL_NEW_COMMALISTRULE;
+                       $$->append($1);}
+       |   function_args_commalist ',' function_arg
+                       {$1->append($3);
+                       $$ = $1;}
+       /*      this rule is only valid if we check predicates */
+       |   function_args_commalist ';' function_arg
+               {
+                       if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
+                       {
+                               $1->append($3);
+                               $$ = $1;
+                       }
+                       else
+                               YYERROR;
+               }
+       ;
+       
 value_exp:
                num_value_exp /*[^')']*/
          | string_value_exp




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to