~ubuntu-branches/ubuntu/maverick/libcgroup/maverick-proposed

« back to all changes in this revision

Viewing changes to src/lex.c

  • Committer: Bazaar Package Importer
  • Author(s): Dustin Kirkland
  • Date: 2009-08-26 11:29:17 UTC
  • Revision ID: james.westby@ubuntu.com-20090826112917-402ews2uj6v350d2
Tags: upstream-0.34
ImportĀ upstreamĀ versionĀ 0.34

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