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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
e8b80a5a
Commit
e8b80a5a
authored
May 08, 2006
by
osku
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add support for bound ids in InnoDB's SQL parser.
parent
d35c4375
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
643 additions
and
488 deletions
+643
-488
include/pars0pars.h
include/pars0pars.h
+29
-0
include/pars0sym.h
include/pars0sym.h
+10
-0
include/pars0types.h
include/pars0types.h
+1
-0
pars/lexyy.c
pars/lexyy.c
+498
-488
pars/pars0lex.l
pars/pars0lex.l
+8
-0
pars/pars0pars.c
pars/pars0pars.c
+58
-0
pars/pars0sym.c
pars/pars0sym.c
+39
-0
No files found.
include/pars0pars.h
View file @
e8b80a5a
...
...
@@ -531,6 +531,16 @@ pars_info_add_function(
pars_user_func_cb_t
func
,
/* in: function address */
void
*
arg
);
/* in: user-supplied argument */
/********************************************************************
Add bound id. */
void
pars_info_add_id
(
/*=============*/
pars_info_t
*
info
,
/* in: info struct */
const
char
*
name
,
/* in: name */
const
char
*
id
);
/* in: id */
/********************************************************************
Get user function with the given name.*/
...
...
@@ -553,6 +563,17 @@ pars_info_get_bound_lit(
pars_info_t
*
info
,
/* in: info struct */
const
char
*
name
);
/* in: bound literal name to find */
/********************************************************************
Get bound id with the given name.*/
pars_bound_id_t
*
pars_info_get_bound_id
(
/*===================*/
/* out: bound id, or NULL if not
found */
pars_info_t
*
info
,
/* in: info struct */
const
char
*
name
);
/* in: bound id name to find */
/* Extra information supplied for pars_sql(). */
struct
pars_info_struct
{
...
...
@@ -562,6 +583,8 @@ struct pars_info_struct {
(pars_user_func_t*) */
ib_vector_t
*
bound_lits
;
/* bound literals, or NULL
(pars_bound_lit_t*) */
ib_vector_t
*
bound_ids
;
/* bound ids, or NULL
(pars_bound_id_t*) */
ibool
graph_owns_us
;
/* if TRUE (which is the default),
que_graph_free() will free us */
...
...
@@ -583,6 +606,12 @@ struct pars_bound_lit_struct {
ulint
prtype
;
/* precise type, e.g. DATA_UNSIGNED */
};
/* Bound id. */
struct
pars_bound_id_struct
{
const
char
*
name
;
/* name */
const
char
*
id
;
/* id */
};
/* Struct used to denote a reserved word in a parsing tree */
struct
pars_res_word_struct
{
int
code
;
/* the token code for the reserved word from
...
...
include/pars0sym.h
View file @
e8b80a5a
...
...
@@ -82,6 +82,16 @@ sym_tab_add_id(
byte
*
name
,
/* in: identifier name */
ulint
len
);
/* in: identifier length */
/**********************************************************************
Add a bound identifier to a symbol table. */
sym_node_t
*
sym_tab_add_bound_id
(
/*===========*/
/* out: symbol table node */
sym_tab_t
*
sym_tab
,
/* in: symbol table */
const
char
*
name
);
/* in: name of bound id */
#define SYM_CLUST_FIELD_NO 0
#define SYM_SEC_FIELD_NO 1
...
...
include/pars0types.h
View file @
e8b80a5a
...
...
@@ -12,6 +12,7 @@ Created 1/11/1998 Heikki Tuuri
typedef
struct
pars_info_struct
pars_info_t
;
typedef
struct
pars_user_func_struct
pars_user_func_t
;
typedef
struct
pars_bound_lit_struct
pars_bound_lit_t
;
typedef
struct
pars_bound_id_struct
pars_bound_id_t
;
typedef
struct
sym_node_struct
sym_node_t
;
typedef
struct
sym_tab_struct
sym_tab_t
;
typedef
struct
pars_res_word_struct
pars_res_word_t
;
...
...
pars/lexyy.c
View file @
e8b80a5a
...
...
@@ -356,8 +356,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
#define YY_NUM_RULES 11
6
#define YY_END_OF_BUFFER 11
7
#define YY_NUM_RULES 11
7
#define YY_END_OF_BUFFER 11
8
/* This struct is not used in this scanner,
but its presence is necessary. */
struct
yy_trans_info
...
...
@@ -365,51 +365,51 @@ struct yy_trans_info
flex_int32_t
yy_verify
;
flex_int32_t
yy_nxt
;
};
static
yyconst
flex_int16_t
yy_accept
[
39
4
]
=
static
yyconst
flex_int16_t
yy_accept
[
39
6
]
=
{
0
,
0
,
0
,
11
1
,
111
,
0
,
0
,
0
,
0
,
117
,
115
,
11
4
,
114
,
7
,
106
,
4
,
95
,
101
,
104
,
102
,
99
,
10
3
,
115
,
105
,
1
,
115
,
100
,
98
,
96
,
97
,
109
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
107
,
108
,
1
11
,
112
,
5
,
6
,
8
,
9
,
114
,
90
,
110
,
2
,
1
,
3
,
91
,
92
,
94
,
93
,
89
,
89
,
89
,
89
,
89
,
89
,
44
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
27
,
16
,
24
,
89
,
89
,
89
,
89
,
54
,
61
,
89
,
13
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
111
,
112
,
112
,
113
,
5
,
6
,
8
,
9
,
2
,
12
,
45
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
26
,
89
,
89
,
89
,
40
,
89
,
89
,
89
,
89
,
20
,
89
,
89
,
14
,
89
,
89
,
89
,
17
,
89
,
89
,
89
,
89
,
89
,
80
,
89
,
8
9
,
89
,
51
,
11
,
89
,
35
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
19
,
23
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
46
,
89
,
89
,
29
,
89
,
87
,
89
,
8
9
,
38
,
89
,
89
,
89
,
89
,
89
,
48
,
89
,
31
,
89
,
10
,
64
,
89
,
89
,
89
,
42
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
28
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
85
,
89
,
25
,
89
,
66
,
89
,
89
,
89
,
89
,
36
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
30
,
65
,
22
,
89
,
57
,
89
,
75
,
89
,
89
,
89
,
43
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
56
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
39
,
32
,
79
,
18
,
89
,
83
,
74
,
89
,
55
,
89
,
63
,
89
,
52
,
89
,
89
,
89
,
47
,
89
,
76
,
89
,
78
,
89
,
89
,
33
,
89
,
89
,
89
,
34
,
72
,
89
,
89
,
89
,
89
,
58
,
89
,
50
,
49
,
89
,
89
,
89
,
53
,
62
,
89
,
89
,
89
,
21
,
89
,
89
,
73
,
81
,
89
,
89
,
77
,
89
,
68
,
89
,
89
,
89
,
89
,
89
,
37
,
89
,
88
,
67
,
89
,
84
,
89
,
89
,
89
,
86
,
89
,
59
,
89
,
89
,
15
,
89
,
70
,
69
,
89
,
41
,
89
,
82
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
89
,
71
,
89
,
89
,
89
,
89
,
89
,
89
,
60
,
0
0
,
0
,
11
2
,
112
,
0
,
0
,
0
,
0
,
118
,
116
,
11
5
,
115
,
8
,
116
,
107
,
5
,
96
,
102
,
105
,
103
,
10
0
,
104
,
116
,
106
,
1
,
116
,
101
,
99
,
97
,
98
,
110
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
108
,
1
09
,
112
,
113
,
6
,
7
,
9
,
10
,
115
,
4
,
91
,
111
,
2
,
1
,
3
,
92
,
93
,
95
,
94
,
90
,
90
,
90
,
90
,
90
,
90
,
45
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
28
,
17
,
25
,
90
,
90
,
90
,
90
,
55
,
62
,
90
,
14
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
112
,
113
,
113
,
114
,
6
,
7
,
9
,
10
,
2
,
13
,
46
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
27
,
90
,
90
,
90
,
41
,
90
,
90
,
90
,
90
,
21
,
90
,
90
,
15
,
90
,
90
,
90
,
18
,
90
,
90
,
90
,
90
,
90
,
8
1
,
90
,
90
,
90
,
52
,
12
,
90
,
36
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
20
,
24
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
47
,
90
,
90
,
30
,
90
,
8
8
,
90
,
90
,
39
,
90
,
90
,
90
,
90
,
90
,
49
,
90
,
32
,
90
,
11
,
65
,
90
,
90
,
90
,
43
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
29
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
86
,
90
,
26
,
90
,
67
,
90
,
90
,
90
,
90
,
37
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
31
,
66
,
23
,
90
,
58
,
90
,
76
,
90
,
90
,
90
,
44
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
57
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
40
,
33
,
80
,
19
,
90
,
84
,
75
,
90
,
56
,
90
,
64
,
90
,
53
,
90
,
90
,
90
,
48
,
90
,
77
,
90
,
79
,
90
,
90
,
34
,
90
,
90
,
90
,
35
,
73
,
90
,
90
,
90
,
90
,
59
,
90
,
51
,
50
,
90
,
90
,
90
,
54
,
63
,
90
,
90
,
90
,
22
,
90
,
90
,
74
,
82
,
90
,
90
,
78
,
90
,
69
,
90
,
90
,
90
,
90
,
90
,
38
,
90
,
89
,
68
,
90
,
85
,
90
,
90
,
90
,
87
,
90
,
60
,
90
,
90
,
16
,
90
,
71
,
70
,
90
,
42
,
90
,
83
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
90
,
72
,
90
,
90
,
90
,
90
,
90
,
90
,
61
,
0
}
;
...
...
@@ -418,17 +418,17 @@ static yyconst flex_int32_t yy_ec[256] =
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
1
,
4
,
1
,
1
,
5
,
1
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
15
,
15
,
1
5
,
15
,
15
,
15
,
15
,
15
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
1
,
22
,
23
,
24
,
25
,
26
,
27
,
2
8
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
3
8
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
31
,
1
,
1
,
1
,
1
,
4
7
,
1
,
31
,
31
,
31
,
31
,
3
1
,
31
,
31
,
31
,
31
,
31
,
31
,
31
,
31
,
31
,
3
1
,
31
,
31
,
31
,
31
,
31
,
31
,
31
,
31
,
31
,
3
1
,
31
,
48
,
1
,
49
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
1
,
4
,
1
,
5
,
6
,
1
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
16
,
16
,
1
6
,
16
,
16
,
16
,
16
,
16
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
1
,
23
,
24
,
25
,
26
,
27
,
28
,
2
9
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
3
9
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
32
,
1
,
1
,
1
,
1
,
4
8
,
1
,
32
,
32
,
32
,
32
,
3
2
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
3
2
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
3
2
,
32
,
49
,
1
,
50
,
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
,
...
...
@@ -445,228 +445,228 @@ static yyconst flex_int32_t yy_ec[256] =
1
,
1
,
1
,
1
,
1
}
;
static
yyconst
flex_int32_t
yy_meta
[
5
0
]
=
static
yyconst
flex_int32_t
yy_meta
[
5
1
]
=
{
0
,
1
,
1
,
1
,
2
,
1
,
3
,
1
,
1
,
4
,
1
,
1
,
1
,
1
,
1
,
5
,
1
,
1
,
1
,
6
,
1
,
1
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
1
,
1
,
1
,
2
,
1
,
1
,
3
,
1
,
1
,
4
,
1
,
1
,
1
,
1
,
1
,
5
,
1
,
1
,
1
,
6
,
1
,
1
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
1
,
1
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
1
,
1
}
;
static
yyconst
flex_int16_t
yy_base
[
40
3
]
=
static
yyconst
flex_int16_t
yy_base
[
40
6
]
=
{
0
,
0
,
0
,
43
4
,
433
,
435
,
434
,
435
,
434
,
437
,
444
,
4
8
,
50
,
444
,
444
,
444
,
444
,
444
,
444
,
444
,
444
,
44
4
,
423
,
426
,
41
,
415
,
444
,
38
,
444
,
414
,
444
,
20
,
33
,
32
,
46
,
40
,
44
,
0
,
54
,
52
,
48
,
60
,
393
,
65
,
66
,
74
,
27
,
409
,
69
,
444
,
444
,
0
,
97
,
0
,
424
,
0
,
425
,
111
,
444
,
444
,
413
,
54
,
408
,
444
,
444
,
444
,
444
,
0
,
401
,
69
,
397
,
389
,
387
,
0
,
400
,
79
,
82
,
395
,
381
,
94
,
379
,
392
,
377
,
391
,
385
,
373
,
377
,
373
,
375
,
375
,
0
,
82
,
0
,
374
,
372
,
366
,
373
,
0
,
0
,
379
,
379
,
3
62
,
89
,
98
,
377
,
93
,
95
,
368
,
106
,
360
,
37
6
,
3
72
,
350
,
101
,
371
,
362
,
112
,
355
,
0
,
134
,
135
,
444
,
0
,
387
,
0
,
388
,
376
,
0
,
0
,
364
,
359
,
36
6
,
364
,
347
,
345
,
344
,
349
,
106
,
347
,
359
,
93
,
3
47
,
353
,
354
,
336
,
336
,
121
,
0
,
334
,
350
,
351
,
0
,
338
,
347
,
344
,
119
,
126
,
341
,
331
,
340
,
333
,
3
30
,
338
,
0
,
328
,
338
,
336
,
327
,
317
,
311
,
324
,
3
09
,
329
,
0
,
0
,
314
,
0
,
328
,
319
,
316
,
13
0
,
31
2
,
319
,
326
,
305
,
307
,
312
,
312
,
304
,
307
,
302
,
0
,
0
,
314
,
298
,
308
,
315
,
306
,
294
,
293
,
307
,
29
6
,
309
,
289
,
0
,
299
,
281
,
0
,
300
,
0
,
297
,
284
,
0
,
283
,
278
,
283
,
282
,
292
,
0
,
278
,
0
,
2
82
,
0
,
0
,
278
,
275
,
289
,
0
,
274
,
274
,
272
,
2
88
,
273
,
285
,
267
,
285
,
280
,
0
,
275
,
275
,
261
,
2
60
,
273
,
259
,
273
,
272
,
271
,
0
,
255
,
0
,
249
,
0
,
2
68
,
252
,
251
,
251
,
0
,
264
,
254
,
249
,
248
,
2
60
,
250
,
249
,
0
,
0
,
0
,
253
,
0
,
241
,
0
,
2
55
,
251
,
237
,
0
,
251
,
252
,
235
,
240
,
233
,
25
1
,
23
3
,
230
,
231
,
228
,
0
,
233
,
245
,
232
,
239
,
229
,
2
37
,
222
,
0
,
0
,
0
,
214
,
221
,
0
,
0
,
218
,
0
,
21
7
,
0
,
231
,
0
,
232
,
219
,
218
,
0
,
214
,
0
,
21
7
,
0
,
209
,
211
,
0
,
210
,
224
,
217
,
0
,
0
,
220
,
223
,
205
,
220
,
0
,
216
,
0
,
0
,
20
0
,
214
,
213
,
0
,
0
,
197
,
196
,
201
,
0
,
210
,
195
,
0
,
0
,
201
,
197
,
0
,
192
,
0
,
204
,
204
,
192
,
20
2
,
191
,
0
,
178
,
0
,
0
,
198
,
0
,
182
,
176
,
18
2
,
0
,
173
,
0
,
178
,
191
,
0
,
190
,
0
,
0
,
181
,
0
,
185
,
0
,
172
,
172
,
178
,
164
,
187
,
17
5
,
1
74
,
154
,
125
,
116
,
0
,
127
,
133
,
124
,
121
,
117
,
1
09
,
0
,
444
,
165
,
171
,
177
,
179
,
145
,
185
,
191
,
1
97
,
203
0
,
0
,
43
5
,
434
,
436
,
435
,
437
,
436
,
439
,
446
,
4
9
,
51
,
446
,
0
,
446
,
446
,
446
,
446
,
446
,
446
,
44
6
,
446
,
424
,
427
,
41
,
416
,
446
,
38
,
446
,
415
,
446
,
20
,
33
,
32
,
46
,
40
,
44
,
0
,
54
,
52
,
48
,
60
,
394
,
65
,
66
,
74
,
27
,
410
,
69
,
446
,
446
,
0
,
97
,
0
,
425
,
0
,
427
,
112
,
0
,
446
,
446
,
414
,
54
,
409
,
446
,
446
,
446
,
446
,
0
,
402
,
69
,
398
,
390
,
388
,
0
,
401
,
79
,
82
,
396
,
382
,
94
,
380
,
393
,
378
,
392
,
386
,
374
,
378
,
374
,
376
,
376
,
0
,
82
,
0
,
375
,
373
,
367
,
374
,
0
,
0
,
3
80
,
380
,
363
,
89
,
98
,
378
,
93
,
95
,
369
,
10
6
,
3
61
,
377
,
373
,
351
,
101
,
372
,
363
,
112
,
356
,
0
,
134
,
135
,
446
,
0
,
388
,
0
,
390
,
377
,
0
,
0
,
36
5
,
360
,
367
,
365
,
348
,
346
,
345
,
350
,
106
,
348
,
3
60
,
93
,
348
,
354
,
355
,
337
,
337
,
121
,
0
,
335
,
351
,
352
,
0
,
339
,
348
,
345
,
119
,
126
,
342
,
332
,
3
41
,
334
,
331
,
339
,
0
,
329
,
339
,
337
,
328
,
318
,
3
12
,
325
,
310
,
330
,
0
,
0
,
315
,
0
,
329
,
32
0
,
31
7
,
130
,
313
,
320
,
327
,
306
,
308
,
313
,
313
,
305
,
308
,
303
,
0
,
0
,
315
,
299
,
309
,
316
,
307
,
295
,
29
4
,
308
,
297
,
310
,
290
,
0
,
300
,
282
,
0
,
301
,
0
,
298
,
285
,
0
,
284
,
279
,
284
,
283
,
293
,
0
,
2
79
,
0
,
283
,
0
,
0
,
279
,
276
,
290
,
0
,
275
,
2
75
,
273
,
289
,
274
,
286
,
268
,
286
,
281
,
0
,
276
,
2
76
,
262
,
261
,
274
,
260
,
274
,
273
,
272
,
0
,
256
,
0
,
2
50
,
0
,
269
,
253
,
252
,
252
,
0
,
265
,
255
,
2
50
,
249
,
261
,
251
,
250
,
0
,
0
,
0
,
254
,
0
,
2
42
,
0
,
256
,
252
,
238
,
0
,
252
,
253
,
236
,
24
1
,
23
4
,
252
,
234
,
231
,
232
,
229
,
0
,
234
,
246
,
233
,
2
40
,
230
,
238
,
223
,
0
,
0
,
0
,
215
,
222
,
0
,
0
,
21
9
,
0
,
218
,
0
,
232
,
0
,
233
,
220
,
219
,
0
,
21
5
,
0
,
218
,
0
,
210
,
212
,
0
,
211
,
225
,
218
,
0
,
0
,
221
,
224
,
206
,
221
,
0
,
217
,
0
,
0
,
201
,
215
,
214
,
0
,
0
,
198
,
197
,
202
,
0
,
211
,
196
,
0
,
0
,
202
,
198
,
0
,
193
,
0
,
205
,
20
5
,
193
,
203
,
192
,
0
,
179
,
0
,
0
,
199
,
0
,
18
3
,
177
,
183
,
0
,
174
,
0
,
179
,
192
,
0
,
191
,
0
,
0
,
182
,
0
,
186
,
0
,
173
,
173
,
179
,
16
5
,
1
88
,
180
,
179
,
165
,
150
,
117
,
0
,
129
,
135
,
125
,
1
22
,
118
,
110
,
0
,
446
,
166
,
172
,
178
,
151
,
180
,
1
46
,
186
,
192
,
198
,
204
}
;
static
yyconst
flex_int16_t
yy_def
[
40
3
]
=
static
yyconst
flex_int16_t
yy_def
[
40
6
]
=
{
0
,
39
3
,
1
,
394
,
394
,
395
,
395
,
396
,
396
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
397
,
393
,
393
,
393
,
393
,
393
,
39
8
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
393
,
393
,
39
9
,
400
,
401
,
393
,
402
,
393
,
393
,
393
,
393
,
393
,
39
3
,
397
,
393
,
393
,
393
,
393
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
399
,
400
,
400
,
393
,
401
,
393
,
402
,
393
,
393
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
398
,
0
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
39
5
,
1
,
396
,
396
,
397
,
397
,
398
,
398
,
395
,
395
,
39
5
,
395
,
395
,
399
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
400
,
395
,
395
,
395
,
395
,
39
5
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
395
,
39
5
,
402
,
403
,
404
,
395
,
405
,
395
,
395
,
399
,
395
,
39
5
,
395
,
395
,
400
,
395
,
395
,
395
,
395
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
402
,
403
,
403
,
395
,
404
,
395
,
405
,
395
,
395
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
401
,
0
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
}
;
static
yyconst
flex_int16_t
yy_nxt
[
49
4
]
=
static
yyconst
flex_int16_t
yy_nxt
[
49
7
]
=
{
0
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
3
7
,
38
,
3
7
,
37
,
39
,
37
,
40
,
41
,
42
,
37
,
43
,
44
,
45
,
46
,
47
,
48
,
37
,
37
,
37
,
49
,
50
,
57
,
5
7
,
57
,
57
,
60
,
68
,
61
,
64
,
65
,
70
,
69
,
7
4
,
113
,
71
,
114
,
75
,
72
,
60
,
76
,
61
,
85
,
77
,
79
,
82
,
78
,
83
,
80
,
86
,
93
,
73
,
87
,
90
,
81
,
88
,
95
,
84
,
89
,
97
,
94
,
91
,
96
,
103
,
106
,
128
,
92
,
98
,
110
,
99
,
116
,
100
,
104
,
10
5
,
101
,
111
,
107
,
117
,
120
,
154
,
108
,
129
,
112
,
1
21
,
109
,
57
,
57
,
134
,
136
,
137
,
141
,
164
,
166
,
1
35
,
155
,
156
,
138
,
165
,
170
,
142
,
172
,
175
,
196
,
1
81
,
200
,
201
,
143
,
167
,
173
,
171
,
185
,
168
,
176
,
1
82
,
186
,
393
,
120
,
215
,
197
,
207
,
393
,
121
,
67
,
208
,
217
,
238
,
239
,
392
,
391
,
390
,
389
,
388
,
216
,
387
,
218
,
386
,
385
,
240
,
51
,
51
,
51
,
51
,
51
,
5
1
,
53
,
53
,
53
,
53
,
53
,
53
,
55
,
55
,
55
,
5
5
,
55
,
55
,
62
,
62
,
118
,
118
,
118
,
384
,
118
,
1
18
,
119
,
119
,
119
,
119
,
119
,
119
,
122
,
122
,
383
,
122
,
122
,
122
,
124
,
382
,
124
,
124
,
124
,
124
,
381
,
38
0
,
379
,
378
,
377
,
376
,
375
,
374
,
373
,
372
,
371
,
37
0
,
369
,
368
,
367
,
366
,
365
,
364
,
363
,
362
,
361
,
36
0
,
359
,
358
,
357
,
356
,
355
,
354
,
353
,
352
,
351
,
35
0
,
349
,
348
,
347
,
346
,
345
,
344
,
343
,
342
,
341
,
34
0
,
339
,
338
,
337
,
336
,
335
,
334
,
333
,
332
,
331
,
33
0
,
329
,
328
,
327
,
326
,
325
,
324
,
323
,
322
,
321
,
32
0
,
319
,
318
,
317
,
316
,
315
,
314
,
313
,
312
,
311
,
31
0
,
309
,
308
,
307
,
306
,
305
,
304
,
303
,
302
,
301
,
30
0
,
299
,
298
,
297
,
296
,
295
,
294
,
293
,
292
,
291
,
29
0
,
289
,
288
,
287
,
286
,
285
,
284
,
283
,
282
,
281
,
28
0
,
279
,
278
,
277
,
276
,
275
,
274
,
273
,
272
,
271
,
27
0
,
269
,
268
,
267
,
266
,
265
,
264
,
263
,
262
,
261
,
26
0
,
259
,
258
,
257
,
256
,
255
,
254
,
253
,
252
,
251
,
25
0
,
249
,
248
,
247
,
246
,
245
,
244
,
243
,
242
,
241
,
2
37
,
236
,
235
,
234
,
233
,
232
,
231
,
230
,
229
,
228
,
2
27
,
226
,
225
,
224
,
223
,
222
,
221
,
220
,
219
,
214
,
2
13
,
212
,
211
,
210
,
209
,
206
,
205
,
204
,
203
,
202
,
199
,
198
,
195
,
194
,
193
,
192
,
191
,
190
,
189
,
188
,
1
26
,
125
,
123
,
187
,
184
,
183
,
180
,
179
,
178
,
177
,
1
74
,
169
,
163
,
162
,
161
,
160
,
159
,
158
,
157
,
153
,
15
2
,
151
,
150
,
149
,
148
,
147
,
146
,
145
,
144
,
140
,
1
39
,
133
,
132
,
131
,
130
,
127
,
393
,
126
,
125
,
123
,
1
15
,
102
,
66
,
63
,
59
,
58
,
393
,
56
,
56
,
54
,
5
4
,
52
,
52
,
9
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
3
8
,
38
,
3
9
,
38
,
38
,
40
,
38
,
41
,
42
,
43
,
38
,
44
,
45
,
46
,
47
,
48
,
49
,
38
,
38
,
38
,
50
,
51
,
5
8
,
58
,
58
,
58
,
62
,
70
,
63
,
66
,
67
,
72
,
7
1
,
76
,
115
,
73
,
116
,
77
,
74
,
62
,
78
,
63
,
87
,
79
,
81
,
84
,
80
,
85
,
82
,
88
,
95
,
75
,
89
,
92
,
83
,
90
,
97
,
86
,
91
,
99
,
96
,
93
,
98
,
105
,
108
,
130
,
94
,
100
,
112
,
101
,
118
,
102
,
10
6
,
107
,
103
,
113
,
109
,
119
,
122
,
156
,
110
,
131
,
1
14
,
123
,
111
,
58
,
58
,
136
,
138
,
139
,
143
,
166
,
1
68
,
137
,
157
,
158
,
140
,
167
,
172
,
144
,
174
,
177
,
1
98
,
183
,
202
,
203
,
145
,
169
,
175
,
173
,
187
,
170
,
1
78
,
184
,
188
,
395
,
122
,
217
,
199
,
209
,
395
,
123
,
69
,
210
,
219
,
240
,
241
,
59
,
394
,
393
,
392
,
391
,
218
,
390
,
220
,
389
,
388
,
242
,
52
,
52
,
52
,
52
,
5
2
,
52
,
54
,
54
,
54
,
54
,
54
,
54
,
56
,
56
,
5
6
,
56
,
56
,
56
,
64
,
64
,
120
,
120
,
120
,
387
,
1
20
,
120
,
121
,
121
,
121
,
121
,
121
,
121
,
124
,
124
,
386
,
124
,
124
,
124
,
126
,
385
,
126
,
126
,
126
,
126
,
38
4
,
383
,
382
,
381
,
380
,
379
,
378
,
377
,
376
,
375
,
37
4
,
373
,
372
,
371
,
370
,
369
,
368
,
367
,
366
,
365
,
36
4
,
363
,
362
,
361
,
360
,
359
,
358
,
357
,
356
,
355
,
35
4
,
353
,
352
,
351
,
350
,
349
,
348
,
347
,
346
,
345
,
34
4
,
343
,
342
,
341
,
340
,
339
,
338
,
337
,
336
,
335
,
33
4
,
333
,
332
,
331
,
330
,
329
,
328
,
327
,
326
,
325
,
32
4
,
323
,
322
,
321
,
320
,
319
,
318
,
317
,
316
,
315
,
31
4
,
313
,
312
,
311
,
310
,
309
,
308
,
307
,
306
,
305
,
30
4
,
303
,
302
,
301
,
300
,
299
,
298
,
297
,
296
,
295
,
29
4
,
293
,
292
,
291
,
290
,
289
,
288
,
287
,
286
,
285
,
28
4
,
283
,
282
,
281
,
280
,
279
,
278
,
277
,
276
,
275
,
27
4
,
273
,
272
,
271
,
270
,
269
,
268
,
267
,
266
,
265
,
26
4
,
263
,
262
,
261
,
260
,
259
,
258
,
257
,
256
,
255
,
25
4
,
253
,
252
,
251
,
250
,
249
,
248
,
247
,
246
,
245
,
2
44
,
243
,
239
,
238
,
237
,
236
,
235
,
234
,
233
,
232
,
2
31
,
230
,
229
,
228
,
227
,
226
,
225
,
224
,
223
,
222
,
2
21
,
216
,
215
,
214
,
213
,
212
,
211
,
208
,
207
,
206
,
205
,
204
,
201
,
200
,
197
,
196
,
195
,
194
,
193
,
192
,
1
91
,
190
,
128
,
127
,
125
,
189
,
186
,
185
,
182
,
181
,
1
80
,
179
,
176
,
171
,
165
,
164
,
163
,
162
,
161
,
160
,
15
9
,
155
,
154
,
153
,
152
,
151
,
150
,
149
,
148
,
147
,
1
46
,
142
,
141
,
135
,
134
,
133
,
132
,
129
,
395
,
128
,
1
27
,
125
,
117
,
104
,
68
,
65
,
61
,
60
,
395
,
57
,
5
7
,
55
,
55
,
53
,
53
,
9
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
}
;
static
yyconst
flex_int16_t
yy_chk
[
49
4
]
=
static
yyconst
flex_int16_t
yy_chk
[
49
7
]
=
{
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
,
11
,
1
2
,
12
,
24
,
31
,
24
,
27
,
27
,
32
,
31
,
3
3
,
46
,
32
,
46
,
33
,
32
,
61
,
33
,
61
,
36
,
3
3
,
34
,
35
,
33
,
35
,
34
,
36
,
39
,
32
,
36
,
3
8
,
34
,
36
,
40
,
35
,
36
,
41
,
39
,
38
,
40
,
4
3
,
44
,
69
,
38
,
41
,
45
,
41
,
48
,
41
,
43
,
4
3
,
41
,
45
,
44
,
48
,
52
,
91
,
44
,
69
,
45
,
52
,
44
,
57
,
57
,
75
,
76
,
76
,
79
,
102
,
103
,
75
,
91
,
91
,
76
,
102
,
105
,
79
,
106
,
108
,
137
,
1
13
,
140
,
140
,
79
,
103
,
106
,
105
,
116
,
103
,
108
,
11
3
,
116
,
119
,
120
,
155
,
137
,
146
,
119
,
120
,
398
,
146
,
156
,
180
,
180
,
391
,
390
,
389
,
388
,
387
,
155
,
386
,
156
,
384
,
383
,
180
,
394
,
394
,
394
,
394
,
394
,
39
4
,
395
,
395
,
395
,
395
,
395
,
395
,
396
,
396
,
396
,
39
6
,
396
,
396
,
397
,
397
,
399
,
399
,
399
,
382
,
399
,
399
,
400
,
400
,
400
,
400
,
400
,
400
,
401
,
401
,
381
,
401
,
401
,
401
,
402
,
380
,
402
,
402
,
402
,
402
,
379
,
3
78
,
377
,
376
,
375
,
373
,
371
,
368
,
366
,
365
,
363
,
36
1
,
360
,
359
,
357
,
354
,
352
,
351
,
350
,
349
,
348
,
3
46
,
344
,
343
,
340
,
339
,
337
,
336
,
335
,
332
,
331
,
33
0
,
327
,
325
,
324
,
323
,
322
,
319
,
318
,
317
,
315
,
31
4
,
312
,
310
,
308
,
307
,
306
,
304
,
302
,
300
,
297
,
296
,
292
,
291
,
290
,
289
,
288
,
287
,
286
,
284
,
283
,
28
2
,
281
,
280
,
279
,
278
,
277
,
276
,
275
,
273
,
272
,
27
1
,
269
,
267
,
263
,
262
,
261
,
260
,
259
,
258
,
257
,
2
55
,
254
,
253
,
252
,
250
,
248
,
246
,
245
,
244
,
243
,
24
2
,
241
,
240
,
239
,
238
,
236
,
235
,
234
,
233
,
232
,
23
1
,
230
,
229
,
228
,
226
,
225
,
224
,
221
,
219
,
217
,
2
16
,
215
,
214
,
213
,
211
,
210
,
208
,
206
,
205
,
203
,
20
2
,
201
,
200
,
199
,
198
,
197
,
196
,
195
,
194
,
193
,
19
0
,
189
,
188
,
187
,
186
,
185
,
184
,
183
,
182
,
181
,
1
79
,
178
,
177
,
175
,
172
,
171
,
170
,
169
,
168
,
167
,
1
66
,
165
,
164
,
162
,
161
,
160
,
159
,
158
,
157
,
154
,
15
3
,
152
,
150
,
149
,
148
,
145
,
144
,
143
,
142
,
141
,
1
39
,
138
,
136
,
135
,
134
,
133
,
132
,
131
,
130
,
129
,
1
26
,
125
,
123
,
117
,
115
,
114
,
112
,
111
,
110
,
109
,
1
07
,
104
,
101
,
100
,
99
,
96
,
95
,
94
,
93
,
89
,
88
,
87
,
86
,
85
,
84
,
83
,
82
,
81
,
80
,
78
,
77
,
74
,
72
,
71
,
70
,
68
,
62
,
60
,
56
,
54
,
47
,
42
,
29
,
25
,
23
,
22
,
9
,
8
,
7
,
6
,
5
,
4
,
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
393
,
39
3
,
393
,
393
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
11
,
1
1
,
12
,
12
,
25
,
32
,
25
,
28
,
28
,
33
,
3
2
,
34
,
47
,
33
,
47
,
34
,
33
,
63
,
34
,
63
,
3
7
,
34
,
35
,
36
,
34
,
36
,
35
,
37
,
40
,
33
,
3
7
,
39
,
35
,
37
,
41
,
36
,
37
,
42
,
40
,
39
,
4
1
,
44
,
45
,
71
,
39
,
42
,
46
,
42
,
49
,
42
,
4
4
,
44
,
42
,
46
,
45
,
49
,
53
,
93
,
45
,
71
,
46
,
53
,
45
,
58
,
58
,
77
,
78
,
78
,
81
,
104
,
105
,
77
,
93
,
93
,
78
,
104
,
107
,
81
,
108
,
110
,
1
39
,
115
,
142
,
142
,
81
,
105
,
108
,
107
,
118
,
105
,
11
0
,
115
,
118
,
121
,
122
,
157
,
139
,
148
,
121
,
122
,
401
,
148
,
158
,
182
,
182
,
399
,
393
,
392
,
391
,
390
,
157
,
389
,
158
,
388
,
386
,
182
,
396
,
396
,
396
,
396
,
39
6
,
396
,
397
,
397
,
397
,
397
,
397
,
397
,
398
,
398
,
39
8
,
398
,
398
,
398
,
400
,
400
,
402
,
402
,
402
,
385
,
402
,
402
,
403
,
403
,
403
,
403
,
403
,
403
,
404
,
404
,
384
,
404
,
404
,
404
,
405
,
383
,
405
,
405
,
405
,
405
,
3
82
,
381
,
380
,
379
,
378
,
377
,
375
,
373
,
370
,
368
,
36
7
,
365
,
363
,
362
,
361
,
359
,
356
,
354
,
353
,
352
,
3
51
,
350
,
348
,
346
,
345
,
342
,
341
,
339
,
338
,
337
,
33
4
,
333
,
332
,
329
,
327
,
326
,
325
,
324
,
321
,
320
,
31
9
,
317
,
316
,
314
,
312
,
310
,
309
,
308
,
306
,
304
,
302
,
299
,
298
,
294
,
293
,
292
,
291
,
290
,
289
,
288
,
28
6
,
285
,
284
,
283
,
282
,
281
,
280
,
279
,
278
,
277
,
27
5
,
274
,
273
,
271
,
269
,
265
,
264
,
263
,
262
,
261
,
2
60
,
259
,
257
,
256
,
255
,
254
,
252
,
250
,
248
,
247
,
24
6
,
245
,
244
,
243
,
242
,
241
,
240
,
238
,
237
,
236
,
23
5
,
234
,
233
,
232
,
231
,
230
,
228
,
227
,
226
,
223
,
2
21
,
219
,
218
,
217
,
216
,
215
,
213
,
212
,
210
,
208
,
20
7
,
205
,
204
,
203
,
202
,
201
,
200
,
199
,
198
,
197
,
19
6
,
195
,
192
,
191
,
190
,
189
,
188
,
187
,
186
,
185
,
1
84
,
183
,
181
,
180
,
179
,
177
,
174
,
173
,
172
,
171
,
1
70
,
169
,
168
,
167
,
166
,
164
,
163
,
162
,
161
,
160
,
15
9
,
156
,
155
,
154
,
152
,
151
,
150
,
147
,
146
,
145
,
1
44
,
143
,
141
,
140
,
138
,
137
,
136
,
135
,
134
,
133
,
1
32
,
131
,
128
,
127
,
125
,
119
,
117
,
116
,
114
,
113
,
1
12
,
111
,
109
,
106
,
103
,
102
,
101
,
98
,
97
,
96
,
95
,
91
,
90
,
89
,
88
,
87
,
86
,
85
,
84
,
83
,
82
,
80
,
79
,
76
,
74
,
73
,
72
,
70
,
64
,
62
,
57
,
55
,
48
,
43
,
30
,
26
,
24
,
23
,
9
,
8
,
7
,
6
,
5
,
4
,
3
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
395
,
39
5
,
395
,
395
,
395
,
395
,
395
}
;
...
...
@@ -908,7 +908,7 @@ YY_DECL
register
char
*
yy_cp
,
*
yy_bp
;
register
int
yy_act
;
#line 9
1
"pars0lex.l"
#line 9
2
"pars0lex.l"
#line 914 "_flex_tmp.c"
...
...
@@ -964,13 +964,13 @@ YY_DECL
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
{
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
if
(
yy_current_state
>=
39
4
)
if
(
yy_current_state
>=
39
6
)
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
}
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
++
yy_cp
;
}
while
(
yy_current_state
!=
39
3
);
while
(
yy_current_state
!=
39
5
);
yy_cp
=
(
yy_last_accepting_cpos
);
yy_current_state
=
(
yy_last_accepting_state
);
...
...
@@ -992,7 +992,7 @@ YY_DECL
case
1
:
YY_RULE_SETUP
#line 9
3
"pars0lex.l"
#line 9
4
"pars0lex.l"
{
yylval
=
sym_tab_add_int_lit
(
pars_sym_tab_global
,
atoi
(
yytext
));
...
...
@@ -1001,7 +1001,7 @@ YY_RULE_SETUP
YY_BREAK
case
2
:
YY_RULE_SETUP
#line
99
"pars0lex.l"
#line
100
"pars0lex.l"
{
ut_error
;
/* not implemented */
...
...
@@ -1010,7 +1010,7 @@ YY_RULE_SETUP
YY_BREAK
case
3
:
YY_RULE_SETUP
#line 10
5
"pars0lex.l"
#line 10
6
"pars0lex.l"
{
ulint
type
;
...
...
@@ -1022,7 +1022,17 @@ YY_RULE_SETUP
YY_BREAK
case
4
:
YY_RULE_SETUP
#line 114 "pars0lex.l"
#line 115 "pars0lex.l"
{
yylval
=
sym_tab_add_bound_id
(
pars_sym_tab_global
,
yytext
+
1
);
return
(
PARS_ID_TOKEN
);
}
YY_BREAK
case
5
:
YY_RULE_SETUP
#line 122 "pars0lex.l"
{
/* Quoted character string literals are handled in an explicit
start state 'quoted'. This state is entered and the buffer for
...
...
@@ -1033,19 +1043,19 @@ In the state 'quoted', only two actions are possible (defined below). */
stringbuf_len
=
0
;
}
YY_BREAK
case
5
:
/* rule
5
can match eol */
case
6
:
/* rule
6
can match eol */
YY_RULE_SETUP
#line 1
23
"pars0lex.l"
#line 1
31
"pars0lex.l"
{
/* Got a sequence of characters other than "'":
append to string buffer */
string_append
(
yytext
,
yyleng
);
}
YY_BREAK
case
6
:
case
7
:
YY_RULE_SETUP
#line 1
28
"pars0lex.l"
#line 1
36
"pars0lex.l"
{
/* Got a sequence of "'" characters:
append half of them to string buffer,
...
...
@@ -1070,9 +1080,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
case
7
:
case
8
:
YY_RULE_SETUP
#line 1
52
"pars0lex.l"
#line 1
60
"pars0lex.l"
{
/* Quoted identifiers are handled in an explicit start state 'id'.
This state is entered and the buffer for the scanned string is emptied
...
...
@@ -1083,19 +1093,19 @@ In the state 'id', only two actions are possible (defined below). */
stringbuf_len
=
0
;
}
YY_BREAK
case
8
:
/* rule
8
can match eol */
case
9
:
/* rule
9
can match eol */
YY_RULE_SETUP
#line 16
1
"pars0lex.l"
#line 16
9
"pars0lex.l"
{
/* Got a sequence of characters other than '"':
append to string buffer */
string_append
(
yytext
,
yyleng
);
}
YY_BREAK
case
9
:
case
10
:
YY_RULE_SETUP
#line 1
66
"pars0lex.l"
#line 1
74
"pars0lex.l"
{
/* Got a sequence of '"' characters:
append half of them to string buffer,
...
...
@@ -1121,18 +1131,18 @@ YY_RULE_SETUP
}
}
YY_BREAK
case
1
0
:
case
1
1
:
YY_RULE_SETUP
#line 19
1
"pars0lex.l"
#line 19
9
"pars0lex.l"
{
yylval
=
sym_tab_add_null_lit
(
pars_sym_tab_global
);
return
(
PARS_NULL_LIT
);
}
YY_BREAK
case
1
1
:
case
1
2
:
YY_RULE_SETUP
#line
197
"pars0lex.l"
#line
205
"pars0lex.l"
{
/* Implicit cursor name */
yylval
=
sym_tab_add_str_lit
(
pars_sym_tab_global
,
...
...
@@ -1140,548 +1150,548 @@ YY_RULE_SETUP
return
(
PARS_SQL_TOKEN
);
}
YY_BREAK
case
1
2
:
case
1
3
:
YY_RULE_SETUP
#line 2
04
"pars0lex.l"
#line 2
12
"pars0lex.l"
{
return
(
PARS_AND_TOKEN
);
}
YY_BREAK
case
1
3
:
case
1
4
:
YY_RULE_SETUP
#line 2
08
"pars0lex.l"
#line 2
16
"pars0lex.l"
{
return
(
PARS_OR_TOKEN
);
}
YY_BREAK
case
1
4
:
case
1
5
:
YY_RULE_SETUP
#line 2
12
"pars0lex.l"
#line 2
20
"pars0lex.l"
{
return
(
PARS_NOT_TOKEN
);
}
YY_BREAK
case
1
5
:
case
1
6
:
YY_RULE_SETUP
#line 2
16
"pars0lex.l"
#line 2
24
"pars0lex.l"
{
return
(
PARS_PROCEDURE_TOKEN
);
}
YY_BREAK
case
1
6
:
case
1
7
:
YY_RULE_SETUP
#line 22
0
"pars0lex.l"
#line 22
8
"pars0lex.l"
{
return
(
PARS_IN_TOKEN
);
}
YY_BREAK
case
1
7
:
case
1
8
:
YY_RULE_SETUP
#line 2
24
"pars0lex.l"
#line 2
32
"pars0lex.l"
{
return
(
PARS_OUT_TOKEN
);
}
YY_BREAK
case
1
8
:
case
1
9
:
YY_RULE_SETUP
#line 2
28
"pars0lex.l"
#line 2
36
"pars0lex.l"
{
return
(
PARS_BINARY_TOKEN
);
}
YY_BREAK
case
19
:
case
20
:
YY_RULE_SETUP
#line 2
32
"pars0lex.l"
#line 2
40
"pars0lex.l"
{
return
(
PARS_BLOB_TOKEN
);
}
YY_BREAK
case
2
0
:
case
2
1
:
YY_RULE_SETUP
#line 2
36
"pars0lex.l"
#line 2
44
"pars0lex.l"
{
return
(
PARS_INT_TOKEN
);
}
YY_BREAK
case
2
1
:
case
2
2
:
YY_RULE_SETUP
#line 24
0
"pars0lex.l"
#line 24
8
"pars0lex.l"
{
return
(
PARS_INT_TOKEN
);
}
YY_BREAK
case
2
2
:
case
2
3
:
YY_RULE_SETUP
#line 2
44
"pars0lex.l"
#line 2
52
"pars0lex.l"
{
return
(
PARS_FLOAT_TOKEN
);
}
YY_BREAK
case
2
3
:
case
2
4
:
YY_RULE_SETUP
#line 2
48
"pars0lex.l"
#line 2
56
"pars0lex.l"
{
return
(
PARS_CHAR_TOKEN
);
}
YY_BREAK
case
2
4
:
case
2
5
:
YY_RULE_SETUP
#line 2
52
"pars0lex.l"
#line 2
60
"pars0lex.l"
{
return
(
PARS_IS_TOKEN
);
}
YY_BREAK
case
2
5
:
case
2
6
:
YY_RULE_SETUP
#line 2
56
"pars0lex.l"
#line 2
64
"pars0lex.l"
{
return
(
PARS_BEGIN_TOKEN
);
}
YY_BREAK
case
2
6
:
case
2
7
:
YY_RULE_SETUP
#line 26
0
"pars0lex.l"
#line 26
8
"pars0lex.l"
{
return
(
PARS_END_TOKEN
);
}
YY_BREAK
case
2
7
:
case
2
8
:
YY_RULE_SETUP
#line 2
64
"pars0lex.l"
#line 2
72
"pars0lex.l"
{
return
(
PARS_IF_TOKEN
);
}
YY_BREAK
case
2
8
:
case
2
9
:
YY_RULE_SETUP
#line 2
68
"pars0lex.l"
#line 2
76
"pars0lex.l"
{
return
(
PARS_THEN_TOKEN
);
}
YY_BREAK
case
29
:
case
30
:
YY_RULE_SETUP
#line 2
72
"pars0lex.l"
#line 2
80
"pars0lex.l"
{
return
(
PARS_ELSE_TOKEN
);
}
YY_BREAK
case
3
0
:
case
3
1
:
YY_RULE_SETUP
#line 2
76
"pars0lex.l"
#line 2
84
"pars0lex.l"
{
return
(
PARS_ELSIF_TOKEN
);
}
YY_BREAK
case
3
1
:
case
3
2
:
YY_RULE_SETUP
#line 28
0
"pars0lex.l"
#line 28
8
"pars0lex.l"
{
return
(
PARS_LOOP_TOKEN
);
}
YY_BREAK
case
3
2
:
case
3
3
:
YY_RULE_SETUP
#line 2
84
"pars0lex.l"
#line 2
92
"pars0lex.l"
{
return
(
PARS_WHILE_TOKEN
);
}
YY_BREAK
case
3
3
:
case
3
4
:
YY_RULE_SETUP
#line 2
88
"pars0lex.l"
#line 2
96
"pars0lex.l"
{
return
(
PARS_RETURN_TOKEN
);
}
YY_BREAK
case
3
4
:
case
3
5
:
YY_RULE_SETUP
#line
292
"pars0lex.l"
#line
300
"pars0lex.l"
{
return
(
PARS_SELECT_TOKEN
);
}
YY_BREAK
case
3
5
:
case
3
6
:
YY_RULE_SETUP
#line
296
"pars0lex.l"
#line
304
"pars0lex.l"
{
return
(
PARS_SUM_TOKEN
);
}
YY_BREAK
case
3
6
:
case
3
7
:
YY_RULE_SETUP
#line 30
0
"pars0lex.l"
#line 30
8
"pars0lex.l"
{
return
(
PARS_COUNT_TOKEN
);
}
YY_BREAK
case
3
7
:
case
3
8
:
YY_RULE_SETUP
#line 3
04
"pars0lex.l"
#line 3
12
"pars0lex.l"
{
return
(
PARS_DISTINCT_TOKEN
);
}
YY_BREAK
case
3
8
:
case
3
9
:
YY_RULE_SETUP
#line 3
08
"pars0lex.l"
#line 3
16
"pars0lex.l"
{
return
(
PARS_FROM_TOKEN
);
}
YY_BREAK
case
39
:
case
40
:
YY_RULE_SETUP
#line 3
12
"pars0lex.l"
#line 3
20
"pars0lex.l"
{
return
(
PARS_WHERE_TOKEN
);
}
YY_BREAK
case
4
0
:
case
4
1
:
YY_RULE_SETUP
#line 3
16
"pars0lex.l"
#line 3
24
"pars0lex.l"
{
return
(
PARS_FOR_TOKEN
);
}
YY_BREAK
case
4
1
:
case
4
2
:
YY_RULE_SETUP
#line 32
0
"pars0lex.l"
#line 32
8
"pars0lex.l"
{
return
(
PARS_CONSISTENT_TOKEN
);
}
YY_BREAK
case
4
2
:
case
4
3
:
YY_RULE_SETUP
#line 3
24
"pars0lex.l"
#line 3
32
"pars0lex.l"
{
return
(
PARS_READ_TOKEN
);
}
YY_BREAK
case
4
3
:
case
4
4
:
YY_RULE_SETUP
#line 3
28
"pars0lex.l"
#line 3
36
"pars0lex.l"
{
return
(
PARS_ORDER_TOKEN
);
}
YY_BREAK
case
4
4
:
case
4
5
:
YY_RULE_SETUP
#line 3
32
"pars0lex.l"
#line 3
40
"pars0lex.l"
{
return
(
PARS_BY_TOKEN
);
}
YY_BREAK
case
4
5
:
case
4
6
:
YY_RULE_SETUP
#line 3
36
"pars0lex.l"
#line 3
44
"pars0lex.l"
{
return
(
PARS_ASC_TOKEN
);
}
YY_BREAK
case
4
6
:
case
4
7
:
YY_RULE_SETUP
#line 34
0
"pars0lex.l"
#line 34
8
"pars0lex.l"
{
return
(
PARS_DESC_TOKEN
);
}
YY_BREAK
case
4
7
:
case
4
8
:
YY_RULE_SETUP
#line 3
44
"pars0lex.l"
#line 3
52
"pars0lex.l"
{
return
(
PARS_INSERT_TOKEN
);
}
YY_BREAK
case
4
8
:
case
4
9
:
YY_RULE_SETUP
#line 3
48
"pars0lex.l"
#line 3
56
"pars0lex.l"
{
return
(
PARS_INTO_TOKEN
);
}
YY_BREAK
case
49
:
case
50
:
YY_RULE_SETUP
#line 3
52
"pars0lex.l"
#line 3
60
"pars0lex.l"
{
return
(
PARS_VALUES_TOKEN
);
}
YY_BREAK
case
5
0
:
case
5
1
:
YY_RULE_SETUP
#line 3
56
"pars0lex.l"
#line 3
64
"pars0lex.l"
{
return
(
PARS_UPDATE_TOKEN
);
}
YY_BREAK
case
5
1
:
case
5
2
:
YY_RULE_SETUP
#line 36
0
"pars0lex.l"
#line 36
8
"pars0lex.l"
{
return
(
PARS_SET_TOKEN
);
}
YY_BREAK
case
5
2
:
case
5
3
:
YY_RULE_SETUP
#line 3
64
"pars0lex.l"
#line 3
72
"pars0lex.l"
{
return
(
PARS_DELETE_TOKEN
);
}
YY_BREAK
case
5
3
:
case
5
4
:
YY_RULE_SETUP
#line 3
68
"pars0lex.l"
#line 3
76
"pars0lex.l"
{
return
(
PARS_CURRENT_TOKEN
);
}
YY_BREAK
case
5
4
:
case
5
5
:
YY_RULE_SETUP
#line 3
72
"pars0lex.l"
#line 3
80
"pars0lex.l"
{
return
(
PARS_OF_TOKEN
);
}
YY_BREAK
case
5
5
:
case
5
6
:
YY_RULE_SETUP
#line 3
76
"pars0lex.l"
#line 3
84
"pars0lex.l"
{
return
(
PARS_CREATE_TOKEN
);
}
YY_BREAK
case
5
6
:
case
5
7
:
YY_RULE_SETUP
#line 38
0
"pars0lex.l"
#line 38
8
"pars0lex.l"
{
return
(
PARS_TABLE_TOKEN
);
}
YY_BREAK
case
5
7
:
case
5
8
:
YY_RULE_SETUP
#line 3
84
"pars0lex.l"
#line 3
92
"pars0lex.l"
{
return
(
PARS_INDEX_TOKEN
);
}
YY_BREAK
case
5
8
:
case
5
9
:
YY_RULE_SETUP
#line 3
88
"pars0lex.l"
#line 3
96
"pars0lex.l"
{
return
(
PARS_UNIQUE_TOKEN
);
}
YY_BREAK
case
59
:
case
60
:
YY_RULE_SETUP
#line
392
"pars0lex.l"
#line
400
"pars0lex.l"
{
return
(
PARS_CLUSTERED_TOKEN
);
}
YY_BREAK
case
6
0
:
case
6
1
:
YY_RULE_SETUP
#line
396
"pars0lex.l"
#line
404
"pars0lex.l"
{
return
(
PARS_DOES_NOT_FIT_IN_MEM_TOKEN
);
}
YY_BREAK
case
6
1
:
case
6
2
:
YY_RULE_SETUP
#line 40
0
"pars0lex.l"
#line 40
8
"pars0lex.l"
{
return
(
PARS_ON_TOKEN
);
}
YY_BREAK
case
6
2
:
case
6
3
:
YY_RULE_SETUP
#line 4
04
"pars0lex.l"
#line 4
12
"pars0lex.l"
{
return
(
PARS_DECLARE_TOKEN
);
}
YY_BREAK
case
6
3
:
case
6
4
:
YY_RULE_SETUP
#line 4
08
"pars0lex.l"
#line 4
16
"pars0lex.l"
{
return
(
PARS_CURSOR_TOKEN
);
}
YY_BREAK
case
6
4
:
case
6
5
:
YY_RULE_SETUP
#line 4
12
"pars0lex.l"
#line 4
20
"pars0lex.l"
{
return
(
PARS_OPEN_TOKEN
);
}
YY_BREAK
case
6
5
:
case
6
6
:
YY_RULE_SETUP
#line 4
16
"pars0lex.l"
#line 4
24
"pars0lex.l"
{
return
(
PARS_FETCH_TOKEN
);
}
YY_BREAK
case
6
6
:
case
6
7
:
YY_RULE_SETUP
#line 42
0
"pars0lex.l"
#line 42
8
"pars0lex.l"
{
return
(
PARS_CLOSE_TOKEN
);
}
YY_BREAK
case
6
7
:
case
6
8
:
YY_RULE_SETUP
#line 4
24
"pars0lex.l"
#line 4
32
"pars0lex.l"
{
return
(
PARS_NOTFOUND_TOKEN
);
}
YY_BREAK
case
6
8
:
case
6
9
:
YY_RULE_SETUP
#line 4
28
"pars0lex.l"
#line 4
36
"pars0lex.l"
{
return
(
PARS_TO_CHAR_TOKEN
);
}
YY_BREAK
case
69
:
case
70
:
YY_RULE_SETUP
#line 4
32
"pars0lex.l"
#line 4
40
"pars0lex.l"
{
return
(
PARS_TO_NUMBER_TOKEN
);
}
YY_BREAK
case
7
0
:
case
7
1
:
YY_RULE_SETUP
#line 4
36
"pars0lex.l"
#line 4
44
"pars0lex.l"
{
return
(
PARS_TO_BINARY_TOKEN
);
}
YY_BREAK
case
7
1
:
case
7
2
:
YY_RULE_SETUP
#line 44
0
"pars0lex.l"
#line 44
8
"pars0lex.l"
{
return
(
PARS_BINARY_TO_NUMBER_TOKEN
);
}
YY_BREAK
case
7
2
:
case
7
3
:
YY_RULE_SETUP
#line 4
44
"pars0lex.l"
#line 4
52
"pars0lex.l"
{
return
(
PARS_SUBSTR_TOKEN
);
}
YY_BREAK
case
7
3
:
case
7
4
:
YY_RULE_SETUP
#line 4
48
"pars0lex.l"
#line 4
56
"pars0lex.l"
{
return
(
PARS_REPLSTR_TOKEN
);
}
YY_BREAK
case
7
4
:
case
7
5
:
YY_RULE_SETUP
#line 4
52
"pars0lex.l"
#line 4
60
"pars0lex.l"
{
return
(
PARS_CONCAT_TOKEN
);
}
YY_BREAK
case
7
5
:
case
7
6
:
YY_RULE_SETUP
#line 4
56
"pars0lex.l"
#line 4
64
"pars0lex.l"
{
return
(
PARS_INSTR_TOKEN
);
}
YY_BREAK
case
7
6
:
case
7
7
:
YY_RULE_SETUP
#line 46
0
"pars0lex.l"
#line 46
8
"pars0lex.l"
{
return
(
PARS_LENGTH_TOKEN
);
}
YY_BREAK
case
7
7
:
case
7
8
:
YY_RULE_SETUP
#line 4
64
"pars0lex.l"
#line 4
72
"pars0lex.l"
{
return
(
PARS_SYSDATE_TOKEN
);
}
YY_BREAK
case
7
8
:
case
7
9
:
YY_RULE_SETUP
#line 4
68
"pars0lex.l"
#line 4
76
"pars0lex.l"
{
return
(
PARS_PRINTF_TOKEN
);
}
YY_BREAK
case
79
:
case
80
:
YY_RULE_SETUP
#line 4
72
"pars0lex.l"
#line 4
80
"pars0lex.l"
{
return
(
PARS_ASSERT_TOKEN
);
}
YY_BREAK
case
8
0
:
case
8
1
:
YY_RULE_SETUP
#line 4
76
"pars0lex.l"
#line 4
84
"pars0lex.l"
{
return
(
PARS_RND_TOKEN
);
}
YY_BREAK
case
8
1
:
case
8
2
:
YY_RULE_SETUP
#line 48
0
"pars0lex.l"
#line 48
8
"pars0lex.l"
{
return
(
PARS_RND_STR_TOKEN
);
}
YY_BREAK
case
8
2
:
case
8
3
:
YY_RULE_SETUP
#line 4
84
"pars0lex.l"
#line 4
92
"pars0lex.l"
{
return
(
PARS_ROW_PRINTF_TOKEN
);
}
YY_BREAK
case
8
3
:
case
8
4
:
YY_RULE_SETUP
#line 4
88
"pars0lex.l"
#line 4
96
"pars0lex.l"
{
return
(
PARS_COMMIT_TOKEN
);
}
YY_BREAK
case
8
4
:
case
8
5
:
YY_RULE_SETUP
#line
492
"pars0lex.l"
#line
500
"pars0lex.l"
{
return
(
PARS_ROLLBACK_TOKEN
);
}
YY_BREAK
case
8
5
:
case
8
6
:
YY_RULE_SETUP
#line
496
"pars0lex.l"
#line
504
"pars0lex.l"
{
return
(
PARS_WORK_TOKEN
);
}
YY_BREAK
case
8
6
:
case
8
7
:
YY_RULE_SETUP
#line 50
0
"pars0lex.l"
#line 50
8
"pars0lex.l"
{
return
(
PARS_UNSIGNED_TOKEN
);
}
YY_BREAK
case
8
7
:
case
8
8
:
YY_RULE_SETUP
#line 5
04
"pars0lex.l"
#line 5
12
"pars0lex.l"
{
return
(
PARS_EXIT_TOKEN
);
}
YY_BREAK
case
8
8
:
case
8
9
:
YY_RULE_SETUP
#line 5
08
"pars0lex.l"
#line 5
16
"pars0lex.l"
{
return
(
PARS_FUNCTION_TOKEN
);
}
YY_BREAK
case
89
:
case
90
:
YY_RULE_SETUP
#line 5
12
"pars0lex.l"
#line 5
20
"pars0lex.l"
{
yylval
=
sym_tab_add_id
(
pars_sym_tab_global
,
(
byte
*
)
yytext
,
...
...
@@ -1689,52 +1699,44 @@ YY_RULE_SETUP
return
(
PARS_ID_TOKEN
);
}
YY_BREAK
case
90
:
YY_RULE_SETUP
#line 519 "pars0lex.l"
{
return
(
PARS_DDOT_TOKEN
);
}
YY_BREAK
case
91
:
YY_RULE_SETUP
#line 52
3
"pars0lex.l"
#line 52
7
"pars0lex.l"
{
return
(
PARS_
ASSIGN
_TOKEN
);
return
(
PARS_
DDOT
_TOKEN
);
}
YY_BREAK
case
92
:
YY_RULE_SETUP
#line 5
27
"pars0lex.l"
#line 5
31
"pars0lex.l"
{
return
(
PARS_
LE
_TOKEN
);
return
(
PARS_
ASSIGN
_TOKEN
);
}
YY_BREAK
case
93
:
YY_RULE_SETUP
#line 53
1
"pars0lex.l"
#line 53
5
"pars0lex.l"
{
return
(
PARS_
G
E_TOKEN
);
return
(
PARS_
L
E_TOKEN
);
}
YY_BREAK
case
94
:
YY_RULE_SETUP
#line 53
5
"pars0lex.l"
#line 53
9
"pars0lex.l"
{
return
(
PARS_
N
E_TOKEN
);
return
(
PARS_
G
E_TOKEN
);
}
YY_BREAK
case
95
:
YY_RULE_SETUP
#line 5
39
"pars0lex.l"
#line 5
43
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
return
(
PARS_NE_TOKEN
);
}
YY_BREAK
case
96
:
YY_RULE_SETUP
#line 54
4
"pars0lex.l"
#line 54
7
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1742,7 +1744,7 @@ YY_RULE_SETUP
YY_BREAK
case
97
:
YY_RULE_SETUP
#line 5
49
"pars0lex.l"
#line 5
52
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1750,7 +1752,7 @@ YY_RULE_SETUP
YY_BREAK
case
98
:
YY_RULE_SETUP
#line 55
4
"pars0lex.l"
#line 55
7
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1758,7 +1760,7 @@ YY_RULE_SETUP
YY_BREAK
case
99
:
YY_RULE_SETUP
#line 5
59
"pars0lex.l"
#line 5
62
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1766,7 +1768,7 @@ YY_RULE_SETUP
YY_BREAK
case
100
:
YY_RULE_SETUP
#line 56
4
"pars0lex.l"
#line 56
7
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1774,7 +1776,7 @@ YY_RULE_SETUP
YY_BREAK
case
101
:
YY_RULE_SETUP
#line 5
69
"pars0lex.l"
#line 5
72
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1782,7 +1784,7 @@ YY_RULE_SETUP
YY_BREAK
case
102
:
YY_RULE_SETUP
#line 57
4
"pars0lex.l"
#line 57
7
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1790,7 +1792,7 @@ YY_RULE_SETUP
YY_BREAK
case
103
:
YY_RULE_SETUP
#line 5
79
"pars0lex.l"
#line 5
82
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1798,7 +1800,7 @@ YY_RULE_SETUP
YY_BREAK
case
104
:
YY_RULE_SETUP
#line 58
4
"pars0lex.l"
#line 58
7
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1806,7 +1808,7 @@ YY_RULE_SETUP
YY_BREAK
case
105
:
YY_RULE_SETUP
#line 5
89
"pars0lex.l"
#line 5
92
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1814,7 +1816,7 @@ YY_RULE_SETUP
YY_BREAK
case
106
:
YY_RULE_SETUP
#line 59
4
"pars0lex.l"
#line 59
7
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1822,7 +1824,7 @@ YY_RULE_SETUP
YY_BREAK
case
107
:
YY_RULE_SETUP
#line
599
"pars0lex.l"
#line
602
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1830,7 +1832,7 @@ YY_RULE_SETUP
YY_BREAK
case
108
:
YY_RULE_SETUP
#line 60
4
"pars0lex.l"
#line 60
7
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1838,7 +1840,7 @@ YY_RULE_SETUP
YY_BREAK
case
109
:
YY_RULE_SETUP
#line 6
09
"pars0lex.l"
#line 6
12
"pars0lex.l"
{
return
((
int
)(
*
yytext
));
...
...
@@ -1846,35 +1848,43 @@ YY_RULE_SETUP
YY_BREAK
case
110
:
YY_RULE_SETUP
#line 614 "pars0lex.l"
BEGIN
(
comment
);
/* eat up comment */
#line 617 "pars0lex.l"
{
return
((
int
)(
*
yytext
));
}
YY_BREAK
case
111
:
/* rule 111 can match eol */
YY_RULE_SETUP
#line 6
16
"pars0lex.l"
#line 6
22
"pars0lex.l"
BEGIN
(
comment
);
/* eat up comment */
YY_BREAK
case
112
:
/* rule 112 can match eol */
YY_RULE_SETUP
#line 6
17
"pars0lex.l"
#line 6
24
"pars0lex.l"
YY_BREAK
case
113
:
/* rule 113 can match eol */
YY_RULE_SETUP
#line 6
18
"pars0lex.l"
BEGIN
(
INITIAL
);
#line 6
25
"pars0lex.l"
YY_BREAK
case
114
:
/* rule 114 can match eol */
YY_RULE_SETUP
#line 62
0
"pars0lex.l"
/* eat up whitespace */
#line 62
6
"pars0lex.l"
BEGIN
(
INITIAL
);
YY_BREAK
case
115
:
/* rule 115 can match eol */
YY_RULE_SETUP
#line 623 "pars0lex.l"
#line 628 "pars0lex.l"
/* eat up whitespace */
YY_BREAK
case
116
:
YY_RULE_SETUP
#line 631 "pars0lex.l"
{
fprintf
(
stderr
,
"Unrecognized character: %02x
\n
"
,
*
yytext
);
...
...
@@ -1884,12 +1894,12 @@ YY_RULE_SETUP
return
(
0
);
}
YY_BREAK
case
11
6
:
case
11
7
:
YY_RULE_SETUP
#line 6
32
"pars0lex.l"
#line 6
40
"pars0lex.l"
YY_FATAL_ERROR
(
"flex scanner jammed"
);
YY_BREAK
#line 1
89
2 "_flex_tmp.c"
#line 1
90
2 "_flex_tmp.c"
case
YY_STATE_EOF
(
INITIAL
):
case
YY_STATE_EOF
(
comment
):
case
YY_STATE_EOF
(
quoted
):
...
...
@@ -2177,7 +2187,7 @@ static int yy_get_next_buffer (void)
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
{
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
if
(
yy_current_state
>=
39
4
)
if
(
yy_current_state
>=
39
6
)
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
}
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
...
...
@@ -2205,11 +2215,11 @@ static int yy_get_next_buffer (void)
while
(
yy_chk
[
yy_base
[
yy_current_state
]
+
yy_c
]
!=
yy_current_state
)
{
yy_current_state
=
(
int
)
yy_def
[
yy_current_state
];
if
(
yy_current_state
>=
39
4
)
if
(
yy_current_state
>=
39
6
)
yy_c
=
yy_meta
[(
unsigned
int
)
yy_c
];
}
yy_current_state
=
yy_nxt
[
yy_base
[
yy_current_state
]
+
(
unsigned
int
)
yy_c
];
yy_is_jam
=
(
yy_current_state
==
39
3
);
yy_is_jam
=
(
yy_current_state
==
39
5
);
return
yy_is_jam
?
0
:
yy_current_state
;
}
...
...
@@ -2732,7 +2742,7 @@ void yyfree (void * ptr )
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
#line 6
32
"pars0lex.l"
#line 6
40
"pars0lex.l"
pars/pars0lex.l
View file @
e8b80a5a
...
...
@@ -84,6 +84,7 @@ string_append(
DIGIT [0-9]
ID [a-z_A-Z][a-z_A-Z0-9]*
BOUND_LIT \:[a-z_A-Z0-9]+
BOUND_ID \$[a-z_A-Z0-9]+
%x comment
%x quoted
...
...
@@ -111,6 +112,13 @@ BOUND_LIT \:[a-z_A-Z0-9]+
return(type);
}
{BOUND_ID} {
yylval = sym_tab_add_bound_id(pars_sym_tab_global,
yytext + 1);
return(PARS_ID_TOKEN);
}
"'" {
/* Quoted character string literals are handled in an explicit
start state 'quoted'. This state is entered and the buffer for
...
...
pars/pars0pars.c
View file @
e8b80a5a
...
...
@@ -1931,6 +1931,7 @@ pars_info_create(void)
info
->
heap
=
heap
;
info
->
funcs
=
NULL
;
info
->
bound_lits
=
NULL
;
info
->
bound_ids
=
NULL
;
info
->
graph_owns_us
=
TRUE
;
return
(
info
);
...
...
@@ -2070,6 +2071,32 @@ pars_info_add_function(
ib_vector_push
(
info
->
funcs
,
puf
);
}
/********************************************************************
Add bound id. */
void
pars_info_add_id
(
/*=============*/
pars_info_t
*
info
,
/* in: info struct */
const
char
*
name
,
/* in: name */
const
char
*
id
)
/* in: id */
{
pars_bound_id_t
*
bid
;
ut_ad
(
!
pars_info_get_bound_id
(
info
,
name
));
bid
=
mem_heap_alloc
(
info
->
heap
,
sizeof
(
*
bid
));
bid
->
name
=
name
;
bid
->
id
=
id
;
if
(
!
info
->
bound_ids
)
{
info
->
bound_ids
=
ib_vector_create
(
info
->
heap
,
8
);
}
ib_vector_push
(
info
->
bound_ids
,
bid
);
}
/********************************************************************
Get user function with the given name.*/
...
...
@@ -2131,3 +2158,34 @@ pars_info_get_bound_lit(
return
(
NULL
);
}
/********************************************************************
Get bound id with the given name.*/
pars_bound_id_t
*
pars_info_get_bound_id
(
/*===================*/
/* out: bound id, or NULL if not
found */
pars_info_t
*
info
,
/* in: info struct */
const
char
*
name
)
/* in: bound id name to find */
{
ulint
i
;
ib_vector_t
*
vec
;
if
(
!
info
||
!
info
->
bound_ids
)
{
return
(
NULL
);
}
vec
=
info
->
bound_ids
;
for
(
i
=
0
;
i
<
ib_vector_size
(
vec
);
i
++
)
{
pars_bound_id_t
*
bid
=
ib_vector_get
(
vec
,
i
);
if
(
strcmp
(
bid
->
name
,
name
)
==
0
)
{
return
(
bid
);
}
}
return
(
NULL
);
}
pars/pars0sym.c
View file @
e8b80a5a
...
...
@@ -304,3 +304,42 @@ sym_tab_add_id(
return
(
node
);
}
/**********************************************************************
Add a bound identifier to a symbol table. */
sym_node_t
*
sym_tab_add_bound_id
(
/*===========*/
/* out: symbol table node */
sym_tab_t
*
sym_tab
,
/* in: symbol table */
const
char
*
name
)
/* in: name of bound id */
{
sym_node_t
*
node
;
pars_bound_id_t
*
bid
;
bid
=
pars_info_get_bound_id
(
sym_tab
->
info
,
name
);
ut_a
(
bid
);
node
=
mem_heap_alloc
(
sym_tab
->
heap
,
sizeof
(
sym_node_t
));
node
->
common
.
type
=
QUE_NODE_SYMBOL
;
node
->
resolved
=
FALSE
;
node
->
indirection
=
NULL
;
node
->
name
=
mem_heap_strdup
(
sym_tab
->
heap
,
bid
->
id
);
node
->
name_len
=
strlen
(
node
->
name
);
UT_LIST_ADD_LAST
(
sym_list
,
sym_tab
->
sym_list
,
node
);
dfield_set_data
(
&
(
node
->
common
.
val
),
NULL
,
UNIV_SQL_NULL
);
node
->
common
.
val_buf_size
=
0
;
node
->
prefetch_buf
=
NULL
;
node
->
cursor_def
=
NULL
;
node
->
sym_table
=
sym_tab
;
return
(
node
);
}
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