diff options
author | vva@eagle.mysql.r18.ru <> | 2003-01-23 17:00:31 +0400 |
---|---|---|
committer | vva@eagle.mysql.r18.ru <> | 2003-01-23 17:00:31 +0400 |
commit | 1fd4866322ce98e5b4eaf7454005f7ef150ce120 (patch) | |
tree | 4826ec10d265626686e84175d7e5efb9011caaf2 /sql/sql_yacc.yy | |
parent | 4b0adb203b35a3313cd4614053c7935aa70b1ddc (diff) | |
download | mariadb-git-1fd4866322ce98e5b4eaf7454005f7ef150ce120.tar.gz |
solve the lex conflict between the existing repeat() function
and repeat SP-construction
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 2cc2f674d4a..3248048d304 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -535,8 +535,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); %token ITERATE_SYM %token LEAVE_SYM %token LOOP_SYM -/* QQ This is temporary, until the REPEAT conflict is solved. */ -%token SPREPEAT_SYM +%token REPEAT_SYM %token UNTIL_SYM %token WHILE_SYM %token ASENSITIVE_SYM @@ -1284,8 +1283,8 @@ sp_unlabeled_control: lex->sphead->add_instr(i); } - | SPREPEAT_SYM sp_proc_stmts UNTIL_SYM expr END SPREPEAT_SYM - { /* ^^ QQ temp. until conflict solved ^^ */ + | REPEAT_SYM sp_proc_stmts UNTIL_SYM expr END REPEAT_SYM + { LEX *lex= Lex; uint ip= lex->sphead->instructions(); sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */ @@ -2517,6 +2516,8 @@ simple_expr: { $$= ((Item*(*)(Item*,Item*))($1.symbol->create_func))($3,$5);} | FUNC_ARG3 '(' expr ',' expr ',' expr ')' { $$= ((Item*(*)(Item*,Item*,Item*))($1.symbol->create_func))($3,$5,$7);} + | REPEAT_SYM '(' expr ',' expr ')' + { $$= new Item_func_repeat($3,$5); } | ATAN '(' expr ')' { $$= new Item_func_atan($3); } | ATAN '(' expr ',' expr ')' |