Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
cfae1666
Commit
cfae1666
authored
Apr 02, 2004
by
marko@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
InnoDB: Handle quotes properly in the InnoDB SQL parser
parent
4da72c2e
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
563 additions
and
503 deletions
+563
-503
innobase/include/pars0pars.h
innobase/include/pars0pars.h
+0
-7
innobase/pars/lexyy.c
innobase/pars/lexyy.c
+495
-449
innobase/pars/pars0lex.l
innobase/pars/pars0lex.l
+62
-15
innobase/pars/pars0pars.c
innobase/pars/pars0pars.c
+0
-11
innobase/pars/pars0sym.c
innobase/pars/pars0sym.c
+6
-21
No files found.
innobase/include/pars0pars.h
View file @
cfae1666
...
@@ -87,13 +87,6 @@ pars_get_lex_chars(
...
@@ -87,13 +87,6 @@ pars_get_lex_chars(
int
max_size
);
/* in: maximum number of characters which fit
int
max_size
);
/* in: maximum number of characters which fit
in the buffer */
in the buffer */
/*****************************************************************
/*****************************************************************
Instructs the lexical analyzer to stop when it receives the EOF integer. */
int
yywrap
(
void
);
/*========*/
/* out: returns TRUE */
/*****************************************************************
Called by yyparse on error. */
Called by yyparse on error. */
void
void
...
...
innobase/pars/lexyy.c
View file @
cfae1666
...
@@ -8,7 +8,6 @@
...
@@ -8,7 +8,6 @@
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_MINOR_VERSION 5
#include "univ.i"
#include <stdio.h>
#include <stdio.h>
...
@@ -262,6 +261,9 @@ static void yy_flex_free YY_PROTO(( void * ));
...
@@ -262,6 +261,9 @@ static void yy_flex_free YY_PROTO(( void * ));
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
#define yywrap() 1
#define YY_SKIP_YYWRAP
typedef
unsigned
char
YY_CHAR
;
typedef
unsigned
char
YY_CHAR
;
FILE
*
yyin
=
(
FILE
*
)
0
,
*
yyout
=
(
FILE
*
)
0
;
FILE
*
yyin
=
(
FILE
*
)
0
,
*
yyout
=
(
FILE
*
)
0
;
typedef
int
yy_state_type
;
typedef
int
yy_state_type
;
...
@@ -285,48 +287,48 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
...
@@ -285,48 +287,48 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
#define YY_NUM_RULES 107
#define YY_NUM_RULES 107
#define YY_END_OF_BUFFER 108
#define YY_END_OF_BUFFER 108
static
yyconst
short
int
yy_accept
[
36
6
]
=
static
yyconst
short
int
yy_accept
[
36
7
]
=
{
0
,
{
0
,
0
,
0
,
10
0
,
100
,
108
,
106
,
105
,
105
,
95
,
106
,
0
,
0
,
10
2
,
102
,
0
,
0
,
108
,
106
,
105
,
105
,
84
,
90
,
93
,
91
,
88
,
92
,
106
,
94
,
1
,
10
6
,
97
,
3
,
86
,
92
,
95
,
93
,
90
,
94
,
106
,
9
6
,
89
,
87
,
85
,
86
,
98
,
78
,
78
,
78
,
78
,
78
,
1
,
106
,
91
,
89
,
87
,
88
,
100
,
80
,
80
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
78
,
78
,
78
,
96
,
97
,
100
,
101
,
102
,
105
,
0
,
80
,
80
,
80
,
80
,
80
,
98
,
99
,
102
,
103
,
4
,
3
,
79
,
99
,
2
,
1
,
80
,
81
,
83
,
82
,
78
,
5
,
105
,
81
,
101
,
2
,
1
,
82
,
83
,
85
,
84
,
78
,
78
,
78
,
78
,
36
,
78
,
78
,
78
,
78
,
78
,
80
,
80
,
80
,
80
,
80
,
38
,
80
,
80
,
80
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
19
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
10
,
16
,
78
,
78
,
78
,
78
,
46
,
53
,
78
,
7
,
21
,
12
,
18
,
80
,
80
,
80
,
80
,
48
,
55
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
9
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
100
,
101
,
102
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
102
,
103
,
103
,
10
2
,
104
,
2
,
6
,
37
,
78
,
78
,
78
,
78
,
103
,
10
4
,
4
,
5
,
2
,
8
,
39
,
80
,
80
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
78
,
78
,
78
,
18
,
78
,
78
,
32
,
78
,
78
,
78
,
80
,
80
,
80
,
80
,
20
,
80
,
80
,
34
,
80
,
80
,
12
,
78
,
78
,
8
,
78
,
78
,
78
,
11
,
78
,
78
,
80
,
14
,
80
,
80
,
10
,
80
,
80
,
80
,
13
,
80
,
78
,
78
,
78
,
72
,
78
,
78
,
78
,
43
,
5
,
78
,
80
,
80
,
80
,
80
,
74
,
80
,
80
,
80
,
45
,
7
,
27
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
80
,
29
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
78
,
78
,
78
,
78
,
15
,
78
,
78
,
78
,
78
,
78
,
80
,
80
,
80
,
80
,
80
,
17
,
80
,
80
,
80
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
38
,
78
,
78
,
21
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
40
,
80
,
80
,
78
,
78
,
78
,
30
,
78
,
78
,
78
,
78
,
40
,
78
,
23
,
80
,
80
,
80
,
32
,
80
,
80
,
80
,
80
,
42
,
23
,
78
,
4
,
56
,
78
,
78
,
78
,
34
,
78
,
78
,
80
,
25
,
80
,
6
,
58
,
80
,
80
,
80
,
36
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
20
,
78
,
78
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
22
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
77
,
78
,
17
,
78
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
79
,
80
,
19
,
58
,
78
,
78
,
78
,
78
,
28
,
78
,
78
,
78
,
78
,
80
,
60
,
80
,
80
,
80
,
80
,
30
,
80
,
80
,
80
,
78
,
78
,
78
,
22
,
57
,
14
,
49
,
78
,
67
,
78
,
80
,
80
,
80
,
80
,
24
,
59
,
16
,
51
,
80
,
69
,
78
,
78
,
35
,
78
,
78
,
78
,
78
,
78
,
78
,
78
,
80
,
80
,
80
,
37
,
80
,
80
,
80
,
80
,
80
,
80
,
78
,
78
,
78
,
48
,
78
,
78
,
78
,
78
,
78
,
78
,
80
,
80
,
80
,
80
,
50
,
80
,
80
,
80
,
80
,
80
,
31
,
24
,
71
,
78
,
78
,
75
,
66
,
78
,
47
,
78
,
80
,
33
,
26
,
73
,
80
,
80
,
77
,
68
,
80
,
49
,
55
,
78
,
44
,
78
,
78
,
39
,
78
,
68
,
78
,
7
0
,
80
,
57
,
80
,
46
,
80
,
80
,
41
,
80
,
70
,
8
0
,
7
8
,
78
,
25
,
78
,
78
,
78
,
26
,
64
,
78
,
78
,
7
2
,
80
,
80
,
27
,
80
,
80
,
80
,
28
,
66
,
80
,
78
,
78
,
50
,
42
,
41
,
78
,
78
,
78
,
45
,
54
,
80
,
80
,
80
,
52
,
44
,
43
,
80
,
80
,
80
,
47
,
78
,
78
,
13
,
78
,
78
,
65
,
73
,
78
,
78
,
69
,
56
,
80
,
80
,
15
,
80
,
80
,
67
,
75
,
80
,
80
,
7
8
,
60
,
78
,
78
,
78
,
78
,
29
,
78
,
59
,
78
,
7
1
,
80
,
62
,
80
,
80
,
80
,
80
,
31
,
80
,
61
,
76
,
78
,
78
,
78
,
78
,
51
,
78
,
78
,
9
,
78
,
80
,
78
,
80
,
80
,
80
,
80
,
53
,
80
,
80
,
11
,
62
,
61
,
78
,
33
,
78
,
74
,
78
,
78
,
78
,
78
,
80
,
64
,
63
,
80
,
35
,
80
,
76
,
80
,
80
,
80
,
78
,
78
,
78
,
78
,
78
,
78
,
63
,
78
,
78
,
78
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
65
,
80
,
80
,
78
,
78
,
78
,
52
,
0
80
,
80
,
80
,
80
,
54
,
0
}
;
}
;
static
yyconst
int
yy_ec
[
256
]
=
static
yyconst
int
yy_ec
[
256
]
=
...
@@ -363,205 +365,207 @@ static yyconst int yy_ec[256] =
...
@@ -363,205 +365,207 @@ static yyconst int yy_ec[256] =
static
yyconst
int
yy_meta
[
49
]
=
static
yyconst
int
yy_meta
[
49
]
=
{
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
1
,
1
,
3
,
1
,
1
,
1
,
1
,
1
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
4
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
3
,
3
,
3
,
3
,
3
,
3
,
1
,
1
4
,
4
,
4
,
4
,
4
,
4
,
1
,
1
}
;
}
;
static
yyconst
short
int
yy_base
[
37
1
]
=
static
yyconst
short
int
yy_base
[
37
3
]
=
{
0
,
{
0
,
0
,
0
,
46
,
47
,
393
,
394
,
49
,
54
,
394
,
387
,
0
,
0
,
387
,
386
,
388
,
387
,
391
,
396
,
47
,
49
,
394
,
394
,
394
,
394
,
394
,
394
,
379
,
382
,
46
,
371
,
396
,
396
,
396
,
396
,
396
,
396
,
396
,
396
,
378
,
381
,
394
,
43
,
394
,
370
,
394
,
25
,
38
,
37
,
41
,
39
,
41
,
370
,
396
,
38
,
396
,
369
,
396
,
20
,
33
,
32
,
49
,
0
,
51
,
54
,
45
,
62
,
349
,
57
,
68
,
73
,
36
,
34
,
44
,
0
,
46
,
49
,
40
,
57
,
348
,
52
,
61
,
365
,
71
,
394
,
394
,
382
,
394
,
99
,
108
,
379
,
63
,
68
,
56
,
364
,
66
,
396
,
396
,
0
,
89
,
0
,
394
,
394
,
394
,
369
,
102
,
394
,
394
,
394
,
394
,
0
,
379
,
103
,
396
,
396
,
369
,
95
,
396
,
396
,
396
,
396
,
358
,
81
,
354
,
346
,
0
,
358
,
80
,
84
,
353
,
339
,
0
,
358
,
76
,
354
,
346
,
0
,
358
,
75
,
78
,
353
,
96
,
337
,
350
,
335
,
349
,
332
,
336
,
332
,
334
,
0
,
339
,
90
,
337
,
350
,
335
,
349
,
332
,
336
,
332
,
334
,
98
,
0
,
334
,
332
,
326
,
333
,
0
,
0
,
339
,
339
,
0
,
93
,
0
,
334
,
332
,
326
,
333
,
0
,
0
,
339
,
322
,
94
,
103
,
337
,
98
,
94
,
328
,
109
,
320
,
336
,
339
,
322
,
85
,
100
,
337
,
91
,
86
,
328
,
102
,
320
,
332
,
310
,
326
,
330
,
321
,
107
,
314
,
348
,
394
,
137
,
336
,
332
,
310
,
326
,
330
,
321
,
102
,
314
,
0
,
117
,
394
,
141
,
394
,
336
,
0
,
0
,
324
,
319
,
326
,
308
,
129
,
396
,
0
,
346
,
336
,
0
,
0
,
324
,
319
,
326
,
306
,
305
,
310
,
123
,
308
,
320
,
109
,
308
,
314
,
315
,
308
,
306
,
305
,
310
,
105
,
308
,
320
,
100
,
308
,
314
,
297
,
297
,
126
,
0
,
312
,
313
,
0
,
300
,
307
,
28
,
315
,
297
,
297
,
116
,
0
,
312
,
313
,
0
,
300
,
307
,
128
,
304
,
294
,
303
,
296
,
293
,
301
,
0
,
291
,
301
,
118
,
121
,
304
,
294
,
303
,
296
,
293
,
301
,
0
,
291
,
299
,
290
,
280
,
274
,
287
,
272
,
292
,
0
,
0
,
277
,
301
,
299
,
290
,
280
,
274
,
287
,
272
,
292
,
0
,
0
,
0
,
291
,
282
,
279
,
134
,
275
,
290
,
269
,
271
,
276
,
277
,
0
,
291
,
282
,
279
,
125
,
275
,
290
,
269
,
271
,
276
,
268
,
271
,
266
,
0
,
278
,
262
,
272
,
279
,
270
,
276
,
276
,
268
,
271
,
266
,
0
,
278
,
262
,
272
,
279
,
258
,
257
,
271
,
260
,
273
,
253
,
0
,
263
,
245
,
0
,
270
,
258
,
257
,
271
,
260
,
273
,
253
,
0
,
263
,
245
,
264
,
261
,
248
,
0
,
243
,
248
,
247
,
257
,
0
,
243
,
0
,
264
,
261
,
248
,
0
,
243
,
248
,
247
,
257
,
0
,
0
,
247
,
0
,
0
,
243
,
240
,
254
,
0
,
239
,
239
,
243
,
0
,
247
,
0
,
0
,
243
,
240
,
254
,
0
,
239
,
237
,
253
,
238
,
250
,
232
,
250
,
245
,
0
,
240
,
240
,
239
,
237
,
253
,
238
,
250
,
232
,
250
,
245
,
0
,
240
,
226
,
225
,
225
,
239
,
238
,
237
,
0
,
221
,
0
,
215
,
240
,
226
,
225
,
225
,
239
,
238
,
237
,
0
,
221
,
0
,
0
,
234
,
218
,
217
,
217
,
0
,
230
,
220
,
215
,
214
,
215
,
0
,
234
,
218
,
217
,
217
,
0
,
230
,
220
,
215
,
226
,
216
,
215
,
0
,
0
,
0
,
0
,
208
,
0
,
222
,
214
,
226
,
216
,
215
,
0
,
0
,
0
,
0
,
208
,
0
,
218
,
204
,
0
,
218
,
219
,
202
,
207
,
200
,
218
,
200
,
222
,
218
,
204
,
0
,
218
,
219
,
202
,
207
,
200
,
218
,
197
,
198
,
195
,
0
,
200
,
212
,
199
,
206
,
205
,
190
,
200
,
197
,
198
,
195
,
0
,
200
,
212
,
199
,
206
,
205
,
0
,
0
,
0
,
182
,
189
,
0
,
0
,
186
,
0
,
185
,
190
,
0
,
0
,
0
,
182
,
189
,
0
,
0
,
186
,
0
,
0
,
199
,
0
,
200
,
187
,
0
,
183
,
0
,
186
,
0
,
185
,
0
,
199
,
0
,
200
,
187
,
0
,
183
,
0
,
186
,
178
,
180
,
0
,
179
,
193
,
186
,
0
,
0
,
189
,
192
,
0
,
178
,
180
,
0
,
179
,
193
,
186
,
0
,
0
,
189
,
174
,
189
,
0
,
0
,
0
,
170
,
184
,
183
,
0
,
0
,
192
,
174
,
189
,
0
,
0
,
0
,
170
,
184
,
183
,
0
,
167
,
166
,
0
,
181
,
166
,
0
,
0
,
172
,
168
,
0
,
0
,
167
,
166
,
0
,
181
,
166
,
0
,
0
,
172
,
168
,
163
,
0
,
175
,
164
,
174
,
163
,
0
,
150
,
0
,
170
,
0
,
163
,
0
,
175
,
164
,
174
,
163
,
0
,
150
,
0
,
0
,
154
,
148
,
154
,
145
,
0
,
150
,
163
,
0
,
162
,
170
,
0
,
154
,
148
,
154
,
145
,
0
,
150
,
163
,
0
,
0
,
0
,
153
,
0
,
157
,
0
,
144
,
144
,
150
,
136
,
162
,
0
,
0
,
153
,
0
,
157
,
0
,
144
,
144
,
150
,
159
,
147
,
142
,
132
,
127
,
118
,
0
,
128
,
135
,
126
,
136
,
159
,
151
,
152
,
136
,
119
,
109
,
0
,
121
,
128
,
123
,
114
,
88
,
0
,
394
,
168
,
171
,
124
,
174
,
177
119
,
116
,
112
,
104
,
0
,
396
,
159
,
163
,
59
,
167
,
171
,
175
}
;
}
;
static
yyconst
short
int
yy_def
[
37
1
]
=
static
yyconst
short
int
yy_def
[
37
3
]
=
{
0
,
{
0
,
365
,
1
,
366
,
366
,
365
,
365
,
365
,
365
,
365
,
367
,
366
,
1
,
367
,
367
,
368
,
368
,
366
,
366
,
366
,
366
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
365
,
365
,
365
,
365
,
365
,
368
,
368
,
368
,
368
,
368
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
365
,
365
,
369
,
365
,
370
,
365
,
367
,
369
,
369
,
369
,
369
,
369
,
366
,
366
,
370
,
371
,
372
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
368
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
365
,
370
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
370
,
371
,
365
,
370
,
365
,
365
,
368
,
368
,
368
,
368
,
368
,
368
,
371
,
366
,
372
,
366
,
366
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
368
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
369
,
368
,
368
,
368
,
368
,
0
,
365
,
365
,
365
,
365
,
365
369
,
369
,
369
,
369
,
369
,
0
,
366
,
366
,
366
,
366
,
366
,
366
}
;
}
;
static
yyconst
short
int
yy_nxt
[
44
3
]
=
static
yyconst
short
int
yy_nxt
[
44
5
]
=
{
0
,
{
0
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
1
6
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
1
8
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
2
6
,
27
,
28
,
29
,
30
,
31
,
32
,
32
,
33
,
32
,
2
8
,
29
,
30
,
31
,
32
,
33
,
34
,
34
,
35
,
34
,
3
2
,
34
,
32
,
35
,
36
,
37
,
32
,
38
,
39
,
40
,
3
4
,
36
,
34
,
37
,
38
,
39
,
34
,
40
,
41
,
42
,
4
1
,
42
,
43
,
32
,
32
,
32
,
44
,
45
,
47
,
47
,
4
3
,
44
,
45
,
34
,
34
,
34
,
46
,
47
,
52
,
52
,
49
,
49
,
196
,
48
,
48
,
49
,
49
,
54
,
61
,
55
,
52
,
52
,
55
,
62
,
56
,
58
,
59
,
64
,
63
,
67
,
57
,
58
,
63
,
62
,
66
,
71
,
64
,
197
,
67
,
72
,
72
,
65
,
61
,
68
,
73
,
75
,
69
,
76
,
77
,
70
,
74
,
68
,
75
,
76
,
69
,
73
,
80
,
70
,
83
,
85
,
74
,
81
,
71
,
84
,
86
,
78
,
94
,
66
,
79
,
82
,
77
,
93
,
65
,
78
,
81
,
86
,
79
,
87
,
84
,
82
,
87
,
80
,
88
,
85
,
83
,
95
,
96
,
97
,
101
,
104
,
94
,
95
,
96
,
100
,
103
,
88
,
104
,
89
,
106
,
90
,
89
,
105
,
90
,
107
,
91
,
102
,
111
,
92
,
117
,
98
,
10
1
,
111
,
91
,
116
,
97
,
107
,
112
,
102
,
98
,
49
,
10
8
,
112
,
103
,
99
,
52
,
52
,
55
,
100
,
56
,
122
,
49
,
113
,
99
,
54
,
121
,
55
,
123
,
124
,
128
,
117
,
124
,
125
,
129
,
150
,
118
,
123
,
140
,
158
,
126
,
151
,
1
22
,
139
,
149
,
151
,
125
,
157
,
60
,
129
,
150
,
155
,
1
52
,
130
,
156
,
161
,
366
,
159
,
170
,
180
,
131
,
366
,
1
60
,
169
,
364
,
158
,
130
,
170
,
140
,
141
,
152
,
111
,
1
71
,
141
,
142
,
157
,
162
,
153
,
111
,
184
,
185
,
154
,
1
56
,
161
,
153
,
111
,
365
,
179
,
183
,
184
,
112
,
365
,
1
91
,
112
,
197
,
181
,
192
,
199
,
220
,
221
,
365
,
364
,
190
,
363
,
198
,
113
,
191
,
219
,
220
,
362
,
361
,
360
,
363
,
362
,
361
,
360
,
359
,
200
,
358
,
198
,
222
,
48
,
359
,
180
,
199
,
358
,
357
,
356
,
355
,
221
,
46
,
46
,
48
,
48
,
48
,
50
,
50
,
50
,
50
,
109
,
109
,
357
,
46
,
50
,
50
,
50
,
108
,
354
,
108
,
110
,
110
,
110
,
109
,
110
,
110
,
110
,
110
,
113
,
356
,
113
,
113
,
355
,
35
3
,
352
,
351
,
350
,
349
,
348
,
347
,
346
,
345
,
344
,
35
4
,
353
,
352
,
351
,
350
,
349
,
348
,
347
,
346
,
345
,
34
3
,
342
,
341
,
340
,
339
,
338
,
337
,
336
,
335
,
334
,
34
4
,
343
,
342
,
341
,
340
,
339
,
338
,
337
,
336
,
335
,
33
3
,
332
,
331
,
330
,
329
,
328
,
327
,
326
,
325
,
324
,
33
4
,
333
,
332
,
331
,
330
,
329
,
328
,
327
,
326
,
325
,
32
3
,
322
,
321
,
320
,
319
,
318
,
317
,
316
,
315
,
314
,
32
4
,
323
,
322
,
321
,
320
,
319
,
318
,
317
,
316
,
315
,
31
3
,
312
,
311
,
310
,
309
,
308
,
307
,
306
,
305
,
304
,
31
4
,
313
,
312
,
311
,
310
,
309
,
308
,
307
,
306
,
305
,
30
3
,
302
,
301
,
300
,
299
,
298
,
297
,
296
,
295
,
294
,
30
4
,
303
,
302
,
301
,
300
,
299
,
298
,
297
,
296
,
295
,
29
3
,
292
,
291
,
290
,
289
,
288
,
287
,
286
,
285
,
284
,
29
4
,
293
,
292
,
291
,
290
,
289
,
288
,
287
,
286
,
285
,
28
3
,
282
,
281
,
280
,
279
,
278
,
277
,
276
,
275
,
274
,
28
4
,
283
,
282
,
281
,
280
,
279
,
278
,
277
,
276
,
275
,
27
3
,
272
,
271
,
270
,
269
,
268
,
267
,
266
,
265
,
264
,
27
4
,
273
,
272
,
271
,
270
,
269
,
268
,
267
,
266
,
265
,
26
3
,
262
,
261
,
260
,
259
,
258
,
257
,
256
,
255
,
254
,
26
4
,
263
,
262
,
261
,
260
,
259
,
258
,
257
,
256
,
255
,
25
3
,
252
,
251
,
250
,
249
,
248
,
247
,
246
,
245
,
244
,
25
4
,
253
,
252
,
251
,
250
,
249
,
248
,
247
,
246
,
245
,
24
3
,
242
,
241
,
240
,
239
,
238
,
237
,
236
,
235
,
234
,
24
4
,
243
,
242
,
241
,
240
,
239
,
238
,
237
,
236
,
235
,
23
3
,
232
,
231
,
230
,
229
,
228
,
227
,
226
,
225
,
224
,
23
4
,
233
,
232
,
231
,
230
,
229
,
228
,
227
,
226
,
225
,
22
3
,
222
,
218
,
217
,
216
,
215
,
214
,
213
,
212
,
211
,
22
4
,
223
,
219
,
218
,
217
,
216
,
215
,
214
,
213
,
212
,
21
0
,
209
,
208
,
207
,
206
,
205
,
204
,
203
,
202
,
201
,
21
1
,
210
,
209
,
208
,
207
,
206
,
205
,
204
,
203
,
202
,
20
0
,
195
,
194
,
193
,
192
,
189
,
188
,
187
,
186
,
185
,
20
1
,
196
,
195
,
194
,
193
,
190
,
189
,
188
,
187
,
186
,
18
2
,
181
,
178
,
177
,
176
,
175
,
174
,
173
,
172
,
114
,
18
3
,
182
,
179
,
178
,
177
,
176
,
175
,
174
,
173
,
115
,
1
09
,
171
,
168
,
167
,
166
,
165
,
164
,
163
,
162
,
159
,
1
14
,
172
,
169
,
168
,
167
,
166
,
165
,
164
,
163
,
160
,
15
4
,
148
,
147
,
146
,
145
,
144
,
143
,
142
,
138
,
137
,
15
5
,
149
,
148
,
147
,
146
,
145
,
144
,
143
,
139
,
138
,
13
6
,
135
,
134
,
133
,
132
,
131
,
127
,
126
,
120
,
119
,
13
7
,
136
,
135
,
134
,
133
,
132
,
128
,
127
,
121
,
120
,
11
8
,
115
,
114
,
51
,
109
,
105
,
92
,
59
,
56
,
53
,
11
9
,
116
,
115
,
114
,
106
,
93
,
60
,
57
,
54
,
53
,
52
,
51
,
365
,
5
,
365
,
365
,
365
,
365
,
365
,
365
,
366
,
51
,
51
,
49
,
49
,
7
,
366
,
366
,
366
,
366
,
36
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
36
6
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
36
6
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
36
6
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
36
6
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
36
6
,
366
,
366
,
366
}
;
}
;
static
yyconst
short
int
yy_chk
[
44
3
]
=
static
yyconst
short
int
yy_chk
[
44
5
]
=
{
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
3
,
4
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
9
,
9
,
7
,
7
,
140
,
3
,
4
,
8
,
8
,
19
,
26
,
19
,
10
,
10
,
21
,
28
,
21
,
24
,
24
,
29
,
28
,
30
,
22
,
22
,
27
,
26
,
28
,
29
,
27
,
140
,
28
,
29
,
31
,
29
,
369
,
30
,
31
,
32
,
30
,
32
,
33
,
30
,
3
0
,
28
,
30
,
31
,
28
,
29
,
33
,
28
,
34
,
35
,
3
1
,
35
,
30
,
36
,
37
,
33
,
40
,
29
,
33
,
35
,
3
1
,
38
,
27
,
31
,
33
,
35
,
31
,
36
,
34
,
3
3
,
3
7
,
33
,
38
,
36
,
35
,
40
,
40
,
41
,
42
,
4
3
,
38
,
38
,
39
,
40
,
41
,
36
,
41
,
36
,
43
,
36
,
38
,
43
,
38
,
45
,
38
,
42
,
49
,
38
,
63
,
41
,
4
0
,
48
,
36
,
62
,
39
,
43
,
48
,
40
,
39
,
49
,
4
5
,
49
,
42
,
41
,
52
,
52
,
56
,
41
,
56
,
68
,
49
,
48
,
39
,
55
,
67
,
55
,
68
,
68
,
71
,
62
,
69
,
69
,
72
,
93
,
63
,
68
,
82
,
97
,
69
,
93
,
67
,
81
,
92
,
93
,
68
,
96
,
368
,
71
,
92
,
95
,
94
,
72
,
96
,
99
,
110
,
97
,
107
,
125
,
72
,
110
,
98
,
106
,
363
,
96
,
71
,
106
,
81
,
81
,
93
,
110
,
107
,
82
,
82
,
96
,
99
,
94
,
111
,
128
,
128
,
94
,
95
,
98
,
93
,
112
,
110
,
124
,
127
,
127
,
112
,
110
,
134
,
111
,
141
,
125
,
134
,
142
,
166
,
166
,
364
,
363
,
133
,
362
,
141
,
112
,
133
,
165
,
165
,
361
,
360
,
359
,
362
,
361
,
360
,
359
,
357
,
142
,
356
,
141
,
166
,
367
,
3
58
,
124
,
141
,
356
,
355
,
354
,
353
,
165
,
366
,
366
,
3
67
,
367
,
367
,
368
,
368
,
368
,
368
,
370
,
370
,
355
,
3
66
,
367
,
367
,
367
,
369
,
352
,
369
,
370
,
370
,
370
,
3
70
,
371
,
371
,
371
,
371
,
372
,
354
,
372
,
372
,
353
,
35
1
,
350
,
349
,
348
,
347
,
345
,
343
,
340
,
338
,
337
,
35
2
,
351
,
350
,
349
,
348
,
346
,
344
,
341
,
339
,
338
,
33
5
,
334
,
333
,
332
,
330
,
328
,
326
,
325
,
324
,
323
,
33
6
,
335
,
334
,
333
,
331
,
329
,
327
,
326
,
325
,
324
,
32
1
,
319
,
318
,
315
,
314
,
312
,
311
,
308
,
307
,
306
,
32
2
,
320
,
319
,
316
,
315
,
313
,
312
,
309
,
308
,
307
,
30
2
,
301
,
300
,
299
,
296
,
295
,
294
,
292
,
291
,
289
,
30
3
,
302
,
301
,
300
,
297
,
296
,
295
,
293
,
292
,
290
,
28
7
,
285
,
284
,
282
,
280
,
278
,
275
,
274
,
270
,
269
,
28
8
,
286
,
285
,
283
,
281
,
279
,
276
,
275
,
271
,
270
,
26
8
,
267
,
266
,
265
,
263
,
262
,
261
,
260
,
259
,
258
,
26
9
,
268
,
267
,
266
,
264
,
263
,
262
,
261
,
260
,
259
,
25
7
,
256
,
255
,
254
,
252
,
251
,
250
,
248
,
243
,
242
,
25
8
,
257
,
256
,
255
,
253
,
252
,
251
,
249
,
244
,
243
,
24
1
,
240
,
239
,
238
,
237
,
235
,
234
,
233
,
232
,
230
,
24
2
,
241
,
240
,
239
,
238
,
236
,
235
,
234
,
233
,
231
,
22
8
,
226
,
225
,
224
,
223
,
222
,
221
,
220
,
219
,
217
,
22
9
,
227
,
226
,
225
,
224
,
223
,
222
,
221
,
220
,
218
,
21
6
,
215
,
214
,
213
,
212
,
211
,
210
,
209
,
207
,
206
,
21
7
,
216
,
215
,
214
,
213
,
212
,
211
,
210
,
208
,
207
,
20
5
,
202
,
200
,
198
,
197
,
196
,
195
,
193
,
192
,
191
,
20
6
,
203
,
201
,
199
,
198
,
197
,
196
,
194
,
193
,
192
,
1
89
,
188
,
186
,
185
,
184
,
183
,
182
,
181
,
180
,
179
,
1
90
,
189
,
187
,
186
,
185
,
184
,
183
,
182
,
181
,
180
,
17
8
,
177
,
176
,
174
,
173
,
172
,
171
,
170
,
169
,
168
,
17
9
,
178
,
177
,
175
,
174
,
173
,
172
,
171
,
170
,
169
,
16
7
,
166
,
164
,
163
,
162
,
160
,
157
,
156
,
155
,
154
,
16
8
,
167
,
165
,
164
,
163
,
161
,
158
,
157
,
156
,
155
,
15
3
,
152
,
151
,
150
,
149
,
147
,
146
,
145
,
144
,
143
,
15
4
,
153
,
152
,
151
,
150
,
148
,
147
,
146
,
145
,
144
,
14
2
,
139
,
138
,
136
,
135
,
132
,
131
,
130
,
129
,
128
,
14
3
,
140
,
139
,
137
,
136
,
133
,
132
,
131
,
130
,
129
,
12
6
,
125
,
123
,
122
,
121
,
120
,
119
,
118
,
117
,
114
,
12
7
,
126
,
124
,
123
,
122
,
121
,
120
,
119
,
118
,
115
,
1
08
,
107
,
105
,
104
,
103
,
102
,
101
,
100
,
99
,
97
,
1
14
,
108
,
106
,
105
,
104
,
103
,
102
,
101
,
100
,
98
,
9
4
,
91
,
90
,
89
,
86
,
85
,
84
,
83
,
79
,
78
,
9
5
,
92
,
91
,
90
,
87
,
86
,
85
,
84
,
80
,
79
,
7
7
,
76
,
75
,
74
,
73
,
72
,
70
,
69
,
66
,
64
,
7
8
,
77
,
76
,
75
,
74
,
73
,
71
,
70
,
67
,
65
,
6
3
,
61
,
54
,
50
,
46
,
42
,
37
,
24
,
20
,
18
,
6
4
,
62
,
55
,
51
,
44
,
39
,
26
,
22
,
20
,
19
,
17
,
10
,
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
7
,
6
,
5
,
4
,
3
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
36
6
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
36
6
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
36
6
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
365
,
36
6
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
366
,
36
5
,
365
36
6
,
366
,
366
,
366
}
;
}
;
static
yy_state_type
yy_last_accepting_state
;
static
yy_state_type
yy_last_accepting_state
;
...
@@ -613,7 +617,13 @@ How to make the InnoDB parser and lexer C files:
...
@@ -613,7 +617,13 @@ How to make the InnoDB parser and lexer C files:
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.
*******************************************************/
*******************************************************/
#line 36 "pars0lex.l"
#define YY_NEVER_INTERACTIVE 1
#define YY_NO_INPUT 1
#define YY_NO_UNPUT 1
#define YY_NO_SCAN_BUFFER 1
#define YY_NO_SCAN_BYTES 1
#define YY_NO_SCAN_STRING 1
#line 52 "pars0lex.l"
#define YYSTYPE que_node_t*
#define YYSTYPE que_node_t*
#include "univ.i"
#include "univ.i"
...
@@ -623,16 +633,46 @@ Linux.
...
@@ -623,16 +633,46 @@ Linux.
#include "mem0mem.h"
#include "mem0mem.h"
#include "os0proc.h"
#include "os0proc.h"
#define isatty(A) 0
#define malloc(A) mem_alloc(A)
#define malloc(A) mem_alloc(A)
#define free(A) mem_free(A)
#define free(A) mem_free(A)
#define realloc(P, A) mem_realloc(P, A, __FILE__, __LINE__)
#define realloc(P, A) mem_realloc(P, A, __FILE__, __LINE__)
#define exit(A) ut_error
#define exit(A) ut_error
#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)
/* String buffer for removing quotes */
static
ulint
stringbuf_len_alloc
=
0
;
/* Allocated length */
static
ulint
stringbuf_len
=
0
;
/* Current length */
static
char
*
stringbuf
;
/* Start of buffer */
/* Appends a string to the buffer. */
static
void
string_append
(
/*==========*/
const
char
*
str
,
/* in: string to be appended */
ulint
len
)
/* in: length of the string */
{
if
(
stringbuf_len
+
len
>
stringbuf_len_alloc
)
{
if
(
stringbuf_len_alloc
==
0
)
{
stringbuf_len_alloc
++
;
}
while
(
stringbuf_len
+
len
>
stringbuf_len_alloc
)
{
stringbuf_len_alloc
<<=
1
;
}
stringbuf
=
stringbuf
?
realloc
(
stringbuf
,
stringbuf_len_alloc
)
:
malloc
(
stringbuf_len_alloc
);
}
memcpy
(
stringbuf
+
stringbuf_len
,
str
,
len
);
stringbuf_len
+=
len
;
}
#define comment 1
#define comment 1
#line 632 "lex.yy.c"
#define quoted 2
#line 676 "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.
...
@@ -783,10 +823,10 @@ YY_DECL
...
@@ -783,10 +823,10 @@ YY_DECL
register
char
*
yy_cp
,
*
yy_bp
;
register
char
*
yy_cp
,
*
yy_bp
;
register
int
yy_act
;
register
int
yy_act
;
#line
57
"pars0lex.l"
#line
102
"pars0lex.l"
#line
786
"lex.yy.c"
#line
830
"lex.yy.c"
if
(
yy_init
)
if
(
yy_init
)
{
{
...
@@ -837,13 +877,13 @@ yy_match:
...
@@ -837,13 +877,13 @@ yy_match:
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
{
{
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
if
(
yy_current_state
>=
36
6
)
if
(
yy_current_state
>=
36
7
)
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
}
}
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
++
yy_cp
;
++
yy_cp
;
}
}
while
(
yy_base
[
yy_current_state
]
!=
39
4
);
while
(
yy_base
[
yy_current_state
]
!=
39
6
);
yy_find_action:
yy_find_action:
yy_act
=
yy_accept
[
yy_current_state
];
yy_act
=
yy_accept
[
yy_current_state
];
...
@@ -871,7 +911,7 @@ do_action: /* This label is used only to access EOF actions. */
...
@@ -871,7 +911,7 @@ do_action: /* This label is used only to access EOF actions. */
case
1
:
case
1
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
59
"pars0lex.l"
#line
104
"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
));
...
@@ -880,7 +920,7 @@ YY_RULE_SETUP
...
@@ -880,7 +920,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
2
:
case
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
65
"pars0lex.l"
#line
110
"pars0lex.l"
{
{
ut_error
;
/* not implemented */
ut_error
;
/* not implemented */
...
@@ -889,542 +929,556 @@ YY_RULE_SETUP
...
@@ -889,542 +929,556 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
3
:
case
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
71
"pars0lex.l"
#line
116
"pars0lex.l"
{
{
/* Remove the single quotes around the string */
BEGIN
(
quoted
);
stringbuf_len
=
0
;
yylval
=
sym_tab_add_str_lit
(
pars_sym_tab_global
,
(
byte
*
)
yytext
,
ut_strlen
(
yytext
));
return
(
PARS_STR_LIT
);
}
}
YY_BREAK
YY_BREAK
case
4
:
case
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 80 "pars0lex.l"
#line 120 "pars0lex.l"
string_append
(
yytext
,
yyleng
);
YY_BREAK
case
5
:
YY_RULE_SETUP
#line 121 "pars0lex.l"
{
string_append
(
yytext
,
yyleng
/
2
);
if
(
yyleng
%
2
)
{
BEGIN
(
INITIAL
);
yylval
=
sym_tab_add_str_lit
(
pars_sym_tab_global
,
stringbuf
,
stringbuf_len
);
return
(
PARS_STR_LIT
);
}
}
YY_BREAK
case
6
:
YY_RULE_SETUP
#line 131 "pars0lex.l"
{
{
yylval
=
sym_tab_add_null_lit
(
pars_sym_tab_global
);
yylval
=
sym_tab_add_null_lit
(
pars_sym_tab_global
);
return
(
PARS_NULL_LIT
);
return
(
PARS_NULL_LIT
);
}
}
YY_BREAK
YY_BREAK
case
5
:
case
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
86
"pars0lex.l"
#line
137
"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
,
(
byte
*
)
"
\'
SQL
\'
"
,
5
);
yytext
,
yyleng
);
return
(
PARS_SQL_TOKEN
);
return
(
PARS_SQL_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
:
case
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
93
"pars0lex.l"
#line
144
"pars0lex.l"
{
{
return
(
PARS_AND_TOKEN
);
return
(
PARS_AND_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
:
case
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
97
"pars0lex.l"
#line
148
"pars0lex.l"
{
{
return
(
PARS_OR_TOKEN
);
return
(
PARS_OR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
8
:
case
10
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
01
"pars0lex.l"
#line 1
52
"pars0lex.l"
{
{
return
(
PARS_NOT_TOKEN
);
return
(
PARS_NOT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
9
:
case
11
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
05
"pars0lex.l"
#line 1
56
"pars0lex.l"
{
{
return
(
PARS_PROCEDURE_TOKEN
);
return
(
PARS_PROCEDURE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
1
0
:
case
1
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
09
"pars0lex.l"
#line 1
60
"pars0lex.l"
{
{
return
(
PARS_IN_TOKEN
);
return
(
PARS_IN_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
1
1
:
case
1
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
13
"pars0lex.l"
#line 1
64
"pars0lex.l"
{
{
return
(
PARS_OUT_TOKEN
);
return
(
PARS_OUT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
1
2
:
case
1
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
17
"pars0lex.l"
#line 1
68
"pars0lex.l"
{
{
return
(
PARS_INT_TOKEN
);
return
(
PARS_INT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
1
3
:
case
1
5
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
21
"pars0lex.l"
#line 1
72
"pars0lex.l"
{
{
return
(
PARS_INT_TOKEN
);
return
(
PARS_INT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
1
4
:
case
1
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
25
"pars0lex.l"
#line 1
76
"pars0lex.l"
{
{
return
(
PARS_FLOAT_TOKEN
);
return
(
PARS_FLOAT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
1
5
:
case
1
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
29
"pars0lex.l"
#line 1
80
"pars0lex.l"
{
{
return
(
PARS_CHAR_TOKEN
);
return
(
PARS_CHAR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
1
6
:
case
1
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
33
"pars0lex.l"
#line 1
84
"pars0lex.l"
{
{
return
(
PARS_IS_TOKEN
);
return
(
PARS_IS_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
1
7
:
case
1
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
37
"pars0lex.l"
#line 1
88
"pars0lex.l"
{
{
return
(
PARS_BEGIN_TOKEN
);
return
(
PARS_BEGIN_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
18
:
case
20
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
41
"pars0lex.l"
#line 1
92
"pars0lex.l"
{
{
return
(
PARS_END_TOKEN
);
return
(
PARS_END_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
19
:
case
21
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 1
45
"pars0lex.l"
#line 1
96
"pars0lex.l"
{
{
return
(
PARS_IF_TOKEN
);
return
(
PARS_IF_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
2
0
:
case
2
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
149
"pars0lex.l"
#line
200
"pars0lex.l"
{
{
return
(
PARS_THEN_TOKEN
);
return
(
PARS_THEN_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
2
1
:
case
2
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
153
"pars0lex.l"
#line
204
"pars0lex.l"
{
{
return
(
PARS_ELSE_TOKEN
);
return
(
PARS_ELSE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
2
2
:
case
2
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
157
"pars0lex.l"
#line
208
"pars0lex.l"
{
{
return
(
PARS_ELSIF_TOKEN
);
return
(
PARS_ELSIF_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
2
3
:
case
2
5
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
161
"pars0lex.l"
#line
212
"pars0lex.l"
{
{
return
(
PARS_LOOP_TOKEN
);
return
(
PARS_LOOP_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
2
4
:
case
2
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
165
"pars0lex.l"
#line
216
"pars0lex.l"
{
{
return
(
PARS_WHILE_TOKEN
);
return
(
PARS_WHILE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
2
5
:
case
2
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
169
"pars0lex.l"
#line
220
"pars0lex.l"
{
{
return
(
PARS_RETURN_TOKEN
);
return
(
PARS_RETURN_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
2
6
:
case
2
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
173
"pars0lex.l"
#line
224
"pars0lex.l"
{
{
return
(
PARS_SELECT_TOKEN
);
return
(
PARS_SELECT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
2
7
:
case
2
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
177
"pars0lex.l"
#line
228
"pars0lex.l"
{
{
return
(
PARS_SUM_TOKEN
);
return
(
PARS_SUM_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
28
:
case
30
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
181
"pars0lex.l"
#line
232
"pars0lex.l"
{
{
return
(
PARS_COUNT_TOKEN
);
return
(
PARS_COUNT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
29
:
case
31
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
185
"pars0lex.l"
#line
236
"pars0lex.l"
{
{
return
(
PARS_DISTINCT_TOKEN
);
return
(
PARS_DISTINCT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
3
0
:
case
3
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
189
"pars0lex.l"
#line
240
"pars0lex.l"
{
{
return
(
PARS_FROM_TOKEN
);
return
(
PARS_FROM_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
3
1
:
case
3
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
193
"pars0lex.l"
#line
244
"pars0lex.l"
{
{
return
(
PARS_WHERE_TOKEN
);
return
(
PARS_WHERE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
3
2
:
case
3
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
197
"pars0lex.l"
#line
248
"pars0lex.l"
{
{
return
(
PARS_FOR_TOKEN
);
return
(
PARS_FOR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
3
3
:
case
3
5
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
01
"pars0lex.l"
#line 2
52
"pars0lex.l"
{
{
return
(
PARS_CONSISTENT_TOKEN
);
return
(
PARS_CONSISTENT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
3
4
:
case
3
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
05
"pars0lex.l"
#line 2
56
"pars0lex.l"
{
{
return
(
PARS_READ_TOKEN
);
return
(
PARS_READ_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
3
5
:
case
3
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
09
"pars0lex.l"
#line 2
60
"pars0lex.l"
{
{
return
(
PARS_ORDER_TOKEN
);
return
(
PARS_ORDER_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
3
6
:
case
3
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
13
"pars0lex.l"
#line 2
64
"pars0lex.l"
{
{
return
(
PARS_BY_TOKEN
);
return
(
PARS_BY_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
3
7
:
case
3
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
17
"pars0lex.l"
#line 2
68
"pars0lex.l"
{
{
return
(
PARS_ASC_TOKEN
);
return
(
PARS_ASC_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
38
:
case
40
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
21
"pars0lex.l"
#line 2
72
"pars0lex.l"
{
{
return
(
PARS_DESC_TOKEN
);
return
(
PARS_DESC_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
39
:
case
41
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
25
"pars0lex.l"
#line 2
76
"pars0lex.l"
{
{
return
(
PARS_INSERT_TOKEN
);
return
(
PARS_INSERT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
4
0
:
case
4
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
29
"pars0lex.l"
#line 2
80
"pars0lex.l"
{
{
return
(
PARS_INTO_TOKEN
);
return
(
PARS_INTO_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
4
1
:
case
4
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
33
"pars0lex.l"
#line 2
84
"pars0lex.l"
{
{
return
(
PARS_VALUES_TOKEN
);
return
(
PARS_VALUES_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
4
2
:
case
4
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
37
"pars0lex.l"
#line 2
88
"pars0lex.l"
{
{
return
(
PARS_UPDATE_TOKEN
);
return
(
PARS_UPDATE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
4
3
:
case
4
5
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
41
"pars0lex.l"
#line 2
92
"pars0lex.l"
{
{
return
(
PARS_SET_TOKEN
);
return
(
PARS_SET_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
4
4
:
case
4
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 2
45
"pars0lex.l"
#line 2
96
"pars0lex.l"
{
{
return
(
PARS_DELETE_TOKEN
);
return
(
PARS_DELETE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
4
5
:
case
4
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
249
"pars0lex.l"
#line
300
"pars0lex.l"
{
{
return
(
PARS_CURRENT_TOKEN
);
return
(
PARS_CURRENT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
4
6
:
case
4
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
253
"pars0lex.l"
#line
304
"pars0lex.l"
{
{
return
(
PARS_OF_TOKEN
);
return
(
PARS_OF_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
4
7
:
case
4
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
257
"pars0lex.l"
#line
308
"pars0lex.l"
{
{
return
(
PARS_CREATE_TOKEN
);
return
(
PARS_CREATE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
48
:
case
50
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
261
"pars0lex.l"
#line
312
"pars0lex.l"
{
{
return
(
PARS_TABLE_TOKEN
);
return
(
PARS_TABLE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
49
:
case
51
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
265
"pars0lex.l"
#line
316
"pars0lex.l"
{
{
return
(
PARS_INDEX_TOKEN
);
return
(
PARS_INDEX_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
5
0
:
case
5
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
269
"pars0lex.l"
#line
320
"pars0lex.l"
{
{
return
(
PARS_UNIQUE_TOKEN
);
return
(
PARS_UNIQUE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
5
1
:
case
5
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
273
"pars0lex.l"
#line
324
"pars0lex.l"
{
{
return
(
PARS_CLUSTERED_TOKEN
);
return
(
PARS_CLUSTERED_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
5
2
:
case
5
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
277
"pars0lex.l"
#line
328
"pars0lex.l"
{
{
return
(
PARS_DOES_NOT_FIT_IN_MEM_TOKEN
);
return
(
PARS_DOES_NOT_FIT_IN_MEM_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
5
3
:
case
5
5
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
281
"pars0lex.l"
#line
332
"pars0lex.l"
{
{
return
(
PARS_ON_TOKEN
);
return
(
PARS_ON_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
5
4
:
case
5
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
285
"pars0lex.l"
#line
336
"pars0lex.l"
{
{
return
(
PARS_DECLARE_TOKEN
);
return
(
PARS_DECLARE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
5
5
:
case
5
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
289
"pars0lex.l"
#line
340
"pars0lex.l"
{
{
return
(
PARS_CURSOR_TOKEN
);
return
(
PARS_CURSOR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
5
6
:
case
5
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
293
"pars0lex.l"
#line
344
"pars0lex.l"
{
{
return
(
PARS_OPEN_TOKEN
);
return
(
PARS_OPEN_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
5
7
:
case
5
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
297
"pars0lex.l"
#line
348
"pars0lex.l"
{
{
return
(
PARS_FETCH_TOKEN
);
return
(
PARS_FETCH_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
58
:
case
60
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
01
"pars0lex.l"
#line 3
52
"pars0lex.l"
{
{
return
(
PARS_CLOSE_TOKEN
);
return
(
PARS_CLOSE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
59
:
case
61
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
05
"pars0lex.l"
#line 3
56
"pars0lex.l"
{
{
return
(
PARS_NOTFOUND_TOKEN
);
return
(
PARS_NOTFOUND_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
0
:
case
6
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
09
"pars0lex.l"
#line 3
60
"pars0lex.l"
{
{
return
(
PARS_TO_CHAR_TOKEN
);
return
(
PARS_TO_CHAR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
1
:
case
6
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
13
"pars0lex.l"
#line 3
64
"pars0lex.l"
{
{
return
(
PARS_TO_NUMBER_TOKEN
);
return
(
PARS_TO_NUMBER_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
2
:
case
6
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
17
"pars0lex.l"
#line 3
68
"pars0lex.l"
{
{
return
(
PARS_TO_BINARY_TOKEN
);
return
(
PARS_TO_BINARY_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
3
:
case
6
5
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
21
"pars0lex.l"
#line 3
72
"pars0lex.l"
{
{
return
(
PARS_BINARY_TO_NUMBER_TOKEN
);
return
(
PARS_BINARY_TO_NUMBER_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
4
:
case
6
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
25
"pars0lex.l"
#line 3
76
"pars0lex.l"
{
{
return
(
PARS_SUBSTR_TOKEN
);
return
(
PARS_SUBSTR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
5
:
case
6
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
29
"pars0lex.l"
#line 3
80
"pars0lex.l"
{
{
return
(
PARS_REPLSTR_TOKEN
);
return
(
PARS_REPLSTR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
6
:
case
6
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
33
"pars0lex.l"
#line 3
84
"pars0lex.l"
{
{
return
(
PARS_CONCAT_TOKEN
);
return
(
PARS_CONCAT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
6
7
:
case
6
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
37
"pars0lex.l"
#line 3
88
"pars0lex.l"
{
{
return
(
PARS_INSTR_TOKEN
);
return
(
PARS_INSTR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
68
:
case
70
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
41
"pars0lex.l"
#line 3
92
"pars0lex.l"
{
{
return
(
PARS_LENGTH_TOKEN
);
return
(
PARS_LENGTH_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
69
:
case
71
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 3
45
"pars0lex.l"
#line 3
96
"pars0lex.l"
{
{
return
(
PARS_SYSDATE_TOKEN
);
return
(
PARS_SYSDATE_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
0
:
case
7
2
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
349
"pars0lex.l"
#line
400
"pars0lex.l"
{
{
return
(
PARS_PRINTF_TOKEN
);
return
(
PARS_PRINTF_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
1
:
case
7
3
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
353
"pars0lex.l"
#line
404
"pars0lex.l"
{
{
return
(
PARS_ASSERT_TOKEN
);
return
(
PARS_ASSERT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
2
:
case
7
4
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
357
"pars0lex.l"
#line
408
"pars0lex.l"
{
{
return
(
PARS_RND_TOKEN
);
return
(
PARS_RND_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
3
:
case
7
5
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
361
"pars0lex.l"
#line
412
"pars0lex.l"
{
{
return
(
PARS_RND_STR_TOKEN
);
return
(
PARS_RND_STR_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
4
:
case
7
6
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
365
"pars0lex.l"
#line
416
"pars0lex.l"
{
{
return
(
PARS_ROW_PRINTF_TOKEN
);
return
(
PARS_ROW_PRINTF_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
5
:
case
7
7
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
369
"pars0lex.l"
#line
420
"pars0lex.l"
{
{
return
(
PARS_COMMIT_TOKEN
);
return
(
PARS_COMMIT_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
6
:
case
7
8
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
373
"pars0lex.l"
#line
424
"pars0lex.l"
{
{
return
(
PARS_ROLLBACK_TOKEN
);
return
(
PARS_ROLLBACK_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
7
7
:
case
7
9
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
377
"pars0lex.l"
#line
428
"pars0lex.l"
{
{
return
(
PARS_WORK_TOKEN
);
return
(
PARS_WORK_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
78
:
case
80
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
381
"pars0lex.l"
#line
432
"pars0lex.l"
{
{
yylval
=
sym_tab_add_id
(
pars_sym_tab_global
,
yylval
=
sym_tab_add_id
(
pars_sym_tab_global
,
(
byte
*
)
yytext
,
(
byte
*
)
yytext
,
...
@@ -1432,60 +1486,44 @@ YY_RULE_SETUP
...
@@ -1432,60 +1486,44 @@ YY_RULE_SETUP
return
(
PARS_ID_TOKEN
);
return
(
PARS_ID_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
79
:
YY_RULE_SETUP
#line 388 "pars0lex.l"
{
return
(
PARS_DDOT_TOKEN
);
}
YY_BREAK
case
80
:
YY_RULE_SETUP
#line 392 "pars0lex.l"
{
return
(
PARS_ASSIGN_TOKEN
);
}
YY_BREAK
case
81
:
case
81
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
396
"pars0lex.l"
#line
439
"pars0lex.l"
{
{
return
(
PARS_
LE
_TOKEN
);
return
(
PARS_
DDOT
_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
82
:
case
82
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
00
"pars0lex.l"
#line 4
43
"pars0lex.l"
{
{
return
(
PARS_
GE
_TOKEN
);
return
(
PARS_
ASSIGN
_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
83
:
case
83
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
04
"pars0lex.l"
#line 4
47
"pars0lex.l"
{
{
return
(
PARS_
N
E_TOKEN
);
return
(
PARS_
L
E_TOKEN
);
}
}
YY_BREAK
YY_BREAK
case
84
:
case
84
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
08
"pars0lex.l"
#line 4
51
"pars0lex.l"
{
{
return
(
PARS_GE_TOKEN
);
return
((
int
)(
*
yytext
));
}
}
YY_BREAK
YY_BREAK
case
85
:
case
85
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
13
"pars0lex.l"
#line 4
55
"pars0lex.l"
{
{
return
(
PARS_NE_TOKEN
);
return
((
int
)(
*
yytext
));
}
}
YY_BREAK
YY_BREAK
case
86
:
case
86
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
18
"pars0lex.l"
#line 4
59
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1493,7 +1531,7 @@ YY_RULE_SETUP
...
@@ -1493,7 +1531,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
87
:
case
87
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
23
"pars0lex.l"
#line 4
64
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1501,7 +1539,7 @@ YY_RULE_SETUP
...
@@ -1501,7 +1539,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
88
:
case
88
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
28
"pars0lex.l"
#line 4
69
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1509,7 +1547,7 @@ YY_RULE_SETUP
...
@@ -1509,7 +1547,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
89
:
case
89
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
33
"pars0lex.l"
#line 4
74
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1517,7 +1555,7 @@ YY_RULE_SETUP
...
@@ -1517,7 +1555,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
90
:
case
90
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
38
"pars0lex.l"
#line 4
79
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1525,7 +1563,7 @@ YY_RULE_SETUP
...
@@ -1525,7 +1563,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
91
:
case
91
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
43
"pars0lex.l"
#line 4
84
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1533,7 +1571,7 @@ YY_RULE_SETUP
...
@@ -1533,7 +1571,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
92
:
case
92
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
48
"pars0lex.l"
#line 4
89
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1541,7 +1579,7 @@ YY_RULE_SETUP
...
@@ -1541,7 +1579,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
93
:
case
93
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
53
"pars0lex.l"
#line 4
94
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1549,7 +1587,7 @@ YY_RULE_SETUP
...
@@ -1549,7 +1587,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
94
:
case
94
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 4
58
"pars0lex.l"
#line 4
99
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1557,7 +1595,7 @@ YY_RULE_SETUP
...
@@ -1557,7 +1595,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
95
:
case
95
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
463
"pars0lex.l"
#line
504
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1565,7 +1603,7 @@ YY_RULE_SETUP
...
@@ -1565,7 +1603,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
96
:
case
96
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
468
"pars0lex.l"
#line
509
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1573,7 +1611,7 @@ YY_RULE_SETUP
...
@@ -1573,7 +1611,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
97
:
case
97
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
473
"pars0lex.l"
#line
514
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1581,7 +1619,7 @@ YY_RULE_SETUP
...
@@ -1581,7 +1619,7 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
98
:
case
98
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
478
"pars0lex.l"
#line
519
"pars0lex.l"
{
{
return
((
int
)(
*
yytext
));
return
((
int
)(
*
yytext
));
...
@@ -1589,44 +1627,51 @@ YY_RULE_SETUP
...
@@ -1589,44 +1627,51 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
99
:
case
99
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 483 "pars0lex.l"
#line 524 "pars0lex.l"
BEGIN
(
comment
);
/* eat up comment */
{
return
((
int
)(
*
yytext
));
}
YY_BREAK
YY_BREAK
case
100
:
case
100
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 485 "pars0lex.l"
#line 529 "pars0lex.l"
{
return
((
int
)(
*
yytext
));
}
YY_BREAK
YY_BREAK
case
101
:
case
101
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
486
"pars0lex.l"
#line
534
"pars0lex.l"
BEGIN
(
comment
);
/* eat up comment */
YY_BREAK
YY_BREAK
case
102
:
case
102
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
487
"pars0lex.l"
#line
536
"pars0lex.l"
YY_BREAK
YY_BREAK
case
103
:
case
103
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
488
"pars0lex.l"
#line
537
"pars0lex.l"
YY_BREAK
YY_BREAK
case
104
:
case
104
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
489
"pars0lex.l"
#line
538
"pars0lex.l"
BEGIN
(
INITIAL
);
BEGIN
(
INITIAL
);
YY_BREAK
YY_BREAK
case
105
:
case
105
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
491
"pars0lex.l"
#line
540
"pars0lex.l"
/* eat up whitespace */
/* eat up whitespace */
YY_BREAK
YY_BREAK
case
106
:
case
106
:
YY_RULE_SETUP
YY_RULE_SETUP
#line
494
"pars0lex.l"
#line
543
"pars0lex.l"
{
{
printf
(
"Unrecognized character: %s
\n
"
,
yytext
);
fprintf
(
stderr
,
"Unrecognized character: %02x
\n
"
,
*
yytext
);
ut_error
;
ut_error
;
...
@@ -1635,12 +1680,13 @@ YY_RULE_SETUP
...
@@ -1635,12 +1680,13 @@ YY_RULE_SETUP
YY_BREAK
YY_BREAK
case
107
:
case
107
:
YY_RULE_SETUP
YY_RULE_SETUP
#line 5
0
2 "pars0lex.l"
#line 5
5
2 "pars0lex.l"
ECHO
;
YY_FATAL_ERROR
(
"flex scanner jammed"
)
;
YY_BREAK
YY_BREAK
#line 16
38
"lex.yy.c"
#line 16
87
"lex.yy.c"
case
YY_STATE_EOF
(
INITIAL
):
case
YY_STATE_EOF
(
INITIAL
):
case
YY_STATE_EOF
(
comment
):
case
YY_STATE_EOF
(
comment
):
case
YY_STATE_EOF
(
quoted
):
yyterminate
();
yyterminate
();
case
YY_END_OF_BUFFER
:
case
YY_END_OF_BUFFER
:
...
@@ -1931,7 +1977,7 @@ static yy_state_type yy_get_previous_state()
...
@@ -1931,7 +1977,7 @@ static yy_state_type yy_get_previous_state()
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
{
{
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
if
(
yy_current_state
>=
36
6
)
if
(
yy_current_state
>=
36
7
)
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
}
}
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
...
@@ -1966,11 +2012,11 @@ yy_state_type yy_current_state;
...
@@ -1966,11 +2012,11 @@ yy_state_type yy_current_state;
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
{
{
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
if
(
yy_current_state
>=
36
6
)
if
(
yy_current_state
>=
36
7
)
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
}
}
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
yy_is_jam
=
(
yy_current_state
==
36
5
);
yy_is_jam
=
(
yy_current_state
==
36
6
);
return
yy_is_jam
?
0
:
yy_current_state
;
return
yy_is_jam
?
0
:
yy_current_state
;
}
}
...
@@ -2205,7 +2251,7 @@ YY_BUFFER_STATE b;
...
@@ -2205,7 +2251,7 @@ YY_BUFFER_STATE b;
#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern
int
isatty
YY_PROTO
((
int
));
#endif
#endif
#endif
#endif
...
@@ -2525,5 +2571,5 @@ int main()
...
@@ -2525,5 +2571,5 @@ int main()
return
0
;
return
0
;
}
}
#endif
#endif
#line 5
0
2 "pars0lex.l"
#line 5
5
2 "pars0lex.l"
innobase/pars/pars0lex.l
View file @
cfae1666
...
@@ -35,6 +35,19 @@ These instructions seem to work at least with bison-1.28 and flex-2.5.4 on
...
@@ -35,6 +35,19 @@ These instructions seem to work at least with bison-1.28 and flex-2.5.4 on
Linux.
Linux.
*******************************************************/
*******************************************************/
%option nostdinit
%option 8bit
%option warn
%option pointer
%option never-interactive
%option nodefault
%option noinput
%option nounput
%option noyywrap
%option noyy_scan_buffer
%option noyy_scan_bytes
%option noyy_scan_string
%{
%{
#define YYSTYPE que_node_t*
#define YYSTYPE que_node_t*
...
@@ -45,18 +58,47 @@ Linux.
...
@@ -45,18 +58,47 @@ Linux.
#include "mem0mem.h"
#include "mem0mem.h"
#include "os0proc.h"
#include "os0proc.h"
#define isatty(A) 0
#define malloc(A) mem_alloc(A)
#define malloc(A) mem_alloc(A)
#define free(A) mem_free(A)
#define free(A) mem_free(A)
#define realloc(P, A) mem_realloc(P, A, __FILE__, __LINE__)
#define realloc(P, A) mem_realloc(P, A, __FILE__, __LINE__)
#define exit(A) ut_
a(0)
#define exit(A) ut_
error
#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)
/* String buffer for removing quotes */
static ulint stringbuf_len_alloc = 0; /* Allocated length */
static ulint stringbuf_len = 0; /* Current length */
static char* stringbuf; /* Start of buffer */
/* Appends a string to the buffer. */
static
void
string_append(
/*==========*/
const char* str, /* in: string to be appended */
ulint len) /* in: length of the string */
{
if (stringbuf_len + len > stringbuf_len_alloc) {
if (stringbuf_len_alloc == 0) {
stringbuf_len_alloc++;
}
while (stringbuf_len + len > stringbuf_len_alloc) {
stringbuf_len_alloc <<= 1;
}
stringbuf = stringbuf
? realloc(stringbuf, stringbuf_len_alloc)
: malloc(stringbuf_len_alloc);
}
memcpy(stringbuf + stringbuf_len, str, len);
stringbuf_len += len;
}
%}
%}
DIGIT [0-9]
DIGIT [0-9]
ID [a-z_A-Z][a-z_A-Z0-9]*
ID [a-z_A-Z][a-z_A-Z0-9]*
%x comment
%x comment
%x quoted
%%
%%
{DIGIT}+ {
{DIGIT}+ {
...
@@ -71,13 +113,19 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
...
@@ -71,13 +113,19 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
return(PARS_FLOAT_LIT);
return(PARS_FLOAT_LIT);
}
}
"\'"[^\']*"\'" {
"'" {
/* Remove the single quotes around the string */
BEGIN(quoted);
stringbuf_len = 0;
yylval = sym_tab_add_str_lit(pars_sym_tab_global,
}
(byte*)yytext,
<quoted>[^\']+ string_append(yytext, yyleng);
ut_strlen(yytext));
<quoted>"'"+ { string_append(yytext, yyleng / 2);
if (yyleng % 2) {
BEGIN(INITIAL);
yylval = sym_tab_add_str_lit(
pars_sym_tab_global,
stringbuf, stringbuf_len);
return(PARS_STR_LIT);
return(PARS_STR_LIT);
}
}
}
"NULL" {
"NULL" {
...
@@ -89,7 +137,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
...
@@ -89,7 +137,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
"SQL" {
"SQL" {
/* 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,
(byte*)"\'SQL\'", 5
);
yytext, yyleng
);
return(PARS_SQL_TOKEN);
return(PARS_SQL_TOKEN);
}
}
...
@@ -485,17 +533,16 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
...
@@ -485,17 +533,16 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
"/*" BEGIN(comment); /* eat up comment */
"/*" BEGIN(comment); /* eat up comment */
<comment>[^*\n]*
<comment>[^*]*
<comment>[^*\n]*\n
<comment>"*"+[^*/]*
<comment>"*"+[^*/\n]*
<comment>"*"+[^*/\n]*\n
<comment>"*"+"/" BEGIN(INITIAL);
<comment>"*"+"/" BEGIN(INITIAL);
[ \t\n]+ /* eat up whitespace */
[ \t\n]+ /* eat up whitespace */
. {
. {
printf("Unrecognized character: %s\n", yytext);
fprintf(stderr,"Unrecognized character: %02x\n",
*yytext);
ut_error;
ut_error;
...
...
innobase/pars/pars0pars.c
View file @
cfae1666
...
@@ -1707,17 +1707,6 @@ pars_get_lex_chars(
...
@@ -1707,17 +1707,6 @@ pars_get_lex_chars(
pars_sym_tab_global
->
next_char_pos
+=
len
;
pars_sym_tab_global
->
next_char_pos
+=
len
;
}
}
/*****************************************************************
Instructs the lexical analyzer to stop when it receives the EOF integer. */
int
yywrap
(
void
)
/*========*/
/* out: returns TRUE */
{
return
(
1
);
}
/*****************************************************************
/*****************************************************************
Called by yyparse on error. */
Called by yyparse on error. */
...
...
innobase/pars/pars0sym.c
View file @
cfae1666
...
@@ -127,18 +127,12 @@ sym_tab_add_str_lit(
...
@@ -127,18 +127,12 @@ sym_tab_add_str_lit(
/*================*/
/*================*/
/* out: symbol table node */
/* out: symbol table node */
sym_tab_t
*
sym_tab
,
/* in: symbol table */
sym_tab_t
*
sym_tab
,
/* in: symbol table */
byte
*
str
,
/* in: string starting with a single
byte
*
str
,
/* in: string with no quotes around
quote; the string literal will
it */
extend to the next single quote, but
the quotes are not included in it */
ulint
len
)
/* in: string length */
ulint
len
)
/* in: string length */
{
{
sym_node_t
*
node
;
sym_node_t
*
node
;
byte
*
data
;
byte
*
data
;
ulint
i
;
ut_a
(
len
>
1
);
ut_a
(
str
[
0
]
==
'\''
);
node
=
mem_heap_alloc
(
sym_tab
->
heap
,
sizeof
(
sym_node_t
));
node
=
mem_heap_alloc
(
sym_tab
->
heap
,
sizeof
(
sym_node_t
));
...
@@ -151,23 +145,14 @@ sym_tab_add_str_lit(
...
@@ -151,23 +145,14 @@ sym_tab_add_str_lit(
dtype_set
(
&
(
node
->
common
.
val
.
type
),
DATA_VARCHAR
,
DATA_ENGLISH
,
0
,
0
);
dtype_set
(
&
(
node
->
common
.
val
.
type
),
DATA_VARCHAR
,
DATA_ENGLISH
,
0
,
0
);
for
(
i
=
1
;;
i
++
)
{
if
(
len
)
{
ut_a
(
i
<
len
);
data
=
mem_heap_alloc
(
sym_tab
->
heap
,
len
);
ut_memcpy
(
data
,
str
,
len
);
if
(
str
[
i
]
==
'\''
)
{
break
;
}
}
if
(
i
>
1
)
{
data
=
mem_heap_alloc
(
sym_tab
->
heap
,
i
-
1
);
ut_memcpy
(
data
,
str
+
1
,
i
-
1
);
}
else
{
}
else
{
data
=
NULL
;
data
=
NULL
;
}
}
dfield_set_data
(
&
(
node
->
common
.
val
),
data
,
i
-
1
);
dfield_set_data
(
&
(
node
->
common
.
val
),
data
,
len
);
node
->
common
.
val_buf_size
=
0
;
node
->
common
.
val_buf_size
=
0
;
node
->
prefetch_buf
=
NULL
;
node
->
prefetch_buf
=
NULL
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment