Subversion Repositories Kolibri OS

Rev

Rev 5219 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5219 serge 1
 
2
3
 
4
5
 
6
7
 
8
#define YY_FLEX_MAJOR_VERSION 2
9
#define YY_FLEX_MINOR_VERSION 5
10
#define YY_FLEX_SUBMINOR_VERSION 35
11
#if YY_FLEX_SUBMINOR_VERSION > 0
12
#define FLEX_BETA
13
#endif
14
15
 
16
17
 
18
#include 
19
#include 
20
#include 
21
#include 
22
23
 
24
25
 
26
27
 
28
#define FLEXINT_H
29
30
 
31
32
 
33
34
 
35
 * if you want the limit (max/min) macros for int types.
36
 */
37
#ifndef __STDC_LIMIT_MACROS
38
#define __STDC_LIMIT_MACROS 1
39
#endif
40
41
 
42
typedef int8_t flex_int8_t;
43
typedef uint8_t flex_uint8_t;
44
typedef int16_t flex_int16_t;
45
typedef uint16_t flex_uint16_t;
46
typedef int32_t flex_int32_t;
47
typedef uint32_t flex_uint32_t;
48
typedef uint64_t flex_uint64_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
 
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
 
88
89
 
90
91
 
92
#define YY_USE_CONST
93
94
 
95
96
 
97
#if defined (__STDC__)
98
99
 
100
101
 
102
#endif	/* ! __cplusplus */
103
104
 
105
#define yyconst const
106
#else
107
#define yyconst
108
#endif
109
110
 
111
#define YY_NULL 0
112
113
 
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
 
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
 
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
 
134
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135
136
 
137
#define YY_NEW_FILE yyrestart(yyin  )
138
139
 
140
141
 
142
#ifndef YY_BUF_SIZE
143
#define YY_BUF_SIZE 16384
144
#endif
145
146
 
147
 */
148
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149
150
 
151
#define YY_TYPEDEF_YY_BUFFER_STATE
152
typedef struct yy_buffer_state *YY_BUFFER_STATE;
153
#endif
154
155
 
156
#define YY_TYPEDEF_YY_SIZE_T
157
typedef size_t yy_size_t;
158
#endif
159
160
 
161
162
 
163
164
 
165
#define EOB_ACT_END_OF_FILE 1
166
#define EOB_ACT_LAST_MATCH 2
167
168
 
169
170
 
171
#define yyless(n) \
172
	do \
173
		{ \
174
		/* Undo effects of setting up yytext. */ \
175
        int yyless_macro_arg = (n); \
176
        YY_LESS_LINENO(yyless_macro_arg);\
177
		*yy_cp = (yy_hold_char); \
178
		YY_RESTORE_YY_MORE_OFFSET \
179
		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
180
		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
181
		} \
182
	while ( 0 )
183
184
 
185
186
 
187
#define YY_STRUCT_YY_BUFFER_STATE
188
struct yy_buffer_state
189
	{
190
	FILE *yy_input_file;
191
192
 
193
	char *yy_buf_pos;		/* current position in input buffer */
194
195
 
196
	 * characters.
197
	 */
198
	yy_size_t yy_buf_size;
199
200
 
201
	 * characters.
202
	 */
203
	yy_size_t yy_n_chars;
204
205
 
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
 
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
 
219
	 * If so, '^' rules will be active on the next match, otherwise
220
	 * not.
221
	 */
222
	int yy_at_bol;
223
224
 
225
    int yy_bs_column; /**< The column count. */
226
227
 
228
	 * end of it.
229
	 */
230
	int yy_fill_buffer;
231
232
 
233
234
 
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
 
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
 
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
 
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
 
272
static char yy_hold_char;
273
static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
274
yy_size_t yyleng;
275
276
 
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
 
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
 
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
 
295
static void yy_load_buffer_state (void );
296
static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
297
298
 
299
300
 
301
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
302
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
303
304
 
305
void *yyrealloc (void *,yy_size_t  );
306
void yyfree (void *  );
307
308
 
309
310
 
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
 
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
 
331
332
 
333
334
 
335
336
 
337
338
 
339
340
 
341
342
 
343
344
 
345
#define yytext_ptr yytext
346
347
 
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
 
353
 * corresponding action - sets up yytext.
354
 */
355
#define YY_DO_BEFORE_ACTION \
356
	(yytext_ptr) = yy_bp; \
357
	yyleng = (yy_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
 
363
#define YY_END_OF_BUFFER 41
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[177] =
372
    {   0,
373
        0,    0,   41,   40,   39,   38,   35,   32,   33,   36,
374
       40,   34,   37,   35,   35,   35,   35,   35,   35,   35,
375
       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
376
       35,   35,   35,   35,   35,   35,   36,   31,   37,   35,
377
       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
378
       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
379
       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
380
       35,   35,    7,   35,   35,   35,   35,   35,   35,   35,
381
       35,   35,   35,   35,   35,   35,   22,   35,   35,   35,
382
       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
383
384
 
385
       35,   35,   35,   35,   35,   35,   35,   25,   26,   27,
386
       35,   30,   35,   35,   35,    3,   35,   35,   35,   35,
387
       35,   35,   35,   35,   35,   18,   35,   35,   35,   35,
388
       35,   35,   35,    1,    2,    4,    5,   35,   35,   35,
389
       35,   35,   16,   17,   19,   20,   35,   35,   35,   35,
390
       35,   35,    8,    9,   13,   14,   35,   23,   24,   28,
391
       29,   35,   35,    6,   21,    0
392
    } ;
393
394
 
395
    {   0,
396
        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
397
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
398
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
399
        1,    3,    1,    1,    1,    4,    1,    1,    1,    5,
400
        6,    7,    8,    9,    4,    4,    4,    4,    4,    4,
401
        4,    4,    4,    4,    4,    4,    4,    4,   10,    1,
402
        1,    1,    1,    1,   11,   12,   13,   14,   15,   16,
403
        4,   17,   18,    4,    4,   19,   20,   21,   22,   23,
404
        4,   24,   25,   26,   27,   28,    4,   29,   30,    4,
405
        1,    4,    1,    1,    4,    1,   31,   32,   33,   34,
406
407
 
408
       42,   43,    4,   44,   45,   46,   47,   48,    4,   49,
409
       50,    4,    1,    1,    1,    1,    1,    1,    1,    1,
410
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
411
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
412
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
413
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
414
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
415
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
416
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
417
418
 
419
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
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,    1,    1,    1,    1,    1,    1,    1,
423
        1,    1,    1,    1,    1
424
    } ;
425
426
 
427
    {   0,
428
        1,    2,    1,    3,    1,    1,    1,    1,    1,    1,
429
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
430
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
431
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
432
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3
433
    } ;
434
435
 
436
    {   0,
437
        0,    0,  193,  194,  194,  194,    0,  194,  194,    0,
438
      190,  194,    0,  177,   32,   37,   32,  163,  174,  170,
439
      164,  171,  174,  169,  149,   15,   22,   17,  135,  146,
440
      142,  136,  143,  146,  141,    0,    0,  194,    0,  161,
441
      159,  158,  153,  147,  156,  143,  149,  148,  141,  150,
442
      141,  135,  138,  127,  125,  124,  119,  113,  122,  109,
443
      115,  114,  107,  116,  107,  101,  104,   43,  136,  135,
444
      130,  129,    0,  119,  123,  118,  114,  118,  119,  122,
445
      124,   25,  104,  103,   98,   97,    0,   87,   91,   86,
446
       82,   86,   87,   90,   92,  105,  100,   97,   94,   93,
447
448
 
449
       70,   67,   64,   63,   75,   76,   72,    0,    0,    0,
450
       74,    0,   62,   91,   88,    0,   86,   85,   73,   85,
451
       79,   83,   70,   62,   59,    0,   57,   56,   44,   56,
452
       50,   54,   41,    0,    0,    0,    0,   63,   58,   59,
453
       67,   66,    0,    0,    0,    0,   38,   33,   34,   42,
454
       41,   51,    0,    0,    0,    0,   30,    0,    0,    0,
455
        0,   43,   21,    0,    0,  194,   65,   66,   69
456
    } ;
457
458
 
459
    {   0,
460
      176,    1,  176,  176,  176,  176,  177,  176,  176,  178,
461
      176,  176,  179,  177,  177,  177,  177,  177,  177,  177,
462
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
463
      177,  177,  177,  177,  177,  177,  178,  176,  179,  177,
464
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
465
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
466
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
467
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
468
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
469
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
470
471
 
472
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
473
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
474
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
475
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
476
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
477
      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
478
      177,  177,  177,  177,  177,    0,  176,  176,  176
479
    } ;
480
481
 
482
    {   0,
483
        4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
484
       14,    7,   15,   16,   17,   18,   19,    7,   20,    7,
485
        7,   21,    7,   22,   23,    7,    7,   24,    7,    7,
486
       25,    7,   26,   27,   28,   29,   30,    7,   31,    7,
487
        7,   32,    7,   33,   34,    7,    7,   35,    7,    7,
488
       41,   43,   45,   55,   44,   42,   57,   59,   56,   58,
489
       46,   96,   97,  110,  111,   60,   37,   36,   37,   39,
490
      175,   39,  174,  173,  172,  171,  170,  169,  168,  167,
491
      166,  165,  164,  163,  162,  161,  160,  159,  158,  157,
492
      156,  155,  154,  153,  152,  151,  150,  149,  148,  147,
493
494
 
495
      136,  135,  134,  133,  132,  131,  130,  129,  128,  127,
496
      126,  125,  124,  123,  122,  121,  120,  119,  118,  117,
497
      116,  115,  114,  113,  112,  109,  108,  107,  106,  105,
498
      104,  103,  102,  101,  100,   99,   98,   95,   94,   93,
499
       92,   91,   90,   89,   88,   87,   86,   85,   84,   83,
500
       82,   81,   80,   79,   78,   77,   76,   75,   74,   73,
501
       72,   71,   70,   69,   68,   67,   66,   65,   64,   63,
502
       62,   61,   54,   53,   52,   51,   50,   49,   48,   47,
503
       40,   38,  176,    3,  176,  176,  176,  176,  176,  176,
504
505
 
506
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
507
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
508
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
509
      176,  176,  176,  176
510
    } ;
511
512
 
513
    {   0,
514
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
515
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
516
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
517
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
518
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
519
       15,   16,   17,   26,   16,   15,   27,   28,   26,   27,
520
       17,   68,   68,   82,   82,   28,  178,  177,  178,  179,
521
      173,  179,  172,  167,  162,  161,  160,  159,  158,  157,
522
      152,  151,  150,  149,  148,  143,  142,  141,  140,  139,
523
      138,  137,  135,  134,  133,  132,  131,  130,  129,  128,
524
525
 
526
      112,  111,  110,  109,  107,  103,  102,  101,  100,   99,
527
       98,   97,   96,   95,   94,   93,   92,   91,   90,   89,
528
       88,   86,   85,   84,   83,   81,   80,   79,   78,   77,
529
       76,   75,   74,   72,   71,   70,   69,   67,   66,   65,
530
       64,   63,   62,   61,   60,   59,   58,   57,   56,   55,
531
       54,   53,   52,   51,   50,   49,   48,   47,   46,   45,
532
       44,   43,   42,   41,   40,   35,   34,   33,   32,   31,
533
       30,   29,   25,   24,   23,   22,   21,   20,   19,   18,
534
       14,   11,    3,  176,  176,  176,  176,  176,  176,  176,
535
536
 
537
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
538
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
539
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
540
      176,  176,  176,  176
541
    } ;
542
543
 
544
static char *yy_last_accepting_cpos;
545
546
 
547
int yy_flex_debug = 0;
548
549
 
550
 * any uses of REJECT which flex missed.
551
 */
552
#define REJECT reject_used_but_not_detected
553
#define yymore() yymore_used_but_not_detected
554
#define YY_MORE_ADJ 0
555
#define YY_RESTORE_YY_MORE_OFFSET
556
char *yytext;
557
#line 1 "arlex.l"
558
#define YY_NO_INPUT 1
559
#line 4 "arlex.l"
560
/* arlex.l - Strange script language lexer */
561
562
 
6324 serge 563
5219 serge 564
 
565
566
 
567
   it under the terms of the GNU General Public License as published by
568
   the Free Software Foundation; either version 3 of the License, or
569
   (at your option) any later version.
570
571
 
572
   but WITHOUT ANY WARRANTY; without even the implied warranty of
573
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
574
   GNU General Public License for more details.
575
576
 
577
   along with this program; if not, write to the Free Software
578
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
579
   MA 02110-1301, USA.  */
580
581
 
582
 
583
584
 
585
#include "ansidecl.h"
586
#include "libiberty.h"
587
#include "arparse.h"
588
589
 
590
#define YY_NO_UNPUT
591
#endif
592
593
 
594
595
 
596
#line 598 "arlex.c"
6324 serge 597
5219 serge 598
 
599
600
 
601
/* Special case for "unistd.h", since it is non-ANSI. We include it way
602
 * down here because we want the user's section 1 to have been scanned first.
603
 * The user has a chance to override it with an option.
604
 */
605
#include 
606
#endif
607
608
 
609
#define YY_EXTRA_TYPE void *
610
#endif
611
612
 
613
614
 
615
   These are made visible to non-reentrant scanners for convenience. */
616
617
 
618
619
 
620
621
 
622
623
 
624
625
 
626
627
 
628
629
 
630
631
 
632
633
 
634
635
 
636
637
 
638
639
 
640
641
 
642
643
 
644
 * section 1.
645
 */
646
647
 
648
#ifdef __cplusplus
649
extern "C" int yywrap (void );
650
#else
651
extern int yywrap (void );
652
#endif
653
#endif
654
655
 
656
static void yy_flex_strncpy (char *,yyconst char *,int );
657
#endif
658
659
 
660
static int yy_flex_strlen (yyconst char * );
661
#endif
662
663
 
664
665
 
666
static int yyinput (void );
667
#else
668
static int input (void );
669
#endif
670
671
 
672
673
 
674
#ifndef YY_READ_BUF_SIZE
675
#define YY_READ_BUF_SIZE 8192
676
#endif
677
678
 
679
#ifndef ECHO
680
/* This used to be an fputs(), but since the string might contain NUL's,
681
 * we now use fwrite().
682
 */
683
#define ECHO fwrite( yytext, yyleng, 1, yyout )
684
#endif
685
686
 
687
 * is returned in "result".
688
 */
689
#ifndef YY_INPUT
690
#define YY_INPUT(buf,result,max_size) \
691
	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
692
		{ \
693
		int c = '*'; \
694
		yy_size_t n; \
695
		for ( n = 0; n < max_size && \
696
			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
697
			buf[n] = (char) c; \
698
		if ( c == '\n' ) \
699
			buf[n++] = (char) c; \
700
		if ( c == EOF && ferror( yyin ) ) \
701
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
702
		result = n; \
703
		} \
704
	else \
705
		{ \
706
		errno=0; \
707
		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
708
			{ \
709
			if( errno != EINTR) \
710
				{ \
711
				YY_FATAL_ERROR( "input in flex scanner failed" ); \
712
				break; \
713
				} \
714
			errno=0; \
715
			clearerr(yyin); \
716
			} \
717
		}\
718
\
719
720
 
721
722
 
723
 * we don't want an extra ';' after the "return" because that will cause
724
 * some compilers to complain about unreachable statements.
725
 */
726
#ifndef yyterminate
727
#define yyterminate() return YY_NULL
728
#endif
729
730
 
731
#ifndef YY_START_STACK_INCR
732
#define YY_START_STACK_INCR 25
733
#endif
734
735
 
736
#ifndef YY_FATAL_ERROR
737
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
738
#endif
739
740
 
741
742
 
743
 * easily add parameters.
744
 */
745
#ifndef YY_DECL
746
#define YY_DECL_IS_OURS 1
747
748
 
749
750
 
751
#endif /* !YY_DECL */
752
753
 
754
 * have been set up.
755
 */
756
#ifndef YY_USER_ACTION
757
#define YY_USER_ACTION
758
#endif
759
760
 
761
#ifndef YY_BREAK
762
#define YY_BREAK break;
763
#endif
764
765
 
766
	YY_USER_ACTION
767
768
 
769
 */
770
YY_DECL
771
{
772
	register yy_state_type yy_current_state;
773
	register char *yy_cp, *yy_bp;
774
	register int yy_act;
775
776
 
6324 serge 777
5219 serge 778
 
779
 
6324 serge 780
5219 serge 781
 
782
		{
783
		(yy_init) = 1;
784
785
 
786
		YY_USER_INIT;
787
#endif
788
789
 
790
			(yy_start) = 1;	/* first start state */
791
792
 
793
			yyin = stdin;
794
795
 
796
			yyout = stdout;
797
798
 
799
			yyensure_buffer_stack ();
800
			YY_CURRENT_BUFFER_LVALUE =
801
				yy_create_buffer(yyin,YY_BUF_SIZE );
802
		}
803
804
 
805
		}
806
807
 
808
		{
809
		yy_cp = (yy_c_buf_p);
810
811
 
812
		*yy_cp = (yy_hold_char);
813
814
 
815
		 * the current run.
816
		 */
817
		yy_bp = yy_cp;
818
819
 
820
yy_match:
821
		do
822
			{
823
			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
824
			if ( yy_accept[yy_current_state] )
825
				{
826
				(yy_last_accepting_state) = yy_current_state;
827
				(yy_last_accepting_cpos) = yy_cp;
828
				}
829
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
830
				{
831
				yy_current_state = (int) yy_def[yy_current_state];
832
				if ( yy_current_state >= 177 )
833
					yy_c = yy_meta[(unsigned int) yy_c];
834
				}
835
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
836
			++yy_cp;
837
			}
838
		while ( yy_base[yy_current_state] != 194 );
839
840
 
841
		yy_act = yy_accept[yy_current_state];
842
		if ( yy_act == 0 )
843
			{ /* have to back up */
844
			yy_cp = (yy_last_accepting_cpos);
845
			yy_current_state = (yy_last_accepting_state);
846
			yy_act = yy_accept[yy_current_state];
847
			}
848
849
 
850
851
 
852
853
 
854
	{ /* beginning of action switch */
855
			case 0: /* must back up */
856
			/* undo the effects of YY_DO_BEFORE_ACTION */
857
			*yy_cp = (yy_hold_char);
858
			yy_cp = (yy_last_accepting_cpos);
859
			yy_current_state = (yy_last_accepting_state);
860
			goto yy_find_action;
861
862
 
863
YY_RULE_SETUP
864
#line 47 "arlex.l"
6324 serge 865
{ return ADDLIB; }
5219 serge 866
	YY_BREAK
867
case 2:
868
YY_RULE_SETUP
869
#line 48 "arlex.l"
6324 serge 870
{ return ADDMOD; }
5219 serge 871
	YY_BREAK
872
case 3:
873
YY_RULE_SETUP
874
#line 49 "arlex.l"
6324 serge 875
{ return CLEAR; }
5219 serge 876
	YY_BREAK
877
case 4:
878
YY_RULE_SETUP
879
#line 50 "arlex.l"
6324 serge 880
{ return CREATE; }
5219 serge 881
	YY_BREAK
882
case 5:
883
YY_RULE_SETUP
884
#line 51 "arlex.l"
6324 serge 885
{ return DELETE; }
5219 serge 886
	YY_BREAK
887
case 6:
888
YY_RULE_SETUP
889
#line 52 "arlex.l"
6324 serge 890
{ return DIRECTORY; }
5219 serge 891
	YY_BREAK
892
case 7:
893
YY_RULE_SETUP
894
#line 53 "arlex.l"
6324 serge 895
{ return END; }
5219 serge 896
	YY_BREAK
897
case 8:
898
YY_RULE_SETUP
899
#line 54 "arlex.l"
6324 serge 900
{ return EXTRACT; }
5219 serge 901
	YY_BREAK
902
case 9:
903
YY_RULE_SETUP
904
#line 55 "arlex.l"
6324 serge 905
{ return FULLDIR; }
5219 serge 906
	YY_BREAK
907
case 10:
908
YY_RULE_SETUP
909
#line 56 "arlex.l"
6324 serge 910
{ return HELP; }
5219 serge 911
	YY_BREAK
912
case 11:
913
YY_RULE_SETUP
914
#line 57 "arlex.l"
6324 serge 915
{ return LIST; }
5219 serge 916
	YY_BREAK
917
case 12:
918
YY_RULE_SETUP
919
#line 58 "arlex.l"
6324 serge 920
{ return OPEN; }
5219 serge 921
	YY_BREAK
922
case 13:
923
YY_RULE_SETUP
924
#line 59 "arlex.l"
6324 serge 925
{ return REPLACE; }
5219 serge 926
	YY_BREAK
927
case 14:
928
YY_RULE_SETUP
929
#line 60 "arlex.l"
6324 serge 930
{ return VERBOSE; }
5219 serge 931
	YY_BREAK
932
case 15:
933
YY_RULE_SETUP
934
#line 61 "arlex.l"
6324 serge 935
{ return SAVE; }
5219 serge 936
	YY_BREAK
937
case 16:
938
YY_RULE_SETUP
939
#line 62 "arlex.l"
6324 serge 940
{ return ADDLIB; }
5219 serge 941
	YY_BREAK
942
case 17:
943
YY_RULE_SETUP
944
#line 63 "arlex.l"
6324 serge 945
{ return ADDMOD; }
5219 serge 946
	YY_BREAK
947
case 18:
948
YY_RULE_SETUP
949
#line 64 "arlex.l"
6324 serge 950
{ return CLEAR; }
5219 serge 951
	YY_BREAK
952
case 19:
953
YY_RULE_SETUP
954
#line 65 "arlex.l"
6324 serge 955
{ return CREATE; }
5219 serge 956
	YY_BREAK
957
case 20:
958
YY_RULE_SETUP
959
#line 66 "arlex.l"
6324 serge 960
{ return DELETE; }
5219 serge 961
	YY_BREAK
962
case 21:
963
YY_RULE_SETUP
964
#line 67 "arlex.l"
6324 serge 965
{ return DIRECTORY; }
5219 serge 966
	YY_BREAK
967
case 22:
968
YY_RULE_SETUP
969
#line 68 "arlex.l"
6324 serge 970
{ return END; }
5219 serge 971
	YY_BREAK
972
case 23:
973
YY_RULE_SETUP
974
#line 69 "arlex.l"
6324 serge 975
{ return EXTRACT; }
5219 serge 976
	YY_BREAK
977
case 24:
978
YY_RULE_SETUP
979
#line 70 "arlex.l"
6324 serge 980
{ return FULLDIR; }
5219 serge 981
	YY_BREAK
982
case 25:
983
YY_RULE_SETUP
984
#line 71 "arlex.l"
6324 serge 985
{ return HELP; }
5219 serge 986
	YY_BREAK
987
case 26:
988
YY_RULE_SETUP
989
#line 72 "arlex.l"
6324 serge 990
{ return LIST; }
5219 serge 991
	YY_BREAK
992
case 27:
993
YY_RULE_SETUP
994
#line 73 "arlex.l"
6324 serge 995
{ return OPEN; }
5219 serge 996
	YY_BREAK
997
case 28:
998
YY_RULE_SETUP
999
#line 74 "arlex.l"
6324 serge 1000
{ return REPLACE; }
5219 serge 1001
	YY_BREAK
1002
case 29:
1003
YY_RULE_SETUP
1004
#line 75 "arlex.l"
6324 serge 1005
{ return VERBOSE; }
5219 serge 1006
	YY_BREAK
1007
case 30:
1008
YY_RULE_SETUP
1009
#line 76 "arlex.l"
6324 serge 1010
{ return SAVE; }
5219 serge 1011
	YY_BREAK
1012
case 31:
1013
/* rule 31 can match eol */
1014
YY_RULE_SETUP
1015
#line 77 "arlex.l"
6324 serge 1016
{ linenumber ++; }
5219 serge 1017
	YY_BREAK
1018
case 32:
1019
YY_RULE_SETUP
1020
#line 78 "arlex.l"
6324 serge 1021
{ return '('; }
5219 serge 1022
	YY_BREAK
1023
case 33:
1024
YY_RULE_SETUP
1025
#line 79 "arlex.l"
6324 serge 1026
{ return ')'; }
5219 serge 1027
	YY_BREAK
1028
case 34:
1029
YY_RULE_SETUP
1030
#line 80 "arlex.l"
6324 serge 1031
{ return ','; }
5219 serge 1032
	YY_BREAK
1033
case 35:
1034
YY_RULE_SETUP
1035
#line 81 "arlex.l"
6324 serge 1036
{
5219 serge 1037
		yylval.name =  xstrdup (yytext);
1038
		return FILENAME;
1039
		}
1040
	YY_BREAK
1041
case 36:
1042
YY_RULE_SETUP
1043
#line 85 "arlex.l"
6324 serge 1044
{ }
5219 serge 1045
	YY_BREAK
1046
case 37:
1047
YY_RULE_SETUP
1048
#line 86 "arlex.l"
6324 serge 1049
{ }
5219 serge 1050
	YY_BREAK
1051
case 38:
1052
YY_RULE_SETUP
1053
#line 87 "arlex.l"
6324 serge 1054
{ }
5219 serge 1055
	YY_BREAK
1056
case 39:
1057
/* rule 39 can match eol */
1058
YY_RULE_SETUP
1059
#line 88 "arlex.l"
6324 serge 1060
{ linenumber ++; return NEWLINE; }
5219 serge 1061
	YY_BREAK
1062
case 40:
1063
YY_RULE_SETUP
1064
#line 90 "arlex.l"
6324 serge 1065
ECHO;
5219 serge 1066
	YY_BREAK
1067
#line 1069 "arlex.c"
6324 serge 1068
case YY_STATE_EOF(INITIAL):
5219 serge 1069
	yyterminate();
1070
1071
 
1072
		{
1073
		/* Amount of text matched not including the EOB char. */
1074
		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1075
1076
 
1077
		*yy_cp = (yy_hold_char);
1078
		YY_RESTORE_YY_MORE_OFFSET
1079
1080
 
1081
			{
1082
			/* We're scanning a new file or input source.  It's
1083
			 * possible that this happened because the user
1084
			 * just pointed yyin at a new source and called
1085
			 * yylex().  If so, then we have to assure
1086
			 * consistency between YY_CURRENT_BUFFER and our
1087
			 * globals.  Here is the right place to do so, because
1088
			 * this is the first action (other than possibly a
1089
			 * back-up) that will match for the new input source.
1090
			 */
1091
			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1092
			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1093
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1094
			}
1095
1096
 
1097
		 * of the first EOB in the buffer, since yy_c_buf_p will
1098
		 * already have been incremented past the NUL character
1099
		 * (since all states make transitions on EOB to the
1100
		 * end-of-buffer state).  Contrast this with the test
1101
		 * in input().
1102
		 */
1103
		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1104
			{ /* This was really a NUL. */
1105
			yy_state_type yy_next_state;
1106
1107
 
1108
1109
 
1110
1111
 
1112
			 * transition.  We couldn't have
1113
			 * yy_get_previous_state() go ahead and do it
1114
			 * for us because it doesn't know how to deal
1115
			 * with the possibility of jamming (and we don't
1116
			 * want to build jamming into it because then it
1117
			 * will run more slowly).
1118
			 */
1119
1120
 
1121
1122
 
1123
1124
 
1125
				{
1126
				/* Consume the NUL. */
1127
				yy_cp = ++(yy_c_buf_p);
1128
				yy_current_state = yy_next_state;
1129
				goto yy_match;
1130
				}
1131
1132
 
1133
				{
1134
				yy_cp = (yy_c_buf_p);
1135
				goto yy_find_action;
1136
				}
1137
			}
1138
1139
 
1140
			{
1141
			case EOB_ACT_END_OF_FILE:
1142
				{
1143
				(yy_did_buffer_switch_on_eof) = 0;
1144
1145
 
1146
					{
1147
					/* Note: because we've taken care in
1148
					 * yy_get_next_buffer() to have set up
1149
					 * yytext, we can now set up
1150
					 * yy_c_buf_p so that if some total
1151
					 * hoser (like flex itself) wants to
1152
					 * call the scanner after we return the
1153
					 * YY_NULL, it'll still work - another
1154
					 * YY_NULL will get returned.
1155
					 */
1156
					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1157
1158
 
1159
					goto do_action;
1160
					}
1161
1162
 
1163
					{
1164
					if ( ! (yy_did_buffer_switch_on_eof) )
1165
						YY_NEW_FILE;
1166
					}
1167
				break;
1168
				}
1169
1170
 
1171
				(yy_c_buf_p) =
1172
					(yytext_ptr) + yy_amount_of_matched_text;
1173
1174
 
1175
1176
 
1177
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1178
				goto yy_match;
1179
1180
 
1181
				(yy_c_buf_p) =
1182
				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1183
1184
 
1185
1186
 
1187
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1188
				goto yy_find_action;
1189
			}
1190
		break;
1191
		}
1192
1193
 
1194
		YY_FATAL_ERROR(
1195
			"fatal flex scanner internal error--no action found" );
1196
	} /* end of action switch */
1197
		} /* end of scanning one token */
1198
} /* end of yylex */
1199
1200
 
1201
 *
1202
 * Returns a code representing an action:
1203
 *	EOB_ACT_LAST_MATCH -
1204
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1205
 *	EOB_ACT_END_OF_FILE - end of file
1206
 */
1207
static int yy_get_next_buffer (void)
1208
{
1209
    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1210
	register char *source = (yytext_ptr);
1211
	register int number_to_move, i;
1212
	int ret_val;
1213
1214
 
1215
		YY_FATAL_ERROR(
1216
		"fatal flex scanner internal error--end of buffer missed" );
1217
1218
 
1219
		{ /* Don't try to fill the buffer, so this is an EOF. */
1220
		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1221
			{
1222
			/* We matched a single character, the EOB, so
1223
			 * treat this as a final EOF.
1224
			 */
1225
			return EOB_ACT_END_OF_FILE;
1226
			}
1227
1228
 
1229
			{
1230
			/* We matched some text prior to the EOB, first
1231
			 * process it.
1232
			 */
1233
			return EOB_ACT_LAST_MATCH;
1234
			}
1235
		}
1236
1237
 
1238
1239
 
1240
	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1241
1242
 
1243
		*(dest++) = *(source++);
1244
1245
 
1246
		/* don't do the read, it's not guaranteed to return an EOF,
1247
		 * just force an EOF
1248
		 */
1249
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1250
1251
 
1252
		{
1253
			yy_size_t num_to_read =
1254
			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1255
1256
 
1257
			{ /* Not enough room in the buffer - grow it. */
1258
1259
 
1260
			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1261
1262
 
1263
				(int) ((yy_c_buf_p) - b->yy_ch_buf);
1264
1265
 
1266
				{
1267
				yy_size_t new_size = b->yy_buf_size * 2;
1268
1269
 
1270
					b->yy_buf_size += b->yy_buf_size / 8;
1271
				else
1272
					b->yy_buf_size *= 2;
1273
1274
 
1275
					/* Include room in for 2 EOB chars. */
1276
					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1277
				}
1278
			else
1279
				/* Can't grow it, we don't own it. */
1280
				b->yy_ch_buf = 0;
1281
1282
 
1283
				YY_FATAL_ERROR(
1284
				"fatal error - scanner input buffer overflow" );
1285
1286
 
1287
1288
 
1289
						number_to_move - 1;
1290
1291
 
1292
1293
 
1294
			num_to_read = YY_READ_BUF_SIZE;
1295
1296
 
1297
		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1298
			(yy_n_chars), num_to_read );
1299
1300
 
1301
		}
1302
1303
 
1304
		{
1305
		if ( number_to_move == YY_MORE_ADJ )
1306
			{
1307
			ret_val = EOB_ACT_END_OF_FILE;
1308
			yyrestart(yyin  );
1309
			}
1310
1311
 
1312
			{
1313
			ret_val = EOB_ACT_LAST_MATCH;
1314
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1315
				YY_BUFFER_EOF_PENDING;
1316
			}
1317
		}
1318
1319
 
1320
		ret_val = EOB_ACT_CONTINUE_SCAN;
1321
1322
 
1323
		/* Extend the array by 50%, plus the number we really need. */
1324
		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1325
		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1326
		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1327
			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1328
	}
1329
1330
 
1331
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1332
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1333
1334
 
1335
1336
 
1337
}
1338
1339
 
1340
1341
 
1342
{
1343
	register yy_state_type yy_current_state;
1344
	register char *yy_cp;
1345
1346
 
1347
1348
 
1349
		{
1350
		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1351
		if ( yy_accept[yy_current_state] )
1352
			{
1353
			(yy_last_accepting_state) = yy_current_state;
1354
			(yy_last_accepting_cpos) = yy_cp;
1355
			}
1356
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1357
			{
1358
			yy_current_state = (int) yy_def[yy_current_state];
1359
			if ( yy_current_state >= 177 )
1360
				yy_c = yy_meta[(unsigned int) yy_c];
1361
			}
1362
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1363
		}
1364
1365
 
1366
}
1367
1368
 
1369
 *
1370
 * synopsis
1371
 *	next_state = yy_try_NUL_trans( current_state );
1372
 */
1373
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1374
{
1375
	register int yy_is_jam;
1376
    	register char *yy_cp = (yy_c_buf_p);
1377
1378
 
1379
	if ( yy_accept[yy_current_state] )
1380
		{
1381
		(yy_last_accepting_state) = yy_current_state;
1382
		(yy_last_accepting_cpos) = yy_cp;
1383
		}
1384
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1385
		{
1386
		yy_current_state = (int) yy_def[yy_current_state];
1387
		if ( yy_current_state >= 177 )
1388
			yy_c = yy_meta[(unsigned int) yy_c];
1389
		}
1390
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1391
	yy_is_jam = (yy_current_state == 176);
1392
1393
 
1394
}
1395
1396
 
1397
#ifdef __cplusplus
1398
    static int yyinput (void)
1399
#else
1400
    static int input  (void)
1401
#endif
1402
1403
 
1404
	int c;
1405
1406
 
1407
1408
 
1409
		{
1410
		/* yy_c_buf_p now points to the character we want to return.
1411
		 * If this occurs *before* the EOB characters, then it's a
1412
		 * valid NUL; if not, then we've hit the end of the buffer.
1413
		 */
1414
		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1415
			/* This was really a NUL. */
1416
			*(yy_c_buf_p) = '\0';
1417
1418
 
1419
			{ /* need more input */
1420
			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
1421
			++(yy_c_buf_p);
1422
1423
 
1424
				{
1425
				case EOB_ACT_LAST_MATCH:
1426
					/* This happens because yy_g_n_b()
1427
					 * sees that we've accumulated a
1428
					 * token and flags that we need to
1429
					 * try matching the token before
1430
					 * proceeding.  But for input(),
1431
					 * there's no matching to consider.
1432
					 * So convert the EOB_ACT_LAST_MATCH
1433
					 * to EOB_ACT_END_OF_FILE.
1434
					 */
1435
1436
 
1437
					yyrestart(yyin );
1438
1439
 
1440
1441
 
1442
					{
1443
					if ( yywrap( ) )
1444
						return 0;
1445
1446
 
1447
						YY_NEW_FILE;
1448
#ifdef __cplusplus
1449
					return yyinput();
1450
#else
1451
					return input();
1452
#endif
1453
					}
1454
1455
 
1456
					(yy_c_buf_p) = (yytext_ptr) + offset;
1457
					break;
1458
				}
1459
			}
1460
		}
1461
1462
 
1463
	*(yy_c_buf_p) = '\0';	/* preserve yytext */
1464
	(yy_hold_char) = *++(yy_c_buf_p);
1465
1466
 
1467
}
1468
#endif	/* ifndef YY_NO_INPUT */
1469
1470
 
1471
 * @param input_file A readable stream.
1472
 *
1473
 * @note This function does not reset the start condition to @c INITIAL .
1474
 */
1475
    void yyrestart  (FILE * input_file )
1476
{
1477
1478
 
1479
        yyensure_buffer_stack ();
1480
		YY_CURRENT_BUFFER_LVALUE =
1481
            yy_create_buffer(yyin,YY_BUF_SIZE );
1482
	}
1483
1484
 
1485
	yy_load_buffer_state( );
1486
}
1487
1488
 
1489
 * @param new_buffer The new input buffer.
1490
 *
1491
 */
1492
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1493
{
1494
1495
 
1496
	 * with
1497
	 *		yypop_buffer_state();
1498
	 *		yypush_buffer_state(new_buffer);
1499
     */
1500
	yyensure_buffer_stack ();
1501
	if ( YY_CURRENT_BUFFER == new_buffer )
1502
		return;
1503
1504
 
1505
		{
1506
		/* Flush out information for old buffer. */
1507
		*(yy_c_buf_p) = (yy_hold_char);
1508
		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1509
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1510
		}
1511
1512
 
1513
	yy_load_buffer_state( );
1514
1515
 
1516
	 * EOF (yywrap()) processing, but the only time this flag
1517
	 * is looked at is after yywrap() is called, so it's safe
1518
	 * to go ahead and always set it.
1519
	 */
1520
	(yy_did_buffer_switch_on_eof) = 1;
1521
}
1522
1523
 
