Changeset: 85d84afd94b9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/85d84afd94b9
Modified Files:
        sql/server/sql_parser.y
Branch: nested
Log Message:

fix grammar for nested arrays


diffs (83 lines):

diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -324,6 +324,8 @@ int yydebug=1;
        type_def
        update_statement
        update_stmt
+       array_expr
+       array_element
        value_exp
        view_def
        when_statement
@@ -489,9 +491,9 @@ int yydebug=1;
        procedure_body
        routine_designator
        expr_list
-       array_expr
+       array_contents
        vector_expr
-       array_expr_list
+       //array_expr_list
        schema_element_list
        schema_name_clause
        schema_name_list
@@ -5329,16 +5331,17 @@ vector_expr:
        |       '[' ']'                { $$ = NULL; }
        ;
 
-array_expr:
-               '[' expr_list ']'      { $$ = $2; }
-       |       '['array_expr_list ']' { $$ = $2; }
-       |       '[' ']'                { $$ = NULL; }
-       ;
-
-array_expr_list:
-               array_expr                     { $$ = $1; }
-       |       array_expr_list ',' array_expr { $$ = $3; }
-       ;
+//#array_expr:
+//#            '['array_expr_list ']' { $$ = $2; }
+//#    |       '[' expr_list ']'      { $$ = $2; }
+//#    |       '[' ']'                { $$ = NULL; }
+//#    ;
+//#
+//#array_expr_list:
+//#            array_expr                     { $$ = append_list(L(), $1); }
+//#    |       array_expr_list ',' array_expr { $$ = append_list($1, $3); }
+//#    ;
+
 
 value_exp:
                atom { $$ = $1; }
@@ -5357,7 +5360,7 @@ value_exp:
        |       '('scalar_exp ')' opt_indirection { $$ = $2; }
        |       '('expr_list ',' scalar_exp ')'   { $$ = 
_symbol_create_list(SQL_ROW, append_symbol($2, $4)); }
        |       ARRAY select_with_parens          { $$ = $2; }
-       |       ARRAY array_expr                  { $$ = 
_symbol_create_list(SQL_SET, $2); }
+       |       ARRAY array_expr                  { $$ = $2; }
        |       VECTOR vector_expr                { $$ = 
_symbol_create_list(SQL_VECTOR, $2); }
        |       session_user     { $$ = _symbol_create_list(SQL_NAME, 
append_string(append_string(L(), "sys"), "current_user")); }
        |       CURRENT_SCHEMA   { $$ = _symbol_create_list(SQL_NAME, 
append_string(append_string(L(), "sys"), "current_schema")); }
@@ -5383,6 +5386,21 @@ value_exp:
        |       select_with_parens  %prec UMINUS { $$ = $1; }
        ;
 
+array_element:
+    value_exp          { $$ = $1; }
+    | array_expr       { $$ = $1; }
+    ;
+
+array_contents:
+    array_element                                              { $$ = 
append_symbol(L(), $1); }
+    | array_contents ',' array_element { $$ = append_symbol($1, $3); }
+    ;
+
+array_expr:
+    '[' ']'                                            { $$ = NULL; }
+    | '[' array_contents ']'   { $$ = _symbol_create_list(SQL_SET, $2); }
+    ;
+
 param:
                PARAM
                {
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to