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