1524
{
1525
    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1526
	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1527
	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1528
	(yy_hold_char) = *(yy_c_buf_p);
1529
}
1530
1531
 
1532
 * @param file A readable stream.
1533
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1534
 *
1535
 * @return the allocated buffer state.
1536
 */
1537
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
1538
{
1539
	YY_BUFFER_STATE b;
1540
1541
 
1542
	if ( ! b )
1543
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1544
1545
 
1546
1547
 
1548
	 * we need to put in 2 end-of-buffer characters.
1549
	 */
1550
	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
1551
	if ( ! b->yy_ch_buf )
1552
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1553
1554
 
1555
1556
 
1557
1558
 
1559
}
1560
1561
 
1562
 * @param b a buffer created with yy_create_buffer()
1563
 *
1564
 */
1565
    void yy_delete_buffer (YY_BUFFER_STATE  b )
1566
{
1567
1568
 
1569
		return;
1570
1571
 
1572
		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1573
1574
 
1575
		yyfree((void *) b->yy_ch_buf  );
1576
1577
 
1578
}
1579
1580
 
1581
extern int isatty (int );
1582
#endif /* __cplusplus */
1583
1584
 
1585
 * This function is sometimes called more than once on the same buffer,
1586
 * such as during a yyrestart() or at EOF.
