pg_query 2.1.4 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/README.md +32 -0
- data/Rakefile +2 -2
- data/ext/pg_query/include/access/twophase.h +2 -0
- data/ext/pg_query/include/access/xact.h +6 -0
- data/ext/pg_query/include/access/xlog_internal.h +10 -1
- data/ext/pg_query/include/access/xlogreader.h +10 -0
- data/ext/pg_query/include/catalog/dependency.h +2 -0
- data/ext/pg_query/include/catalog/pg_class.h +1 -1
- data/ext/pg_query/include/catalog/pg_class_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_control.h +2 -0
- data/ext/pg_query/include/catalog/pg_operator.h +3 -1
- data/ext/pg_query/include/catalog/pg_publication.h +3 -0
- data/ext/pg_query/include/catalog/pg_type.h +1 -0
- data/ext/pg_query/include/commands/async.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +2 -0
- data/ext/pg_query/include/commands/trigger.h +8 -0
- data/ext/pg_query/include/lib/simplehash.h +13 -13
- data/ext/pg_query/include/libpq/libpq.h +1 -0
- data/ext/pg_query/include/mb/pg_wchar.h +1 -0
- data/ext/pg_query/include/miscadmin.h +24 -11
- data/ext/pg_query/include/nodes/execnodes.h +2 -2
- data/ext/pg_query/include/nodes/parsenodes.h +5 -4
- data/ext/pg_query/include/nodes/pathnodes.h +2 -1
- data/ext/pg_query/include/nodes/pg_list.h +1 -0
- data/ext/pg_query/include/nodes/plannodes.h +18 -3
- data/ext/pg_query/include/optimizer/optimizer.h +0 -5
- data/ext/pg_query/include/parser/gram.h +2 -2
- data/ext/pg_query/include/parser/kwlist.h +1 -1
- data/ext/pg_query/include/parser/parse_coerce.h +1 -0
- data/ext/pg_query/include/pg_config.h +16 -13
- data/ext/pg_query/include/pg_query.h +2 -2
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +286 -314
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1 -0
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1 -0
- data/ext/pg_query/include/pgstat.h +2 -1
- data/ext/pg_query/include/plpgsql.h +2 -2
- data/ext/pg_query/include/port/pg_bitutils.h +48 -2
- data/ext/pg_query/include/port.h +4 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +4 -3
- data/ext/pg_query/include/replication/reorderbuffer.h +6 -5
- data/ext/pg_query/include/replication/slot.h +1 -1
- data/ext/pg_query/include/storage/block.h +1 -1
- data/ext/pg_query/include/storage/lock.h +6 -5
- data/ext/pg_query/include/storage/lwlock.h +1 -0
- data/ext/pg_query/include/storage/proc.h +14 -0
- data/ext/pg_query/include/storage/s_lock.h +24 -0
- data/ext/pg_query/include/tcop/pquery.h +6 -0
- data/ext/pg_query/include/utils/builtins.h +1 -0
- data/ext/pg_query/include/utils/inval.h +1 -0
- data/ext/pg_query/include/utils/portal.h +13 -0
- data/ext/pg_query/include/utils/rel.h +0 -1
- data/ext/pg_query/include/utils/relcache.h +1 -2
- data/ext/pg_query/include/utils/snapmgr.h +1 -0
- data/ext/pg_query/pg_query.pb-c.c +18 -5
- data/ext/pg_query/pg_query_deparse.c +8 -8
- data/ext/pg_query/pg_query_fingerprint.c +1 -0
- data/ext/pg_query/pg_query_json_plpgsql.c +68 -0
- data/ext/pg_query/pg_query_normalize.c +43 -7
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +11 -0
- data/ext/pg_query/pg_query_parse_plpgsql.c +58 -15
- data/ext/pg_query/src_backend_catalog_namespace.c +1 -0
- data/ext/pg_query/src_backend_libpq_pqcomm.c +8 -0
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +23 -33
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -0
- data/ext/pg_query/src_backend_nodes_list.c +12 -0
- data/ext/pg_query/src_backend_parser_gram.c +18 -3
- data/ext/pg_query/src_backend_parser_scan.c +493 -253
- data/ext/pg_query/src_backend_tcop_postgres.c +11 -1
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +38 -10
- data/ext/pg_query/src_backend_utils_misc_guc.c +1 -0
- data/ext/pg_query/src_common_wchar.c +11 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +4 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +1 -22
- data/ext/pg_query/src_port_snprintf.c +9 -7
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/fingerprint.rb +13 -2
- data/lib/pg_query/parse.rb +5 -3
- data/lib/pg_query/pg_query_pb.rb +2 -1
- data/lib/pg_query/treewalker.rb +6 -0
- data/lib/pg_query/version.rb +1 -1
- metadata +2 -2
@@ -43,8 +43,7 @@
|
|
43
43
|
*--------------------------------------------------------------------
|
44
44
|
*/
|
45
45
|
|
46
|
-
#line
|
47
|
-
#line 2 "scan.l"
|
46
|
+
#line 1 "scan.c"
|
48
47
|
/*-------------------------------------------------------------------------
|
49
48
|
*
|
50
49
|
* scan.l
|
@@ -87,9 +86,7 @@
|
|
87
86
|
#include "parser/scansup.h"
|
88
87
|
#include "mb/pg_wchar.h"
|
89
88
|
|
90
|
-
|
91
|
-
|
92
|
-
#line 48 "scan.c"
|
89
|
+
#line 44 "scan.c"
|
93
90
|
|
94
91
|
#define YY_INT_ALIGNED short int
|
95
92
|
|
@@ -97,12 +94,246 @@
|
|
97
94
|
|
98
95
|
#define FLEX_SCANNER
|
99
96
|
#define YY_FLEX_MAJOR_VERSION 2
|
100
|
-
#define YY_FLEX_MINOR_VERSION
|
101
|
-
#define YY_FLEX_SUBMINOR_VERSION
|
97
|
+
#define YY_FLEX_MINOR_VERSION 6
|
98
|
+
#define YY_FLEX_SUBMINOR_VERSION 4
|
102
99
|
#if YY_FLEX_SUBMINOR_VERSION > 0
|
103
100
|
#define FLEX_BETA
|
104
101
|
#endif
|
105
102
|
|
103
|
+
#ifdef yy_create_buffer
|
104
|
+
#define core_yy_create_buffer_ALREADY_DEFINED
|
105
|
+
#else
|
106
|
+
#define yy_create_buffer core_yy_create_buffer
|
107
|
+
#endif
|
108
|
+
|
109
|
+
#ifdef yy_delete_buffer
|
110
|
+
#define core_yy_delete_buffer_ALREADY_DEFINED
|
111
|
+
#else
|
112
|
+
#define yy_delete_buffer core_yy_delete_buffer
|
113
|
+
#endif
|
114
|
+
|
115
|
+
#ifdef yy_scan_buffer
|
116
|
+
#define core_yy_scan_buffer_ALREADY_DEFINED
|
117
|
+
#else
|
118
|
+
#define yy_scan_buffer core_yy_scan_buffer
|
119
|
+
#endif
|
120
|
+
|
121
|
+
#ifdef yy_scan_string
|
122
|
+
#define core_yy_scan_string_ALREADY_DEFINED
|
123
|
+
#else
|
124
|
+
#define yy_scan_string core_yy_scan_string
|
125
|
+
#endif
|
126
|
+
|
127
|
+
#ifdef yy_scan_bytes
|
128
|
+
#define core_yy_scan_bytes_ALREADY_DEFINED
|
129
|
+
#else
|
130
|
+
#define yy_scan_bytes core_yy_scan_bytes
|
131
|
+
#endif
|
132
|
+
|
133
|
+
#ifdef yy_init_buffer
|
134
|
+
#define core_yy_init_buffer_ALREADY_DEFINED
|
135
|
+
#else
|
136
|
+
#define yy_init_buffer core_yy_init_buffer
|
137
|
+
#endif
|
138
|
+
|
139
|
+
#ifdef yy_flush_buffer
|
140
|
+
#define core_yy_flush_buffer_ALREADY_DEFINED
|
141
|
+
#else
|
142
|
+
#define yy_flush_buffer core_yy_flush_buffer
|
143
|
+
#endif
|
144
|
+
|
145
|
+
#ifdef yy_load_buffer_state
|
146
|
+
#define core_yy_load_buffer_state_ALREADY_DEFINED
|
147
|
+
#else
|
148
|
+
#define yy_load_buffer_state core_yy_load_buffer_state
|
149
|
+
#endif
|
150
|
+
|
151
|
+
#ifdef yy_switch_to_buffer
|
152
|
+
#define core_yy_switch_to_buffer_ALREADY_DEFINED
|
153
|
+
#else
|
154
|
+
#define yy_switch_to_buffer core_yy_switch_to_buffer
|
155
|
+
#endif
|
156
|
+
|
157
|
+
#ifdef yypush_buffer_state
|
158
|
+
#define core_yypush_buffer_state_ALREADY_DEFINED
|
159
|
+
#else
|
160
|
+
#define yypush_buffer_state core_yypush_buffer_state
|
161
|
+
#endif
|
162
|
+
|
163
|
+
#ifdef yypop_buffer_state
|
164
|
+
#define core_yypop_buffer_state_ALREADY_DEFINED
|
165
|
+
#else
|
166
|
+
#define yypop_buffer_state core_yypop_buffer_state
|
167
|
+
#endif
|
168
|
+
|
169
|
+
#ifdef yyensure_buffer_stack
|
170
|
+
#define core_yyensure_buffer_stack_ALREADY_DEFINED
|
171
|
+
#else
|
172
|
+
#define yyensure_buffer_stack core_yyensure_buffer_stack
|
173
|
+
#endif
|
174
|
+
|
175
|
+
#ifdef yylex
|
176
|
+
#define core_yylex_ALREADY_DEFINED
|
177
|
+
#else
|
178
|
+
#define yylex core_yylex
|
179
|
+
#endif
|
180
|
+
|
181
|
+
#ifdef yyrestart
|
182
|
+
#define core_yyrestart_ALREADY_DEFINED
|
183
|
+
#else
|
184
|
+
#define yyrestart core_yyrestart
|
185
|
+
#endif
|
186
|
+
|
187
|
+
#ifdef yylex_init
|
188
|
+
#define core_yylex_init_ALREADY_DEFINED
|
189
|
+
#else
|
190
|
+
#define yylex_init core_yylex_init
|
191
|
+
#endif
|
192
|
+
|
193
|
+
#ifdef yylex_init_extra
|
194
|
+
#define core_yylex_init_extra_ALREADY_DEFINED
|
195
|
+
#else
|
196
|
+
#define yylex_init_extra core_yylex_init_extra
|
197
|
+
#endif
|
198
|
+
|
199
|
+
#ifdef yylex_destroy
|
200
|
+
#define core_yylex_destroy_ALREADY_DEFINED
|
201
|
+
#else
|
202
|
+
#define yylex_destroy core_yylex_destroy
|
203
|
+
#endif
|
204
|
+
|
205
|
+
#ifdef yyget_debug
|
206
|
+
#define core_yyget_debug_ALREADY_DEFINED
|
207
|
+
#else
|
208
|
+
#define yyget_debug core_yyget_debug
|
209
|
+
#endif
|
210
|
+
|
211
|
+
#ifdef yyset_debug
|
212
|
+
#define core_yyset_debug_ALREADY_DEFINED
|
213
|
+
#else
|
214
|
+
#define yyset_debug core_yyset_debug
|
215
|
+
#endif
|
216
|
+
|
217
|
+
#ifdef yyget_extra
|
218
|
+
#define core_yyget_extra_ALREADY_DEFINED
|
219
|
+
#else
|
220
|
+
#define yyget_extra core_yyget_extra
|
221
|
+
#endif
|
222
|
+
|
223
|
+
#ifdef yyset_extra
|
224
|
+
#define core_yyset_extra_ALREADY_DEFINED
|
225
|
+
#else
|
226
|
+
#define yyset_extra core_yyset_extra
|
227
|
+
#endif
|
228
|
+
|
229
|
+
#ifdef yyget_in
|
230
|
+
#define core_yyget_in_ALREADY_DEFINED
|
231
|
+
#else
|
232
|
+
#define yyget_in core_yyget_in
|
233
|
+
#endif
|
234
|
+
|
235
|
+
#ifdef yyset_in
|
236
|
+
#define core_yyset_in_ALREADY_DEFINED
|
237
|
+
#else
|
238
|
+
#define yyset_in core_yyset_in
|
239
|
+
#endif
|
240
|
+
|
241
|
+
#ifdef yyget_out
|
242
|
+
#define core_yyget_out_ALREADY_DEFINED
|
243
|
+
#else
|
244
|
+
#define yyget_out core_yyget_out
|
245
|
+
#endif
|
246
|
+
|
247
|
+
#ifdef yyset_out
|
248
|
+
#define core_yyset_out_ALREADY_DEFINED
|
249
|
+
#else
|
250
|
+
#define yyset_out core_yyset_out
|
251
|
+
#endif
|
252
|
+
|
253
|
+
#ifdef yyget_leng
|
254
|
+
#define core_yyget_leng_ALREADY_DEFINED
|
255
|
+
#else
|
256
|
+
#define yyget_leng core_yyget_leng
|
257
|
+
#endif
|
258
|
+
|
259
|
+
#ifdef yyget_text
|
260
|
+
#define core_yyget_text_ALREADY_DEFINED
|
261
|
+
#else
|
262
|
+
#define yyget_text core_yyget_text
|
263
|
+
#endif
|
264
|
+
|
265
|
+
#ifdef yyget_lineno
|
266
|
+
#define core_yyget_lineno_ALREADY_DEFINED
|
267
|
+
#else
|
268
|
+
#define yyget_lineno core_yyget_lineno
|
269
|
+
#endif
|
270
|
+
|
271
|
+
#ifdef yyset_lineno
|
272
|
+
#define core_yyset_lineno_ALREADY_DEFINED
|
273
|
+
#else
|
274
|
+
#define yyset_lineno core_yyset_lineno
|
275
|
+
#endif
|
276
|
+
|
277
|
+
#ifdef yyget_column
|
278
|
+
#define core_yyget_column_ALREADY_DEFINED
|
279
|
+
#else
|
280
|
+
#define yyget_column core_yyget_column
|
281
|
+
#endif
|
282
|
+
|
283
|
+
#ifdef yyset_column
|
284
|
+
#define core_yyset_column_ALREADY_DEFINED
|
285
|
+
#else
|
286
|
+
#define yyset_column core_yyset_column
|
287
|
+
#endif
|
288
|
+
|
289
|
+
#ifdef yywrap
|
290
|
+
#define core_yywrap_ALREADY_DEFINED
|
291
|
+
#else
|
292
|
+
#define yywrap core_yywrap
|
293
|
+
#endif
|
294
|
+
|
295
|
+
#ifdef yyget_lval
|
296
|
+
#define core_yyget_lval_ALREADY_DEFINED
|
297
|
+
#else
|
298
|
+
#define yyget_lval core_yyget_lval
|
299
|
+
#endif
|
300
|
+
|
301
|
+
#ifdef yyset_lval
|
302
|
+
#define core_yyset_lval_ALREADY_DEFINED
|
303
|
+
#else
|
304
|
+
#define yyset_lval core_yyset_lval
|
305
|
+
#endif
|
306
|
+
|
307
|
+
#ifdef yyget_lloc
|
308
|
+
#define core_yyget_lloc_ALREADY_DEFINED
|
309
|
+
#else
|
310
|
+
#define yyget_lloc core_yyget_lloc
|
311
|
+
#endif
|
312
|
+
|
313
|
+
#ifdef yyset_lloc
|
314
|
+
#define core_yyset_lloc_ALREADY_DEFINED
|
315
|
+
#else
|
316
|
+
#define yyset_lloc core_yyset_lloc
|
317
|
+
#endif
|
318
|
+
|
319
|
+
#ifdef yyalloc
|
320
|
+
#define core_yyalloc_ALREADY_DEFINED
|
321
|
+
#else
|
322
|
+
#define yyalloc core_yyalloc
|
323
|
+
#endif
|
324
|
+
|
325
|
+
#ifdef yyrealloc
|
326
|
+
#define core_yyrealloc_ALREADY_DEFINED
|
327
|
+
#else
|
328
|
+
#define yyrealloc core_yyrealloc
|
329
|
+
#endif
|
330
|
+
|
331
|
+
#ifdef yyfree
|
332
|
+
#define core_yyfree_ALREADY_DEFINED
|
333
|
+
#else
|
334
|
+
#define yyfree core_yyfree
|
335
|
+
#endif
|
336
|
+
|
106
337
|
/* First, we deal with platform-specific or compiler-specific issues. */
|
107
338
|
|
108
339
|
/* begin standard C headers. */
|
@@ -144,7 +375,6 @@ typedef int flex_int32_t;
|
|
144
375
|
typedef unsigned char flex_uint8_t;
|
145
376
|
typedef unsigned short int flex_uint16_t;
|
146
377
|
typedef unsigned int flex_uint32_t;
|
147
|
-
#endif /* ! C99 */
|
148
378
|
|
149
379
|
/* Limits of integral types. */
|
150
380
|
#ifndef INT8_MIN
|
@@ -175,38 +405,32 @@ typedef unsigned int flex_uint32_t;
|
|
175
405
|
#define UINT32_MAX (4294967295U)
|
176
406
|
#endif
|
177
407
|
|
178
|
-
#
|
179
|
-
|
180
|
-
#
|
181
|
-
|
182
|
-
/* The "const" storage-class-modifier is valid. */
|
183
|
-
#define YY_USE_CONST
|
184
|
-
|
185
|
-
#else /* ! __cplusplus */
|
408
|
+
#ifndef SIZE_MAX
|
409
|
+
#define SIZE_MAX (~(size_t)0)
|
410
|
+
#endif
|
186
411
|
|
187
|
-
/* C99
|
188
|
-
#if defined (__STDC__)
|
412
|
+
#endif /* ! C99 */
|
189
413
|
|
190
|
-
#
|
414
|
+
#endif /* ! FLEXINT_H */
|
191
415
|
|
192
|
-
|
193
|
-
#endif /* ! __cplusplus */
|
416
|
+
/* begin standard C++ headers. */
|
194
417
|
|
195
|
-
|
418
|
+
/* TODO: this is always defined, so inline it */
|
196
419
|
#define yyconst const
|
420
|
+
|
421
|
+
#if defined(__GNUC__) && __GNUC__ >= 3
|
422
|
+
#define yynoreturn __attribute__((__noreturn__))
|
197
423
|
#else
|
198
|
-
#define
|
424
|
+
#define yynoreturn
|
199
425
|
#endif
|
200
426
|
|
201
427
|
/* Returned upon end-of-file. */
|
202
428
|
#define YY_NULL 0
|
203
429
|
|
204
|
-
/* Promotes a possibly negative, possibly signed char to an
|
205
|
-
*
|
206
|
-
* we want to instead treat it as an 8-bit unsigned char, hence the
|
207
|
-
* double cast.
|
430
|
+
/* Promotes a possibly negative, possibly signed char to an
|
431
|
+
* integer in range [0..255] for use as an array index.
|
208
432
|
*/
|
209
|
-
#define YY_SC_TO_UI(c) ((
|
433
|
+
#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
|
210
434
|
|
211
435
|
/* An opaque pointer. */
|
212
436
|
#ifndef YY_TYPEDEF_YY_SCANNER_T
|
@@ -230,25 +454,29 @@ typedef void* yyscan_t;
|
|
230
454
|
* definition of BEGIN.
|
231
455
|
*/
|
232
456
|
#define BEGIN yyg->yy_start = 1 + 2 *
|
233
|
-
|
234
457
|
/* Translate the current start state into a value that can be later handed
|
235
458
|
* to BEGIN to return to the state. The YYSTATE alias is for lex
|
236
459
|
* compatibility.
|
237
460
|
*/
|
238
461
|
#define YY_START ((yyg->yy_start - 1) / 2)
|
239
462
|
#define YYSTATE YY_START
|
240
|
-
|
241
463
|
/* Action number for EOF rule of a given start state. */
|
242
464
|
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
|
243
|
-
|
244
465
|
/* Special action meaning "start processing a new file". */
|
245
|
-
#define YY_NEW_FILE
|
246
|
-
|
466
|
+
#define YY_NEW_FILE yyrestart( yyin , yyscanner )
|
247
467
|
#define YY_END_OF_BUFFER_CHAR 0
|
248
468
|
|
249
469
|
/* Size of default input buffer. */
|
250
470
|
#ifndef YY_BUF_SIZE
|
471
|
+
#ifdef __ia64__
|
472
|
+
/* On IA-64, the buffer size is 16k, not 8k.
|
473
|
+
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
|
474
|
+
* Ditto for the __ia64__ case accordingly.
|
475
|
+
*/
|
476
|
+
#define YY_BUF_SIZE 32768
|
477
|
+
#else
|
251
478
|
#define YY_BUF_SIZE 16384
|
479
|
+
#endif /* __ia64__ */
|
252
480
|
#endif
|
253
481
|
|
254
482
|
/* The state buf must be large enough to hold one state per character in the main buffer.
|
@@ -268,8 +496,9 @@ typedef size_t yy_size_t;
|
|
268
496
|
#define EOB_ACT_CONTINUE_SCAN 0
|
269
497
|
#define EOB_ACT_END_OF_FILE 1
|
270
498
|
#define EOB_ACT_LAST_MATCH 2
|
271
|
-
|
499
|
+
|
272
500
|
#define YY_LESS_LINENO(n)
|
501
|
+
#define YY_LINENO_REWIND_TO(ptr)
|
273
502
|
|
274
503
|
/* Return all but the first "n" matched characters back to the input stream. */
|
275
504
|
#define yyless(n) \
|
@@ -284,7 +513,6 @@ typedef size_t yy_size_t;
|
|
284
513
|
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
|
285
514
|
} \
|
286
515
|
while ( 0 )
|
287
|
-
|
288
516
|
#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
|
289
517
|
|
290
518
|
#ifndef YY_STRUCT_YY_BUFFER_STATE
|
@@ -299,7 +527,7 @@ struct yy_buffer_state
|
|
299
527
|
/* Size of input buffer in bytes, not including room for EOB
|
300
528
|
* characters.
|
301
529
|
*/
|
302
|
-
|
530
|
+
int yy_buf_size;
|
303
531
|
|
304
532
|
/* Number of characters read into yy_ch_buf, not including EOB
|
305
533
|
* characters.
|
@@ -327,7 +555,7 @@ struct yy_buffer_state
|
|
327
555
|
|
328
556
|
int yy_bs_lineno; /**< The line count. */
|
329
557
|
int yy_bs_column; /**< The column count. */
|
330
|
-
|
558
|
+
|
331
559
|
/* Whether to try to fill the input buffer when we reach the
|
332
560
|
* end of it.
|
333
561
|
*/
|
@@ -344,7 +572,7 @@ struct yy_buffer_state
|
|
344
572
|
* possible backing-up.
|
345
573
|
*
|
346
574
|
* When we actually see the EOF, we change the status to "new"
|
347
|
-
* (via
|
575
|
+
* (via yyrestart()), so that the user can continue scanning by
|
348
576
|
* just pointing yyin at a new input file.
|
349
577
|
*/
|
350
578
|
#define YY_BUFFER_EOF_PENDING 2
|
@@ -361,73 +589,67 @@ struct yy_buffer_state
|
|
361
589
|
#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
|
362
590
|
? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
|
363
591
|
: NULL)
|
364
|
-
|
365
592
|
/* Same as previous macro, but useful when we know that the buffer stack is not
|
366
593
|
* NULL or when we need an lvalue. For internal use only.
|
367
594
|
*/
|
368
595
|
#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
|
369
596
|
|
370
|
-
void
|
371
|
-
void
|
372
|
-
YY_BUFFER_STATE
|
373
|
-
void
|
374
|
-
void
|
375
|
-
void
|
376
|
-
void
|
597
|
+
void yyrestart ( FILE *input_file , yyscan_t yyscanner );
|
598
|
+
void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
|
599
|
+
YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
|
600
|
+
void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
|
601
|
+
void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
|
602
|
+
void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
|
603
|
+
void yypop_buffer_state ( yyscan_t yyscanner );
|
377
604
|
|
378
|
-
static void
|
379
|
-
static void
|
380
|
-
static void
|
605
|
+
static void yyensure_buffer_stack ( yyscan_t yyscanner );
|
606
|
+
static void yy_load_buffer_state ( yyscan_t yyscanner );
|
607
|
+
static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
|
608
|
+
#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
|
381
609
|
|
382
|
-
|
610
|
+
YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
|
611
|
+
YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
|
612
|
+
YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, yy_size_t len , yyscan_t yyscanner );
|
383
613
|
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
void *core_yyalloc (yy_size_t ,yyscan_t yyscanner );
|
389
|
-
void *core_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
|
390
|
-
void core_yyfree (void * ,yyscan_t yyscanner );
|
391
|
-
|
392
|
-
#define yy_new_buffer core_yy_create_buffer
|
614
|
+
void *yyalloc ( yy_size_t , yyscan_t yyscanner );
|
615
|
+
void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
|
616
|
+
void yyfree ( void * , yyscan_t yyscanner );
|
393
617
|
|
618
|
+
#define yy_new_buffer yy_create_buffer
|
394
619
|
#define yy_set_interactive(is_interactive) \
|
395
620
|
{ \
|
396
621
|
if ( ! YY_CURRENT_BUFFER ){ \
|
397
|
-
|
622
|
+
yyensure_buffer_stack (yyscanner); \
|
398
623
|
YY_CURRENT_BUFFER_LVALUE = \
|
399
|
-
|
624
|
+
yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
|
400
625
|
} \
|
401
626
|
YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
|
402
627
|
}
|
403
|
-
|
404
628
|
#define yy_set_bol(at_bol) \
|
405
629
|
{ \
|
406
630
|
if ( ! YY_CURRENT_BUFFER ){\
|
407
|
-
|
631
|
+
yyensure_buffer_stack (yyscanner); \
|
408
632
|
YY_CURRENT_BUFFER_LVALUE = \
|
409
|
-
|
633
|
+
yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
|
410
634
|
} \
|
411
635
|
YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
|
412
636
|
}
|
413
|
-
|
414
637
|
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
|
415
638
|
|
416
639
|
/* Begin user sect3 */
|
417
640
|
|
418
|
-
#define core_yywrap(
|
641
|
+
#define core_yywrap(yyscanner) (/*CONSTCOND*/1)
|
419
642
|
#define YY_SKIP_YYWRAP
|
643
|
+
typedef flex_uint8_t YY_CHAR;
|
420
644
|
|
421
|
-
typedef
|
422
|
-
|
423
|
-
typedef yyconst struct yy_trans_info *yy_state_type;
|
645
|
+
typedef const struct yy_trans_info *yy_state_type;
|
424
646
|
|
425
647
|
#define yytext_ptr yytext_r
|
426
648
|
|
427
|
-
static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
|
428
|
-
static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
|
429
|
-
static int yy_get_next_buffer (yyscan_t yyscanner );
|
430
|
-
static void yy_fatal_error (
|
649
|
+
static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
|
650
|
+
static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner);
|
651
|
+
static int yy_get_next_buffer ( yyscan_t yyscanner );
|
652
|
+
static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
|
431
653
|
|
432
654
|
/* Done after the current pattern has been matched and before the
|
433
655
|
* corresponding action - sets up yytext.
|
@@ -438,7 +660,6 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
|
|
438
660
|
yyg->yy_hold_char = *yy_cp; \
|
439
661
|
*yy_cp = '\0'; \
|
440
662
|
yyg->yy_c_buf_p = yy_cp;
|
441
|
-
|
442
663
|
#define YY_NUM_RULES 66
|
443
664
|
#define YY_END_OF_BUFFER 67
|
444
665
|
struct yy_trans_info
|
@@ -446,7 +667,7 @@ struct yy_trans_info
|
|
446
667
|
flex_int16_t yy_verify;
|
447
668
|
flex_int16_t yy_nxt;
|
448
669
|
};
|
449
|
-
static
|
670
|
+
static const struct yy_trans_info yy_transition[17678] =
|
450
671
|
{
|
451
672
|
{ 0, 0 }, { 0,17422 }, { 0, 0 }, { 0,17420 }, { 1,6192 },
|
452
673
|
{ 2,6192 }, { 3,6192 }, { 4,6192 }, { 5,6192 }, { 6,6192 },
|
@@ -4282,7 +4503,7 @@ static yyconst struct yy_trans_info yy_transition[17678] =
|
|
4282
4503
|
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
|
4283
4504
|
{ 0, 0 }, { 0, 0 }, { 257, 67 }, { 1, 0 }, };
|
4284
4505
|
|
4285
|
-
static __thread
|
4506
|
+
static __thread const struct yy_trans_info *yy_start_state_list[25] =
|
4286
4507
|
{
|
4287
4508
|
&yy_transition[1],
|
4288
4509
|
&yy_transition[3],
|
@@ -4376,7 +4597,7 @@ const uint16 ScanKeywordTokens[] = {
|
|
4376
4597
|
#define YY_EXTRA_TYPE core_yy_extra_type *
|
4377
4598
|
|
4378
4599
|
/*
|
4379
|
-
* Each call to
|
4600
|
+
* Each call to yylex must set yylloc to the location of the found token
|
4380
4601
|
* (expressed as a byte offset from the start of the input text).
|
4381
4602
|
* When we parse a token that requires multiple lexer rules to process,
|
4382
4603
|
* this should be done in the first such rule, else yylloc will point
|
@@ -4425,6 +4646,7 @@ static void check_escape_warning(core_yyscan_t yyscanner);
|
|
4425
4646
|
extern int core_yyget_column(yyscan_t yyscanner);
|
4426
4647
|
extern void core_yyset_column(int column_no, yyscan_t yyscanner);
|
4427
4648
|
|
4649
|
+
#line 4600 "scan.c"
|
4428
4650
|
#define YY_NO_INPUT 1
|
4429
4651
|
/*
|
4430
4652
|
* OK, here is a short description of lex/flex rules behavior.
|
@@ -4453,16 +4675,6 @@ extern void core_yyset_column(int column_no, yyscan_t yyscanner);
|
|
4453
4675
|
* The default one is probably not the right thing.
|
4454
4676
|
*/
|
4455
4677
|
|
4456
|
-
|
4457
|
-
|
4458
|
-
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
|
4463
|
-
|
4464
|
-
|
4465
|
-
|
4466
4678
|
/*
|
4467
4679
|
* In order to make the world safe for Windows and Mac clients as well as
|
4468
4680
|
* Unix ones, we accept either \n or \r as a newline. A DOS-style \r\n
|
@@ -4583,7 +4795,7 @@ extern void core_yyset_column(int column_no, yyscan_t yyscanner);
|
|
4583
4795
|
* Note that xcstart must appear before operator, as explained above!
|
4584
4796
|
* Also whitespace (comment) must appear before operator.
|
4585
4797
|
*/
|
4586
|
-
#line
|
4798
|
+
#line 4749 "scan.c"
|
4587
4799
|
|
4588
4800
|
#define INITIAL 0
|
4589
4801
|
#define xb 1
|
@@ -4648,7 +4860,7 @@ struct yyguts_t
|
|
4648
4860
|
|
4649
4861
|
}; /* end struct yyguts_t */
|
4650
4862
|
|
4651
|
-
static int yy_init_globals (yyscan_t yyscanner );
|
4863
|
+
static int yy_init_globals ( yyscan_t yyscanner );
|
4652
4864
|
|
4653
4865
|
/* This must go here because YYSTYPE and YYLTYPE are included
|
4654
4866
|
* from bison output in section 1.*/
|
@@ -4656,46 +4868,50 @@ static int yy_init_globals (yyscan_t yyscanner );
|
|
4656
4868
|
|
4657
4869
|
# define yylloc yyg->yylloc_r
|
4658
4870
|
|
4659
|
-
int
|
4871
|
+
int yylex_init (yyscan_t* scanner);
|
4660
4872
|
|
4661
|
-
int
|
4873
|
+
int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
|
4662
4874
|
|
4663
4875
|
/* Accessor methods to globals.
|
4664
4876
|
These are made visible to non-reentrant scanners for convenience. */
|
4665
4877
|
|
4666
|
-
int
|
4878
|
+
int yylex_destroy ( yyscan_t yyscanner );
|
4879
|
+
|
4880
|
+
int yyget_debug ( yyscan_t yyscanner );
|
4881
|
+
|
4882
|
+
void yyset_debug ( int debug_flag , yyscan_t yyscanner );
|
4667
4883
|
|
4668
|
-
|
4884
|
+
YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
|
4669
4885
|
|
4670
|
-
void
|
4886
|
+
void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
|
4671
4887
|
|
4672
|
-
|
4888
|
+
FILE *yyget_in ( yyscan_t yyscanner );
|
4673
4889
|
|
4674
|
-
void
|
4890
|
+
void yyset_in ( FILE * _in_str , yyscan_t yyscanner );
|
4675
4891
|
|
4676
|
-
FILE *
|
4892
|
+
FILE *yyget_out ( yyscan_t yyscanner );
|
4677
4893
|
|
4678
|
-
void
|
4894
|
+
void yyset_out ( FILE * _out_str , yyscan_t yyscanner );
|
4679
4895
|
|
4680
|
-
|
4896
|
+
yy_size_t yyget_leng ( yyscan_t yyscanner );
|
4681
4897
|
|
4682
|
-
|
4898
|
+
char *yyget_text ( yyscan_t yyscanner );
|
4683
4899
|
|
4684
|
-
|
4900
|
+
int yyget_lineno ( yyscan_t yyscanner );
|
4685
4901
|
|
4686
|
-
|
4902
|
+
void yyset_lineno ( int _line_number , yyscan_t yyscanner );
|
4687
4903
|
|
4688
|
-
int
|
4904
|
+
int yyget_column ( yyscan_t yyscanner );
|
4689
4905
|
|
4690
|
-
void
|
4906
|
+
void yyset_column ( int _column_no , yyscan_t yyscanner );
|
4691
4907
|
|
4692
|
-
YYSTYPE *
|
4908
|
+
YYSTYPE * yyget_lval ( yyscan_t yyscanner );
|
4693
4909
|
|
4694
|
-
void
|
4910
|
+
void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
|
4695
4911
|
|
4696
|
-
YYLTYPE *
|
4912
|
+
YYLTYPE *yyget_lloc ( yyscan_t yyscanner );
|
4697
4913
|
|
4698
|
-
void
|
4914
|
+
void yyset_lloc ( YYLTYPE * yylloc_param , yyscan_t yyscanner );
|
4699
4915
|
|
4700
4916
|
/* Macros after this point can all be overridden by user definitions in
|
4701
4917
|
* section 1.
|
@@ -4703,33 +4919,41 @@ void core_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
|
|
4703
4919
|
|
4704
4920
|
#ifndef YY_SKIP_YYWRAP
|
4705
4921
|
#ifdef __cplusplus
|
4706
|
-
extern "C" int
|
4922
|
+
extern "C" int yywrap ( yyscan_t yyscanner );
|
4707
4923
|
#else
|
4708
|
-
extern int
|
4924
|
+
extern int yywrap ( yyscan_t yyscanner );
|
4709
4925
|
#endif
|
4710
4926
|
#endif
|
4711
4927
|
|
4928
|
+
#ifndef YY_NO_UNPUT
|
4929
|
+
|
4930
|
+
#endif
|
4931
|
+
|
4712
4932
|
#ifndef yytext_ptr
|
4713
|
-
static void yy_flex_strncpy (char *,
|
4933
|
+
static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
|
4714
4934
|
#endif
|
4715
4935
|
|
4716
4936
|
#ifdef YY_NEED_STRLEN
|
4717
|
-
static int yy_flex_strlen (
|
4937
|
+
static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
|
4718
4938
|
#endif
|
4719
4939
|
|
4720
4940
|
#ifndef YY_NO_INPUT
|
4721
|
-
|
4722
4941
|
#ifdef __cplusplus
|
4723
|
-
static int yyinput (yyscan_t yyscanner );
|
4942
|
+
static int yyinput ( yyscan_t yyscanner );
|
4724
4943
|
#else
|
4725
|
-
static int input (yyscan_t yyscanner );
|
4944
|
+
static int input ( yyscan_t yyscanner );
|
4726
4945
|
#endif
|
4727
4946
|
|
4728
4947
|
#endif
|
4729
4948
|
|
4730
4949
|
/* Amount of stuff to slurp up with each read. */
|
4731
4950
|
#ifndef YY_READ_BUF_SIZE
|
4951
|
+
#ifdef __ia64__
|
4952
|
+
/* On IA-64, the buffer size is 16k, not 8k */
|
4953
|
+
#define YY_READ_BUF_SIZE 16384
|
4954
|
+
#else
|
4732
4955
|
#define YY_READ_BUF_SIZE 8192
|
4956
|
+
#endif /* __ia64__ */
|
4733
4957
|
#endif
|
4734
4958
|
|
4735
4959
|
/* Copy whatever the last rule matched to the standard output. */
|
@@ -4737,7 +4961,7 @@ static int input (yyscan_t yyscanner );
|
|
4737
4961
|
/* This used to be an fputs(), but since the string might contain NUL's,
|
4738
4962
|
* we now use fwrite().
|
4739
4963
|
*/
|
4740
|
-
#define ECHO fwrite( yytext, yyleng, 1, yyout )
|
4964
|
+
#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
|
4741
4965
|
#endif
|
4742
4966
|
|
4743
4967
|
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
@@ -4761,7 +4985,7 @@ static int input (yyscan_t yyscanner );
|
|
4761
4985
|
else \
|
4762
4986
|
{ \
|
4763
4987
|
errno=0; \
|
4764
|
-
while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
|
4988
|
+
while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
|
4765
4989
|
{ \
|
4766
4990
|
if( errno != EINTR) \
|
4767
4991
|
{ \
|
@@ -4802,10 +5026,10 @@ static int input (yyscan_t yyscanner );
|
|
4802
5026
|
#ifndef YY_DECL
|
4803
5027
|
#define YY_DECL_IS_OURS 1
|
4804
5028
|
|
4805
|
-
extern int
|
4806
|
-
(YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
|
5029
|
+
extern int yylex \
|
5030
|
+
(YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner);
|
4807
5031
|
|
4808
|
-
#define YY_DECL int
|
5032
|
+
#define YY_DECL int yylex \
|
4809
5033
|
(YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
|
4810
5034
|
#endif /* !YY_DECL */
|
4811
5035
|
|
@@ -4818,7 +5042,7 @@ extern int core_yylex \
|
|
4818
5042
|
|
4819
5043
|
/* Code executed at the end of each rule. */
|
4820
5044
|
#ifndef YY_BREAK
|
4821
|
-
#define YY_BREAK break;
|
5045
|
+
#define YY_BREAK /*LINTED*/break;
|
4822
5046
|
#endif
|
4823
5047
|
|
4824
5048
|
#define YY_RULE_SETUP \
|
@@ -4828,16 +5052,11 @@ extern int core_yylex \
|
|
4828
5052
|
*/
|
4829
5053
|
YY_DECL
|
4830
5054
|
{
|
4831
|
-
|
4832
|
-
|
4833
|
-
|
5055
|
+
yy_state_type yy_current_state;
|
5056
|
+
char *yy_cp, *yy_bp;
|
5057
|
+
int yy_act;
|
4834
5058
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
4835
5059
|
|
4836
|
-
#line 420 "scan.l"
|
4837
|
-
|
4838
|
-
|
4839
|
-
#line 4791 "scan.c"
|
4840
|
-
|
4841
5060
|
yylval = yylval_param;
|
4842
5061
|
|
4843
5062
|
yylloc = yylloc_param;
|
@@ -4860,15 +5079,21 @@ YY_DECL
|
|
4860
5079
|
yyout = stdout;
|
4861
5080
|
|
4862
5081
|
if ( ! YY_CURRENT_BUFFER ) {
|
4863
|
-
|
5082
|
+
yyensure_buffer_stack (yyscanner);
|
4864
5083
|
YY_CURRENT_BUFFER_LVALUE =
|
4865
|
-
|
5084
|
+
yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
|
4866
5085
|
}
|
4867
5086
|
|
4868
|
-
|
5087
|
+
yy_load_buffer_state( yyscanner );
|
4869
5088
|
}
|
4870
5089
|
|
4871
|
-
|
5090
|
+
{
|
5091
|
+
#line 420 "scan.l"
|
5092
|
+
|
5093
|
+
|
5094
|
+
#line 5045 "scan.c"
|
5095
|
+
|
5096
|
+
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
|
4872
5097
|
{
|
4873
5098
|
yy_cp = yyg->yy_c_buf_p;
|
4874
5099
|
|
@@ -4883,12 +5108,12 @@ YY_DECL
|
|
4883
5108
|
yy_current_state = yy_start_state_list[yyg->yy_start];
|
4884
5109
|
yy_match:
|
4885
5110
|
{
|
4886
|
-
|
5111
|
+
const struct yy_trans_info *yy_trans_info;
|
4887
5112
|
|
4888
|
-
|
5113
|
+
YY_CHAR yy_c;
|
4889
5114
|
|
4890
5115
|
for ( yy_c = YY_SC_TO_UI(*yy_cp);
|
4891
|
-
(yy_trans_info = &yy_current_state[
|
5116
|
+
(yy_trans_info = &yy_current_state[yy_c])->
|
4892
5117
|
yy_verify == yy_c;
|
4893
5118
|
yy_c = YY_SC_TO_UI(*++yy_cp) )
|
4894
5119
|
yy_current_state += yy_trans_info->yy_nxt;
|
@@ -5140,6 +5365,7 @@ case 19:
|
|
5140
5365
|
case 20:
|
5141
5366
|
/* rule 20 can match eol */
|
5142
5367
|
#line 585 "scan.l"
|
5368
|
+
YY_RULE_SETUP
|
5143
5369
|
case YY_STATE_EOF(xqs):
|
5144
5370
|
#line 585 "scan.l"
|
5145
5371
|
{
|
@@ -5267,6 +5493,7 @@ case 26:
|
|
5267
5493
|
case 27:
|
5268
5494
|
/* rule 27 can match eol */
|
5269
5495
|
#line 685 "scan.l"
|
5496
|
+
YY_RULE_SETUP
|
5270
5497
|
case YY_STATE_EOF(xeu):
|
5271
5498
|
#line 685 "scan.l"
|
5272
5499
|
{
|
@@ -5658,12 +5885,15 @@ YY_RULE_SETUP
|
|
5658
5885
|
* spacing between ? as a substition character and a simple operator (e.g. "?=?")
|
5659
5886
|
*/
|
5660
5887
|
if (yytext[0] == '?' &&
|
5888
|
+
strcmp(yytext, "?<@") != 0 && strcmp(yytext, "?@>") != 0 &&
|
5889
|
+
strcmp(yytext, "?~") != 0 && strcmp(yytext, "?@") != 0 &&
|
5661
5890
|
strcmp(yytext, "?|") != 0 && strcmp(yytext, "?&") != 0 &&
|
5662
5891
|
strcmp(yytext, "?#") != 0 && strcmp(yytext, "?-") != 0 &&
|
5663
5892
|
strcmp(yytext, "?-|") != 0 && strcmp(yytext, "?||") != 0)
|
5664
5893
|
nchars = 1;
|
5665
5894
|
|
5666
5895
|
if (yytext[0] != '?' && strchr(yytext, '?') &&
|
5896
|
+
strcmp(yytext, "^?") != 0 && strcmp(yytext, "#?") != 0 &&
|
5667
5897
|
strcmp(yytext, "@?") != 0)
|
5668
5898
|
/* Lex up to just before the ? character */
|
5669
5899
|
nchars = strchr(yytext, '?') - yytext;
|
@@ -5719,7 +5949,7 @@ YY_RULE_SETUP
|
|
5719
5949
|
YY_BREAK
|
5720
5950
|
case 57:
|
5721
5951
|
YY_RULE_SETUP
|
5722
|
-
#line
|
5952
|
+
#line 1019 "scan.l"
|
5723
5953
|
{
|
5724
5954
|
SET_YYLLOC();
|
5725
5955
|
yylval->ival = atol(yytext + 1);
|
@@ -5728,7 +5958,7 @@ YY_RULE_SETUP
|
|
5728
5958
|
YY_BREAK
|
5729
5959
|
case 58:
|
5730
5960
|
YY_RULE_SETUP
|
5731
|
-
#line
|
5961
|
+
#line 1025 "scan.l"
|
5732
5962
|
{
|
5733
5963
|
SET_YYLLOC();
|
5734
5964
|
return process_integer_literal(yytext, yylval);
|
@@ -5736,7 +5966,7 @@ YY_RULE_SETUP
|
|
5736
5966
|
YY_BREAK
|
5737
5967
|
case 59:
|
5738
5968
|
YY_RULE_SETUP
|
5739
|
-
#line
|
5969
|
+
#line 1029 "scan.l"
|
5740
5970
|
{
|
5741
5971
|
SET_YYLLOC();
|
5742
5972
|
yylval->str = pstrdup(yytext);
|
@@ -5745,7 +5975,7 @@ YY_RULE_SETUP
|
|
5745
5975
|
YY_BREAK
|
5746
5976
|
case 60:
|
5747
5977
|
YY_RULE_SETUP
|
5748
|
-
#line
|
5978
|
+
#line 1034 "scan.l"
|
5749
5979
|
{
|
5750
5980
|
/* throw back the .., and treat as integer */
|
5751
5981
|
yyless(yyleng - 2);
|
@@ -5755,7 +5985,7 @@ YY_RULE_SETUP
|
|
5755
5985
|
YY_BREAK
|
5756
5986
|
case 61:
|
5757
5987
|
YY_RULE_SETUP
|
5758
|
-
#line
|
5988
|
+
#line 1040 "scan.l"
|
5759
5989
|
{
|
5760
5990
|
SET_YYLLOC();
|
5761
5991
|
yylval->str = pstrdup(yytext);
|
@@ -5764,7 +5994,7 @@ YY_RULE_SETUP
|
|
5764
5994
|
YY_BREAK
|
5765
5995
|
case 62:
|
5766
5996
|
YY_RULE_SETUP
|
5767
|
-
#line
|
5997
|
+
#line 1045 "scan.l"
|
5768
5998
|
{
|
5769
5999
|
/*
|
5770
6000
|
* throw back the [Ee], and figure out whether what
|
@@ -5777,7 +6007,7 @@ YY_RULE_SETUP
|
|
5777
6007
|
YY_BREAK
|
5778
6008
|
case 63:
|
5779
6009
|
YY_RULE_SETUP
|
5780
|
-
#line
|
6010
|
+
#line 1054 "scan.l"
|
5781
6011
|
{
|
5782
6012
|
/* throw back the [Ee][+-], and proceed as above */
|
5783
6013
|
yyless(yyleng - 2);
|
@@ -5787,7 +6017,7 @@ YY_RULE_SETUP
|
|
5787
6017
|
YY_BREAK
|
5788
6018
|
case 64:
|
5789
6019
|
YY_RULE_SETUP
|
5790
|
-
#line
|
6020
|
+
#line 1062 "scan.l"
|
5791
6021
|
{
|
5792
6022
|
int kwnum;
|
5793
6023
|
char *ident;
|
@@ -5821,14 +6051,14 @@ YY_RULE_SETUP
|
|
5821
6051
|
YY_BREAK
|
5822
6052
|
case 65:
|
5823
6053
|
YY_RULE_SETUP
|
5824
|
-
#line
|
6054
|
+
#line 1093 "scan.l"
|
5825
6055
|
{
|
5826
6056
|
SET_YYLLOC();
|
5827
6057
|
return yytext[0];
|
5828
6058
|
}
|
5829
6059
|
YY_BREAK
|
5830
6060
|
case YY_STATE_EOF(INITIAL):
|
5831
|
-
#line
|
6061
|
+
#line 1098 "scan.l"
|
5832
6062
|
{
|
5833
6063
|
SET_YYLLOC();
|
5834
6064
|
yyterminate();
|
@@ -5836,10 +6066,10 @@ case YY_STATE_EOF(INITIAL):
|
|
5836
6066
|
YY_BREAK
|
5837
6067
|
case 66:
|
5838
6068
|
YY_RULE_SETUP
|
5839
|
-
#line
|
6069
|
+
#line 1103 "scan.l"
|
5840
6070
|
YY_FATAL_ERROR( "flex scanner jammed" );
|
5841
6071
|
YY_BREAK
|
5842
|
-
#line
|
6072
|
+
#line 6023 "scan.c"
|
5843
6073
|
|
5844
6074
|
case YY_END_OF_BUFFER:
|
5845
6075
|
{
|
@@ -5855,7 +6085,7 @@ YY_FATAL_ERROR( "flex scanner jammed" );
|
|
5855
6085
|
/* We're scanning a new file or input source. It's
|
5856
6086
|
* possible that this happened because the user
|
5857
6087
|
* just pointed yyin at a new source and called
|
5858
|
-
*
|
6088
|
+
* yylex(). If so, then we have to assure
|
5859
6089
|
* consistency between YY_CURRENT_BUFFER and our
|
5860
6090
|
* globals. Here is the right place to do so, because
|
5861
6091
|
* this is the first action (other than possibly a
|
@@ -5915,7 +6145,7 @@ YY_FATAL_ERROR( "flex scanner jammed" );
|
|
5915
6145
|
{
|
5916
6146
|
yyg->yy_did_buffer_switch_on_eof = 0;
|
5917
6147
|
|
5918
|
-
if (
|
6148
|
+
if ( yywrap( yyscanner ) )
|
5919
6149
|
{
|
5920
6150
|
/* Note: because we've taken care in
|
5921
6151
|
* yy_get_next_buffer() to have set up
|
@@ -5968,7 +6198,8 @@ YY_FATAL_ERROR( "flex scanner jammed" );
|
|
5968
6198
|
"fatal flex scanner internal error--no action found" );
|
5969
6199
|
} /* end of action switch */
|
5970
6200
|
} /* end of scanning one token */
|
5971
|
-
} /* end of
|
6201
|
+
} /* end of user's declarations */
|
6202
|
+
} /* end of yylex */
|
5972
6203
|
|
5973
6204
|
/* yy_get_next_buffer - try to read in a new buffer
|
5974
6205
|
*
|
@@ -5980,9 +6211,9 @@ YY_FATAL_ERROR( "flex scanner jammed" );
|
|
5980
6211
|
static int yy_get_next_buffer (yyscan_t yyscanner)
|
5981
6212
|
{
|
5982
6213
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
5983
|
-
|
5984
|
-
|
5985
|
-
|
6214
|
+
char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
|
6215
|
+
char *source = yyg->yytext_ptr;
|
6216
|
+
int number_to_move, i;
|
5986
6217
|
int ret_val;
|
5987
6218
|
|
5988
6219
|
if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
|
@@ -6011,7 +6242,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6011
6242
|
/* Try to read more data. */
|
6012
6243
|
|
6013
6244
|
/* First move last chars to start of buffer. */
|
6014
|
-
number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr
|
6245
|
+
number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
|
6015
6246
|
|
6016
6247
|
for ( i = 0; i < number_to_move; ++i )
|
6017
6248
|
*(dest++) = *(source++);
|
@@ -6031,7 +6262,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6031
6262
|
{ /* Not enough room in the buffer - grow it. */
|
6032
6263
|
|
6033
6264
|
/* just a shorter name for the current buffer */
|
6034
|
-
YY_BUFFER_STATE b =
|
6265
|
+
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
|
6035
6266
|
|
6036
6267
|
int yy_c_buf_p_offset =
|
6037
6268
|
(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
|
@@ -6047,11 +6278,12 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6047
6278
|
|
6048
6279
|
b->yy_ch_buf = (char *)
|
6049
6280
|
/* Include room in for 2 EOB chars. */
|
6050
|
-
|
6281
|
+
yyrealloc( (void *) b->yy_ch_buf,
|
6282
|
+
(yy_size_t) (b->yy_buf_size + 2) , yyscanner );
|
6051
6283
|
}
|
6052
6284
|
else
|
6053
6285
|
/* Can't grow it, we don't own it. */
|
6054
|
-
b->yy_ch_buf =
|
6286
|
+
b->yy_ch_buf = NULL;
|
6055
6287
|
|
6056
6288
|
if ( ! b->yy_ch_buf )
|
6057
6289
|
YY_FATAL_ERROR(
|
@@ -6079,7 +6311,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6079
6311
|
if ( number_to_move == YY_MORE_ADJ )
|
6080
6312
|
{
|
6081
6313
|
ret_val = EOB_ACT_END_OF_FILE;
|
6082
|
-
|
6314
|
+
yyrestart( yyin , yyscanner);
|
6083
6315
|
}
|
6084
6316
|
|
6085
6317
|
else
|
@@ -6093,12 +6325,15 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6093
6325
|
else
|
6094
6326
|
ret_val = EOB_ACT_CONTINUE_SCAN;
|
6095
6327
|
|
6096
|
-
if ((
|
6328
|
+
if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
|
6097
6329
|
/* Extend the array by 50%, plus the number we really need. */
|
6098
6330
|
yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
|
6099
|
-
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *)
|
6331
|
+
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
|
6332
|
+
(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
|
6100
6333
|
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
|
6101
6334
|
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
|
6335
|
+
/* "- 2" to take care of EOB's */
|
6336
|
+
YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
|
6102
6337
|
}
|
6103
6338
|
|
6104
6339
|
yyg->yy_n_chars += number_to_move;
|
@@ -6114,8 +6349,8 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6114
6349
|
|
6115
6350
|
static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
|
6116
6351
|
{
|
6117
|
-
|
6118
|
-
|
6352
|
+
yy_state_type yy_current_state;
|
6353
|
+
char *yy_cp;
|
6119
6354
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6120
6355
|
|
6121
6356
|
yy_current_state = yy_start_state_list[yyg->yy_start];
|
@@ -6135,20 +6370,24 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6135
6370
|
*/
|
6136
6371
|
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
|
6137
6372
|
{
|
6138
|
-
|
6373
|
+
int yy_is_jam;
|
6139
6374
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
|
6140
6375
|
|
6141
|
-
|
6142
|
-
|
6376
|
+
int yy_c = 256;
|
6377
|
+
const struct yy_trans_info *yy_trans_info;
|
6143
6378
|
|
6144
6379
|
yy_trans_info = &yy_current_state[(unsigned int) yy_c];
|
6145
6380
|
yy_current_state += yy_trans_info->yy_nxt;
|
6146
6381
|
yy_is_jam = (yy_trans_info->yy_verify != yy_c);
|
6147
6382
|
|
6148
|
-
(void)
|
6383
|
+
(void)yyg;
|
6149
6384
|
return yy_is_jam ? 0 : yy_current_state;
|
6150
6385
|
}
|
6151
6386
|
|
6387
|
+
#ifndef YY_NO_UNPUT
|
6388
|
+
|
6389
|
+
#endif
|
6390
|
+
|
6152
6391
|
#ifndef YY_NO_INPUT
|
6153
6392
|
#ifdef __cplusplus
|
6154
6393
|
static int yyinput (yyscan_t yyscanner)
|
@@ -6191,13 +6430,13 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6191
6430
|
*/
|
6192
6431
|
|
6193
6432
|
/* Reset buffer status. */
|
6194
|
-
|
6433
|
+
yyrestart( yyin , yyscanner);
|
6195
6434
|
|
6196
6435
|
/*FALLTHROUGH*/
|
6197
6436
|
|
6198
6437
|
case EOB_ACT_END_OF_FILE:
|
6199
6438
|
{
|
6200
|
-
if (
|
6439
|
+
if ( yywrap( yyscanner ) )
|
6201
6440
|
return 0;
|
6202
6441
|
|
6203
6442
|
if ( ! yyg->yy_did_buffer_switch_on_eof )
|
@@ -6229,34 +6468,34 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6229
6468
|
* @param yyscanner The scanner object.
|
6230
6469
|
* @note This function does not reset the start condition to @c INITIAL .
|
6231
6470
|
*/
|
6232
|
-
void
|
6471
|
+
void yyrestart (FILE * input_file , yyscan_t yyscanner)
|
6233
6472
|
{
|
6234
6473
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6235
6474
|
|
6236
6475
|
if ( ! YY_CURRENT_BUFFER ){
|
6237
|
-
|
6476
|
+
yyensure_buffer_stack (yyscanner);
|
6238
6477
|
YY_CURRENT_BUFFER_LVALUE =
|
6239
|
-
|
6478
|
+
yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
|
6240
6479
|
}
|
6241
6480
|
|
6242
|
-
|
6243
|
-
|
6481
|
+
yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
|
6482
|
+
yy_load_buffer_state( yyscanner );
|
6244
6483
|
}
|
6245
6484
|
|
6246
6485
|
/** Switch to a different input buffer.
|
6247
6486
|
* @param new_buffer The new input buffer.
|
6248
6487
|
* @param yyscanner The scanner object.
|
6249
6488
|
*/
|
6250
|
-
void
|
6489
|
+
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
|
6251
6490
|
{
|
6252
6491
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6253
6492
|
|
6254
6493
|
/* TODO. We should be able to replace this entire function body
|
6255
6494
|
* with
|
6256
|
-
*
|
6257
|
-
*
|
6495
|
+
* yypop_buffer_state();
|
6496
|
+
* yypush_buffer_state(new_buffer);
|
6258
6497
|
*/
|
6259
|
-
|
6498
|
+
yyensure_buffer_stack (yyscanner);
|
6260
6499
|
if ( YY_CURRENT_BUFFER == new_buffer )
|
6261
6500
|
return;
|
6262
6501
|
|
@@ -6269,17 +6508,17 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
|
6269
6508
|
}
|
6270
6509
|
|
6271
6510
|
YY_CURRENT_BUFFER_LVALUE = new_buffer;
|
6272
|
-
|
6511
|
+
yy_load_buffer_state( yyscanner );
|
6273
6512
|
|
6274
6513
|
/* We don't actually know whether we did this switch during
|
6275
|
-
* EOF (
|
6276
|
-
* is looked at is after
|
6514
|
+
* EOF (yywrap()) processing, but the only time this flag
|
6515
|
+
* is looked at is after yywrap() is called, so it's safe
|
6277
6516
|
* to go ahead and always set it.
|
6278
6517
|
*/
|
6279
6518
|
yyg->yy_did_buffer_switch_on_eof = 1;
|
6280
6519
|
}
|
6281
6520
|
|
6282
|
-
static void
|
6521
|
+
static void yy_load_buffer_state (yyscan_t yyscanner)
|
6283
6522
|
{
|
6284
6523
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6285
6524
|
yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
|
@@ -6294,32 +6533,32 @@ static void core_yy_load_buffer_state (yyscan_t yyscanner)
|
|
6294
6533
|
* @param yyscanner The scanner object.
|
6295
6534
|
* @return the allocated buffer state.
|
6296
6535
|
*/
|
6297
|
-
YY_BUFFER_STATE
|
6536
|
+
YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
|
6298
6537
|
{
|
6299
6538
|
YY_BUFFER_STATE b;
|
6300
6539
|
|
6301
|
-
b = (YY_BUFFER_STATE)
|
6540
|
+
b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
|
6302
6541
|
if ( ! b )
|
6303
|
-
YY_FATAL_ERROR( "out of dynamic memory in
|
6542
|
+
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
6304
6543
|
|
6305
6544
|
b->yy_buf_size = size;
|
6306
6545
|
|
6307
6546
|
/* yy_ch_buf has to be 2 characters longer than the size given because
|
6308
6547
|
* we need to put in 2 end-of-buffer characters.
|
6309
6548
|
*/
|
6310
|
-
b->yy_ch_buf = (char *)
|
6549
|
+
b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
|
6311
6550
|
if ( ! b->yy_ch_buf )
|
6312
|
-
YY_FATAL_ERROR( "out of dynamic memory in
|
6551
|
+
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
6313
6552
|
|
6314
6553
|
b->yy_is_our_buffer = 1;
|
6315
6554
|
|
6316
|
-
|
6555
|
+
yy_init_buffer( b, file , yyscanner);
|
6317
6556
|
|
6318
6557
|
return b;
|
6319
6558
|
}
|
6320
6559
|
|
6321
6560
|
/** Destroy the buffer.
|
6322
|
-
* @param b a buffer created with
|
6561
|
+
* @param b a buffer created with yy_create_buffer()
|
6323
6562
|
* @param yyscanner The scanner object.
|
6324
6563
|
*/
|
6325
6564
|
|
@@ -6327,21 +6566,21 @@ static void core_yy_load_buffer_state (yyscan_t yyscanner)
|
|
6327
6566
|
|
6328
6567
|
/* Initializes or reinitializes a buffer.
|
6329
6568
|
* This function is sometimes called more than once on the same buffer,
|
6330
|
-
* such as during a
|
6569
|
+
* such as during a yyrestart() or at EOF.
|
6331
6570
|
*/
|
6332
|
-
static void
|
6571
|
+
static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
|
6333
6572
|
|
6334
6573
|
{
|
6335
6574
|
int oerrno = errno;
|
6336
6575
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6337
6576
|
|
6338
|
-
|
6577
|
+
yy_flush_buffer( b , yyscanner);
|
6339
6578
|
|
6340
6579
|
b->yy_input_file = file;
|
6341
6580
|
b->yy_fill_buffer = 1;
|
6342
6581
|
|
6343
|
-
/* If b is the current buffer, then
|
6344
|
-
* called from
|
6582
|
+
/* If b is the current buffer, then yy_init_buffer was _probably_
|
6583
|
+
* called from yyrestart() or through yy_get_next_buffer.
|
6345
6584
|
* In that case, we don't want to reset the lineno or column.
|
6346
6585
|
*/
|
6347
6586
|
if (b != YY_CURRENT_BUFFER){
|
@@ -6358,7 +6597,7 @@ static void core_yy_load_buffer_state (yyscan_t yyscanner)
|
|
6358
6597
|
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
|
6359
6598
|
* @param yyscanner The scanner object.
|
6360
6599
|
*/
|
6361
|
-
void
|
6600
|
+
void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
|
6362
6601
|
{
|
6363
6602
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6364
6603
|
if ( ! b )
|
@@ -6379,7 +6618,7 @@ static void core_yy_load_buffer_state (yyscan_t yyscanner)
|
|
6379
6618
|
b->yy_buffer_status = YY_BUFFER_NEW;
|
6380
6619
|
|
6381
6620
|
if ( b == YY_CURRENT_BUFFER )
|
6382
|
-
|
6621
|
+
yy_load_buffer_state( yyscanner );
|
6383
6622
|
}
|
6384
6623
|
|
6385
6624
|
/** Pushes the new state onto the stack. The new state becomes
|
@@ -6399,7 +6638,7 @@ static void core_yy_load_buffer_state (yyscan_t yyscanner)
|
|
6399
6638
|
/* Allocates the stack if it does not exist.
|
6400
6639
|
* Guarantees space for at least one push.
|
6401
6640
|
*/
|
6402
|
-
static void
|
6641
|
+
static void yyensure_buffer_stack (yyscan_t yyscanner)
|
6403
6642
|
{
|
6404
6643
|
yy_size_t num_to_alloc;
|
6405
6644
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
@@ -6410,15 +6649,15 @@ static void core_yyensure_buffer_stack (yyscan_t yyscanner)
|
|
6410
6649
|
* scanner will even need a stack. We use 2 instead of 1 to avoid an
|
6411
6650
|
* immediate realloc on the next call.
|
6412
6651
|
*/
|
6413
|
-
|
6414
|
-
yyg->yy_buffer_stack = (struct yy_buffer_state**)
|
6652
|
+
num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
|
6653
|
+
yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
|
6415
6654
|
(num_to_alloc * sizeof(struct yy_buffer_state*)
|
6416
6655
|
, yyscanner);
|
6417
6656
|
if ( ! yyg->yy_buffer_stack )
|
6418
|
-
YY_FATAL_ERROR( "out of dynamic memory in
|
6419
|
-
|
6657
|
+
YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
|
6658
|
+
|
6420
6659
|
memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
|
6421
|
-
|
6660
|
+
|
6422
6661
|
yyg->yy_buffer_stack_max = num_to_alloc;
|
6423
6662
|
yyg->yy_buffer_stack_top = 0;
|
6424
6663
|
return;
|
@@ -6427,15 +6666,15 @@ static void core_yyensure_buffer_stack (yyscan_t yyscanner)
|
|
6427
6666
|
if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
|
6428
6667
|
|
6429
6668
|
/* Increase the buffer to prepare for a possible push. */
|
6430
|
-
|
6669
|
+
yy_size_t grow_size = 8 /* arbitrary grow size */;
|
6431
6670
|
|
6432
6671
|
num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
|
6433
|
-
yyg->yy_buffer_stack = (struct yy_buffer_state**)
|
6672
|
+
yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
|
6434
6673
|
(yyg->yy_buffer_stack,
|
6435
6674
|
num_to_alloc * sizeof(struct yy_buffer_state*)
|
6436
6675
|
, yyscanner);
|
6437
6676
|
if ( ! yyg->yy_buffer_stack )
|
6438
|
-
YY_FATAL_ERROR( "out of dynamic memory in
|
6677
|
+
YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
|
6439
6678
|
|
6440
6679
|
/* zero only the new slots.*/
|
6441
6680
|
memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
|
@@ -6447,9 +6686,9 @@ static void core_yyensure_buffer_stack (yyscan_t yyscanner)
|
|
6447
6686
|
* @param base the character buffer
|
6448
6687
|
* @param size the size in bytes of the character buffer
|
6449
6688
|
* @param yyscanner The scanner object.
|
6450
|
-
* @return the newly allocated buffer state object.
|
6689
|
+
* @return the newly allocated buffer state object.
|
6451
6690
|
*/
|
6452
|
-
YY_BUFFER_STATE
|
6691
|
+
YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
|
6453
6692
|
{
|
6454
6693
|
YY_BUFFER_STATE b;
|
6455
6694
|
|
@@ -6457,41 +6696,41 @@ YY_BUFFER_STATE core_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yy
|
|
6457
6696
|
base[size-2] != YY_END_OF_BUFFER_CHAR ||
|
6458
6697
|
base[size-1] != YY_END_OF_BUFFER_CHAR )
|
6459
6698
|
/* They forgot to leave room for the EOB's. */
|
6460
|
-
return
|
6699
|
+
return NULL;
|
6461
6700
|
|
6462
|
-
b = (YY_BUFFER_STATE)
|
6701
|
+
b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
|
6463
6702
|
if ( ! b )
|
6464
|
-
YY_FATAL_ERROR( "out of dynamic memory in
|
6703
|
+
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
|
6465
6704
|
|
6466
|
-
b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
|
6705
|
+
b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
|
6467
6706
|
b->yy_buf_pos = b->yy_ch_buf = base;
|
6468
6707
|
b->yy_is_our_buffer = 0;
|
6469
|
-
b->yy_input_file =
|
6708
|
+
b->yy_input_file = NULL;
|
6470
6709
|
b->yy_n_chars = b->yy_buf_size;
|
6471
6710
|
b->yy_is_interactive = 0;
|
6472
6711
|
b->yy_at_bol = 1;
|
6473
6712
|
b->yy_fill_buffer = 0;
|
6474
6713
|
b->yy_buffer_status = YY_BUFFER_NEW;
|
6475
6714
|
|
6476
|
-
|
6715
|
+
yy_switch_to_buffer( b , yyscanner );
|
6477
6716
|
|
6478
6717
|
return b;
|
6479
6718
|
}
|
6480
6719
|
|
6481
|
-
/** Setup the input buffer state to scan a string. The next call to
|
6720
|
+
/** Setup the input buffer state to scan a string. The next call to yylex() will
|
6482
6721
|
* scan from a @e copy of @a str.
|
6483
6722
|
* @param yystr a NUL-terminated string to scan
|
6484
6723
|
* @param yyscanner The scanner object.
|
6485
6724
|
* @return the newly allocated buffer state object.
|
6486
6725
|
* @note If you want to scan bytes that may contain NUL values, then use
|
6487
|
-
*
|
6726
|
+
* yy_scan_bytes() instead.
|
6488
6727
|
*/
|
6489
6728
|
|
6490
6729
|
|
6491
|
-
/** Setup the input buffer state to scan the given bytes. The next call to
|
6730
|
+
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
|
6492
6731
|
* scan from a @e copy of @a bytes.
|
6493
|
-
* @param
|
6494
|
-
* @param
|
6732
|
+
* @param yybytes the byte buffer to scan
|
6733
|
+
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
|
6495
6734
|
* @param yyscanner The scanner object.
|
6496
6735
|
* @return the newly allocated buffer state object.
|
6497
6736
|
*/
|
@@ -6501,9 +6740,11 @@ YY_BUFFER_STATE core_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yy
|
|
6501
6740
|
#define YY_EXIT_FAILURE 2
|
6502
6741
|
#endif
|
6503
6742
|
|
6504
|
-
static void yy_fatal_error (
|
6743
|
+
static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
|
6505
6744
|
{
|
6506
|
-
|
6745
|
+
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6746
|
+
(void)yyg;
|
6747
|
+
fprintf( stderr, "%s\n", msg );
|
6507
6748
|
exit( YY_EXIT_FAILURE );
|
6508
6749
|
}
|
6509
6750
|
|
@@ -6514,7 +6755,7 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
|
|
6514
6755
|
do \
|
6515
6756
|
{ \
|
6516
6757
|
/* Undo effects of setting up yytext. */ \
|
6517
|
-
|
6758
|
+
yy_size_t yyless_macro_arg = (n); \
|
6518
6759
|
YY_LESS_LINENO(yyless_macro_arg);\
|
6519
6760
|
yytext[yyleng] = yyg->yy_hold_char; \
|
6520
6761
|
yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
|
@@ -6566,29 +6807,29 @@ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
|
|
6566
6807
|
* @param user_defined The data to be associated with this scanner.
|
6567
6808
|
* @param yyscanner The scanner object.
|
6568
6809
|
*/
|
6569
|
-
void
|
6810
|
+
void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
|
6570
6811
|
{
|
6571
6812
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6572
6813
|
yyextra = user_defined ;
|
6573
6814
|
}
|
6574
6815
|
|
6575
6816
|
/** Set the current line number.
|
6576
|
-
* @param
|
6817
|
+
* @param _line_number line number
|
6577
6818
|
* @param yyscanner The scanner object.
|
6578
6819
|
*/
|
6579
6820
|
|
6580
6821
|
|
6581
6822
|
/** Set the current column.
|
6582
|
-
* @param
|
6823
|
+
* @param _column_no column number
|
6583
6824
|
* @param yyscanner The scanner object.
|
6584
6825
|
*/
|
6585
6826
|
|
6586
6827
|
|
6587
6828
|
/** Set the input stream. This does not discard the current
|
6588
6829
|
* input buffer.
|
6589
|
-
* @param
|
6830
|
+
* @param _in_str A readable stream.
|
6590
6831
|
* @param yyscanner The scanner object.
|
6591
|
-
* @see
|
6832
|
+
* @see yy_switch_to_buffer
|
6592
6833
|
*/
|
6593
6834
|
|
6594
6835
|
|
@@ -6610,20 +6851,18 @@ void core_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
|
|
6610
6851
|
|
6611
6852
|
/* User-visible API */
|
6612
6853
|
|
6613
|
-
/*
|
6854
|
+
/* yylex_init is special because it creates the scanner itself, so it is
|
6614
6855
|
* the ONLY reentrant function that doesn't take the scanner as the last argument.
|
6615
6856
|
* That's why we explicitly handle the declaration, instead of using our macros.
|
6616
6857
|
*/
|
6617
|
-
|
6618
|
-
int core_yylex_init(yyscan_t* ptr_yy_globals)
|
6619
|
-
|
6858
|
+
int yylex_init(yyscan_t* ptr_yy_globals)
|
6620
6859
|
{
|
6621
6860
|
if (ptr_yy_globals == NULL){
|
6622
6861
|
errno = EINVAL;
|
6623
6862
|
return 1;
|
6624
6863
|
}
|
6625
6864
|
|
6626
|
-
*ptr_yy_globals = (yyscan_t)
|
6865
|
+
*ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
|
6627
6866
|
|
6628
6867
|
if (*ptr_yy_globals == NULL){
|
6629
6868
|
errno = ENOMEM;
|
@@ -6636,27 +6875,26 @@ int core_yylex_init(yyscan_t* ptr_yy_globals)
|
|
6636
6875
|
return yy_init_globals ( *ptr_yy_globals );
|
6637
6876
|
}
|
6638
6877
|
|
6639
|
-
/*
|
6878
|
+
/* yylex_init_extra has the same functionality as yylex_init, but follows the
|
6640
6879
|
* convention of taking the scanner as the last argument. Note however, that
|
6641
6880
|
* this is a *pointer* to a scanner, as it will be allocated by this call (and
|
6642
6881
|
* is the reason, too, why this function also must handle its own declaration).
|
6643
|
-
* The user defined value in the first argument will be available to
|
6882
|
+
* The user defined value in the first argument will be available to yyalloc in
|
6644
6883
|
* the yyextra field.
|
6645
6884
|
*/
|
6646
6885
|
|
6647
6886
|
|
6648
|
-
|
6649
6887
|
static int yy_init_globals (yyscan_t yyscanner)
|
6650
6888
|
{
|
6651
6889
|
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6652
6890
|
/* Initialization is the same as for the non-reentrant scanner.
|
6653
|
-
* This function is called from
|
6891
|
+
* This function is called from yylex_destroy(), so don't allocate here.
|
6654
6892
|
*/
|
6655
6893
|
|
6656
|
-
yyg->yy_buffer_stack =
|
6894
|
+
yyg->yy_buffer_stack = NULL;
|
6657
6895
|
yyg->yy_buffer_stack_top = 0;
|
6658
6896
|
yyg->yy_buffer_stack_max = 0;
|
6659
|
-
yyg->yy_c_buf_p =
|
6897
|
+
yyg->yy_c_buf_p = NULL;
|
6660
6898
|
yyg->yy_init = 0;
|
6661
6899
|
yyg->yy_start = 0;
|
6662
6900
|
|
@@ -6669,17 +6907,17 @@ static int yy_init_globals (yyscan_t yyscanner)
|
|
6669
6907
|
yyin = stdin;
|
6670
6908
|
yyout = stdout;
|
6671
6909
|
#else
|
6672
|
-
yyin =
|
6673
|
-
yyout =
|
6910
|
+
yyin = NULL;
|
6911
|
+
yyout = NULL;
|
6674
6912
|
#endif
|
6675
6913
|
|
6676
6914
|
/* For future reference: Set errno on error, since we are called by
|
6677
|
-
*
|
6915
|
+
* yylex_init()
|
6678
6916
|
*/
|
6679
6917
|
return 0;
|
6680
6918
|
}
|
6681
6919
|
|
6682
|
-
/*
|
6920
|
+
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
|
6683
6921
|
|
6684
6922
|
|
6685
6923
|
/*
|
@@ -6687,18 +6925,21 @@ static int yy_init_globals (yyscan_t yyscanner)
|
|
6687
6925
|
*/
|
6688
6926
|
|
6689
6927
|
#ifndef yytext_ptr
|
6690
|
-
static void yy_flex_strncpy (char* s1,
|
6928
|
+
static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
|
6691
6929
|
{
|
6692
|
-
|
6930
|
+
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
|
6931
|
+
(void)yyg;
|
6932
|
+
|
6933
|
+
int i;
|
6693
6934
|
for ( i = 0; i < n; ++i )
|
6694
6935
|
s1[i] = s2[i];
|
6695
6936
|
}
|
6696
6937
|
#endif
|
6697
6938
|
|
6698
6939
|
#ifdef YY_NEED_STRLEN
|
6699
|
-
static int yy_flex_strlen (
|
6940
|
+
static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
|
6700
6941
|
{
|
6701
|
-
|
6942
|
+
int n;
|
6702
6943
|
for ( n = 0; s[n]; ++n )
|
6703
6944
|
;
|
6704
6945
|
|
@@ -6708,14 +6949,13 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
|
|
6708
6949
|
|
6709
6950
|
#define YYTABLES_NAME "yytables"
|
6710
6951
|
|
6711
|
-
#line
|
6712
|
-
|
6952
|
+
#line 1103 "scan.l"
|
6713
6953
|
|
6714
6954
|
|
6715
6955
|
/* LCOV_EXCL_STOP */
|
6716
6956
|
|
6717
6957
|
/*
|
6718
|
-
* Arrange access to yyextra for subroutines of the main
|
6958
|
+
* Arrange access to yyextra for subroutines of the main yylex() function.
|
6719
6959
|
* We expect each subroutine to have a yyscanner parameter. Rather than
|
6720
6960
|
* use the yyget_xxx functions, which might or might not get inlined by the
|
6721
6961
|
* compiler, we cheat just a bit and cast yyscanner to the right type.
|
@@ -6817,7 +7057,7 @@ cancel_scanner_errposition_callback(ScannerCallbackState *scbstate)
|
|
6817
7057
|
* Report a lexer or grammar error.
|
6818
7058
|
*
|
6819
7059
|
* The message's cursor position is whatever YYLLOC was last set to,
|
6820
|
-
* ie, the start of the current token if called within
|
7060
|
+
* ie, the start of the current token if called within yylex(), or the
|
6821
7061
|
* most recently lexed token if called from the grammar.
|
6822
7062
|
* This is OK for syntax error messages from the Bison parser, because Bison
|
6823
7063
|
* parsers report error as soon as the first unparsable token is reached.
|
@@ -6860,8 +7100,8 @@ scanner_init(const char *str,
|
|
6860
7100
|
Size slen = strlen(str);
|
6861
7101
|
yyscan_t scanner;
|
6862
7102
|
|
6863
|
-
if (
|
6864
|
-
elog(ERROR, "
|
7103
|
+
if (yylex_init(&scanner) != 0)
|
7104
|
+
elog(ERROR, "yylex_init() failed: %m");
|
6865
7105
|
|
6866
7106
|
core_yyset_extra(yyext, scanner);
|
6867
7107
|
|
@@ -6879,7 +7119,7 @@ scanner_init(const char *str,
|
|
6879
7119
|
yyext->scanbuflen = slen;
|
6880
7120
|
memcpy(yyext->scanbuf, str, slen);
|
6881
7121
|
yyext->scanbuf[slen] = yyext->scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR;
|
6882
|
-
|
7122
|
+
yy_scan_buffer(yyext->scanbuf, slen + 2, scanner);
|
6883
7123
|
|
6884
7124
|
/* initialize literal buffer to a reasonable but expansible size */
|
6885
7125
|
yyext->literalalloc = 1024;
|
@@ -6897,7 +7137,7 @@ void
|
|
6897
7137
|
scanner_finish(core_yyscan_t yyscanner)
|
6898
7138
|
{
|
6899
7139
|
/*
|
6900
|
-
* We don't bother to call
|
7140
|
+
* We don't bother to call yylex_destroy(), because all it would do is
|
6901
7141
|
* pfree a small amount of control storage. It's cheaper to leak the
|
6902
7142
|
* storage until the parsing context is destroyed. The amount of space
|
6903
7143
|
* involved is usually negligible compared to the output parse tree
|