~ubuntu-branches/debian/sid/rlinetd/sid

« back to all changes in this revision

Viewing changes to src/lex.c

  • Committer: Bazaar Package Importer
  • Author(s): Robert Luberda
  • Date: 2010-03-20 18:03:45 UTC
  • mfrom: (2.3.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20100320180345-x1srfbe2tg00ezsf
Tags: 0.7-1
* New upstream version.
* Recommend rsyslog instead of sysklogd (closes: #526922).
* update-inetd:
  + add support for enabling, disabling and removing entries;
  + use ucf for managing generated files;
  + ignore ucf files in rlinetd.conf;
  + make appropriate changes in  postinst and postrm scripts.
* Set debhelper compat level to 7
* Standards-Version: 3.8.4 (no changes). 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#line 3 "lex.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
 
 
57
/* Limits of integral types. */
 
58
#ifndef INT8_MIN
 
59
#define INT8_MIN               (-128)
 
60
#endif
 
61
#ifndef INT16_MIN
 
62
#define INT16_MIN              (-32767-1)
 
63
#endif
 
64
#ifndef INT32_MIN
 
65
#define INT32_MIN              (-2147483647-1)
 
66
#endif
 
67
#ifndef INT8_MAX
 
68
#define INT8_MAX               (127)
 
69
#endif
 
70
#ifndef INT16_MAX
 
71
#define INT16_MAX              (32767)
 
72
#endif
 
73
#ifndef INT32_MAX
 
74
#define INT32_MAX              (2147483647)
 
75
#endif
 
76
#ifndef UINT8_MAX
 
77
#define UINT8_MAX              (255U)
 
78
#endif
 
79
#ifndef UINT16_MAX
 
80
#define UINT16_MAX             (65535U)
 
81
#endif
 
82
#ifndef UINT32_MAX
 
83
#define UINT32_MAX             (4294967295U)
 
84
#endif
 
85
 
 
86
#endif /* ! C99 */
 
87
 
 
88
#endif /* ! FLEXINT_H */
 
89
 
 
90
#ifdef __cplusplus
 
91
 
 
92
/* The "const" storage-class-modifier is valid. */
 
93
#define YY_USE_CONST
 
94
 
 
95
#else   /* ! __cplusplus */
 
96
 
 
97
/* C99 requires __STDC__ to be defined as 1. */
 
98
#if defined (__STDC__)
 
99
 
 
100
#define YY_USE_CONST
 
101
 
 
102
#endif  /* defined (__STDC__) */
 
103
#endif  /* ! __cplusplus */
 
104
 
 
105
#ifdef YY_USE_CONST
 
106
#define yyconst const
 
107
#else
 
108
#define yyconst
 
109
#endif
 
110
 
 
111
/* Returned upon end-of-file. */
 
112
#define YY_NULL 0
 
113
 
 
114
/* Promotes a possibly negative, possibly signed char to an unsigned
 
115
 * integer for use as an array index.  If the signed char is negative,
 
116
 * we want to instead treat it as an 8-bit unsigned char, hence the
 
117
 * double cast.
 
118
 */
 
119
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
 
120
 
 
121
/* Enter a start condition.  This macro really ought to take a parameter,
 
122
 * but we do it the disgusting crufty way forced on us by the ()-less
 
123
 * definition of BEGIN.
 
124
 */
 
125
#define BEGIN (yy_start) = 1 + 2 *
 
126
 
 
127
/* Translate the current start state into a value that can be later handed
 
128
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
 
129
 * compatibility.
 
130
 */
 
131
#define YY_START (((yy_start) - 1) / 2)
 
132
#define YYSTATE YY_START
 
133
 
 
134
/* Action number for EOF rule of a given start state. */
 
135
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 
136
 
 
137
/* Special action meaning "start processing a new file". */
 
138
#define YY_NEW_FILE yyrestart(yyin  )
 
139
 
 
140
#define YY_END_OF_BUFFER_CHAR 0
 
141
 
 
142
/* Size of default input buffer. */
 
143
#ifndef YY_BUF_SIZE
 
144
#ifdef __ia64__
 
145
/* On IA-64, the buffer size is 16k, not 8k.
 
146
 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
 
147
 * Ditto for the __ia64__ case accordingly.
 
148
 */
 
149
#define YY_BUF_SIZE 32768
 
150
#else
 
151
#define YY_BUF_SIZE 16384
 
152
#endif /* __ia64__ */
 
153
#endif
 
154
 
 
155
/* The state buf must be large enough to hold one state per character in the main buffer.
 
156
 */
 
157
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
 
158
 
 
159
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
 
160
#define YY_TYPEDEF_YY_BUFFER_STATE
 
161
typedef struct yy_buffer_state *YY_BUFFER_STATE;
 
162
#endif
 
163
 
 
164
extern int yyleng;
 
165
 
 
166
extern FILE *yyin, *yyout;
 
167
 
 
168
#define EOB_ACT_CONTINUE_SCAN 0
 
169
#define EOB_ACT_END_OF_FILE 1
 
170
#define EOB_ACT_LAST_MATCH 2
 
171
 
 
172
    #define YY_LESS_LINENO(n)
 
173
    
 
174
/* Return all but the first "n" matched characters back to the input stream. */
 
175
#define yyless(n) \
 
176
        do \
 
177
                { \
 
178
                /* Undo effects of setting up yytext. */ \
 
179
        int yyless_macro_arg = (n); \
 
180
        YY_LESS_LINENO(yyless_macro_arg);\
 
181
                *yy_cp = (yy_hold_char); \
 
182
                YY_RESTORE_YY_MORE_OFFSET \
 
183
                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
 
184
                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 
185
                } \
 
186
        while ( 0 )
 
187
 
 
188
#define unput(c) yyunput( c, (yytext_ptr)  )
 
189
 
 
190
#ifndef YY_TYPEDEF_YY_SIZE_T
 
191
#define YY_TYPEDEF_YY_SIZE_T
 
192
typedef size_t yy_size_t;
 
193
#endif
 
194
 
 
195
#ifndef YY_STRUCT_YY_BUFFER_STATE
 
196
#define YY_STRUCT_YY_BUFFER_STATE
 
197
struct yy_buffer_state
 
198
        {
 
199
        FILE *yy_input_file;
 
200
 
 
201
        char *yy_ch_buf;                /* input buffer */
 
202
        char *yy_buf_pos;               /* current position in input buffer */
 
203
 
 
204
        /* Size of input buffer in bytes, not including room for EOB
 
205
         * characters.
 
206
         */
 
207
        yy_size_t yy_buf_size;
 
208
 
 
209
        /* Number of characters read into yy_ch_buf, not including EOB
 
210
         * characters.
 
211
         */
 
212
        int yy_n_chars;
 
213
 
 
214
        /* Whether we "own" the buffer - i.e., we know we created it,
 
215
         * and can realloc() it to grow it, and should free() it to
 
216
         * delete it.
 
217
         */
 
218
        int yy_is_our_buffer;
 
219
 
 
220
        /* Whether this is an "interactive" input source; if so, and
 
221
         * if we're using stdio for input, then we want to use getc()
 
222
         * instead of fread(), to make sure we stop fetching input after
 
223
         * each newline.
 
224
         */
 
225
        int yy_is_interactive;
 
226
 
 
227
        /* Whether we're considered to be at the beginning of a line.
 
228
         * If so, '^' rules will be active on the next match, otherwise
 
229
         * not.
 
230
         */
 
231
        int yy_at_bol;
 
232
 
 
233
    int yy_bs_lineno; /**< The line count. */
 
234
    int yy_bs_column; /**< The column count. */
 
235
    
 
236
        /* Whether to try to fill the input buffer when we reach the
 
237
         * end of it.
 
238
         */
 
239
        int yy_fill_buffer;
 
240
 
 
241
        int yy_buffer_status;
 
242
 
 
243
#define YY_BUFFER_NEW 0
 
244
#define YY_BUFFER_NORMAL 1
 
245
        /* When an EOF's been seen but there's still some text to process
 
246
         * then we mark the buffer as YY_EOF_PENDING, to indicate that we
 
247
         * shouldn't try reading from the input source any more.  We might
 
248
         * still have a bunch of tokens to match, though, because of
 
249
         * possible backing-up.
 
250
         *
 
251
         * When we actually see the EOF, we change the status to "new"
 
252
         * (via yyrestart()), so that the user can continue scanning by
 
253
         * just pointing yyin at a new input file.
 
254
         */
 
255
#define YY_BUFFER_EOF_PENDING 2
 
256
 
 
257
        };
 
258
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
 
259
 
 
260
/* Stack of input buffers. */
 
261
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 
262
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
 
263
static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
264
 
 
265
/* We provide macros for accessing buffer states in case in the
 
266
 * future we want to put the buffer states in a more general
 
267
 * "scanner state".
 
268
 *
 
269
 * Returns the top of the stack, or NULL.
 
270
 */
 
271
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
 
272
                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
 
273
                          : NULL)
 
274
 
 
275
/* Same as previous macro, but useful when we know that the buffer stack is not
 
276
 * NULL or when we need an lvalue. For internal use only.
 
277
 */
 
278
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
 
279
 
 
280
/* yy_hold_char holds the character lost when yytext is formed. */
 
281
static char yy_hold_char;
 
282
static int yy_n_chars;          /* number of characters read into yy_ch_buf */
 
283
int yyleng;
 
284
 
 
285
/* Points to current character in buffer. */
 
286
static char *yy_c_buf_p = (char *) 0;
 
287
static int yy_init = 0;         /* whether we need to initialize */
 
288
static int yy_start = 0;        /* start state number */
 
289
 
 
290
/* Flag which is used to allow yywrap()'s to do buffer switches
 
291
 * instead of setting up a fresh yyin.  A bit of a hack ...
 
292
 */
 
293
static int yy_did_buffer_switch_on_eof;
 
294
 
 
295
void yyrestart (FILE *input_file  );
 
296
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
 
297
YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
 
298
void yy_delete_buffer (YY_BUFFER_STATE b  );
 
299
void yy_flush_buffer (YY_BUFFER_STATE b  );
 
300
void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
 
301
void yypop_buffer_state (void );
 
302
 
 
303
static void yyensure_buffer_stack (void );
 
304
static void yy_load_buffer_state (void );
 
305
static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
306
 
 
307
#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
 
308
 
 
309
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
 
310
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
 
311
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
 
312
 
 
313
void *yyalloc (yy_size_t  );
 
314
void *yyrealloc (void *,yy_size_t  );
 
315
void yyfree (void *  );
 
316
 
 
317
#define yy_new_buffer yy_create_buffer
 
318
 
 
319
#define yy_set_interactive(is_interactive) \
 
320
        { \
 
321
        if ( ! YY_CURRENT_BUFFER ){ \
 
322
        yyensure_buffer_stack (); \
 
323
                YY_CURRENT_BUFFER_LVALUE =    \
 
324
            yy_create_buffer(yyin,YY_BUF_SIZE ); \
 
325
        } \
 
326
        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
 
327
        }
 
328
 
 
329
#define yy_set_bol(at_bol) \
 
330
        { \
 
331
        if ( ! YY_CURRENT_BUFFER ){\
 
332
        yyensure_buffer_stack (); \
 
333
                YY_CURRENT_BUFFER_LVALUE =    \
 
334
            yy_create_buffer(yyin,YY_BUF_SIZE ); \
 
335
        } \
 
336
        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
 
337
        }
 
338
 
 
339
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
340
 
 
341
/* Begin user sect3 */
 
342
 
 
343
typedef unsigned char YY_CHAR;
 
344
 
 
345
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 
346
 
 
347
typedef int yy_state_type;
 
348
 
 
349
extern int yylineno;
 
350
 
 
351
int yylineno = 1;
 
352
 
 
353
extern char *yytext;
 
354
#define yytext_ptr yytext
 
355
 
 
356
static yy_state_type yy_get_previous_state (void );
 
357
static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
 
358
static int yy_get_next_buffer (void );
 
359
static void yy_fatal_error (yyconst char msg[]  );
 
360
 
 
361
/* Done after the current pattern has been matched and before the
 
362
 * corresponding action - sets up yytext.
 
363
 */
 
364
#define YY_DO_BEFORE_ACTION \
 
365
        (yytext_ptr) = yy_bp; \
 
366
        yyleng = (size_t) (yy_cp - yy_bp); \
 
367
        (yy_hold_char) = *yy_cp; \
 
368
        *yy_cp = '\0'; \
 
369
        (yy_c_buf_p) = yy_cp;
 
370
 
 
371
#define YY_NUM_RULES 73
 
372
#define YY_END_OF_BUFFER 74
 
373
/* This struct is not used in this scanner,
 
374
   but its presence is necessary. */
 
375
struct yy_trans_info
 
376
        {
 
377
        flex_int32_t yy_verify;
 
378
        flex_int32_t yy_nxt;
 
379
        };
 
380
static yyconst flex_int16_t yy_accept[301] =
 
381
    {   0,
 
382
        0,    0,   74,   73,   65,   73,   66,   63,   64,   69,
 
383
       70,   62,   70,   72,   70,   70,   70,   70,   70,   70,
 
384
       72,   72,   72,   71,   71,   72,   71,   72,   72,   72,
 
385
       72,   72,   72,   72,   72,   60,   61,    0,   67,   66,
 
386
       68,   69,   70,   70,   72,   70,   71,   70,   70,   71,
 
387
       70,   70,   72,   72,   72,   72,   70,   70,   72,   70,
 
388
       72,   72,   70,   72,   72,   72,   72,   72,   72,   72,
 
389
       72,   72,   71,   72,   59,   72,   72,   72,   72,   72,
 
390
       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
 
391
       72,   72,   72,   72,   68,   69,   70,   70,   71,   72,
 
392
 
 
393
       72,   72,   72,   72,   14,   72,   70,   72,   72,   72,
 
394
       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
 
395
       72,   72,   72,   72,   25,   72,   72,   72,   72,   72,
 
396
       72,   72,   72,   72,   72,   72,   72,   37,   19,   72,
 
397
       72,   72,   72,    5,    6,   72,   72,   72,   72,   58,
 
398
       68,   68,   69,   70,   72,   71,   72,   72,   72,   72,
 
399
       18,   16,   70,   47,   72,   72,   51,   72,    2,   50,
 
400
       72,   33,   72,   26,   72,   72,   28,   72,   72,   72,
 
401
       43,   44,   72,   72,   34,   39,   12,   72,   72,   32,
 
402
       30,    3,   72,   72,   72,   27,   72,   72,   40,   72,
 
403
 
 
404
        7,   72,   56,   68,   68,   72,   72,   72,   72,   72,
 
405
       72,   48,   72,   72,   72,   72,   72,   72,   15,    8,
 
406
       72,   72,   72,   72,   72,   72,   20,   72,   72,   72,
 
407
       72,   17,   72,   72,   72,   68,   68,   46,   72,   49,
 
408
       72,   72,   29,   72,   72,   72,   72,   42,   53,   72,
 
409
       72,   72,   72,   72,   21,   72,   13,   35,   72,   31,
 
410
       72,   72,   68,   68,    9,   72,   54,   72,   72,   52,
 
411
       57,   72,   72,   72,   72,   22,   72,    1,   72,   38,
 
412
       68,   72,   11,   72,   72,   72,   72,   55,    4,   72,
 
413
       68,   72,   36,   72,   10,   24,   23,   41,   45,    0
 
414
 
 
415
    } ;
 
416
 
 
417
static yyconst flex_int32_t yy_ec[256] =
 
418
    {   0,
 
419
        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
 
420
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
421
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
422
        1,    1,    1,    3,    4,    1,    1,    1,    1,    1,
 
423
        1,    1,    1,    5,    6,    7,    1,    8,    8,    8,
 
424
        8,    9,    8,   10,    8,    8,    8,   11,   12,    1,
 
425
        1,    1,    1,    1,   13,   13,   13,   13,   13,   13,
 
426
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
 
427
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
 
428
        1,    1,    1,    1,    1,    1,   15,   16,   17,   18,
 
429
 
 
430
       19,   20,   21,   22,   23,   14,   24,   25,   26,   27,
 
431
       28,   29,   14,   30,   31,   32,   33,   34,   35,   36,
 
432
       37,   38,   39,    1,   40,    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,    1,    1,    1,    1,    1,
 
438
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
439
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
440
 
 
441
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
442
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
443
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
444
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
445
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
446
        1,    1,    1,    1,    1
 
447
    } ;
 
448
 
 
449
static yyconst flex_int32_t yy_meta[41] =
 
450
    {   0,
 
451
        1,    2,    1,    1,    1,    1,    3,    4,    4,    4,
 
452
        5,    1,    4,    3,    5,    5,    4,    4,    4,    4,
 
453
        3,    3,    3,    6,    6,    3,    6,    3,    3,    3,
 
454
        3,    3,    3,    3,    3,    3,    3,    3,    1,    1
 
455
    } ;
 
456
 
 
457
static yyconst flex_int16_t yy_base[306] =
 
458
    {   0,
 
459
        0,    0,  216,  953,  953,  203,    0,  953,  953,   34,
 
460
       47,  953,   68,   62,   78,   31,   82,   77,   63,   83,
 
461
      101,  102,  108,  131,  162,  111,  105,  129,  138,  143,
 
462
      153,  154,  167,  114,  172,  953,  953,  181,  953,    0,
 
463
      179,  185,    0,    0,  116,    0,    0,  165,  159,    0,
 
464
       74,  139,  189,  190,  191,  166,  134,   41,  196,  131,
 
465
      198,  201,  125,  203,  218,  204,  224,  226,  229,  231,
 
466
      236,  237,  122,  239,  253,  254,  259,  260,  265,  268,
 
467
      267,  270,  275,  281,  287,  286,  292,  293,  298,  301,
 
468
      306,  303,  308,  309,  327,  334,  124,  117,  105,  317,
 
469
 
 
470
      338,  339,  340,  341,  346,  347,  111,  348,  354,  359,
 
471
      367,  368,  370,  375,  381,  382,  383,  389,  391,  392,
 
472
      401,  402,  404,  409,  410,  415,  418,  421,  428,  430,
 
473
      431,  439,  441,  446,  444,  449,  451,  457,  459,  462,
 
474
      467,  468,  473,  475,  476,  481,  483,  484,  490,  495,
 
475
      499,  509,  502,   95,  513,   97,  514,  516,  521,  522,
 
476
      524,  529,   49,  532,  535,  540,  537,  543,  546,  549,
 
477
      551,  552,  554,  559,  560,  567,  570,  573,  575,  576,
 
478
      578,  581,  584,  586,  591,  592,  594,  597,  600,  602,
 
479
      605,  608,  613,  614,  616,  619,  621,  622,  627,  629,
 
480
 
 
481
      635,  636,  637,  644,   63,  649,  650,  655,  656,  657,
 
482
      658,  663,  664,  666,  673,  675,  676,  681,  684,  686,
 
483
      689,  694,  695,  697,  703,  711,  716,  717,  718,  724,
 
484
      725,  726,  732,  733,  734,  738,  750,  744,  754,  756,
 
485
      757,  759,  762,  765,  767,  770,  772,  773,  778,  780,
 
486
      785,  792,  787,  794,  799,  802,  804,  805,  810,  812,
 
487
      813,  815,  823,   52,  827,  828,  829,  830,  836,  837,
 
488
      839,  842,  845,  848,  847,  856,  861,  862,  863,  869,
 
489
      869,  874,  876,  877,  882,  884,  883,  885,  890,  892,
 
490
      953,  893,  898,  901,  906,  909,  911,  912,  914,  953,
 
491
 
 
492
      932,  938,  942,  945,  946
 
493
    } ;
 
494
 
 
495
static yyconst flex_int16_t yy_def[306] =
 
496
    {   0,
 
497
      300,    1,  300,  300,  300,  301,  302,  300,  300,  303,
 
498
      300,  300,  303,  303,   13,   15,   13,   13,   13,   13,
 
499
      303,  303,  303,  303,   24,  303,   24,  303,  303,  303,
 
500
      303,  303,  303,  303,  303,  300,  300,  301,  300,  302,
 
501
      300,   13,  304,   13,  303,   11,  305,   15,   13,   24,
 
502
       15,   13,  303,  303,  303,  303,   13,   13,  303,   13,
 
503
      303,  303,   13,  303,  303,  303,  303,  303,  303,  303,
 
504
      303,  303,   24,  303,  303,  303,  303,  303,  303,  303,
 
505
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
506
      303,  303,  303,  303,  300,   13,   13,   13,   24,  303,
 
507
 
 
508
      303,  303,  303,  303,  303,  303,   13,  303,  303,  303,
 
509
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
510
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
511
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
512
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
513
      300,  300,   13,   13,  303,   24,  303,  303,  303,  303,
 
514
      303,  303,   13,  303,  303,  303,  303,  303,  303,  303,
 
515
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
516
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
517
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
518
 
 
519
      303,  303,  303,  300,  300,  303,  303,  303,  303,  303,
 
520
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
521
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
522
      303,  303,  303,  303,  303,  300,  300,  303,  303,  303,
 
523
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
524
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
525
      303,  303,  300,  300,  303,  303,  303,  303,  303,  303,
 
526
      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
527
      300,  303,  303,  303,  303,  303,  303,  303,  303,  303,
 
528
      300,  303,  303,  303,  303,  303,  303,  303,  303,    0,
 
529
 
 
530
      300,  300,  300,  300,  300
 
531
    } ;
 
532
 
 
533
static yyconst flex_int16_t yy_nxt[994] =
 
534
    {   0,
 
535
        4,    5,    6,    7,    8,    9,    4,   10,   10,   10,
 
536
       11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
 
537
       21,   22,   23,   24,   25,   26,   27,   14,   28,   29,
 
538
       30,   31,   32,   33,   34,   14,   35,   14,   36,   37,
 
539
       41,   42,   42,   42,   43,   51,   44,   44,   44,   44,
 
540
       44,   44,   44,   44,   43,   43,   43,   46,  236,   43,
 
541
      107,   46,   46,   43,   43,   43,   43,  108,  300,  151,
 
542
       47,   47,  300,   47,  300,   44,   44,   44,   43,   60,
 
543
       44,  213,   44,   44,   44,   44,   44,   44,   46,   61,
 
544
       98,   57,   48,   48,   49,   58,   52,   63,   62,   59,
 
545
 
 
546
       99,   50,   50,   53,   50,   64,   54,  300,  300,   55,
 
547
       56,  300,  300,   65,  300,  208,   67,  300,  300,   73,
 
548
      300,  300,  300,  206,  300,  163,  300,   74,   93,   71,
 
549
       66,  156,   75,   76,   68,  300,   69,  300,   72,  300,
 
550
      155,   47,  154,   77,  300,   50,   50,  129,  300,  300,
 
551
      115,   78,  111,  300,   50,   50,   79,   50,   80,  300,
 
552
      300,   84,   81,  300,  300,  106,   82,  100,   83,   88,
 
553
       85,   89,  300,  300,   86,   97,  300,  300,  300,   87,
 
554
       90,   44,  300,   39,   91,   92,   95,   95,   95,   70,
 
555
       94,   41,   96,   96,   96,  300,  300,  300,  105,  300,
 
556
 
 
557
      300,  300,  300,  101,  300,   39,  300,  300,  300,  300,
 
558
      300,  300,  112,  300,  300,  300,  300,  103,  102,  113,
 
559
      104,  300,  300,  114,  300,  109,  110,  116,  300,  300,
 
560
      300,  119,  300,  117,  300,  300,  300,  300,  300,  300,
 
561
      118,  300,  300,  300,  300,  300,  300,  300,  121,  300,
 
562
      300,  125,  300,  120,  128,  130,  122,  123,  126,  300,
 
563
      300,  127,  124,  300,  300,  300,  300,  300,  300,  300,
 
564
      300,  300,  131,  300,  300,  300,  300,  300,  300,  300,
 
565
      300,  300,  300,  132,  300,  300,  138,  300,  134,  137,
 
566
      133,  300,  300,  300,  135,  136,  300,  300,  300,  300,
 
567
 
 
568
      142,  300,  300,  300,  300,  139,  141,  300,  300,  300,
 
569
      140,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
570
      300,  144,  143,  300,  147,  146,  145,  300,  300,  300,
 
571
      149,  157,  148,  151,  152,  152,  152,  300,  300,  150,
 
572
       41,  153,  153,  153,  300,  300,  300,  300,  300,  300,
 
573
      300,  300,  300,  300,  300,  300,  300,  300,  300,  161,
 
574
      300,  162,  300,  300,  300,  300,  159,  158,  300,  300,
 
575
      160,  300,  165,  300,  300,  166,  300,  300,  300,  300,
 
576
      300,  300,  300,  168,  164,  300,  169,  300,  300,  300,
 
577
      300,  300,  300,  300,  167,  300,  300,  300,  300,  300,
 
578
 
 
579
      172,  300,  300,  171,  174,  300,  170,  300,  300,  177,
 
580
      300,  300,  300,  173,  300,  300,  300,  181,  182,  300,
 
581
      300,  300,  180,  176,  300,  300,  175,  300,  300,  300,
 
582
      300,  300,  178,  179,  300,  300,  300,  300,  300,  185,
 
583
      300,  300,  184,  183,  300,  300,  186,  300,  187,  300,
 
584
      300,  300,  300,  188,  300,  300,  300,  300,  300,  300,
 
585
      300,  300,  190,  300,  191,  300,  189,  300,  300,  300,
 
586
      300,  300,  300,  300,  300,  192,  194,  300,  300,  300,
 
587
      193,  300,  300,  300,  197,  300,  300,  300,  300,  300,
 
588
      300,  300,  199,  300,  300,  195,  300,  198,  196,  300,
 
589
 
 
590
      300,  300,  300,  200,  300,  300,  204,  204,  204,  153,
 
591
      153,  153,  201,  300,  202,  151,  205,  205,  205,  300,
 
592
      300,  203,  300,  300,  300,  300,  300,  300,  300,  209,
 
593
      300,  300,  300,  300,  300,  300,  210,  207,  300,  300,
 
594
      212,  300,  300,  300,  300,  300,  300,  300,  211,  300,
 
595
      300,  214,  300,  300,  215,  300,  300,  300,  300,  300,
 
596
      300,  300,  300,  300,  300,  300,  300,  216,  300,  300,
 
597
      300,  300,  218,  300,  300,  217,  300,  300,  219,  300,
 
598
      300,  300,  300,  300,  300,  300,  300,  300,  300,  222,
 
599
      300,  300,  300,  221,  300,  220,  300,  300,  300,  224,
 
600
 
 
601
      300,  300,  300,  300,  300,  223,  300,  300,  300,  300,
 
602
      300,  300,  300,  225,  300,  300,  227,  300,  300,  300,
 
603
      300,  226,  300,  300,  300,  300,  300,  300,  300,  300,
 
604
      300,  300,  300,  300,  230,  300,  229,  300,  231,  300,
 
605
      228,  300,  300,  300,  232,  300,  300,  300,  300,  233,
 
606
      236,  237,  237,  237,  234,  300,  300,  300,  235,  300,
 
607
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
608
      300,  300,  300,  300,  300,  242,  300,  239,  241,  300,
 
609
      238,  300,  300,  300,  240,  300,  300,  300,  244,  243,
 
610
      300,  300,  300,  247,  300,  300,  300,  245,  300,  300,
 
611
 
 
612
      300,  300,  246,  300,  300,  300,  300,  300,  300,  300,
 
613
      249,  253,  248,  300,  252,  300,  300,  300,  250,  254,
 
614
      251,  300,  300,  300,  300,  300,  300,  300,  300,  255,
 
615
      300,  300,  300,  256,  300,  300,  300,  300,  300,  300,
 
616
      300,  259,  300,  300,  300,  263,  263,  263,  300,  257,
 
617
      300,  300,  260,  258,  300,  261,  236,  264,  264,  264,
 
618
      300,  262,  300,  300,  300,  300,  300,  300,  300,  300,
 
619
      300,  300,  300,  300,  265,  300,  300,  300,  300,  300,
 
620
      300,  266,  300,  300,  300,  267,  300,  270,  300,  271,
 
621
      300,  300,  300,  300,  269,  300,  268,  300,  300,  300,
 
622
 
 
623
      300,  273,  300,  275,  300,  300,  274,  272,  300,  300,
 
624
      300,  300,  300,  300,  300,  300,  300,  276,  300,  300,
 
625
      300,  300,  300,  300,  300,  300,  300,  300,  278,  277,
 
626
      281,  281,  281,  300,  300,  300,  300,  300,  300,  300,
 
627
      300,  280,  300,  300,  279,  300,  300,  300,  300,  300,
 
628
      282,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
629
      283,  300,  300,  286,  287,  284,  300,  300,  300,  300,
 
630
      288,  300,  300,  300,  285,  300,  291,  291,  291,  300,
 
631
      300,  290,  300,  300,  300,  289,  300,  300,  300,  300,
 
632
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
633
 
 
634
      300,  296,  300,  300,  300,  292,  300,  300,  300,  297,
 
635
      294,  300,  300,  293,  295,  300,  300,  300,  300,  300,
 
636
      300,  300,  300,  300,  300,  300,  300,  300,  300,  298,
 
637
      300,  299,   38,   38,   38,   38,   38,   38,   40,  300,
 
638
       40,   40,   40,   40,   45,   45,   45,   45,   43,   43,
 
639
       47,   47,    3,  300,  300,  300,  300,  300,  300,  300,
 
640
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
641
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
642
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
643
      300,  300,  300
 
644
 
 
645
    } ;
 
646
 
 
647
static yyconst flex_int16_t yy_chk[994] =
 
648
    {   0,
 
649
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
650
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
651
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
652
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
653
       10,   10,   10,   10,   10,   16,   10,   16,   10,   10,
 
654
       10,   10,   10,   10,   11,   11,   11,   11,  264,   11,
 
655
       58,   11,   11,   11,   11,   11,   11,   58,   14,  205,
 
656
       11,   11,   14,   11,   13,   13,   13,   13,   13,   19,
 
657
       13,  163,   13,   13,   13,   13,   13,   13,   15,   19,
 
658
       51,   18,   15,   15,   15,   18,   17,   20,   19,   18,
 
659
 
 
660
       51,   15,   15,   17,   15,   20,   17,   21,   22,   17,
 
661
       17,   21,   22,   20,   23,  156,   22,   26,   23,   27,
 
662
       34,   26,   45,  154,   34,  107,   45,   27,   34,   26,
 
663
       21,   99,   27,   27,   23,   28,   23,   24,   26,   28,
 
664
       98,   24,   97,   28,   29,   24,   24,   73,   29,   30,
 
665
       63,   28,   60,   30,   24,   24,   28,   24,   28,   31,
 
666
       32,   30,   29,   31,   32,   57,   29,   52,   29,   31,
 
667
       30,   32,   56,   33,   30,   49,   56,   33,   35,   30,
 
668
       32,   48,   35,   38,   32,   33,   41,   41,   41,   25,
 
669
       35,   42,   42,   42,   42,   53,   54,   55,   56,   53,
 
670
 
 
671
       54,   55,   59,   53,   61,    6,   59,   62,   61,   64,
 
672
       66,   62,   61,   64,   66,    3,    0,   54,   53,   62,
 
673
       55,    0,    0,   62,   65,   59,   59,   64,   65,    0,
 
674
       67,   66,   68,   64,   67,   69,   68,   70,    0,   69,
 
675
       65,   70,   71,   72,    0,   74,   71,   72,   68,   74,
 
676
        0,   70,    0,   67,   72,   74,   68,   68,   70,   75,
 
677
       76,   71,   69,   75,   76,   77,   78,    0,    0,   77,
 
678
       78,   79,   75,   81,   80,   79,   82,   81,   80,    0,
 
679
       82,   83,    0,   76,    0,   83,   82,   84,   78,   81,
 
680
       77,   84,   86,   85,   79,   80,   86,   85,   87,   88,
 
681
 
 
682
       86,    0,   87,   88,   89,   83,   85,   90,   89,   92,
 
683
       84,   90,   91,   92,   93,   94,   91,    0,   93,   94,
 
684
        0,   88,   87,  100,   91,   90,   89,  100,    0,    0,
 
685
       93,  100,   92,   95,   95,   95,   95,    0,    0,   94,
 
686
       96,   96,   96,   96,  101,  102,  103,  104,  101,  102,
 
687
      103,  104,  105,  106,  108,    0,  105,  106,  108,  104,
 
688
      109,  106,    0,    0,  109,  110,  102,  101,    0,  110,
 
689
      103,    0,  109,  111,  112,  110,  113,  111,  112,    0,
 
690
      113,  114,    0,  112,  108,  114,  113,  115,  116,  117,
 
691
        0,  115,  116,  117,  111,  118,    0,  119,  120,  118,
 
692
 
 
693
      116,  119,  120,  115,  117,    0,  114,  121,  122,  120,
 
694
      123,  121,  122,  116,  123,  124,  125,  124,  124,  124,
 
695
      125,  126,  123,  119,  127,  126,  118,  128,  127,    0,
 
696
        0,  128,  121,  122,  129,    0,  130,  131,  129,  128,
 
697
      130,  131,  127,  126,    0,  132,  129,  133,  130,  132,
 
698
      135,  133,  134,  131,  135,  136,  134,  137,    0,  136,
 
699
        0,  137,  133,  138,  134,  139,  132,  138,  140,  139,
 
700
        0,    0,  140,  141,  142,  135,  137,  141,  142,  143,
 
701
      136,  144,  145,  143,  142,  144,  145,  146,    0,  147,
 
702
      148,  146,  144,  147,  148,  140,  149,  143,  141,    0,
 
703
 
 
704
      149,  150,    0,  146,    0,  150,  151,  151,  151,  153,
 
705
      153,  153,  147,    0,  148,  152,  152,  152,  152,  155,
 
706
      157,  149,  158,  155,  157,    0,  158,  159,  160,  157,
 
707
      161,  159,  160,    0,  161,  162,  158,  155,  164,  162,
 
708
      160,  165,  164,  167,    0,  165,  166,  167,  159,  168,
 
709
      166,  165,  169,  168,  166,  170,  169,  171,  172,  170,
 
710
      173,  171,  172,    0,  173,  174,  175,  168,    0,  174,
 
711
      175,    0,  173,  176,    0,  171,  177,  176,  175,  178,
 
712
      177,  179,  180,  178,  181,  179,  180,  182,  181,  179,
 
713
      183,  182,  184,  178,  183,  176,  184,  185,  186,  183,
 
714
 
 
715
      187,  185,  186,  188,  187,  180,  189,  188,  190,    0,
 
716
      189,  191,  190,  184,  192,  191,  189,    0,  192,  193,
 
717
      194,  188,  195,  193,  194,  196,  195,  197,  198,  196,
 
718
        0,  197,  198,  199,  195,  200,  194,  199,  195,  200,
 
719
      193,  201,  202,  203,  197,  201,  202,  203,    0,  198,
 
720
      204,  204,  204,  204,  200,  206,  207,    0,  202,  206,
 
721
      207,  208,  209,  210,  211,  208,  209,  210,  211,  212,
 
722
      213,    0,  214,  212,  213,  210,  214,  207,  209,  215,
 
723
      206,  216,  217,  215,  208,  216,  217,  218,  213,  211,
 
724
      219,  218,  220,  216,  219,  221,  220,  214,    0,  221,
 
725
 
 
726
      222,  223,  215,  224,  222,  223,    0,  224,    0,  225,
 
727
      218,  224,  217,  225,  223,    0,    0,  226,  221,  225,
 
728
      222,  226,  227,  228,  229,    0,  227,  228,  229,  226,
 
729
      230,  231,  232,  228,  230,  231,  232,    0,  233,  234,
 
730
      235,  231,  233,  234,  235,  236,  236,  236,    0,  229,
 
731
      238,    0,  233,  230,  238,  234,  237,  237,  237,  237,
 
732
      239,  235,  240,  241,  239,  242,  240,  241,  243,  242,
 
733
        0,  244,  243,  245,  239,  244,  246,  245,  247,  248,
 
734
      246,  241,  247,  248,  249,  242,  250,  246,  249,  247,
 
735
      250,  251,    0,  253,  245,  251,  244,  253,  252,    0,
 
736
 
 
737
      254,  251,  252,  253,  254,  255,  252,  250,  256,  255,
 
738
      257,  258,  256,    0,  257,  258,  259,  254,  260,  261,
 
739
      259,  262,  260,  261,    0,  262,    0,    0,  259,  256,
 
740
      263,  263,  263,  265,  266,  267,  268,  265,  266,  267,
 
741
      268,  262,  269,  270,  261,  271,  269,  270,  272,  271,
 
742
      266,  273,  272,  275,  274,  273,    0,  275,  274,    0,
 
743
      268,    0,  276,  273,  274,  269,  276,  277,  278,  279,
 
744
      275,  277,  278,  279,  272,  280,  281,  281,  281,  280,
 
745
      282,  279,  283,  284,  282,  277,  283,  284,  285,  287,
 
746
      286,  288,  285,  287,  286,  288,  289,    0,  290,  292,
 
747
 
 
748
      289,  287,  290,  292,  293,  282,    0,  294,  293,  290,
 
749
      285,  294,  295,  284,  286,  296,  295,  297,  298,  296,
 
750
      299,  297,  298,    0,  299,    0,    0,    0,    0,  292,
 
751
        0,  294,  301,  301,  301,  301,  301,  301,  302,    0,
 
752
      302,  302,  302,  302,  303,  303,  303,  303,  304,  304,
 
753
      305,  305,  300,  300,  300,  300,  300,  300,  300,  300,
 
754
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
755
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
756
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
757
      300,  300,  300
 
758
 
 
759
    } ;
 
760
 
 
761
static yy_state_type yy_last_accepting_state;
 
762
static char *yy_last_accepting_cpos;
 
763
 
 
764
extern int yy_flex_debug;
 
765
int yy_flex_debug = 0;
 
766
 
 
767
/* The intent behind this definition is that it'll catch
 
768
 * any uses of REJECT which flex missed.
 
769
 */
 
770
#define REJECT reject_used_but_not_detected
 
771
#define yymore() yymore_used_but_not_detected
 
772
#define YY_MORE_ADJ 0
 
773
#define YY_RESTORE_YY_MORE_OFFSET
 
774
char *yytext;
 
775
#line 1 "lex.l"
 
776
#line 2 "lex.l"
 
777
 
 
778
#include <stdlib.h>
 
779
#include <string.h>
 
780
#include <sysexits.h>
 
781
#include <syslog.h>
 
782
#include <sys/types.h>
 
783
#include <sys/socket.h>
 
784
#include <netinet/in.h>
 
785
#include <arpa/inet.h>
 
786
#include <sys/time.h>
 
787
#include <sys/resource.h>
 
788
 
 
789
#include "port/port.h"
 
790
#include "grammar.h"
 
791
#include "error.h"
 
792
#include "parse.h"
 
793
 
 
794
void yyerror(char *c);
 
795
 
 
796
/* Prevent compilation of static input() function in generated scanner
 
797
   code to avoid gcc 4.x `defined but not used' warnings
 
798
*/
 
799
#define YY_NO_INPUT
 
800
 
 
801
#line 802 "lex.c"
 
802
 
 
803
#define INITIAL 0
 
804
 
 
805
#ifndef YY_NO_UNISTD_H
 
806
/* Special case for "unistd.h", since it is non-ANSI. We include it way
 
807
 * down here because we want the user's section 1 to have been scanned first.
 
808
 * The user has a chance to override it with an option.
 
809
 */
 
810
#include <unistd.h>
 
811
#endif
 
812
 
 
813
#ifndef YY_EXTRA_TYPE
 
814
#define YY_EXTRA_TYPE void *
 
815
#endif
 
816
 
 
817
static int yy_init_globals (void );
 
818
 
 
819
/* Accessor methods to globals.
 
820
   These are made visible to non-reentrant scanners for convenience. */
 
821
 
 
822
int yylex_destroy (void );
 
823
 
 
824
int yyget_debug (void );
 
825
 
 
826
void yyset_debug (int debug_flag  );
 
827
 
 
828
YY_EXTRA_TYPE yyget_extra (void );
 
829
 
 
830
void yyset_extra (YY_EXTRA_TYPE user_defined  );
 
831
 
 
832
FILE *yyget_in (void );
 
833
 
 
834
void yyset_in  (FILE * in_str  );
 
835
 
 
836
FILE *yyget_out (void );
 
837
 
 
838
void yyset_out  (FILE * out_str  );
 
839
 
 
840
int yyget_leng (void );
 
841
 
 
842
char *yyget_text (void );
 
843
 
 
844
int yyget_lineno (void );
 
845
 
 
846
void yyset_lineno (int line_number  );
 
847
 
 
848
/* Macros after this point can all be overridden by user definitions in
 
849
 * section 1.
 
850
 */
 
851
 
 
852
#ifndef YY_SKIP_YYWRAP
 
853
#ifdef __cplusplus
 
854
extern "C" int yywrap (void );
 
855
#else
 
856
extern int yywrap (void );
 
857
#endif
 
858
#endif
 
859
 
 
860
    static void yyunput (int c,char *buf_ptr  );
 
861
    
 
862
#ifndef yytext_ptr
 
863
static void yy_flex_strncpy (char *,yyconst char *,int );
 
864
#endif
 
865
 
 
866
#ifdef YY_NEED_STRLEN
 
867
static int yy_flex_strlen (yyconst char * );
 
868
#endif
 
869
 
 
870
#ifndef YY_NO_INPUT
 
871
 
 
872
#ifdef __cplusplus
 
873
static int yyinput (void );
 
874
#else
 
875
static int input (void );
 
876
#endif
 
877
 
 
878
#endif
 
879
 
 
880
/* Amount of stuff to slurp up with each read. */
 
881
#ifndef YY_READ_BUF_SIZE
 
882
#ifdef __ia64__
 
883
/* On IA-64, the buffer size is 16k, not 8k */
 
884
#define YY_READ_BUF_SIZE 16384
 
885
#else
 
886
#define YY_READ_BUF_SIZE 8192
 
887
#endif /* __ia64__ */
 
888
#endif
 
889
 
 
890
/* Copy whatever the last rule matched to the standard output. */
 
891
#ifndef ECHO
 
892
/* This used to be an fputs(), but since the string might contain NUL's,
 
893
 * we now use fwrite().
 
894
 */
 
895
#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
 
896
#endif
 
897
 
 
898
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 
899
 * is returned in "result".
 
900
 */
 
901
#ifndef YY_INPUT
 
902
#define YY_INPUT(buf,result,max_size) \
 
903
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 
904
                { \
 
905
                int c = '*'; \
 
906
                size_t n; \
 
907
                for ( n = 0; n < max_size && \
 
908
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 
909
                        buf[n] = (char) c; \
 
910
                if ( c == '\n' ) \
 
911
                        buf[n++] = (char) c; \
 
912
                if ( c == EOF && ferror( yyin ) ) \
 
913
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
 
914
                result = n; \
 
915
                } \
 
916
        else \
 
917
                { \
 
918
                errno=0; \
 
919
                while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
 
920
                        { \
 
921
                        if( errno != EINTR) \
 
922
                                { \
 
923
                                YY_FATAL_ERROR( "input in flex scanner failed" ); \
 
924
                                break; \
 
925
                                } \
 
926
                        errno=0; \
 
927
                        clearerr(yyin); \
 
928
                        } \
 
929
                }\
 
930
\
 
931
 
 
932
#endif
 
933
 
 
934
/* No semi-colon after return; correct usage is to write "yyterminate();" -
 
935
 * we don't want an extra ';' after the "return" because that will cause
 
936
 * some compilers to complain about unreachable statements.
 
937
 */
 
938
#ifndef yyterminate
 
939
#define yyterminate() return YY_NULL
 
940
#endif
 
941
 
 
942
/* Number of entries by which start-condition stack grows. */
 
943
#ifndef YY_START_STACK_INCR
 
944
#define YY_START_STACK_INCR 25
 
945
#endif
 
946
 
 
947
/* Report a fatal error. */
 
948
#ifndef YY_FATAL_ERROR
 
949
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
 
950
#endif
 
951
 
 
952
/* end tables serialization structures and prototypes */
 
953
 
 
954
/* Default declaration of generated scanner - a define so the user can
 
955
 * easily add parameters.
 
956
 */
 
957
#ifndef YY_DECL
 
958
#define YY_DECL_IS_OURS 1
 
959
 
 
960
extern int yylex (void);
 
961
 
 
962
#define YY_DECL int yylex (void)
 
963
#endif /* !YY_DECL */
 
964
 
 
965
/* Code executed at the beginning of each rule, after yytext and yyleng
 
966
 * have been set up.
 
967
 */
 
968
#ifndef YY_USER_ACTION
 
969
#define YY_USER_ACTION
 
970
#endif
 
971
 
 
972
/* Code executed at the end of each rule. */
 
973
#ifndef YY_BREAK
 
974
#define YY_BREAK break;
 
975
#endif
 
976
 
 
977
#define YY_RULE_SETUP \
 
978
        YY_USER_ACTION
 
979
 
 
980
/** The main scanner function which does all the work.
 
981
 */
 
982
YY_DECL
 
983
{
 
984
        register yy_state_type yy_current_state;
 
985
        register char *yy_cp, *yy_bp;
 
986
        register int yy_act;
 
987
    
 
988
#line 28 "lex.l"
 
989
 
 
990
 
 
991
#line 992 "lex.c"
 
992
 
 
993
        if ( !(yy_init) )
 
994
                {
 
995
                (yy_init) = 1;
 
996
 
 
997
#ifdef YY_USER_INIT
 
998
                YY_USER_INIT;
 
999
#endif
 
1000
 
 
1001
                if ( ! (yy_start) )
 
1002
                        (yy_start) = 1; /* first start state */
 
1003
 
 
1004
                if ( ! yyin )
 
1005
                        yyin = stdin;
 
1006
 
 
1007
                if ( ! yyout )
 
1008
                        yyout = stdout;
 
1009
 
 
1010
                if ( ! YY_CURRENT_BUFFER ) {
 
1011
                        yyensure_buffer_stack ();
 
1012
                        YY_CURRENT_BUFFER_LVALUE =
 
1013
                                yy_create_buffer(yyin,YY_BUF_SIZE );
 
1014
                }
 
1015
 
 
1016
                yy_load_buffer_state( );
 
1017
                }
 
1018
 
 
1019
        while ( 1 )             /* loops until end-of-file is reached */
 
1020
                {
 
1021
                yy_cp = (yy_c_buf_p);
 
1022
 
 
1023
                /* Support of yytext. */
 
1024
                *yy_cp = (yy_hold_char);
 
1025
 
 
1026
                /* yy_bp points to the position in yy_ch_buf of the start of
 
1027
                 * the current run.
 
1028
                 */
 
1029
                yy_bp = yy_cp;
 
1030
 
 
1031
                yy_current_state = (yy_start);
 
1032
yy_match:
 
1033
                do
 
1034
                        {
 
1035
                        register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
 
1036
                        if ( yy_accept[yy_current_state] )
 
1037
                                {
 
1038
                                (yy_last_accepting_state) = yy_current_state;
 
1039
                                (yy_last_accepting_cpos) = yy_cp;
 
1040
                                }
 
1041
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
1042
                                {
 
1043
                                yy_current_state = (int) yy_def[yy_current_state];
 
1044
                                if ( yy_current_state >= 301 )
 
1045
                                        yy_c = yy_meta[(unsigned int) yy_c];
 
1046
                                }
 
1047
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
1048
                        ++yy_cp;
 
1049
                        }
 
1050
                while ( yy_base[yy_current_state] != 953 );
 
1051
 
 
1052
yy_find_action:
 
1053
                yy_act = yy_accept[yy_current_state];
 
1054
                if ( yy_act == 0 )
 
1055
                        { /* have to back up */
 
1056
                        yy_cp = (yy_last_accepting_cpos);
 
1057
                        yy_current_state = (yy_last_accepting_state);
 
1058
                        yy_act = yy_accept[yy_current_state];
 
1059
                        }
 
1060
 
 
1061
                YY_DO_BEFORE_ACTION;
 
1062
 
 
1063
do_action:      /* This label is used only to access EOF actions. */
 
1064
 
 
1065
                switch ( yy_act )
 
1066
        { /* beginning of action switch */
 
1067
                        case 0: /* must back up */
 
1068
                        /* undo the effects of YY_DO_BEFORE_ACTION */
 
1069
                        *yy_cp = (yy_hold_char);
 
1070
                        yy_cp = (yy_last_accepting_cpos);
 
1071
                        yy_current_state = (yy_last_accepting_state);
 
1072
                        goto yy_find_action;
 
1073
 
 
1074
case 1:
 
1075
YY_RULE_SETUP
 
1076
#line 30 "lex.l"
 
1077
return(T_SERVICE);
 
1078
        YY_BREAK
 
1079
case 2:
 
1080
YY_RULE_SETUP
 
1081
#line 31 "lex.l"
 
1082
return(T_EXEC);
 
1083
        YY_BREAK
 
1084
case 3:
 
1085
YY_RULE_SETUP
 
1086
#line 32 "lex.l"
 
1087
return(T_PORT);
 
1088
        YY_BREAK
 
1089
case 4:
 
1090
YY_RULE_SETUP
 
1091
#line 33 "lex.l"
 
1092
return(T_PROTO);
 
1093
        YY_BREAK
 
1094
case 5:
 
1095
YY_RULE_SETUP
 
1096
#line 34 "lex.l"
 
1097
return(T_TCP);
 
1098
        YY_BREAK
 
1099
case 6:
 
1100
YY_RULE_SETUP
 
1101
#line 35 "lex.l"
 
1102
return(T_UDP);
 
1103
        YY_BREAK
 
1104
case 7:
 
1105
YY_RULE_SETUP
 
1106
#line 36 "lex.l"
 
1107
return(T_UID);
 
1108
        YY_BREAK
 
1109
case 8:
 
1110
YY_RULE_SETUP
 
1111
#line 37 "lex.l"
 
1112
return(T_GID);
 
1113
        YY_BREAK
 
1114
case 9:
 
1115
YY_RULE_SETUP
 
1116
#line 38 "lex.l"
 
1117
return(T_BACKLOG);
 
1118
        YY_BREAK
 
1119
case 10:
 
1120
YY_RULE_SETUP
 
1121
#line 39 "lex.l"
 
1122
return(T_INSTANCES);
 
1123
        YY_BREAK
 
1124
case 11:
 
1125
YY_RULE_SETUP
 
1126
#line 40 "lex.l"
 
1127
return(T_DEFAULT);
 
1128
        YY_BREAK
 
1129
case 12:
 
1130
YY_RULE_SETUP
 
1131
#line 41 "lex.l"
 
1132
return(T_NICE);
 
1133
        YY_BREAK
 
1134
case 13:
 
1135
YY_RULE_SETUP
 
1136
#line 42 "lex.l"
 
1137
return(T_RLIMIT);
 
1138
        YY_BREAK
 
1139
case 14:
 
1140
YY_RULE_SETUP
 
1141
#line 43 "lex.l"
 
1142
return(T_LIM_CPU);
 
1143
        YY_BREAK
 
1144
case 15:
 
1145
YY_RULE_SETUP
 
1146
#line 44 "lex.l"
 
1147
return(T_LIM_FSIZE);
 
1148
        YY_BREAK
 
1149
case 16:
 
1150
YY_RULE_SETUP
 
1151
#line 45 "lex.l"
 
1152
return(T_LIM_DATA);
 
1153
        YY_BREAK
 
1154
case 17:
 
1155
YY_RULE_SETUP
 
1156
#line 46 "lex.l"
 
1157
return(T_LIM_STACK);
 
1158
        YY_BREAK
 
1159
case 18:
 
1160
YY_RULE_SETUP
 
1161
#line 47 "lex.l"
 
1162
return(T_LIM_CORE);
 
1163
        YY_BREAK
 
1164
case 19:
 
1165
YY_RULE_SETUP
 
1166
#line 48 "lex.l"
 
1167
return(T_LIM_RSS);
 
1168
        YY_BREAK
 
1169
case 20:
 
1170
YY_RULE_SETUP
 
1171
#line 49 "lex.l"
 
1172
return(T_LIM_NPROC);
 
1173
        YY_BREAK
 
1174
case 21:
 
1175
YY_RULE_SETUP
 
1176
#line 50 "lex.l"
 
1177
return(T_LIM_NOFILE);
 
1178
        YY_BREAK
 
1179
case 22:
 
1180
YY_RULE_SETUP
 
1181
#line 51 "lex.l"
 
1182
return(T_LIM_MEMLOCK);
 
1183
        YY_BREAK
 
1184
case 23:
 
1185
YY_RULE_SETUP
 
1186
#line 52 "lex.l"
 
1187
return(T_LIM_INFINITY);
 
1188
        YY_BREAK
 
1189
case 24:
 
1190
YY_RULE_SETUP
 
1191
#line 53 "lex.l"
 
1192
return(T_INTERFACE);
 
1193
        YY_BREAK
 
1194
case 25:
 
1195
YY_RULE_SETUP
 
1196
#line 54 "lex.l"
 
1197
return(T_LOG);
 
1198
        YY_BREAK
 
1199
case 26:
 
1200
YY_RULE_SETUP
 
1201
#line 55 "lex.l"
 
1202
return(T_FISH);
 
1203
        YY_BREAK
 
1204
case 27:
 
1205
YY_RULE_SETUP
 
1206
#line 56 "lex.l"
 
1207
return(T_SOFT);
 
1208
        YY_BREAK
 
1209
case 28:
 
1210
YY_RULE_SETUP
 
1211
#line 57 "lex.l"
 
1212
return(T_HARD);
 
1213
        YY_BREAK
 
1214
case 29:
 
1215
YY_RULE_SETUP
 
1216
#line 58 "lex.l"
 
1217
return(T_CHROOT);
 
1218
        YY_BREAK
 
1219
case 30:
 
1220
YY_RULE_SETUP
 
1221
#line 59 "lex.l"
 
1222
return(T_PIPE);
 
1223
        YY_BREAK
 
1224
case 31:
 
1225
YY_RULE_SETUP
 
1226
#line 60 "lex.l"
 
1227
return(T_SYSLOG);
 
1228
        YY_BREAK
 
1229
case 32:
 
1230
YY_RULE_SETUP
 
1231
#line 61 "lex.l"
 
1232
return(T_PATH);
 
1233
        YY_BREAK
 
1234
case 33:
 
1235
YY_RULE_SETUP
 
1236
#line 62 "lex.l"
 
1237
return(T_PATH);
 
1238
        YY_BREAK
 
1239
case 34:
 
1240
YY_RULE_SETUP
 
1241
#line 63 "lex.l"
 
1242
return(T_MODE);
 
1243
        YY_BREAK
 
1244
case 35:
 
1245
YY_RULE_SETUP
 
1246
#line 64 "lex.l"
 
1247
return(T_SERVER);
 
1248
        YY_BREAK
 
1249
case 36:
 
1250
YY_RULE_SETUP
 
1251
#line 65 "lex.l"
 
1252
return(T_DIR);
 
1253
        YY_BREAK
 
1254
case 37:
 
1255
YY_RULE_SETUP
 
1256
#line 66 "lex.l"
 
1257
return(T_RPC);
 
1258
        YY_BREAK
 
1259
case 38:
 
1260
YY_RULE_SETUP
 
1261
#line 67 "lex.l"
 
1262
return(T_VERSION);
 
1263
        YY_BREAK
 
1264
case 39:
 
1265
YY_RULE_SETUP
 
1266
#line 68 "lex.l"
 
1267
return(T_NAME);
 
1268
        YY_BREAK
 
1269
case 40:
 
1270
YY_RULE_SETUP
 
1271
#line 69 "lex.l"
 
1272
return(T_WRAP);
 
1273
        YY_BREAK
 
1274
case 41:
 
1275
YY_RULE_SETUP
 
1276
#line 70 "lex.l"
 
1277
return(T_CAPS);
 
1278
        YY_BREAK
 
1279
case 42:
 
1280
YY_RULE_SETUP
 
1281
#line 71 "lex.l"
 
1282
return(T_FAMILY);
 
1283
        YY_BREAK
 
1284
case 43:
 
1285
YY_RULE_SETUP
 
1286
#line 72 "lex.l"
 
1287
return(T_IPV4);
 
1288
        YY_BREAK
 
1289
case 44:
 
1290
YY_RULE_SETUP
 
1291
#line 73 "lex.l"
 
1292
return(T_IPV6);
 
1293
        YY_BREAK
 
1294
case 45:
 
1295
YY_RULE_SETUP
 
1296
#line 74 "lex.l"
 
1297
return(T_INITGROUPS);
 
1298
        YY_BREAK
 
1299
case 46:
 
1300
YY_RULE_SETUP
 
1301
#line 75 "lex.l"
 
1302
return(T_ACCEPT);
 
1303
        YY_BREAK
 
1304
case 47:
 
1305
YY_RULE_SETUP
 
1306
#line 76 "lex.l"
 
1307
return(T_DENY);
 
1308
        YY_BREAK
 
1309
case 48:
 
1310
YY_RULE_SETUP
 
1311
#line 77 "lex.l"
 
1312
return(T_CLOSE);
 
1313
        YY_BREAK
 
1314
case 49:
 
1315
YY_RULE_SETUP
 
1316
#line 78 "lex.l"
 
1317
return(T_BANNER);
 
1318
        YY_BREAK
 
1319
case 50:
 
1320
YY_RULE_SETUP
 
1321
#line 79 "lex.l"
 
1322
return(T_EXIT);
 
1323
        YY_BREAK
 
1324
case 51:
 
1325
YY_RULE_SETUP
 
1326
#line 80 "lex.l"
 
1327
return(T_ECHO);
 
1328
        YY_BREAK
 
1329
case 52:
 
1330
YY_RULE_SETUP
 
1331
#line 81 "lex.l"
 
1332
return(T_DISCARD);
 
1333
        YY_BREAK
 
1334
case 53:
 
1335
YY_RULE_SETUP
 
1336
#line 82 "lex.l"
 
1337
return(T_FILTER);
 
1338
        YY_BREAK
 
1339
case 54:
 
1340
YY_RULE_SETUP
 
1341
#line 83 "lex.l"
 
1342
return(T_CHARGEN);
 
1343
        YY_BREAK
 
1344
case 55:
 
1345
YY_RULE_SETUP
 
1346
#line 84 "lex.l"
 
1347
return(T_LOOPBACK);
 
1348
        YY_BREAK
 
1349
case 56:
 
1350
YY_RULE_SETUP
 
1351
#line 85 "lex.l"
 
1352
return(T_WAIT);
 
1353
        YY_BREAK
 
1354
case 57:
 
1355
YY_RULE_SETUP
 
1356
#line 86 "lex.l"
 
1357
return(T_ENABLED);
 
1358
        YY_BREAK
 
1359
case 58:
 
1360
YY_RULE_SETUP
 
1361
#line 87 "lex.l"
 
1362
return(T_YES);
 
1363
        YY_BREAK
 
1364
case 59:
 
1365
YY_RULE_SETUP
 
1366
#line 88 "lex.l"
 
1367
return(T_NO);
 
1368
        YY_BREAK
 
1369
case 60:
 
1370
YY_RULE_SETUP
 
1371
#line 90 "lex.l"
 
1372
return '{';
 
1373
        YY_BREAK
 
1374
case 61:
 
1375
YY_RULE_SETUP
 
1376
#line 91 "lex.l"
 
1377
return '}';
 
1378
        YY_BREAK
 
1379
case 62:
 
1380
YY_RULE_SETUP
 
1381
#line 92 "lex.l"
 
1382
return ';';
 
1383
        YY_BREAK
 
1384
case 63:
 
1385
YY_RULE_SETUP
 
1386
#line 93 "lex.l"
 
1387
return ',';
 
1388
        YY_BREAK
 
1389
case 64:
 
1390
YY_RULE_SETUP
 
1391
#line 94 "lex.l"
 
1392
return '-';
 
1393
        YY_BREAK
 
1394
case 65:
 
1395
/* rule 65 can match eol */
 
1396
YY_RULE_SETUP
 
1397
#line 96 "lex.l"
 
1398
{
 
1399
                        curfile_line++;
 
1400
                }
 
1401
        YY_BREAK
 
1402
case 66:
 
1403
YY_RULE_SETUP
 
1404
#line 99 "lex.l"
 
1405
 
 
1406
        YY_BREAK
 
1407
case 67:
 
1408
/* rule 67 can match eol */
 
1409
YY_RULE_SETUP
 
1410
#line 100 "lex.l"
 
1411
{
 
1412
                        yylval.cp = malloc(yyleng - 1);
 
1413
                        memcpy(yylval.cp, yytext + 1, yyleng - 2);
 
1414
                        yylval.cp[yyleng - 2] = '\0';
 
1415
                        return(T_QSTRING);
 
1416
                }
 
1417
        YY_BREAK
 
1418
case 68:
 
1419
YY_RULE_SETUP
 
1420
#line 106 "lex.l"
 
1421
{
 
1422
                        yylval.cp = strdup(yytext);
 
1423
                        return(T_IPADDR);
 
1424
                }
 
1425
        YY_BREAK
 
1426
case 69:
 
1427
YY_RULE_SETUP
 
1428
#line 110 "lex.l"
 
1429
{
 
1430
                        yylval.num = strtol(yytext, NULL, 0);
 
1431
                        return(T_NUMERIC);
 
1432
                }
 
1433
        YY_BREAK
 
1434
case 70:
 
1435
YY_RULE_SETUP
 
1436
#line 114 "lex.l"
 
1437
{
 
1438
                        yylval.cp = strdup(yytext);
 
1439
                        return(T_IPADDR);
 
1440
                }
 
1441
        YY_BREAK
 
1442
case 71:
 
1443
YY_RULE_SETUP
 
1444
#line 118 "lex.l"
 
1445
 
 
1446
        YY_BREAK
 
1447
case 72:
 
1448
YY_RULE_SETUP
 
1449
#line 119 "lex.l"
 
1450
{
 
1451
                        rl_pwarn(curfile_name, curfile_line,
 
1452
                                "unknown directive: %s", strdup(yytext));
 
1453
                }
 
1454
        YY_BREAK
 
1455
case 73:
 
1456
YY_RULE_SETUP
 
1457
#line 124 "lex.l"
 
1458
ECHO;
 
1459
        YY_BREAK
 
1460
#line 1461 "lex.c"
 
1461
case YY_STATE_EOF(INITIAL):
 
1462
        yyterminate();
 
1463
 
 
1464
        case YY_END_OF_BUFFER:
 
1465
                {
 
1466
                /* Amount of text matched not including the EOB char. */
 
1467
                int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
 
1468
 
 
1469
                /* Undo the effects of YY_DO_BEFORE_ACTION. */
 
1470
                *yy_cp = (yy_hold_char);
 
1471
                YY_RESTORE_YY_MORE_OFFSET
 
1472
 
 
1473
                if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
 
1474
                        {
 
1475
                        /* We're scanning a new file or input source.  It's
 
1476
                         * possible that this happened because the user
 
1477
                         * just pointed yyin at a new source and called
 
1478
                         * yylex().  If so, then we have to assure
 
1479
                         * consistency between YY_CURRENT_BUFFER and our
 
1480
                         * globals.  Here is the right place to do so, because
 
1481
                         * this is the first action (other than possibly a
 
1482
                         * back-up) that will match for the new input source.
 
1483
                         */
 
1484
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 
1485
                        YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
 
1486
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
 
1487
                        }
 
1488
 
 
1489
                /* Note that here we test for yy_c_buf_p "<=" to the position
 
1490
                 * of the first EOB in the buffer, since yy_c_buf_p will
 
1491
                 * already have been incremented past the NUL character
 
1492
                 * (since all states make transitions on EOB to the
 
1493
                 * end-of-buffer state).  Contrast this with the test
 
1494
                 * in input().
 
1495
                 */
 
1496
                if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
 
1497
                        { /* This was really a NUL. */
 
1498
                        yy_state_type yy_next_state;
 
1499
 
 
1500
                        (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
 
1501
 
 
1502
                        yy_current_state = yy_get_previous_state(  );
 
1503
 
 
1504
                        /* Okay, we're now positioned to make the NUL
 
1505
                         * transition.  We couldn't have
 
1506
                         * yy_get_previous_state() go ahead and do it
 
1507
                         * for us because it doesn't know how to deal
 
1508
                         * with the possibility of jamming (and we don't
 
1509
                         * want to build jamming into it because then it
 
1510
                         * will run more slowly).
 
1511
                         */
 
1512
 
 
1513
                        yy_next_state = yy_try_NUL_trans( yy_current_state );
 
1514
 
 
1515
                        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 
1516
 
 
1517
                        if ( yy_next_state )
 
1518
                                {
 
1519
                                /* Consume the NUL. */
 
1520
                                yy_cp = ++(yy_c_buf_p);
 
1521
                                yy_current_state = yy_next_state;
 
1522
                                goto yy_match;
 
1523
                                }
 
1524
 
 
1525
                        else
 
1526
                                {
 
1527
                                yy_cp = (yy_c_buf_p);
 
1528
                                goto yy_find_action;
 
1529
                                }
 
1530
                        }
 
1531
 
 
1532
                else switch ( yy_get_next_buffer(  ) )
 
1533
                        {
 
1534
                        case EOB_ACT_END_OF_FILE:
 
1535
                                {
 
1536
                                (yy_did_buffer_switch_on_eof) = 0;
 
1537
 
 
1538
                                if ( yywrap( ) )
 
1539
                                        {
 
1540
                                        /* Note: because we've taken care in
 
1541
                                         * yy_get_next_buffer() to have set up
 
1542
                                         * yytext, we can now set up
 
1543
                                         * yy_c_buf_p so that if some total
 
1544
                                         * hoser (like flex itself) wants to
 
1545
                                         * call the scanner after we return the
 
1546
                                         * YY_NULL, it'll still work - another
 
1547
                                         * YY_NULL will get returned.
 
1548
                                         */
 
1549
                                        (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
 
1550
 
 
1551
                                        yy_act = YY_STATE_EOF(YY_START);
 
1552
                                        goto do_action;
 
1553
                                        }
 
1554
 
 
1555
                                else
 
1556
                                        {
 
1557
                                        if ( ! (yy_did_buffer_switch_on_eof) )
 
1558
                                                YY_NEW_FILE;
 
1559
                                        }
 
1560
                                break;
 
1561
                                }
 
1562
 
 
1563
                        case EOB_ACT_CONTINUE_SCAN:
 
1564
                                (yy_c_buf_p) =
 
1565
                                        (yytext_ptr) + yy_amount_of_matched_text;
 
1566
 
 
1567
                                yy_current_state = yy_get_previous_state(  );
 
1568
 
 
1569
                                yy_cp = (yy_c_buf_p);
 
1570
                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 
1571
                                goto yy_match;
 
1572
 
 
1573
                        case EOB_ACT_LAST_MATCH:
 
1574
                                (yy_c_buf_p) =
 
1575
                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
 
1576
 
 
1577
                                yy_current_state = yy_get_previous_state(  );
 
1578
 
 
1579
                                yy_cp = (yy_c_buf_p);
 
1580
                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 
1581
                                goto yy_find_action;
 
1582
                        }
 
1583
                break;
 
1584
                }
 
1585
 
 
1586
        default:
 
1587
                YY_FATAL_ERROR(
 
1588
                        "fatal flex scanner internal error--no action found" );
 
1589
        } /* end of action switch */
 
1590
                } /* end of scanning one token */
 
1591
} /* end of yylex */
 
1592
 
 
1593
/* yy_get_next_buffer - try to read in a new buffer
 
1594
 *
 
1595
 * Returns a code representing an action:
 
1596
 *      EOB_ACT_LAST_MATCH -
 
1597
 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 
1598
 *      EOB_ACT_END_OF_FILE - end of file
 
1599
 */
 
1600
static int yy_get_next_buffer (void)
 
1601
{
 
1602
        register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
 
1603
        register char *source = (yytext_ptr);
 
1604
        register int number_to_move, i;
 
1605
        int ret_val;
 
1606
 
 
1607
        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
 
1608
                YY_FATAL_ERROR(
 
1609
                "fatal flex scanner internal error--end of buffer missed" );
 
1610
 
 
1611
        if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
 
1612
                { /* Don't try to fill the buffer, so this is an EOF. */
 
1613
                if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
 
1614
                        {
 
1615
                        /* We matched a single character, the EOB, so
 
1616
                         * treat this as a final EOF.
 
1617
                         */
 
1618
                        return EOB_ACT_END_OF_FILE;
 
1619
                        }
 
1620
 
 
1621
                else
 
1622
                        {
 
1623
                        /* We matched some text prior to the EOB, first
 
1624
                         * process it.
 
1625
                         */
 
1626
                        return EOB_ACT_LAST_MATCH;
 
1627
                        }
 
1628
                }
 
1629
 
 
1630
        /* Try to read more data. */
 
1631
 
 
1632
        /* First move last chars to start of buffer. */
 
1633
        number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
 
1634
 
 
1635
        for ( i = 0; i < number_to_move; ++i )
 
1636
                *(dest++) = *(source++);
 
1637
 
 
1638
        if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 
1639
                /* don't do the read, it's not guaranteed to return an EOF,
 
1640
                 * just force an EOF
 
1641
                 */
 
1642
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
 
1643
 
 
1644
        else
 
1645
                {
 
1646
                        int num_to_read =
 
1647
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
1648
 
 
1649
                while ( num_to_read <= 0 )
 
1650
                        { /* Not enough room in the buffer - grow it. */
 
1651
 
 
1652
                        /* just a shorter name for the current buffer */
 
1653
                        YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
 
1654
 
 
1655
                        int yy_c_buf_p_offset =
 
1656
                                (int) ((yy_c_buf_p) - b->yy_ch_buf);
 
1657
 
 
1658
                        if ( b->yy_is_our_buffer )
 
1659
                                {
 
1660
                                int new_size = b->yy_buf_size * 2;
 
1661
 
 
1662
                                if ( new_size <= 0 )
 
1663
                                        b->yy_buf_size += b->yy_buf_size / 8;
 
1664
                                else
 
1665
                                        b->yy_buf_size *= 2;
 
1666
 
 
1667
                                b->yy_ch_buf = (char *)
 
1668
                                        /* Include room in for 2 EOB chars. */
 
1669
                                        yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
 
1670
                                }
 
1671
                        else
 
1672
                                /* Can't grow it, we don't own it. */
 
1673
                                b->yy_ch_buf = 0;
 
1674
 
 
1675
                        if ( ! b->yy_ch_buf )
 
1676
                                YY_FATAL_ERROR(
 
1677
                                "fatal error - scanner input buffer overflow" );
 
1678
 
 
1679
                        (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
 
1680
 
 
1681
                        num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
 
1682
                                                number_to_move - 1;
 
1683
 
 
1684
                        }
 
1685
 
 
1686
                if ( num_to_read > YY_READ_BUF_SIZE )
 
1687
                        num_to_read = YY_READ_BUF_SIZE;
 
1688
 
 
1689
                /* Read in more data. */
 
1690
                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
 
1691
                        (yy_n_chars), (size_t) num_to_read );
 
1692
 
 
1693
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 
1694
                }
 
1695
 
 
1696
        if ( (yy_n_chars) == 0 )
 
1697
                {
 
1698
                if ( number_to_move == YY_MORE_ADJ )
 
1699
                        {
 
1700
                        ret_val = EOB_ACT_END_OF_FILE;
 
1701
                        yyrestart(yyin  );
 
1702
                        }
 
1703
 
 
1704
                else
 
1705
                        {
 
1706
                        ret_val = EOB_ACT_LAST_MATCH;
 
1707
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
 
1708
                                YY_BUFFER_EOF_PENDING;
 
1709
                        }
 
1710
                }
 
1711
 
 
1712
        else
 
1713
                ret_val = EOB_ACT_CONTINUE_SCAN;
 
1714
 
 
1715
        if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
 
1716
                /* Extend the array by 50%, plus the number we really need. */
 
1717
                yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
 
1718
                YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
 
1719
                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
 
1720
                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
 
1721
        }
 
1722
 
 
1723
        (yy_n_chars) += number_to_move;
 
1724
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
 
1725
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
 
1726
 
 
1727
        (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
 
1728
 
 
1729
        return ret_val;
 
1730
}
 
1731
 
 
1732
/* yy_get_previous_state - get the state just before the EOB char was reached */
 
1733
 
 
1734
    static yy_state_type yy_get_previous_state (void)
 
1735
{
 
1736
        register yy_state_type yy_current_state;
 
1737
        register char *yy_cp;
 
1738
    
 
1739
        yy_current_state = (yy_start);
 
1740
 
 
1741
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 
1742
                {
 
1743
                register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
 
1744
                if ( yy_accept[yy_current_state] )
 
1745
                        {
 
1746
                        (yy_last_accepting_state) = yy_current_state;
 
1747
                        (yy_last_accepting_cpos) = yy_cp;
 
1748
                        }
 
1749
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
1750
                        {
 
1751
                        yy_current_state = (int) yy_def[yy_current_state];
 
1752
                        if ( yy_current_state >= 301 )
 
1753
                                yy_c = yy_meta[(unsigned int) yy_c];
 
1754
                        }
 
1755
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
1756
                }
 
1757
 
 
1758
        return yy_current_state;
 
1759
}
 
1760
 
 
1761
/* yy_try_NUL_trans - try to make a transition on the NUL character
 
1762
 *
 
1763
 * synopsis
 
1764
 *      next_state = yy_try_NUL_trans( current_state );
 
1765
 */
 
1766
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
 
1767
{
 
1768
        register int yy_is_jam;
 
1769
        register char *yy_cp = (yy_c_buf_p);
 
1770
 
 
1771
        register YY_CHAR yy_c = 1;
 
1772
        if ( yy_accept[yy_current_state] )
 
1773
                {
 
1774
                (yy_last_accepting_state) = yy_current_state;
 
1775
                (yy_last_accepting_cpos) = yy_cp;
 
1776
                }
 
1777
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
1778
                {
 
1779
                yy_current_state = (int) yy_def[yy_current_state];
 
1780
                if ( yy_current_state >= 301 )
 
1781
                        yy_c = yy_meta[(unsigned int) yy_c];
 
1782
                }
 
1783
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
1784
        yy_is_jam = (yy_current_state == 300);
 
1785
 
 
1786
        return yy_is_jam ? 0 : yy_current_state;
 
1787
}
 
1788
 
 
1789
    static void yyunput (int c, register char * yy_bp )
 
1790
{
 
1791
        register char *yy_cp;
 
1792
    
 
1793
    yy_cp = (yy_c_buf_p);
 
1794
 
 
1795
        /* undo effects of setting up yytext */
 
1796
        *yy_cp = (yy_hold_char);
 
1797
 
 
1798
        if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 
1799
                { /* need to shift things up to make room */
 
1800
                /* +2 for EOB chars. */
 
1801
                register int number_to_move = (yy_n_chars) + 2;
 
1802
                register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
 
1803
                                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
 
1804
                register char *source =
 
1805
                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
 
1806
 
 
1807
                while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
 
1808
                        *--dest = *--source;
 
1809
 
 
1810
                yy_cp += (int) (dest - source);
 
1811
                yy_bp += (int) (dest - source);
 
1812
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
 
1813
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
 
1814
 
 
1815
                if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 
1816
                        YY_FATAL_ERROR( "flex scanner push-back overflow" );
 
1817
                }
 
1818
 
 
1819
        *--yy_cp = (char) c;
 
1820
 
 
1821
        (yytext_ptr) = yy_bp;
 
1822
        (yy_hold_char) = *yy_cp;
 
1823
        (yy_c_buf_p) = yy_cp;
 
1824
}
 
1825
 
 
1826
#ifndef YY_NO_INPUT
 
1827
#ifdef __cplusplus
 
1828
    static int yyinput (void)
 
1829
#else
 
1830
    static int input  (void)
 
1831
#endif
 
1832
 
 
1833
{
 
1834
        int c;
 
1835
    
 
1836
        *(yy_c_buf_p) = (yy_hold_char);
 
1837
 
 
1838
        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
 
1839
                {
 
1840
                /* yy_c_buf_p now points to the character we want to return.
 
1841
                 * If this occurs *before* the EOB characters, then it's a
 
1842
                 * valid NUL; if not, then we've hit the end of the buffer.
 
1843
                 */
 
1844
                if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
 
1845
                        /* This was really a NUL. */
 
1846
                        *(yy_c_buf_p) = '\0';
 
1847
 
 
1848
                else
 
1849
                        { /* need more input */
 
1850
                        int offset = (yy_c_buf_p) - (yytext_ptr);
 
1851
                        ++(yy_c_buf_p);
 
1852
 
 
1853
                        switch ( yy_get_next_buffer(  ) )
 
1854
                                {
 
1855
                                case EOB_ACT_LAST_MATCH:
 
1856
                                        /* This happens because yy_g_n_b()
 
1857
                                         * sees that we've accumulated a
 
1858
                                         * token and flags that we need to
 
1859
                                         * try matching the token before
 
1860
                                         * proceeding.  But for input(),
 
1861
                                         * there's no matching to consider.
 
1862
                                         * So convert the EOB_ACT_LAST_MATCH
 
1863
                                         * to EOB_ACT_END_OF_FILE.
 
1864
                                         */
 
1865
 
 
1866
                                        /* Reset buffer status. */
 
1867
                                        yyrestart(yyin );
 
1868
 
 
1869
                                        /*FALLTHROUGH*/
 
1870
 
 
1871
                                case EOB_ACT_END_OF_FILE:
 
1872
                                        {
 
1873
                                        if ( yywrap( ) )
 
1874
                                                return EOF;
 
1875
 
 
1876
                                        if ( ! (yy_did_buffer_switch_on_eof) )
 
1877
                                                YY_NEW_FILE;
 
1878
#ifdef __cplusplus
 
1879
                                        return yyinput();
 
1880
#else
 
1881
                                        return input();
 
1882
#endif
 
1883
                                        }
 
1884
 
 
1885
                                case EOB_ACT_CONTINUE_SCAN:
 
1886
                                        (yy_c_buf_p) = (yytext_ptr) + offset;
 
1887
                                        break;
 
1888
                                }
 
1889
                        }
 
1890
                }
 
1891
 
 
1892
        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
 
1893
        *(yy_c_buf_p) = '\0';   /* preserve yytext */
 
1894
        (yy_hold_char) = *++(yy_c_buf_p);
 
1895
 
 
1896
        return c;
 
1897
}
 
1898
#endif  /* ifndef YY_NO_INPUT */
 
1899
 
 
1900
/** Immediately switch to a different input stream.
 
1901
 * @param input_file A readable stream.
 
1902
 * 
 
1903
 * @note This function does not reset the start condition to @c INITIAL .
 
1904
 */
 
1905
    void yyrestart  (FILE * input_file )
 
1906
{
 
1907
    
 
1908
        if ( ! YY_CURRENT_BUFFER ){
 
1909
        yyensure_buffer_stack ();
 
1910
                YY_CURRENT_BUFFER_LVALUE =
 
1911
            yy_create_buffer(yyin,YY_BUF_SIZE );
 
1912
        }
 
1913
 
 
1914
        yy_init_buffer(YY_CURRENT_BUFFER,input_file );
 
1915
        yy_load_buffer_state( );
 
1916
}
 
1917
 
 
1918
/** Switch to a different input buffer.
 
1919
 * @param new_buffer The new input buffer.
 
1920
 * 
 
1921
 */
 
1922
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 
1923
{
 
1924
    
 
1925
        /* TODO. We should be able to replace this entire function body
 
1926
         * with
 
1927
         *              yypop_buffer_state();
 
1928
         *              yypush_buffer_state(new_buffer);
 
1929
     */
 
1930
        yyensure_buffer_stack ();
 
1931
        if ( YY_CURRENT_BUFFER == new_buffer )
 
1932
                return;
 
1933
 
 
1934
        if ( YY_CURRENT_BUFFER )
 
1935
                {
 
1936
                /* Flush out information for old buffer. */
 
1937
                *(yy_c_buf_p) = (yy_hold_char);
 
1938
                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
 
1939
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 
1940
                }
 
1941
 
 
1942
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
1943
        yy_load_buffer_state( );
 
1944
 
 
1945
        /* We don't actually know whether we did this switch during
 
1946
         * EOF (yywrap()) processing, but the only time this flag
 
1947
         * is looked at is after yywrap() is called, so it's safe
 
1948
         * to go ahead and always set it.
 
1949
         */
 
1950
        (yy_did_buffer_switch_on_eof) = 1;
 
1951
}
 
1952
 
 
1953
static void yy_load_buffer_state  (void)
 
1954
{
 
1955
        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 
1956
        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
 
1957
        yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
 
1958
        (yy_hold_char) = *(yy_c_buf_p);
 
1959
}
 
1960
 
 
1961
/** Allocate and initialize an input buffer state.
 
1962
 * @param file A readable stream.
 
1963
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
 
1964
 * 
 
1965
 * @return the allocated buffer state.
 
1966
 */
 
1967
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
 
1968
{
 
1969
        YY_BUFFER_STATE b;
 
1970
    
 
1971
        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
 
1972
        if ( ! b )
 
1973
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
1974
 
 
1975
        b->yy_buf_size = size;
 
1976
 
 
1977
        /* yy_ch_buf has to be 2 characters longer than the size given because
 
1978
         * we need to put in 2 end-of-buffer characters.
 
1979
         */
 
1980
        b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
 
1981
        if ( ! b->yy_ch_buf )
 
1982
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
1983
 
 
1984
        b->yy_is_our_buffer = 1;
 
1985
 
 
1986
        yy_init_buffer(b,file );
 
1987
 
 
1988
        return b;
 
1989
}
 
1990
 
 
1991
/** Destroy the buffer.
 
1992
 * @param b a buffer created with yy_create_buffer()
 
1993
 * 
 
1994
 */
 
1995
    void yy_delete_buffer (YY_BUFFER_STATE  b )
 
1996
{
 
1997
    
 
1998
        if ( ! b )
 
1999
                return;
 
2000
 
 
2001
        if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
 
2002
                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
2003
 
 
2004
        if ( b->yy_is_our_buffer )
 
2005
                yyfree((void *) b->yy_ch_buf  );
 
2006
 
 
2007
        yyfree((void *) b  );
 
2008
}
 
2009
 
 
2010
#ifndef __cplusplus
 
2011
extern int isatty (int );
 
2012
#endif /* __cplusplus */
 
2013
    
 
2014
/* Initializes or reinitializes a buffer.
 
2015
 * This function is sometimes called more than once on the same buffer,
 
2016
 * such as during a yyrestart() or at EOF.
 
2017
 */
 
2018
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 
2019
 
 
2020
{
 
2021
        int oerrno = errno;
 
2022
    
 
2023
        yy_flush_buffer(b );
 
2024
 
 
2025
        b->yy_input_file = file;
 
2026
        b->yy_fill_buffer = 1;
 
2027
 
 
2028
    /* If b is the current buffer, then yy_init_buffer was _probably_
 
2029
     * called from yyrestart() or through yy_get_next_buffer.
 
2030
     * In that case, we don't want to reset the lineno or column.
 
2031
     */
 
2032
    if (b != YY_CURRENT_BUFFER){
 
2033
        b->yy_bs_lineno = 1;
 
2034
        b->yy_bs_column = 0;
 
2035
    }
 
2036
 
 
2037
        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
 
2038
    
 
2039
        errno = oerrno;
 
2040
}
 
2041
 
 
2042
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
 
2043
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
 
2044
 * 
 
2045
 */
 
2046
    void yy_flush_buffer (YY_BUFFER_STATE  b )
 
2047
{
 
2048
        if ( ! b )
 
2049
                return;
 
2050
 
 
2051
        b->yy_n_chars = 0;
 
2052
 
 
2053
        /* We always need two end-of-buffer characters.  The first causes
 
2054
         * a transition to the end-of-buffer state.  The second causes
 
2055
         * a jam in that state.
 
2056
         */
 
2057
        b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
 
2058
        b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
 
2059
 
 
2060
        b->yy_buf_pos = &b->yy_ch_buf[0];
 
2061
 
 
2062
        b->yy_at_bol = 1;
 
2063
        b->yy_buffer_status = YY_BUFFER_NEW;
 
2064
 
 
2065
        if ( b == YY_CURRENT_BUFFER )
 
2066
                yy_load_buffer_state( );
 
2067
}
 
2068
 
 
2069
/** Pushes the new state onto the stack. The new state becomes
 
2070
 *  the current state. This function will allocate the stack
 
2071
 *  if necessary.
 
2072
 *  @param new_buffer The new state.
 
2073
 *  
 
2074
 */
 
2075
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
 
2076
{
 
2077
        if (new_buffer == NULL)
 
2078
                return;
 
2079
 
 
2080
        yyensure_buffer_stack();
 
2081
 
 
2082
        /* This block is copied from yy_switch_to_buffer. */
 
2083
        if ( YY_CURRENT_BUFFER )
 
2084
                {
 
2085
                /* Flush out information for old buffer. */
 
2086
                *(yy_c_buf_p) = (yy_hold_char);
 
2087
                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
 
2088
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 
2089
                }
 
2090
 
 
2091
        /* Only push if top exists. Otherwise, replace top. */
 
2092
        if (YY_CURRENT_BUFFER)
 
2093
                (yy_buffer_stack_top)++;
 
2094
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
2095
 
 
2096
        /* copied from yy_switch_to_buffer. */
 
2097
        yy_load_buffer_state( );
 
2098
        (yy_did_buffer_switch_on_eof) = 1;
 
2099
}
 
2100
 
 
2101
/** Removes and deletes the top of the stack, if present.
 
2102
 *  The next element becomes the new top.
 
2103
 *  
 
2104
 */
 
2105
void yypop_buffer_state (void)
 
2106
{
 
2107
        if (!YY_CURRENT_BUFFER)
 
2108
                return;
 
2109
 
 
2110
        yy_delete_buffer(YY_CURRENT_BUFFER );
 
2111
        YY_CURRENT_BUFFER_LVALUE = NULL;
 
2112
        if ((yy_buffer_stack_top) > 0)
 
2113
                --(yy_buffer_stack_top);
 
2114
 
 
2115
        if (YY_CURRENT_BUFFER) {
 
2116
                yy_load_buffer_state( );
 
2117
                (yy_did_buffer_switch_on_eof) = 1;
 
2118
        }
 
2119
}
 
2120
 
 
2121
/* Allocates the stack if it does not exist.
 
2122
 *  Guarantees space for at least one push.
 
2123
 */
 
2124
static void yyensure_buffer_stack (void)
 
2125
{
 
2126
        int num_to_alloc;
 
2127
    
 
2128
        if (!(yy_buffer_stack)) {
 
2129
 
 
2130
                /* First allocation is just for 2 elements, since we don't know if this
 
2131
                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
 
2132
                 * immediate realloc on the next call.
 
2133
         */
 
2134
                num_to_alloc = 1;
 
2135
                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
 
2136
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
 
2137
                                                                );
 
2138
                if ( ! (yy_buffer_stack) )
 
2139
                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 
2140
                                                                  
 
2141
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 
2142
                                
 
2143
                (yy_buffer_stack_max) = num_to_alloc;
 
2144
                (yy_buffer_stack_top) = 0;
 
2145
                return;
 
2146
        }
 
2147
 
 
2148
        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
 
2149
 
 
2150
                /* Increase the buffer to prepare for a possible push. */
 
2151
                int grow_size = 8 /* arbitrary grow size */;
 
2152
 
 
2153
                num_to_alloc = (yy_buffer_stack_max) + grow_size;
 
2154
                (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
 
2155
                                                                ((yy_buffer_stack),
 
2156
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
 
2157
                                                                );
 
2158
                if ( ! (yy_buffer_stack) )
 
2159
                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 
2160
 
 
2161
                /* zero only the new slots.*/
 
2162
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
 
2163
                (yy_buffer_stack_max) = num_to_alloc;
 
2164
        }
 
2165
}
 
2166
 
 
2167
/** Setup the input buffer state to scan directly from a user-specified character buffer.
 
2168
 * @param base the character buffer
 
2169
 * @param size the size in bytes of the character buffer
 
2170
 * 
 
2171
 * @return the newly allocated buffer state object. 
 
2172
 */
 
2173
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
 
2174
{
 
2175
        YY_BUFFER_STATE b;
 
2176
    
 
2177
        if ( size < 2 ||
 
2178
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
 
2179
             base[size-1] != YY_END_OF_BUFFER_CHAR )
 
2180
                /* They forgot to leave room for the EOB's. */
 
2181
                return 0;
 
2182
 
 
2183
        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
 
2184
        if ( ! b )
 
2185
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
2186
 
 
2187
        b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
 
2188
        b->yy_buf_pos = b->yy_ch_buf = base;
 
2189
        b->yy_is_our_buffer = 0;
 
2190
        b->yy_input_file = 0;
 
2191
        b->yy_n_chars = b->yy_buf_size;
 
2192
        b->yy_is_interactive = 0;
 
2193
        b->yy_at_bol = 1;
 
2194
        b->yy_fill_buffer = 0;
 
2195
        b->yy_buffer_status = YY_BUFFER_NEW;
 
2196
 
 
2197
        yy_switch_to_buffer(b  );
 
2198
 
 
2199
        return b;
 
2200
}
 
2201
 
 
2202
/** Setup the input buffer state to scan a string. The next call to yylex() will
 
2203
 * scan from a @e copy of @a str.
 
2204
 * @param yystr a NUL-terminated string to scan
 
2205
 * 
 
2206
 * @return the newly allocated buffer state object.
 
2207
 * @note If you want to scan bytes that may contain NUL values, then use
 
2208
 *       yy_scan_bytes() instead.
 
2209
 */
 
2210
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
 
2211
{
 
2212
    
 
2213
        return yy_scan_bytes(yystr,strlen(yystr) );
 
2214
}
 
2215
 
 
2216
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
 
2217
 * scan from a @e copy of @a bytes.
 
2218
 * @param yybytes the byte buffer to scan
 
2219
 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
 
2220
 * 
 
2221
 * @return the newly allocated buffer state object.
 
2222
 */
 
2223
YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 
2224
{
 
2225
        YY_BUFFER_STATE b;
 
2226
        char *buf;
 
2227
        yy_size_t n;
 
2228
        int i;
 
2229
    
 
2230
        /* Get memory for full buffer, including space for trailing EOB's. */
 
2231
        n = _yybytes_len + 2;
 
2232
        buf = (char *) yyalloc(n  );
 
2233
        if ( ! buf )
 
2234
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
2235
 
 
2236
        for ( i = 0; i < _yybytes_len; ++i )
 
2237
                buf[i] = yybytes[i];
 
2238
 
 
2239
        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
2240
 
 
2241
        b = yy_scan_buffer(buf,n );
 
2242
        if ( ! b )
 
2243
                YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
 
2244
 
 
2245
        /* It's okay to grow etc. this buffer, and we should throw it
 
2246
         * away when we're done.
 
2247
         */
 
2248
        b->yy_is_our_buffer = 1;
 
2249
 
 
2250
        return b;
 
2251
}
 
2252
 
 
2253
#ifndef YY_EXIT_FAILURE
 
2254
#define YY_EXIT_FAILURE 2
 
2255
#endif
 
2256
 
 
2257
static void yy_fatal_error (yyconst char* msg )
 
2258
{
 
2259
        (void) fprintf( stderr, "%s\n", msg );
 
2260
        exit( YY_EXIT_FAILURE );
 
2261
}
 
2262
 
 
2263
/* Redefine yyless() so it works in section 3 code. */
 
2264
 
 
2265
#undef yyless
 
2266
#define yyless(n) \
 
2267
        do \
 
2268
                { \
 
2269
                /* Undo effects of setting up yytext. */ \
 
2270
        int yyless_macro_arg = (n); \
 
2271
        YY_LESS_LINENO(yyless_macro_arg);\
 
2272
                yytext[yyleng] = (yy_hold_char); \
 
2273
                (yy_c_buf_p) = yytext + yyless_macro_arg; \
 
2274
                (yy_hold_char) = *(yy_c_buf_p); \
 
2275
                *(yy_c_buf_p) = '\0'; \
 
2276
                yyleng = yyless_macro_arg; \
 
2277
                } \
 
2278
        while ( 0 )
 
2279
 
 
2280
/* Accessor  methods (get/set functions) to struct members. */
 
2281
 
 
2282
/** Get the current line number.
 
2283
 * 
 
2284
 */
 
2285
int yyget_lineno  (void)
 
2286
{
 
2287
        
 
2288
    return yylineno;
 
2289
}
 
2290
 
 
2291
/** Get the input stream.
 
2292
 * 
 
2293
 */
 
2294
FILE *yyget_in  (void)
 
2295
{
 
2296
        return yyin;
 
2297
}
 
2298
 
 
2299
/** Get the output stream.
 
2300
 * 
 
2301
 */
 
2302
FILE *yyget_out  (void)
 
2303
{
 
2304
        return yyout;
 
2305
}
 
2306
 
 
2307
/** Get the length of the current token.
 
2308
 * 
 
2309
 */
 
2310
int yyget_leng  (void)
 
2311
{
 
2312
        return yyleng;
 
2313
}
 
2314
 
 
2315
/** Get the current token.
 
2316
 * 
 
2317
 */
 
2318
 
 
2319
char *yyget_text  (void)
 
2320
{
 
2321
        return yytext;
 
2322
}
 
2323
 
 
2324
/** Set the current line number.
 
2325
 * @param line_number
 
2326
 * 
 
2327
 */
 
2328
void yyset_lineno (int  line_number )
 
2329
{
 
2330
    
 
2331
    yylineno = line_number;
 
2332
}
 
2333
 
 
2334
/** Set the input stream. This does not discard the current
 
2335
 * input buffer.
 
2336
 * @param in_str A readable stream.
 
2337
 * 
 
2338
 * @see yy_switch_to_buffer
 
2339
 */
 
2340
void yyset_in (FILE *  in_str )
 
2341
{
 
2342
        yyin = in_str ;
 
2343
}
 
2344
 
 
2345
void yyset_out (FILE *  out_str )
 
2346
{
 
2347
        yyout = out_str ;
 
2348
}
 
2349
 
 
2350
int yyget_debug  (void)
 
2351
{
 
2352
        return yy_flex_debug;
 
2353
}
 
2354
 
 
2355
void yyset_debug (int  bdebug )
 
2356
{
 
2357
        yy_flex_debug = bdebug ;
 
2358
}
 
2359
 
 
2360
static int yy_init_globals (void)
 
2361
{
 
2362
        /* Initialization is the same as for the non-reentrant scanner.
 
2363
     * This function is called from yylex_destroy(), so don't allocate here.
 
2364
     */
 
2365
 
 
2366
    (yy_buffer_stack) = 0;
 
2367
    (yy_buffer_stack_top) = 0;
 
2368
    (yy_buffer_stack_max) = 0;
 
2369
    (yy_c_buf_p) = (char *) 0;
 
2370
    (yy_init) = 0;
 
2371
    (yy_start) = 0;
 
2372
 
 
2373
/* Defined in main.c */
 
2374
#ifdef YY_STDINIT
 
2375
    yyin = stdin;
 
2376
    yyout = stdout;
 
2377
#else
 
2378
    yyin = (FILE *) 0;
 
2379
    yyout = (FILE *) 0;
 
2380
#endif
 
2381
 
 
2382
    /* For future reference: Set errno on error, since we are called by
 
2383
     * yylex_init()
 
2384
     */
 
2385
    return 0;
 
2386
}
 
2387
 
 
2388
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
 
2389
int yylex_destroy  (void)
 
2390
{
 
2391
    
 
2392
    /* Pop the buffer stack, destroying each element. */
 
2393
        while(YY_CURRENT_BUFFER){
 
2394
                yy_delete_buffer(YY_CURRENT_BUFFER  );
 
2395
                YY_CURRENT_BUFFER_LVALUE = NULL;
 
2396
                yypop_buffer_state();
 
2397
        }
 
2398
 
 
2399
        /* Destroy the stack itself. */
 
2400
        yyfree((yy_buffer_stack) );
 
2401
        (yy_buffer_stack) = NULL;
 
2402
 
 
2403
    /* Reset the globals. This is important in a non-reentrant scanner so the next time
 
2404
     * yylex() is called, initialization will occur. */
 
2405
    yy_init_globals( );
 
2406
 
 
2407
    return 0;
 
2408
}
 
2409
 
 
2410
/*
 
2411
 * Internal utility routines.
 
2412
 */
 
2413
 
 
2414
#ifndef yytext_ptr
 
2415
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 
2416
{
 
2417
        register int i;
 
2418
        for ( i = 0; i < n; ++i )
 
2419
                s1[i] = s2[i];
 
2420
}
 
2421
#endif
 
2422
 
 
2423
#ifdef YY_NEED_STRLEN
 
2424
static int yy_flex_strlen (yyconst char * s )
 
2425
{
 
2426
        register int n;
 
2427
        for ( n = 0; s[n]; ++n )
 
2428
                ;
 
2429
 
 
2430
        return n;
 
2431
}
 
2432
#endif
 
2433
 
 
2434
void *yyalloc (yy_size_t  size )
 
2435
{
 
2436
        return (void *) malloc( size );
 
2437
}
 
2438
 
 
2439
void *yyrealloc  (void * ptr, yy_size_t  size )
 
2440
{
 
2441
        /* The cast to (char *) in the following accommodates both
 
2442
         * implementations that use char* generic pointers, and those
 
2443
         * that use void* generic pointers.  It works with the latter
 
2444
         * because both ANSI C and C++ allow castless assignment from
 
2445
         * any pointer type to void*, and deal with argument conversions
 
2446
         * as though doing an assignment.
 
2447
         */
 
2448
        return (void *) realloc( (char *) ptr, size );
 
2449
}
 
2450
 
 
2451
void yyfree (void * ptr )
 
2452
{
 
2453
        free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
 
2454
}
 
2455
 
 
2456
#define YYTABLES_NAME "yytables"
 
2457
 
 
2458
#line 124 "lex.l"
 
2459
 
 
2460
 
 
2461
 
 
2462
void freebufs() {
 
2463
        yy_delete_buffer(YY_CURRENT_BUFFER);
 
2464
}
 
2465
 
 
2466
void dummy() { yyunput(0, NULL); } /* shutup gcc */
 
2467
 
 
2468
/* vim: set ts=2: */
 
2469