1587
 */
1588
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1589
1590
 
1591
	int oerrno = errno;
1592
1593
 
1594
1595
 
1596
	b->yy_fill_buffer = 1;
1597
1598
 
1599
     * called from yyrestart() or through yy_get_next_buffer.
1600
     * In that case, we don't want to reset the lineno or column.
1601
     */
1602
    if (b != YY_CURRENT_BUFFER){
1603
        b->yy_bs_lineno = 1;
1604
        b->yy_bs_column = 0;
1605
    }
1606
1607
 
1608
1609
 
1610
}
1611
1612
 
1613
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1614
 *
1615
 */
1616
    void yy_flush_buffer (YY_BUFFER_STATE  b )
1617
{
1618
    	if ( ! b )
1619
		return;
1620
1621
 
1622
1623
 
1624
	 * a transition to the end-of-buffer state.  The second causes
1625
	 * a jam in that state.
1626
	 */
1627
	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1628
	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1629
1630
 
1631
1632
 
1633
	b->yy_buffer_status = YY_BUFFER_NEW;
1634
1635
 
1636
		yy_load_buffer_state( );
1637
}
1638
1639
 
1640
 *  the current state. This function will allocate the stack
1641
 *  if necessary.
1642
 *  @param new_buffer The new state.
1643
 *
