lexyy.c, pars0lex.l, pars0grm.c, pars0grm.y:

  Port alloca and Windows fix from 3.23
parent fd7106a4
...@@ -583,8 +583,33 @@ SQL parser lexical analyzer: input file for the GNU Flex lexer generator ...@@ -583,8 +583,33 @@ SQL parser lexical analyzer: input file for the GNU Flex lexer generator
Created 12/14/1997 Heikki Tuuri Created 12/14/1997 Heikki Tuuri
Published under the GPL version 2 Published under the GPL version 2
The InnoDB parser is frozen because MySQL takes care of SQL parsing.
Therefore we normally keep the InnoDB parser C files as they are, and do
not automatically generate them from pars0grm.y and pars0lex.l.
How to make the InnoDB parser and lexer C files:
1. First do
bison -d pars0grm.y
That generates pars0grm.tab.c and pars0grm.tab.h.
2. Rename pars0grm.tab.c to pars0grm.c and pars0grm.tab.h to pars0grm.h.
3. Copy pars0grm.h also to /innobase/include
4. Do
flex pars0lex.l
That generates lex.yy.c.
5. Rename lex.yy.c to lexyy.c.
6. Remove the #include of unistd.h from about line 2500 of lexyy.c
These instructions seem to work at least with bison-1.28 and flex-2.5.4 on
Linux.
*******************************************************/ *******************************************************/
#line 11 "pars0lex.l" #line 36 "pars0lex.l"
#define YYSTYPE que_node_t* #define YYSTYPE que_node_t*
#include "univ.i" #include "univ.i"
...@@ -603,7 +628,7 @@ Published under the GPL version 2 ...@@ -603,7 +628,7 @@ Published under the GPL version 2
#define YY_INPUT(buf, result, max_size) pars_get_lex_chars(buf, &result, max_size) #define YY_INPUT(buf, result, max_size) pars_get_lex_chars(buf, &result, max_size)
#define comment 1 #define comment 1
#line 607 "lex.yy.c" #line 632 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in /* Macros after this point can all be overridden by user definitions in
* section 1. * section 1.
...@@ -754,10 +779,10 @@ YY_DECL ...@@ -754,10 +779,10 @@ YY_DECL
register char *yy_cp, *yy_bp; register char *yy_cp, *yy_bp;
register int yy_act; register int yy_act;
#line 32 "pars0lex.l" #line 57 "pars0lex.l"
#line 761 "lex.yy.c" #line 786 "lex.yy.c"
if ( yy_init ) if ( yy_init )
{ {
...@@ -842,7 +867,7 @@ do_action: /* This label is used only to access EOF actions. */ ...@@ -842,7 +867,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1: case 1:
YY_RULE_SETUP YY_RULE_SETUP
#line 34 "pars0lex.l" #line 59 "pars0lex.l"
{ {
yylval = sym_tab_add_int_lit(pars_sym_tab_global, yylval = sym_tab_add_int_lit(pars_sym_tab_global,
atoi(yytext)); atoi(yytext));
...@@ -851,7 +876,7 @@ YY_RULE_SETUP ...@@ -851,7 +876,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 2: case 2:
YY_RULE_SETUP YY_RULE_SETUP
#line 40 "pars0lex.l" #line 65 "pars0lex.l"
{ {
ut_error; /* not implemented */ ut_error; /* not implemented */
...@@ -860,7 +885,7 @@ YY_RULE_SETUP ...@@ -860,7 +885,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 3: case 3:
YY_RULE_SETUP YY_RULE_SETUP
#line 46 "pars0lex.l" #line 71 "pars0lex.l"
{ {
/* Remove the single quotes around the string */ /* Remove the single quotes around the string */
...@@ -872,7 +897,7 @@ YY_RULE_SETUP ...@@ -872,7 +897,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 4: case 4:
YY_RULE_SETUP YY_RULE_SETUP
#line 55 "pars0lex.l" #line 80 "pars0lex.l"
{ {
yylval = sym_tab_add_null_lit(pars_sym_tab_global); yylval = sym_tab_add_null_lit(pars_sym_tab_global);
...@@ -881,7 +906,7 @@ YY_RULE_SETUP ...@@ -881,7 +906,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 5: case 5:
YY_RULE_SETUP YY_RULE_SETUP
#line 61 "pars0lex.l" #line 86 "pars0lex.l"
{ {
/* Implicit cursor name */ /* Implicit cursor name */
yylval = sym_tab_add_str_lit(pars_sym_tab_global, yylval = sym_tab_add_str_lit(pars_sym_tab_global,
...@@ -891,511 +916,511 @@ YY_RULE_SETUP ...@@ -891,511 +916,511 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
#line 68 "pars0lex.l" #line 93 "pars0lex.l"
{ {
return(PARS_AND_TOKEN); return(PARS_AND_TOKEN);
} }
YY_BREAK YY_BREAK
case 7: case 7:
YY_RULE_SETUP YY_RULE_SETUP
#line 72 "pars0lex.l" #line 97 "pars0lex.l"
{ {
return(PARS_OR_TOKEN); return(PARS_OR_TOKEN);
} }
YY_BREAK YY_BREAK
case 8: case 8:
YY_RULE_SETUP YY_RULE_SETUP
#line 76 "pars0lex.l" #line 101 "pars0lex.l"
{ {
return(PARS_NOT_TOKEN); return(PARS_NOT_TOKEN);
} }
YY_BREAK YY_BREAK
case 9: case 9:
YY_RULE_SETUP YY_RULE_SETUP
#line 80 "pars0lex.l" #line 105 "pars0lex.l"
{ {
return(PARS_PROCEDURE_TOKEN); return(PARS_PROCEDURE_TOKEN);
} }
YY_BREAK YY_BREAK
case 10: case 10:
YY_RULE_SETUP YY_RULE_SETUP
#line 84 "pars0lex.l" #line 109 "pars0lex.l"
{ {
return(PARS_IN_TOKEN); return(PARS_IN_TOKEN);
} }
YY_BREAK YY_BREAK
case 11: case 11:
YY_RULE_SETUP YY_RULE_SETUP
#line 88 "pars0lex.l" #line 113 "pars0lex.l"
{ {
return(PARS_OUT_TOKEN); return(PARS_OUT_TOKEN);
} }
YY_BREAK YY_BREAK
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 92 "pars0lex.l" #line 117 "pars0lex.l"
{ {
return(PARS_INT_TOKEN); return(PARS_INT_TOKEN);
} }
YY_BREAK YY_BREAK
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 96 "pars0lex.l" #line 121 "pars0lex.l"
{ {
return(PARS_INT_TOKEN); return(PARS_INT_TOKEN);
} }
YY_BREAK YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 100 "pars0lex.l" #line 125 "pars0lex.l"
{ {
return(PARS_FLOAT_TOKEN); return(PARS_FLOAT_TOKEN);
} }
YY_BREAK YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 104 "pars0lex.l" #line 129 "pars0lex.l"
{ {
return(PARS_CHAR_TOKEN); return(PARS_CHAR_TOKEN);
} }
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 108 "pars0lex.l" #line 133 "pars0lex.l"
{ {
return(PARS_IS_TOKEN); return(PARS_IS_TOKEN);
} }
YY_BREAK YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 112 "pars0lex.l" #line 137 "pars0lex.l"
{ {
return(PARS_BEGIN_TOKEN); return(PARS_BEGIN_TOKEN);
} }
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 116 "pars0lex.l" #line 141 "pars0lex.l"
{ {
return(PARS_END_TOKEN); return(PARS_END_TOKEN);
} }
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 120 "pars0lex.l" #line 145 "pars0lex.l"
{ {
return(PARS_IF_TOKEN); return(PARS_IF_TOKEN);
} }
YY_BREAK YY_BREAK
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 124 "pars0lex.l" #line 149 "pars0lex.l"
{ {
return(PARS_THEN_TOKEN); return(PARS_THEN_TOKEN);
} }
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 128 "pars0lex.l" #line 153 "pars0lex.l"
{ {
return(PARS_ELSE_TOKEN); return(PARS_ELSE_TOKEN);
} }
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 132 "pars0lex.l" #line 157 "pars0lex.l"
{ {
return(PARS_ELSIF_TOKEN); return(PARS_ELSIF_TOKEN);
} }
YY_BREAK YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
#line 136 "pars0lex.l" #line 161 "pars0lex.l"
{ {
return(PARS_LOOP_TOKEN); return(PARS_LOOP_TOKEN);
} }
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 140 "pars0lex.l" #line 165 "pars0lex.l"
{ {
return(PARS_WHILE_TOKEN); return(PARS_WHILE_TOKEN);
} }
YY_BREAK YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 144 "pars0lex.l" #line 169 "pars0lex.l"
{ {
return(PARS_RETURN_TOKEN); return(PARS_RETURN_TOKEN);
} }
YY_BREAK YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
#line 148 "pars0lex.l" #line 173 "pars0lex.l"
{ {
return(PARS_SELECT_TOKEN); return(PARS_SELECT_TOKEN);
} }
YY_BREAK YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
#line 152 "pars0lex.l" #line 177 "pars0lex.l"
{ {
return(PARS_SUM_TOKEN); return(PARS_SUM_TOKEN);
} }
YY_BREAK YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
#line 156 "pars0lex.l" #line 181 "pars0lex.l"
{ {
return(PARS_COUNT_TOKEN); return(PARS_COUNT_TOKEN);
} }
YY_BREAK YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
#line 160 "pars0lex.l" #line 185 "pars0lex.l"
{ {
return(PARS_DISTINCT_TOKEN); return(PARS_DISTINCT_TOKEN);
} }
YY_BREAK YY_BREAK
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
#line 164 "pars0lex.l" #line 189 "pars0lex.l"
{ {
return(PARS_FROM_TOKEN); return(PARS_FROM_TOKEN);
} }
YY_BREAK YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
#line 168 "pars0lex.l" #line 193 "pars0lex.l"
{ {
return(PARS_WHERE_TOKEN); return(PARS_WHERE_TOKEN);
} }
YY_BREAK YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 172 "pars0lex.l" #line 197 "pars0lex.l"
{ {
return(PARS_FOR_TOKEN); return(PARS_FOR_TOKEN);
} }
YY_BREAK YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 176 "pars0lex.l" #line 201 "pars0lex.l"
{ {
return(PARS_CONSISTENT_TOKEN); return(PARS_CONSISTENT_TOKEN);
} }
YY_BREAK YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 180 "pars0lex.l" #line 205 "pars0lex.l"
{ {
return(PARS_READ_TOKEN); return(PARS_READ_TOKEN);
} }
YY_BREAK YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 184 "pars0lex.l" #line 209 "pars0lex.l"
{ {
return(PARS_ORDER_TOKEN); return(PARS_ORDER_TOKEN);
} }
YY_BREAK YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 188 "pars0lex.l" #line 213 "pars0lex.l"
{ {
return(PARS_BY_TOKEN); return(PARS_BY_TOKEN);
} }
YY_BREAK YY_BREAK
case 37: case 37:
YY_RULE_SETUP YY_RULE_SETUP
#line 192 "pars0lex.l" #line 217 "pars0lex.l"
{ {
return(PARS_ASC_TOKEN); return(PARS_ASC_TOKEN);
} }
YY_BREAK YY_BREAK
case 38: case 38:
YY_RULE_SETUP YY_RULE_SETUP
#line 196 "pars0lex.l" #line 221 "pars0lex.l"
{ {
return(PARS_DESC_TOKEN); return(PARS_DESC_TOKEN);
} }
YY_BREAK YY_BREAK
case 39: case 39:
YY_RULE_SETUP YY_RULE_SETUP
#line 200 "pars0lex.l" #line 225 "pars0lex.l"
{ {
return(PARS_INSERT_TOKEN); return(PARS_INSERT_TOKEN);
} }
YY_BREAK YY_BREAK
case 40: case 40:
YY_RULE_SETUP YY_RULE_SETUP
#line 204 "pars0lex.l" #line 229 "pars0lex.l"
{ {
return(PARS_INTO_TOKEN); return(PARS_INTO_TOKEN);
} }
YY_BREAK YY_BREAK
case 41: case 41:
YY_RULE_SETUP YY_RULE_SETUP
#line 208 "pars0lex.l" #line 233 "pars0lex.l"
{ {
return(PARS_VALUES_TOKEN); return(PARS_VALUES_TOKEN);
} }
YY_BREAK YY_BREAK
case 42: case 42:
YY_RULE_SETUP YY_RULE_SETUP
#line 212 "pars0lex.l" #line 237 "pars0lex.l"
{ {
return(PARS_UPDATE_TOKEN); return(PARS_UPDATE_TOKEN);
} }
YY_BREAK YY_BREAK
case 43: case 43:
YY_RULE_SETUP YY_RULE_SETUP
#line 216 "pars0lex.l" #line 241 "pars0lex.l"
{ {
return(PARS_SET_TOKEN); return(PARS_SET_TOKEN);
} }
YY_BREAK YY_BREAK
case 44: case 44:
YY_RULE_SETUP YY_RULE_SETUP
#line 220 "pars0lex.l" #line 245 "pars0lex.l"
{ {
return(PARS_DELETE_TOKEN); return(PARS_DELETE_TOKEN);
} }
YY_BREAK YY_BREAK
case 45: case 45:
YY_RULE_SETUP YY_RULE_SETUP
#line 224 "pars0lex.l" #line 249 "pars0lex.l"
{ {
return(PARS_CURRENT_TOKEN); return(PARS_CURRENT_TOKEN);
} }
YY_BREAK YY_BREAK
case 46: case 46:
YY_RULE_SETUP YY_RULE_SETUP
#line 228 "pars0lex.l" #line 253 "pars0lex.l"
{ {
return(PARS_OF_TOKEN); return(PARS_OF_TOKEN);
} }
YY_BREAK YY_BREAK
case 47: case 47:
YY_RULE_SETUP YY_RULE_SETUP
#line 232 "pars0lex.l" #line 257 "pars0lex.l"
{ {
return(PARS_CREATE_TOKEN); return(PARS_CREATE_TOKEN);
} }
YY_BREAK YY_BREAK
case 48: case 48:
YY_RULE_SETUP YY_RULE_SETUP
#line 236 "pars0lex.l" #line 261 "pars0lex.l"
{ {
return(PARS_TABLE_TOKEN); return(PARS_TABLE_TOKEN);
} }
YY_BREAK YY_BREAK
case 49: case 49:
YY_RULE_SETUP YY_RULE_SETUP
#line 240 "pars0lex.l" #line 265 "pars0lex.l"
{ {
return(PARS_INDEX_TOKEN); return(PARS_INDEX_TOKEN);
} }
YY_BREAK YY_BREAK
case 50: case 50:
YY_RULE_SETUP YY_RULE_SETUP
#line 244 "pars0lex.l" #line 269 "pars0lex.l"
{ {
return(PARS_UNIQUE_TOKEN); return(PARS_UNIQUE_TOKEN);
} }
YY_BREAK YY_BREAK
case 51: case 51:
YY_RULE_SETUP YY_RULE_SETUP
#line 248 "pars0lex.l" #line 273 "pars0lex.l"
{ {
return(PARS_CLUSTERED_TOKEN); return(PARS_CLUSTERED_TOKEN);
} }
YY_BREAK YY_BREAK
case 52: case 52:
YY_RULE_SETUP YY_RULE_SETUP
#line 252 "pars0lex.l" #line 277 "pars0lex.l"
{ {
return(PARS_DOES_NOT_FIT_IN_MEM_TOKEN); return(PARS_DOES_NOT_FIT_IN_MEM_TOKEN);
} }
YY_BREAK YY_BREAK
case 53: case 53:
YY_RULE_SETUP YY_RULE_SETUP
#line 256 "pars0lex.l" #line 281 "pars0lex.l"
{ {
return(PARS_ON_TOKEN); return(PARS_ON_TOKEN);
} }
YY_BREAK YY_BREAK
case 54: case 54:
YY_RULE_SETUP YY_RULE_SETUP
#line 260 "pars0lex.l" #line 285 "pars0lex.l"
{ {
return(PARS_DECLARE_TOKEN); return(PARS_DECLARE_TOKEN);
} }
YY_BREAK YY_BREAK
case 55: case 55:
YY_RULE_SETUP YY_RULE_SETUP
#line 264 "pars0lex.l" #line 289 "pars0lex.l"
{ {
return(PARS_CURSOR_TOKEN); return(PARS_CURSOR_TOKEN);
} }
YY_BREAK YY_BREAK
case 56: case 56:
YY_RULE_SETUP YY_RULE_SETUP
#line 268 "pars0lex.l" #line 293 "pars0lex.l"
{ {
return(PARS_OPEN_TOKEN); return(PARS_OPEN_TOKEN);
} }
YY_BREAK YY_BREAK
case 57: case 57:
YY_RULE_SETUP YY_RULE_SETUP
#line 272 "pars0lex.l" #line 297 "pars0lex.l"
{ {
return(PARS_FETCH_TOKEN); return(PARS_FETCH_TOKEN);
} }
YY_BREAK YY_BREAK
case 58: case 58:
YY_RULE_SETUP YY_RULE_SETUP
#line 276 "pars0lex.l" #line 301 "pars0lex.l"
{ {
return(PARS_CLOSE_TOKEN); return(PARS_CLOSE_TOKEN);
} }
YY_BREAK YY_BREAK
case 59: case 59:
YY_RULE_SETUP YY_RULE_SETUP
#line 280 "pars0lex.l" #line 305 "pars0lex.l"
{ {
return(PARS_NOTFOUND_TOKEN); return(PARS_NOTFOUND_TOKEN);
} }
YY_BREAK YY_BREAK
case 60: case 60:
YY_RULE_SETUP YY_RULE_SETUP
#line 284 "pars0lex.l" #line 309 "pars0lex.l"
{ {
return(PARS_TO_CHAR_TOKEN); return(PARS_TO_CHAR_TOKEN);
} }
YY_BREAK YY_BREAK
case 61: case 61:
YY_RULE_SETUP YY_RULE_SETUP
#line 288 "pars0lex.l" #line 313 "pars0lex.l"
{ {
return(PARS_TO_NUMBER_TOKEN); return(PARS_TO_NUMBER_TOKEN);
} }
YY_BREAK YY_BREAK
case 62: case 62:
YY_RULE_SETUP YY_RULE_SETUP
#line 292 "pars0lex.l" #line 317 "pars0lex.l"
{ {
return(PARS_TO_BINARY_TOKEN); return(PARS_TO_BINARY_TOKEN);
} }
YY_BREAK YY_BREAK
case 63: case 63:
YY_RULE_SETUP YY_RULE_SETUP
#line 296 "pars0lex.l" #line 321 "pars0lex.l"
{ {
return(PARS_BINARY_TO_NUMBER_TOKEN); return(PARS_BINARY_TO_NUMBER_TOKEN);
} }
YY_BREAK YY_BREAK
case 64: case 64:
YY_RULE_SETUP YY_RULE_SETUP
#line 300 "pars0lex.l" #line 325 "pars0lex.l"
{ {
return(PARS_SUBSTR_TOKEN); return(PARS_SUBSTR_TOKEN);
} }
YY_BREAK YY_BREAK
case 65: case 65:
YY_RULE_SETUP YY_RULE_SETUP
#line 304 "pars0lex.l" #line 329 "pars0lex.l"
{ {
return(PARS_REPLSTR_TOKEN); return(PARS_REPLSTR_TOKEN);
} }
YY_BREAK YY_BREAK
case 66: case 66:
YY_RULE_SETUP YY_RULE_SETUP
#line 308 "pars0lex.l" #line 333 "pars0lex.l"
{ {
return(PARS_CONCAT_TOKEN); return(PARS_CONCAT_TOKEN);
} }
YY_BREAK YY_BREAK
case 67: case 67:
YY_RULE_SETUP YY_RULE_SETUP
#line 312 "pars0lex.l" #line 337 "pars0lex.l"
{ {
return(PARS_INSTR_TOKEN); return(PARS_INSTR_TOKEN);
} }
YY_BREAK YY_BREAK
case 68: case 68:
YY_RULE_SETUP YY_RULE_SETUP
#line 316 "pars0lex.l" #line 341 "pars0lex.l"
{ {
return(PARS_LENGTH_TOKEN); return(PARS_LENGTH_TOKEN);
} }
YY_BREAK YY_BREAK
case 69: case 69:
YY_RULE_SETUP YY_RULE_SETUP
#line 320 "pars0lex.l" #line 345 "pars0lex.l"
{ {
return(PARS_SYSDATE_TOKEN); return(PARS_SYSDATE_TOKEN);
} }
YY_BREAK YY_BREAK
case 70: case 70:
YY_RULE_SETUP YY_RULE_SETUP
#line 324 "pars0lex.l" #line 349 "pars0lex.l"
{ {
return(PARS_PRINTF_TOKEN); return(PARS_PRINTF_TOKEN);
} }
YY_BREAK YY_BREAK
case 71: case 71:
YY_RULE_SETUP YY_RULE_SETUP
#line 328 "pars0lex.l" #line 353 "pars0lex.l"
{ {
return(PARS_ASSERT_TOKEN); return(PARS_ASSERT_TOKEN);
} }
YY_BREAK YY_BREAK
case 72: case 72:
YY_RULE_SETUP YY_RULE_SETUP
#line 332 "pars0lex.l" #line 357 "pars0lex.l"
{ {
return(PARS_RND_TOKEN); return(PARS_RND_TOKEN);
} }
YY_BREAK YY_BREAK
case 73: case 73:
YY_RULE_SETUP YY_RULE_SETUP
#line 336 "pars0lex.l" #line 361 "pars0lex.l"
{ {
return(PARS_RND_STR_TOKEN); return(PARS_RND_STR_TOKEN);
} }
YY_BREAK YY_BREAK
case 74: case 74:
YY_RULE_SETUP YY_RULE_SETUP
#line 340 "pars0lex.l" #line 365 "pars0lex.l"
{ {
return(PARS_ROW_PRINTF_TOKEN); return(PARS_ROW_PRINTF_TOKEN);
} }
YY_BREAK YY_BREAK
case 75: case 75:
YY_RULE_SETUP YY_RULE_SETUP
#line 344 "pars0lex.l" #line 369 "pars0lex.l"
{ {
return(PARS_COMMIT_TOKEN); return(PARS_COMMIT_TOKEN);
} }
YY_BREAK YY_BREAK
case 76: case 76:
YY_RULE_SETUP YY_RULE_SETUP
#line 348 "pars0lex.l" #line 373 "pars0lex.l"
{ {
return(PARS_ROLLBACK_TOKEN); return(PARS_ROLLBACK_TOKEN);
} }
YY_BREAK YY_BREAK
case 77: case 77:
YY_RULE_SETUP YY_RULE_SETUP
#line 352 "pars0lex.l" #line 377 "pars0lex.l"
{ {
return(PARS_WORK_TOKEN); return(PARS_WORK_TOKEN);
} }
YY_BREAK YY_BREAK
case 78: case 78:
YY_RULE_SETUP YY_RULE_SETUP
#line 356 "pars0lex.l" #line 381 "pars0lex.l"
{ {
yylval = sym_tab_add_id(pars_sym_tab_global, yylval = sym_tab_add_id(pars_sym_tab_global,
(byte*)yytext, (byte*)yytext,
...@@ -1405,42 +1430,42 @@ YY_RULE_SETUP ...@@ -1405,42 +1430,42 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 79: case 79:
YY_RULE_SETUP YY_RULE_SETUP
#line 363 "pars0lex.l" #line 388 "pars0lex.l"
{ {
return(PARS_DDOT_TOKEN); return(PARS_DDOT_TOKEN);
} }
YY_BREAK YY_BREAK
case 80: case 80:
YY_RULE_SETUP YY_RULE_SETUP
#line 367 "pars0lex.l" #line 392 "pars0lex.l"
{ {
return(PARS_ASSIGN_TOKEN); return(PARS_ASSIGN_TOKEN);
} }
YY_BREAK YY_BREAK
case 81: case 81:
YY_RULE_SETUP YY_RULE_SETUP
#line 371 "pars0lex.l" #line 396 "pars0lex.l"
{ {
return(PARS_LE_TOKEN); return(PARS_LE_TOKEN);
} }
YY_BREAK YY_BREAK
case 82: case 82:
YY_RULE_SETUP YY_RULE_SETUP
#line 375 "pars0lex.l" #line 400 "pars0lex.l"
{ {
return(PARS_GE_TOKEN); return(PARS_GE_TOKEN);
} }
YY_BREAK YY_BREAK
case 83: case 83:
YY_RULE_SETUP YY_RULE_SETUP
#line 379 "pars0lex.l" #line 404 "pars0lex.l"
{ {
return(PARS_NE_TOKEN); return(PARS_NE_TOKEN);
} }
YY_BREAK YY_BREAK
case 84: case 84:
YY_RULE_SETUP YY_RULE_SETUP
#line 383 "pars0lex.l" #line 408 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1448,7 +1473,7 @@ YY_RULE_SETUP ...@@ -1448,7 +1473,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 85: case 85:
YY_RULE_SETUP YY_RULE_SETUP
#line 388 "pars0lex.l" #line 413 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1456,7 +1481,7 @@ YY_RULE_SETUP ...@@ -1456,7 +1481,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 86: case 86:
YY_RULE_SETUP YY_RULE_SETUP
#line 393 "pars0lex.l" #line 418 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1464,7 +1489,7 @@ YY_RULE_SETUP ...@@ -1464,7 +1489,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 87: case 87:
YY_RULE_SETUP YY_RULE_SETUP
#line 398 "pars0lex.l" #line 423 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1472,7 +1497,7 @@ YY_RULE_SETUP ...@@ -1472,7 +1497,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 88: case 88:
YY_RULE_SETUP YY_RULE_SETUP
#line 403 "pars0lex.l" #line 428 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1480,7 +1505,7 @@ YY_RULE_SETUP ...@@ -1480,7 +1505,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 89: case 89:
YY_RULE_SETUP YY_RULE_SETUP
#line 408 "pars0lex.l" #line 433 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1488,7 +1513,7 @@ YY_RULE_SETUP ...@@ -1488,7 +1513,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 90: case 90:
YY_RULE_SETUP YY_RULE_SETUP
#line 413 "pars0lex.l" #line 438 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1496,7 +1521,7 @@ YY_RULE_SETUP ...@@ -1496,7 +1521,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 91: case 91:
YY_RULE_SETUP YY_RULE_SETUP
#line 418 "pars0lex.l" #line 443 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1504,7 +1529,7 @@ YY_RULE_SETUP ...@@ -1504,7 +1529,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 92: case 92:
YY_RULE_SETUP YY_RULE_SETUP
#line 423 "pars0lex.l" #line 448 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1512,7 +1537,7 @@ YY_RULE_SETUP ...@@ -1512,7 +1537,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 93: case 93:
YY_RULE_SETUP YY_RULE_SETUP
#line 428 "pars0lex.l" #line 453 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1520,7 +1545,7 @@ YY_RULE_SETUP ...@@ -1520,7 +1545,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 94: case 94:
YY_RULE_SETUP YY_RULE_SETUP
#line 433 "pars0lex.l" #line 458 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1528,7 +1553,7 @@ YY_RULE_SETUP ...@@ -1528,7 +1553,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 95: case 95:
YY_RULE_SETUP YY_RULE_SETUP
#line 438 "pars0lex.l" #line 463 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1536,7 +1561,7 @@ YY_RULE_SETUP ...@@ -1536,7 +1561,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 96: case 96:
YY_RULE_SETUP YY_RULE_SETUP
#line 443 "pars0lex.l" #line 468 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1544,7 +1569,7 @@ YY_RULE_SETUP ...@@ -1544,7 +1569,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 97: case 97:
YY_RULE_SETUP YY_RULE_SETUP
#line 448 "pars0lex.l" #line 473 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1552,7 +1577,7 @@ YY_RULE_SETUP ...@@ -1552,7 +1577,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 98: case 98:
YY_RULE_SETUP YY_RULE_SETUP
#line 453 "pars0lex.l" #line 478 "pars0lex.l"
{ {
return((int)(*yytext)); return((int)(*yytext));
...@@ -1560,42 +1585,42 @@ YY_RULE_SETUP ...@@ -1560,42 +1585,42 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 99: case 99:
YY_RULE_SETUP YY_RULE_SETUP
#line 458 "pars0lex.l" #line 483 "pars0lex.l"
BEGIN(comment); /* eat up comment */ BEGIN(comment); /* eat up comment */
YY_BREAK YY_BREAK
case 100: case 100:
YY_RULE_SETUP YY_RULE_SETUP
#line 460 "pars0lex.l" #line 485 "pars0lex.l"
YY_BREAK YY_BREAK
case 101: case 101:
YY_RULE_SETUP YY_RULE_SETUP
#line 461 "pars0lex.l" #line 486 "pars0lex.l"
YY_BREAK YY_BREAK
case 102: case 102:
YY_RULE_SETUP YY_RULE_SETUP
#line 462 "pars0lex.l" #line 487 "pars0lex.l"
YY_BREAK YY_BREAK
case 103: case 103:
YY_RULE_SETUP YY_RULE_SETUP
#line 463 "pars0lex.l" #line 488 "pars0lex.l"
YY_BREAK YY_BREAK
case 104: case 104:
YY_RULE_SETUP YY_RULE_SETUP
#line 464 "pars0lex.l" #line 489 "pars0lex.l"
BEGIN(INITIAL); BEGIN(INITIAL);
YY_BREAK YY_BREAK
case 105: case 105:
YY_RULE_SETUP YY_RULE_SETUP
#line 466 "pars0lex.l" #line 491 "pars0lex.l"
/* eat up whitespace */ /* eat up whitespace */
YY_BREAK YY_BREAK
case 106: case 106:
YY_RULE_SETUP YY_RULE_SETUP
#line 469 "pars0lex.l" #line 494 "pars0lex.l"
{ {
printf("Unrecognized character: %s\n", yytext); printf("Unrecognized character: %s\n", yytext);
...@@ -1606,10 +1631,10 @@ YY_RULE_SETUP ...@@ -1606,10 +1631,10 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 107: case 107:
YY_RULE_SETUP YY_RULE_SETUP
#line 477 "pars0lex.l" #line 502 "pars0lex.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 1613 "lex.yy.c" #line 1638 "lex.yy.c"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(comment): case YY_STATE_EOF(comment):
yyterminate(); yyterminate();
...@@ -2176,7 +2201,7 @@ YY_BUFFER_STATE b; ...@@ -2176,7 +2201,7 @@ YY_BUFFER_STATE b;
#ifndef YY_ALWAYS_INTERACTIVE #ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE #ifndef YY_NEVER_INTERACTIVE
#include<unistd.h>
#endif #endif
#endif #endif
...@@ -2496,5 +2521,5 @@ int main() ...@@ -2496,5 +2521,5 @@ int main()
return 0; return 0;
} }
#endif #endif
#line 477 "pars0lex.l" #line 502 "pars0lex.l"
...@@ -89,12 +89,10 @@ ...@@ -89,12 +89,10 @@
#define PARS_WORK_TOKEN 339 #define PARS_WORK_TOKEN 339
#define NEG 340 #define NEG 340
#line 10 "pars0grm.y" #line 13 "pars0grm.y"
/* The value of the semantic attribute is a pointer to a query tree node /* The value of the semantic attribute is a pointer to a query tree node
que_node_t */ que_node_t */
#define YYSTYPE que_node_t*
#define alloca mem_alloc
#include <math.h> #include <math.h>
...@@ -105,6 +103,8 @@ que_node_t */ ...@@ -105,6 +103,8 @@ que_node_t */
#include "que0que.h" #include "que0que.h"
#include "row0sel.h" #include "row0sel.h"
#define YYSTYPE que_node_t*
/* #define __STDC__ */ /* #define __STDC__ */
int int
...@@ -242,22 +242,22 @@ static const short yyrhs[] = { 162, ...@@ -242,22 +242,22 @@ static const short yyrhs[] = { 162,
#if YYDEBUG != 0 #if YYDEBUG != 0
static const short yyrline[] = { 0, static const short yyrline[] = { 0,
126, 128, 129, 130, 131, 132, 133, 134, 135, 136, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139,
137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
147, 148, 151, 153, 157, 159, 161, 162, 163, 164, 150, 151, 154, 156, 160, 162, 164, 165, 166, 167,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
175, 176, 177, 178, 179, 180, 181, 183, 187, 189, 178, 179, 180, 181, 182, 183, 184, 186, 190, 192,
190, 191, 193, 194, 195, 196, 197, 198, 199, 202, 193, 194, 196, 197, 198, 199, 200, 201, 202, 205,
204, 205, 208, 213, 218, 220, 221, 224, 226, 230, 207, 208, 211, 216, 221, 223, 224, 227, 229, 233,
232, 233, 237, 239, 240, 243, 245, 250, 256, 262, 235, 236, 240, 242, 243, 246, 248, 253, 259, 265,
264, 265, 269, 272, 274, 277, 279, 282, 284, 288, 267, 268, 272, 275, 277, 280, 282, 285, 287, 291,
290, 294, 296, 297, 300, 302, 306, 316, 321, 324, 293, 297, 299, 300, 303, 305, 309, 319, 324, 327,
328, 332, 334, 338, 344, 351, 356, 361, 367, 372, 331, 335, 337, 341, 347, 354, 359, 364, 370, 375,
377, 382, 387, 393, 395, 399, 401, 403, 406, 413, 380, 385, 390, 396, 398, 402, 404, 406, 409, 416,
419, 427, 431, 437, 443, 448, 452, 454, 458, 460, 422, 430, 434, 440, 446, 451, 455, 457, 461, 463,
465, 471, 473, 477, 479, 482, 484, 487, 495, 500, 468, 474, 476, 480, 482, 485, 487, 490, 498, 503,
505, 507, 510, 514, 519, 521, 522, 526, 531, 533, 508, 510, 513, 517, 522, 524, 525, 529, 534, 536,
534, 537, 543, 545, 546, 549 537, 540, 546, 548, 549, 552
}; };
#endif #endif
...@@ -1122,218 +1122,218 @@ yyreduce: ...@@ -1122,218 +1122,218 @@ yyreduce:
switch (yyn) { switch (yyn) {
case 23: case 23:
#line 152 "pars0grm.y" #line 155 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 24: case 24:
#line 154 "pars0grm.y" #line 157 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-1], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-1], yyvsp[0]); ;
break;} break;}
case 25: case 25:
#line 158 "pars0grm.y" #line 161 "pars0grm.y"
{ yyval = yyvsp[0];; { yyval = yyvsp[0];;
break;} break;}
case 26: case 26:
#line 160 "pars0grm.y" #line 163 "pars0grm.y"
{ yyval = pars_func(yyvsp[-3], yyvsp[-1]); ; { yyval = pars_func(yyvsp[-3], yyvsp[-1]); ;
break;} break;}
case 27: case 27:
#line 161 "pars0grm.y" #line 164 "pars0grm.y"
{ yyval = yyvsp[0];; { yyval = yyvsp[0];;
break;} break;}
case 28: case 28:
#line 162 "pars0grm.y" #line 165 "pars0grm.y"
{ yyval = yyvsp[0];; { yyval = yyvsp[0];;
break;} break;}
case 29: case 29:
#line 163 "pars0grm.y" #line 166 "pars0grm.y"
{ yyval = yyvsp[0];; { yyval = yyvsp[0];;
break;} break;}
case 30: case 30:
#line 164 "pars0grm.y" #line 167 "pars0grm.y"
{ yyval = yyvsp[0];; { yyval = yyvsp[0];;
break;} break;}
case 31: case 31:
#line 165 "pars0grm.y" #line 168 "pars0grm.y"
{ yyval = yyvsp[0];; { yyval = yyvsp[0];;
break;} break;}
case 32: case 32:
#line 166 "pars0grm.y" #line 169 "pars0grm.y"
{ yyval = pars_op('+', yyvsp[-2], yyvsp[0]); ; { yyval = pars_op('+', yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 33: case 33:
#line 167 "pars0grm.y" #line 170 "pars0grm.y"
{ yyval = pars_op('-', yyvsp[-2], yyvsp[0]); ; { yyval = pars_op('-', yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 34: case 34:
#line 168 "pars0grm.y" #line 171 "pars0grm.y"
{ yyval = pars_op('*', yyvsp[-2], yyvsp[0]); ; { yyval = pars_op('*', yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 35: case 35:
#line 169 "pars0grm.y" #line 172 "pars0grm.y"
{ yyval = pars_op('/', yyvsp[-2], yyvsp[0]); ; { yyval = pars_op('/', yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 36: case 36:
#line 170 "pars0grm.y" #line 173 "pars0grm.y"
{ yyval = pars_op('-', yyvsp[0], NULL); ; { yyval = pars_op('-', yyvsp[0], NULL); ;
break;} break;}
case 37: case 37:
#line 171 "pars0grm.y" #line 174 "pars0grm.y"
{ yyval = yyvsp[-1]; ; { yyval = yyvsp[-1]; ;
break;} break;}
case 38: case 38:
#line 172 "pars0grm.y" #line 175 "pars0grm.y"
{ yyval = pars_op('=', yyvsp[-2], yyvsp[0]); ; { yyval = pars_op('=', yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 39: case 39:
#line 173 "pars0grm.y" #line 176 "pars0grm.y"
{ yyval = pars_op('<', yyvsp[-2], yyvsp[0]); ; { yyval = pars_op('<', yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 40: case 40:
#line 174 "pars0grm.y" #line 177 "pars0grm.y"
{ yyval = pars_op('>', yyvsp[-2], yyvsp[0]); ; { yyval = pars_op('>', yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 41: case 41:
#line 175 "pars0grm.y" #line 178 "pars0grm.y"
{ yyval = pars_op(PARS_GE_TOKEN, yyvsp[-2], yyvsp[0]); ; { yyval = pars_op(PARS_GE_TOKEN, yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 42: case 42:
#line 176 "pars0grm.y" #line 179 "pars0grm.y"
{ yyval = pars_op(PARS_LE_TOKEN, yyvsp[-2], yyvsp[0]); ; { yyval = pars_op(PARS_LE_TOKEN, yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 43: case 43:
#line 177 "pars0grm.y" #line 180 "pars0grm.y"
{ yyval = pars_op(PARS_NE_TOKEN, yyvsp[-2], yyvsp[0]); ; { yyval = pars_op(PARS_NE_TOKEN, yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 44: case 44:
#line 178 "pars0grm.y" #line 181 "pars0grm.y"
{ yyval = pars_op(PARS_AND_TOKEN, yyvsp[-2], yyvsp[0]); ; { yyval = pars_op(PARS_AND_TOKEN, yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 45: case 45:
#line 179 "pars0grm.y" #line 182 "pars0grm.y"
{ yyval = pars_op(PARS_OR_TOKEN, yyvsp[-2], yyvsp[0]); ; { yyval = pars_op(PARS_OR_TOKEN, yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 46: case 46:
#line 180 "pars0grm.y" #line 183 "pars0grm.y"
{ yyval = pars_op(PARS_NOT_TOKEN, yyvsp[0], NULL); ; { yyval = pars_op(PARS_NOT_TOKEN, yyvsp[0], NULL); ;
break;} break;}
case 47: case 47:
#line 182 "pars0grm.y" #line 185 "pars0grm.y"
{ yyval = pars_op(PARS_NOTFOUND_TOKEN, yyvsp[-2], NULL); ; { yyval = pars_op(PARS_NOTFOUND_TOKEN, yyvsp[-2], NULL); ;
break;} break;}
case 48: case 48:
#line 184 "pars0grm.y" #line 187 "pars0grm.y"
{ yyval = pars_op(PARS_NOTFOUND_TOKEN, yyvsp[-2], NULL); ; { yyval = pars_op(PARS_NOTFOUND_TOKEN, yyvsp[-2], NULL); ;
break;} break;}
case 49: case 49:
#line 188 "pars0grm.y" #line 191 "pars0grm.y"
{ yyval = &pars_to_char_token; ; { yyval = &pars_to_char_token; ;
break;} break;}
case 50: case 50:
#line 189 "pars0grm.y" #line 192 "pars0grm.y"
{ yyval = &pars_to_number_token; ; { yyval = &pars_to_number_token; ;
break;} break;}
case 51: case 51:
#line 190 "pars0grm.y" #line 193 "pars0grm.y"
{ yyval = &pars_to_binary_token; ; { yyval = &pars_to_binary_token; ;
break;} break;}
case 52: case 52:
#line 192 "pars0grm.y" #line 195 "pars0grm.y"
{ yyval = &pars_binary_to_number_token; ; { yyval = &pars_binary_to_number_token; ;
break;} break;}
case 53: case 53:
#line 193 "pars0grm.y" #line 196 "pars0grm.y"
{ yyval = &pars_substr_token; ; { yyval = &pars_substr_token; ;
break;} break;}
case 54: case 54:
#line 194 "pars0grm.y" #line 197 "pars0grm.y"
{ yyval = &pars_concat_token; ; { yyval = &pars_concat_token; ;
break;} break;}
case 55: case 55:
#line 195 "pars0grm.y" #line 198 "pars0grm.y"
{ yyval = &pars_instr_token; ; { yyval = &pars_instr_token; ;
break;} break;}
case 56: case 56:
#line 196 "pars0grm.y" #line 199 "pars0grm.y"
{ yyval = &pars_length_token; ; { yyval = &pars_length_token; ;
break;} break;}
case 57: case 57:
#line 197 "pars0grm.y" #line 200 "pars0grm.y"
{ yyval = &pars_sysdate_token; ; { yyval = &pars_sysdate_token; ;
break;} break;}
case 58: case 58:
#line 198 "pars0grm.y" #line 201 "pars0grm.y"
{ yyval = &pars_rnd_token; ; { yyval = &pars_rnd_token; ;
break;} break;}
case 59: case 59:
#line 199 "pars0grm.y" #line 202 "pars0grm.y"
{ yyval = &pars_rnd_str_token; ; { yyval = &pars_rnd_str_token; ;
break;} break;}
case 63: case 63:
#line 210 "pars0grm.y" #line 213 "pars0grm.y"
{ yyval = pars_stored_procedure_call(yyvsp[-4]); ; { yyval = pars_stored_procedure_call(yyvsp[-4]); ;
break;} break;}
case 64: case 64:
#line 215 "pars0grm.y" #line 218 "pars0grm.y"
{ yyval = pars_procedure_call(yyvsp[-3], yyvsp[-1]); ; { yyval = pars_procedure_call(yyvsp[-3], yyvsp[-1]); ;
break;} break;}
case 65: case 65:
#line 219 "pars0grm.y" #line 222 "pars0grm.y"
{ yyval = &pars_replstr_token; ; { yyval = &pars_replstr_token; ;
break;} break;}
case 66: case 66:
#line 220 "pars0grm.y" #line 223 "pars0grm.y"
{ yyval = &pars_printf_token; ; { yyval = &pars_printf_token; ;
break;} break;}
case 67: case 67:
#line 221 "pars0grm.y" #line 224 "pars0grm.y"
{ yyval = &pars_assert_token; ; { yyval = &pars_assert_token; ;
break;} break;}
case 68: case 68:
#line 225 "pars0grm.y" #line 228 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 69: case 69:
#line 227 "pars0grm.y" #line 230 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 70: case 70:
#line 231 "pars0grm.y" #line 234 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 71: case 71:
#line 232 "pars0grm.y" #line 235 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 72: case 72:
#line 234 "pars0grm.y" #line 237 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 73: case 73:
#line 238 "pars0grm.y" #line 241 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 74: case 74:
#line 239 "pars0grm.y" #line 242 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]);; { yyval = que_node_list_add_last(NULL, yyvsp[0]);;
break;} break;}
case 75: case 75:
#line 240 "pars0grm.y" #line 243 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 76: case 76:
#line 244 "pars0grm.y" #line 247 "pars0grm.y"
{ yyval = yyvsp[0]; ; { yyval = yyvsp[0]; ;
break;} break;}
case 77: case 77:
#line 246 "pars0grm.y" #line 249 "pars0grm.y"
{ yyval = pars_func(&pars_count_token, { yyval = pars_func(&pars_count_token,
que_node_list_add_last(NULL, que_node_list_add_last(NULL,
sym_tab_add_int_lit( sym_tab_add_int_lit(
pars_sym_tab_global, 1))); ; pars_sym_tab_global, 1))); ;
break;} break;}
case 78: case 78:
#line 251 "pars0grm.y" #line 254 "pars0grm.y"
{ yyval = pars_func(&pars_count_token, { yyval = pars_func(&pars_count_token,
que_node_list_add_last(NULL, que_node_list_add_last(NULL,
pars_func(&pars_distinct_token, pars_func(&pars_distinct_token,
...@@ -1341,302 +1341,302 @@ case 78: ...@@ -1341,302 +1341,302 @@ case 78:
NULL, yyvsp[-1])))); ; NULL, yyvsp[-1])))); ;
break;} break;}
case 79: case 79:
#line 257 "pars0grm.y" #line 260 "pars0grm.y"
{ yyval = pars_func(&pars_sum_token, { yyval = pars_func(&pars_sum_token,
que_node_list_add_last(NULL, que_node_list_add_last(NULL,
yyvsp[-1])); ; yyvsp[-1])); ;
break;} break;}
case 80: case 80:
#line 263 "pars0grm.y" #line 266 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 81: case 81:
#line 264 "pars0grm.y" #line 267 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 82: case 82:
#line 266 "pars0grm.y" #line 269 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 83: case 83:
#line 270 "pars0grm.y" #line 273 "pars0grm.y"
{ yyval = pars_select_list(&pars_star_denoter, { yyval = pars_select_list(&pars_star_denoter,
NULL); ; NULL); ;
break;} break;}
case 84: case 84:
#line 273 "pars0grm.y" #line 276 "pars0grm.y"
{ yyval = pars_select_list(yyvsp[-2], yyvsp[0]); ; { yyval = pars_select_list(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 85: case 85:
#line 274 "pars0grm.y" #line 277 "pars0grm.y"
{ yyval = pars_select_list(yyvsp[0], NULL); ; { yyval = pars_select_list(yyvsp[0], NULL); ;
break;} break;}
case 86: case 86:
#line 278 "pars0grm.y" #line 281 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 87: case 87:
#line 279 "pars0grm.y" #line 282 "pars0grm.y"
{ yyval = yyvsp[0]; ; { yyval = yyvsp[0]; ;
break;} break;}
case 88: case 88:
#line 283 "pars0grm.y" #line 286 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 89: case 89:
#line 285 "pars0grm.y" #line 288 "pars0grm.y"
{ yyval = &pars_update_token; ; { yyval = &pars_update_token; ;
break;} break;}
case 90: case 90:
#line 289 "pars0grm.y" #line 292 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 91: case 91:
#line 291 "pars0grm.y" #line 294 "pars0grm.y"
{ yyval = &pars_consistent_token; ; { yyval = &pars_consistent_token; ;
break;} break;}
case 92: case 92:
#line 295 "pars0grm.y" #line 298 "pars0grm.y"
{ yyval = &pars_asc_token; ; { yyval = &pars_asc_token; ;
break;} break;}
case 93: case 93:
#line 296 "pars0grm.y" #line 299 "pars0grm.y"
{ yyval = &pars_asc_token; ; { yyval = &pars_asc_token; ;
break;} break;}
case 94: case 94:
#line 297 "pars0grm.y" #line 300 "pars0grm.y"
{ yyval = &pars_desc_token; ; { yyval = &pars_desc_token; ;
break;} break;}
case 95: case 95:
#line 301 "pars0grm.y" #line 304 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 96: case 96:
#line 303 "pars0grm.y" #line 306 "pars0grm.y"
{ yyval = pars_order_by(yyvsp[-1], yyvsp[0]); ; { yyval = pars_order_by(yyvsp[-1], yyvsp[0]); ;
break;} break;}
case 97: case 97:
#line 312 "pars0grm.y" #line 315 "pars0grm.y"
{ yyval = pars_select_statement(yyvsp[-6], yyvsp[-4], yyvsp[-3], { yyval = pars_select_statement(yyvsp[-6], yyvsp[-4], yyvsp[-3],
yyvsp[-2], yyvsp[-1], yyvsp[0]); ; yyvsp[-2], yyvsp[-1], yyvsp[0]); ;
break;} break;}
case 98: case 98:
#line 318 "pars0grm.y" #line 321 "pars0grm.y"
{ yyval = yyvsp[0]; ; { yyval = yyvsp[0]; ;
break;} break;}
case 99: case 99:
#line 323 "pars0grm.y" #line 326 "pars0grm.y"
{ yyval = pars_insert_statement(yyvsp[-4], yyvsp[-1], NULL); ; { yyval = pars_insert_statement(yyvsp[-4], yyvsp[-1], NULL); ;
break;} break;}
case 100: case 100:
#line 325 "pars0grm.y" #line 328 "pars0grm.y"
{ yyval = pars_insert_statement(yyvsp[-1], NULL, yyvsp[0]); ; { yyval = pars_insert_statement(yyvsp[-1], NULL, yyvsp[0]); ;
break;} break;}
case 101: case 101:
#line 329 "pars0grm.y" #line 332 "pars0grm.y"
{ yyval = pars_column_assignment(yyvsp[-2], yyvsp[0]); ; { yyval = pars_column_assignment(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 102: case 102:
#line 333 "pars0grm.y" #line 336 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 103: case 103:
#line 335 "pars0grm.y" #line 338 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 104: case 104:
#line 341 "pars0grm.y" #line 344 "pars0grm.y"
{ yyval = yyvsp[0]; ; { yyval = yyvsp[0]; ;
break;} break;}
case 105: case 105:
#line 347 "pars0grm.y" #line 350 "pars0grm.y"
{ yyval = pars_update_statement_start(FALSE, { yyval = pars_update_statement_start(FALSE,
yyvsp[-2], yyvsp[0]); ; yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 106: case 106:
#line 353 "pars0grm.y" #line 356 "pars0grm.y"
{ yyval = pars_update_statement(yyvsp[-1], NULL, yyvsp[0]); ; { yyval = pars_update_statement(yyvsp[-1], NULL, yyvsp[0]); ;
break;} break;}
case 107: case 107:
#line 358 "pars0grm.y" #line 361 "pars0grm.y"
{ yyval = pars_update_statement(yyvsp[-1], yyvsp[0], NULL); ; { yyval = pars_update_statement(yyvsp[-1], yyvsp[0], NULL); ;
break;} break;}
case 108: case 108:
#line 363 "pars0grm.y" #line 366 "pars0grm.y"
{ yyval = pars_update_statement_start(TRUE, { yyval = pars_update_statement_start(TRUE,
yyvsp[0], NULL); ; yyvsp[0], NULL); ;
break;} break;}
case 109: case 109:
#line 369 "pars0grm.y" #line 372 "pars0grm.y"
{ yyval = pars_update_statement(yyvsp[-1], NULL, yyvsp[0]); ; { yyval = pars_update_statement(yyvsp[-1], NULL, yyvsp[0]); ;
break;} break;}
case 110: case 110:
#line 374 "pars0grm.y" #line 377 "pars0grm.y"
{ yyval = pars_update_statement(yyvsp[-1], yyvsp[0], NULL); ; { yyval = pars_update_statement(yyvsp[-1], yyvsp[0], NULL); ;
break;} break;}
case 111: case 111:
#line 379 "pars0grm.y" #line 382 "pars0grm.y"
{ yyval = pars_row_printf_statement(yyvsp[0]); ; { yyval = pars_row_printf_statement(yyvsp[0]); ;
break;} break;}
case 112: case 112:
#line 384 "pars0grm.y" #line 387 "pars0grm.y"
{ yyval = pars_assignment_statement(yyvsp[-2], yyvsp[0]); ; { yyval = pars_assignment_statement(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 113: case 113:
#line 390 "pars0grm.y" #line 393 "pars0grm.y"
{ yyval = pars_elsif_element(yyvsp[-2], yyvsp[0]); ; { yyval = pars_elsif_element(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 114: case 114:
#line 394 "pars0grm.y" #line 397 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 115: case 115:
#line 396 "pars0grm.y" #line 399 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-1], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-1], yyvsp[0]); ;
break;} break;}
case 116: case 116:
#line 400 "pars0grm.y" #line 403 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 117: case 117:
#line 402 "pars0grm.y" #line 405 "pars0grm.y"
{ yyval = yyvsp[0]; ; { yyval = yyvsp[0]; ;
break;} break;}
case 118: case 118:
#line 403 "pars0grm.y" #line 406 "pars0grm.y"
{ yyval = yyvsp[0]; ; { yyval = yyvsp[0]; ;
break;} break;}
case 119: case 119:
#line 410 "pars0grm.y" #line 413 "pars0grm.y"
{ yyval = pars_if_statement(yyvsp[-5], yyvsp[-3], yyvsp[-2]); ; { yyval = pars_if_statement(yyvsp[-5], yyvsp[-3], yyvsp[-2]); ;
break;} break;}
case 120: case 120:
#line 416 "pars0grm.y" #line 419 "pars0grm.y"
{ yyval = pars_while_statement(yyvsp[-4], yyvsp[-2]); ; { yyval = pars_while_statement(yyvsp[-4], yyvsp[-2]); ;
break;} break;}
case 121: case 121:
#line 424 "pars0grm.y" #line 427 "pars0grm.y"
{ yyval = pars_for_statement(yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2]); ; { yyval = pars_for_statement(yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2]); ;
break;} break;}
case 122: case 122:
#line 428 "pars0grm.y" #line 431 "pars0grm.y"
{ yyval = pars_return_statement(); ; { yyval = pars_return_statement(); ;
break;} break;}
case 123: case 123:
#line 433 "pars0grm.y" #line 436 "pars0grm.y"
{ yyval = pars_open_statement( { yyval = pars_open_statement(
ROW_SEL_OPEN_CURSOR, yyvsp[0]); ; ROW_SEL_OPEN_CURSOR, yyvsp[0]); ;
break;} break;}
case 124: case 124:
#line 439 "pars0grm.y" #line 442 "pars0grm.y"
{ yyval = pars_open_statement( { yyval = pars_open_statement(
ROW_SEL_CLOSE_CURSOR, yyvsp[0]); ; ROW_SEL_CLOSE_CURSOR, yyvsp[0]); ;
break;} break;}
case 125: case 125:
#line 445 "pars0grm.y" #line 448 "pars0grm.y"
{ yyval = pars_fetch_statement(yyvsp[-2], yyvsp[0]); ; { yyval = pars_fetch_statement(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 126: case 126:
#line 449 "pars0grm.y" #line 452 "pars0grm.y"
{ yyval = pars_column_def(yyvsp[-1], yyvsp[0]); ; { yyval = pars_column_def(yyvsp[-1], yyvsp[0]); ;
break;} break;}
case 127: case 127:
#line 453 "pars0grm.y" #line 456 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 128: case 128:
#line 455 "pars0grm.y" #line 458 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 129: case 129:
#line 459 "pars0grm.y" #line 462 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 130: case 130:
#line 461 "pars0grm.y" #line 464 "pars0grm.y"
{ yyval = &pars_int_token; { yyval = &pars_int_token;
/* pass any non-NULL pointer */ ; /* pass any non-NULL pointer */ ;
break;} break;}
case 131: case 131:
#line 468 "pars0grm.y" #line 471 "pars0grm.y"
{ yyval = pars_create_table(yyvsp[-4], yyvsp[-2], yyvsp[0]); ; { yyval = pars_create_table(yyvsp[-4], yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 132: case 132:
#line 472 "pars0grm.y" #line 475 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 133: case 133:
#line 474 "pars0grm.y" #line 477 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 134: case 134:
#line 478 "pars0grm.y" #line 481 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 135: case 135:
#line 479 "pars0grm.y" #line 482 "pars0grm.y"
{ yyval = &pars_unique_token; ; { yyval = &pars_unique_token; ;
break;} break;}
case 136: case 136:
#line 483 "pars0grm.y" #line 486 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 137: case 137:
#line 484 "pars0grm.y" #line 487 "pars0grm.y"
{ yyval = &pars_clustered_token; ; { yyval = &pars_clustered_token; ;
break;} break;}
case 138: case 138:
#line 492 "pars0grm.y" #line 495 "pars0grm.y"
{ yyval = pars_create_index(yyvsp[-8], yyvsp[-7], yyvsp[-5], yyvsp[-3], yyvsp[-1]); ; { yyval = pars_create_index(yyvsp[-8], yyvsp[-7], yyvsp[-5], yyvsp[-3], yyvsp[-1]); ;
break;} break;}
case 139: case 139:
#line 497 "pars0grm.y" #line 500 "pars0grm.y"
{ yyval = pars_commit_statement(); ; { yyval = pars_commit_statement(); ;
break;} break;}
case 140: case 140:
#line 502 "pars0grm.y" #line 505 "pars0grm.y"
{ yyval = pars_rollback_statement(); ; { yyval = pars_rollback_statement(); ;
break;} break;}
case 141: case 141:
#line 506 "pars0grm.y" #line 509 "pars0grm.y"
{ yyval = &pars_int_token; ; { yyval = &pars_int_token; ;
break;} break;}
case 142: case 142:
#line 507 "pars0grm.y" #line 510 "pars0grm.y"
{ yyval = &pars_char_token; ; { yyval = &pars_char_token; ;
break;} break;}
case 143: case 143:
#line 512 "pars0grm.y" #line 515 "pars0grm.y"
{ yyval = pars_parameter_declaration(yyvsp[-2], { yyval = pars_parameter_declaration(yyvsp[-2],
PARS_INPUT, yyvsp[0]); ; PARS_INPUT, yyvsp[0]); ;
break;} break;}
case 144: case 144:
#line 515 "pars0grm.y" #line 518 "pars0grm.y"
{ yyval = pars_parameter_declaration(yyvsp[-2], { yyval = pars_parameter_declaration(yyvsp[-2],
PARS_OUTPUT, yyvsp[0]); ; PARS_OUTPUT, yyvsp[0]); ;
break;} break;}
case 145: case 145:
#line 520 "pars0grm.y" #line 523 "pars0grm.y"
{ yyval = NULL; ; { yyval = NULL; ;
break;} break;}
case 146: case 146:
#line 521 "pars0grm.y" #line 524 "pars0grm.y"
{ yyval = que_node_list_add_last(NULL, yyvsp[0]); ; { yyval = que_node_list_add_last(NULL, yyvsp[0]); ;
break;} break;}
case 147: case 147:
#line 523 "pars0grm.y" #line 526 "pars0grm.y"
{ yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ; { yyval = que_node_list_add_last(yyvsp[-2], yyvsp[0]); ;
break;} break;}
case 148: case 148:
#line 528 "pars0grm.y" #line 531 "pars0grm.y"
{ yyval = pars_variable_declaration(yyvsp[-2], yyvsp[-1]); ; { yyval = pars_variable_declaration(yyvsp[-2], yyvsp[-1]); ;
break;} break;}
case 152: case 152:
#line 540 "pars0grm.y" #line 543 "pars0grm.y"
{ yyval = pars_cursor_declaration(yyvsp[-3], yyvsp[-1]); ; { yyval = pars_cursor_declaration(yyvsp[-3], yyvsp[-1]); ;
break;} break;}
case 156: case 156:
#line 556 "pars0grm.y" #line 559 "pars0grm.y"
{ yyval = pars_procedure_definition(yyvsp[-9], yyvsp[-7], { yyval = pars_procedure_definition(yyvsp[-9], yyvsp[-7],
yyvsp[-1]); ; yyvsp[-1]); ;
break;} break;}
...@@ -1866,5 +1866,5 @@ yyerrhandle: ...@@ -1866,5 +1866,5 @@ yyerrhandle:
#endif #endif
return 1; return 1;
} }
#line 560 "pars0grm.y" #line 563 "pars0grm.y"
...@@ -13,8 +13,6 @@ the InnoDB parser. ...@@ -13,8 +13,6 @@ the InnoDB parser.
%{ %{
/* The value of the semantic attribute is a pointer to a query tree node /* The value of the semantic attribute is a pointer to a query tree node
que_node_t */ que_node_t */
#define YYSTYPE que_node_t*
#define alloca mem_alloc
#include <math.h> #include <math.h>
...@@ -25,6 +23,8 @@ que_node_t */ ...@@ -25,6 +23,8 @@ que_node_t */
#include "que0que.h" #include "que0que.h"
#include "row0sel.h" #include "row0sel.h"
#define YYSTYPE que_node_t*
/* #define __STDC__ */ /* #define __STDC__ */
int int
......
...@@ -26,6 +26,8 @@ How to make the InnoDB parser and lexer C files: ...@@ -26,6 +26,8 @@ How to make the InnoDB parser and lexer C files:
5. Rename lex.yy.c to lexyy.c. 5. Rename lex.yy.c to lexyy.c.
6. Remove the #include of unistd.h from about line 2500 of lexyy.c
These instructions seem to work at least with bison-1.28 and flex-2.5.4 on These instructions seem to work at least with bison-1.28 and flex-2.5.4 on
Linux. Linux.
*******************************************************/ *******************************************************/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment