~ubuntu-branches/ubuntu/wily/bluez/wily

« back to all changes in this revision

Viewing changes to rfcomm/lexer.c

ImportĀ upstreamĀ versionĀ 4.81

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
#line 3 "lexer.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 9
363
 
#define YY_END_OF_BUFFER 10
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[36] =
372
 
    {   0,
373
 
        0,    0,   10,    8,    1,    7,    8,    8,    6,    3,
374
 
        6,    0,    4,    0,    2,    6,    3,    6,    3,    0,
375
 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
376
 
        0,    0,    0,    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,    4,    5,    1,    1,    1,    1,    1,
385
 
        1,    1,    1,    1,    6,    1,    1,    7,    7,    7,
386
 
        7,    7,    7,    7,    7,    7,    7,    8,    1,    1,
387
 
        1,    1,    1,    1,    9,    9,    9,    9,    9,    9,
388
 
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
389
 
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
390
 
        1,    1,    1,    1,    6,    1,    9,    9,    9,    9,
391
 
 
392
 
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
393
 
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
394
 
        9,    9,    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[10] =
412
 
    {   0,
413
 
        1,    1,    2,    1,    1,    3,    4,    1,    4
414
 
    } ;
415
 
 
416
 
static yyconst flex_int16_t yy_base[49] =
417
 
    {   0,
418
 
        0,    0,   46,   47,   47,   47,   41,   41,    0,    4,
419
 
       36,   38,   37,   37,   47,    0,    7,   31,   31,    0,
420
 
        0,   29,    0,    0,   28,    0,    0,   27,    0,    0,
421
 
       26,    0,    0,   47,   47,   15,   19,   21,   29,   28,
422
 
       27,   26,   25,   24,   23,   22,   13,    8
423
 
    } ;
424
 
 
425
 
static yyconst flex_int16_t yy_def[49] =
426
 
    {   0,
427
 
       35,    1,   35,   35,   35,   35,   36,   37,   38,   35,
428
 
       10,   36,   36,   37,   35,   38,   38,   38,   38,   39,
429
 
       40,   35,   41,   42,   35,   43,   44,   35,   45,   46,
430
 
       35,   47,   48,   35,    0,   35,   35,   35,   35,   35,
431
 
       35,   35,   35,   35,   35,   35,   35,   35
432
 
    } ;
433
 
 
434
 
static yyconst flex_int16_t yy_nxt[57] =
435
 
    {   0,
436
 
        4,    5,    6,    7,    8,    9,   10,    4,   11,   16,
437
 
       17,   34,   18,   19,   20,   12,   33,   12,   12,   14,
438
 
       14,   14,   14,   16,   16,   31,   30,   28,   27,   25,
439
 
       24,   22,   21,   32,   29,   26,   23,   19,   20,   15,
440
 
       13,   13,   18,   15,   13,   35,    3,   35,   35,   35,
441
 
       35,   35,   35,   35,   35,   35
442
 
    } ;
443
 
 
444
 
static yyconst flex_int16_t yy_chk[57] =
445
 
    {   0,
446
 
        1,    1,    1,    1,    1,    1,    1,    1,    1,   10,
447
 
       10,   48,   10,   17,   17,   36,   47,   36,   36,   37,
448
 
       37,   37,   37,   38,   38,   46,   45,   44,   43,   42,
449
 
       41,   40,   39,   31,   28,   25,   22,   19,   18,   14,
450
 
       13,   12,   11,    8,    7,    3,   35,   35,   35,   35,
451
 
       35,   35,   35,   35,   35,   35
452
 
    } ;
453
 
 
454
 
static yy_state_type yy_last_accepting_state;
455
 
static char *yy_last_accepting_cpos;
456
 
 
457
 
extern int yy_flex_debug;
458
 
int yy_flex_debug = 0;
459
 
 
460
 
/* The intent behind this definition is that it'll catch
461
 
 * any uses of REJECT which flex missed.
462
 
 */
463
 
#define REJECT reject_used_but_not_detected
464
 
#define yymore() yymore_used_but_not_detected
465
 
#define YY_MORE_ADJ 0
466
 
#define YY_RESTORE_YY_MORE_OFFSET
467
 
char *yytext;
468
 
#line 1 "lexer.l"
469
 
#line 2 "lexer.l"
470
 
/*
471
 
 *
472
 
 *  BlueZ - Bluetooth protocol stack for Linux
473
 
 *
474
 
 *  Copyright (C) 2002-2008  Marcel Holtmann <marcel@holtmann.org>
475
 
 *
476
 
 *
477
 
 *  This program is free software; you can redistribute it and/or modify
478
 
 *  it under the terms of the GNU General Public License as published by
479
 
 *  the Free Software Foundation; either version 2 of the License, or
480
 
 *  (at your option) any later version.
481
 
 *
482
 
 *  This program is distributed in the hope that it will be useful,
483
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
484
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
485
 
 *  GNU General Public License for more details.
486
 
 *
487
 
 *  You should have received a copy of the GNU General Public License
488
 
 *  along with this program; if not, write to the Free Software
489
 
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
490
 
 *
491
 
 */
492
 
 
493
 
#ifdef HAVE_CONFIG_H
494
 
#include <config.h>
495
 
#endif
496
 
 
497
 
/* Nasty workaround, but flex defines isatty() twice */
498
 
#define _UNISTD_H
499
 
 
500
 
#include <stdio.h>
501
 
#include <errno.h>
502
 
#include <sys/socket.h>
503
 
 
504
 
#include <bluetooth/bluetooth.h>
505
 
#include <bluetooth/rfcomm.h>
506
 
 
507
 
#include "kword.h"
508
 
#include "parser.h"
509
 
 
510
 
int yylex(void);
511
 
 
512
 
#define YY_NO_INPUT
513
 
 
514
 
#define ECHO {;}
515
 
#define YY_DECL int yylex(void)
516
 
 
517
 
int yyerror(char *str);
518
 
 
519
 
#line 520 "lexer.c"
520
 
 
521
 
#define INITIAL 0
522
 
 
523
 
#ifndef YY_NO_UNISTD_H
524
 
/* Special case for "unistd.h", since it is non-ANSI. We include it way
525
 
 * down here because we want the user's section 1 to have been scanned first.
526
 
 * The user has a chance to override it with an option.
527
 
 */
528
 
#include <unistd.h>
529
 
#endif
530
 
 
531
 
#ifndef YY_EXTRA_TYPE
532
 
#define YY_EXTRA_TYPE void *
533
 
#endif
534
 
 
535
 
static int yy_init_globals (void );
536
 
 
537
 
/* Accessor methods to globals.
538
 
   These are made visible to non-reentrant scanners for convenience. */
539
 
 
540
 
int yylex_destroy (void );
541
 
 
542
 
int yyget_debug (void );
543
 
 
544
 
void yyset_debug (int debug_flag  );
545
 
 
546
 
YY_EXTRA_TYPE yyget_extra (void );
547
 
 
548
 
void yyset_extra (YY_EXTRA_TYPE user_defined  );
549
 
 
550
 
FILE *yyget_in (void );
551
 
 
552
 
void yyset_in  (FILE * in_str  );
553
 
 
554
 
FILE *yyget_out (void );
555
 
 
556
 
void yyset_out  (FILE * out_str  );
557
 
 
558
 
int yyget_leng (void );
559
 
 
560
 
char *yyget_text (void );
561
 
 
562
 
int yyget_lineno (void );
563
 
 
564
 
void yyset_lineno (int line_number  );
565
 
 
566
 
/* Macros after this point can all be overridden by user definitions in
567
 
 * section 1.
568
 
 */
569
 
 
570
 
#ifndef YY_SKIP_YYWRAP
571
 
#ifdef __cplusplus
572
 
extern "C" int yywrap (void );
573
 
#else
574
 
extern int yywrap (void );
575
 
#endif
576
 
#endif
577
 
 
578
 
#ifndef yytext_ptr
579
 
static void yy_flex_strncpy (char *,yyconst char *,int );
580
 
#endif
581
 
 
582
 
#ifdef YY_NEED_STRLEN
583
 
static int yy_flex_strlen (yyconst char * );
584
 
#endif
585
 
 
586
 
#ifndef YY_NO_INPUT
587
 
 
588
 
#ifdef __cplusplus
589
 
static int yyinput (void );
590
 
#else
591
 
static int input (void );
592
 
#endif
593
 
 
594
 
#endif
595
 
 
596
 
/* Amount of stuff to slurp up with each read. */
597
 
#ifndef YY_READ_BUF_SIZE
598
 
#define YY_READ_BUF_SIZE 8192
599
 
#endif
600
 
 
601
 
/* Copy whatever the last rule matched to the standard output. */
602
 
#ifndef ECHO
603
 
/* This used to be an fputs(), but since the string might contain NUL's,
604
 
 * we now use fwrite().
605
 
 */
606
 
#define ECHO fwrite( yytext, yyleng, 1, yyout )
607
 
#endif
608
 
 
609
 
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
610
 
 * is returned in "result".
611
 
 */
612
 
#ifndef YY_INPUT
613
 
#define YY_INPUT(buf,result,max_size) \
614
 
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
615
 
                { \
616
 
                int c = '*'; \
617
 
                unsigned n; \
618
 
                for ( n = 0; n < max_size && \
619
 
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
620
 
                        buf[n] = (char) c; \
621
 
                if ( c == '\n' ) \
622
 
                        buf[n++] = (char) c; \
623
 
                if ( c == EOF && ferror( yyin ) ) \
624
 
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
625
 
                result = n; \
626
 
                } \
627
 
        else \
628
 
                { \
629
 
                errno=0; \
630
 
                while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
631
 
                        { \
632
 
                        if( errno != EINTR) \
633
 
                                { \
634
 
                                YY_FATAL_ERROR( "input in flex scanner failed" ); \
635
 
                                break; \
636
 
                                } \
637
 
                        errno=0; \
638
 
                        clearerr(yyin); \
639
 
                        } \
640
 
                }\
641
 
\
642
 
 
643
 
#endif
644
 
 
645
 
/* No semi-colon after return; correct usage is to write "yyterminate();" -
646
 
 * we don't want an extra ';' after the "return" because that will cause
647
 
 * some compilers to complain about unreachable statements.
648
 
 */
649
 
#ifndef yyterminate
650
 
#define yyterminate() return YY_NULL
651
 
#endif
652
 
 
653
 
/* Number of entries by which start-condition stack grows. */
654
 
#ifndef YY_START_STACK_INCR
655
 
#define YY_START_STACK_INCR 25
656
 
#endif
657
 
 
658
 
/* Report a fatal error. */
659
 
#ifndef YY_FATAL_ERROR
660
 
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
661
 
#endif
662
 
 
663
 
/* end tables serialization structures and prototypes */
664
 
 
665
 
/* Default declaration of generated scanner - a define so the user can
666
 
 * easily add parameters.
667
 
 */
668
 
#ifndef YY_DECL
669
 
#define YY_DECL_IS_OURS 1
670
 
 
671
 
extern int yylex (void);
672
 
 
673
 
#define YY_DECL int yylex (void)
674
 
#endif /* !YY_DECL */
675
 
 
676
 
/* Code executed at the beginning of each rule, after yytext and yyleng
677
 
 * have been set up.
678
 
 */
679
 
#ifndef YY_USER_ACTION
680
 
#define YY_USER_ACTION
681
 
#endif
682
 
 
683
 
/* Code executed at the end of each rule. */
684
 
#ifndef YY_BREAK
685
 
#define YY_BREAK break;
686
 
#endif
687
 
 
688
 
#define YY_RULE_SETUP \
689
 
        YY_USER_ACTION
690
 
 
691
 
/** The main scanner function which does all the work.
692
 
 */
693
 
YY_DECL
694
 
{
695
 
        register yy_state_type yy_current_state;
696
 
        register char *yy_cp, *yy_bp;
697
 
        register int yy_act;
698
 
    
699
 
#line 64 "lexer.l"
700
 
 
701
 
 
702
 
#line 703 "lexer.c"
703
 
 
704
 
        if ( !(yy_init) )
705
 
                {
706
 
                (yy_init) = 1;
707
 
 
708
 
#ifdef YY_USER_INIT
709
 
                YY_USER_INIT;
710
 
#endif
711
 
 
712
 
                if ( ! (yy_start) )
713
 
                        (yy_start) = 1; /* first start state */
714
 
 
715
 
                if ( ! yyin )
716
 
                        yyin = stdin;
717
 
 
718
 
                if ( ! yyout )
719
 
                        yyout = stdout;
720
 
 
721
 
                if ( ! YY_CURRENT_BUFFER ) {
722
 
                        yyensure_buffer_stack ();
723
 
                        YY_CURRENT_BUFFER_LVALUE =
724
 
                                yy_create_buffer(yyin,YY_BUF_SIZE );
725
 
                }
726
 
 
727
 
                yy_load_buffer_state( );
728
 
                }
729
 
 
730
 
        while ( 1 )             /* loops until end-of-file is reached */
731
 
                {
732
 
                yy_cp = (yy_c_buf_p);
733
 
 
734
 
                /* Support of yytext. */
735
 
                *yy_cp = (yy_hold_char);
736
 
 
737
 
                /* yy_bp points to the position in yy_ch_buf of the start of
738
 
                 * the current run.
739
 
                 */
740
 
                yy_bp = yy_cp;
741
 
 
742
 
                yy_current_state = (yy_start);
743
 
yy_match:
744
 
                do
745
 
                        {
746
 
                        register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
747
 
                        if ( yy_accept[yy_current_state] )
748
 
                                {
749
 
                                (yy_last_accepting_state) = yy_current_state;
750
 
                                (yy_last_accepting_cpos) = yy_cp;
751
 
                                }
752
 
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
753
 
                                {
754
 
                                yy_current_state = (int) yy_def[yy_current_state];
755
 
                                if ( yy_current_state >= 36 )
756
 
                                        yy_c = yy_meta[(unsigned int) yy_c];
757
 
                                }
758
 
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
759
 
                        ++yy_cp;
760
 
                        }
761
 
                while ( yy_base[yy_current_state] != 47 );
762
 
 
763
 
yy_find_action:
764
 
                yy_act = yy_accept[yy_current_state];
765
 
                if ( yy_act == 0 )
766
 
                        { /* have to back up */
767
 
                        yy_cp = (yy_last_accepting_cpos);
768
 
                        yy_current_state = (yy_last_accepting_state);
769
 
                        yy_act = yy_accept[yy_current_state];
770
 
                        }
771
 
 
772
 
                YY_DO_BEFORE_ACTION;
773
 
 
774
 
do_action:      /* This label is used only to access EOF actions. */
775
 
 
776
 
                switch ( yy_act )
777
 
        { /* beginning of action switch */
778
 
                        case 0: /* must back up */
779
 
                        /* undo the effects of YY_DO_BEFORE_ACTION */
780
 
                        *yy_cp = (yy_hold_char);
781
 
                        yy_cp = (yy_last_accepting_cpos);
782
 
                        yy_current_state = (yy_last_accepting_state);
783
 
                        goto yy_find_action;
784
 
 
785
 
case 1:
786
 
YY_RULE_SETUP
787
 
#line 66 "lexer.l"
788
 
{
789
 
                        /* Skip spaces and tabs */
790
 
                        ;
791
 
                }
792
 
        YY_BREAK
793
 
case 2:
794
 
/* rule 2 can match eol */
795
 
YY_RULE_SETUP
796
 
#line 71 "lexer.l"
797
 
{
798
 
                        /* Skip comments */
799
 
                        lineno++; 
800
 
                }
801
 
        YY_BREAK
802
 
case 3:
803
 
YY_RULE_SETUP
804
 
#line 76 "lexer.l"
805
 
{
806
 
                        yylval.number = atoi(yytext);
807
 
                        return NUMBER;
808
 
                }
809
 
        YY_BREAK
810
 
case 4:
811
 
YY_RULE_SETUP
812
 
#line 81 "lexer.l"
813
 
{
814
 
                        yylval.string = yytext;
815
 
                        return STRING;
816
 
                }
817
 
        YY_BREAK
818
 
case 5:
819
 
YY_RULE_SETUP
820
 
#line 86 "lexer.l"
821
 
{
822
 
                        bdaddr_t *ba = malloc(sizeof(bdaddr_t));
823
 
                        str2ba(yytext, ba);
824
 
                        yylval.bdaddr = ba;
825
 
                        return BDADDR;
826
 
                }
827
 
        YY_BREAK
828
 
case 6:
829
 
YY_RULE_SETUP
830
 
#line 93 "lexer.l"
831
 
{
832
 
                        int keyword = rfcomm_find_keyword(rfcomm_keyword, yytext);
833
 
                        if (keyword != -1)
834
 
                                return keyword;
835
 
 
836
 
                        if (strncmp(yytext, "rfcomm", 6) == 0) {
837
 
                                yylval.number = atoi(yytext + 6);
838
 
                                return RFCOMM;
839
 
                        }
840
 
 
841
 
                        yylval.string = yytext;
842
 
                        return WORD;
843
 
                }
844
 
        YY_BREAK
845
 
case 7:
846
 
/* rule 7 can match eol */
847
 
YY_RULE_SETUP
848
 
#line 107 "lexer.l"
849
 
{
850
 
                        lineno++;
851
 
                }
852
 
        YY_BREAK
853
 
case 8:
854
 
YY_RULE_SETUP
855
 
#line 111 "lexer.l"
856
 
{
857
 
                        return *yytext;
858
 
                }
859
 
        YY_BREAK
860
 
case 9:
861
 
YY_RULE_SETUP
862
 
#line 115 "lexer.l"
863
 
ECHO;
864
 
        YY_BREAK
865
 
#line 866 "lexer.c"
866
 
case YY_STATE_EOF(INITIAL):
867
 
        yyterminate();
868
 
 
869
 
        case YY_END_OF_BUFFER:
870
 
                {
871
 
                /* Amount of text matched not including the EOB char. */
872
 
                int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
873
 
 
874
 
                /* Undo the effects of YY_DO_BEFORE_ACTION. */
875
 
                *yy_cp = (yy_hold_char);
876
 
                YY_RESTORE_YY_MORE_OFFSET
877
 
 
878
 
                if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
879
 
                        {
880
 
                        /* We're scanning a new file or input source.  It's
881
 
                         * possible that this happened because the user
882
 
                         * just pointed yyin at a new source and called
883
 
                         * yylex().  If so, then we have to assure
884
 
                         * consistency between YY_CURRENT_BUFFER and our
885
 
                         * globals.  Here is the right place to do so, because
886
 
                         * this is the first action (other than possibly a
887
 
                         * back-up) that will match for the new input source.
888
 
                         */
889
 
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
890
 
                        YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
891
 
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
892
 
                        }
893
 
 
894
 
                /* Note that here we test for yy_c_buf_p "<=" to the position
895
 
                 * of the first EOB in the buffer, since yy_c_buf_p will
896
 
                 * already have been incremented past the NUL character
897
 
                 * (since all states make transitions on EOB to the
898
 
                 * end-of-buffer state).  Contrast this with the test
899
 
                 * in input().
900
 
                 */
901
 
                if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
902
 
                        { /* This was really a NUL. */
903
 
                        yy_state_type yy_next_state;
904
 
 
905
 
                        (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
906
 
 
907
 
                        yy_current_state = yy_get_previous_state(  );
908
 
 
909
 
                        /* Okay, we're now positioned to make the NUL
910
 
                         * transition.  We couldn't have
911
 
                         * yy_get_previous_state() go ahead and do it
912
 
                         * for us because it doesn't know how to deal
913
 
                         * with the possibility of jamming (and we don't
914
 
                         * want to build jamming into it because then it
915
 
                         * will run more slowly).
916
 
                         */
917
 
 
918
 
                        yy_next_state = yy_try_NUL_trans( yy_current_state );
919
 
 
920
 
                        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
921
 
 
922
 
                        if ( yy_next_state )
923
 
                                {
924
 
                                /* Consume the NUL. */
925
 
                                yy_cp = ++(yy_c_buf_p);
926
 
                                yy_current_state = yy_next_state;
927
 
                                goto yy_match;
928
 
                                }
929
 
 
930
 
                        else
931
 
                                {
932
 
                                yy_cp = (yy_c_buf_p);
933
 
                                goto yy_find_action;
934
 
                                }
935
 
                        }
936
 
 
937
 
                else switch ( yy_get_next_buffer(  ) )
938
 
                        {
939
 
                        case EOB_ACT_END_OF_FILE:
940
 
                                {
941
 
                                (yy_did_buffer_switch_on_eof) = 0;
942
 
 
943
 
                                if ( yywrap( ) )
944
 
                                        {
945
 
                                        /* Note: because we've taken care in
946
 
                                         * yy_get_next_buffer() to have set up
947
 
                                         * yytext, we can now set up
948
 
                                         * yy_c_buf_p so that if some total
949
 
                                         * hoser (like flex itself) wants to
950
 
                                         * call the scanner after we return the
951
 
                                         * YY_NULL, it'll still work - another
952
 
                                         * YY_NULL will get returned.
953
 
                                         */
954
 
                                        (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
955
 
 
956
 
                                        yy_act = YY_STATE_EOF(YY_START);
957
 
                                        goto do_action;
958
 
                                        }
959
 
 
960
 
                                else
961
 
                                        {
962
 
                                        if ( ! (yy_did_buffer_switch_on_eof) )
963
 
                                                YY_NEW_FILE;
964
 
                                        }
965
 
                                break;
966
 
                                }
967
 
 
968
 
                        case EOB_ACT_CONTINUE_SCAN:
969
 
                                (yy_c_buf_p) =
970
 
                                        (yytext_ptr) + yy_amount_of_matched_text;
971
 
 
972
 
                                yy_current_state = yy_get_previous_state(  );
973
 
 
974
 
                                yy_cp = (yy_c_buf_p);
975
 
                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
976
 
                                goto yy_match;
977
 
 
978
 
                        case EOB_ACT_LAST_MATCH:
979
 
                                (yy_c_buf_p) =
980
 
                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
981
 
 
982
 
                                yy_current_state = yy_get_previous_state(  );
983
 
 
984
 
                                yy_cp = (yy_c_buf_p);
985
 
                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
986
 
                                goto yy_find_action;
987
 
                        }
988
 
                break;
989
 
                }
990
 
 
991
 
        default:
992
 
                YY_FATAL_ERROR(
993
 
                        "fatal flex scanner internal error--no action found" );
994
 
        } /* end of action switch */
995
 
                } /* end of scanning one token */
996
 
} /* end of yylex */
997
 
 
998
 
/* yy_get_next_buffer - try to read in a new buffer
999
 
 *
1000
 
 * Returns a code representing an action:
1001
 
 *      EOB_ACT_LAST_MATCH -
1002
 
 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1003
 
 *      EOB_ACT_END_OF_FILE - end of file
1004
 
 */
1005
 
static int yy_get_next_buffer (void)
1006
 
{
1007
 
        register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1008
 
        register char *source = (yytext_ptr);
1009
 
        register int number_to_move, i;
1010
 
        int ret_val;
1011
 
 
1012
 
        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1013
 
                YY_FATAL_ERROR(
1014
 
                "fatal flex scanner internal error--end of buffer missed" );
1015
 
 
1016
 
        if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1017
 
                { /* Don't try to fill the buffer, so this is an EOF. */
1018
 
                if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1019
 
                        {
1020
 
                        /* We matched a single character, the EOB, so
1021
 
                         * treat this as a final EOF.
1022
 
                         */
1023
 
                        return EOB_ACT_END_OF_FILE;
1024
 
                        }
1025
 
 
1026
 
                else
1027
 
                        {
1028
 
                        /* We matched some text prior to the EOB, first
1029
 
                         * process it.
1030
 
                         */
1031
 
                        return EOB_ACT_LAST_MATCH;
1032
 
                        }
1033
 
                }
1034
 
 
1035
 
        /* Try to read more data. */
1036
 
 
1037
 
        /* First move last chars to start of buffer. */
1038
 
        number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1039
 
 
1040
 
        for ( i = 0; i < number_to_move; ++i )
1041
 
                *(dest++) = *(source++);
1042
 
 
1043
 
        if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1044
 
                /* don't do the read, it's not guaranteed to return an EOF,
1045
 
                 * just force an EOF
1046
 
                 */
1047
 
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1048
 
 
1049
 
        else
1050
 
                {
1051
 
                        int num_to_read =
1052
 
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1053
 
 
1054
 
                while ( num_to_read <= 0 )
1055
 
                        { /* Not enough room in the buffer - grow it. */
1056
 
 
1057
 
                        /* just a shorter name for the current buffer */
1058
 
                        YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1059
 
 
1060
 
                        int yy_c_buf_p_offset =
1061
 
                                (int) ((yy_c_buf_p) - b->yy_ch_buf);
1062
 
 
1063
 
                        if ( b->yy_is_our_buffer )
1064
 
                                {
1065
 
                                int new_size = b->yy_buf_size * 2;
1066
 
 
1067
 
                                if ( new_size <= 0 )
1068
 
                                        b->yy_buf_size += b->yy_buf_size / 8;
1069
 
                                else
1070
 
                                        b->yy_buf_size *= 2;
1071
 
 
1072
 
                                b->yy_ch_buf = (char *)
1073
 
                                        /* Include room in for 2 EOB chars. */
1074
 
                                        yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1075
 
                                }
1076
 
                        else
1077
 
                                /* Can't grow it, we don't own it. */
1078
 
                                b->yy_ch_buf = 0;
1079
 
 
1080
 
                        if ( ! b->yy_ch_buf )
1081
 
                                YY_FATAL_ERROR(
1082
 
                                "fatal error - scanner input buffer overflow" );
1083
 
 
1084
 
                        (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1085
 
 
1086
 
                        num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1087
 
                                                number_to_move - 1;
1088
 
 
1089
 
                        }
1090
 
 
1091
 
                if ( num_to_read > YY_READ_BUF_SIZE )
1092
 
                        num_to_read = YY_READ_BUF_SIZE;
1093
 
 
1094
 
                /* Read in more data. */
1095
 
                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1096
 
                        (yy_n_chars), (size_t) num_to_read );
1097
 
 
1098
 
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1099
 
                }
1100
 
 
1101
 
        if ( (yy_n_chars) == 0 )
1102
 
                {
1103
 
                if ( number_to_move == YY_MORE_ADJ )
1104
 
                        {
1105
 
                        ret_val = EOB_ACT_END_OF_FILE;
1106
 
                        yyrestart(yyin  );
1107
 
                        }
1108
 
 
1109
 
                else
1110
 
                        {
1111
 
                        ret_val = EOB_ACT_LAST_MATCH;
1112
 
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1113
 
                                YY_BUFFER_EOF_PENDING;
1114
 
                        }
1115
 
                }
1116
 
 
1117
 
        else
1118
 
                ret_val = EOB_ACT_CONTINUE_SCAN;
1119
 
 
1120
 
        if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1121
 
                /* Extend the array by 50%, plus the number we really need. */
1122
 
                yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1123
 
                YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1124
 
                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1125
 
                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1126
 
        }
1127
 
 
1128
 
        (yy_n_chars) += number_to_move;
1129
 
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1130
 
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1131
 
 
1132
 
        (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1133
 
 
1134
 
        return ret_val;
1135
 
}
1136
 
 
1137
 
/* yy_get_previous_state - get the state just before the EOB char was reached */
1138
 
 
1139
 
    static yy_state_type yy_get_previous_state (void)
1140
 
{
1141
 
        register yy_state_type yy_current_state;
1142
 
        register char *yy_cp;
1143
 
    
1144
 
        yy_current_state = (yy_start);
1145
 
 
1146
 
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1147
 
                {
1148
 
                register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1149
 
                if ( yy_accept[yy_current_state] )
1150
 
                        {
1151
 
                        (yy_last_accepting_state) = yy_current_state;
1152
 
                        (yy_last_accepting_cpos) = yy_cp;
1153
 
                        }
1154
 
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1155
 
                        {
1156
 
                        yy_current_state = (int) yy_def[yy_current_state];
1157
 
                        if ( yy_current_state >= 36 )
1158
 
                                yy_c = yy_meta[(unsigned int) yy_c];
1159
 
                        }
1160
 
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1161
 
                }
1162
 
 
1163
 
        return yy_current_state;
1164
 
}
1165
 
 
1166
 
/* yy_try_NUL_trans - try to make a transition on the NUL character
1167
 
 *
1168
 
 * synopsis
1169
 
 *      next_state = yy_try_NUL_trans( current_state );
1170
 
 */
1171
 
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1172
 
{
1173
 
        register int yy_is_jam;
1174
 
        register char *yy_cp = (yy_c_buf_p);
1175
 
 
1176
 
        register YY_CHAR yy_c = 1;
1177
 
        if ( yy_accept[yy_current_state] )
1178
 
                {
1179
 
                (yy_last_accepting_state) = yy_current_state;
1180
 
                (yy_last_accepting_cpos) = yy_cp;
1181
 
                }
1182
 
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1183
 
                {
1184
 
                yy_current_state = (int) yy_def[yy_current_state];
1185
 
                if ( yy_current_state >= 36 )
1186
 
                        yy_c = yy_meta[(unsigned int) yy_c];
1187
 
                }
1188
 
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1189
 
        yy_is_jam = (yy_current_state == 35);
1190
 
 
1191
 
        return yy_is_jam ? 0 : yy_current_state;
1192
 
}
1193
 
 
1194
 
#ifndef YY_NO_INPUT
1195
 
#ifdef __cplusplus
1196
 
    static int yyinput (void)
1197
 
#else
1198
 
    static int input  (void)
1199
 
#endif
1200
 
 
1201
 
{
1202
 
        int c;
1203
 
    
1204
 
        *(yy_c_buf_p) = (yy_hold_char);
1205
 
 
1206
 
        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1207
 
                {
1208
 
                /* yy_c_buf_p now points to the character we want to return.
1209
 
                 * If this occurs *before* the EOB characters, then it's a
1210
 
                 * valid NUL; if not, then we've hit the end of the buffer.
1211
 
                 */
1212
 
                if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1213
 
                        /* This was really a NUL. */
1214
 
                        *(yy_c_buf_p) = '\0';
1215
 
 
1216
 
                else
1217
 
                        { /* need more input */
1218
 
                        int offset = (yy_c_buf_p) - (yytext_ptr);
1219
 
                        ++(yy_c_buf_p);
1220
 
 
1221
 
                        switch ( yy_get_next_buffer(  ) )
1222
 
                                {
1223
 
                                case EOB_ACT_LAST_MATCH:
1224
 
                                        /* This happens because yy_g_n_b()
1225
 
                                         * sees that we've accumulated a
1226
 
                                         * token and flags that we need to
1227
 
                                         * try matching the token before
1228
 
                                         * proceeding.  But for input(),
1229
 
                                         * there's no matching to consider.
1230
 
                                         * So convert the EOB_ACT_LAST_MATCH
1231
 
                                         * to EOB_ACT_END_OF_FILE.
1232
 
                                         */
1233
 
 
1234
 
                                        /* Reset buffer status. */
1235
 
                                        yyrestart(yyin );
1236
 
 
1237
 
                                        /*FALLTHROUGH*/
1238
 
 
1239
 
                                case EOB_ACT_END_OF_FILE:
1240
 
                                        {
1241
 
                                        if ( yywrap( ) )
1242
 
                                                return EOF;
1243
 
 
1244
 
                                        if ( ! (yy_did_buffer_switch_on_eof) )
1245
 
                                                YY_NEW_FILE;
1246
 
#ifdef __cplusplus
1247
 
                                        return yyinput();
1248
 
#else
1249
 
                                        return input();
1250
 
#endif
1251
 
                                        }
1252
 
 
1253
 
                                case EOB_ACT_CONTINUE_SCAN:
1254
 
                                        (yy_c_buf_p) = (yytext_ptr) + offset;
1255
 
                                        break;
1256
 
                                }
1257
 
                        }
1258
 
                }
1259
 
 
1260
 
        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
1261
 
        *(yy_c_buf_p) = '\0';   /* preserve yytext */
1262
 
        (yy_hold_char) = *++(yy_c_buf_p);
1263
 
 
1264
 
        return c;
1265
 
}
1266
 
#endif  /* ifndef YY_NO_INPUT */
1267
 
 
1268
 
/** Immediately switch to a different input stream.
1269
 
 * @param input_file A readable stream.
1270
 
 * 
1271
 
 * @note This function does not reset the start condition to @c INITIAL .
1272
 
 */
1273
 
    void yyrestart  (FILE * input_file )
1274
 
{
1275
 
    
1276
 
        if ( ! YY_CURRENT_BUFFER ){
1277
 
        yyensure_buffer_stack ();
1278
 
                YY_CURRENT_BUFFER_LVALUE =
1279
 
            yy_create_buffer(yyin,YY_BUF_SIZE );
1280
 
        }
1281
 
 
1282
 
        yy_init_buffer(YY_CURRENT_BUFFER,input_file );
1283
 
        yy_load_buffer_state( );
1284
 
}
1285
 
 
1286
 
/** Switch to a different input buffer.
1287
 
 * @param new_buffer The new input buffer.
1288
 
 * 
1289
 
 */
1290
 
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1291
 
{
1292
 
    
1293
 
        /* TODO. We should be able to replace this entire function body
1294
 
         * with
1295
 
         *              yypop_buffer_state();
1296
 
         *              yypush_buffer_state(new_buffer);
1297
 
     */
1298
 
        yyensure_buffer_stack ();
1299
 
        if ( YY_CURRENT_BUFFER == new_buffer )
1300
 
                return;
1301
 
 
1302
 
        if ( YY_CURRENT_BUFFER )
1303
 
                {
1304
 
                /* Flush out information for old buffer. */
1305
 
                *(yy_c_buf_p) = (yy_hold_char);
1306
 
                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1307
 
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1308
 
                }
1309
 
 
1310
 
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
1311
 
        yy_load_buffer_state( );
1312
 
 
1313
 
        /* We don't actually know whether we did this switch during
1314
 
         * EOF (yywrap()) processing, but the only time this flag
1315
 
         * is looked at is after yywrap() is called, so it's safe
1316
 
         * to go ahead and always set it.
1317
 
         */
1318
 
        (yy_did_buffer_switch_on_eof) = 1;
1319
 
}
1320
 
 
1321
 
static void yy_load_buffer_state  (void)
1322
 
{
1323
 
        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1324
 
        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1325
 
        yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1326
 
        (yy_hold_char) = *(yy_c_buf_p);
1327
 
}
1328
 
 
1329
 
/** Allocate and initialize an input buffer state.
1330
 
 * @param file A readable stream.
1331
 
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1332
 
 * 
1333
 
 * @return the allocated buffer state.
1334
 
 */
1335
 
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
1336
 
{
1337
 
        YY_BUFFER_STATE b;
1338
 
    
1339
 
        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1340
 
        if ( ! b )
1341
 
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1342
 
 
1343
 
        b->yy_buf_size = size;
1344
 
 
1345
 
        /* yy_ch_buf has to be 2 characters longer than the size given because
1346
 
         * we need to put in 2 end-of-buffer characters.
1347
 
         */
1348
 
        b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
1349
 
        if ( ! b->yy_ch_buf )
1350
 
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1351
 
 
1352
 
        b->yy_is_our_buffer = 1;
1353
 
 
1354
 
        yy_init_buffer(b,file );
1355
 
 
1356
 
        return b;
1357
 
}
1358
 
 
1359
 
/** Destroy the buffer.
1360
 
 * @param b a buffer created with yy_create_buffer()
1361
 
 * 
1362
 
 */
1363
 
    void yy_delete_buffer (YY_BUFFER_STATE  b )
1364
 
{
1365
 
    
1366
 
        if ( ! b )
1367
 
                return;
1368
 
 
1369
 
        if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1370
 
                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1371
 
 
1372
 
        if ( b->yy_is_our_buffer )
1373
 
                yyfree((void *) b->yy_ch_buf  );
1374
 
 
1375
 
        yyfree((void *) b  );
1376
 
}
1377
 
 
1378
 
#ifndef __cplusplus
1379
 
extern int isatty (int );
1380
 
#endif /* __cplusplus */
1381
 
    
1382
 
/* Initializes or reinitializes a buffer.
1383
 
 * This function is sometimes called more than once on the same buffer,
1384
 
 * such as during a yyrestart() or at EOF.
1385
 
 */
1386
 
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1387
 
 
1388
 
{
1389
 
        int oerrno = errno;
1390
 
    
1391
 
        yy_flush_buffer(b );
1392
 
 
1393
 
        b->yy_input_file = file;
1394
 
        b->yy_fill_buffer = 1;
1395
 
 
1396
 
    /* If b is the current buffer, then yy_init_buffer was _probably_
1397
 
     * called from yyrestart() or through yy_get_next_buffer.
1398
 
     * In that case, we don't want to reset the lineno or column.
1399
 
     */
1400
 
    if (b != YY_CURRENT_BUFFER){
1401
 
        b->yy_bs_lineno = 1;
1402
 
        b->yy_bs_column = 0;
1403
 
    }
1404
 
 
1405
 
        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1406
 
    
1407
 
        errno = oerrno;
1408
 
}
1409
 
 
1410
 
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1411
 
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1412
 
 * 
1413
 
 */
1414
 
    void yy_flush_buffer (YY_BUFFER_STATE  b )
1415
 
{
1416
 
        if ( ! b )
1417
 
                return;
1418
 
 
1419
 
        b->yy_n_chars = 0;
1420
 
 
1421
 
        /* We always need two end-of-buffer characters.  The first causes
1422
 
         * a transition to the end-of-buffer state.  The second causes
1423
 
         * a jam in that state.
1424
 
         */
1425
 
        b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1426
 
        b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1427
 
 
1428
 
        b->yy_buf_pos = &b->yy_ch_buf[0];
1429
 
 
1430
 
        b->yy_at_bol = 1;
1431
 
        b->yy_buffer_status = YY_BUFFER_NEW;
1432
 
 
1433
 
        if ( b == YY_CURRENT_BUFFER )
1434
 
                yy_load_buffer_state( );
1435
 
}
1436
 
 
1437
 
/** Pushes the new state onto the stack. The new state becomes
1438
 
 *  the current state. This function will allocate the stack
1439
 
 *  if necessary.
1440
 
 *  @param new_buffer The new state.
1441
 
 *  
1442
 
 */
1443
 
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1444
 
{
1445
 
        if (new_buffer == NULL)
1446
 
                return;
1447
 
 
1448
 
        yyensure_buffer_stack();
1449
 
 
1450
 
        /* This block is copied from yy_switch_to_buffer. */
1451
 
        if ( YY_CURRENT_BUFFER )
1452
 
                {
1453
 
                /* Flush out information for old buffer. */
1454
 
                *(yy_c_buf_p) = (yy_hold_char);
1455
 
                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1456
 
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1457
 
                }
1458
 
 
1459
 
        /* Only push if top exists. Otherwise, replace top. */
1460
 
        if (YY_CURRENT_BUFFER)
1461
 
                (yy_buffer_stack_top)++;
1462
 
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
1463
 
 
1464
 
        /* copied from yy_switch_to_buffer. */
1465
 
        yy_load_buffer_state( );
1466
 
        (yy_did_buffer_switch_on_eof) = 1;
1467
 
}
1468
 
 
1469
 
/** Removes and deletes the top of the stack, if present.
1470
 
 *  The next element becomes the new top.
1471
 
 *  
1472
 
 */
1473
 
void yypop_buffer_state (void)
1474
 
{
1475
 
        if (!YY_CURRENT_BUFFER)
1476
 
                return;
1477
 
 
1478
 
        yy_delete_buffer(YY_CURRENT_BUFFER );
1479
 
        YY_CURRENT_BUFFER_LVALUE = NULL;
1480
 
        if ((yy_buffer_stack_top) > 0)
1481
 
                --(yy_buffer_stack_top);
1482
 
 
1483
 
        if (YY_CURRENT_BUFFER) {
1484
 
                yy_load_buffer_state( );
1485
 
                (yy_did_buffer_switch_on_eof) = 1;
1486
 
        }
1487
 
}
1488
 
 
1489
 
/* Allocates the stack if it does not exist.
1490
 
 *  Guarantees space for at least one push.
1491
 
 */
1492
 
static void yyensure_buffer_stack (void)
1493
 
{
1494
 
        int num_to_alloc;
1495
 
    
1496
 
        if (!(yy_buffer_stack)) {
1497
 
 
1498
 
                /* First allocation is just for 2 elements, since we don't know if this
1499
 
                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
1500
 
                 * immediate realloc on the next call.
1501
 
         */
1502
 
                num_to_alloc = 1;
1503
 
                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
1504
 
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
1505
 
                                                                );
1506
 
                if ( ! (yy_buffer_stack) )
1507
 
                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1508
 
                                                                  
1509
 
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1510
 
                                
1511
 
                (yy_buffer_stack_max) = num_to_alloc;
1512
 
                (yy_buffer_stack_top) = 0;
1513
 
                return;
1514
 
        }
1515
 
 
1516
 
        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1517
 
 
1518
 
                /* Increase the buffer to prepare for a possible push. */
1519
 
                int grow_size = 8 /* arbitrary grow size */;
1520
 
 
1521
 
                num_to_alloc = (yy_buffer_stack_max) + grow_size;
1522
 
                (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
1523
 
                                                                ((yy_buffer_stack),
1524
 
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
1525
 
                                                                );
1526
 
                if ( ! (yy_buffer_stack) )
1527
 
                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1528
 
 
1529
 
                /* zero only the new slots.*/
1530
 
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1531
 
                (yy_buffer_stack_max) = num_to_alloc;
1532
 
        }
1533
 
}
1534
 
 
1535
 
/** Setup the input buffer state to scan directly from a user-specified character buffer.
1536
 
 * @param base the character buffer
1537
 
 * @param size the size in bytes of the character buffer
1538
 
 * 
1539
 
 * @return the newly allocated buffer state object. 
1540
 
 */
1541
 
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
1542
 
{
1543
 
        YY_BUFFER_STATE b;
1544
 
    
1545
 
        if ( size < 2 ||
1546
 
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
1547
 
             base[size-1] != YY_END_OF_BUFFER_CHAR )
1548
 
                /* They forgot to leave room for the EOB's. */
1549
 
                return 0;
1550
 
 
1551
 
        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1552
 
        if ( ! b )
1553
 
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1554
 
 
1555
 
        b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
1556
 
        b->yy_buf_pos = b->yy_ch_buf = base;
1557
 
        b->yy_is_our_buffer = 0;
1558
 
        b->yy_input_file = 0;
1559
 
        b->yy_n_chars = b->yy_buf_size;
1560
 
        b->yy_is_interactive = 0;
1561
 
        b->yy_at_bol = 1;
1562
 
        b->yy_fill_buffer = 0;
1563
 
        b->yy_buffer_status = YY_BUFFER_NEW;
1564
 
 
1565
 
        yy_switch_to_buffer(b  );
1566
 
 
1567
 
        return b;
1568
 
}
1569
 
 
1570
 
/** Setup the input buffer state to scan a string. The next call to yylex() will
1571
 
 * scan from a @e copy of @a str.
1572
 
 * @param yystr a NUL-terminated string to scan
1573
 
 * 
1574
 
 * @return the newly allocated buffer state object.
1575
 
 * @note If you want to scan bytes that may contain NUL values, then use
1576
 
 *       yy_scan_bytes() instead.
1577
 
 */
1578
 
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
1579
 
{
1580
 
    
1581
 
        return yy_scan_bytes(yystr,strlen(yystr) );
1582
 
}
1583
 
 
1584
 
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
1585
 
 * scan from a @e copy of @a bytes.
1586
 
 * @param bytes the byte buffer to scan
1587
 
 * @param len the number of bytes in the buffer pointed to by @a bytes.
1588
 
 * 
1589
 
 * @return the newly allocated buffer state object.
1590
 
 */
1591
 
YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
1592
 
{
1593
 
        YY_BUFFER_STATE b;
1594
 
        char *buf;
1595
 
        yy_size_t n;
1596
 
        int i;
1597
 
    
1598
 
        /* Get memory for full buffer, including space for trailing EOB's. */
1599
 
        n = _yybytes_len + 2;
1600
 
        buf = (char *) yyalloc(n  );
1601
 
        if ( ! buf )
1602
 
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1603
 
 
1604
 
        for ( i = 0; i < _yybytes_len; ++i )
1605
 
                buf[i] = yybytes[i];
1606
 
 
1607
 
        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1608
 
 
1609
 
        b = yy_scan_buffer(buf,n );
1610
 
        if ( ! b )
1611
 
                YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1612
 
 
1613
 
        /* It's okay to grow etc. this buffer, and we should throw it
1614
 
         * away when we're done.
1615
 
         */
1616
 
        b->yy_is_our_buffer = 1;
1617
 
 
1618
 
        return b;
1619
 
}
1620
 
 
1621
 
#ifndef YY_EXIT_FAILURE
1622
 
#define YY_EXIT_FAILURE 2
1623
 
#endif
1624
 
 
1625
 
static void yy_fatal_error (yyconst char* msg )
1626
 
{
1627
 
        (void) fprintf( stderr, "%s\n", msg );
1628
 
        exit( YY_EXIT_FAILURE );
1629
 
}
1630
 
 
1631
 
/* Redefine yyless() so it works in section 3 code. */
1632
 
 
1633
 
#undef yyless
1634
 
#define yyless(n) \
1635
 
        do \
1636
 
                { \
1637
 
                /* Undo effects of setting up yytext. */ \
1638
 
        int yyless_macro_arg = (n); \
1639
 
        YY_LESS_LINENO(yyless_macro_arg);\
1640
 
                yytext[yyleng] = (yy_hold_char); \
1641
 
                (yy_c_buf_p) = yytext + yyless_macro_arg; \
1642
 
                (yy_hold_char) = *(yy_c_buf_p); \
1643
 
                *(yy_c_buf_p) = '\0'; \
1644
 
                yyleng = yyless_macro_arg; \
1645
 
                } \
1646
 
        while ( 0 )
1647
 
 
1648
 
/* Accessor  methods (get/set functions) to struct members. */
1649
 
 
1650
 
/** Get the current line number.
1651
 
 * 
1652
 
 */
1653
 
int yyget_lineno  (void)
1654
 
{
1655
 
        
1656
 
    return yylineno;
1657
 
}
1658
 
 
1659
 
/** Get the input stream.
1660
 
 * 
1661
 
 */
1662
 
FILE *yyget_in  (void)
1663
 
{
1664
 
        return yyin;
1665
 
}
1666
 
 
1667
 
/** Get the output stream.
1668
 
 * 
1669
 
 */
1670
 
FILE *yyget_out  (void)
1671
 
{
1672
 
        return yyout;
1673
 
}
1674
 
 
1675
 
/** Get the length of the current token.
1676
 
 * 
1677
 
 */
1678
 
int yyget_leng  (void)
1679
 
{
1680
 
        return yyleng;
1681
 
}
1682
 
 
1683
 
/** Get the current token.
1684
 
 * 
1685
 
 */
1686
 
 
1687
 
char *yyget_text  (void)
1688
 
{
1689
 
        return yytext;
1690
 
}
1691
 
 
1692
 
/** Set the current line number.
1693
 
 * @param line_number
1694
 
 * 
1695
 
 */
1696
 
void yyset_lineno (int  line_number )
1697
 
{
1698
 
    
1699
 
    yylineno = line_number;
1700
 
}
1701
 
 
1702
 
/** Set the input stream. This does not discard the current
1703
 
 * input buffer.
1704
 
 * @param in_str A readable stream.
1705
 
 * 
1706
 
 * @see yy_switch_to_buffer
1707
 
 */
1708
 
void yyset_in (FILE *  in_str )
1709
 
{
1710
 
        yyin = in_str ;
1711
 
}
1712
 
 
1713
 
void yyset_out (FILE *  out_str )
1714
 
{
1715
 
        yyout = out_str ;
1716
 
}
1717
 
 
1718
 
int yyget_debug  (void)
1719
 
{
1720
 
        return yy_flex_debug;
1721
 
}
1722
 
 
1723
 
void yyset_debug (int  bdebug )
1724
 
{
1725
 
        yy_flex_debug = bdebug ;
1726
 
}
1727
 
 
1728
 
static int yy_init_globals (void)
1729
 
{
1730
 
        /* Initialization is the same as for the non-reentrant scanner.
1731
 
     * This function is called from yylex_destroy(), so don't allocate here.
1732
 
     */
1733
 
 
1734
 
    (yy_buffer_stack) = 0;
1735
 
    (yy_buffer_stack_top) = 0;
1736
 
    (yy_buffer_stack_max) = 0;
1737
 
    (yy_c_buf_p) = (char *) 0;
1738
 
    (yy_init) = 0;
1739
 
    (yy_start) = 0;
1740
 
 
1741
 
/* Defined in main.c */
1742
 
#ifdef YY_STDINIT
1743
 
    yyin = stdin;
1744
 
    yyout = stdout;
1745
 
#else
1746
 
    yyin = (FILE *) 0;
1747
 
    yyout = (FILE *) 0;
1748
 
#endif
1749
 
 
1750
 
    /* For future reference: Set errno on error, since we are called by
1751
 
     * yylex_init()
1752
 
     */
1753
 
    return 0;
1754
 
}
1755
 
 
1756
 
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
1757
 
int yylex_destroy  (void)
1758
 
{
1759
 
    
1760
 
    /* Pop the buffer stack, destroying each element. */
1761
 
        while(YY_CURRENT_BUFFER){
1762
 
                yy_delete_buffer(YY_CURRENT_BUFFER  );
1763
 
                YY_CURRENT_BUFFER_LVALUE = NULL;
1764
 
                yypop_buffer_state();
1765
 
        }
1766
 
 
1767
 
        /* Destroy the stack itself. */
1768
 
        yyfree((yy_buffer_stack) );
1769
 
        (yy_buffer_stack) = NULL;
1770
 
 
1771
 
    /* Reset the globals. This is important in a non-reentrant scanner so the next time
1772
 
     * yylex() is called, initialization will occur. */
1773
 
    yy_init_globals( );
1774
 
 
1775
 
    return 0;
1776
 
}
1777
 
 
1778
 
/*
1779
 
 * Internal utility routines.
1780
 
 */
1781
 
 
1782
 
#ifndef yytext_ptr
1783
 
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
1784
 
{
1785
 
        register int i;
1786
 
        for ( i = 0; i < n; ++i )
1787
 
                s1[i] = s2[i];
1788
 
}
1789
 
#endif
1790
 
 
1791
 
#ifdef YY_NEED_STRLEN
1792
 
static int yy_flex_strlen (yyconst char * s )
1793
 
{
1794
 
        register int n;
1795
 
        for ( n = 0; s[n]; ++n )
1796
 
                ;
1797
 
 
1798
 
        return n;
1799
 
}
1800
 
#endif
1801
 
 
1802
 
void *yyalloc (yy_size_t  size )
1803
 
{
1804
 
        return (void *) malloc( size );
1805
 
}
1806
 
 
1807
 
void *yyrealloc  (void * ptr, yy_size_t  size )
1808
 
{
1809
 
        /* The cast to (char *) in the following accommodates both
1810
 
         * implementations that use char* generic pointers, and those
1811
 
         * that use void* generic pointers.  It works with the latter
1812
 
         * because both ANSI C and C++ allow castless assignment from
1813
 
         * any pointer type to void*, and deal with argument conversions
1814
 
         * as though doing an assignment.
1815
 
         */
1816
 
        return (void *) realloc( (char *) ptr, size );
1817
 
}
1818
 
 
1819
 
void yyfree (void * ptr )
1820
 
{
1821
 
        free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
1822
 
}
1823
 
 
1824
 
#define YYTABLES_NAME "yytables"
1825
 
 
1826
 
#line 115 "lexer.l"
1827
 
 
1828
 
 
1829
 
 
1830
 
int yywrap(void) 
1831
 
{
1832
 
        return 1;
1833
 
}
1834