1644
 */
1645
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1646
{
1647
    	if (new_buffer == NULL)
1648
		return;
1649
1650
 
1651
1652
 
1653
	if ( YY_CURRENT_BUFFER )
1654
		{
1655
		/* Flush out information for old buffer. */
1656
		*(yy_c_buf_p) = (yy_hold_char);
1657
		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1658
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1659
		}
1660
1661
 
1662
	if (YY_CURRENT_BUFFER)
1663
		(yy_buffer_stack_top)++;
1664
	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1665
1666
 
1667
	yy_load_buffer_state( );
1668
	(yy_did_buffer_switch_on_eof) = 1;
1669
}
1670
1671
 
1672
 *  The next element becomes the new top.
1673
 *
1674
 */
1675
void yypop_buffer_state (void)
1676
{
1677
    	if (!YY_CURRENT_BUFFER)
1678
		return;
1679
1680
 
1681
	YY_CURRENT_BUFFER_LVALUE = NULL;
1682
	if ((yy_buffer_stack_top) > 0)
1683
		--(yy_buffer_stack_top);
1684
1685
 
1686
		yy_load_buffer_state( );
1687
		(yy_did_buffer_switch_on_eof) = 1;
1688
	}
1689
}
1690
1691
 
1692
 *  Guarantees space for at least one push.
