OPeNDAP Hyrax Back End Server (BES)  Updated for version 3.8.3
lex.hdfeos.cc
Go to the documentation of this file.
1 #line 2 "lex.hdfeos.cc"
2 
3 #line 4 "lex.hdfeos.cc"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define yy_create_buffer hdfeos_create_buffer
10 #define yy_delete_buffer hdfeos_delete_buffer
11 #define yy_flex_debug hdfeos_flex_debug
12 #define yy_init_buffer hdfeos_init_buffer
13 #define yy_flush_buffer hdfeos_flush_buffer
14 #define yy_load_buffer_state hdfeos_load_buffer_state
15 #define yy_switch_to_buffer hdfeos_switch_to_buffer
16 #define yyin hdfeosin
17 #define yyleng hdfeosleng
18 #define yylex hdfeoslex
19 #define yylineno hdfeoslineno
20 #define yyout hdfeosout
21 #define yyrestart hdfeosrestart
22 #define yytext hdfeostext
23 #define yywrap hdfeoswrap
24 #define yyalloc hdfeosalloc
25 #define yyrealloc hdfeosrealloc
26 #define yyfree hdfeosfree
27 
28 #define FLEX_SCANNER
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 5
31 #define YY_FLEX_SUBMINOR_VERSION 35
32 #if YY_FLEX_SUBMINOR_VERSION > 0
33 #define FLEX_BETA
34 #endif
35 
36 /* First, we deal with platform-specific or compiler-specific issues. */
37 
38 /* begin standard C headers. */
39 #include <stdio.h>
40 #include <string.h>
41 #include <errno.h>
42 #include <stdlib.h>
43 
44 /* end standard C headers. */
45 
46 /* flex integer type definitions */
47 
48 #ifndef FLEXINT_H
49 #define FLEXINT_H
50 
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52 
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54 
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56  * if you want the limit (max/min) macros for int types.
57  */
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
60 #endif
61 
62 #include <inttypes.h>
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
69 typedef uint64_t flex_uint64_t;
70 #else
71 typedef signed char flex_int8_t;
72 typedef short int flex_int16_t;
73 typedef int flex_int32_t;
74 typedef unsigned char flex_uint8_t;
75 typedef unsigned short int flex_uint16_t;
76 typedef unsigned int flex_uint32_t;
77 #endif /* ! C99 */
78 
79 /* Limits of integral types. */
80 #ifndef INT8_MIN
81 #define INT8_MIN (-128)
82 #endif
83 #ifndef INT16_MIN
84 #define INT16_MIN (-32767-1)
85 #endif
86 #ifndef INT32_MIN
87 #define INT32_MIN (-2147483647-1)
88 #endif
89 #ifndef INT8_MAX
90 #define INT8_MAX (127)
91 #endif
92 #ifndef INT16_MAX
93 #define INT16_MAX (32767)
94 #endif
95 #ifndef INT32_MAX
96 #define INT32_MAX (2147483647)
97 #endif
98 #ifndef UINT8_MAX
99 #define UINT8_MAX (255U)
100 #endif
101 #ifndef UINT16_MAX
102 #define UINT16_MAX (65535U)
103 #endif
104 #ifndef UINT32_MAX
105 #define UINT32_MAX (4294967295U)
106 #endif
107 
108 #endif /* ! FLEXINT_H */
109 
110 #ifdef __cplusplus
111 
112 /* The "const" storage-class-modifier is valid. */
113 #define YY_USE_CONST
114 
115 #else /* ! __cplusplus */
116 
117 /* C99 requires __STDC__ to be defined as 1. */
118 #if defined (__STDC__)
119 
120 #define YY_USE_CONST
121 
122 #endif /* defined (__STDC__) */
123 #endif /* ! __cplusplus */
124 
125 #ifdef YY_USE_CONST
126 #define yyconst const
127 #else
128 #define yyconst
129 #endif
130 
131 /* Returned upon end-of-file. */
132 #define YY_NULL 0
133 
134 /* Promotes a possibly negative, possibly signed char to an unsigned
135  * integer for use as an array index. If the signed char is negative,
136  * we want to instead treat it as an 8-bit unsigned char, hence the
137  * double cast.
138  */
139 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140 
141 /* Enter a start condition. This macro really ought to take a parameter,
142  * but we do it the disgusting crufty way forced on us by the ()-less
143  * definition of BEGIN.
144  */
145 #define BEGIN (yy_start) = 1 + 2 *
146 
147 /* Translate the current start state into a value that can be later handed
148  * to BEGIN to return to the state. The YYSTATE alias is for lex
149  * compatibility.
150  */
151 #define YY_START (((yy_start) - 1) / 2)
152 #define YYSTATE YY_START
153 
154 /* Action number for EOF rule of a given start state. */
155 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 
157 /* Special action meaning "start processing a new file". */
158 #define YY_NEW_FILE hdfeosrestart(hdfeosin )
159 
160 #define YY_END_OF_BUFFER_CHAR 0
161 
162 /* Size of default input buffer. */
163 #ifndef YY_BUF_SIZE
164 #define YY_BUF_SIZE 16384
165 #endif
166 
167 /* The state buf must be large enough to hold one state per character in the main buffer.
168  */
169 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
170 
171 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
172 #define YY_TYPEDEF_YY_BUFFER_STATE
173 typedef struct yy_buffer_state *YY_BUFFER_STATE;
174 #endif
175 
176 #ifndef YY_TYPEDEF_YY_SIZE_T
177 #define YY_TYPEDEF_YY_SIZE_T
178 typedef size_t yy_size_t;
179 #endif
180 
181 extern yy_size_t hdfeosleng;
182 
183 extern FILE *hdfeosin, *hdfeosout;
184 
185 #define EOB_ACT_CONTINUE_SCAN 0
186 #define EOB_ACT_END_OF_FILE 1
187 #define EOB_ACT_LAST_MATCH 2
188 
189  #define YY_LESS_LINENO(n)
190 
191 /* Return all but the first "n" matched characters back to the input stream. */
192 #define yyless(n) \
193  do \
194  { \
195  /* Undo effects of setting up hdfeostext. */ \
196  int yyless_macro_arg = (n); \
197  YY_LESS_LINENO(yyless_macro_arg);\
198  *yy_cp = (yy_hold_char); \
199  YY_RESTORE_YY_MORE_OFFSET \
200  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
201  YY_DO_BEFORE_ACTION; /* set up hdfeostext again */ \
202  } \
203  while ( 0 )
204 
205 #define unput(c) yyunput( c, (yytext_ptr) )
206 
207 #ifndef YY_STRUCT_YY_BUFFER_STATE
208 #define YY_STRUCT_YY_BUFFER_STATE
209 struct yy_buffer_state
210  {
211  FILE *yy_input_file;
212 
213  char *yy_ch_buf; /* input buffer */
214  char *yy_buf_pos; /* current position in input buffer */
215 
216  /* Size of input buffer in bytes, not including room for EOB
217  * characters.
218  */
219  yy_size_t yy_buf_size;
220 
221  /* Number of characters read into yy_ch_buf, not including EOB
222  * characters.
223  */
224  yy_size_t yy_n_chars;
225 
226  /* Whether we "own" the buffer - i.e., we know we created it,
227  * and can realloc() it to grow it, and should free() it to
228  * delete it.
229  */
230  int yy_is_our_buffer;
231 
232  /* Whether this is an "interactive" input source; if so, and
233  * if we're using stdio for input, then we want to use getc()
234  * instead of fread(), to make sure we stop fetching input after
235  * each newline.
236  */
237  int yy_is_interactive;
238 
239  /* Whether we're considered to be at the beginning of a line.
240  * If so, '^' rules will be active on the next match, otherwise
241  * not.
242  */
243  int yy_at_bol;
244 
245  int yy_bs_lineno;
246  int yy_bs_column;
248  /* Whether to try to fill the input buffer when we reach the
249  * end of it.
250  */
251  int yy_fill_buffer;
252 
253  int yy_buffer_status;
254 
255 #define YY_BUFFER_NEW 0
256 #define YY_BUFFER_NORMAL 1
257  /* When an EOF's been seen but there's still some text to process
258  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
259  * shouldn't try reading from the input source any more. We might
260  * still have a bunch of tokens to match, though, because of
261  * possible backing-up.
262  *
263  * When we actually see the EOF, we change the status to "new"
264  * (via hdfeosrestart()), so that the user can continue scanning by
265  * just pointing hdfeosin at a new input file.
266  */
267 #define YY_BUFFER_EOF_PENDING 2
268 
269  };
270 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
271 
272 /* Stack of input buffers. */
273 static size_t yy_buffer_stack_top = 0;
274 static size_t yy_buffer_stack_max = 0;
275 static YY_BUFFER_STATE * yy_buffer_stack = 0;
277 /* We provide macros for accessing buffer states in case in the
278  * future we want to put the buffer states in a more general
279  * "scanner state".
280  *
281  * Returns the top of the stack, or NULL.
282  */
283 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
284  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
285  : NULL)
286 
287 /* Same as previous macro, but useful when we know that the buffer stack is not
288  * NULL or when we need an lvalue. For internal use only.
289  */
290 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
291 
292 /* yy_hold_char holds the character lost when hdfeostext is formed. */
293 static char yy_hold_char;
294 static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
296 
297 /* Points to current character in buffer. */
298 static char *yy_c_buf_p = (char *) 0;
299 static int yy_init = 0; /* whether we need to initialize */
300 static int yy_start = 0; /* start state number */
301 
302 /* Flag which is used to allow hdfeoswrap()'s to do buffer switches
303  * instead of setting up a fresh hdfeosin. A bit of a hack ...
304  */
305 static int yy_did_buffer_switch_on_eof;
306 
307 void hdfeosrestart (FILE *input_file );
308 void hdfeos_switch_to_buffer (YY_BUFFER_STATE new_buffer );
309 YY_BUFFER_STATE hdfeos_create_buffer (FILE *file,int size );
312 void hdfeospush_buffer_state (YY_BUFFER_STATE new_buffer );
313 void hdfeospop_buffer_state (void );
314 
315 static void hdfeosensure_buffer_stack (void );
316 static void hdfeos_load_buffer_state (void );
317 static void hdfeos_init_buffer (YY_BUFFER_STATE b,FILE *file );
318 
319 #define YY_FLUSH_BUFFER hdfeos_flush_buffer(YY_CURRENT_BUFFER )
320 
321 YY_BUFFER_STATE hdfeos_scan_buffer (char *base,yy_size_t size );
324 
325 void *hdfeosalloc (yy_size_t );
326 void *hdfeosrealloc (void *,yy_size_t );
327 void hdfeosfree (void * );
328 
329 #define yy_new_buffer hdfeos_create_buffer
330 
331 #define yy_set_interactive(is_interactive) \
332  { \
333  if ( ! YY_CURRENT_BUFFER ){ \
334  hdfeosensure_buffer_stack (); \
335  YY_CURRENT_BUFFER_LVALUE = \
336  hdfeos_create_buffer(hdfeosin,YY_BUF_SIZE ); \
337  } \
338  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
339  }
340 
341 #define yy_set_bol(at_bol) \
342  { \
343  if ( ! YY_CURRENT_BUFFER ){\
344  hdfeosensure_buffer_stack (); \
345  YY_CURRENT_BUFFER_LVALUE = \
346  hdfeos_create_buffer(hdfeosin,YY_BUF_SIZE ); \
347  } \
348  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
349  }
350 
351 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
352 
353 /* Begin user sect3 */
354 
355 #define hdfeoswrap(n) 1
356 #define YY_SKIP_YYWRAP
357 
358 typedef unsigned char YY_CHAR;
359 
360 FILE *hdfeosin = (FILE *) 0, *hdfeosout = (FILE *) 0;
361 
362 typedef int yy_state_type;
363 
364 extern int hdfeoslineno;
365 
366 int hdfeoslineno = 1;
367 
368 extern char *hdfeostext;
369 #define yytext_ptr hdfeostext
370 
371 static yy_state_type yy_get_previous_state (void );
372 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
373 static int yy_get_next_buffer (void );
374 static void yy_fatal_error (yyconst char msg[] );
375 
376 /* Done after the current pattern has been matched and before the
377  * corresponding action - sets up hdfeostext.
378  */
379 #define YY_DO_BEFORE_ACTION \
380  (yytext_ptr) = yy_bp; \
381  (yytext_ptr) -= (yy_more_len); \
382  hdfeosleng = (yy_size_t) (yy_cp - (yytext_ptr)); \
383  (yy_hold_char) = *yy_cp; \
384  *yy_cp = '\0'; \
385  (yy_c_buf_p) = yy_cp;
386 
387 #define YY_NUM_RULES 29
388 #define YY_END_OF_BUFFER 30
389 /* This struct is not used in this scanner,
390  but its presence is necessary. */
391 struct yy_trans_info
392  {
393  flex_int32_t yy_verify;
394  flex_int32_t yy_nxt;
395  };
396 static yyconst flex_int16_t yy_accept[79] =
397  { 0,
398  0, 0, 24, 24, 18, 18, 30, 28, 14, 15,
399  23, 8, 10, 11, 8, 12, 8, 8, 6, 13,
400  9, 8, 8, 8, 29, 24, 25, 27, 29, 18,
401  19, 29, 29, 14, 8, 8, 6, 7, 16, 7,
402  6, 8, 5, 8, 8, 24, 25, 26, 18, 19,
403  20, 21, 17, 22, 7, 8, 7, 5, 8, 8,
404  8, 8, 8, 8, 8, 1, 8, 8, 8, 3,
405  8, 8, 8, 8, 2, 8, 4, 0
406  } ;
407 
408 static yyconst flex_int32_t yy_ec[256] =
409  { 0,
410  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
411  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
412  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
413  1, 2, 1, 4, 1, 1, 5, 5, 1, 6,
414  7, 8, 9, 10, 9, 11, 12, 13, 13, 13,
415  13, 13, 13, 13, 13, 13, 13, 5, 14, 1,
416  15, 1, 1, 1, 5, 16, 17, 18, 19, 5,
417  20, 5, 5, 21, 5, 5, 5, 22, 23, 24,
418  5, 25, 5, 26, 27, 5, 5, 5, 5, 5,
419  1, 28, 1, 1, 29, 1, 5, 5, 5, 5,
420 
421  30, 5, 5, 5, 5, 5, 5, 5, 5, 5,
422  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
423  5, 5, 31, 1, 31, 1, 1, 1, 1, 1,
424  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
425  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
426  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
427  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
428  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
429  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
430  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
431 
432  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
433  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
434  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
435  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
436  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
437  1, 1, 1, 1, 1
438  } ;
439 
440 static yyconst flex_int32_t yy_meta[32] =
441  { 0,
442  1, 1, 2, 3, 4, 1, 1, 5, 4, 1,
443  4, 4, 4, 1, 1, 4, 4, 4, 4, 4,
444  4, 4, 4, 4, 4, 4, 4, 3, 4, 4,
445  1
446  } ;
447 
448 static yyconst flex_int16_t yy_base[87] =
449  { 0,
450  0, 0, 29, 31, 33, 35, 127, 128, 124, 128,
451  128, 0, 128, 128, 29, 128, 112, 116, 34, 128,
452  128, 101, 97, 105, 128, 117, 128, 128, 0, 116,
453  128, 43, 0, 116, 0, 104, 0, 37, 128, 38,
454  0, 43, 98, 92, 93, 110, 128, 128, 109, 128,
455  128, 128, 128, 128, 47, 98, 97, 80, 81, 88,
456  42, 82, 88, 79, 87, 0, 76, 78, 79, 0,
457  69, 69, 58, 61, 0, 28, 0, 128, 65, 70,
458  40, 75, 80, 85, 89, 94
459  } ;
460 
461 static yyconst flex_int16_t yy_def[87] =
462  { 0,
463  78, 1, 79, 79, 80, 80, 78, 78, 78, 78,
464  78, 81, 78, 78, 81, 78, 81, 81, 81, 78,
465  78, 81, 81, 81, 78, 82, 78, 78, 83, 84,
466  78, 85, 86, 78, 81, 81, 19, 19, 78, 19,
467  19, 81, 81, 81, 81, 82, 78, 78, 84, 78,
468  78, 78, 78, 78, 19, 81, 81, 81, 81, 81,
469  81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
470  81, 81, 81, 81, 81, 81, 81, 0, 78, 78,
471  78, 78, 78, 78, 78, 78
472  } ;
473 
474 static yyconst flex_int16_t yy_nxt[160] =
475  { 0,
476  8, 9, 10, 11, 12, 13, 14, 8, 15, 16,
477  17, 18, 19, 20, 21, 12, 12, 12, 22, 23,
478  12, 12, 24, 12, 12, 12, 12, 8, 12, 12,
479  25, 27, 28, 27, 28, 31, 25, 31, 25, 36,
480  32, 37, 32, 35, 40, 52, 41, 35, 35, 38,
481  55, 56, 42, 77, 53, 57, 29, 35, 29, 55,
482  33, 64, 33, 42, 65, 26, 26, 26, 26, 26,
483  30, 30, 30, 30, 30, 46, 46, 76, 46, 46,
484  48, 75, 48, 48, 48, 49, 49, 74, 49, 51,
485  51, 51, 51, 51, 54, 73, 54, 54, 54, 72,
486 
487  71, 70, 69, 68, 67, 66, 63, 62, 61, 57,
488  57, 50, 47, 60, 59, 58, 38, 34, 50, 47,
489  45, 44, 43, 39, 38, 34, 78, 7, 78, 78,
490  78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
491  78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
492  78, 78, 78, 78, 78, 78, 78, 78, 78
493  } ;
494 
495 static yyconst flex_int16_t yy_chk[160] =
496  { 0,
497  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
498  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
499  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
500  1, 3, 3, 4, 4, 5, 5, 6, 6, 15,
501  5, 15, 6, 81, 19, 32, 19, 38, 40, 38,
502  40, 42, 19, 76, 32, 42, 3, 55, 4, 55,
503  5, 61, 6, 19, 61, 79, 79, 79, 79, 79,
504  80, 80, 80, 80, 80, 82, 82, 74, 82, 82,
505  83, 73, 83, 83, 83, 84, 84, 72, 84, 85,
506  85, 85, 85, 85, 86, 71, 86, 86, 86, 69,
507 
508  68, 67, 65, 64, 63, 62, 60, 59, 58, 57,
509  56, 49, 46, 45, 44, 43, 36, 34, 30, 26,
510  24, 23, 22, 18, 17, 9, 7, 78, 78, 78,
511  78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
512  78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
513  78, 78, 78, 78, 78, 78, 78, 78, 78
514  } ;
515 
516 static yy_state_type yy_last_accepting_state;
517 static char *yy_last_accepting_cpos;
518 
519 extern int hdfeos_flex_debug;
520 int hdfeos_flex_debug = 0;
521 
522 /* The intent behind this definition is that it'll catch
523  * any uses of REJECT which flex missed.
524  */
525 #define REJECT reject_used_but_not_detected
526 static int yy_more_flag = 0;
527 static int yy_more_len = 0;
528 #define yymore() ((yy_more_flag) = 1)
529 #define YY_MORE_ADJ (yy_more_len)
530 #define YY_RESTORE_YY_MORE_OFFSET
532 #line 1 "hdfeos.lex"
533 /*
534 // Copyright 1996, by the California Institute of Technology.
535 // ALL RIGHTS RESERVED. United States Government Sponsorship
536 // acknowledged. Any commercial use must be negotiated with the
537 // Office of Technology Transfer at the California Institute of
538 // Technology. This software may be subject to U.S. export control
539 // laws and regulations. By accepting this software, the user
540 // agrees to comply with all applicable U.S. export laws and
541 // regulations. User has the responsibility to obtain export
542 // licenses, or other export authority as may be required before
543 // exporting such information to foreign countries or providing
544 // access to foreign persons.
545 
546 // Author: Jake Hamby, NASA/Jet Propulsion Laboratory
547 // Jake.Hamby@jpl.nasa.gov
548 //
549 //
550 */
551 /*
552  Scanner for the HDF-EOS StructMetadata attribute. This file works with
553  gnu's flex scanner generator. It returns either ATTR, ID, VAL, TYPE or
554  one of the single character tokens `{', `}', `;', `,' or `\n' as integers.
555  In the case of an ID or VAL, the scanner stores a pointer to the lexeme
556  in yylval (whose type is char *).
557 
558  The scanner discards all comment text.
559 
560  The scanner returns quoted strings as VALs. Any characters may appear in a
561  quoted string except backslash (\) and quote("). To include these escape
562  them with a backslash.
563 
564  The scanner is not reentrant, but can share name spaces with other
565  scanners.
566 
567  Note:
568  1) The `defines' file hdfeos.tab.h is built using `bison -d'.
569  2) Define YY_DECL such that the scanner is called `hdfeoslex'.
570  3) When bison builds the hdfeos.tab.h file, it uses `hdfeos' instead of `yy' for
571  variable name prefixes (e.g., yylval --> hdfeoslval).
572  4) The quote stuff is very complicated because we want backslash (\)
573  escapes to work and because we want line counts to work too. In order to
574  properly scan a quoted string two C functions are used: one to remove the
575  escape characters from escape sequences and one to remove the trailing
576  quote on the end of the string.
577 
578  jeh 6/19/1998
579 */
580 #line 51 "hdfeos.lex"
581 #include "config_hdf.h"
582 
583 #include <string.h>
584 #include <assert.h>
585 
586 #include <parser.h>
587 
588 #ifndef YY_PROTO
589 #define YY_PROTO(proto) proto
590 #endif
591 
592 #define YYSTYPE char *
593 #define YY_DECL int hdfeoslex YY_PROTO(( void ))
594 
595 #include "hdfeos.tab.hh"
596 
598 static int start_line; /* used in quote and comment error handlers */
599 
600 
601 
602 #line 603 "lex.hdfeos.cc"
603 
604 #define INITIAL 0
605 #define quote 1
606 #define comment 2
607 
608 #ifndef YY_NO_UNISTD_H
609 /* Special case for "unistd.h", since it is non-ANSI. We include it way
610  * down here because we want the user's section 1 to have been scanned first.
611  * The user has a chance to override it with an option.
612  */
613 #include <unistd.h>
614 #endif
615 
616 #ifndef YY_EXTRA_TYPE
617 #define YY_EXTRA_TYPE void *
618 #endif
619 
620 static int yy_init_globals (void );
621 
622 /* Accessor methods to globals.
623  These are made visible to non-reentrant scanners for convenience. */
624 
625 int hdfeoslex_destroy (void );
626 
627 int hdfeosget_debug (void );
628 
629 void hdfeosset_debug (int debug_flag );
630 
632 
633 void hdfeosset_extra (YY_EXTRA_TYPE user_defined );
634 
635 FILE *hdfeosget_in (void );
636 
637 void hdfeosset_in (FILE * in_str );
638 
639 FILE *hdfeosget_out (void );
640 
641 void hdfeosset_out (FILE * out_str );
642 
643 yy_size_t hdfeosget_leng (void );
644 
645 char *hdfeosget_text (void );
646 
647 int hdfeosget_lineno (void );
648 
649 void hdfeosset_lineno (int line_number );
650 
651 /* Macros after this point can all be overridden by user definitions in
652  * section 1.
653  */
654 
655 #ifndef YY_SKIP_YYWRAP
656 #ifdef __cplusplus
657 extern "C" int hdfeoswrap (void );
658 #else
659 extern int hdfeoswrap (void );
660 #endif
661 #endif
662 
663 #ifndef yytext_ptr
664 static void yy_flex_strncpy (char *,yyconst char *,int );
665 #endif
666 
667 #ifdef YY_NEED_STRLEN
668 static int yy_flex_strlen (yyconst char * );
669 #endif
670 
671 #ifndef YY_NO_INPUT
672 
673 #ifdef __cplusplus
674 static int yyinput (void );
675 #else
676 static int input (void );
677 #endif
678 
679 #endif
680 
681 /* Amount of stuff to slurp up with each read. */
682 #ifndef YY_READ_BUF_SIZE
683 #define YY_READ_BUF_SIZE 8192
684 #endif
685 
686 /* Copy whatever the last rule matched to the standard output. */
687 #ifndef ECHO
688 /* This used to be an fputs(), but since the string might contain NUL's,
689  * we now use fwrite().
690  */
691 #define ECHO fwrite( hdfeostext, hdfeosleng, 1, hdfeosout )
692 #endif
693 
694 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
695  * is returned in "result".
696  */
697 #ifndef YY_INPUT
698 #define YY_INPUT(buf,result,max_size) \
699  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
700  { \
701  int c = '*'; \
702  yy_size_t n; \
703  for ( n = 0; n < max_size && \
704  (c = getc( hdfeosin )) != EOF && c != '\n'; ++n ) \
705  buf[n] = (char) c; \
706  if ( c == '\n' ) \
707  buf[n++] = (char) c; \
708  if ( c == EOF && ferror( hdfeosin ) ) \
709  YY_FATAL_ERROR( "input in flex scanner failed" ); \
710  result = n; \
711  } \
712  else \
713  { \
714  errno=0; \
715  while ( (result = fread(buf, 1, max_size, hdfeosin))==0 && ferror(hdfeosin)) \
716  { \
717  if( errno != EINTR) \
718  { \
719  YY_FATAL_ERROR( "input in flex scanner failed" ); \
720  break; \
721  } \
722  errno=0; \
723  clearerr(hdfeosin); \
724  } \
725  }\
726 \
727 
728 #endif
729 
730 /* No semi-colon after return; correct usage is to write "yyterminate();" -
731  * we don't want an extra ';' after the "return" because that will cause
732  * some compilers to complain about unreachable statements.
733  */
734 #ifndef yyterminate
735 #define yyterminate() return YY_NULL
736 #endif
737 
738 /* Number of entries by which start-condition stack grows. */
739 #ifndef YY_START_STACK_INCR
740 #define YY_START_STACK_INCR 25
741 #endif
742 
743 /* Report a fatal error. */
744 #ifndef YY_FATAL_ERROR
745 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
746 #endif
747 
748 /* end tables serialization structures and prototypes */
749 
750 /* Default declaration of generated scanner - a define so the user can
751  * easily add parameters.
752  */
753 #ifndef YY_DECL
754 #define YY_DECL_IS_OURS 1
755 
756 extern int hdfeoslex (void);
757 
758 #define YY_DECL int hdfeoslex (void)
759 #endif /* !YY_DECL */
760 
761 /* Code executed at the beginning of each rule, after hdfeostext and hdfeosleng
762  * have been set up.
763  */
764 #ifndef YY_USER_ACTION
765 #define YY_USER_ACTION
766 #endif
767 
768 /* Code executed at the end of each rule. */
769 #ifndef YY_BREAK
770 #define YY_BREAK break;
771 #endif
772 
773 #define YY_RULE_SETUP \
774  YY_USER_ACTION
775 
778 YY_DECL
779 {
780  register yy_state_type yy_current_state;
781  register char *yy_cp, *yy_bp;
782  register int yy_act;
783 
784 #line 98 "hdfeos.lex"
785 
786 
787 #line 788 "lex.hdfeos.cc"
788 
789  if ( !(yy_init) )
790  {
791  (yy_init) = 1;
792 
793 #ifdef YY_USER_INIT
794  YY_USER_INIT;
795 #endif
796 
797  if ( ! (yy_start) )
798  (yy_start) = 1; /* first start state */
799 
800  if ( ! hdfeosin )
801  hdfeosin = stdin;
802 
803  if ( ! hdfeosout )
804  hdfeosout = stdout;
805 
806  if ( ! YY_CURRENT_BUFFER ) {
807  hdfeosensure_buffer_stack ();
810  }
811 
812  hdfeos_load_buffer_state( );
813  }
814 
815  while ( 1 ) /* loops until end-of-file is reached */
816  {
817  (yy_more_len) = 0;
818  if ( (yy_more_flag) )
819  {
820  (yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
821  (yy_more_flag) = 0;
822  }
823  yy_cp = (yy_c_buf_p);
824 
825  /* Support of hdfeostext. */
826  *yy_cp = (yy_hold_char);
827 
828  /* yy_bp points to the position in yy_ch_buf of the start of
829  * the current run.
830  */
831  yy_bp = yy_cp;
832 
833  yy_current_state = (yy_start);
834 yy_match:
835  do
836  {
837  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
838  if ( yy_accept[yy_current_state] )
839  {
840  (yy_last_accepting_state) = yy_current_state;
841  (yy_last_accepting_cpos) = yy_cp;
842  }
843  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
844  {
845  yy_current_state = (int) yy_def[yy_current_state];
846  if ( yy_current_state >= 79 )
847  yy_c = yy_meta[(unsigned int) yy_c];
848  }
849  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
850  ++yy_cp;
851  }
852  while ( yy_base[yy_current_state] != 128 );
853 
854 yy_find_action:
855  yy_act = yy_accept[yy_current_state];
856  if ( yy_act == 0 )
857  { /* have to back up */
858  yy_cp = (yy_last_accepting_cpos);
859  yy_current_state = (yy_last_accepting_state);
860  yy_act = yy_accept[yy_current_state];
861  }
862 
864 
865 do_action: /* This label is used only to access EOF actions. */
866 
867  switch ( yy_act )
868  { /* beginning of action switch */
869  case 0: /* must back up */
870  /* undo the effects of YY_DO_BEFORE_ACTION */
871  *yy_cp = (yy_hold_char);
872  yy_cp = (yy_last_accepting_cpos);
873  yy_current_state = (yy_last_accepting_state);
874  goto yy_find_action;
875 
876 case 1:
878 #line 100 "hdfeos.lex"
879 hdfeoslval = hdfeostext; return GROUP;
880  YY_BREAK
881 case 2:
883 #line 101 "hdfeos.lex"
884 hdfeoslval = hdfeostext; return END_GROUP;
885  YY_BREAK
886 case 3:
888 #line 102 "hdfeos.lex"
889 hdfeoslval = hdfeostext; return OBJECT;
890  YY_BREAK
891 case 4:
893 #line 103 "hdfeos.lex"
894 hdfeoslval = hdfeostext; return END_OBJECT;
895  YY_BREAK
896 case 5:
898 #line 104 "hdfeos.lex"
899 /* Ignore */
900  YY_BREAK
901 case 6:
903 #line 106 "hdfeos.lex"
904 hdfeoslval = hdfeostext; return INT;
905  YY_BREAK
906 case 7:
908 #line 107 "hdfeos.lex"
909 hdfeoslval = hdfeostext; return FLOAT;
910  YY_BREAK
911 case 8:
913 #line 108 "hdfeos.lex"
914 hdfeoslval = hdfeostext; return STR;
915  YY_BREAK
916 case 9:
918 #line 110 "hdfeos.lex"
919 return (int)*hdfeostext;
920  YY_BREAK
921 case 10:
923 #line 111 "hdfeos.lex"
924 return (int)*hdfeostext;
925  YY_BREAK
926 case 11:
928 #line 112 "hdfeos.lex"
929 return (int)*hdfeostext;
930  YY_BREAK
931 case 12:
933 #line 113 "hdfeos.lex"
934 return (int)*hdfeostext;
935  YY_BREAK
936 case 13:
938 #line 114 "hdfeos.lex"
939 /* Ignore */
940  YY_BREAK
941 case 14:
943 #line 116 "hdfeos.lex"
944 
945  YY_BREAK
946 case 15:
947 /* rule 15 can match eol */
949 #line 117 "hdfeos.lex"
951  YY_BREAK
952 case YY_STATE_EOF(INITIAL):
953 #line 118 "hdfeos.lex"
954 yy_init = 1; hdfeos_line_num = 1; yyterminate();
955  YY_BREAK
956 case 16:
958 #line 120 "hdfeos.lex"
959 BEGIN(comment); start_line = hdfeos_line_num; yymore();
960  YY_BREAK
961 case 17:
963 #line 121 "hdfeos.lex"
964 {
965  BEGIN(INITIAL);
966 
967  hdfeoslval = hdfeostext;
968 
969  return COMMENT;
970  }
971  YY_BREAK
972 case 18:
974 #line 128 "hdfeos.lex"
975 yymore();
976  YY_BREAK
977 case 19:
978 /* rule 19 can match eol */
980 #line 129 "hdfeos.lex"
982  YY_BREAK
983 case 20:
985 #line 130 "hdfeos.lex"
986 yymore();
987  YY_BREAK
988 case 21:
989 /* rule 21 can match eol */
991 #line 131 "hdfeos.lex"
993  YY_BREAK
994 case 22:
996 #line 132 "hdfeos.lex"
997 yymore();
998  YY_BREAK
999 case YY_STATE_EOF(comment):
1000 #line 133 "hdfeos.lex"
1001 {
1002  char msg[256];
1003  sprintf(msg,
1004  "Unterminated comment (starts on line %d)\n",
1005  start_line);
1006  YY_FATAL_ERROR(msg);
1007  }
1008  YY_BREAK
1009 case 23:
1011 #line 141 "hdfeos.lex"
1012 BEGIN(quote); start_line = hdfeos_line_num; yymore();
1013  YY_BREAK
1014 case 24:
1016 #line 142 "hdfeos.lex"
1017 yymore();
1018  YY_BREAK
1019 case 25:
1020 /* rule 25 can match eol */
1022 #line 143 "hdfeos.lex"
1023 yymore(); ++hdfeos_line_num;
1024  YY_BREAK
1025 case 26:
1027 #line 144 "hdfeos.lex"
1028 yymore();
1029  YY_BREAK
1030 case 27:
1032 #line 145 "hdfeos.lex"
1033 {
1034  BEGIN(INITIAL);
1035 
1036  hdfeoslval = hdfeostext;
1037 
1038  return STR;
1039  }
1040  YY_BREAK
1041 case YY_STATE_EOF(quote):
1042 #line 152 "hdfeos.lex"
1043 {
1044  char msg[256];
1045  sprintf(msg,
1046  "Unterminated quote (starts on line %d)\n",
1047  start_line);
1048  YY_FATAL_ERROR(msg);
1049  }
1050  YY_BREAK
1051 case 28:
1052 /* rule 28 can match eol */
1054 #line 160 "hdfeos.lex"
1055 {
1056  if (hdfeostext) { /* suppress msgs about `' chars */
1057  fprintf(stderr, "Character '%c' (%d) is not", *hdfeostext, *hdfeostext);
1058  fprintf(stderr, " allowed (except within");
1059  fprintf(stderr, " quotes) and has been ignored\n");
1060  }
1061  }
1062  YY_BREAK
1063 case 29:
1065 #line 167 "hdfeos.lex"
1066 ECHO;
1067  YY_BREAK
1068 #line 1069 "lex.hdfeos.cc"
1069 
1070  case YY_END_OF_BUFFER:
1071  {
1072  /* Amount of text matched not including the EOB char. */
1073  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1074 
1075  /* Undo the effects of YY_DO_BEFORE_ACTION. */
1076  *yy_cp = (yy_hold_char);
1078 
1079  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1080  {
1081  /* We're scanning a new file or input source. It's
1082  * possible that this happened because the user
1083  * just pointed hdfeosin at a new source and called
1084  * hdfeoslex(). If so, then we have to assure
1085  * consistency between YY_CURRENT_BUFFER and our
1086  * globals. Here is the right place to do so, because
1087  * this is the first action (other than possibly a
1088  * back-up) that will match for the new input source.
1089  */
1090  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1091  YY_CURRENT_BUFFER_LVALUE->yy_input_file = hdfeosin;
1092  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1093  }
1094 
1095  /* Note that here we test for yy_c_buf_p "<=" to the position
1096  * of the first EOB in the buffer, since yy_c_buf_p will
1097  * already have been incremented past the NUL character
1098  * (since all states make transitions on EOB to the
1099  * end-of-buffer state). Contrast this with the test
1100  * in input().
1101  */
1102  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1103  { /* This was really a NUL. */
1104  yy_state_type yy_next_state;
1105 
1106  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1107 
1108  yy_current_state = yy_get_previous_state( );
1109 
1110  /* Okay, we're now positioned to make the NUL
1111  * transition. We couldn't have
1112  * yy_get_previous_state() go ahead and do it
1113  * for us because it doesn't know how to deal
1114  * with the possibility of jamming (and we don't
1115  * want to build jamming into it because then it
1116  * will run more slowly).
1117  */
1118 
1119  yy_next_state = yy_try_NUL_trans( yy_current_state );
1120 
1121  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1122 
1123  if ( yy_next_state )
1124  {
1125  /* Consume the NUL. */
1126  yy_cp = ++(yy_c_buf_p);
1127  yy_current_state = yy_next_state;
1128  goto yy_match;
1129  }
1130 
1131  else
1132  {
1133  yy_cp = (yy_c_buf_p);
1134  goto yy_find_action;
1135  }
1136  }
1137 
1138  else switch ( yy_get_next_buffer( ) )
1139  {
1140  case EOB_ACT_END_OF_FILE:
1141  {
1142  (yy_did_buffer_switch_on_eof) = 0;
1143 
1144  if ( hdfeoswrap( ) )
1145  {
1146  /* Note: because we've taken care in
1147  * yy_get_next_buffer() to have set up
1148  * hdfeostext, we can now set up
1149  * yy_c_buf_p so that if some total
1150  * hoser (like flex itself) wants to
1151  * call the scanner after we return the
1152  * YY_NULL, it'll still work - another
1153  * YY_NULL will get returned.
1154  */
1155  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1156 
1157  yy_act = YY_STATE_EOF(YY_START);
1158  goto do_action;
1159  }
1160 
1161  else
1162  {
1163  if ( ! (yy_did_buffer_switch_on_eof) )
1164  YY_NEW_FILE;
1165  }
1166  break;
1167  }
1168 
1169  case EOB_ACT_CONTINUE_SCAN:
1170  (yy_c_buf_p) =
1171  (yytext_ptr) + yy_amount_of_matched_text;
1172 
1173  yy_current_state = yy_get_previous_state( );
1174 
1175  yy_cp = (yy_c_buf_p);
1176  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1177  goto yy_match;
1178 
1179  case EOB_ACT_LAST_MATCH:
1180  (yy_c_buf_p) =
1181  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1182 
1183  yy_current_state = yy_get_previous_state( );
1184 
1185  yy_cp = (yy_c_buf_p);
1186  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1187  goto yy_find_action;
1188  }
1189  break;
1190  }
1191 
1192  default:
1194  "fatal flex scanner internal error--no action found" );
1195  } /* end of action switch */
1196  } /* end of scanning one token */
1197 } /* end of hdfeoslex */
1198 
1199 /* yy_get_next_buffer - try to read in a new buffer
1200  *
1201  * Returns a code representing an action:
1202  * EOB_ACT_LAST_MATCH -
1203  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1204  * EOB_ACT_END_OF_FILE - end of file
1205  */
1206 static int yy_get_next_buffer (void)
1207 {
1208  register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1209  register char *source = (yytext_ptr);
1210  register int number_to_move, i;
1211  int ret_val;
1212 
1213  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1215  "fatal flex scanner internal error--end of buffer missed" );
1216 
1217  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1218  { /* Don't try to fill the buffer, so this is an EOF. */
1219  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1220  {
1221  /* We matched a single character, the EOB, so
1222  * treat this as a final EOF.
1223  */
1224  return EOB_ACT_END_OF_FILE;
1225  }
1226 
1227  else
1228  {
1229  /* We matched some text prior to the EOB, first
1230  * process it.
1231  */
1232  return EOB_ACT_LAST_MATCH;
1233  }
1234  }
1235 
1236  /* Try to read more data. */
1237 
1238  /* First move last chars to start of buffer. */
1239  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1240 
1241  for ( i = 0; i < number_to_move; ++i )
1242  *(dest++) = *(source++);
1243 
1244  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1245  /* don't do the read, it's not guaranteed to return an EOF,
1246  * just force an EOF
1247  */
1248  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1249 
1250  else
1251  {
1252  yy_size_t num_to_read =
1253  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1254 
1255  while ( num_to_read <= 0 )
1256  { /* Not enough room in the buffer - grow it. */
1257 
1258  /* just a shorter name for the current buffer */
1260 
1261  int yy_c_buf_p_offset =
1262  (int) ((yy_c_buf_p) - b->yy_ch_buf);
1263 
1264  if ( b->yy_is_our_buffer )
1265  {
1266  yy_size_t new_size = b->yy_buf_size * 2;
1267 
1268  if ( new_size <= 0 )
1269  b->yy_buf_size += b->yy_buf_size / 8;
1270  else
1271  b->yy_buf_size *= 2;
1272 
1273  b->yy_ch_buf = (char *)
1274  /* Include room in for 2 EOB chars. */
1275  hdfeosrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
1276  }
1277  else
1278  /* Can't grow it, we don't own it. */
1279  b->yy_ch_buf = 0;
1280 
1281  if ( ! b->yy_ch_buf )
1283  "fatal error - scanner input buffer overflow" );
1284 
1285  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1286 
1287  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1288  number_to_move - 1;
1289 
1290  }
1291 
1292  if ( num_to_read > YY_READ_BUF_SIZE )
1293  num_to_read = YY_READ_BUF_SIZE;
1294 
1295  /* Read in more data. */
1296  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1297  (yy_n_chars), num_to_read );
1298 
1299  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1300  }
1301 
1302  if ( (yy_n_chars) == 0 )
1303  {
1304  if ( number_to_move == YY_MORE_ADJ )
1305  {
1306  ret_val = EOB_ACT_END_OF_FILE;
1308  }
1309 
1310  else
1311  {
1312  ret_val = EOB_ACT_LAST_MATCH;
1313  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1315  }
1316  }
1317 
1318  else
1319  ret_val = EOB_ACT_CONTINUE_SCAN;
1320 
1321  if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1322  /* Extend the array by 50%, plus the number we really need. */
1323  yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1324  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) hdfeosrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
1325  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1326  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1327  }
1328 
1329  (yy_n_chars) += number_to_move;
1330  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1331  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1332 
1333  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1334 
1335  return ret_val;
1336 }
1337 
1338 /* yy_get_previous_state - get the state just before the EOB char was reached */
1339 
1340  static yy_state_type yy_get_previous_state (void)
1341 {
1342  register yy_state_type yy_current_state;
1343  register char *yy_cp;
1344 
1345  yy_current_state = (yy_start);
1346 
1347  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1348  {
1349  register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1350  if ( yy_accept[yy_current_state] )
1351  {
1352  (yy_last_accepting_state) = yy_current_state;
1353  (yy_last_accepting_cpos) = yy_cp;
1354  }
1355  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1356  {
1357  yy_current_state = (int) yy_def[yy_current_state];
1358  if ( yy_current_state >= 79 )
1359  yy_c = yy_meta[(unsigned int) yy_c];
1360  }
1361  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1362  }
1363 
1364  return yy_current_state;
1365 }
1366 
1367 /* yy_try_NUL_trans - try to make a transition on the NUL character
1368  *
1369  * synopsis
1370  * next_state = yy_try_NUL_trans( current_state );
1371  */
1372  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
1373 {
1374  register int yy_is_jam;
1375  register char *yy_cp = (yy_c_buf_p);
1376 
1377  register YY_CHAR yy_c = 1;
1378  if ( yy_accept[yy_current_state] )
1379  {
1380  (yy_last_accepting_state) = yy_current_state;
1381  (yy_last_accepting_cpos) = yy_cp;
1382  }
1383  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1384  {
1385  yy_current_state = (int) yy_def[yy_current_state];
1386  if ( yy_current_state >= 79 )
1387  yy_c = yy_meta[(unsigned int) yy_c];
1388  }
1389  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1390  yy_is_jam = (yy_current_state == 78);
1391 
1392  return yy_is_jam ? 0 : yy_current_state;
1393 }
1394 
1395 #ifndef YY_NO_INPUT
1396 #ifdef __cplusplus
1397  static int yyinput (void)
1398 #else
1399  static int input (void)
1400 #endif
1401 
1402 {
1403  int c;
1404 
1405  *(yy_c_buf_p) = (yy_hold_char);
1406 
1407  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1408  {
1409  /* yy_c_buf_p now points to the character we want to return.
1410  * If this occurs *before* the EOB characters, then it's a
1411  * valid NUL; if not, then we've hit the end of the buffer.
1412  */
1413  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1414  /* This was really a NUL. */
1415  *(yy_c_buf_p) = '\0';
1416 
1417  else
1418  { /* need more input */
1419  yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
1420  ++(yy_c_buf_p);
1421 
1422  switch ( yy_get_next_buffer( ) )
1423  {
1424  case EOB_ACT_LAST_MATCH:
1425  /* This happens because yy_g_n_b()
1426  * sees that we've accumulated a
1427  * token and flags that we need to
1428  * try matching the token before
1429  * proceeding. But for input(),
1430  * there's no matching to consider.
1431  * So convert the EOB_ACT_LAST_MATCH
1432  * to EOB_ACT_END_OF_FILE.
1433  */
1434 
1435  /* Reset buffer status. */
1437 
1438  /*FALLTHROUGH*/
1439 
1440  case EOB_ACT_END_OF_FILE:
1441  {
1442  if ( hdfeoswrap( ) )
1443  return 0;
1444 
1445  if ( ! (yy_did_buffer_switch_on_eof) )
1446  YY_NEW_FILE;
1447 #ifdef __cplusplus
1448  return yyinput();
1449 #else
1450  return input();
1451 #endif
1452  }
1453 
1454  case EOB_ACT_CONTINUE_SCAN:
1455  (yy_c_buf_p) = (yytext_ptr) + offset;
1456  break;
1457  }
1458  }
1459  }
1460 
1461  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
1462  *(yy_c_buf_p) = '\0'; /* preserve hdfeostext */
1463  (yy_hold_char) = *++(yy_c_buf_p);
1464 
1465  return c;
1466 }
1467 #endif /* ifndef YY_NO_INPUT */
1468 
1474  void hdfeosrestart (FILE * input_file )
1475 {
1476 
1477  if ( ! YY_CURRENT_BUFFER ){
1478  hdfeosensure_buffer_stack ();
1481  }
1482 
1483  hdfeos_init_buffer(YY_CURRENT_BUFFER,input_file );
1484  hdfeos_load_buffer_state( );
1485 }
1486 
1492 {
1493 
1494  /* TODO. We should be able to replace this entire function body
1495  * with
1496  * hdfeospop_buffer_state();
1497  * hdfeospush_buffer_state(new_buffer);
1498  */
1499  hdfeosensure_buffer_stack ();
1500  if ( YY_CURRENT_BUFFER == new_buffer )
1501  return;
1502 
1503  if ( YY_CURRENT_BUFFER )
1504  {
1505  /* Flush out information for old buffer. */
1506  *(yy_c_buf_p) = (yy_hold_char);
1507  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1508  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1509  }
1510 
1511  YY_CURRENT_BUFFER_LVALUE = new_buffer;
1512  hdfeos_load_buffer_state( );
1513 
1514  /* We don't actually know whether we did this switch during
1515  * EOF (hdfeoswrap()) processing, but the only time this flag
1516  * is looked at is after hdfeoswrap() is called, so it's safe
1517  * to go ahead and always set it.
1518  */
1519  (yy_did_buffer_switch_on_eof) = 1;
1520 }
1521 
1522 static void hdfeos_load_buffer_state (void)
1523 {
1524  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1525  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1526  hdfeosin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1527  (yy_hold_char) = *(yy_c_buf_p);
1528 }
1529 
1536  YY_BUFFER_STATE hdfeos_create_buffer (FILE * file, int size )
1537 {
1538  YY_BUFFER_STATE b;
1539 
1540  b = (YY_BUFFER_STATE) hdfeosalloc(sizeof( struct yy_buffer_state ) );
1541  if ( ! b )
1542  YY_FATAL_ERROR( "out of dynamic memory in hdfeos_create_buffer()" );
1543 
1544  b->yy_buf_size = size;
1545 
1546  /* yy_ch_buf has to be 2 characters longer than the size given because
1547  * we need to put in 2 end-of-buffer characters.
1548  */
1549  b->yy_ch_buf = (char *) hdfeosalloc(b->yy_buf_size + 2 );
1550  if ( ! b->yy_ch_buf )
1551  YY_FATAL_ERROR( "out of dynamic memory in hdfeos_create_buffer()" );
1552 
1553  b->yy_is_our_buffer = 1;
1554 
1555  hdfeos_init_buffer(b,file );
1556 
1557  return b;
1558 }
1559 
1565 {
1566 
1567  if ( ! b )
1568  return;
1569 
1570  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1572 
1573  if ( b->yy_is_our_buffer )
1574  hdfeosfree((void *) b->yy_ch_buf );
1575 
1576  hdfeosfree((void *) b );
1577 }
1578 
1579 #ifndef __cplusplus
1580 extern int isatty (int );
1581 #endif /* __cplusplus */
1582 
1583 /* Initializes or reinitializes a buffer.
1584  * This function is sometimes called more than once on the same buffer,
1585  * such as during a hdfeosrestart() or at EOF.
1586  */
1587  static void hdfeos_init_buffer (YY_BUFFER_STATE b, FILE * file )
1588 
1589 {
1590  int oerrno = errno;
1591 
1592  hdfeos_flush_buffer(b );
1593 
1594  b->yy_input_file = file;
1595  b->yy_fill_buffer = 1;
1596 
1597  /* If b is the current buffer, then hdfeos_init_buffer was _probably_
1598  * called from hdfeosrestart() or through yy_get_next_buffer.
1599  * In that case, we don't want to reset the lineno or column.
1600  */
1601  if (b != YY_CURRENT_BUFFER){
1602  b->yy_bs_lineno = 1;
1603  b->yy_bs_column = 0;
1604  }
1605 
1606  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1607 
1608  errno = oerrno;
1609 }
1610 
1616 {
1617  if ( ! b )
1618  return;
1619 
1620  b->yy_n_chars = 0;
1621 
1622  /* We always need two end-of-buffer characters. The first causes
1623  * a transition to the end-of-buffer state. The second causes
1624  * a jam in that state.
1625  */
1626  b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1627  b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1628 
1629  b->yy_buf_pos = &b->yy_ch_buf[0];
1630 
1631  b->yy_at_bol = 1;
1632  b->yy_buffer_status = YY_BUFFER_NEW;
1633 
1634  if ( b == YY_CURRENT_BUFFER )
1635  hdfeos_load_buffer_state( );
1636 }
1637 
1645 {
1646  if (new_buffer == NULL)
1647  return;
1648 
1649  hdfeosensure_buffer_stack();
1650 
1651  /* This block is copied from hdfeos_switch_to_buffer. */
1652  if ( YY_CURRENT_BUFFER )
1653  {
1654  /* Flush out information for old buffer. */
1655  *(yy_c_buf_p) = (yy_hold_char);
1656  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1657  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1658  }
1659 
1660  /* Only push if top exists. Otherwise, replace top. */
1661  if (YY_CURRENT_BUFFER)
1662  (yy_buffer_stack_top)++;
1663  YY_CURRENT_BUFFER_LVALUE = new_buffer;
1664 
1665  /* copied from hdfeos_switch_to_buffer. */
1666  hdfeos_load_buffer_state( );
1667  (yy_did_buffer_switch_on_eof) = 1;
1668 }
1669 
1675 {
1676  if (!YY_CURRENT_BUFFER)
1677  return;
1678 
1681  if ((yy_buffer_stack_top) > 0)
1682  --(yy_buffer_stack_top);
1683 
1684  if (YY_CURRENT_BUFFER) {
1685  hdfeos_load_buffer_state( );
1686  (yy_did_buffer_switch_on_eof) = 1;
1687  }
1688 }
1689 
1690 /* Allocates the stack if it does not exist.
1691  * Guarantees space for at least one push.
1692  */
1693 static void hdfeosensure_buffer_stack (void)
1694 {
1695  yy_size_t num_to_alloc;
1696 
1697  if (!(yy_buffer_stack)) {
1698 
1699  /* First allocation is just for 2 elements, since we don't know if this
1700  * scanner will even need a stack. We use 2 instead of 1 to avoid an
1701  * immediate realloc on the next call.
1702  */
1703  num_to_alloc = 1;
1704  (yy_buffer_stack) = (struct yy_buffer_state**)hdfeosalloc
1705  (num_to_alloc * sizeof(struct yy_buffer_state*)
1706  );
1707  if ( ! (yy_buffer_stack) )
1708  YY_FATAL_ERROR( "out of dynamic memory in hdfeosensure_buffer_stack()" );
1709 
1710  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1711 
1712  (yy_buffer_stack_max) = num_to_alloc;
1713  (yy_buffer_stack_top) = 0;
1714  return;
1715  }
1716 
1717  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1718 
1719  /* Increase the buffer to prepare for a possible push. */
1720  int grow_size = 8 /* arbitrary grow size */;
1721 
1722  num_to_alloc = (yy_buffer_stack_max) + grow_size;
1723  (yy_buffer_stack) = (struct yy_buffer_state**)hdfeosrealloc
1724  ((yy_buffer_stack),
1725  num_to_alloc * sizeof(struct yy_buffer_state*)
1726  );
1727  if ( ! (yy_buffer_stack) )
1728  YY_FATAL_ERROR( "out of dynamic memory in hdfeosensure_buffer_stack()" );
1729 
1730  /* zero only the new slots.*/
1731  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1732  (yy_buffer_stack_max) = num_to_alloc;
1733  }
1734 }
1735 
1743 {
1744  YY_BUFFER_STATE b;
1745 
1746  if ( size < 2 ||
1747  base[size-2] != YY_END_OF_BUFFER_CHAR ||
1748  base[size-1] != YY_END_OF_BUFFER_CHAR )
1749  /* They forgot to leave room for the EOB's. */
1750  return 0;
1751 
1752  b = (YY_BUFFER_STATE) hdfeosalloc(sizeof( struct yy_buffer_state ) );
1753  if ( ! b )
1754  YY_FATAL_ERROR( "out of dynamic memory in hdfeos_scan_buffer()" );
1755 
1756  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
1757  b->yy_buf_pos = b->yy_ch_buf = base;
1758  b->yy_is_our_buffer = 0;
1759  b->yy_input_file = 0;
1760  b->yy_n_chars = b->yy_buf_size;
1761  b->yy_is_interactive = 0;
1762  b->yy_at_bol = 1;
1763  b->yy_fill_buffer = 0;
1764  b->yy_buffer_status = YY_BUFFER_NEW;
1765 
1767 
1768  return b;
1769 }
1770 
1780 {
1781 
1782  return hdfeos_scan_bytes(yystr,strlen(yystr) );
1783 }
1784 
1792 YY_BUFFER_STATE hdfeos_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
1793 {
1794  YY_BUFFER_STATE b;
1795  char *buf;
1796  yy_size_t n, i;
1797 
1798  /* Get memory for full buffer, including space for trailing EOB's. */
1799  n = _yybytes_len + 2;
1800  buf = (char *) hdfeosalloc(n );
1801  if ( ! buf )
1802  YY_FATAL_ERROR( "out of dynamic memory in hdfeos_scan_bytes()" );
1803 
1804  for ( i = 0; i < _yybytes_len; ++i )
1805  buf[i] = yybytes[i];
1806 
1807  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1808 
1809  b = hdfeos_scan_buffer(buf,n );
1810  if ( ! b )
1811  YY_FATAL_ERROR( "bad buffer in hdfeos_scan_bytes()" );
1812 
1813  /* It's okay to grow etc. this buffer, and we should throw it
1814  * away when we're done.
1815  */
1816  b->yy_is_our_buffer = 1;
1817 
1818  return b;
1819 }
1820 
1821 #ifndef YY_EXIT_FAILURE
1822 #define YY_EXIT_FAILURE 2
1823 #endif
1824 
1825 static void yy_fatal_error (yyconst char* msg )
1826 {
1827  (void) fprintf( stderr, "%s\n", msg );
1828  exit( YY_EXIT_FAILURE );
1829 }
1830 
1831 /* Redefine yyless() so it works in section 3 code. */
1832 
1833 #undef yyless
1834 #define yyless(n) \
1835  do \
1836  { \
1837  /* Undo effects of setting up hdfeostext. */ \
1838  int yyless_macro_arg = (n); \
1839  YY_LESS_LINENO(yyless_macro_arg);\
1840  hdfeostext[hdfeosleng] = (yy_hold_char); \
1841  (yy_c_buf_p) = hdfeostext + yyless_macro_arg; \
1842  (yy_hold_char) = *(yy_c_buf_p); \
1843  *(yy_c_buf_p) = '\0'; \
1844  hdfeosleng = yyless_macro_arg; \
1845  } \
1846  while ( 0 )
1847 
1848 /* Accessor methods (get/set functions) to struct members. */
1849 
1854 {
1855 
1856  return hdfeoslineno;
1857 }
1858 
1862 FILE *hdfeosget_in (void)
1863 {
1864  return hdfeosin;
1865 }
1866 
1870 FILE *hdfeosget_out (void)
1871 {
1872  return hdfeosout;
1873 }
1874 
1879 {
1880  return hdfeosleng;
1881 }
1882 
1887 char *hdfeosget_text (void)
1888 {
1889  return hdfeostext;
1890 }
1891 
1896 void hdfeosset_lineno (int line_number )
1897 {
1898 
1899  hdfeoslineno = line_number;
1900 }
1901 
1908 void hdfeosset_in (FILE * in_str )
1909 {
1910  hdfeosin = in_str ;
1911 }
1912 
1913 void hdfeosset_out (FILE * out_str )
1914 {
1915  hdfeosout = out_str ;
1916 }
1917 
1919 {
1920  return hdfeos_flex_debug;
1921 }
1922 
1923 void hdfeosset_debug (int bdebug )
1924 {
1925  hdfeos_flex_debug = bdebug ;
1926 }
1927 
1928 static int yy_init_globals (void)
1929 {
1930  /* Initialization is the same as for the non-reentrant scanner.
1931  * This function is called from hdfeoslex_destroy(), so don't allocate here.
1932  */
1933 
1934  (yy_buffer_stack) = 0;
1935  (yy_buffer_stack_top) = 0;
1936  (yy_buffer_stack_max) = 0;
1937  (yy_c_buf_p) = (char *) 0;
1938  (yy_init) = 0;
1939  (yy_start) = 0;
1940 
1941 /* Defined in main.c */
1942 #ifdef YY_STDINIT
1943  hdfeosin = stdin;
1944  hdfeosout = stdout;
1945 #else
1946  hdfeosin = (FILE *) 0;
1947  hdfeosout = (FILE *) 0;
1948 #endif
1949 
1950  /* For future reference: Set errno on error, since we are called by
1951  * hdfeoslex_init()
1952  */
1953  return 0;
1954 }
1955 
1956 /* hdfeoslex_destroy is for both reentrant and non-reentrant scanners. */
1958 {
1959 
1960  /* Pop the buffer stack, destroying each element. */
1961  while(YY_CURRENT_BUFFER){
1965  }
1966 
1967  /* Destroy the stack itself. */
1968  hdfeosfree((yy_buffer_stack) );
1969  (yy_buffer_stack) = NULL;
1970 
1971  /* Reset the globals. This is important in a non-reentrant scanner so the next time
1972  * hdfeoslex() is called, initialization will occur. */
1973  yy_init_globals( );
1974 
1975  return 0;
1976 }
1977 
1978 /*
1979  * Internal utility routines.
1980  */
1981 
1982 #ifndef yytext_ptr
1983 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
1984 {
1985  register int i;
1986  for ( i = 0; i < n; ++i )
1987  s1[i] = s2[i];
1988 }
1989 #endif
1990 
1991 #ifdef YY_NEED_STRLEN
1992 static int yy_flex_strlen (yyconst char * s )
1993 {
1994  register int n;
1995  for ( n = 0; s[n]; ++n )
1996  ;
1997 
1998  return n;
1999 }
2000 #endif
2001 
2002 void *hdfeosalloc (yy_size_t size )
2003 {
2004  return (void *) malloc( size );
2005 }
2006 
2007 void *hdfeosrealloc (void * ptr, yy_size_t size )
2008 {
2009  /* The cast to (char *) in the following accommodates both
2010  * implementations that use char* generic pointers, and those
2011  * that use void* generic pointers. It works with the latter
2012  * because both ANSI C and C++ allow castless assignment from
2013  * any pointer type to void*, and deal with argument conversions
2014  * as though doing an assignment.
2015  */
2016  return (void *) realloc( (char *) ptr, size );
2017 }
2018 
2019 void hdfeosfree (void * ptr )
2020 {
2021  free( (char *) ptr ); /* see hdfeosrealloc() for (char *) cast */
2022 }
2023 
2024 #define YYTABLES_NAME "yytables"
2025 
2026 #line 167 "hdfeos.lex"
2027 
2028 
2029 
2030 // Three glue routines for string scanning.
2031 
2032 void *
2033 hdfeos_string(const char *str)
2034 {
2035  return (void *)hdfeos_scan_string(str);
2036 }
2037 
2038 void
2040 {
2042 }
2043 
2044 void
2046 {
2048 }
2049 
char * hdfeostext
Definition: lex.hdfeos.cc:531
int hdfeos_line_num
Definition: lex.hdfeos.cc:597
void free(void *)
#define comment
Definition: lex.hdfeos.cc:606
register int yy_act
Definition: lex.hdfeos.cc:782
#define YY_START
Definition: lex.hdfeos.cc:151
size_t yy_size_t
Definition: lex.hdfeos.cc:178
register char * yy_cp
Definition: lex.hdfeos.cc:781
#define yyterminate()
Definition: lex.hdfeos.cc:735
int flex_int32_t
Definition: lex.hdfeos.cc:73
void hdfeosset_out(FILE *out_str)
Definition: lex.hdfeos.cc:1913
#define YY_NEW_FILE
Definition: lex.hdfeos.cc:158
#define YY_DECL
Definition: lex.hdfeos.cc:593
#define yymore()
Definition: lex.hdfeos.cc:528
int hdfeoslex_destroy(void)
Definition: lex.hdfeos.cc:1957
void * hdfeosalloc(yy_size_t)
Definition: lex.hdfeos.cc:2002
unsigned short int flex_uint16_t
Definition: lex.hdfeos.cc:75
#define EOB_ACT_END_OF_FILE
Definition: lex.hdfeos.cc:186
#define YY_MORE_ADJ
Definition: lex.hdfeos.cc:529
#define YY_BUFFER_NEW
Definition: lex.hdfeos.cc:255
YY_BUFFER_STATE hdfeos_scan_buffer(char *base, yy_size_t size)
Setup the input buffer state to scan directly from a user-specified character buffer.
Definition: lex.hdfeos.cc:1742
YY_BUFFER_STATE hdfeos_scan_bytes(yyconst char *bytes, yy_size_t len)
Setup the input buffer state to scan the given bytes.
Definition: lex.hdfeos.cc:1792
YY_BUFFER_STATE hdfeos_create_buffer(FILE *file, int size)
Allocate and initialize an input buffer state.
Definition: lex.hdfeos.cc:1536
#define YY_INPUT(buf, result, max_size)
Definition: lex.hdfeos.cc:698
signed char flex_int8_t
Definition: lex.hdfeos.cc:71
int hdfeoslineno
Definition: lex.hdfeos.cc:366
#define ECHO
Definition: lex.hdfeos.cc:691
FILE * hdfeosget_in(void)
Get the input stream.
Definition: lex.hdfeos.cc:1862
void * hdfeos_string(const char *str)
Definition: lex.hdfeos.cc:2033
short int flex_int16_t
Definition: lex.gse.cc:72
#define YY_END_OF_BUFFER
Definition: lex.hdfeos.cc:388
int hdfeoslex(void)
#define quote
Definition: lex.hdfeos.cc:605
void * hdfeosrealloc(void *, yy_size_t)
Definition: lex.hdfeos.cc:2007
#define YY_BUF_SIZE
Definition: lex.hdfeos.cc:164
struct yy_buffer_state * YY_BUFFER_STATE
Definition: lex.hdfeos.cc:173
int isatty(int)
void hdfeosset_debug(int debug_flag)
Definition: lex.hdfeos.cc:1923
#define BEGIN
Definition: lex.hdfeos.cc:145
unsigned char YY_CHAR
Definition: lex.hdfeos.cc:358
YY_BUFFER_STATE hdfeos_scan_string(yyconst char *yy_str)
Setup the input buffer state to scan a string.
Definition: lex.hdfeos.cc:1779
YY_EXTRA_TYPE hdfeosget_extra(void)
void hdfeos_switch_to_buffer(YY_BUFFER_STATE new_buffer)
Switch to a different input buffer.
Definition: lex.hdfeos.cc:1491
#define YY_BUFFER_EOF_PENDING
Definition: lex.hdfeos.cc:267
#define YY_RULE_SETUP
Definition: lex.hdfeos.cc:773
int hdfeos_flex_debug
Definition: lex.hdfeos.cc:520
int yy_state_type
Definition: lex.hdfeos.cc:362
#define YY_BREAK
Definition: lex.hdfeos.cc:770
#define YY_READ_BUF_SIZE
Definition: lex.hdfeos.cc:683
#define YY_SC_TO_UI(c)
Definition: lex.hdfeos.cc:139
void hdfeosset_in(FILE *in_str)
Set the input stream.
Definition: lex.hdfeos.cc:1908
#define yytext_ptr
Definition: lex.hdfeos.cc:369
#define NULL
Definition: wcsUtil.h:65
FILE * hdfeosin
Definition: lex.hdfeos.cc:360
void hdfeosrestart(FILE *input_file)
Immediately switch to a different input stream.
Definition: lex.hdfeos.cc:1474
#define YY_END_OF_BUFFER_CHAR
Definition: lex.hdfeos.cc:160
#define YY_DO_BEFORE_ACTION
Definition: lex.hdfeos.cc:379
void hdfeosfree(void *)
Definition: lex.hdfeos.cc:2019
#define yyconst
Definition: lex.hdfeos.cc:128
YYSTYPE hdfeoslval
FILE * hdfeosout
Definition: lex.hdfeos.cc:360
#define YY_STATE_EOF(state)
Definition: lex.hdfeos.cc:155
#define YY_RESTORE_YY_MORE_OFFSET
Definition: lex.hdfeos.cc:530
#define YY_EXIT_FAILURE
Definition: lex.hdfeos.cc:1822
#define INITIAL
Definition: lex.hdfeos.cc:604
#define YY_FATAL_ERROR(msg)
Definition: lex.hdfeos.cc:745
void hdfeosset_lineno(int line_number)
Set the current line number.
Definition: lex.hdfeos.cc:1896
yy_size_t hdfeosleng
Definition: lex.hdfeos.cc:295
void hdfeospush_buffer_state(YY_BUFFER_STATE new_buffer)
Pushes the new state onto the stack.
Definition: lex.hdfeos.cc:1644
void hdfeos_flush_buffer(YY_BUFFER_STATE b)
Discard all buffered characters.
Definition: lex.hdfeos.cc:1615
void hdfeospop_buffer_state(void)
Removes and deletes the top of the stack, if present.
Definition: lex.hdfeos.cc:1674
#define YY_CURRENT_BUFFER
Definition: lex.hdfeos.cc:283
int flex_int32_t
Definition: lex.gse.cc:73
unsigned char YY_CHAR
Definition: lex.gse.cc:358
void hdfeosset_extra(YY_EXTRA_TYPE user_defined)
unsigned int flex_uint32_t
Definition: lex.hdfeos.cc:76
#define YY_CURRENT_BUFFER_LVALUE
Definition: lex.hdfeos.cc:290
#define YY_EXTRA_TYPE
Definition: lex.hdfeos.cc:617
#define EOB_ACT_CONTINUE_SCAN
Definition: lex.hdfeos.cc:185
short int flex_int16_t
Definition: lex.hdfeos.cc:72
void * malloc(YYSIZE_T)
size_t yy_size_t
Definition: lex.gse.cc:178
unsigned char flex_uint8_t
Definition: lex.hdfeos.cc:74
int hdfeosget_debug(void)
Definition: lex.hdfeos.cc:1918
int hdfeosget_lineno(void)
Get the current line number.
Definition: lex.hdfeos.cc:1853
register char * yy_bp
Definition: lex.hdfeos.cc:781
#define hdfeoswrap(n)
Definition: lex.hdfeos.cc:355
#define EOB_ACT_LAST_MATCH
Definition: lex.hdfeos.cc:187
void hdfeos_delete_buffer(YY_BUFFER_STATE b)
Destroy the buffer.
Definition: lex.hdfeos.cc:1564
char * hdfeosget_text(void)
Get the current token.
Definition: lex.hdfeos.cc:1887
#define YY_BUFFER_NORMAL
Definition: lex.hdfeos.cc:256
yy_size_t hdfeosget_leng(void)
Get the length of the current token.
Definition: lex.hdfeos.cc:1878
struct yy_buffer_state * YY_BUFFER_STATE
Definition: lex.gse.cc:173
FILE * hdfeosget_out(void)
Get the output stream.
Definition: lex.hdfeos.cc:1870
YY_DECL register yy_state_type yy_current_state
The main scanner function which does all the work.
Definition: lex.hdfeos.cc:780