1
2 #line 3 "lex.grib_yy.c"
3
4 #define YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 35
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
37 */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t;
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56 #endif /* ! C99 */
57
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX (4294967295U)
85 #endif
86
87 #endif /* ! FLEXINT_H */
88
89 #ifdef __cplusplus
90
91 /* The "const" storage-class-modifier is valid. */
92 #define YY_USE_CONST
93
94 #else /* ! __cplusplus */
95
96 /* C99 requires __STDC__ to be defined as 1. */
97 #if defined (__STDC__)
98
99 #define YY_USE_CONST
100
101 #endif /* defined (__STDC__) */
102 #endif /* ! __cplusplus */
103
104 #ifdef YY_USE_CONST
105 #define grib_yyconst const
106 #else
107 #define grib_yyconst
108 #endif
109
110 /* Returned upon end-of-file. */
111 #define YY_NULL 0
112
113 /* Promotes a possibly negative, possibly signed char to an unsigned
114 * integer for use as an array index. If the signed char is negative,
115 * we want to instead treat it as an 8-bit unsigned char, hence the
116 * double cast.
117 */
118 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119
120 /* Enter a start condition. This macro really ought to take a parameter,
121 * but we do it the disgusting crufty way forced on us by the ()-less
122 * definition of BEGIN.
123 */
124 #define BEGIN (grib_yy_start) = 1 + 2 *
125
126 /* Translate the current start state into a value that can be later handed
127 * to BEGIN to return to the state. The YYSTATE alias is for lex
128 * compatibility.
129 */
130 #define YY_START (((grib_yy_start) - 1) / 2)
131 #define YYSTATE YY_START
132
133 /* Action number for EOF rule of a given start state. */
134 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135
136 /* Special action meaning "start processing a new file". */
137 #define YY_NEW_FILE grib_yyrestart(grib_yyin )
138
139 #define YY_END_OF_BUFFER_CHAR 0
140
141 /* Size of default input buffer. */
142 #ifndef YY_BUF_SIZE
143 #define YY_BUF_SIZE 16384
144 #endif
145
146 /* The state buf must be large enough to hold one state per character in the main buffer.
147 */
148 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(grib_yy_state_type))
149
150 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
151 #define YY_TYPEDEF_YY_BUFFER_STATE
152 typedef struct grib_yy_buffer_state *YY_BUFFER_STATE;
153 #endif
154
155 extern int grib_yyleng;
156
157 extern FILE *grib_yyin, *grib_yyout;
158
159 #define EOB_ACT_CONTINUE_SCAN 0
160 #define EOB_ACT_END_OF_FILE 1
161 #define EOB_ACT_LAST_MATCH 2
162
163 #define YY_LESS_LINENO(n)
164
165 /* Return all but the first "n" matched characters back to the input stream. */
166 #define grib_yyless(n) \
167 do \
168 { \
169 /* Undo effects of setting up grib_yytext. */ \
170 int grib_yyless_macro_arg = (n); \
171 YY_LESS_LINENO(grib_yyless_macro_arg);\
172 *grib_yy_cp = (grib_yy_hold_char); \
173 YY_RESTORE_YY_MORE_OFFSET \
174 (grib_yy_c_buf_p) = grib_yy_cp = grib_yy_bp + grib_yyless_macro_arg - YY_MORE_ADJ; \
175 YY_DO_BEFORE_ACTION; /* set up grib_yytext again */ \
176 } \
177 while ( 0 )
178
179 #define unput(c) grib_yyunput( c, (grib_yytext_ptr) )
180
181 #ifndef YY_TYPEDEF_YY_SIZE_T
182 #define YY_TYPEDEF_YY_SIZE_T
183 typedef size_t grib_yy_size_t;
184 #endif
185
186 #ifndef YY_STRUCT_YY_BUFFER_STATE
187 #define YY_STRUCT_YY_BUFFER_STATE
188 struct grib_yy_buffer_state
189 {
190 FILE *grib_yy_input_file;
191
192 char *grib_yy_ch_buf; /* input buffer */
193 char *grib_yy_buf_pos; /* current position in input buffer */
194
195 /* Size of input buffer in bytes, not including room for EOB
196 * characters.
197 */
198 grib_yy_size_t grib_yy_buf_size;
199
200 /* Number of characters read into grib_yy_ch_buf, not including EOB
201 * characters.
202 */
203 int grib_yy_n_chars;
204
205 /* Whether we "own" the buffer - i.e., we know we created it,
206 * and can realloc() it to grow it, and should free() it to
207 * delete it.
208 */
209 int grib_yy_is_our_buffer;
210
211 /* Whether this is an "interactive" input source; if so, and
212 * if we're using stdio for input, then we want to use getc()
213 * instead of fread(), to make sure we stop fetching input after
214 * each newline.
215 */
216 int grib_yy_is_interactive;
217
218 /* Whether we're considered to be at the beginning of a line.
219 * If so, '^' rules will be active on the next match, otherwise
220 * not.
221 */
222 int grib_yy_at_bol;
223
224 int grib_yy_bs_lineno; /**< The line count. */
225 int grib_yy_bs_column; /**< The column count. */
226
227 /* Whether to try to fill the input buffer when we reach the
228 * end of it.
229 */
230 int grib_yy_fill_buffer;
231
232 int grib_yy_buffer_status;
233
234 #define YY_BUFFER_NEW 0
235 #define YY_BUFFER_NORMAL 1
236 /* When an EOF's been seen but there's still some text to process
237 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
238 * shouldn't try reading from the input source any more. We might
239 * still have a bunch of tokens to match, though, because of
240 * possible backing-up.
241 *
242 * When we actually see the EOF, we change the status to "new"
243 * (via grib_yyrestart()), so that the user can continue scanning by
244 * just pointing grib_yyin at a new input file.
245 */
246 #define YY_BUFFER_EOF_PENDING 2
247
248 };
249 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
250
251 /* Stack of input buffers. */
252 static size_t grib_yy_buffer_stack_top = 0; /**< index of top of stack. */
253 static size_t grib_yy_buffer_stack_max = 0; /**< capacity of stack. */
254 static YY_BUFFER_STATE * grib_yy_buffer_stack = 0; /**< Stack as an array. */
255
256 /* We provide macros for accessing buffer states in case in the
257 * future we want to put the buffer states in a more general
258 * "scanner state".
259 *
260 * Returns the top of the stack, or NULL.
261 */
262 #define YY_CURRENT_BUFFER ( (grib_yy_buffer_stack) \
263 ? (grib_yy_buffer_stack)[(grib_yy_buffer_stack_top)] \
264 : NULL)
265
266 /* Same as previous macro, but useful when we know that the buffer stack is not
267 * NULL or when we need an lvalue. For internal use only.
268 */
269 #define YY_CURRENT_BUFFER_LVALUE (grib_yy_buffer_stack)[(grib_yy_buffer_stack_top)]
270
271 /* grib_yy_hold_char holds the character lost when grib_yytext is formed. */
272 static char grib_yy_hold_char;
273 static int grib_yy_n_chars; /* number of characters read into grib_yy_ch_buf */
274 int grib_yyleng;
275
276 /* Points to current character in buffer. */
277 static char *grib_yy_c_buf_p = (char *) 0;
278 static int grib_yy_init = 0; /* whether we need to initialize */
279 static int grib_yy_start = 0; /* start state number */
280
281 /* Flag which is used to allow grib_yywrap()'s to do buffer switches
282 * instead of setting up a fresh grib_yyin. A bit of a hack ...
283 */
284 static int grib_yy_did_buffer_switch_on_eof;
285
286 void grib_yyrestart (FILE *input_file );
287 void grib_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
288 YY_BUFFER_STATE grib_yy_create_buffer (FILE *file,int size );
289 void grib_yy_delete_buffer (YY_BUFFER_STATE b );
290 void grib_yy_flush_buffer (YY_BUFFER_STATE b );
291 void grib_yypush_buffer_state (YY_BUFFER_STATE new_buffer );
292 void grib_yypop_buffer_state (void );
293
294 static void grib_yyensure_buffer_stack (void );
295 static void grib_yy_load_buffer_state (void );
296 static void grib_yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
297
298 #define YY_FLUSH_BUFFER grib_yy_flush_buffer(YY_CURRENT_BUFFER )
299
300 YY_BUFFER_STATE grib_yy_scan_buffer (char *base,grib_yy_size_t size );
301 YY_BUFFER_STATE grib_yy_scan_string (grib_yyconst char *grib_yy_str );
302 YY_BUFFER_STATE grib_yy_scan_bytes (grib_yyconst char *bytes,int len );
303
304 void *grib_yyalloc (grib_yy_size_t );
305 void *grib_yyrealloc (void *,grib_yy_size_t );
306 void grib_yyfree (void * );
307
308 #define grib_yy_new_buffer grib_yy_create_buffer
309
310 #define grib_yy_set_interactive(is_interactive) \
311 { \
312 if ( ! YY_CURRENT_BUFFER ){ \
313 grib_yyensure_buffer_stack (); \
314 YY_CURRENT_BUFFER_LVALUE = \
315 grib_yy_create_buffer(grib_yyin,YY_BUF_SIZE ); \
316 } \
317 YY_CURRENT_BUFFER_LVALUE->grib_yy_is_interactive = is_interactive; \
318 }
319
320 #define grib_yy_set_bol(at_bol) \
321 { \
322 if ( ! YY_CURRENT_BUFFER ){\
323 grib_yyensure_buffer_stack (); \
324 YY_CURRENT_BUFFER_LVALUE = \
325 grib_yy_create_buffer(grib_yyin,YY_BUF_SIZE ); \
326 } \
327 YY_CURRENT_BUFFER_LVALUE->grib_yy_at_bol = at_bol; \
328 }
329
330 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->grib_yy_at_bol)
331
332 /* Begin user sect3 */
333
334 typedef unsigned char YY_CHAR;
335
336 FILE *grib_yyin = (FILE *) 0, *grib_yyout = (FILE *) 0;
337
338 typedef int grib_yy_state_type;
339
340 extern int grib_yylineno;
341
342 int grib_yylineno = 1;
343
344 extern char *grib_yytext;
345 #define grib_yytext_ptr grib_yytext
346
347 static grib_yy_state_type grib_yy_get_previous_state (void );
348 static grib_yy_state_type grib_yy_try_NUL_trans (grib_yy_state_type current_state );
349 static int grib_yy_get_next_buffer (void );
350 static void grib_yy_fatal_error (grib_yyconst char msg[] );
351
352 /* Done after the current pattern has been matched and before the
353 * corresponding action - sets up grib_yytext.
354 */
355 #define YY_DO_BEFORE_ACTION \
356 (grib_yytext_ptr) = grib_yy_bp; \
357 grib_yyleng = (size_t) (grib_yy_cp - grib_yy_bp); \
358 (grib_yy_hold_char) = *grib_yy_cp; \
359 *grib_yy_cp = '\0'; \
360 (grib_yy_c_buf_p) = grib_yy_cp;
361
362 #define YY_NUM_RULES 121
363 #define YY_END_OF_BUFFER 122
364 /* This struct is not used in this scanner,
365 but its presence is necessary. */
366 struct grib_yy_trans_info
367 {
368 flex_int32_t grib_yy_verify;
369 flex_int32_t grib_yy_nxt;
370 };
371 static grib_yyconst flex_int16_t grib_yy_accept[634] =
372 { 0,
373 118, 118, 122, 120, 118, 119, 12, 109, 117, 120,
374 120, 120, 112, 5, 120, 3, 111, 111, 111, 110,
375 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
376 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
377 120, 18, 118, 6, 14, 113, 115, 0, 114, 112,
378 0, 4, 7, 1, 2, 111, 111, 111, 111, 111,
379 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
380 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
381 111, 111, 20, 111, 10, 111, 111, 111, 111, 111,
382 111, 111, 111, 111, 111, 111, 15, 111, 111, 111,
383
384 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
385 111, 111, 111, 16, 0, 116, 114, 0, 0, 116,
386 111, 21, 111, 13, 111, 111, 111, 8, 111, 58,
387 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
388 111, 111, 32, 111, 111, 111, 111, 111, 111, 111,
389 111, 82, 111, 111, 111, 111, 111, 111, 111, 111,
390 111, 111, 111, 111, 111, 11, 111, 111, 45, 111,
391 111, 111, 111, 111, 96, 111, 111, 111, 111, 111,
392 111, 111, 111, 111, 111, 111, 111, 111, 0, 115,
393 0, 0, 114, 111, 111, 111, 111, 111, 95, 25,
394
395 111, 99, 111, 111, 111, 111, 111, 111, 111, 73,
396 111, 22, 111, 111, 111, 111, 111, 111, 111, 111,
397 111, 111, 111, 111, 111, 111, 59, 111, 111, 27,
398 111, 111, 111, 111, 41, 111, 111, 111, 111, 111,
399 17, 111, 111, 111, 111, 111, 111, 111, 111, 111,
400 107, 111, 111, 111, 111, 111, 111, 111, 111, 98,
401 111, 111, 0, 114, 111, 48, 111, 24, 111, 111,
402 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
403 39, 111, 111, 111, 111, 111, 111, 111, 111, 84,
404 88, 92, 111, 111, 26, 111, 111, 111, 111, 111,
405
406 111, 111, 111, 111, 111, 111, 43, 111, 106, 111,
407 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
408 111, 111, 81, 111, 111, 28, 104, 111, 105, 69,
409 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
410 66, 111, 111, 111, 111, 37, 75, 111, 111, 111,
411 111, 111, 111, 111, 111, 68, 111, 40, 111, 111,
412 62, 111, 111, 111, 9, 111, 111, 111, 111, 111,
413 67, 111, 111, 35, 111, 100, 111, 111, 111, 83,
414 87, 91, 111, 111, 77, 111, 111, 111, 102, 111,
415 111, 80, 101, 111, 111, 60, 111, 111, 111, 111,
416
417 111, 108, 111, 111, 111, 111, 111, 111, 111, 47,
418 57, 71, 74, 111, 111, 111, 111, 111, 111, 111,
419 111, 111, 111, 31, 111, 111, 111, 49, 111, 111,
420 111, 111, 111, 51, 111, 111, 111, 111, 111, 111,
421 33, 111, 111, 111, 111, 56, 111, 111, 111, 79,
422 111, 111, 50, 111, 111, 111, 111, 29, 111, 111,
423 111, 111, 23, 111, 36, 111, 111, 111, 111, 111,
424 111, 111, 111, 34, 111, 111, 111, 111, 54, 19,
425 42, 111, 70, 111, 111, 111, 111, 52, 111, 111,
426 111, 111, 111, 111, 78, 111, 111, 111, 111, 111,
427
428 111, 111, 111, 111, 111, 111, 97, 111, 111, 111,
429 111, 111, 111, 111, 111, 55, 111, 111, 111, 111,
430 111, 111, 111, 61, 111, 111, 53, 111, 111, 111,
431 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
432 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
433 111, 111, 111, 111, 111, 111, 111, 44, 111, 111,
434 111, 111, 111, 76, 111, 103, 111, 111, 111, 111,
435 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
436 111, 111, 111, 111, 111, 111, 46, 30, 111, 111,
437 111, 111, 72, 111, 111, 111, 111, 111, 111, 111,
438
439 111, 111, 38, 111, 64, 111, 111, 111, 111, 111,
440 111, 111, 111, 65, 111, 111, 111, 111, 111, 111,
441 111, 86, 90, 94, 111, 111, 111, 111, 85, 89,
442 93, 63, 0
443 } ;
444
445 static grib_yyconst flex_int32_t grib_yy_ec[256] =
446 { 0,
447 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
448 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
449 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
450 1, 2, 4, 5, 6, 1, 1, 7, 8, 1,
451 1, 1, 9, 1, 9, 10, 1, 11, 12, 13,
452 14, 15, 11, 16, 11, 17, 11, 1, 1, 18,
453 19, 20, 1, 1, 21, 21, 21, 21, 22, 21,
454 23, 21, 24, 21, 21, 21, 25, 26, 21, 21,
455 21, 21, 27, 21, 21, 21, 21, 21, 21, 21,
456 1, 1, 1, 1, 28, 29, 30, 31, 32, 33,
457
458 34, 35, 36, 37, 38, 21, 39, 40, 41, 42,
459 43, 44, 21, 45, 46, 47, 48, 49, 50, 51,
460 52, 21, 1, 53, 1, 54, 1, 1, 1, 1,
461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
463 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
464 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
465 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
466 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
467 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
468
469 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
470 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
471 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
473 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
474 1, 1, 1, 1, 1
475 } ;
476
477 static grib_yyconst flex_int32_t grib_yy_meta[55] =
478 { 0,
479 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
480 3, 3, 3, 3, 3, 3, 3, 1, 1, 1,
481 4, 3, 4, 4, 4, 4, 4, 4, 1, 4,
482 4, 4, 4, 3, 4, 4, 4, 4, 4, 4,
483 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
484 4, 4, 1, 1
485 } ;
486
487 static grib_yyconst flex_int16_t grib_yy_base[641] =
488 { 0,
489 0, 0, 1211, 1212, 1208, 1212, 1190, 1212, 1212, 1201,
490 44, 51, 60, 52, 1188, 1187, 62, 72, 57, 1212,
491 66, 73, 74, 75, 91, 67, 68, 76, 103, 95,
492 105, 112, 120, 77, 127, 69, 128, 135, 123, 134,
493 1152, 1212, 1202, 1212, 1212, 164, 98, 176, 106, 172,
494 188, 1212, 1212, 1212, 1212, 0, 1179, 129, 160, 172,
495 97, 183, 184, 136, 185, 161, 187, 189, 196, 190,
496 191, 195, 194, 197, 193, 198, 217, 1174, 199, 200,
497 220, 221, 1177, 224, 1176, 225, 226, 227, 228, 229,
498 230, 238, 233, 239, 240, 241, 1175, 243, 250, 252,
499
500 254, 258, 262, 140, 255, 265, 266, 267, 273, 271,
501 272, 281, 276, 1212, 311, 307, 299, 323, 331, 338,
502 332, 1174, 277, 1173, 333, 334, 336, 1172, 337, 1171,
503 339, 338, 340, 341, 345, 347, 352, 282, 353, 354,
504 356, 357, 1170, 358, 359, 351, 362, 361, 375, 366,
505 378, 393, 363, 382, 387, 388, 389, 391, 392, 395,
506 396, 398, 399, 401, 406, 402, 408, 410, 411, 415,
507 419, 416, 420, 421, 423, 428, 430, 426, 432, 433,
508 436, 435, 438, 441, 442, 445, 443, 448, 477, 485,
509 494, 501, 508, 1169, 458, 502, 503, 504, 1168, 1167,
510
511 505, 1166, 506, 507, 452, 508, 509, 510, 511, 1165,
512 514, 1164, 515, 519, 1157, 1152, 1151, 521, 522, 524,
513 449, 518, 1168, 1170, 1167, 537, 545, 530, 535, 1157,
514 544, 538, 547, 549, 1156, 550, 553, 551, 554, 552,
515 1155, 556, 557, 559, 564, 565, 567, 571, 572, 573,
516 1154, 575, 578, 579, 574, 588, 609, 580, 591, 1153,
517 598, 604, 628, 635, 605, 1152, 629, 1151, 589, 630,
518 631, 632, 613, 635, 634, 636, 639, 643, 644, 645,
519 1150, 1133, 1126, 1139, 581, 646, 647, 654, 648, 1142,
520 1141, 1140, 650, 1133, 1142, 655, 651, 658, 661, 660,
521
522 663, 665, 675, 671, 676, 679, 680, 682, 1141, 681,
523 684, 683, 686, 689, 692, 688, 703, 706, 707, 1148,
524 1150, 1147, 0, 708, 710, 1137, 1136, 307, 1135, 1134,
525 711, 712, 584, 713, 716, 718, 722, 721, 723, 725,
526 1133, 726, 1121, 1109, 1107, 1129, 1128, 729, 731, 730,
527 1111, 1110, 1109, 732, 1097, 1123, 733, 1122, 739, 738,
528 1121, 741, 742, 746, 1120, 747, 752, 754, 753, 755,
529 1119, 757, 758, 1118, 759, 1117, 760, 766, 765, 1112,
530 1111, 1110, 767, 771, 1113, 768, 774, 780, 787, 779,
531 782, 1112, 1111, 788, 793, 1110, 1105, 1102, 1093, 792,
532
533 794, 1106, 1091, 1090, 1089, 795, 1082, 798, 799, 1101,
534 1100, 1099, 1098, 803, 804, 801, 805, 806, 808, 819,
535 807, 810, 809, 1097, 1080, 1079, 1078, 1093, 824, 826,
536 828, 829, 831, 1092, 832, 834, 835, 1084, 1078, 1070,
537 1088, 836, 1064, 1063, 1062, 1084, 1058, 841, 842, 1082,
538 843, 844, 1081, 845, 846, 839, 847, 854, 848, 1066,
539 1065, 1064, 1077, 855, 1076, 860, 863, 864, 856, 865,
540 1047, 1064, 1055, 1072, 1048, 1047, 1046, 1058, 1067, 1066,
541 1065, 869, 1064, 868, 870, 872, 878, 1063, 1039, 1038,
542 1037, 880, 881, 884, 1059, 888, 889, 1035, 1053, 1065,
543
544 1039, 1038, 1037, 1031, 891, 894, 1051, 897, 893, 1027,
545 1026, 1025, 900, 905, 904, 1047, 901, 1036, 1029, 1040,
546 1033, 1032, 1031, 0, 906, 908, 1040, 913, 1023, 1022,
547 1021, 916, 918, 919, 921, 1032, 1025, 1018, 1029, 1028,
548 1027, 920, 923, 925, 1020, 1019, 1018, 926, 936, 927,
549 928, 1019, 1008, 1015, 1014, 1013, 1012, 1021, 929, 932,
550 1016, 1015, 1014, 1017, 944, 1016, 940, 996, 1002, 995,
551 994, 993, 992, 945, 948, 999, 998, 997, 949, 950,
552 997, 982, 992, 994, 993, 992, 1000, 999, 980, 979,
553 978, 952, 995, 984, 980, 969, 977, 976, 975, 979,
554
555 978, 977, 985, 973, 0, 970, 976, 975, 974, 965,
556 964, 963, 960, 0, 945, 943, 942, 953, 950, 949,
557 947, 0, 0, 0, 659, 592, 498, 439, 0, 0,
558 0, 0, 1212, 988, 989, 992, 174, 102, 993, 996
559 } ;
560
561 static grib_yyconst flex_int16_t grib_yy_def[641] =
562 { 0,
563 633, 1, 633, 633, 633, 633, 633, 633, 633, 633,
564 633, 633, 634, 633, 633, 633, 635, 635, 18, 633,
565 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
566 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
567 633, 633, 633, 633, 633, 636, 637, 633, 638, 634,
568 633, 633, 633, 633, 633, 639, 18, 18, 18, 18,
569 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
570 18, 18, 18, 18, 18, 18, 18, 639, 18, 18,
571 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
572 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
573
574 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
575 18, 18, 18, 633, 633, 640, 638, 633, 633, 633,
576 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
577 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
578 18, 18, 18, 18, 18, 639, 18, 18, 18, 18,
579 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
580 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
581 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
582 18, 18, 18, 18, 18, 18, 18, 18, 633, 633,
583 633, 633, 633, 18, 18, 18, 18, 18, 18, 18,
584
585 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
586 18, 18, 18, 18, 639, 639, 639, 18, 18, 18,
587 18, 18, 639, 639, 639, 18, 18, 18, 18, 18,
588 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
589 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
590 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
591 18, 18, 633, 633, 18, 18, 18, 18, 18, 18,
592 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
593 18, 639, 639, 639, 18, 18, 18, 18, 18, 639,
594 639, 639, 18, 639, 18, 18, 18, 18, 18, 18,
595
596 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
597 18, 18, 18, 18, 18, 18, 18, 18, 18, 639,
598 639, 639, 639, 18, 18, 18, 18, 18, 18, 18,
599 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
600 18, 18, 639, 639, 639, 18, 18, 18, 18, 18,
601 639, 639, 639, 18, 639, 18, 18, 18, 18, 18,
602 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
603 18, 18, 18, 18, 18, 18, 18, 18, 18, 639,
604 639, 639, 18, 18, 18, 18, 18, 18, 18, 18,
605 18, 18, 18, 18, 18, 18, 639, 639, 639, 18,
606
607 18, 18, 639, 639, 639, 18, 639, 18, 18, 18,
608 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
609 18, 18, 18, 18, 639, 639, 639, 18, 18, 18,
610 18, 18, 18, 18, 18, 18, 18, 639, 639, 639,
611 18, 18, 639, 639, 639, 18, 639, 18, 18, 18,
612 18, 18, 18, 18, 18, 18, 18, 18, 18, 639,
613 639, 639, 18, 18, 18, 18, 18, 18, 18, 18,
614 639, 639, 639, 18, 639, 639, 639, 639, 18, 18,
615 18, 18, 18, 18, 18, 18, 18, 18, 639, 639,
616 639, 18, 18, 18, 18, 18, 18, 639, 639, 639,
617
618 639, 639, 639, 639, 18, 18, 18, 18, 18, 639,
619 639, 639, 18, 18, 18, 18, 18, 639, 639, 639,
620 639, 639, 639, 639, 18, 18, 18, 18, 639, 639,
621 639, 18, 18, 18, 18, 639, 639, 639, 639, 639,
622 639, 18, 18, 18, 639, 639, 639, 18, 18, 18,
623 18, 639, 639, 639, 639, 639, 639, 18, 18, 18,
624 639, 639, 639, 18, 18, 18, 18, 639, 639, 639,
625 639, 639, 639, 18, 18, 639, 639, 639, 18, 18,
626 639, 639, 639, 639, 639, 639, 18, 18, 639, 639,
627 639, 18, 18, 639, 639, 639, 639, 639, 639, 639,
628
629 639, 639, 18, 639, 639, 639, 639, 639, 639, 639,
630 639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
631 639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
632 639, 639, 0, 633, 633, 633, 633, 633, 633, 633
633 } ;
634
635 static grib_yyconst flex_int16_t grib_yy_nxt[1267] =
636 { 0,
637 4, 5, 6, 7, 8, 9, 10, 8, 11, 12,
638 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
639 17, 17, 17, 17, 18, 17, 17, 19, 20, 21,
640 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
641 32, 33, 34, 35, 36, 37, 38, 39, 17, 40,
642 17, 17, 41, 42, 46, 46, 46, 46, 46, 46,
643 46, 47, 47, 47, 47, 47, 47, 47, 48, 49,
644 52, 53, 56, 56, 56, 56, 56, 56, 56, 78,
645 57, 51, 56, 56, 56, 56, 56, 56, 56, 57,
646 57, 57, 57, 51, 59, 58, 57, 57, 57, 57,
647
648 57, 79, 102, 68, 117, 60, 77, 61, 70, 62,
649 64, 63, 65, 80, 57, 66, 69, 71, 57, 115,
650 57, 97, 72, 73, 67, 98, 57, 118, 57, 124,
651 74, 115, 75, 81, 88, 57, 82, 83, 89, 118,
652 87, 76, 90, 57, 84, 92, 57, 91, 85, 86,
653 57, 57, 57, 94, 93, 121, 99, 57, 57, 57,
654 110, 103, 95, 57, 111, 104, 105, 96, 108, 100,
655 112, 101, 48, 49, 106, 176, 47, 107, 113, 109,
656 48, 49, 128, 57, 57, 51, 116, 116, 116, 116,
657 116, 116, 116, 51, 122, 57, 119, 51, 120, 120,
658
659 120, 120, 120, 120, 120, 51, 57, 57, 57, 123,
660 57, 130, 57, 57, 57, 126, 57, 57, 57, 57,
661 57, 57, 57, 57, 138, 143, 125, 129, 134, 127,
662 132, 141, 148, 131, 133, 140, 135, 136, 139, 137,
663 57, 144, 142, 57, 57, 147, 145, 57, 57, 57,
664 57, 57, 57, 57, 150, 151, 57, 155, 153, 154,
665 149, 57, 57, 57, 57, 163, 57, 165, 164, 156,
666 152, 158, 159, 57, 157, 57, 168, 57, 57, 160,
667 167, 57, 169, 161, 162, 57, 166, 172, 57, 57,
668 57, 171, 177, 174, 57, 57, 57, 170, 173, 57,
669
670 57, 184, 181, 179, 57, 57, 195, 180, 175, 178,
671 182, 208, 183, 188, 186, 48, 49, 185, 187, 189,
672 191, 190, 190, 190, 190, 190, 190, 190, 51, 385,
673 57, 192, 191, 193, 193, 193, 193, 193, 193, 193,
674 51, 120, 120, 120, 120, 120, 120, 120, 120, 120,
675 120, 120, 120, 120, 120, 57, 57, 57, 194, 57,
676 57, 57, 57, 57, 57, 201, 196, 199, 57, 198,
677 57, 197, 200, 202, 203, 57, 57, 57, 205, 57,
678 57, 57, 57, 209, 57, 57, 57, 215, 204, 57,
679 212, 216, 206, 219, 214, 218, 217, 210, 57, 221,
680
681 213, 57, 211, 207, 223, 57, 224, 226, 225, 220,
682 57, 57, 57, 227, 57, 57, 57, 222, 57, 57,
683 228, 57, 57, 229, 57, 57, 231, 235, 233, 57,
684 232, 57, 240, 57, 57, 230, 236, 238, 57, 57,
685 239, 234, 57, 57, 57, 237, 57, 241, 246, 57,
686 249, 57, 244, 57, 242, 57, 57, 243, 57, 57,
687 245, 57, 247, 252, 57, 57, 57, 248, 57, 250,
688 256, 57, 57, 251, 632, 57, 254, 255, 253, 259,
689 258, 57, 261, 288, 257, 273, 260, 190, 190, 190,
690 190, 190, 190, 190, 262, 190, 190, 190, 190, 190,
691
692 190, 190, 263, 266, 264, 264, 264, 264, 264, 264,
693 264, 193, 193, 193, 193, 193, 193, 193, 193, 193,
694 193, 193, 193, 193, 193, 57, 57, 57, 57, 57,
695 57, 57, 57, 57, 57, 270, 275, 57, 57, 631,
696 268, 57, 57, 267, 57, 57, 272, 57, 269, 280,
697 277, 278, 271, 57, 274, 286, 294, 276, 57, 279,
698 57, 57, 285, 287, 281, 289, 293, 57, 57, 295,
699 57, 297, 57, 57, 57, 57, 57, 57, 300, 57,
700 57, 296, 57, 304, 301, 298, 302, 57, 57, 305,
701 57, 299, 310, 303, 57, 57, 57, 57, 57, 307,
702
703 306, 57, 57, 57, 57, 308, 314, 57, 312, 316,
704 309, 57, 57, 313, 57, 311, 315, 324, 317, 318,
705 320, 57, 321, 319, 322, 323, 325, 57, 57, 346,
706 328, 326, 57, 630, 388, 330, 57, 327, 264, 264,
707 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
708 264, 264, 57, 57, 57, 57, 334, 57, 57, 57,
709 332, 329, 57, 331, 335, 333, 57, 57, 57, 57,
710 57, 57, 339, 57, 57, 338, 337, 57, 57, 336,
711 350, 57, 342, 57, 57, 340, 57, 347, 57, 348,
712 341, 356, 359, 349, 57, 360, 354, 357, 57, 57,
713
714 629, 358, 57, 57, 57, 57, 57, 57, 364, 57,
715 362, 57, 57, 367, 361, 57, 366, 371, 363, 369,
716 368, 374, 365, 370, 376, 372, 57, 375, 373, 57,
717 57, 57, 377, 57, 57, 57, 57, 383, 386, 57,
718 379, 57, 387, 378, 57, 57, 57, 391, 57, 57,
719 394, 384, 57, 57, 57, 57, 57, 390, 400, 389,
720 392, 57, 57, 402, 57, 57, 395, 393, 409, 57,
721 57, 410, 396, 401, 406, 57, 57, 57, 57, 414,
722 57, 57, 57, 57, 408, 413, 421, 411, 57, 57,
723 57, 57, 420, 412, 57, 417, 418, 57, 419, 423,
724
725 415, 416, 57, 57, 429, 57, 422, 432, 430, 424,
726 57, 57, 428, 431, 433, 57, 57, 57, 57, 435,
727 437, 57, 57, 442, 57, 434, 57, 57, 57, 57,
728 57, 57, 57, 57, 436, 455, 450, 451, 441, 446,
729 452, 448, 57, 458, 449, 454, 453, 57, 456, 57,
730 459, 57, 57, 457, 57, 57, 463, 57, 57, 57,
731 466, 465, 57, 464, 57, 57, 57, 57, 57, 57,
732 57, 57, 467, 468, 479, 480, 485, 57, 57, 57,
733 470, 487, 474, 57, 481, 469, 57, 57, 57, 484,
734 482, 57, 57, 57, 488, 57, 483, 506, 486, 496,
735
736 492, 57, 493, 57, 57, 494, 505, 57, 497, 507,
737 495, 57, 57, 514, 57, 508, 57, 57, 515, 509,
738 57, 516, 517, 57, 57, 513, 526, 57, 57, 57,
739 527, 57, 535, 534, 525, 528, 57, 532, 533, 57,
740 543, 57, 57, 57, 57, 542, 57, 544, 57, 57,
741 57, 57, 57, 558, 560, 57, 550, 548, 551, 57,
742 559, 564, 567, 57, 549, 565, 566, 57, 57, 575,
743 574, 57, 57, 57, 579, 57, 628, 580, 627, 626,
744 587, 593, 625, 624, 623, 603, 622, 588, 592, 50,
745 50, 57, 57, 46, 46, 56, 56, 116, 116, 621,
746
747 620, 619, 618, 617, 616, 615, 614, 613, 57, 612,
748 611, 610, 609, 608, 607, 606, 605, 604, 57, 602,
749 601, 600, 57, 57, 599, 598, 597, 596, 595, 594,
750 591, 590, 589, 586, 585, 584, 583, 582, 581, 57,
751 57, 578, 577, 576, 57, 573, 572, 571, 570, 569,
752 568, 563, 562, 561, 557, 556, 555, 554, 553, 552,
753 547, 546, 545, 57, 541, 540, 539, 538, 537, 536,
754 57, 531, 530, 529, 57, 524, 523, 522, 521, 520,
755 519, 518, 57, 512, 511, 510, 57, 57, 57, 57,
756 57, 504, 503, 502, 501, 57, 500, 499, 498, 57,
757
758 57, 491, 490, 489, 57, 57, 478, 57, 477, 476,
759 475, 57, 473, 472, 471, 57, 57, 462, 461, 460,
760 57, 57, 57, 57, 57, 447, 445, 444, 443, 57,
761 440, 439, 438, 57, 57, 57, 57, 427, 426, 425,
762 57, 57, 57, 57, 57, 57, 57, 407, 405, 404,
763 403, 57, 57, 399, 398, 397, 57, 57, 57, 57,
764 57, 382, 381, 380, 57, 57, 355, 353, 352, 351,
765 345, 344, 343, 57, 57, 57, 57, 57, 57, 57,
766 57, 292, 291, 290, 284, 283, 282, 57, 57, 57,
767 57, 57, 265, 57, 57, 57, 57, 57, 57, 57,
768
769 57, 146, 57, 43, 114, 55, 54, 45, 44, 43,
770 633, 3, 633, 633, 633, 633, 633, 633, 633, 633,
771 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
772 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
773 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
774 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
775 633, 633, 633, 633, 633, 633
776 } ;
777
778 static grib_yyconst flex_int16_t grib_yy_chk[1267] =
779 { 0,
780 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
781 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
782 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
783 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
784 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
785 1, 1, 1, 1, 11, 11, 11, 11, 11, 11,
786 11, 12, 12, 12, 12, 12, 12, 12, 13, 13,
787 14, 14, 17, 17, 17, 17, 17, 17, 17, 27,
788 19, 13, 18, 18, 18, 18, 18, 18, 18, 21,
789 26, 27, 36, 13, 19, 18, 22, 23, 24, 28,
790
791 34, 27, 36, 23, 638, 21, 26, 21, 24, 21,
792 22, 21, 22, 28, 25, 22, 23, 24, 30, 47,
793 61, 34, 24, 25, 22, 34, 29, 49, 31, 61,
794 25, 47, 25, 29, 31, 32, 29, 29, 31, 49,
795 30, 25, 31, 33, 29, 32, 39, 31, 29, 29,
796 35, 37, 58, 33, 32, 58, 35, 40, 38, 64,
797 39, 37, 33, 104, 39, 37, 37, 33, 38, 35,
798 40, 35, 46, 46, 37, 104, 637, 37, 40, 38,
799 50, 50, 64, 59, 66, 46, 48, 48, 48, 48,
800 48, 48, 48, 50, 59, 60, 51, 46, 51, 51,
801
802 51, 51, 51, 51, 51, 50, 62, 63, 65, 60,
803 67, 66, 68, 70, 71, 63, 75, 73, 72, 69,
804 74, 76, 79, 80, 70, 75, 62, 65, 69, 63,
805 68, 73, 80, 67, 68, 72, 69, 69, 71, 69,
806 77, 76, 74, 81, 82, 79, 77, 84, 86, 87,
807 88, 89, 90, 91, 82, 84, 93, 88, 86, 87,
808 81, 92, 94, 95, 96, 93, 98, 95, 94, 89,
809 84, 91, 91, 99, 90, 100, 98, 101, 105, 91,
810 96, 102, 99, 92, 92, 103, 95, 102, 106, 107,
811 108, 101, 105, 103, 110, 111, 109, 100, 102, 113,
812
813 123, 111, 109, 107, 112, 138, 123, 108, 103, 106,
814 109, 138, 110, 113, 112, 116, 116, 111, 112, 115,
815 117, 115, 115, 115, 115, 115, 115, 115, 116, 328,
816 328, 118, 117, 118, 118, 118, 118, 118, 118, 118,
817 116, 119, 119, 119, 119, 119, 119, 119, 120, 120,
818 120, 120, 120, 120, 120, 121, 125, 126, 121, 127,
819 129, 132, 131, 133, 134, 132, 125, 129, 135, 127,
820 136, 126, 131, 133, 134, 137, 139, 140, 136, 141,
821 142, 144, 145, 139, 148, 147, 153, 146, 135, 150,
822 142, 146, 136, 148, 145, 147, 146, 140, 149, 150,
823
824 144, 151, 141, 137, 152, 154, 152, 153, 152, 149,
825 155, 156, 157, 154, 158, 159, 152, 151, 160, 161,
826 155, 162, 163, 156, 164, 166, 158, 162, 160, 165,
827 159, 167, 166, 168, 169, 157, 163, 165, 170, 172,
828 165, 161, 171, 173, 174, 164, 175, 167, 172, 178,
829 175, 176, 170, 177, 168, 179, 180, 169, 182, 181,
830 171, 183, 173, 178, 184, 185, 187, 174, 186, 176,
831 182, 188, 221, 177, 628, 205, 180, 181, 179, 185,
832 184, 195, 187, 221, 183, 205, 186, 189, 189, 189,
833 189, 189, 189, 189, 188, 190, 190, 190, 190, 190,
834
835 190, 190, 191, 195, 191, 191, 191, 191, 191, 191,
836 191, 192, 192, 192, 192, 192, 192, 192, 193, 193,
837 193, 193, 193, 193, 193, 196, 197, 198, 201, 203,
838 204, 206, 207, 208, 209, 201, 207, 211, 213, 627,
839 197, 222, 214, 196, 218, 219, 204, 220, 198, 214,
840 209, 211, 203, 228, 206, 219, 227, 208, 229, 213,
841 226, 232, 218, 220, 214, 222, 226, 231, 227, 228,
842 233, 231, 234, 236, 238, 240, 237, 239, 234, 242,
843 243, 229, 244, 239, 236, 232, 237, 245, 246, 240,
844 247, 233, 246, 238, 248, 249, 250, 255, 252, 243,
845
846 242, 253, 254, 258, 285, 244, 250, 333, 248, 253,
847 245, 256, 269, 249, 259, 247, 252, 258, 254, 255,
848 257, 261, 257, 256, 257, 257, 259, 262, 265, 285,
849 265, 261, 257, 626, 333, 269, 273, 262, 263, 263,
850 263, 263, 263, 263, 263, 264, 264, 264, 264, 264,
851 264, 264, 267, 270, 271, 272, 273, 275, 274, 276,
852 271, 267, 277, 270, 274, 272, 278, 279, 280, 286,
853 287, 289, 277, 293, 297, 276, 275, 288, 296, 274,
854 289, 298, 280, 300, 299, 278, 301, 286, 302, 287,
855 279, 296, 299, 288, 304, 300, 293, 297, 303, 305,
856
857 625, 298, 306, 307, 310, 308, 312, 311, 304, 313,
858 302, 316, 314, 307, 301, 315, 306, 311, 303, 308,
859 307, 314, 305, 310, 316, 312, 317, 315, 313, 318,
860 319, 324, 317, 325, 331, 332, 334, 324, 331, 335,
861 319, 336, 332, 318, 338, 337, 339, 336, 340, 342,
862 339, 325, 348, 350, 349, 354, 357, 335, 348, 334,
863 337, 360, 359, 350, 362, 363, 340, 338, 359, 364,
864 366, 360, 342, 349, 354, 367, 369, 368, 370, 366,
865 372, 373, 375, 377, 357, 364, 375, 362, 379, 378,
866 383, 386, 373, 363, 384, 369, 370, 387, 372, 378,
867
868 367, 368, 390, 388, 384, 391, 377, 388, 386, 379,
869 389, 394, 383, 387, 389, 400, 395, 401, 406, 391,
870 395, 408, 409, 401, 416, 390, 414, 415, 417, 418,
871 421, 419, 423, 422, 394, 419, 414, 415, 400, 406,
872 416, 408, 420, 422, 409, 418, 417, 429, 420, 430,
873 423, 431, 432, 421, 433, 435, 429, 436, 437, 442,
874 432, 431, 456, 430, 448, 449, 451, 452, 454, 455,
875 457, 459, 433, 435, 448, 449, 456, 458, 464, 469,
876 437, 458, 442, 466, 451, 436, 467, 468, 470, 455,
877 452, 484, 482, 485, 459, 486, 454, 484, 457, 469,
878
879 464, 487, 466, 492, 493, 467, 482, 494, 470, 485,
880 468, 496, 497, 493, 505, 486, 509, 506, 494, 487,
881 508, 496, 497, 513, 517, 492, 506, 515, 514, 525,
882 508, 526, 517, 515, 505, 509, 528, 513, 514, 532,
883 526, 533, 534, 542, 535, 525, 543, 528, 544, 548,
884 550, 551, 559, 542, 544, 560, 534, 532, 535, 549,
885 543, 548, 551, 567, 533, 549, 550, 565, 574, 560,
886 559, 575, 579, 580, 565, 592, 621, 567, 620, 619,
887 574, 580, 618, 617, 616, 592, 615, 575, 579, 634,
888 634, 635, 635, 636, 636, 639, 639, 640, 640, 613,
889
890 612, 611, 610, 609, 608, 607, 606, 604, 603, 602,
891 601, 600, 599, 598, 597, 596, 595, 594, 593, 591,
892 590, 589, 588, 587, 586, 585, 584, 583, 582, 581,
893 578, 577, 576, 573, 572, 571, 570, 569, 568, 566,
894 564, 563, 562, 561, 558, 557, 556, 555, 554, 553,
895 552, 547, 546, 545, 541, 540, 539, 538, 537, 536,
896 531, 530, 529, 527, 523, 522, 521, 520, 519, 518,
897 516, 512, 511, 510, 507, 504, 503, 502, 501, 500,
898 499, 498, 495, 491, 490, 489, 488, 483, 481, 480,
899 479, 478, 477, 476, 475, 474, 473, 472, 471, 465,
900
901 463, 462, 461, 460, 453, 450, 447, 446, 445, 444,
902 443, 441, 440, 439, 438, 434, 428, 427, 426, 425,
903 424, 413, 412, 411, 410, 407, 405, 404, 403, 402,
904 399, 398, 397, 396, 393, 392, 385, 382, 381, 380,
905 376, 374, 371, 365, 361, 358, 356, 355, 353, 352,
906 351, 347, 346, 345, 344, 343, 341, 330, 329, 327,
907 326, 322, 321, 320, 309, 295, 294, 292, 291, 290,
908 284, 283, 282, 281, 268, 266, 260, 251, 241, 235,
909 230, 225, 224, 223, 217, 216, 215, 212, 210, 202,
910 200, 199, 194, 143, 130, 128, 124, 122, 97, 85,
911
912 83, 78, 57, 43, 41, 16, 15, 10, 7, 5,
913 3, 633, 633, 633, 633, 633, 633, 633, 633, 633,
914 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
915 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
916 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
917 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
918 633, 633, 633, 633, 633, 633
919 } ;
920
921 static grib_yy_state_type grib_yy_last_accepting_state;
922 static char *grib_yy_last_accepting_cpos;
923
924 extern int grib_yy_flex_debug;
925 int grib_yy_flex_debug = 0;
926
927 /* The intent behind this definition is that it'll catch
928 * any uses of REJECT which flex missed.
929 */
930 #define REJECT reject_used_but_not_detected
931 #define grib_yymore() grib_yymore_used_but_not_detected
932 #define YY_MORE_ADJ 0
933 #define YY_RESTORE_YY_MORE_OFFSET
934 char *grib_yytext;
935 #line 1 "gribl.l"
936 /*
937 * Copyright 2005-2018 ECMWF.
938 *
939 * This software is licensed under the terms of the Apache Licence Version 2.0
940 * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
941 *
942 * In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
943 * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
944 */
945 #line 13 "gribl.l"
946 #include "grib_api_internal.h"
947 #include "grib_yacc.h"
948 #include <ctype.h>
949
950 extern int grib_yylineno;
951
952 /* Keep -Wall quiet */
953
954
955 /*
956
957 This is needed for implementing "include", otherwise
958 flex buffer optimization break the includes.
959
960 */
961
962 #define YY_INPUT(buf,result,max_size) \
963 { \
964 int c = getc(grib_yyin); \
965 result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \
966 }
967
968
969 /*
970 #ifdef __GNUC__
971 #ifdef FLEX_SCANNER
972 void grib_yyunput (int c,char *buf_ptr );
973 void _grib_ignore_grib_yyunput_unused_error() { grib_yyunput(0,0); }
974 #endif
975 #endif
976 */
977
978 #ifdef __cplusplus
979 #define GET_INPUT grib_yyinput
980 #else
981 #define GET_INPUT input
982 #endif
983
984 #line 985 "lex.grib_yy.c"
985
986 #define INITIAL 0
987
988 #ifndef YY_NO_UNISTD_H
989 /* Special case for "unistd.h", since it is non-ANSI. We include it way
990 * down here because we want the user's section 1 to have been scanned first.
991 * The user has a chance to override it with an option.
992 */
993 #include <unistd.h>
994 #endif
995
996 #ifndef YY_EXTRA_TYPE
997 #define YY_EXTRA_TYPE void *
998 #endif
999
1000 static int grib_yy_init_globals (void );
1001
1002 /* Accessor methods to globals.
1003 These are made visible to non-reentrant scanners for convenience. */
1004
1005 int grib_yylex_destroy (void );
1006
1007 int grib_yyget_debug (void );
1008
1009 void grib_yyset_debug (int debug_flag );
1010
1011 YY_EXTRA_TYPE grib_yyget_extra (void );
1012
1013 void grib_yyset_extra (YY_EXTRA_TYPE user_defined );
1014
1015 FILE *grib_yyget_in (void );
1016
1017 void grib_yyset_in (FILE * in_str );
1018
1019 FILE *grib_yyget_out (void );
1020
1021 void grib_yyset_out (FILE * out_str );
1022
1023 int grib_yyget_leng (void );
1024
1025 char *grib_yyget_text (void );
1026
1027 int grib_yyget_lineno (void );
1028
1029 void grib_yyset_lineno (int line_number );
1030
1031 /* Macros after this point can all be overridden by user definitions in
1032 * section 1.
1033 */
1034
1035 #ifndef YY_SKIP_YYWRAP
1036 #ifdef __cplusplus
1037 extern "C" int grib_yywrap (void );
1038 #else
1039 extern int grib_yywrap (void );
1040 #endif
1041 #endif
1042
1043 void grib_yyunput (int c,char *buf_ptr );
1044
1045 #ifndef grib_yytext_ptr
1046 static void grib_yy_flex_strncpy (char *,grib_yyconst char *,int );
1047 #endif
1048
1049 #ifdef YY_NEED_STRLEN
1050 static int grib_yy_flex_strlen (grib_yyconst char * );
1051 #endif
1052
1053 #ifndef YY_NO_INPUT
1054
1055 #ifdef __cplusplus
1056 static int grib_yyinput (void );
1057 #else
1058 static int input (void );
1059 #endif
1060
1061 #endif
1062
1063 /* Amount of stuff to slurp up with each read. */
1064 #ifndef YY_READ_BUF_SIZE
1065 #define YY_READ_BUF_SIZE 8192
1066 #endif
1067
1068 /* Copy whatever the last rule matched to the standard output. */
1069 #ifndef ECHO
1070 /* This used to be an fputs(), but since the string might contain NUL's,
1071 * we now use fwrite().
1072 */
1073 #define ECHO fwrite( grib_yytext, grib_yyleng, 1, grib_yyout )
1074 #endif
1075
1076 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1077 * is returned in "result".
1078 */
1079 #ifndef YY_INPUT
1080 #define YY_INPUT(buf,result,max_size) \
1081 if ( YY_CURRENT_BUFFER_LVALUE->grib_yy_is_interactive ) \
1082 { \
1083 int c = '*'; \
1084 int n; \
1085 for ( n = 0; n < max_size && \
1086 (c = getc( grib_yyin )) != EOF && c != '\n'; ++n ) \
1087 buf[n] = (char) c; \
1088 if ( c == '\n' ) \
1089 buf[n++] = (char) c; \
1090 if ( c == EOF && ferror( grib_yyin ) ) \
1091 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1092 result = n; \
1093 } \
1094 else \
1095 { \
1096 errno=0; \
1097 while ( (result = fread(buf, 1, max_size, grib_yyin))==0 && ferror(grib_yyin)) \
1098 { \
1099 if( errno != EINTR) \
1100 { \
1101 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1102 break; \
1103 } \
1104 errno=0; \
1105 clearerr(grib_yyin); \
1106 } \
1107 }\
1108 \
1109
1110 #endif
1111
1112 /* No semi-colon after return; correct usage is to write "grib_yyterminate();" -
1113 * we don't want an extra ';' after the "return" because that will cause
1114 * some compilers to complain about unreachable statements.
1115 */
1116 #ifndef grib_yyterminate
1117 #define grib_yyterminate() return YY_NULL
1118 #endif
1119
1120 /* Number of entries by which start-condition stack grows. */
1121 #ifndef YY_START_STACK_INCR
1122 #define YY_START_STACK_INCR 25
1123 #endif
1124
1125 /* Report a fatal error. */
1126 #ifndef YY_FATAL_ERROR
1127 #define YY_FATAL_ERROR(msg) grib_yy_fatal_error( msg )
1128 #endif
1129
1130 /* end tables serialization structures and prototypes */
1131
1132 /* Default declaration of generated scanner - a define so the user can
1133 * easily add parameters.
1134 */
1135 #ifndef YY_DECL
1136 #define YY_DECL_IS_OURS 1
1137
1138 extern int grib_yylex (void);
1139
1140 #define YY_DECL int grib_yylex (void)
1141 #endif /* !YY_DECL */
1142
1143 /* Code executed at the beginning of each rule, after grib_yytext and grib_yyleng
1144 * have been set up.
1145 */
1146 #ifndef YY_USER_ACTION
1147 #define YY_USER_ACTION
1148 #endif
1149
1150 /* Code executed at the end of each rule. */
1151 #ifndef YY_BREAK
1152 #define YY_BREAK break;
1153 #endif
1154
1155 #define YY_RULE_SETUP \
1156 YY_USER_ACTION
1157
1158 /** The main scanner function which does all the work.
1159 */
1160 YY_DECL
1161 {
1162 register grib_yy_state_type grib_yy_current_state;
1163 register char *grib_yy_cp, *grib_yy_bp;
1164 register int grib_yy_act;
1165
1166 #line 65 "gribl.l"
1167
1168
1169
1170 #line 1171 "lex.grib_yy.c"
1171
1172 if ( !(grib_yy_init) )
1173 {
1174 (grib_yy_init) = 1;
1175
1176 #ifdef YY_USER_INIT
1177 YY_USER_INIT;
1178 #endif
1179
1180 if ( ! (grib_yy_start) )
1181 (grib_yy_start) = 1; /* first start state */
1182
1183 if ( ! grib_yyin )
1184 grib_yyin = stdin;
1185
1186 if ( ! grib_yyout )
1187 grib_yyout = stdout;
1188
1189 if ( ! YY_CURRENT_BUFFER ) {
1190 grib_yyensure_buffer_stack ();
1191 YY_CURRENT_BUFFER_LVALUE =
1192 grib_yy_create_buffer(grib_yyin,YY_BUF_SIZE );
1193 }
1194
1195 grib_yy_load_buffer_state( );
1196 }
1197
1198 while ( 1 ) /* loops until end-of-file is reached */
1199 {
1200 grib_yy_cp = (grib_yy_c_buf_p);
1201
1202 /* Support of grib_yytext. */
1203 *grib_yy_cp = (grib_yy_hold_char);
1204
1205 /* grib_yy_bp points to the position in grib_yy_ch_buf of the start of
1206 * the current run.
1207 */
1208 grib_yy_bp = grib_yy_cp;
1209
1210 grib_yy_current_state = (grib_yy_start);
1211 grib_yy_match:
1212 do
1213 {
1214 register YY_CHAR grib_yy_c = grib_yy_ec[YY_SC_TO_UI(*grib_yy_cp)];
1215 if ( grib_yy_accept[grib_yy_current_state] )
1216 {
1217 (grib_yy_last_accepting_state) = grib_yy_current_state;
1218 (grib_yy_last_accepting_cpos) = grib_yy_cp;
1219 }
1220 while ( grib_yy_chk[grib_yy_base[grib_yy_current_state] + grib_yy_c] != grib_yy_current_state )
1221 {
1222 grib_yy_current_state = (int) grib_yy_def[grib_yy_current_state];
1223 if ( grib_yy_current_state >= 634 )
1224 grib_yy_c = grib_yy_meta[(unsigned int) grib_yy_c];
1225 }
1226 grib_yy_current_state = grib_yy_nxt[grib_yy_base[grib_yy_current_state] + (unsigned int) grib_yy_c];
1227 ++grib_yy_cp;
1228 }
1229 while ( grib_yy_base[grib_yy_current_state] != 1212 );
1230
1231 grib_yy_find_action:
1232 grib_yy_act = grib_yy_accept[grib_yy_current_state];
1233 if ( grib_yy_act == 0 )
1234 { /* have to back up */
1235 grib_yy_cp = (grib_yy_last_accepting_cpos);
1236 grib_yy_current_state = (grib_yy_last_accepting_state);
1237 grib_yy_act = grib_yy_accept[grib_yy_current_state];
1238 }
1239
1240 YY_DO_BEFORE_ACTION;
1241
1242 do_action: /* This label is used only to access EOF actions. */
1243
1244 switch ( grib_yy_act )
1245 { /* beginning of action switch */
1246 case 0: /* must back up */
1247 /* undo the effects of YY_DO_BEFORE_ACTION */
1248 *grib_yy_cp = (grib_yy_hold_char);
1249 grib_yy_cp = (grib_yy_last_accepting_cpos);
1250 grib_yy_current_state = (grib_yy_last_accepting_state);
1251 goto grib_yy_find_action;
1252
1253 case 1:
1254 YY_RULE_SETUP
1255 #line 68 "gribl.l"
1256 return EQ ;
1257 YY_BREAK
1258 case 2:
1259 YY_RULE_SETUP
1260 #line 69 "gribl.l"
1261 return GE ;
1262 YY_BREAK
1263 case 3:
1264 YY_RULE_SETUP
1265 #line 70 "gribl.l"
1266 return GT ;
1267 YY_BREAK
1268 case 4:
1269 YY_RULE_SETUP
1270 #line 71 "gribl.l"
1271 return LE ;
1272 YY_BREAK
1273 case 5:
1274 YY_RULE_SETUP
1275 #line 72 "gribl.l"
1276 return LT ;
1277 YY_BREAK
1278 case 6:
1279 YY_RULE_SETUP
1280 #line 73 "gribl.l"
1281 return NE ;
1282 YY_BREAK
1283 case 7:
1284 YY_RULE_SETUP
1285 #line 74 "gribl.l"
1286 return NE ;
1287 YY_BREAK
1288 case 8:
1289 YY_RULE_SETUP
1290 #line 75 "gribl.l"
1291 return BIT ;
1292 YY_BREAK
1293 case 9:
1294 YY_RULE_SETUP
1295 #line 76 "gribl.l"
1296 return BITOFF ;
1297 YY_BREAK
1298 case 10:
1299 YY_RULE_SETUP
1300 #line 78 "gribl.l"
1301 return IS ;
1302 YY_BREAK
1303 case 11:
1304 YY_RULE_SETUP
1305 #line 79 "gribl.l"
1306 return NOT ;
1307 YY_BREAK
1308 case 12:
1309 YY_RULE_SETUP
1310 #line 80 "gribl.l"
1311 return NOT ;
1312 YY_BREAK
1313 case 13:
1314 YY_RULE_SETUP
1315 #line 81 "gribl.l"
1316 return AND ;
1317 YY_BREAK
1318 case 14:
1319 YY_RULE_SETUP
1320 #line 82 "gribl.l"
1321 return AND ;
1322 YY_BREAK
1323 case 15:
1324 YY_RULE_SETUP
1325 #line 83 "gribl.l"
1326 return OR ;
1327 YY_BREAK
1328 case 16:
1329 YY_RULE_SETUP
1330 #line 84 "gribl.l"
1331 return OR ;
1332 YY_BREAK
1333 case 17:
1334 YY_RULE_SETUP
1335 #line 86 "gribl.l"
1336 return NIL ;
1337 YY_BREAK
1338 case 18:
1339 YY_RULE_SETUP
1340 #line 87 "gribl.l"
1341 return DUMMY ;
1342 YY_BREAK
1343 case 19:
1344 YY_RULE_SETUP
1345 #line 89 "gribl.l"
1346 return LOWERCASE;
1347 YY_BREAK
1348 case 20:
1349 YY_RULE_SETUP
1350 #line 90 "gribl.l"
1351 return IF ;
1352 YY_BREAK
1353 case 21:
1354 YY_RULE_SETUP
1355 #line 91 "gribl.l"
1356 return IF_TRANSIENT ;
1357 YY_BREAK
1358 case 22:
1359 YY_RULE_SETUP
1360 #line 92 "gribl.l"
1361 return ELSE ;
1362 YY_BREAK
1363 case 23:
1364 YY_RULE_SETUP
1365 #line 93 "gribl.l"
1366 return UNSIGNED ;
1367 YY_BREAK
1368 case 24:
1369 YY_RULE_SETUP
1370 #line 94 "gribl.l"
1371 return ASCII ;
1372 YY_BREAK
1373 case 25:
1374 YY_RULE_SETUP
1375 #line 95 "gribl.l"
1376 return BYTE ;
1377 YY_BREAK
1378 case 26:
1379 YY_RULE_SETUP
1380 #line 96 "gribl.l"
1381 return LABEL ;
1382 YY_BREAK
1383 case 27:
1384 YY_RULE_SETUP
1385 #line 97 "gribl.l"
1386 return LIST ;
1387 YY_BREAK
1388 case 28:
1389 YY_RULE_SETUP
1390 #line 98 "gribl.l"
1391 return WHILE ;
1392 YY_BREAK
1393 case 29:
1394 YY_RULE_SETUP
1395 #line 99 "gribl.l"
1396 return TEMPLATE ;
1397 YY_BREAK
1398 case 30:
1399 YY_RULE_SETUP
1400 #line 100 "gribl.l"
1401 return TEMPLATE_NOFAIL ;
1402 YY_BREAK
1403 case 31:
1404 YY_RULE_SETUP
1405 #line 101 "gribl.l"
1406 return TRIGGER ;
1407 YY_BREAK
1408 case 32:
1409 YY_RULE_SETUP
1410 #line 102 "gribl.l"
1411 return END ;
1412 YY_BREAK
1413 case 33:
1414 YY_RULE_SETUP
1415 #line 103 "gribl.l"
1416 return IBMFLOAT ;
1417 YY_BREAK
1418 case 34:
1419 YY_RULE_SETUP
1420 #line 104 "gribl.l"
1421 return FLOAT ;
1422 YY_BREAK
1423 case 35:
1424 YY_RULE_SETUP
1425 #line 105 "gribl.l"
1426 return SIGNED ;
1427 YY_BREAK
1428 case 36:
1429 YY_RULE_SETUP
1430 #line 106 "gribl.l"
1431 return CODETABLE;
1432 YY_BREAK
1433 case 37:
1434 YY_RULE_SETUP
1435 #line 107 "gribl.l"
1436 return GETENV;
1437 YY_BREAK
1438 case 38:
1439 YY_RULE_SETUP
1440 #line 108 "gribl.l"
1441 return CODETABLE;
1442 YY_BREAK
1443 case 39:
1444 YY_RULE_SETUP
1445 #line 109 "gribl.l"
1446 return FLAG ;
1447 YY_BREAK
1448 case 40:
1449 YY_RULE_SETUP
1450 #line 110 "gribl.l"
1451 return LOOKUP ;
1452 YY_BREAK
1453 case 41:
1454 YY_RULE_SETUP
1455 #line 111 "gribl.l"
1456 return META ;
1457 YY_BREAK
1458 case 42:
1459 YY_RULE_SETUP
1460 #line 112 "gribl.l"
1461 return PADTOEVEN ;
1462 YY_BREAK
1463 case 43:
1464 YY_RULE_SETUP
1465 #line 113 "gribl.l"
1466 return PADTO ;
1467 YY_BREAK
1468 case 44:
1469 YY_RULE_SETUP
1470 #line 114 "gribl.l"
1471 return PADTOMULTIPLE ;
1472 YY_BREAK
1473 case 45:
1474 YY_RULE_SETUP
1475 #line 115 "gribl.l"
1476 return PAD ;
1477 YY_BREAK
1478 case 46:
1479 YY_RULE_SETUP
1480 #line 116 "gribl.l"
1481 return SECTION_PADDING ;
1482 YY_BREAK
1483 case 47:
1484 YY_RULE_SETUP
1485 #line 117 "gribl.l"
1486 return MESSAGE ;
1487 YY_BREAK
1488 case 48:
1489 YY_RULE_SETUP
1490 #line 118 "gribl.l"
1491 return ALIAS ;
1492 YY_BREAK
1493 case 49:
1494 YY_RULE_SETUP
1495 #line 119 "gribl.l"
1496 return UNALIAS ;
1497 YY_BREAK
1498 case 50:
1499 YY_RULE_SETUP
1500 #line 120 "gribl.l"
1501 return POS ;
1502 YY_BREAK
1503 case 51:
1504 YY_RULE_SETUP
1505 #line 121 "gribl.l"
1506 return INTCONST ;
1507 YY_BREAK
1508 case 52:
1509 YY_RULE_SETUP
1510 #line 122 "gribl.l"
1511 return TRANS ;
1512 YY_BREAK
1513 case 53:
1514 YY_RULE_SETUP
1515 #line 123 "gribl.l"
1516 return STRING_TYPE ;
1517 YY_BREAK
1518 case 54:
1519 YY_RULE_SETUP
1520 #line 124 "gribl.l"
1521 return LONG_TYPE ;
1522 YY_BREAK
1523 case 55:
1524 YY_RULE_SETUP
1525 #line 125 "gribl.l"
1526 return DOUBLE_TYPE ;
1527 YY_BREAK
1528 case 56:
1529 YY_RULE_SETUP
1530 #line 126 "gribl.l"
1531 return ITERATOR ;
1532 YY_BREAK
1533 case 57:
1534 YY_RULE_SETUP
1535 #line 127 "gribl.l"
1536 return NEAREST ;
1537 YY_BREAK
1538 case 58:
1539 YY_RULE_SETUP
1540 #line 128 "gribl.l"
1541 return BOX ;
1542 YY_BREAK
1543 case 59:
1544 YY_RULE_SETUP
1545 #line 129 "gribl.l"
1546 return KSEC ;
1547 YY_BREAK
1548 case 60:
1549 YY_RULE_SETUP
1550 #line 130 "gribl.l"
1551 return FLAGBIT ;
1552 YY_BREAK
1553 case 61:
1554 YY_RULE_SETUP
1555 #line 131 "gribl.l"
1556 return KSEC1EXPVER ;
1557 YY_BREAK
1558 case 62:
1559 YY_RULE_SETUP
1560 #line 132 "gribl.l"
1561 return MODIFY ;
1562 YY_BREAK
1563 case 63:
1564 YY_RULE_SETUP
1565 #line 134 "gribl.l"
1566 return G1_HALF_BYTE ;
1567 YY_BREAK
1568 case 64:
1569 YY_RULE_SETUP
1570 #line 135 "gribl.l"
1571 return G1_MESSAGE_LENGTH ;
1572 YY_BREAK
1573 case 65:
1574 YY_RULE_SETUP
1575 #line 136 "gribl.l"
1576 return G1_SECTION4_LENGTH ;
1577 YY_BREAK
1578 case 66:
1579 YY_RULE_SETUP
1580 #line 138 "gribl.l"
1581 return EXPORT;
1582 YY_BREAK
1583 case 67:
1584 YY_RULE_SETUP
1585 #line 139 "gribl.l"
1586 return REMOVE;
1587 YY_BREAK
1588 case 68:
1589 YY_RULE_SETUP
1590 #line 141 "gribl.l"
1591 return SECTION_LENGTH ;
1592 YY_BREAK
1593 case 69:
1594 YY_RULE_SETUP
1595 #line 143 "gribl.l"
1596 return ASSERT ;
1597 YY_BREAK
1598 case 70:
1599 YY_RULE_SETUP
1600 #line 145 "gribl.l"
1601 return READ_ONLY;
1602 YY_BREAK
1603 case 71:
1604 YY_RULE_SETUP
1605 #line 146 "gribl.l"
1606 return NO_COPY;
1607 YY_BREAK
1608 case 72:
1609 YY_RULE_SETUP
1610 #line 147 "gribl.l"
1611 return EDITION_SPECIFIC;
1612 YY_BREAK
1613 case 73:
1614 YY_RULE_SETUP
1615 #line 148 "gribl.l"
1616 return DUMP;
1617 YY_BREAK
1618 case 74:
1619 YY_RULE_SETUP
1620 #line 149 "gribl.l"
1621 return NO_FAIL;
1622 YY_BREAK
1623 case 75:
1624 YY_RULE_SETUP
1625 #line 150 "gribl.l"
1626 return HIDDEN;
1627 YY_BREAK
1628 case 76:
1629 YY_RULE_SETUP
1630 #line 151 "gribl.l"
1631 return CAN_BE_MISSING;
1632 YY_BREAK
1633 case 77:
1634 YY_RULE_SETUP
1635 #line 152 "gribl.l"
1636 return MISSING;
1637 YY_BREAK
1638 case 78:
1639 YY_RULE_SETUP
1640 #line 153 "gribl.l"
1641 return CONSTRAINT;
1642 YY_BREAK
1643 case 79:
1644 YY_RULE_SETUP
1645 #line 154 "gribl.l"
1646 return OVERRIDE;
1647 YY_BREAK
1648 case 80:
1649 YY_RULE_SETUP
1650 #line 155 "gribl.l"
1651 return COPY_OK;
1652 YY_BREAK
1653 case 81:
1654 YY_RULE_SETUP
1655 #line 157 "gribl.l"
1656 return UINT8;
1657 YY_BREAK
1658 case 82:
1659 YY_RULE_SETUP
1660 #line 158 "gribl.l"
1661 return INT8;
1662 YY_BREAK
1663 case 83:
1664 YY_RULE_SETUP
1665 #line 160 "gribl.l"
1666 return UINT16;
1667 YY_BREAK
1668 case 84:
1669 YY_RULE_SETUP
1670 #line 161 "gribl.l"
1671 return INT16;
1672 YY_BREAK
1673 case 85:
1674 YY_RULE_SETUP
1675 #line 162 "gribl.l"
1676 return UINT16_LITTLE_ENDIAN;
1677 YY_BREAK
1678 case 86:
1679 YY_RULE_SETUP
1680 #line 163 "gribl.l"
1681 return INT16_LITTLE_ENDIAN;
1682 YY_BREAK
1683 case 87:
1684 YY_RULE_SETUP
1685 #line 165 "gribl.l"
1686 return UINT32;
1687 YY_BREAK
1688 case 88:
1689 YY_RULE_SETUP
1690 #line 166 "gribl.l"
1691 return INT32;
1692 YY_BREAK
1693 case 89:
1694 YY_RULE_SETUP
1695 #line 167 "gribl.l"
1696 return UINT32_LITTLE_ENDIAN;
1697 YY_BREAK
1698 case 90:
1699 YY_RULE_SETUP
1700 #line 168 "gribl.l"
1701 return INT32_LITTLE_ENDIAN;
1702 YY_BREAK
1703 case 91:
1704 YY_RULE_SETUP
1705 #line 170 "gribl.l"
1706 return UINT64;
1707 YY_BREAK
1708 case 92:
1709 YY_RULE_SETUP
1710 #line 171 "gribl.l"
1711 return INT64;
1712 YY_BREAK
1713 case 93:
1714 YY_RULE_SETUP
1715 #line 172 "gribl.l"
1716 return UINT64_LITTLE_ENDIAN;
1717 YY_BREAK
1718 case 94:
1719 YY_RULE_SETUP
1720 #line 173 "gribl.l"
1721 return INT64_LITTLE_ENDIAN;
1722 YY_BREAK
1723 case 95:
1724 YY_RULE_SETUP
1725 #line 175 "gribl.l"
1726 return BLOB;
1727 YY_BREAK
1728 case 96:
1729 YY_RULE_SETUP
1730 #line 177 "gribl.l"
1731 return SET;
1732 YY_BREAK
1733 case 97:
1734 YY_RULE_SETUP
1735 #line 178 "gribl.l"
1736 return SET_NOFAIL;
1737 YY_BREAK
1738 case 98:
1739 YY_RULE_SETUP
1740 #line 179 "gribl.l"
1741 return WHEN;
1742 YY_BREAK
1743 case 99:
1744 YY_RULE_SETUP
1745 #line 180 "gribl.l"
1746 return CASE;
1747 YY_BREAK
1748 case 100:
1749 YY_RULE_SETUP
1750 #line 181 "gribl.l"
1751 return SWITCH;
1752 YY_BREAK
1753 case 101:
1754 YY_RULE_SETUP
1755 #line 182 "gribl.l"
1756 return DEFAULT;
1757 YY_BREAK
1758 case 102:
1759 YY_RULE_SETUP
1760 #line 183 "gribl.l"
1761 return CONCEPT;
1762 YY_BREAK
1763 case 103:
1764 YY_RULE_SETUP
1765 #line 184 "gribl.l"
1766 return CONCEPT_NOFAIL;
1767 YY_BREAK
1768 case 104:
1769 YY_RULE_SETUP
1770 #line 185 "gribl.l"
1771 return WRITE;
1772 YY_BREAK
1773 case 105:
1774 YY_RULE_SETUP
1775 #line 186 "gribl.l"
1776 return APPEND;
1777 YY_BREAK
1778 case 106:
1779 YY_RULE_SETUP
1780 #line 187 "gribl.l"
1781 return PRINT;
1782 YY_BREAK
1783 case 107:
1784 YY_RULE_SETUP
1785 #line 188 "gribl.l"
1786 return SKIP;
1787 YY_BREAK
1788 case 108:
1789 YY_RULE_SETUP
1790 #line 190 "gribl.l"
1791 {
1792 int c,q;
1793 while((c = GET_INPUT()) && isspace(c) && c != '\n') ;
1794 q = c; /* the quote */
1795
1796 grib_yyleng = 0;
1797 while((c = GET_INPUT()) && c != q && c != '\n')
1798 {
1799 if(c == '\\') grib_yytext[grib_yyleng++] = GET_INPUT();
1800 else grib_yytext[grib_yyleng++] = c;
1801 }
1802
1803 grib_yytext[grib_yyleng++] = 0;
1804
1805 grib_parser_include(grib_yytext);
1806 }
1807 YY_BREAK
1808 case 109:
1809 YY_RULE_SETUP
1810 #line 207 "gribl.l"
1811 {
1812 int c,q = grib_yytext[0];
1813
1814 grib_yyleng = 0;
1815
1816 while((c = GET_INPUT()) && c != q && c != '\n')
1817 {
1818 if(c == '\\') grib_yytext[grib_yyleng++] = GET_INPUT();
1819 else grib_yytext[grib_yyleng++] = c;
1820 }
1821
1822 grib_yytext[grib_yyleng++] = 0;
1823 grib_yylval.str = strdup(grib_yytext);
1824 return STRING;
1825 }
1826 YY_BREAK
1827 case 110:
1828 YY_RULE_SETUP
1829 #line 223 "gribl.l"
1830 {
1831 int c;
1832 unsigned long val = 0;
1833
1834 while((c = GET_INPUT()) && c != '`' && c != '\n')
1835 {
1836 val <<= 8;
1837 val |= c;
1838 }
1839 grib_yylval.lval = val;
1840 return INTEGER;
1841 }
1842 YY_BREAK
1843 case 111:
1844 YY_RULE_SETUP
1845 #line 237 "gribl.l"
1846 { grib_yylval.str = strdup(grib_yytext); return IDENT; }
1847 YY_BREAK
1848 case 112:
1849 YY_RULE_SETUP
1850 #line 238 "gribl.l"
1851 { grib_yylval.lval = atol((const char *)grib_yytext); return INTEGER; }
1852 YY_BREAK
1853 case 113:
1854 YY_RULE_SETUP
1855 #line 239 "gribl.l"
1856 { grib_yylval.lval = atol((const char *)grib_yytext); return INTEGER; }
1857 YY_BREAK
1858 case 114:
1859 YY_RULE_SETUP
1860 #line 240 "gribl.l"
1861 { grib_yylval.dval = atof((const char *)grib_yytext); return FLOAT; }
1862 YY_BREAK
1863 case 115:
1864 YY_RULE_SETUP
1865 #line 241 "gribl.l"
1866 { grib_yylval.dval = atof((const char *)grib_yytext); return FLOAT; }
1867 YY_BREAK
1868 case 116:
1869 YY_RULE_SETUP
1870 #line 242 "gribl.l"
1871 { grib_yylval.dval = atof((const char *)grib_yytext); return FLOAT; }
1872 YY_BREAK
1873 case 117:
1874 YY_RULE_SETUP
1875 #line 245 "gribl.l"
1876 {
1877 int c;
1878 while((c = GET_INPUT()) && (c != '\n')){}
1879
1880 grib_yylineno++;
1881 }
1882 YY_BREAK
1883 case 118:
1884 YY_RULE_SETUP
1885 #line 251 "gribl.l"
1886 ;
1887 YY_BREAK
1888 case 119:
1889 /* rule 119 can match eol */
1890 YY_RULE_SETUP
1891 #line 252 "gribl.l"
1892 grib_yylineno++;
1893 YY_BREAK
1894 case 120:
1895 YY_RULE_SETUP
1896 #line 256 "gribl.l"
1897 return *grib_yytext;
1898 YY_BREAK
1899 case 121:
1900 YY_RULE_SETUP
1901 #line 258 "gribl.l"
1902 ECHO;
1903 YY_BREAK
1904 #line 1905 "lex.grib_yy.c"
1905 case YY_STATE_EOF(INITIAL):
1906 grib_yyterminate();
1907
1908 case YY_END_OF_BUFFER:
1909 {
1910 /* Amount of text matched not including the EOB char. */
1911 int grib_yy_amount_of_matched_text = (int) (grib_yy_cp - (grib_yytext_ptr)) - 1;
1912
1913 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1914 *grib_yy_cp = (grib_yy_hold_char);
1915 YY_RESTORE_YY_MORE_OFFSET
1916
1917 if ( YY_CURRENT_BUFFER_LVALUE->grib_yy_buffer_status == YY_BUFFER_NEW )
1918 {
1919 /* We're scanning a new file or input source. It's
1920 * possible that this happened because the user
1921 * just pointed grib_yyin at a new source and called
1922 * grib_yylex(). If so, then we have to assure
1923 * consistency between YY_CURRENT_BUFFER and our
1924 * globals. Here is the right place to do so, because
1925 * this is the first action (other than possibly a
1926 * back-up) that will match for the new input source.
1927 */
1928 (grib_yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->grib_yy_n_chars;
1929 YY_CURRENT_BUFFER_LVALUE->grib_yy_input_file = grib_yyin;
1930 YY_CURRENT_BUFFER_LVALUE->grib_yy_buffer_status = YY_BUFFER_NORMAL;
1931 }
1932
1933 /* Note that here we test for grib_yy_c_buf_p "<=" to the position
1934 * of the first EOB in the buffer, since grib_yy_c_buf_p will
1935 * already have been incremented past the NUL character
1936 * (since all states make transitions on EOB to the
1937 * end-of-buffer state). Contrast this with the test
1938 * in input().
1939 */
1940 if ( (grib_yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[(grib_yy_n_chars)] )
1941 { /* This was really a NUL. */
1942 grib_yy_state_type grib_yy_next_state;
1943
1944 (grib_yy_c_buf_p) = (grib_yytext_ptr) + grib_yy_amount_of_matched_text;
1945
1946 grib_yy_current_state = grib_yy_get_previous_state( );
1947
1948 /* Okay, we're now positioned to make the NUL
1949 * transition. We couldn't have
1950 * grib_yy_get_previous_state() go ahead and do it
1951 * for us because it doesn't know how to deal
1952 * with the possibility of jamming (and we don't
1953 * want to build jamming into it because then it
1954 * will run more slowly).
1955 */
1956
1957 grib_yy_next_state = grib_yy_try_NUL_trans( grib_yy_current_state );
1958
1959 grib_yy_bp = (grib_yytext_ptr) + YY_MORE_ADJ;
1960
1961 if ( grib_yy_next_state )
1962 {
1963 /* Consume the NUL. */
1964 grib_yy_cp = ++(grib_yy_c_buf_p);
1965 grib_yy_current_state = grib_yy_next_state;
1966 goto grib_yy_match;
1967 }
1968
1969 else
1970 {
1971 grib_yy_cp = (grib_yy_c_buf_p);
1972 goto grib_yy_find_action;
1973 }
1974 }
1975
1976 else switch ( grib_yy_get_next_buffer( ) )
1977 {
1978 case EOB_ACT_END_OF_FILE:
1979 {
1980 (grib_yy_did_buffer_switch_on_eof) = 0;
1981
1982 if ( grib_yywrap( ) )
1983 {
1984 /* Note: because we've taken care in
1985 * grib_yy_get_next_buffer() to have set up
1986 * grib_yytext, we can now set up
1987 * grib_yy_c_buf_p so that if some total
1988 * hoser (like flex itself) wants to
1989 * call the scanner after we return the
1990 * YY_NULL, it'll still work - another
1991 * YY_NULL will get returned.
1992 */
1993 (grib_yy_c_buf_p) = (grib_yytext_ptr) + YY_MORE_ADJ;
1994
1995 grib_yy_act = YY_STATE_EOF(YY_START);
1996 goto do_action;
1997 }
1998
1999 else
2000 {
2001 if ( ! (grib_yy_did_buffer_switch_on_eof) )
2002 YY_NEW_FILE;
2003 }
2004 break;
2005 }
2006
2007 case EOB_ACT_CONTINUE_SCAN:
2008 (grib_yy_c_buf_p) =
2009 (grib_yytext_ptr) + grib_yy_amount_of_matched_text;
2010
2011 grib_yy_current_state = grib_yy_get_previous_state( );
2012
2013 grib_yy_cp = (grib_yy_c_buf_p);
2014 grib_yy_bp = (grib_yytext_ptr) + YY_MORE_ADJ;
2015 goto grib_yy_match;
2016
2017 case EOB_ACT_LAST_MATCH:
2018 (grib_yy_c_buf_p) =
2019 &YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[(grib_yy_n_chars)];
2020
2021 grib_yy_current_state = grib_yy_get_previous_state( );
2022
2023 grib_yy_cp = (grib_yy_c_buf_p);
2024 grib_yy_bp = (grib_yytext_ptr) + YY_MORE_ADJ;
2025 goto grib_yy_find_action;
2026 }
2027 break;
2028 }
2029
2030 default:
2031 YY_FATAL_ERROR(
2032 "fatal flex scanner internal error--no action found" );
2033 } /* end of action switch */
2034 } /* end of scanning one token */
2035 } /* end of grib_yylex */
2036
2037 /* grib_yy_get_next_buffer - try to read in a new buffer
2038 *
2039 * Returns a code representing an action:
2040 * EOB_ACT_LAST_MATCH -
2041 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2042 * EOB_ACT_END_OF_FILE - end of file
2043 */
grib_yy_get_next_buffer(void)2044 static int grib_yy_get_next_buffer (void)
2045 {
2046 register char *dest = YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf;
2047 register char *source = (grib_yytext_ptr);
2048 register int number_to_move, i;
2049 int ret_val;
2050
2051 if ( (grib_yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[(grib_yy_n_chars) + 1] )
2052 YY_FATAL_ERROR(
2053 "fatal flex scanner internal error--end of buffer missed" );
2054
2055 if ( YY_CURRENT_BUFFER_LVALUE->grib_yy_fill_buffer == 0 )
2056 { /* Don't try to fill the buffer, so this is an EOF. */
2057 if ( (grib_yy_c_buf_p) - (grib_yytext_ptr) - YY_MORE_ADJ == 1 )
2058 {
2059 /* We matched a single character, the EOB, so
2060 * treat this as a final EOF.
2061 */
2062 return EOB_ACT_END_OF_FILE;
2063 }
2064
2065 else
2066 {
2067 /* We matched some text prior to the EOB, first
2068 * process it.
2069 */
2070 return EOB_ACT_LAST_MATCH;
2071 }
2072 }
2073
2074 /* Try to read more data. */
2075
2076 /* First move last chars to start of buffer. */
2077 number_to_move = (int) ((grib_yy_c_buf_p) - (grib_yytext_ptr)) - 1;
2078
2079 for ( i = 0; i < number_to_move; ++i )
2080 *(dest++) = *(source++);
2081
2082 if ( YY_CURRENT_BUFFER_LVALUE->grib_yy_buffer_status == YY_BUFFER_EOF_PENDING )
2083 /* don't do the read, it's not guaranteed to return an EOF,
2084 * just force an EOF
2085 */
2086 YY_CURRENT_BUFFER_LVALUE->grib_yy_n_chars = (grib_yy_n_chars) = 0;
2087
2088 else
2089 {
2090 int num_to_read =
2091 YY_CURRENT_BUFFER_LVALUE->grib_yy_buf_size - number_to_move - 1;
2092
2093 while ( num_to_read <= 0 )
2094 { /* Not enough room in the buffer - grow it. */
2095
2096 /* just a shorter name for the current buffer */
2097 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2098
2099 int grib_yy_c_buf_p_offset =
2100 (int) ((grib_yy_c_buf_p) - b->grib_yy_ch_buf);
2101
2102 if ( b->grib_yy_is_our_buffer )
2103 {
2104 int new_size = b->grib_yy_buf_size * 2;
2105
2106 if ( new_size <= 0 )
2107 b->grib_yy_buf_size += b->grib_yy_buf_size / 8;
2108 else
2109 b->grib_yy_buf_size *= 2;
2110
2111 b->grib_yy_ch_buf = (char *)
2112 /* Include room in for 2 EOB chars. */
2113 grib_yyrealloc((void *) b->grib_yy_ch_buf,b->grib_yy_buf_size + 2 );
2114 }
2115 else
2116 /* Can't grow it, we don't own it. */
2117 b->grib_yy_ch_buf = 0;
2118
2119 if ( ! b->grib_yy_ch_buf )
2120 YY_FATAL_ERROR(
2121 "fatal error - scanner input buffer overflow" );
2122
2123 (grib_yy_c_buf_p) = &b->grib_yy_ch_buf[grib_yy_c_buf_p_offset];
2124
2125 num_to_read = YY_CURRENT_BUFFER_LVALUE->grib_yy_buf_size -
2126 number_to_move - 1;
2127
2128 }
2129
2130 if ( num_to_read > YY_READ_BUF_SIZE )
2131 num_to_read = YY_READ_BUF_SIZE;
2132
2133 /* Read in more data. */
2134 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[number_to_move]),
2135 (grib_yy_n_chars), (size_t) num_to_read );
2136
2137 YY_CURRENT_BUFFER_LVALUE->grib_yy_n_chars = (grib_yy_n_chars);
2138 }
2139
2140 if ( (grib_yy_n_chars) == 0 )
2141 {
2142 if ( number_to_move == YY_MORE_ADJ )
2143 {
2144 ret_val = EOB_ACT_END_OF_FILE;
2145 grib_yyrestart(grib_yyin );
2146 }
2147
2148 else
2149 {
2150 ret_val = EOB_ACT_LAST_MATCH;
2151 YY_CURRENT_BUFFER_LVALUE->grib_yy_buffer_status =
2152 YY_BUFFER_EOF_PENDING;
2153 }
2154 }
2155
2156 else
2157 ret_val = EOB_ACT_CONTINUE_SCAN;
2158
2159 if ((grib_yy_size_t) ((grib_yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->grib_yy_buf_size) {
2160 /* Extend the array by 50%, plus the number we really need. */
2161 grib_yy_size_t new_size = (grib_yy_n_chars) + number_to_move + ((grib_yy_n_chars) >> 1);
2162 YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf = (char *) grib_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf,new_size );
2163 if ( ! YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf )
2164 YY_FATAL_ERROR( "out of dynamic memory in grib_yy_get_next_buffer()" );
2165 }
2166
2167 (grib_yy_n_chars) += number_to_move;
2168 YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[(grib_yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2169 YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[(grib_yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2170
2171 (grib_yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[0];
2172
2173 return ret_val;
2174 }
2175
2176 /* grib_yy_get_previous_state - get the state just before the EOB char was reached */
2177
grib_yy_get_previous_state(void)2178 static grib_yy_state_type grib_yy_get_previous_state (void)
2179 {
2180 register grib_yy_state_type grib_yy_current_state;
2181 register char *grib_yy_cp;
2182
2183 grib_yy_current_state = (grib_yy_start);
2184
2185 for ( grib_yy_cp = (grib_yytext_ptr) + YY_MORE_ADJ; grib_yy_cp < (grib_yy_c_buf_p); ++grib_yy_cp )
2186 {
2187 register YY_CHAR grib_yy_c = (*grib_yy_cp ? grib_yy_ec[YY_SC_TO_UI(*grib_yy_cp)] : 1);
2188 if ( grib_yy_accept[grib_yy_current_state] )
2189 {
2190 (grib_yy_last_accepting_state) = grib_yy_current_state;
2191 (grib_yy_last_accepting_cpos) = grib_yy_cp;
2192 }
2193 while ( grib_yy_chk[grib_yy_base[grib_yy_current_state] + grib_yy_c] != grib_yy_current_state )
2194 {
2195 grib_yy_current_state = (int) grib_yy_def[grib_yy_current_state];
2196 if ( grib_yy_current_state >= 634 )
2197 grib_yy_c = grib_yy_meta[(unsigned int) grib_yy_c];
2198 }
2199 grib_yy_current_state = grib_yy_nxt[grib_yy_base[grib_yy_current_state] + (unsigned int) grib_yy_c];
2200 }
2201
2202 return grib_yy_current_state;
2203 }
2204
2205 /* grib_yy_try_NUL_trans - try to make a transition on the NUL character
2206 *
2207 * synopsis
2208 * next_state = grib_yy_try_NUL_trans( current_state );
2209 */
grib_yy_try_NUL_trans(grib_yy_state_type grib_yy_current_state)2210 static grib_yy_state_type grib_yy_try_NUL_trans (grib_yy_state_type grib_yy_current_state )
2211 {
2212 register int grib_yy_is_jam;
2213 register char *grib_yy_cp = (grib_yy_c_buf_p);
2214
2215 register YY_CHAR grib_yy_c = 1;
2216 if ( grib_yy_accept[grib_yy_current_state] )
2217 {
2218 (grib_yy_last_accepting_state) = grib_yy_current_state;
2219 (grib_yy_last_accepting_cpos) = grib_yy_cp;
2220 }
2221 while ( grib_yy_chk[grib_yy_base[grib_yy_current_state] + grib_yy_c] != grib_yy_current_state )
2222 {
2223 grib_yy_current_state = (int) grib_yy_def[grib_yy_current_state];
2224 if ( grib_yy_current_state >= 634 )
2225 grib_yy_c = grib_yy_meta[(unsigned int) grib_yy_c];
2226 }
2227 grib_yy_current_state = grib_yy_nxt[grib_yy_base[grib_yy_current_state] + (unsigned int) grib_yy_c];
2228 grib_yy_is_jam = (grib_yy_current_state == 633);
2229
2230 return grib_yy_is_jam ? 0 : grib_yy_current_state;
2231 }
2232
grib_yyunput(int c,register char * grib_yy_bp)2233 void grib_yyunput (int c, register char * grib_yy_bp )
2234 {
2235 register char *grib_yy_cp;
2236
2237 grib_yy_cp = (grib_yy_c_buf_p);
2238
2239 /* undo effects of setting up grib_yytext */
2240 *grib_yy_cp = (grib_yy_hold_char);
2241
2242 if ( grib_yy_cp < YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf + 2 )
2243 { /* need to shift things up to make room */
2244 /* +2 for EOB chars. */
2245 register int number_to_move = (grib_yy_n_chars) + 2;
2246 register char *dest = &YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[
2247 YY_CURRENT_BUFFER_LVALUE->grib_yy_buf_size + 2];
2248 register char *source =
2249 &YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[number_to_move];
2250
2251 while ( source > YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf )
2252 *--dest = *--source;
2253
2254 grib_yy_cp += (int) (dest - source);
2255 grib_yy_bp += (int) (dest - source);
2256 YY_CURRENT_BUFFER_LVALUE->grib_yy_n_chars =
2257 (grib_yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->grib_yy_buf_size;
2258
2259 if ( grib_yy_cp < YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf + 2 )
2260 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2261 }
2262
2263 *--grib_yy_cp = (char) c;
2264
2265 (grib_yytext_ptr) = grib_yy_bp;
2266 (grib_yy_hold_char) = *grib_yy_cp;
2267 (grib_yy_c_buf_p) = grib_yy_cp;
2268 }
2269
2270 #ifndef YY_NO_INPUT
2271 #ifdef __cplusplus
grib_yyinput(void)2272 static int grib_yyinput (void)
2273 #else
2274 static int input (void)
2275 #endif
2276
2277 {
2278 int c;
2279
2280 *(grib_yy_c_buf_p) = (grib_yy_hold_char);
2281
2282 if ( *(grib_yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2283 {
2284 /* grib_yy_c_buf_p now points to the character we want to return.
2285 * If this occurs *before* the EOB characters, then it's a
2286 * valid NUL; if not, then we've hit the end of the buffer.
2287 */
2288 if ( (grib_yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->grib_yy_ch_buf[(grib_yy_n_chars)] )
2289 /* This was really a NUL. */
2290 *(grib_yy_c_buf_p) = '\0';
2291
2292 else
2293 { /* need more input */
2294 int offset = (grib_yy_c_buf_p) - (grib_yytext_ptr);
2295 ++(grib_yy_c_buf_p);
2296
2297 switch ( grib_yy_get_next_buffer( ) )
2298 {
2299 case EOB_ACT_LAST_MATCH:
2300 /* This happens because grib_yy_g_n_b()
2301 * sees that we've accumulated a
2302 * token and flags that we need to
2303 * try matching the token before
2304 * proceeding. But for input(),
2305 * there's no matching to consider.
2306 * So convert the EOB_ACT_LAST_MATCH
2307 * to EOB_ACT_END_OF_FILE.
2308 */
2309
2310 /* Reset buffer status. */
2311 grib_yyrestart(grib_yyin );
2312
2313 /*FALLTHROUGH*/
2314
2315 case EOB_ACT_END_OF_FILE:
2316 {
2317 if ( grib_yywrap( ) )
2318 return EOF;
2319
2320 if ( ! (grib_yy_did_buffer_switch_on_eof) )
2321 YY_NEW_FILE;
2322 #ifdef __cplusplus
2323 return grib_yyinput();
2324 #else
2325 return input();
2326 #endif
2327 }
2328
2329 case EOB_ACT_CONTINUE_SCAN:
2330 (grib_yy_c_buf_p) = (grib_yytext_ptr) + offset;
2331 break;
2332 }
2333 }
2334 }
2335
2336 c = *(unsigned char *) (grib_yy_c_buf_p); /* cast for 8-bit char's */
2337 *(grib_yy_c_buf_p) = '\0'; /* preserve grib_yytext */
2338 (grib_yy_hold_char) = *++(grib_yy_c_buf_p);
2339
2340 return c;
2341 }
2342 #endif /* ifndef YY_NO_INPUT */
2343
2344 /** Immediately switch to a different input stream.
2345 * @param input_file A readable stream.
2346 *
2347 * @note This function does not reset the start condition to @c INITIAL .
2348 */
grib_yyrestart(FILE * input_file)2349 void grib_yyrestart (FILE * input_file )
2350 {
2351
2352 if ( ! YY_CURRENT_BUFFER ){
2353 grib_yyensure_buffer_stack ();
2354 YY_CURRENT_BUFFER_LVALUE =
2355 grib_yy_create_buffer(grib_yyin,YY_BUF_SIZE );
2356 }
2357
2358 grib_yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2359 grib_yy_load_buffer_state( );
2360 }
2361
2362 /** Switch to a different input buffer.
2363 * @param new_buffer The new input buffer.
2364 *
2365 */
grib_yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)2366 void grib_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2367 {
2368
2369 /* TODO. We should be able to replace this entire function body
2370 * with
2371 * grib_yypop_buffer_state();
2372 * grib_yypush_buffer_state(new_buffer);
2373 */
2374 grib_yyensure_buffer_stack ();
2375 if ( YY_CURRENT_BUFFER == new_buffer )
2376 return;
2377
2378 if ( YY_CURRENT_BUFFER )
2379 {
2380 /* Flush out information for old buffer. */
2381 *(grib_yy_c_buf_p) = (grib_yy_hold_char);
2382 YY_CURRENT_BUFFER_LVALUE->grib_yy_buf_pos = (grib_yy_c_buf_p);
2383 YY_CURRENT_BUFFER_LVALUE->grib_yy_n_chars = (grib_yy_n_chars);
2384 }
2385
2386 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2387 grib_yy_load_buffer_state( );
2388
2389 /* We don't actually know whether we did this switch during
2390 * EOF (grib_yywrap()) processing, but the only time this flag
2391 * is looked at is after grib_yywrap() is called, so it's safe
2392 * to go ahead and always set it.
2393 */
2394 (grib_yy_did_buffer_switch_on_eof) = 1;
2395 }
2396
grib_yy_load_buffer_state(void)2397 static void grib_yy_load_buffer_state (void)
2398 {
2399 (grib_yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->grib_yy_n_chars;
2400 (grib_yytext_ptr) = (grib_yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->grib_yy_buf_pos;
2401 grib_yyin = YY_CURRENT_BUFFER_LVALUE->grib_yy_input_file;
2402 (grib_yy_hold_char) = *(grib_yy_c_buf_p);
2403 }
2404
2405 /** Allocate and initialize an input buffer state.
2406 * @param file A readable stream.
2407 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2408 *
2409 * @return the allocated buffer state.
2410 */
grib_yy_create_buffer(FILE * file,int size)2411 YY_BUFFER_STATE grib_yy_create_buffer (FILE * file, int size )
2412 {
2413 YY_BUFFER_STATE b;
2414
2415 b = (YY_BUFFER_STATE) grib_yyalloc(sizeof( struct grib_yy_buffer_state ) );
2416 if ( ! b )
2417 YY_FATAL_ERROR( "out of dynamic memory in grib_yy_create_buffer()" );
2418
2419 b->grib_yy_buf_size = size;
2420
2421 /* grib_yy_ch_buf has to be 2 characters longer than the size given because
2422 * we need to put in 2 end-of-buffer characters.
2423 */
2424 b->grib_yy_ch_buf = (char *) grib_yyalloc(b->grib_yy_buf_size + 2 );
2425 if ( ! b->grib_yy_ch_buf )
2426 YY_FATAL_ERROR( "out of dynamic memory in grib_yy_create_buffer()" );
2427
2428 b->grib_yy_is_our_buffer = 1;
2429
2430 grib_yy_init_buffer(b,file );
2431
2432 return b;
2433 }
2434
2435 /** Destroy the buffer.
2436 * @param b a buffer created with grib_yy_create_buffer()
2437 *
2438 */
grib_yy_delete_buffer(YY_BUFFER_STATE b)2439 void grib_yy_delete_buffer (YY_BUFFER_STATE b )
2440 {
2441
2442 if ( ! b )
2443 return;
2444
2445 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2446 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2447
2448 if ( b->grib_yy_is_our_buffer )
2449 grib_yyfree((void *) b->grib_yy_ch_buf );
2450
2451 grib_yyfree((void *) b );
2452 }
2453
2454 #ifndef __cplusplus
2455 extern int isatty (int );
2456 #endif /* __cplusplus */
2457
2458 /* Initializes or reinitializes a buffer.
2459 * This function is sometimes called more than once on the same buffer,
2460 * such as during a grib_yyrestart() or at EOF.
2461 */
grib_yy_init_buffer(YY_BUFFER_STATE b,FILE * file)2462 static void grib_yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2463
2464 {
2465 int oerrno = errno;
2466
2467 grib_yy_flush_buffer(b );
2468
2469 b->grib_yy_input_file = file;
2470 b->grib_yy_fill_buffer = 1;
2471
2472 /* If b is the current buffer, then grib_yy_init_buffer was _probably_
2473 * called from grib_yyrestart() or through grib_yy_get_next_buffer.
2474 * In that case, we don't want to reset the lineno or column.
2475 */
2476 if (b != YY_CURRENT_BUFFER){
2477 b->grib_yy_bs_lineno = 1;
2478 b->grib_yy_bs_column = 0;
2479 }
2480
2481 b->grib_yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2482
2483 errno = oerrno;
2484 }
2485
2486 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2487 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2488 *
2489 */
grib_yy_flush_buffer(YY_BUFFER_STATE b)2490 void grib_yy_flush_buffer (YY_BUFFER_STATE b )
2491 {
2492 if ( ! b )
2493 return;
2494
2495 b->grib_yy_n_chars = 0;
2496
2497 /* We always need two end-of-buffer characters. The first causes
2498 * a transition to the end-of-buffer state. The second causes
2499 * a jam in that state.
2500 */
2501 b->grib_yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2502 b->grib_yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2503
2504 b->grib_yy_buf_pos = &b->grib_yy_ch_buf[0];
2505
2506 b->grib_yy_at_bol = 1;
2507 b->grib_yy_buffer_status = YY_BUFFER_NEW;
2508
2509 if ( b == YY_CURRENT_BUFFER )
2510 grib_yy_load_buffer_state( );
2511 }
2512
2513 /** Pushes the new state onto the stack. The new state becomes
2514 * the current state. This function will allocate the stack
2515 * if necessary.
2516 * @param new_buffer The new state.
2517 *
2518 */
grib_yypush_buffer_state(YY_BUFFER_STATE new_buffer)2519 void grib_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2520 {
2521 if (new_buffer == NULL)
2522 return;
2523
2524 grib_yyensure_buffer_stack();
2525
2526 /* This block is copied from grib_yy_switch_to_buffer. */
2527 if ( YY_CURRENT_BUFFER )
2528 {
2529 /* Flush out information for old buffer. */
2530 *(grib_yy_c_buf_p) = (grib_yy_hold_char);
2531 YY_CURRENT_BUFFER_LVALUE->grib_yy_buf_pos = (grib_yy_c_buf_p);
2532 YY_CURRENT_BUFFER_LVALUE->grib_yy_n_chars = (grib_yy_n_chars);
2533 }
2534
2535 /* Only push if top exists. Otherwise, replace top. */
2536 if (YY_CURRENT_BUFFER)
2537 (grib_yy_buffer_stack_top)++;
2538 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2539
2540 /* copied from grib_yy_switch_to_buffer. */
2541 grib_yy_load_buffer_state( );
2542 (grib_yy_did_buffer_switch_on_eof) = 1;
2543 }
2544
2545 /** Removes and deletes the top of the stack, if present.
2546 * The next element becomes the new top.
2547 *
2548 */
grib_yypop_buffer_state(void)2549 void grib_yypop_buffer_state (void)
2550 {
2551 if (!YY_CURRENT_BUFFER)
2552 return;
2553
2554 grib_yy_delete_buffer(YY_CURRENT_BUFFER );
2555 YY_CURRENT_BUFFER_LVALUE = NULL;
2556 if ((grib_yy_buffer_stack_top) > 0)
2557 --(grib_yy_buffer_stack_top);
2558
2559 if (YY_CURRENT_BUFFER) {
2560 grib_yy_load_buffer_state( );
2561 (grib_yy_did_buffer_switch_on_eof) = 1;
2562 }
2563 }
2564
2565 /* Allocates the stack if it does not exist.
2566 * Guarantees space for at least one push.
2567 */
grib_yyensure_buffer_stack(void)2568 static void grib_yyensure_buffer_stack (void)
2569 {
2570 int num_to_alloc;
2571
2572 if (!(grib_yy_buffer_stack)) {
2573
2574 /* First allocation is just for 2 elements, since we don't know if this
2575 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2576 * immediate realloc on the next call.
2577 */
2578 num_to_alloc = 1;
2579 (grib_yy_buffer_stack) = (struct grib_yy_buffer_state**)grib_yyalloc
2580 (num_to_alloc * sizeof(struct grib_yy_buffer_state*)
2581 );
2582 if ( ! (grib_yy_buffer_stack) )
2583 YY_FATAL_ERROR( "out of dynamic memory in grib_yyensure_buffer_stack()" );
2584
2585 memset((grib_yy_buffer_stack), 0, num_to_alloc * sizeof(struct grib_yy_buffer_state*));
2586
2587 (grib_yy_buffer_stack_max) = num_to_alloc;
2588 (grib_yy_buffer_stack_top) = 0;
2589 return;
2590 }
2591
2592 if ((grib_yy_buffer_stack_top) >= ((grib_yy_buffer_stack_max)) - 1){
2593
2594 /* Increase the buffer to prepare for a possible push. */
2595 int grow_size = 8 /* arbitrary grow size */;
2596
2597 num_to_alloc = (grib_yy_buffer_stack_max) + grow_size;
2598 (grib_yy_buffer_stack) = (struct grib_yy_buffer_state**)grib_yyrealloc
2599 ((grib_yy_buffer_stack),
2600 num_to_alloc * sizeof(struct grib_yy_buffer_state*)
2601 );
2602 if ( ! (grib_yy_buffer_stack) )
2603 YY_FATAL_ERROR( "out of dynamic memory in grib_yyensure_buffer_stack()" );
2604
2605 /* zero only the new slots.*/
2606 memset((grib_yy_buffer_stack) + (grib_yy_buffer_stack_max), 0, grow_size * sizeof(struct grib_yy_buffer_state*));
2607 (grib_yy_buffer_stack_max) = num_to_alloc;
2608 }
2609 }
2610
2611 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2612 * @param base the character buffer
2613 * @param size the size in bytes of the character buffer
2614 *
2615 * @return the newly allocated buffer state object.
2616 */
grib_yy_scan_buffer(char * base,grib_yy_size_t size)2617 YY_BUFFER_STATE grib_yy_scan_buffer (char * base, grib_yy_size_t size )
2618 {
2619 YY_BUFFER_STATE b;
2620
2621 if ( size < 2 ||
2622 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2623 base[size-1] != YY_END_OF_BUFFER_CHAR )
2624 /* They forgot to leave room for the EOB's. */
2625 return 0;
2626
2627 b = (YY_BUFFER_STATE) grib_yyalloc(sizeof( struct grib_yy_buffer_state ) );
2628 if ( ! b )
2629 YY_FATAL_ERROR( "out of dynamic memory in grib_yy_scan_buffer()" );
2630
2631 b->grib_yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2632 b->grib_yy_buf_pos = b->grib_yy_ch_buf = base;
2633 b->grib_yy_is_our_buffer = 0;
2634 b->grib_yy_input_file = 0;
2635 b->grib_yy_n_chars = b->grib_yy_buf_size;
2636 b->grib_yy_is_interactive = 0;
2637 b->grib_yy_at_bol = 1;
2638 b->grib_yy_fill_buffer = 0;
2639 b->grib_yy_buffer_status = YY_BUFFER_NEW;
2640
2641 grib_yy_switch_to_buffer(b );
2642
2643 return b;
2644 }
2645
2646 /** Setup the input buffer state to scan a string. The next call to grib_yylex() will
2647 * scan from a @e copy of @a str.
2648 * @param grib_yystr a NUL-terminated string to scan
2649 *
2650 * @return the newly allocated buffer state object.
2651 * @note If you want to scan bytes that may contain NUL values, then use
2652 * grib_yy_scan_bytes() instead.
2653 */
grib_yy_scan_string(grib_yyconst char * grib_yystr)2654 YY_BUFFER_STATE grib_yy_scan_string (grib_yyconst char * grib_yystr )
2655 {
2656
2657 return grib_yy_scan_bytes(grib_yystr,strlen(grib_yystr) );
2658 }
2659
2660 /** Setup the input buffer state to scan the given bytes. The next call to grib_yylex() will
2661 * scan from a @e copy of @a bytes.
2662 * @param bytes the byte buffer to scan
2663 * @param len the number of bytes in the buffer pointed to by @a bytes.
2664 *
2665 * @return the newly allocated buffer state object.
2666 */
grib_yy_scan_bytes(grib_yyconst char * grib_yybytes,int _grib_yybytes_len)2667 YY_BUFFER_STATE grib_yy_scan_bytes (grib_yyconst char * grib_yybytes, int _grib_yybytes_len )
2668 {
2669 YY_BUFFER_STATE b;
2670 char *buf;
2671 grib_yy_size_t n;
2672 int i;
2673
2674 /* Get memory for full buffer, including space for trailing EOB's. */
2675 n = _grib_yybytes_len + 2;
2676 buf = (char *) grib_yyalloc(n );
2677 if ( ! buf )
2678 YY_FATAL_ERROR( "out of dynamic memory in grib_yy_scan_bytes()" );
2679
2680 for ( i = 0; i < _grib_yybytes_len; ++i )
2681 buf[i] = grib_yybytes[i];
2682
2683 buf[_grib_yybytes_len] = buf[_grib_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2684
2685 b = grib_yy_scan_buffer(buf,n );
2686 if ( ! b )
2687 YY_FATAL_ERROR( "bad buffer in grib_yy_scan_bytes()" );
2688
2689 /* It's okay to grow etc. this buffer, and we should throw it
2690 * away when we're done.
2691 */
2692 b->grib_yy_is_our_buffer = 1;
2693
2694 return b;
2695 }
2696
2697 #ifndef YY_EXIT_FAILURE
2698 #define YY_EXIT_FAILURE 2
2699 #endif
2700
grib_yy_fatal_error(grib_yyconst char * msg)2701 static void grib_yy_fatal_error (grib_yyconst char* msg )
2702 {
2703 (void) fprintf( stderr, "%s\n", msg );
2704 exit( YY_EXIT_FAILURE );
2705 }
2706
2707 /* Redefine grib_yyless() so it works in section 3 code. */
2708
2709 #undef grib_yyless
2710 #define grib_yyless(n) \
2711 do \
2712 { \
2713 /* Undo effects of setting up grib_yytext. */ \
2714 int grib_yyless_macro_arg = (n); \
2715 YY_LESS_LINENO(grib_yyless_macro_arg);\
2716 grib_yytext[grib_yyleng] = (grib_yy_hold_char); \
2717 (grib_yy_c_buf_p) = grib_yytext + grib_yyless_macro_arg; \
2718 (grib_yy_hold_char) = *(grib_yy_c_buf_p); \
2719 *(grib_yy_c_buf_p) = '\0'; \
2720 grib_yyleng = grib_yyless_macro_arg; \
2721 } \
2722 while ( 0 )
2723
2724 /* Accessor methods (get/set functions) to struct members. */
2725
2726 /** Get the current line number.
2727 *
2728 */
grib_yyget_lineno(void)2729 int grib_yyget_lineno (void)
2730 {
2731
2732 return grib_yylineno;
2733 }
2734
2735 /** Get the input stream.
2736 *
2737 */
grib_yyget_in(void)2738 FILE *grib_yyget_in (void)
2739 {
2740 return grib_yyin;
2741 }
2742
2743 /** Get the output stream.
2744 *
2745 */
grib_yyget_out(void)2746 FILE *grib_yyget_out (void)
2747 {
2748 return grib_yyout;
2749 }
2750
2751 /** Get the length of the current token.
2752 *
2753 */
grib_yyget_leng(void)2754 int grib_yyget_leng (void)
2755 {
2756 return grib_yyleng;
2757 }
2758
2759 /** Get the current token.
2760 *
2761 */
2762
grib_yyget_text(void)2763 char *grib_yyget_text (void)
2764 {
2765 return grib_yytext;
2766 }
2767
2768 /** Set the current line number.
2769 * @param line_number
2770 *
2771 */
grib_yyset_lineno(int line_number)2772 void grib_yyset_lineno (int line_number )
2773 {
2774
2775 grib_yylineno = line_number;
2776 }
2777
2778 /** Set the input stream. This does not discard the current
2779 * input buffer.
2780 * @param in_str A readable stream.
2781 *
2782 * @see grib_yy_switch_to_buffer
2783 */
grib_yyset_in(FILE * in_str)2784 void grib_yyset_in (FILE * in_str )
2785 {
2786 grib_yyin = in_str ;
2787 }
2788
grib_yyset_out(FILE * out_str)2789 void grib_yyset_out (FILE * out_str )
2790 {
2791 grib_yyout = out_str ;
2792 }
2793
grib_yyget_debug(void)2794 int grib_yyget_debug (void)
2795 {
2796 return grib_yy_flex_debug;
2797 }
2798
grib_yyset_debug(int bdebug)2799 void grib_yyset_debug (int bdebug )
2800 {
2801 grib_yy_flex_debug = bdebug ;
2802 }
2803
grib_yy_init_globals(void)2804 static int grib_yy_init_globals (void)
2805 {
2806 /* Initialization is the same as for the non-reentrant scanner.
2807 * This function is called from grib_yylex_destroy(), so don't allocate here.
2808 */
2809
2810 (grib_yy_buffer_stack) = 0;
2811 (grib_yy_buffer_stack_top) = 0;
2812 (grib_yy_buffer_stack_max) = 0;
2813 (grib_yy_c_buf_p) = (char *) 0;
2814 (grib_yy_init) = 0;
2815 (grib_yy_start) = 0;
2816
2817 /* Defined in main.c */
2818 #ifdef YY_STDINIT
2819 grib_yyin = stdin;
2820 grib_yyout = stdout;
2821 #else
2822 grib_yyin = (FILE *) 0;
2823 grib_yyout = (FILE *) 0;
2824 #endif
2825
2826 /* For future reference: Set errno on error, since we are called by
2827 * grib_yylex_init()
2828 */
2829 return 0;
2830 }
2831
2832 /* grib_yylex_destroy is for both reentrant and non-reentrant scanners. */
grib_yylex_destroy(void)2833 int grib_yylex_destroy (void)
2834 {
2835
2836 /* Pop the buffer stack, destroying each element. */
2837 while(YY_CURRENT_BUFFER){
2838 grib_yy_delete_buffer(YY_CURRENT_BUFFER );
2839 YY_CURRENT_BUFFER_LVALUE = NULL;
2840 grib_yypop_buffer_state();
2841 }
2842
2843 /* Destroy the stack itself. */
2844 grib_yyfree((grib_yy_buffer_stack) );
2845 (grib_yy_buffer_stack) = NULL;
2846
2847 /* Reset the globals. This is important in a non-reentrant scanner so the next time
2848 * grib_yylex() is called, initialization will occur. */
2849 grib_yy_init_globals( );
2850
2851 return 0;
2852 }
2853
2854 /*
2855 * Internal utility routines.
2856 */
2857
2858 #ifndef grib_yytext_ptr
grib_yy_flex_strncpy(char * s1,grib_yyconst char * s2,int n)2859 static void grib_yy_flex_strncpy (char* s1, grib_yyconst char * s2, int n )
2860 {
2861 register int i;
2862 for ( i = 0; i < n; ++i )
2863 s1[i] = s2[i];
2864 }
2865 #endif
2866
2867 #ifdef YY_NEED_STRLEN
grib_yy_flex_strlen(grib_yyconst char * s)2868 static int grib_yy_flex_strlen (grib_yyconst char * s )
2869 {
2870 register int n;
2871 for ( n = 0; s[n]; ++n )
2872 ;
2873
2874 return n;
2875 }
2876 #endif
2877
grib_yyalloc(grib_yy_size_t size)2878 void *grib_yyalloc (grib_yy_size_t size )
2879 {
2880 return (void *) malloc( size );
2881 }
2882
grib_yyrealloc(void * ptr,grib_yy_size_t size)2883 void *grib_yyrealloc (void * ptr, grib_yy_size_t size )
2884 {
2885 /* The cast to (char *) in the following accommodates both
2886 * implementations that use char* generic pointers, and those
2887 * that use void* generic pointers. It works with the latter
2888 * because both ANSI C and C++ allow castless assignment from
2889 * any pointer type to void*, and deal with argument conversions
2890 * as though doing an assignment.
2891 */
2892 return (void *) realloc( (char *) ptr, size );
2893 }
2894
grib_yyfree(void * ptr)2895 void grib_yyfree (void * ptr )
2896 {
2897 free( (char *) ptr ); /* see grib_yyrealloc() for (char *) cast */
2898 }
2899
2900 #define YYTABLES_NAME "grib_yytables"
2901
2902 #line 258 "gribl.l"
2903
2904
2905
2906
2907