1693
 */
1694
static void yyensure_buffer_stack (void)
1695
{
1696
	yy_size_t num_to_alloc;
1697
1698
 
1699
1700
 
1701
		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
1702
		 * immediate realloc on the next call.
1703
         */
1704
		num_to_alloc = 1;
1705
		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
1706
								(num_to_alloc * sizeof(struct yy_buffer_state*)
1707
								);
1708
		if ( ! (yy_buffer_stack) )
1709
			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1710
1711
 
1712
1713
 
1714
		(yy_buffer_stack_top) = 0;
1715
		return;
1716
	}
1717
1718
 
1719
1720
 
1721
		int grow_size = 8 /* arbitrary grow size */;
1722
1723
 
1724
		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
1725
								((yy_buffer_stack),
1726
								num_to_alloc * sizeof(struct yy_buffer_state*)
1727
								);
1728
		if ( ! (yy_buffer_stack) )
1729
			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1730
1731
 
1732
		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1733
		(yy_buffer_stack_max) = num_to_alloc;
1734
	}
1735
}
1736
1737
 
1738
 * @param base the character buffer
1739
 * @param size the size in bytes of the character buffer
1740
 *
1741
 * @return the newly allocated buffer state object.
1742
 */
1743
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
1744
{
1745
	YY_BUFFER_STATE b;
1746
1747
 
1748
	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
1749
	     base[size-1] != YY_END_OF_BUFFER_CHAR )
1750
		/* They forgot to leave room for the EOB's. */
1751
		return 0;
1752
1753
 
1754
	if ( ! b )
1755
		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1756
1757
 
1758
	b->yy_buf_pos = b->yy_ch_buf = base;
1759
	b->yy_is_our_buffer = 0;
1760
	b->yy_input_file = 0;
1761
	b->yy_n_chars = b->yy_buf_size;
1762
	b->yy_is_interactive = 0;
1763
	b->yy_at_bol = 1;
1764
	b->yy_fill_buffer = 0;
1765
	b->yy_buffer_status = YY_BUFFER_NEW;
1766
1767
 
1768
1769
 
1770
}
1771
1772
 
1773
 * scan from a @e copy of @a str.
1774
 * @param yystr a NUL-terminated string to scan
1775
 *
1776
 * @return the newly allocated buffer state object.
1777
 * @note If you want to scan bytes that may contain NUL values, then use
1778
 *       yy_scan_bytes() instead.
1779
 */
1780
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
1781
{
1782
1783
 
1784
}
1785
1786
 
1787
 * scan from a @e copy of @a bytes.
1788
 * @param bytes the byte buffer to scan
1789
 * @param len the number of bytes in the buffer pointed to by @a bytes.
1790
 *
1791
 * @return the newly allocated buffer state object.
1792
 */
1793
YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
1794
{
1795
	YY_BUFFER_STATE b;
1796
	char *buf;
1797
	yy_size_t n, i;
1798
1799
 
1800
	n = _yybytes_len + 2;
1801
	buf = (char *) yyalloc(n  );
1802
	if ( ! buf )
1803
		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1804
1805
 
1806
		buf[i] = yybytes[i];
1807
1808
 
1809
1810
 
1811
	if ( ! b )
1812
		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1813
1814
 
1815
	 * away when we're done.
1816
	 */
1817
	b->yy_is_our_buffer = 1;
1818
1819
 
1820
}
1821
1822
 
1823
#define YY_EXIT_FAILURE 2
1824
#endif
1825
1826
 
1827
{
1828
    	(void) fprintf( stderr, "%s\n", msg );
1829
	exit( YY_EXIT_FAILURE );
1830
}
1831
1832
 
1833
1834
 
1835
#define yyless(n) \
1836
	do \
1837
		{ \
1838
		/* Undo effects of setting up yytext. */ \
1839
        int yyless_macro_arg = (n); \
1840
        YY_LESS_LINENO(yyless_macro_arg);\
1841
		yytext[yyleng] = (yy_hold_char); \
1842
		(yy_c_buf_p) = yytext + yyless_macro_arg; \
1843
		(yy_hold_char) = *(yy_c_buf_p); \
1844
		*(yy_c_buf_p) = '\0'; \
1845
		yyleng = yyless_macro_arg; \
1846
		} \
1847
	while ( 0 )
1848
1849
 
1850
1851
 
1852
 *
1853
 */
1854
int yyget_lineno  (void)
1855
{
1856
1857
 
1858
}
1859
1860
 
1861
 *
1862
 */
1863
FILE *yyget_in  (void)
1864
{
1865
        return yyin;
1866
}
1867
1868
 
1869
 *
1870
 */
1871
FILE *yyget_out  (void)
1872
{
1873
        return yyout;
1874
}
1875
1876
 
1877
 *
1878
 */
1879
yy_size_t yyget_leng  (void)
1880
{
1881
        return yyleng;
1882
}
1883
1884
 
1885
 *
1886
 */
1887
1888
 
1889
{
1890
        return yytext;
1891
}
1892
1893
 
1894
 * @param line_number
1895
 *
1896
 */
1897
void yyset_lineno (int  line_number )
1898
{
1899
1900
 
1901
}
1902
1903
 
1904
 * input buffer.
1905
 * @param in_str A readable stream.
1906
 *
1907
 * @see yy_switch_to_buffer
1908
 */
1909
void yyset_in (FILE *  in_str )
1910
{
1911
        yyin = in_str ;
1912
}
1913
1914
 
1915
{
1916
        yyout = out_str ;
1917
}
1918
1919
 
1920
{
1921
        return yy_flex_debug;
1922
}
1923
1924
 
1925
{
1926
        yy_flex_debug = bdebug ;
1927
}
1928
1929
 
1930
{
1931
        /* Initialization is the same as for the non-reentrant scanner.
1932
     * This function is called from yylex_destroy(), so don't allocate here.
1933
     */
1934
1935
 
1936
    (yy_buffer_stack_top) = 0;
1937
    (yy_buffer_stack_max) = 0;
1938
    (yy_c_buf_p) = (char *) 0;
1939
    (yy_init) = 0;
1940
    (yy_start) = 0;
1941
1942
 
1943
#ifdef YY_STDINIT
1944
    yyin = stdin;
1945
    yyout = stdout;
1946
#else
1947
    yyin = (FILE *) 0;
1948
    yyout = (FILE *) 0;
1949
#endif
1950
1951
 
1952
     * yylex_init()
1953
     */
1954
    return 0;
1955
}
1956
1957
 
1958
int yylex_destroy  (void)
1959
{
1960
1961
 
1962
	while(YY_CURRENT_BUFFER){
1963
		yy_delete_buffer(YY_CURRENT_BUFFER  );
1964
		YY_CURRENT_BUFFER_LVALUE = NULL;
1965
		yypop_buffer_state();
1966
	}
1967
1968
 
1969
	yyfree((yy_buffer_stack) );
1970
	(yy_buffer_stack) = NULL;
1971
1972
 
1973
     * yylex() is called, initialization will occur. */
1974
    yy_init_globals( );
1975
1976
 
1977
}
1978
1979
 
1980
 * Internal utility routines.
1981
 */
1982
1983
 
1984
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
1985
{
1986
	register int i;
1987
	for ( i = 0; i < n; ++i )
1988
		s1[i] = s2[i];
1989
}
1990
#endif
1991
1992
 
1993
static int yy_flex_strlen (yyconst char * s )
1994
{
1995
	register int n;
1996
	for ( n = 0; s[n]; ++n )
1997
		;
1998
1999
 
2000
}
2001
#endif
2002
2003
 
2004
{
2005
	return (void *) malloc( size );
2006
}
2007
2008
 
2009
{
2010
	/* The cast to (char *) in the following accommodates both
2011
	 * implementations that use char* generic pointers, and those
2012
	 * that use void* generic pointers.  It works with the latter
2013
	 * because both ANSI C and C++ allow castless assignment from
2014
	 * any pointer type to void*, and deal with argument conversions
2015
	 * as though doing an assignment.
2016
	 */
2017
	return (void *) realloc( (char *) ptr, size );
2018
}
2019
2020
 
2021
{
2022
	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
2023
}
2024
2025
 
2026
2027
 
6324 serge 2028
5219 serge 2029
 
2030
 
2031
/* Needed for lex, though not flex. */
2032
int yywrap(void) { return 1; }
2033
#endif
2034