1b18c2d1eSnia#line 1 "/home/fullermd/work/ctwm/bzr/dev/ctwm-mktar.4Y0T7b/ctwm-4.1.0/build/lex.c"
20bbfda8aSnia
3b18c2d1eSnia#line 3 "/home/fullermd/work/ctwm/bzr/dev/ctwm-mktar.4Y0T7b/ctwm-4.1.0/build/lex.c"
40bbfda8aSnia
50bbfda8aSnia#define  YY_INT_ALIGNED short int
60bbfda8aSnia
70bbfda8aSnia/* A lexical scanner generated by flex */
80bbfda8aSnia
90bbfda8aSnia#define FLEX_SCANNER
100bbfda8aSnia#define YY_FLEX_MAJOR_VERSION 2
110bbfda8aSnia#define YY_FLEX_MINOR_VERSION 6
120bbfda8aSnia#define YY_FLEX_SUBMINOR_VERSION 4
130bbfda8aSnia#if YY_FLEX_SUBMINOR_VERSION > 0
140bbfda8aSnia#define FLEX_BETA
150bbfda8aSnia#endif
160bbfda8aSnia
170bbfda8aSnia/* First, we deal with  platform-specific or compiler-specific issues. */
180bbfda8aSnia
190bbfda8aSnia/* begin standard C headers. */
200bbfda8aSnia#include <stdio.h>
210bbfda8aSnia#include <string.h>
220bbfda8aSnia#include <errno.h>
230bbfda8aSnia#include <stdlib.h>
240bbfda8aSnia
250bbfda8aSnia/* end standard C headers. */
260bbfda8aSnia
270bbfda8aSnia/* flex integer type definitions */
280bbfda8aSnia
290bbfda8aSnia#ifndef FLEXINT_H
300bbfda8aSnia#define FLEXINT_H
310bbfda8aSnia
320bbfda8aSnia/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
330bbfda8aSnia
340bbfda8aSnia#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
350bbfda8aSnia
360bbfda8aSnia/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
370bbfda8aSnia * if you want the limit (max/min) macros for int types.
380bbfda8aSnia */
390bbfda8aSnia#ifndef __STDC_LIMIT_MACROS
400bbfda8aSnia#define __STDC_LIMIT_MACROS 1
410bbfda8aSnia#endif
420bbfda8aSnia
430bbfda8aSnia#include <inttypes.h>
440bbfda8aSniatypedef int8_t flex_int8_t;
450bbfda8aSniatypedef uint8_t flex_uint8_t;
460bbfda8aSniatypedef int16_t flex_int16_t;
470bbfda8aSniatypedef uint16_t flex_uint16_t;
480bbfda8aSniatypedef int32_t flex_int32_t;
490bbfda8aSniatypedef uint32_t flex_uint32_t;
500bbfda8aSnia#else
510bbfda8aSniatypedef signed char flex_int8_t;
520bbfda8aSniatypedef short int flex_int16_t;
530bbfda8aSniatypedef int flex_int32_t;
540bbfda8aSniatypedef unsigned char flex_uint8_t;
550bbfda8aSniatypedef unsigned short int flex_uint16_t;
560bbfda8aSniatypedef unsigned int flex_uint32_t;
570bbfda8aSnia
580bbfda8aSnia/* Limits of integral types. */
590bbfda8aSnia#ifndef INT8_MIN
600bbfda8aSnia#define INT8_MIN               (-128)
610bbfda8aSnia#endif
620bbfda8aSnia#ifndef INT16_MIN
630bbfda8aSnia#define INT16_MIN              (-32767-1)
640bbfda8aSnia#endif
650bbfda8aSnia#ifndef INT32_MIN
660bbfda8aSnia#define INT32_MIN              (-2147483647-1)
670bbfda8aSnia#endif
680bbfda8aSnia#ifndef INT8_MAX
690bbfda8aSnia#define INT8_MAX               (127)
700bbfda8aSnia#endif
710bbfda8aSnia#ifndef INT16_MAX
720bbfda8aSnia#define INT16_MAX              (32767)
730bbfda8aSnia#endif
740bbfda8aSnia#ifndef INT32_MAX
750bbfda8aSnia#define INT32_MAX              (2147483647)
760bbfda8aSnia#endif
770bbfda8aSnia#ifndef UINT8_MAX
780bbfda8aSnia#define UINT8_MAX              (255U)
790bbfda8aSnia#endif
800bbfda8aSnia#ifndef UINT16_MAX
810bbfda8aSnia#define UINT16_MAX             (65535U)
820bbfda8aSnia#endif
830bbfda8aSnia#ifndef UINT32_MAX
840bbfda8aSnia#define UINT32_MAX             (4294967295U)
850bbfda8aSnia#endif
860bbfda8aSnia
870bbfda8aSnia#ifndef SIZE_MAX
880bbfda8aSnia#define SIZE_MAX               (~(size_t)0)
890bbfda8aSnia#endif
900bbfda8aSnia
910bbfda8aSnia#endif /* ! C99 */
920bbfda8aSnia
930bbfda8aSnia#endif /* ! FLEXINT_H */
940bbfda8aSnia
950bbfda8aSnia/* begin standard C++ headers. */
960bbfda8aSnia
970bbfda8aSnia/* TODO: this is always defined, so inline it */
980bbfda8aSnia#define yyconst const
990bbfda8aSnia
1000bbfda8aSnia#if defined(__GNUC__) && __GNUC__ >= 3
1010bbfda8aSnia#define yynoreturn __attribute__((__noreturn__))
1020bbfda8aSnia#else
1030bbfda8aSnia#define yynoreturn
1040bbfda8aSnia#endif
1050bbfda8aSnia
1060bbfda8aSnia/* Returned upon end-of-file. */
1070bbfda8aSnia#define YY_NULL 0
1080bbfda8aSnia
1090bbfda8aSnia/* Promotes a possibly negative, possibly signed char to an
1100bbfda8aSnia *   integer in range [0..255] for use as an array index.
1110bbfda8aSnia */
1120bbfda8aSnia#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
1130bbfda8aSnia
1140bbfda8aSnia/* Enter a start condition.  This macro really ought to take a parameter,
1150bbfda8aSnia * but we do it the disgusting crufty way forced on us by the ()-less
1160bbfda8aSnia * definition of BEGIN.
1170bbfda8aSnia */
1180bbfda8aSnia#define BEGIN (yy_start) = 1 + 2 *
1190bbfda8aSnia/* Translate the current start state into a value that can be later handed
1200bbfda8aSnia * to BEGIN to return to the state.  The YYSTATE alias is for lex
1210bbfda8aSnia * compatibility.
1220bbfda8aSnia */
1230bbfda8aSnia#define YY_START (((yy_start) - 1) / 2)
1240bbfda8aSnia#define YYSTATE YY_START
1250bbfda8aSnia/* Action number for EOF rule of a given start state. */
1260bbfda8aSnia#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
1270bbfda8aSnia/* Special action meaning "start processing a new file". */
1280bbfda8aSnia#define YY_NEW_FILE yyrestart( yyin  )
1290bbfda8aSnia#define YY_END_OF_BUFFER_CHAR 0
1300bbfda8aSnia
1310bbfda8aSnia/* Size of default input buffer. */
1320bbfda8aSnia#ifndef YY_BUF_SIZE
1330bbfda8aSnia#ifdef __ia64__
1340bbfda8aSnia/* On IA-64, the buffer size is 16k, not 8k.
1350bbfda8aSnia * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
1360bbfda8aSnia * Ditto for the __ia64__ case accordingly.
1370bbfda8aSnia */
1380bbfda8aSnia#define YY_BUF_SIZE 32768
1390bbfda8aSnia#else
1400bbfda8aSnia#define YY_BUF_SIZE 16384
1410bbfda8aSnia#endif /* __ia64__ */
1420bbfda8aSnia#endif
1430bbfda8aSnia
1440bbfda8aSnia/* The state buf must be large enough to hold one state per character in the main buffer.
1450bbfda8aSnia */
1460bbfda8aSnia#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
1470bbfda8aSnia
1480bbfda8aSnia#ifndef YY_TYPEDEF_YY_BUFFER_STATE
1490bbfda8aSnia#define YY_TYPEDEF_YY_BUFFER_STATE
1500bbfda8aSniatypedef struct yy_buffer_state *YY_BUFFER_STATE;
1510bbfda8aSnia#endif
1520bbfda8aSnia
1530bbfda8aSnia#ifndef YY_TYPEDEF_YY_SIZE_T
1540bbfda8aSnia#define YY_TYPEDEF_YY_SIZE_T
1550bbfda8aSniatypedef size_t yy_size_t;
1560bbfda8aSnia#endif
1570bbfda8aSnia
1580bbfda8aSniaextern int yyleng;
1590bbfda8aSnia
1600bbfda8aSniaextern FILE *yyin, *yyout;
1610bbfda8aSnia
1620bbfda8aSnia#define EOB_ACT_CONTINUE_SCAN 0
1630bbfda8aSnia#define EOB_ACT_END_OF_FILE 1
1640bbfda8aSnia#define EOB_ACT_LAST_MATCH 2
1650bbfda8aSnia
1660bbfda8aSnia    #define YY_LESS_LINENO(n)
1670bbfda8aSnia    #define YY_LINENO_REWIND_TO(ptr)
1680bbfda8aSnia
1690bbfda8aSnia/* Return all but the first "n" matched characters back to the input stream. */
1700bbfda8aSnia#define yyless(n) \
1710bbfda8aSnia	do \
1720bbfda8aSnia		{ \
1730bbfda8aSnia		/* Undo effects of setting up yytext. */ \
1740bbfda8aSnia        int yyless_macro_arg = (n); \
1750bbfda8aSnia        YY_LESS_LINENO(yyless_macro_arg);\
1760bbfda8aSnia		*yy_cp = (yy_hold_char); \
1770bbfda8aSnia		YY_RESTORE_YY_MORE_OFFSET \
1780bbfda8aSnia		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
1790bbfda8aSnia		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
1800bbfda8aSnia		} \
1810bbfda8aSnia	while ( 0 )
1820bbfda8aSnia#define unput(c) yyunput( c, (yytext_ptr)  )
1830bbfda8aSnia
1840bbfda8aSnia#ifndef YY_STRUCT_YY_BUFFER_STATE
1850bbfda8aSnia#define YY_STRUCT_YY_BUFFER_STATE
1860bbfda8aSniastruct yy_buffer_state
1870bbfda8aSnia	{
1880bbfda8aSnia	FILE *yy_input_file;
1890bbfda8aSnia
1900bbfda8aSnia	char *yy_ch_buf;		/* input buffer */
1910bbfda8aSnia	char *yy_buf_pos;		/* current position in input buffer */
1920bbfda8aSnia
1930bbfda8aSnia	/* Size of input buffer in bytes, not including room for EOB
1940bbfda8aSnia	 * characters.
1950bbfda8aSnia	 */
1960bbfda8aSnia	int yy_buf_size;
1970bbfda8aSnia
1980bbfda8aSnia	/* Number of characters read into yy_ch_buf, not including EOB
1990bbfda8aSnia	 * characters.
2000bbfda8aSnia	 */
2010bbfda8aSnia	int yy_n_chars;
2020bbfda8aSnia
2030bbfda8aSnia	/* Whether we "own" the buffer - i.e., we know we created it,
2040bbfda8aSnia	 * and can realloc() it to grow it, and should free() it to
2050bbfda8aSnia	 * delete it.
2060bbfda8aSnia	 */
2070bbfda8aSnia	int yy_is_our_buffer;
2080bbfda8aSnia
2090bbfda8aSnia	/* Whether this is an "interactive" input source; if so, and
2100bbfda8aSnia	 * if we're using stdio for input, then we want to use getc()
2110bbfda8aSnia	 * instead of fread(), to make sure we stop fetching input after
2120bbfda8aSnia	 * each newline.
2130bbfda8aSnia	 */
2140bbfda8aSnia	int yy_is_interactive;
2150bbfda8aSnia
2160bbfda8aSnia	/* Whether we're considered to be at the beginning of a line.
2170bbfda8aSnia	 * If so, '^' rules will be active on the next match, otherwise
2180bbfda8aSnia	 * not.
2190bbfda8aSnia	 */
2200bbfda8aSnia	int yy_at_bol;
2210bbfda8aSnia
2220bbfda8aSnia    int yy_bs_lineno; /**< The line count. */
2230bbfda8aSnia    int yy_bs_column; /**< The column count. */
2240bbfda8aSnia
2250bbfda8aSnia	/* Whether to try to fill the input buffer when we reach the
2260bbfda8aSnia	 * end of it.
2270bbfda8aSnia	 */
2280bbfda8aSnia	int yy_fill_buffer;
2290bbfda8aSnia
2300bbfda8aSnia	int yy_buffer_status;
2310bbfda8aSnia
2320bbfda8aSnia#define YY_BUFFER_NEW 0
2330bbfda8aSnia#define YY_BUFFER_NORMAL 1
2340bbfda8aSnia	/* When an EOF's been seen but there's still some text to process
2350bbfda8aSnia	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
2360bbfda8aSnia	 * shouldn't try reading from the input source any more.  We might
2370bbfda8aSnia	 * still have a bunch of tokens to match, though, because of
2380bbfda8aSnia	 * possible backing-up.
2390bbfda8aSnia	 *
2400bbfda8aSnia	 * When we actually see the EOF, we change the status to "new"
2410bbfda8aSnia	 * (via yyrestart()), so that the user can continue scanning by
2420bbfda8aSnia	 * just pointing yyin at a new input file.
2430bbfda8aSnia	 */
2440bbfda8aSnia#define YY_BUFFER_EOF_PENDING 2
2450bbfda8aSnia
2460bbfda8aSnia	};
2470bbfda8aSnia#endif /* !YY_STRUCT_YY_BUFFER_STATE */
2480bbfda8aSnia
2490bbfda8aSnia/* Stack of input buffers. */
2500bbfda8aSniastatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
2510bbfda8aSniastatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
2520bbfda8aSniastatic YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
2530bbfda8aSnia
2540bbfda8aSnia/* We provide macros for accessing buffer states in case in the
2550bbfda8aSnia * future we want to put the buffer states in a more general
2560bbfda8aSnia * "scanner state".
2570bbfda8aSnia *
2580bbfda8aSnia * Returns the top of the stack, or NULL.
2590bbfda8aSnia */
2600bbfda8aSnia#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
2610bbfda8aSnia                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
2620bbfda8aSnia                          : NULL)
2630bbfda8aSnia/* Same as previous macro, but useful when we know that the buffer stack is not
2640bbfda8aSnia * NULL or when we need an lvalue. For internal use only.
2650bbfda8aSnia */
2660bbfda8aSnia#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
2670bbfda8aSnia
2680bbfda8aSnia/* yy_hold_char holds the character lost when yytext is formed. */
2690bbfda8aSniastatic char yy_hold_char;
2700bbfda8aSniastatic int yy_n_chars;		/* number of characters read into yy_ch_buf */
2710bbfda8aSniaint yyleng;
2720bbfda8aSnia
2730bbfda8aSnia/* Points to current character in buffer. */
2740bbfda8aSniastatic char *yy_c_buf_p = NULL;
2750bbfda8aSniastatic int yy_init = 0;		/* whether we need to initialize */
2760bbfda8aSniastatic int yy_start = 0;	/* start state number */
2770bbfda8aSnia
2780bbfda8aSnia/* Flag which is used to allow yywrap()'s to do buffer switches
2790bbfda8aSnia * instead of setting up a fresh yyin.  A bit of a hack ...
2800bbfda8aSnia */
2810bbfda8aSniastatic int yy_did_buffer_switch_on_eof;
2820bbfda8aSnia
2830bbfda8aSniavoid yyrestart ( FILE *input_file  );
2840bbfda8aSniavoid yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
2850bbfda8aSniaYY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
2860bbfda8aSniavoid yy_delete_buffer ( YY_BUFFER_STATE b  );
2870bbfda8aSniavoid yy_flush_buffer ( YY_BUFFER_STATE b  );
2880bbfda8aSniavoid yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
2890bbfda8aSniavoid yypop_buffer_state ( void );
2900bbfda8aSnia
2910bbfda8aSniastatic void yyensure_buffer_stack ( void );
2920bbfda8aSniastatic void yy_load_buffer_state ( void );
2930bbfda8aSniastatic void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
2940bbfda8aSnia#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
2950bbfda8aSnia
2960bbfda8aSniaYY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
2970bbfda8aSniaYY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
2980bbfda8aSniaYY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
2990bbfda8aSnia
3000bbfda8aSniavoid *yyalloc ( yy_size_t  );
3010bbfda8aSniavoid *yyrealloc ( void *, yy_size_t  );
3020bbfda8aSniavoid yyfree ( void *  );
3030bbfda8aSnia
3040bbfda8aSnia#define yy_new_buffer yy_create_buffer
3050bbfda8aSnia#define yy_set_interactive(is_interactive) \
3060bbfda8aSnia	{ \
3070bbfda8aSnia	if ( ! YY_CURRENT_BUFFER ){ \
3080bbfda8aSnia        yyensure_buffer_stack (); \
3090bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE =    \
3100bbfda8aSnia            yy_create_buffer( yyin, YY_BUF_SIZE ); \
3110bbfda8aSnia	} \
3120bbfda8aSnia	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
3130bbfda8aSnia	}
3140bbfda8aSnia#define yy_set_bol(at_bol) \
3150bbfda8aSnia	{ \
3160bbfda8aSnia	if ( ! YY_CURRENT_BUFFER ){\
3170bbfda8aSnia        yyensure_buffer_stack (); \
3180bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE =    \
3190bbfda8aSnia            yy_create_buffer( yyin, YY_BUF_SIZE ); \
3200bbfda8aSnia	} \
3210bbfda8aSnia	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
3220bbfda8aSnia	}
3230bbfda8aSnia#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
3240bbfda8aSnia
3250bbfda8aSnia/* Begin user sect3 */
3260bbfda8aSnia
3270bbfda8aSnia#define yywrap() (/*CONSTCOND*/1)
3280bbfda8aSnia#define YY_SKIP_YYWRAP
3290bbfda8aSniatypedef flex_uint8_t YY_CHAR;
3300bbfda8aSnia
3310bbfda8aSniaFILE *yyin = NULL, *yyout = NULL;
3320bbfda8aSnia
3330bbfda8aSniatypedef int yy_state_type;
3340bbfda8aSnia
3350bbfda8aSniaextern int yylineno;
3360bbfda8aSniaint yylineno = 1;
3370bbfda8aSnia
3380bbfda8aSniaextern char *yytext;
3390bbfda8aSnia#ifdef yytext_ptr
3400bbfda8aSnia#undef yytext_ptr
3410bbfda8aSnia#endif
3420bbfda8aSnia#define yytext_ptr yytext
3430bbfda8aSnia
3440bbfda8aSniastatic yy_state_type yy_get_previous_state ( void );
3450bbfda8aSniastatic yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
3460bbfda8aSniastatic int yy_get_next_buffer ( void );
3470bbfda8aSniastatic void yynoreturn yy_fatal_error ( const char* msg  );
3480bbfda8aSnia
3490bbfda8aSnia/* Done after the current pattern has been matched and before the
3500bbfda8aSnia * corresponding action - sets up yytext.
3510bbfda8aSnia */
3520bbfda8aSnia#define YY_DO_BEFORE_ACTION \
3530bbfda8aSnia	(yytext_ptr) = yy_bp; \
3540bbfda8aSnia	yyleng = (int) (yy_cp - yy_bp); \
3550bbfda8aSnia	(yy_hold_char) = *yy_cp; \
3560bbfda8aSnia	*yy_cp = '\0'; \
3570bbfda8aSnia	(yy_c_buf_p) = yy_cp;
3580bbfda8aSnia#define YY_NUM_RULES 17
3590bbfda8aSnia#define YY_END_OF_BUFFER 18
3600bbfda8aSnia/* This struct is not used in this scanner,
3610bbfda8aSnia   but its presence is necessary. */
3620bbfda8aSniastruct yy_trans_info
3630bbfda8aSnia	{
3640bbfda8aSnia	flex_int32_t yy_verify;
3650bbfda8aSnia	flex_int32_t yy_nxt;
3660bbfda8aSnia	};
3670bbfda8aSniastatic const flex_int16_t yy_accept[32] =
3680bbfda8aSnia    {   0,
3690bbfda8aSnia        0,    0,   18,   16,   15,   15,   11,   16,   16,    3,
3700bbfda8aSnia        4,    7,    8,   10,   13,    6,    5,    1,    9,    2,
3710bbfda8aSnia        0,   12,    0,    0,   14,   10,   13,    0,   12,    0,
3720bbfda8aSnia        0
3730bbfda8aSnia    } ;
3740bbfda8aSnia
3750bbfda8aSniastatic const YY_CHAR yy_ec[256] =
3760bbfda8aSnia    {   0,
3770bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
3780bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3790bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3800bbfda8aSnia        1,    2,    4,    5,    6,    1,    1,    1,    1,    7,
3810bbfda8aSnia        8,    1,    9,    1,   10,   11,    1,   12,   12,   12,
3820bbfda8aSnia       12,   12,   12,   12,   12,   12,   12,   13,    1,    1,
3830bbfda8aSnia       14,    1,    1,    1,   11,   11,   11,   11,   11,   11,
3840bbfda8aSnia       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
3850bbfda8aSnia       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
3860bbfda8aSnia        1,   15,    1,    1,    1,    1,   11,   11,   11,   11,
3870bbfda8aSnia
3880bbfda8aSnia       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
3890bbfda8aSnia       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
3900bbfda8aSnia       11,   11,   16,   17,   18,    1,    1,    1,    1,    1,
3910bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3920bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3930bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3940bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3950bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3960bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3970bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
3980bbfda8aSnia
3990bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4000bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4010bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4020bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4030bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4040bbfda8aSnia        1,    1,    1,    1,    1
4050bbfda8aSnia    } ;
4060bbfda8aSnia
4070bbfda8aSniastatic const YY_CHAR yy_meta[19] =
4080bbfda8aSnia    {   0,
4090bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4100bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1
4110bbfda8aSnia    } ;
4120bbfda8aSnia
4130bbfda8aSniastatic const flex_int16_t yy_base[35] =
4140bbfda8aSnia    {   0,
4150bbfda8aSnia        0,    0,   38,   57,   57,   57,   57,   14,   34,   57,
4160bbfda8aSnia       57,   57,   57,   25,   23,   57,   57,   57,   57,   57,
4170bbfda8aSnia       15,   57,   28,   25,   57,   16,   14,   17,   19,   41,
4180bbfda8aSnia       57,   24,   22,   20
4190bbfda8aSnia    } ;
4200bbfda8aSnia
4210bbfda8aSniastatic const flex_int16_t yy_def[35] =
4220bbfda8aSnia    {   0,
4230bbfda8aSnia       31,    1,   31,   31,   31,   31,   31,   32,   33,   31,
4240bbfda8aSnia       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
4250bbfda8aSnia       32,   31,   34,   33,   31,   31,   31,   32,   32,   34,
4260bbfda8aSnia        0,   31,   31,   31
4270bbfda8aSnia    } ;
4280bbfda8aSnia
4290bbfda8aSniastatic const flex_int16_t yy_nxt[76] =
4300bbfda8aSnia    {   0,
4310bbfda8aSnia        4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
4320bbfda8aSnia       14,   15,   16,   17,    4,   18,   19,   20,   22,   22,
4330bbfda8aSnia       28,   22,   24,   22,   21,   27,   26,   25,   23,   23,
4340bbfda8aSnia       21,   23,   29,   23,   27,   26,   25,   31,   31,   31,
4350bbfda8aSnia       31,   31,   30,   21,   31,   29,   31,   31,   31,   31,
4360bbfda8aSnia       31,   31,   31,   31,   31,   30,    3,   31,   31,   31,
4370bbfda8aSnia       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
4380bbfda8aSnia       31,   31,   31,   31,   31
4390bbfda8aSnia    } ;
4400bbfda8aSnia
4410bbfda8aSniastatic const flex_int16_t yy_chk[76] =
4420bbfda8aSnia    {   0,
4430bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
4440bbfda8aSnia        1,    1,    1,    1,    1,    1,    1,    1,    8,   21,
4450bbfda8aSnia       34,   28,   33,   29,   32,   27,   26,   24,    8,   21,
4460bbfda8aSnia       23,   28,   23,   29,   15,   14,    9,    3,    0,    0,
4470bbfda8aSnia        0,    0,   23,   30,    0,   30,    0,    0,    0,    0,
4480bbfda8aSnia        0,    0,    0,    0,    0,   30,   31,   31,   31,   31,
4490bbfda8aSnia       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
4500bbfda8aSnia       31,   31,   31,   31,   31
4510bbfda8aSnia    } ;
4520bbfda8aSnia
4530bbfda8aSniastatic yy_state_type yy_last_accepting_state;
4540bbfda8aSniastatic char *yy_last_accepting_cpos;
4550bbfda8aSnia
4560bbfda8aSniaextern int yy_flex_debug;
4570bbfda8aSniaint yy_flex_debug = 0;
4580bbfda8aSnia
4590bbfda8aSnia/* The intent behind this definition is that it'll catch
4600bbfda8aSnia * any uses of REJECT which flex missed.
4610bbfda8aSnia */
4620bbfda8aSnia#define REJECT reject_used_but_not_detected
4630bbfda8aSnia#define yymore() yymore_used_but_not_detected
4640bbfda8aSnia#define YY_MORE_ADJ 0
4650bbfda8aSnia#define YY_RESTORE_YY_MORE_OFFSET
4660bbfda8aSniachar *yytext;
4670bbfda8aSnia#line 1 "lex.l"
4680bbfda8aSnia#line 2 "lex.l"
4690bbfda8aSnia/*
4700bbfda8aSnia *       Copyright 1988 by Evans & Sutherland Computer Corporation,
4710bbfda8aSnia *                          Salt Lake City, Utah
4720bbfda8aSnia *  Portions Copyright 1989 by the Massachusetts Institute of Technology
4730bbfda8aSnia *                        Cambridge, Massachusetts
4740bbfda8aSnia *
4750bbfda8aSnia * Copyright 1992 Claude Lecommandeur.
4760bbfda8aSnia */
4770bbfda8aSnia
4780bbfda8aSnia/***********************************************************************
4790bbfda8aSnia *
4800bbfda8aSnia * $XConsortium: lex.l,v 1.62 89/12/10 17:46:33 jim Exp $
4810bbfda8aSnia *
4820bbfda8aSnia * .twmrc lex file
4830bbfda8aSnia *
4840bbfda8aSnia * 12-Nov-87 Thomas E. LaStrange		File created
4850bbfda8aSnia *
4860bbfda8aSnia ***********************************************************************/
4870bbfda8aSnia
4880bbfda8aSnia#include "ctwm.h"
4890bbfda8aSnia#include "functions_defs.h"
4900bbfda8aSnia#include "parse.h"
4910bbfda8aSnia#include "parse_be.h"
4920bbfda8aSnia
4930bbfda8aSnia#include "gram.tab.h"
4940bbfda8aSnia
4950bbfda8aSnia/*
4960bbfda8aSnia * flex uses a YY_INPUT macro internally rather than input.  It doesn't
4970bbfda8aSnia * need unput since it maintains state internally.
4980bbfda8aSnia */
4990bbfda8aSnia#ifdef FLEX_SCANNER
5000bbfda8aSnia#  undef YY_INPUT
5010bbfda8aSnia#  define YY_INPUT(buf,result,max_size) {buf[0]=twmInputFunc();result=(buf[0] != 0);}
5020bbfda8aSnia#endif
5030bbfda8aSnia
5040bbfda8aSnia/*
5050bbfda8aSnia * YY_FLEX_{MAJOR,MINOR}_VERSION was added in 2.5.1 (28Mar95); just in
5060bbfda8aSnia * case we need to do version checks of stuff.
5070bbfda8aSnia */
5080bbfda8aSnia
5090bbfda8aSnia/*
5100bbfda8aSnia * flex listens to these to avoid declaring these functions, which we
5110bbfda8aSnia * don't use, so suppress the warning.
5120bbfda8aSnia */
5130bbfda8aSnia#define YY_NO_UNPUT
5140bbfda8aSnia#define YY_NO_INPUT
5150bbfda8aSnia
516b18c2d1eSnia#line 516 "/home/fullermd/work/ctwm/bzr/dev/ctwm-mktar.4Y0T7b/ctwm-4.1.0/build/lex.c"
5170bbfda8aSnia#line 55 "lex.l"
5180bbfda8aSnia /* Requires flex 2.5.1 (28Mar95) */
5190bbfda8aSnia /* Requires flex 2.5.2 (25Apr95) */
520b18c2d1eSnia#line 520 "/home/fullermd/work/ctwm/bzr/dev/ctwm-mktar.4Y0T7b/ctwm-4.1.0/build/lex.c"
5210bbfda8aSnia
5220bbfda8aSnia#define INITIAL 0
5230bbfda8aSnia
5240bbfda8aSnia#ifndef YY_NO_UNISTD_H
5250bbfda8aSnia/* Special case for "unistd.h", since it is non-ANSI. We include it way
5260bbfda8aSnia * down here because we want the user's section 1 to have been scanned first.
5270bbfda8aSnia * The user has a chance to override it with an option.
5280bbfda8aSnia */
5290bbfda8aSnia#include <unistd.h>
5300bbfda8aSnia#endif
5310bbfda8aSnia
5320bbfda8aSnia#ifndef YY_EXTRA_TYPE
5330bbfda8aSnia#define YY_EXTRA_TYPE void *
5340bbfda8aSnia#endif
5350bbfda8aSnia
5360bbfda8aSniastatic int yy_init_globals ( void );
5370bbfda8aSnia
5380bbfda8aSnia/* Accessor methods to globals.
5390bbfda8aSnia   These are made visible to non-reentrant scanners for convenience. */
5400bbfda8aSnia
5410bbfda8aSniaint yylex_destroy ( void );
5420bbfda8aSnia
5430bbfda8aSniaint yyget_debug ( void );
5440bbfda8aSnia
5450bbfda8aSniavoid yyset_debug ( int debug_flag  );
5460bbfda8aSnia
5470bbfda8aSniaYY_EXTRA_TYPE yyget_extra ( void );
5480bbfda8aSnia
5490bbfda8aSniavoid yyset_extra ( YY_EXTRA_TYPE user_defined  );
5500bbfda8aSnia
5510bbfda8aSniaFILE *yyget_in ( void );
5520bbfda8aSnia
5530bbfda8aSniavoid yyset_in  ( FILE * _in_str  );
5540bbfda8aSnia
5550bbfda8aSniaFILE *yyget_out ( void );
5560bbfda8aSnia
5570bbfda8aSniavoid yyset_out  ( FILE * _out_str  );
5580bbfda8aSnia
5590bbfda8aSnia			int yyget_leng ( void );
5600bbfda8aSnia
5610bbfda8aSniachar *yyget_text ( void );
5620bbfda8aSnia
5630bbfda8aSniaint yyget_lineno ( void );
5640bbfda8aSnia
5650bbfda8aSniavoid yyset_lineno ( int _line_number  );
5660bbfda8aSnia
5670bbfda8aSnia/* Macros after this point can all be overridden by user definitions in
5680bbfda8aSnia * section 1.
5690bbfda8aSnia */
5700bbfda8aSnia
5710bbfda8aSnia#ifndef YY_SKIP_YYWRAP
5720bbfda8aSnia#ifdef __cplusplus
5730bbfda8aSniaextern "C" int yywrap ( void );
5740bbfda8aSnia#else
5750bbfda8aSniaextern int yywrap ( void );
5760bbfda8aSnia#endif
5770bbfda8aSnia#endif
5780bbfda8aSnia
5790bbfda8aSnia#ifndef YY_NO_UNPUT
5800bbfda8aSnia
5810bbfda8aSnia#endif
5820bbfda8aSnia
5830bbfda8aSnia#ifndef yytext_ptr
5840bbfda8aSniastatic void yy_flex_strncpy ( char *, const char *, int );
5850bbfda8aSnia#endif
5860bbfda8aSnia
5870bbfda8aSnia#ifdef YY_NEED_STRLEN
5880bbfda8aSniastatic int yy_flex_strlen ( const char * );
5890bbfda8aSnia#endif
5900bbfda8aSnia
5910bbfda8aSnia#ifndef YY_NO_INPUT
5920bbfda8aSnia#ifdef __cplusplus
5930bbfda8aSniastatic int yyinput ( void );
5940bbfda8aSnia#else
5950bbfda8aSniastatic int input ( void );
5960bbfda8aSnia#endif
5970bbfda8aSnia
5980bbfda8aSnia#endif
5990bbfda8aSnia
6000bbfda8aSnia/* Amount of stuff to slurp up with each read. */
6010bbfda8aSnia#ifndef YY_READ_BUF_SIZE
6020bbfda8aSnia#ifdef __ia64__
6030bbfda8aSnia/* On IA-64, the buffer size is 16k, not 8k */
6040bbfda8aSnia#define YY_READ_BUF_SIZE 16384
6050bbfda8aSnia#else
6060bbfda8aSnia#define YY_READ_BUF_SIZE 8192
6070bbfda8aSnia#endif /* __ia64__ */
6080bbfda8aSnia#endif
6090bbfda8aSnia
6100bbfda8aSnia/* Copy whatever the last rule matched to the standard output. */
6110bbfda8aSnia#ifndef ECHO
6120bbfda8aSnia/* This used to be an fputs(), but since the string might contain NUL's,
6130bbfda8aSnia * we now use fwrite().
6140bbfda8aSnia */
6150bbfda8aSnia#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
6160bbfda8aSnia#endif
6170bbfda8aSnia
6180bbfda8aSnia/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
6190bbfda8aSnia * is returned in "result".
6200bbfda8aSnia */
6210bbfda8aSnia#ifndef YY_INPUT
6220bbfda8aSnia#define YY_INPUT(buf,result,max_size) \
6230bbfda8aSnia	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
6240bbfda8aSnia		{ \
6250bbfda8aSnia		int c = '*'; \
6260bbfda8aSnia		int n; \
6270bbfda8aSnia		for ( n = 0; n < max_size && \
6280bbfda8aSnia			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
6290bbfda8aSnia			buf[n] = (char) c; \
6300bbfda8aSnia		if ( c == '\n' ) \
6310bbfda8aSnia			buf[n++] = (char) c; \
6320bbfda8aSnia		if ( c == EOF && ferror( yyin ) ) \
6330bbfda8aSnia			YY_FATAL_ERROR( "input in flex scanner failed" ); \
6340bbfda8aSnia		result = n; \
6350bbfda8aSnia		} \
6360bbfda8aSnia	else \
6370bbfda8aSnia		{ \
6380bbfda8aSnia		errno=0; \
6390bbfda8aSnia		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
6400bbfda8aSnia			{ \
6410bbfda8aSnia			if( errno != EINTR) \
6420bbfda8aSnia				{ \
6430bbfda8aSnia				YY_FATAL_ERROR( "input in flex scanner failed" ); \
6440bbfda8aSnia				break; \
6450bbfda8aSnia				} \
6460bbfda8aSnia			errno=0; \
6470bbfda8aSnia			clearerr(yyin); \
6480bbfda8aSnia			} \
6490bbfda8aSnia		}\
6500bbfda8aSnia\
6510bbfda8aSnia
6520bbfda8aSnia#endif
6530bbfda8aSnia
6540bbfda8aSnia/* No semi-colon after return; correct usage is to write "yyterminate();" -
6550bbfda8aSnia * we don't want an extra ';' after the "return" because that will cause
6560bbfda8aSnia * some compilers to complain about unreachable statements.
6570bbfda8aSnia */
6580bbfda8aSnia#ifndef yyterminate
6590bbfda8aSnia#define yyterminate() return YY_NULL
6600bbfda8aSnia#endif
6610bbfda8aSnia
6620bbfda8aSnia/* Number of entries by which start-condition stack grows. */
6630bbfda8aSnia#ifndef YY_START_STACK_INCR
6640bbfda8aSnia#define YY_START_STACK_INCR 25
6650bbfda8aSnia#endif
6660bbfda8aSnia
6670bbfda8aSnia/* Report a fatal error. */
6680bbfda8aSnia#ifndef YY_FATAL_ERROR
6690bbfda8aSnia#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
6700bbfda8aSnia#endif
6710bbfda8aSnia
6720bbfda8aSnia/* end tables serialization structures and prototypes */
6730bbfda8aSnia
6740bbfda8aSnia/* Default declaration of generated scanner - a define so the user can
6750bbfda8aSnia * easily add parameters.
6760bbfda8aSnia */
6770bbfda8aSnia#ifndef YY_DECL
6780bbfda8aSnia#define YY_DECL_IS_OURS 1
6790bbfda8aSnia
6800bbfda8aSniaextern int yylex (void);
6810bbfda8aSnia
6820bbfda8aSnia#define YY_DECL int yylex (void)
6830bbfda8aSnia#endif /* !YY_DECL */
6840bbfda8aSnia
6850bbfda8aSnia/* Code executed at the beginning of each rule, after yytext and yyleng
6860bbfda8aSnia * have been set up.
6870bbfda8aSnia */
6880bbfda8aSnia#ifndef YY_USER_ACTION
6890bbfda8aSnia#define YY_USER_ACTION
6900bbfda8aSnia#endif
6910bbfda8aSnia
6920bbfda8aSnia/* Code executed at the end of each rule. */
6930bbfda8aSnia#ifndef YY_BREAK
6940bbfda8aSnia#define YY_BREAK /*LINTED*/break;
6950bbfda8aSnia#endif
6960bbfda8aSnia
6970bbfda8aSnia#define YY_RULE_SETUP \
6980bbfda8aSnia	YY_USER_ACTION
6990bbfda8aSnia
7000bbfda8aSnia/** The main scanner function which does all the work.
7010bbfda8aSnia */
7020bbfda8aSniaYY_DECL
7030bbfda8aSnia{
7040bbfda8aSnia	yy_state_type yy_current_state;
7050bbfda8aSnia	char *yy_cp, *yy_bp;
7060bbfda8aSnia	int yy_act;
7070bbfda8aSnia
7080bbfda8aSnia	if ( !(yy_init) )
7090bbfda8aSnia		{
7100bbfda8aSnia		(yy_init) = 1;
7110bbfda8aSnia
7120bbfda8aSnia#ifdef YY_USER_INIT
7130bbfda8aSnia		YY_USER_INIT;
7140bbfda8aSnia#endif
7150bbfda8aSnia
7160bbfda8aSnia		if ( ! (yy_start) )
7170bbfda8aSnia			(yy_start) = 1;	/* first start state */
7180bbfda8aSnia
7190bbfda8aSnia		if ( ! yyin )
7200bbfda8aSnia			yyin = stdin;
7210bbfda8aSnia
7220bbfda8aSnia		if ( ! yyout )
7230bbfda8aSnia			yyout = stdout;
7240bbfda8aSnia
7250bbfda8aSnia		if ( ! YY_CURRENT_BUFFER ) {
7260bbfda8aSnia			yyensure_buffer_stack ();
7270bbfda8aSnia			YY_CURRENT_BUFFER_LVALUE =
7280bbfda8aSnia				yy_create_buffer( yyin, YY_BUF_SIZE );
7290bbfda8aSnia		}
7300bbfda8aSnia
7310bbfda8aSnia		yy_load_buffer_state(  );
7320bbfda8aSnia		}
7330bbfda8aSnia
7340bbfda8aSnia	{
7350bbfda8aSnia#line 60 "lex.l"
7360bbfda8aSnia
737b18c2d1eSnia#line 737 "/home/fullermd/work/ctwm/bzr/dev/ctwm-mktar.4Y0T7b/ctwm-4.1.0/build/lex.c"
7380bbfda8aSnia
7390bbfda8aSnia	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
7400bbfda8aSnia		{
7410bbfda8aSnia		yy_cp = (yy_c_buf_p);
7420bbfda8aSnia
7430bbfda8aSnia		/* Support of yytext. */
7440bbfda8aSnia		*yy_cp = (yy_hold_char);
7450bbfda8aSnia
7460bbfda8aSnia		/* yy_bp points to the position in yy_ch_buf of the start of
7470bbfda8aSnia		 * the current run.
7480bbfda8aSnia		 */
7490bbfda8aSnia		yy_bp = yy_cp;
7500bbfda8aSnia
7510bbfda8aSnia		yy_current_state = (yy_start);
7520bbfda8aSniayy_match:
7530bbfda8aSnia		do
7540bbfda8aSnia			{
7550bbfda8aSnia			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
7560bbfda8aSnia			if ( yy_accept[yy_current_state] )
7570bbfda8aSnia				{
7580bbfda8aSnia				(yy_last_accepting_state) = yy_current_state;
7590bbfda8aSnia				(yy_last_accepting_cpos) = yy_cp;
7600bbfda8aSnia				}
7610bbfda8aSnia			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
7620bbfda8aSnia				{
7630bbfda8aSnia				yy_current_state = (int) yy_def[yy_current_state];
7640bbfda8aSnia				if ( yy_current_state >= 32 )
7650bbfda8aSnia					yy_c = yy_meta[yy_c];
7660bbfda8aSnia				}
7670bbfda8aSnia			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
7680bbfda8aSnia			++yy_cp;
7690bbfda8aSnia			}
7700bbfda8aSnia		while ( yy_base[yy_current_state] != 57 );
7710bbfda8aSnia
7720bbfda8aSniayy_find_action:
7730bbfda8aSnia		yy_act = yy_accept[yy_current_state];
7740bbfda8aSnia		if ( yy_act == 0 )
7750bbfda8aSnia			{ /* have to back up */
7760bbfda8aSnia			yy_cp = (yy_last_accepting_cpos);
7770bbfda8aSnia			yy_current_state = (yy_last_accepting_state);
7780bbfda8aSnia			yy_act = yy_accept[yy_current_state];
7790bbfda8aSnia			}
7800bbfda8aSnia
7810bbfda8aSnia		YY_DO_BEFORE_ACTION;
7820bbfda8aSnia
7830bbfda8aSniado_action:	/* This label is used only to access EOF actions. */
7840bbfda8aSnia
7850bbfda8aSnia		switch ( yy_act )
7860bbfda8aSnia	{ /* beginning of action switch */
7870bbfda8aSnia			case 0: /* must back up */
7880bbfda8aSnia			/* undo the effects of YY_DO_BEFORE_ACTION */
7890bbfda8aSnia			*yy_cp = (yy_hold_char);
7900bbfda8aSnia			yy_cp = (yy_last_accepting_cpos);
7910bbfda8aSnia			yy_current_state = (yy_last_accepting_state);
7920bbfda8aSnia			goto yy_find_action;
7930bbfda8aSnia
7940bbfda8aSniacase 1:
7950bbfda8aSniaYY_RULE_SETUP
7960bbfda8aSnia#line 61 "lex.l"
7970bbfda8aSnia{ return (LB); }
7980bbfda8aSnia	YY_BREAK
7990bbfda8aSniacase 2:
8000bbfda8aSniaYY_RULE_SETUP
8010bbfda8aSnia#line 62 "lex.l"
8020bbfda8aSnia{ return (RB); }
8030bbfda8aSnia	YY_BREAK
8040bbfda8aSniacase 3:
8050bbfda8aSniaYY_RULE_SETUP
8060bbfda8aSnia#line 63 "lex.l"
8070bbfda8aSnia{ return (LP); }
8080bbfda8aSnia	YY_BREAK
8090bbfda8aSniacase 4:
8100bbfda8aSniaYY_RULE_SETUP
8110bbfda8aSnia#line 64 "lex.l"
8120bbfda8aSnia{ return (RP); }
8130bbfda8aSnia	YY_BREAK
8140bbfda8aSniacase 5:
8150bbfda8aSniaYY_RULE_SETUP
8160bbfda8aSnia#line 65 "lex.l"
8170bbfda8aSnia{ return (EQUALS); }
8180bbfda8aSnia	YY_BREAK
8190bbfda8aSniacase 6:
8200bbfda8aSniaYY_RULE_SETUP
8210bbfda8aSnia#line 66 "lex.l"
8220bbfda8aSnia{ return (COLON); }
8230bbfda8aSnia	YY_BREAK
8240bbfda8aSniacase 7:
8250bbfda8aSniaYY_RULE_SETUP
8260bbfda8aSnia#line 67 "lex.l"
8270bbfda8aSnia{ return PLUS; }
8280bbfda8aSnia	YY_BREAK
8290bbfda8aSniacase 8:
8300bbfda8aSniaYY_RULE_SETUP
8310bbfda8aSnia#line 68 "lex.l"
8320bbfda8aSnia{ return MINUS; }
8330bbfda8aSnia	YY_BREAK
8340bbfda8aSniacase 9:
8350bbfda8aSniaYY_RULE_SETUP
8360bbfda8aSnia#line 69 "lex.l"
8370bbfda8aSnia{ return OR; }
8380bbfda8aSnia	YY_BREAK
8390bbfda8aSniacase 10:
8400bbfda8aSniaYY_RULE_SETUP
8410bbfda8aSnia#line 71 "lex.l"
8420bbfda8aSnia{ int token = parse_keyword (yytext,
8430bbfda8aSnia							     &yylval.num);
8440bbfda8aSnia				  if (token == ERRORTOKEN) {
8450bbfda8aSnia				      twmrc_error_prefix();
8460bbfda8aSnia				      fprintf (stderr,
8470bbfda8aSnia				       "ignoring unknown keyword:  %s\n",
8480bbfda8aSnia					       yytext);
8490bbfda8aSnia				      ParseError = true;
8500bbfda8aSnia				  } else
8510bbfda8aSnia				    return token;
8520bbfda8aSnia				}
8530bbfda8aSnia	YY_BREAK
8540bbfda8aSniacase 11:
8550bbfda8aSniaYY_RULE_SETUP
8560bbfda8aSnia#line 83 "lex.l"
8570bbfda8aSnia{ yylval.num = F_EXEC; return FSKEYWORD; }
8580bbfda8aSnia	YY_BREAK
8590bbfda8aSniacase 12:
8600bbfda8aSnia/* rule 12 can match eol */
8610bbfda8aSniaYY_RULE_SETUP
8620bbfda8aSnia#line 85 "lex.l"
8630bbfda8aSnia{ yylval.ptr = yytext; return STRING; }
8640bbfda8aSnia	YY_BREAK
8650bbfda8aSniacase 13:
8660bbfda8aSniaYY_RULE_SETUP
8670bbfda8aSnia#line 86 "lex.l"
8680bbfda8aSnia{ sscanf(yytext, "%d", &yylval.num);
8690bbfda8aSnia				  return NUMBER; }
8700bbfda8aSnia	YY_BREAK
8710bbfda8aSniacase 14:
8720bbfda8aSnia/* rule 14 can match eol */
8730bbfda8aSniaYY_RULE_SETUP
8740bbfda8aSnia#line 88 "lex.l"
8750bbfda8aSnia{;}
8760bbfda8aSnia	YY_BREAK
8770bbfda8aSniacase 15:
8780bbfda8aSnia/* rule 15 can match eol */
8790bbfda8aSniaYY_RULE_SETUP
8800bbfda8aSnia#line 89 "lex.l"
8810bbfda8aSnia{;}
8820bbfda8aSnia	YY_BREAK
8830bbfda8aSniacase 16:
8840bbfda8aSniaYY_RULE_SETUP
8850bbfda8aSnia#line 90 "lex.l"
8860bbfda8aSnia{
8870bbfda8aSnia				  twmrc_error_prefix();
8880bbfda8aSnia				  fprintf (stderr,
8890bbfda8aSnia					   "ignoring character \"%s\"\n",
8900bbfda8aSnia					   yytext);
8910bbfda8aSnia				  ParseError = true;
8920bbfda8aSnia				}
8930bbfda8aSnia	YY_BREAK
8940bbfda8aSniacase 17:
8950bbfda8aSniaYY_RULE_SETUP
8960bbfda8aSnia#line 97 "lex.l"
8970bbfda8aSniaECHO;
8980bbfda8aSnia	YY_BREAK
899b18c2d1eSnia#line 899 "/home/fullermd/work/ctwm/bzr/dev/ctwm-mktar.4Y0T7b/ctwm-4.1.0/build/lex.c"
9000bbfda8aSniacase YY_STATE_EOF(INITIAL):
9010bbfda8aSnia	yyterminate();
9020bbfda8aSnia
9030bbfda8aSnia	case YY_END_OF_BUFFER:
9040bbfda8aSnia		{
9050bbfda8aSnia		/* Amount of text matched not including the EOB char. */
9060bbfda8aSnia		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9070bbfda8aSnia
9080bbfda8aSnia		/* Undo the effects of YY_DO_BEFORE_ACTION. */
9090bbfda8aSnia		*yy_cp = (yy_hold_char);
9100bbfda8aSnia		YY_RESTORE_YY_MORE_OFFSET
9110bbfda8aSnia
9120bbfda8aSnia		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9130bbfda8aSnia			{
9140bbfda8aSnia			/* We're scanning a new file or input source.  It's
9150bbfda8aSnia			 * possible that this happened because the user
9160bbfda8aSnia			 * just pointed yyin at a new source and called
9170bbfda8aSnia			 * yylex().  If so, then we have to assure
9180bbfda8aSnia			 * consistency between YY_CURRENT_BUFFER and our
9190bbfda8aSnia			 * globals.  Here is the right place to do so, because
9200bbfda8aSnia			 * this is the first action (other than possibly a
9210bbfda8aSnia			 * back-up) that will match for the new input source.
9220bbfda8aSnia			 */
9230bbfda8aSnia			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9240bbfda8aSnia			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
9250bbfda8aSnia			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9260bbfda8aSnia			}
9270bbfda8aSnia
9280bbfda8aSnia		/* Note that here we test for yy_c_buf_p "<=" to the position
9290bbfda8aSnia		 * of the first EOB in the buffer, since yy_c_buf_p will
9300bbfda8aSnia		 * already have been incremented past the NUL character
9310bbfda8aSnia		 * (since all states make transitions on EOB to the
9320bbfda8aSnia		 * end-of-buffer state).  Contrast this with the test
9330bbfda8aSnia		 * in input().
9340bbfda8aSnia		 */
9350bbfda8aSnia		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9360bbfda8aSnia			{ /* This was really a NUL. */
9370bbfda8aSnia			yy_state_type yy_next_state;
9380bbfda8aSnia
9390bbfda8aSnia			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9400bbfda8aSnia
9410bbfda8aSnia			yy_current_state = yy_get_previous_state(  );
9420bbfda8aSnia
9430bbfda8aSnia			/* Okay, we're now positioned to make the NUL
9440bbfda8aSnia			 * transition.  We couldn't have
9450bbfda8aSnia			 * yy_get_previous_state() go ahead and do it
9460bbfda8aSnia			 * for us because it doesn't know how to deal
9470bbfda8aSnia			 * with the possibility of jamming (and we don't
9480bbfda8aSnia			 * want to build jamming into it because then it
9490bbfda8aSnia			 * will run more slowly).
9500bbfda8aSnia			 */
9510bbfda8aSnia
9520bbfda8aSnia			yy_next_state = yy_try_NUL_trans( yy_current_state );
9530bbfda8aSnia
9540bbfda8aSnia			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9550bbfda8aSnia
9560bbfda8aSnia			if ( yy_next_state )
9570bbfda8aSnia				{
9580bbfda8aSnia				/* Consume the NUL. */
9590bbfda8aSnia				yy_cp = ++(yy_c_buf_p);
9600bbfda8aSnia				yy_current_state = yy_next_state;
9610bbfda8aSnia				goto yy_match;
9620bbfda8aSnia				}
9630bbfda8aSnia
9640bbfda8aSnia			else
9650bbfda8aSnia				{
9660bbfda8aSnia				yy_cp = (yy_c_buf_p);
9670bbfda8aSnia				goto yy_find_action;
9680bbfda8aSnia				}
9690bbfda8aSnia			}
9700bbfda8aSnia
9710bbfda8aSnia		else switch ( yy_get_next_buffer(  ) )
9720bbfda8aSnia			{
9730bbfda8aSnia			case EOB_ACT_END_OF_FILE:
9740bbfda8aSnia				{
9750bbfda8aSnia				(yy_did_buffer_switch_on_eof) = 0;
9760bbfda8aSnia
9770bbfda8aSnia				if ( yywrap(  ) )
9780bbfda8aSnia					{
9790bbfda8aSnia					/* Note: because we've taken care in
9800bbfda8aSnia					 * yy_get_next_buffer() to have set up
9810bbfda8aSnia					 * yytext, we can now set up
9820bbfda8aSnia					 * yy_c_buf_p so that if some total
9830bbfda8aSnia					 * hoser (like flex itself) wants to
9840bbfda8aSnia					 * call the scanner after we return the
9850bbfda8aSnia					 * YY_NULL, it'll still work - another
9860bbfda8aSnia					 * YY_NULL will get returned.
9870bbfda8aSnia					 */
9880bbfda8aSnia					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9890bbfda8aSnia
9900bbfda8aSnia					yy_act = YY_STATE_EOF(YY_START);
9910bbfda8aSnia					goto do_action;
9920bbfda8aSnia					}
9930bbfda8aSnia
9940bbfda8aSnia				else
9950bbfda8aSnia					{
9960bbfda8aSnia					if ( ! (yy_did_buffer_switch_on_eof) )
9970bbfda8aSnia						YY_NEW_FILE;
9980bbfda8aSnia					}
9990bbfda8aSnia				break;
10000bbfda8aSnia				}
10010bbfda8aSnia
10020bbfda8aSnia			case EOB_ACT_CONTINUE_SCAN:
10030bbfda8aSnia				(yy_c_buf_p) =
10040bbfda8aSnia					(yytext_ptr) + yy_amount_of_matched_text;
10050bbfda8aSnia
10060bbfda8aSnia				yy_current_state = yy_get_previous_state(  );
10070bbfda8aSnia
10080bbfda8aSnia				yy_cp = (yy_c_buf_p);
10090bbfda8aSnia				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
10100bbfda8aSnia				goto yy_match;
10110bbfda8aSnia
10120bbfda8aSnia			case EOB_ACT_LAST_MATCH:
10130bbfda8aSnia				(yy_c_buf_p) =
10140bbfda8aSnia				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
10150bbfda8aSnia
10160bbfda8aSnia				yy_current_state = yy_get_previous_state(  );
10170bbfda8aSnia
10180bbfda8aSnia				yy_cp = (yy_c_buf_p);
10190bbfda8aSnia				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
10200bbfda8aSnia				goto yy_find_action;
10210bbfda8aSnia			}
10220bbfda8aSnia		break;
10230bbfda8aSnia		}
10240bbfda8aSnia
10250bbfda8aSnia	default:
10260bbfda8aSnia		YY_FATAL_ERROR(
10270bbfda8aSnia			"fatal flex scanner internal error--no action found" );
10280bbfda8aSnia	} /* end of action switch */
10290bbfda8aSnia		} /* end of scanning one token */
10300bbfda8aSnia	} /* end of user's declarations */
10310bbfda8aSnia} /* end of yylex */
10320bbfda8aSnia
10330bbfda8aSnia/* yy_get_next_buffer - try to read in a new buffer
10340bbfda8aSnia *
10350bbfda8aSnia * Returns a code representing an action:
10360bbfda8aSnia *	EOB_ACT_LAST_MATCH -
10370bbfda8aSnia *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
10380bbfda8aSnia *	EOB_ACT_END_OF_FILE - end of file
10390bbfda8aSnia */
10400bbfda8aSniastatic int yy_get_next_buffer (void)
10410bbfda8aSnia{
10420bbfda8aSnia    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
10430bbfda8aSnia	char *source = (yytext_ptr);
10440bbfda8aSnia	int number_to_move, i;
10450bbfda8aSnia	int ret_val;
10460bbfda8aSnia
10470bbfda8aSnia	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
10480bbfda8aSnia		YY_FATAL_ERROR(
10490bbfda8aSnia		"fatal flex scanner internal error--end of buffer missed" );
10500bbfda8aSnia
10510bbfda8aSnia	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
10520bbfda8aSnia		{ /* Don't try to fill the buffer, so this is an EOF. */
10530bbfda8aSnia		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
10540bbfda8aSnia			{
10550bbfda8aSnia			/* We matched a single character, the EOB, so
10560bbfda8aSnia			 * treat this as a final EOF.
10570bbfda8aSnia			 */
10580bbfda8aSnia			return EOB_ACT_END_OF_FILE;
10590bbfda8aSnia			}
10600bbfda8aSnia
10610bbfda8aSnia		else
10620bbfda8aSnia			{
10630bbfda8aSnia			/* We matched some text prior to the EOB, first
10640bbfda8aSnia			 * process it.
10650bbfda8aSnia			 */
10660bbfda8aSnia			return EOB_ACT_LAST_MATCH;
10670bbfda8aSnia			}
10680bbfda8aSnia		}
10690bbfda8aSnia
10700bbfda8aSnia	/* Try to read more data. */
10710bbfda8aSnia
10720bbfda8aSnia	/* First move last chars to start of buffer. */
10730bbfda8aSnia	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
10740bbfda8aSnia
10750bbfda8aSnia	for ( i = 0; i < number_to_move; ++i )
10760bbfda8aSnia		*(dest++) = *(source++);
10770bbfda8aSnia
10780bbfda8aSnia	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
10790bbfda8aSnia		/* don't do the read, it's not guaranteed to return an EOF,
10800bbfda8aSnia		 * just force an EOF
10810bbfda8aSnia		 */
10820bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
10830bbfda8aSnia
10840bbfda8aSnia	else
10850bbfda8aSnia		{
10860bbfda8aSnia			int num_to_read =
10870bbfda8aSnia			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
10880bbfda8aSnia
10890bbfda8aSnia		while ( num_to_read <= 0 )
10900bbfda8aSnia			{ /* Not enough room in the buffer - grow it. */
10910bbfda8aSnia
10920bbfda8aSnia			/* just a shorter name for the current buffer */
10930bbfda8aSnia			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
10940bbfda8aSnia
10950bbfda8aSnia			int yy_c_buf_p_offset =
10960bbfda8aSnia				(int) ((yy_c_buf_p) - b->yy_ch_buf);
10970bbfda8aSnia
10980bbfda8aSnia			if ( b->yy_is_our_buffer )
10990bbfda8aSnia				{
11000bbfda8aSnia				int new_size = b->yy_buf_size * 2;
11010bbfda8aSnia
11020bbfda8aSnia				if ( new_size <= 0 )
11030bbfda8aSnia					b->yy_buf_size += b->yy_buf_size / 8;
11040bbfda8aSnia				else
11050bbfda8aSnia					b->yy_buf_size *= 2;
11060bbfda8aSnia
11070bbfda8aSnia				b->yy_ch_buf = (char *)
11080bbfda8aSnia					/* Include room in for 2 EOB chars. */
11090bbfda8aSnia					yyrealloc( (void *) b->yy_ch_buf,
11100bbfda8aSnia							 (yy_size_t) (b->yy_buf_size + 2)  );
11110bbfda8aSnia				}
11120bbfda8aSnia			else
11130bbfda8aSnia				/* Can't grow it, we don't own it. */
11140bbfda8aSnia				b->yy_ch_buf = NULL;
11150bbfda8aSnia
11160bbfda8aSnia			if ( ! b->yy_ch_buf )
11170bbfda8aSnia				YY_FATAL_ERROR(
11180bbfda8aSnia				"fatal error - scanner input buffer overflow" );
11190bbfda8aSnia
11200bbfda8aSnia			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
11210bbfda8aSnia
11220bbfda8aSnia			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
11230bbfda8aSnia						number_to_move - 1;
11240bbfda8aSnia
11250bbfda8aSnia			}
11260bbfda8aSnia
11270bbfda8aSnia		if ( num_to_read > YY_READ_BUF_SIZE )
11280bbfda8aSnia			num_to_read = YY_READ_BUF_SIZE;
11290bbfda8aSnia
11300bbfda8aSnia		/* Read in more data. */
11310bbfda8aSnia		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
11320bbfda8aSnia			(yy_n_chars), num_to_read );
11330bbfda8aSnia
11340bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11350bbfda8aSnia		}
11360bbfda8aSnia
11370bbfda8aSnia	if ( (yy_n_chars) == 0 )
11380bbfda8aSnia		{
11390bbfda8aSnia		if ( number_to_move == YY_MORE_ADJ )
11400bbfda8aSnia			{
11410bbfda8aSnia			ret_val = EOB_ACT_END_OF_FILE;
11420bbfda8aSnia			yyrestart( yyin  );
11430bbfda8aSnia			}
11440bbfda8aSnia
11450bbfda8aSnia		else
11460bbfda8aSnia			{
11470bbfda8aSnia			ret_val = EOB_ACT_LAST_MATCH;
11480bbfda8aSnia			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
11490bbfda8aSnia				YY_BUFFER_EOF_PENDING;
11500bbfda8aSnia			}
11510bbfda8aSnia		}
11520bbfda8aSnia
11530bbfda8aSnia	else
11540bbfda8aSnia		ret_val = EOB_ACT_CONTINUE_SCAN;
11550bbfda8aSnia
11560bbfda8aSnia	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
11570bbfda8aSnia		/* Extend the array by 50%, plus the number we really need. */
11580bbfda8aSnia		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
11590bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
11600bbfda8aSnia			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
11610bbfda8aSnia		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
11620bbfda8aSnia			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
11630bbfda8aSnia		/* "- 2" to take care of EOB's */
11640bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
11650bbfda8aSnia	}
11660bbfda8aSnia
11670bbfda8aSnia	(yy_n_chars) += number_to_move;
11680bbfda8aSnia	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
11690bbfda8aSnia	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
11700bbfda8aSnia
11710bbfda8aSnia	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
11720bbfda8aSnia
11730bbfda8aSnia	return ret_val;
11740bbfda8aSnia}
11750bbfda8aSnia
11760bbfda8aSnia/* yy_get_previous_state - get the state just before the EOB char was reached */
11770bbfda8aSnia
11780bbfda8aSnia    static yy_state_type yy_get_previous_state (void)
11790bbfda8aSnia{
11800bbfda8aSnia	yy_state_type yy_current_state;
11810bbfda8aSnia	char *yy_cp;
11820bbfda8aSnia
11830bbfda8aSnia	yy_current_state = (yy_start);
11840bbfda8aSnia
11850bbfda8aSnia	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
11860bbfda8aSnia		{
11870bbfda8aSnia		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
11880bbfda8aSnia		if ( yy_accept[yy_current_state] )
11890bbfda8aSnia			{
11900bbfda8aSnia			(yy_last_accepting_state) = yy_current_state;
11910bbfda8aSnia			(yy_last_accepting_cpos) = yy_cp;
11920bbfda8aSnia			}
11930bbfda8aSnia		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11940bbfda8aSnia			{
11950bbfda8aSnia			yy_current_state = (int) yy_def[yy_current_state];
11960bbfda8aSnia			if ( yy_current_state >= 32 )
11970bbfda8aSnia				yy_c = yy_meta[yy_c];
11980bbfda8aSnia			}
11990bbfda8aSnia		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
12000bbfda8aSnia		}
12010bbfda8aSnia
12020bbfda8aSnia	return yy_current_state;
12030bbfda8aSnia}
12040bbfda8aSnia
12050bbfda8aSnia/* yy_try_NUL_trans - try to make a transition on the NUL character
12060bbfda8aSnia *
12070bbfda8aSnia * synopsis
12080bbfda8aSnia *	next_state = yy_try_NUL_trans( current_state );
12090bbfda8aSnia */
12100bbfda8aSnia    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
12110bbfda8aSnia{
12120bbfda8aSnia	int yy_is_jam;
12130bbfda8aSnia    	char *yy_cp = (yy_c_buf_p);
12140bbfda8aSnia
12150bbfda8aSnia	YY_CHAR yy_c = 1;
12160bbfda8aSnia	if ( yy_accept[yy_current_state] )
12170bbfda8aSnia		{
12180bbfda8aSnia		(yy_last_accepting_state) = yy_current_state;
12190bbfda8aSnia		(yy_last_accepting_cpos) = yy_cp;
12200bbfda8aSnia		}
12210bbfda8aSnia	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
12220bbfda8aSnia		{
12230bbfda8aSnia		yy_current_state = (int) yy_def[yy_current_state];
12240bbfda8aSnia		if ( yy_current_state >= 32 )
12250bbfda8aSnia			yy_c = yy_meta[yy_c];
12260bbfda8aSnia		}
12270bbfda8aSnia	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
12280bbfda8aSnia	yy_is_jam = (yy_current_state == 31);
12290bbfda8aSnia
12300bbfda8aSnia		return yy_is_jam ? 0 : yy_current_state;
12310bbfda8aSnia}
12320bbfda8aSnia
12330bbfda8aSnia#ifndef YY_NO_UNPUT
12340bbfda8aSnia
12350bbfda8aSnia#endif
12360bbfda8aSnia
12370bbfda8aSnia#ifndef YY_NO_INPUT
12380bbfda8aSnia#ifdef __cplusplus
12390bbfda8aSnia    static int yyinput (void)
12400bbfda8aSnia#else
12410bbfda8aSnia    static int input  (void)
12420bbfda8aSnia#endif
12430bbfda8aSnia
12440bbfda8aSnia{
12450bbfda8aSnia	int c;
12460bbfda8aSnia
12470bbfda8aSnia	*(yy_c_buf_p) = (yy_hold_char);
12480bbfda8aSnia
12490bbfda8aSnia	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
12500bbfda8aSnia		{
12510bbfda8aSnia		/* yy_c_buf_p now points to the character we want to return.
12520bbfda8aSnia		 * If this occurs *before* the EOB characters, then it's a
12530bbfda8aSnia		 * valid NUL; if not, then we've hit the end of the buffer.
12540bbfda8aSnia		 */
12550bbfda8aSnia		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
12560bbfda8aSnia			/* This was really a NUL. */
12570bbfda8aSnia			*(yy_c_buf_p) = '\0';
12580bbfda8aSnia
12590bbfda8aSnia		else
12600bbfda8aSnia			{ /* need more input */
12610bbfda8aSnia			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
12620bbfda8aSnia			++(yy_c_buf_p);
12630bbfda8aSnia
12640bbfda8aSnia			switch ( yy_get_next_buffer(  ) )
12650bbfda8aSnia				{
12660bbfda8aSnia				case EOB_ACT_LAST_MATCH:
12670bbfda8aSnia					/* This happens because yy_g_n_b()
12680bbfda8aSnia					 * sees that we've accumulated a
12690bbfda8aSnia					 * token and flags that we need to
12700bbfda8aSnia					 * try matching the token before
12710bbfda8aSnia					 * proceeding.  But for input(),
12720bbfda8aSnia					 * there's no matching to consider.
12730bbfda8aSnia					 * So convert the EOB_ACT_LAST_MATCH
12740bbfda8aSnia					 * to EOB_ACT_END_OF_FILE.
12750bbfda8aSnia					 */
12760bbfda8aSnia
12770bbfda8aSnia					/* Reset buffer status. */
12780bbfda8aSnia					yyrestart( yyin );
12790bbfda8aSnia
12800bbfda8aSnia					/*FALLTHROUGH*/
12810bbfda8aSnia
12820bbfda8aSnia				case EOB_ACT_END_OF_FILE:
12830bbfda8aSnia					{
12840bbfda8aSnia					if ( yywrap(  ) )
12850bbfda8aSnia						return 0;
12860bbfda8aSnia
12870bbfda8aSnia					if ( ! (yy_did_buffer_switch_on_eof) )
12880bbfda8aSnia						YY_NEW_FILE;
12890bbfda8aSnia#ifdef __cplusplus
12900bbfda8aSnia					return yyinput();
12910bbfda8aSnia#else
12920bbfda8aSnia					return input();
12930bbfda8aSnia#endif
12940bbfda8aSnia					}
12950bbfda8aSnia
12960bbfda8aSnia				case EOB_ACT_CONTINUE_SCAN:
12970bbfda8aSnia					(yy_c_buf_p) = (yytext_ptr) + offset;
12980bbfda8aSnia					break;
12990bbfda8aSnia				}
13000bbfda8aSnia			}
13010bbfda8aSnia		}
13020bbfda8aSnia
13030bbfda8aSnia	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
13040bbfda8aSnia	*(yy_c_buf_p) = '\0';	/* preserve yytext */
13050bbfda8aSnia	(yy_hold_char) = *++(yy_c_buf_p);
13060bbfda8aSnia
13070bbfda8aSnia	return c;
13080bbfda8aSnia}
13090bbfda8aSnia#endif	/* ifndef YY_NO_INPUT */
13100bbfda8aSnia
13110bbfda8aSnia/** Immediately switch to a different input stream.
13120bbfda8aSnia * @param input_file A readable stream.
13130bbfda8aSnia *
13140bbfda8aSnia * @note This function does not reset the start condition to @c INITIAL .
13150bbfda8aSnia */
13160bbfda8aSnia    void yyrestart  (FILE * input_file )
13170bbfda8aSnia{
13180bbfda8aSnia
13190bbfda8aSnia	if ( ! YY_CURRENT_BUFFER ){
13200bbfda8aSnia        yyensure_buffer_stack ();
13210bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE =
13220bbfda8aSnia            yy_create_buffer( yyin, YY_BUF_SIZE );
13230bbfda8aSnia	}
13240bbfda8aSnia
13250bbfda8aSnia	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
13260bbfda8aSnia	yy_load_buffer_state(  );
13270bbfda8aSnia}
13280bbfda8aSnia
13290bbfda8aSnia/** Switch to a different input buffer.
13300bbfda8aSnia * @param new_buffer The new input buffer.
13310bbfda8aSnia *
13320bbfda8aSnia */
13330bbfda8aSnia    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
13340bbfda8aSnia{
13350bbfda8aSnia
13360bbfda8aSnia	/* TODO. We should be able to replace this entire function body
13370bbfda8aSnia	 * with
13380bbfda8aSnia	 *		yypop_buffer_state();
13390bbfda8aSnia	 *		yypush_buffer_state(new_buffer);
13400bbfda8aSnia     */
13410bbfda8aSnia	yyensure_buffer_stack ();
13420bbfda8aSnia	if ( YY_CURRENT_BUFFER == new_buffer )
13430bbfda8aSnia		return;
13440bbfda8aSnia
13450bbfda8aSnia	if ( YY_CURRENT_BUFFER )
13460bbfda8aSnia		{
13470bbfda8aSnia		/* Flush out information for old buffer. */
13480bbfda8aSnia		*(yy_c_buf_p) = (yy_hold_char);
13490bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
13500bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
13510bbfda8aSnia		}
13520bbfda8aSnia
13530bbfda8aSnia	YY_CURRENT_BUFFER_LVALUE = new_buffer;
13540bbfda8aSnia	yy_load_buffer_state(  );
13550bbfda8aSnia
13560bbfda8aSnia	/* We don't actually know whether we did this switch during
13570bbfda8aSnia	 * EOF (yywrap()) processing, but the only time this flag
13580bbfda8aSnia	 * is looked at is after yywrap() is called, so it's safe
13590bbfda8aSnia	 * to go ahead and always set it.
13600bbfda8aSnia	 */
13610bbfda8aSnia	(yy_did_buffer_switch_on_eof) = 1;
13620bbfda8aSnia}
13630bbfda8aSnia
13640bbfda8aSniastatic void yy_load_buffer_state  (void)
13650bbfda8aSnia{
13660bbfda8aSnia    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
13670bbfda8aSnia	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
13680bbfda8aSnia	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
13690bbfda8aSnia	(yy_hold_char) = *(yy_c_buf_p);
13700bbfda8aSnia}
13710bbfda8aSnia
13720bbfda8aSnia/** Allocate and initialize an input buffer state.
13730bbfda8aSnia * @param file A readable stream.
13740bbfda8aSnia * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
13750bbfda8aSnia *
13760bbfda8aSnia * @return the allocated buffer state.
13770bbfda8aSnia */
13780bbfda8aSnia    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
13790bbfda8aSnia{
13800bbfda8aSnia	YY_BUFFER_STATE b;
13810bbfda8aSnia
13820bbfda8aSnia	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
13830bbfda8aSnia	if ( ! b )
13840bbfda8aSnia		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
13850bbfda8aSnia
13860bbfda8aSnia	b->yy_buf_size = size;
13870bbfda8aSnia
13880bbfda8aSnia	/* yy_ch_buf has to be 2 characters longer than the size given because
13890bbfda8aSnia	 * we need to put in 2 end-of-buffer characters.
13900bbfda8aSnia	 */
13910bbfda8aSnia	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
13920bbfda8aSnia	if ( ! b->yy_ch_buf )
13930bbfda8aSnia		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
13940bbfda8aSnia
13950bbfda8aSnia	b->yy_is_our_buffer = 1;
13960bbfda8aSnia
13970bbfda8aSnia	yy_init_buffer( b, file );
13980bbfda8aSnia
13990bbfda8aSnia	return b;
14000bbfda8aSnia}
14010bbfda8aSnia
14020bbfda8aSnia/** Destroy the buffer.
14030bbfda8aSnia * @param b a buffer created with yy_create_buffer()
14040bbfda8aSnia *
14050bbfda8aSnia */
14060bbfda8aSnia    void yy_delete_buffer (YY_BUFFER_STATE  b )
14070bbfda8aSnia{
14080bbfda8aSnia
14090bbfda8aSnia	if ( ! b )
14100bbfda8aSnia		return;
14110bbfda8aSnia
14120bbfda8aSnia	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
14130bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
14140bbfda8aSnia
14150bbfda8aSnia	if ( b->yy_is_our_buffer )
14160bbfda8aSnia		yyfree( (void *) b->yy_ch_buf  );
14170bbfda8aSnia
14180bbfda8aSnia	yyfree( (void *) b  );
14190bbfda8aSnia}
14200bbfda8aSnia
14210bbfda8aSnia/* Initializes or reinitializes a buffer.
14220bbfda8aSnia * This function is sometimes called more than once on the same buffer,
14230bbfda8aSnia * such as during a yyrestart() or at EOF.
14240bbfda8aSnia */
14250bbfda8aSnia    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
14260bbfda8aSnia
14270bbfda8aSnia{
14280bbfda8aSnia	int oerrno = errno;
14290bbfda8aSnia
14300bbfda8aSnia	yy_flush_buffer( b );
14310bbfda8aSnia
14320bbfda8aSnia	b->yy_input_file = file;
14330bbfda8aSnia	b->yy_fill_buffer = 1;
14340bbfda8aSnia
14350bbfda8aSnia    /* If b is the current buffer, then yy_init_buffer was _probably_
14360bbfda8aSnia     * called from yyrestart() or through yy_get_next_buffer.
14370bbfda8aSnia     * In that case, we don't want to reset the lineno or column.
14380bbfda8aSnia     */
14390bbfda8aSnia    if (b != YY_CURRENT_BUFFER){
14400bbfda8aSnia        b->yy_bs_lineno = 1;
14410bbfda8aSnia        b->yy_bs_column = 0;
14420bbfda8aSnia    }
14430bbfda8aSnia
14440bbfda8aSnia        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
14450bbfda8aSnia
14460bbfda8aSnia	errno = oerrno;
14470bbfda8aSnia}
14480bbfda8aSnia
14490bbfda8aSnia/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
14500bbfda8aSnia * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
14510bbfda8aSnia *
14520bbfda8aSnia */
14530bbfda8aSnia    void yy_flush_buffer (YY_BUFFER_STATE  b )
14540bbfda8aSnia{
14550bbfda8aSnia    	if ( ! b )
14560bbfda8aSnia		return;
14570bbfda8aSnia
14580bbfda8aSnia	b->yy_n_chars = 0;
14590bbfda8aSnia
14600bbfda8aSnia	/* We always need two end-of-buffer characters.  The first causes
14610bbfda8aSnia	 * a transition to the end-of-buffer state.  The second causes
14620bbfda8aSnia	 * a jam in that state.
14630bbfda8aSnia	 */
14640bbfda8aSnia	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
14650bbfda8aSnia	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
14660bbfda8aSnia
14670bbfda8aSnia	b->yy_buf_pos = &b->yy_ch_buf[0];
14680bbfda8aSnia
14690bbfda8aSnia	b->yy_at_bol = 1;
14700bbfda8aSnia	b->yy_buffer_status = YY_BUFFER_NEW;
14710bbfda8aSnia
14720bbfda8aSnia	if ( b == YY_CURRENT_BUFFER )
14730bbfda8aSnia		yy_load_buffer_state(  );
14740bbfda8aSnia}
14750bbfda8aSnia
14760bbfda8aSnia/** Pushes the new state onto the stack. The new state becomes
14770bbfda8aSnia *  the current state. This function will allocate the stack
14780bbfda8aSnia *  if necessary.
14790bbfda8aSnia *  @param new_buffer The new state.
14800bbfda8aSnia *
14810bbfda8aSnia */
14820bbfda8aSniavoid yypush_buffer_state (YY_BUFFER_STATE new_buffer )
14830bbfda8aSnia{
14840bbfda8aSnia    	if (new_buffer == NULL)
14850bbfda8aSnia		return;
14860bbfda8aSnia
14870bbfda8aSnia	yyensure_buffer_stack();
14880bbfda8aSnia
14890bbfda8aSnia	/* This block is copied from yy_switch_to_buffer. */
14900bbfda8aSnia	if ( YY_CURRENT_BUFFER )
14910bbfda8aSnia		{
14920bbfda8aSnia		/* Flush out information for old buffer. */
14930bbfda8aSnia		*(yy_c_buf_p) = (yy_hold_char);
14940bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
14950bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
14960bbfda8aSnia		}
14970bbfda8aSnia
14980bbfda8aSnia	/* Only push if top exists. Otherwise, replace top. */
14990bbfda8aSnia	if (YY_CURRENT_BUFFER)
15000bbfda8aSnia		(yy_buffer_stack_top)++;
15010bbfda8aSnia	YY_CURRENT_BUFFER_LVALUE = new_buffer;
15020bbfda8aSnia
15030bbfda8aSnia	/* copied from yy_switch_to_buffer. */
15040bbfda8aSnia	yy_load_buffer_state(  );
15050bbfda8aSnia	(yy_did_buffer_switch_on_eof) = 1;
15060bbfda8aSnia}
15070bbfda8aSnia
15080bbfda8aSnia/** Removes and deletes the top of the stack, if present.
15090bbfda8aSnia *  The next element becomes the new top.
15100bbfda8aSnia *
15110bbfda8aSnia */
15120bbfda8aSniavoid yypop_buffer_state (void)
15130bbfda8aSnia{
15140bbfda8aSnia    	if (!YY_CURRENT_BUFFER)
15150bbfda8aSnia		return;
15160bbfda8aSnia
15170bbfda8aSnia	yy_delete_buffer(YY_CURRENT_BUFFER );
15180bbfda8aSnia	YY_CURRENT_BUFFER_LVALUE = NULL;
15190bbfda8aSnia	if ((yy_buffer_stack_top) > 0)
15200bbfda8aSnia		--(yy_buffer_stack_top);
15210bbfda8aSnia
15220bbfda8aSnia	if (YY_CURRENT_BUFFER) {
15230bbfda8aSnia		yy_load_buffer_state(  );
15240bbfda8aSnia		(yy_did_buffer_switch_on_eof) = 1;
15250bbfda8aSnia	}
15260bbfda8aSnia}
15270bbfda8aSnia
15280bbfda8aSnia/* Allocates the stack if it does not exist.
15290bbfda8aSnia *  Guarantees space for at least one push.
15300bbfda8aSnia */
15310bbfda8aSniastatic void yyensure_buffer_stack (void)
15320bbfda8aSnia{
15330bbfda8aSnia	yy_size_t num_to_alloc;
15340bbfda8aSnia
15350bbfda8aSnia	if (!(yy_buffer_stack)) {
15360bbfda8aSnia
15370bbfda8aSnia		/* First allocation is just for 2 elements, since we don't know if this
15380bbfda8aSnia		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
15390bbfda8aSnia		 * immediate realloc on the next call.
15400bbfda8aSnia         */
15410bbfda8aSnia      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
15420bbfda8aSnia		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
15430bbfda8aSnia								(num_to_alloc * sizeof(struct yy_buffer_state*)
15440bbfda8aSnia								);
15450bbfda8aSnia		if ( ! (yy_buffer_stack) )
15460bbfda8aSnia			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
15470bbfda8aSnia
15480bbfda8aSnia		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
15490bbfda8aSnia
15500bbfda8aSnia		(yy_buffer_stack_max) = num_to_alloc;
15510bbfda8aSnia		(yy_buffer_stack_top) = 0;
15520bbfda8aSnia		return;
15530bbfda8aSnia	}
15540bbfda8aSnia
15550bbfda8aSnia	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
15560bbfda8aSnia
15570bbfda8aSnia		/* Increase the buffer to prepare for a possible push. */
15580bbfda8aSnia		yy_size_t grow_size = 8 /* arbitrary grow size */;
15590bbfda8aSnia
15600bbfda8aSnia		num_to_alloc = (yy_buffer_stack_max) + grow_size;
15610bbfda8aSnia		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
15620bbfda8aSnia								((yy_buffer_stack),
15630bbfda8aSnia								num_to_alloc * sizeof(struct yy_buffer_state*)
15640bbfda8aSnia								);
15650bbfda8aSnia		if ( ! (yy_buffer_stack) )
15660bbfda8aSnia			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
15670bbfda8aSnia
15680bbfda8aSnia		/* zero only the new slots.*/
15690bbfda8aSnia		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
15700bbfda8aSnia		(yy_buffer_stack_max) = num_to_alloc;
15710bbfda8aSnia	}
15720bbfda8aSnia}
15730bbfda8aSnia
15740bbfda8aSnia/** Setup the input buffer state to scan directly from a user-specified character buffer.
15750bbfda8aSnia * @param base the character buffer
15760bbfda8aSnia * @param size the size in bytes of the character buffer
15770bbfda8aSnia *
15780bbfda8aSnia * @return the newly allocated buffer state object.
15790bbfda8aSnia */
15800bbfda8aSniaYY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
15810bbfda8aSnia{
15820bbfda8aSnia	YY_BUFFER_STATE b;
15830bbfda8aSnia
15840bbfda8aSnia	if ( size < 2 ||
15850bbfda8aSnia	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
15860bbfda8aSnia	     base[size-1] != YY_END_OF_BUFFER_CHAR )
15870bbfda8aSnia		/* They forgot to leave room for the EOB's. */
15880bbfda8aSnia		return NULL;
15890bbfda8aSnia
15900bbfda8aSnia	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
15910bbfda8aSnia	if ( ! b )
15920bbfda8aSnia		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
15930bbfda8aSnia
15940bbfda8aSnia	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
15950bbfda8aSnia	b->yy_buf_pos = b->yy_ch_buf = base;
15960bbfda8aSnia	b->yy_is_our_buffer = 0;
15970bbfda8aSnia	b->yy_input_file = NULL;
15980bbfda8aSnia	b->yy_n_chars = b->yy_buf_size;
15990bbfda8aSnia	b->yy_is_interactive = 0;
16000bbfda8aSnia	b->yy_at_bol = 1;
16010bbfda8aSnia	b->yy_fill_buffer = 0;
16020bbfda8aSnia	b->yy_buffer_status = YY_BUFFER_NEW;
16030bbfda8aSnia
16040bbfda8aSnia	yy_switch_to_buffer( b  );
16050bbfda8aSnia
16060bbfda8aSnia	return b;
16070bbfda8aSnia}
16080bbfda8aSnia
16090bbfda8aSnia/** Setup the input buffer state to scan a string. The next call to yylex() will
16100bbfda8aSnia * scan from a @e copy of @a str.
16110bbfda8aSnia * @param yystr a NUL-terminated string to scan
16120bbfda8aSnia *
16130bbfda8aSnia * @return the newly allocated buffer state object.
16140bbfda8aSnia * @note If you want to scan bytes that may contain NUL values, then use
16150bbfda8aSnia *       yy_scan_bytes() instead.
16160bbfda8aSnia */
16170bbfda8aSniaYY_BUFFER_STATE yy_scan_string (const char * yystr )
16180bbfda8aSnia{
16190bbfda8aSnia
16200bbfda8aSnia	return yy_scan_bytes( yystr, (int) strlen(yystr) );
16210bbfda8aSnia}
16220bbfda8aSnia
16230bbfda8aSnia/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
16240bbfda8aSnia * scan from a @e copy of @a bytes.
16250bbfda8aSnia * @param yybytes the byte buffer to scan
16260bbfda8aSnia * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
16270bbfda8aSnia *
16280bbfda8aSnia * @return the newly allocated buffer state object.
16290bbfda8aSnia */
16300bbfda8aSniaYY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
16310bbfda8aSnia{
16320bbfda8aSnia	YY_BUFFER_STATE b;
16330bbfda8aSnia	char *buf;
16340bbfda8aSnia	yy_size_t n;
16350bbfda8aSnia	int i;
16360bbfda8aSnia
16370bbfda8aSnia	/* Get memory for full buffer, including space for trailing EOB's. */
16380bbfda8aSnia	n = (yy_size_t) (_yybytes_len + 2);
16390bbfda8aSnia	buf = (char *) yyalloc( n  );
16400bbfda8aSnia	if ( ! buf )
16410bbfda8aSnia		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
16420bbfda8aSnia
16430bbfda8aSnia	for ( i = 0; i < _yybytes_len; ++i )
16440bbfda8aSnia		buf[i] = yybytes[i];
16450bbfda8aSnia
16460bbfda8aSnia	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
16470bbfda8aSnia
16480bbfda8aSnia	b = yy_scan_buffer( buf, n );
16490bbfda8aSnia	if ( ! b )
16500bbfda8aSnia		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
16510bbfda8aSnia
16520bbfda8aSnia	/* It's okay to grow etc. this buffer, and we should throw it
16530bbfda8aSnia	 * away when we're done.
16540bbfda8aSnia	 */
16550bbfda8aSnia	b->yy_is_our_buffer = 1;
16560bbfda8aSnia
16570bbfda8aSnia	return b;
16580bbfda8aSnia}
16590bbfda8aSnia
16600bbfda8aSnia#ifndef YY_EXIT_FAILURE
16610bbfda8aSnia#define YY_EXIT_FAILURE 2
16620bbfda8aSnia#endif
16630bbfda8aSnia
16640bbfda8aSniastatic void yynoreturn yy_fatal_error (const char* msg )
16650bbfda8aSnia{
16660bbfda8aSnia			fprintf( stderr, "%s\n", msg );
16670bbfda8aSnia	exit( YY_EXIT_FAILURE );
16680bbfda8aSnia}
16690bbfda8aSnia
16700bbfda8aSnia/* Redefine yyless() so it works in section 3 code. */
16710bbfda8aSnia
16720bbfda8aSnia#undef yyless
16730bbfda8aSnia#define yyless(n) \
16740bbfda8aSnia	do \
16750bbfda8aSnia		{ \
16760bbfda8aSnia		/* Undo effects of setting up yytext. */ \
16770bbfda8aSnia        int yyless_macro_arg = (n); \
16780bbfda8aSnia        YY_LESS_LINENO(yyless_macro_arg);\
16790bbfda8aSnia		yytext[yyleng] = (yy_hold_char); \
16800bbfda8aSnia		(yy_c_buf_p) = yytext + yyless_macro_arg; \
16810bbfda8aSnia		(yy_hold_char) = *(yy_c_buf_p); \
16820bbfda8aSnia		*(yy_c_buf_p) = '\0'; \
16830bbfda8aSnia		yyleng = yyless_macro_arg; \
16840bbfda8aSnia		} \
16850bbfda8aSnia	while ( 0 )
16860bbfda8aSnia
16870bbfda8aSnia/* Accessor  methods (get/set functions) to struct members. */
16880bbfda8aSnia
16890bbfda8aSnia/** Get the current line number.
16900bbfda8aSnia *
16910bbfda8aSnia */
16920bbfda8aSniaint yyget_lineno  (void)
16930bbfda8aSnia{
16940bbfda8aSnia
16950bbfda8aSnia    return yylineno;
16960bbfda8aSnia}
16970bbfda8aSnia
16980bbfda8aSnia/** Get the input stream.
16990bbfda8aSnia *
17000bbfda8aSnia */
17010bbfda8aSniaFILE *yyget_in  (void)
17020bbfda8aSnia{
17030bbfda8aSnia        return yyin;
17040bbfda8aSnia}
17050bbfda8aSnia
17060bbfda8aSnia/** Get the output stream.
17070bbfda8aSnia *
17080bbfda8aSnia */
17090bbfda8aSniaFILE *yyget_out  (void)
17100bbfda8aSnia{
17110bbfda8aSnia        return yyout;
17120bbfda8aSnia}
17130bbfda8aSnia
17140bbfda8aSnia/** Get the length of the current token.
17150bbfda8aSnia *
17160bbfda8aSnia */
17170bbfda8aSniaint yyget_leng  (void)
17180bbfda8aSnia{
17190bbfda8aSnia        return yyleng;
17200bbfda8aSnia}
17210bbfda8aSnia
17220bbfda8aSnia/** Get the current token.
17230bbfda8aSnia *
17240bbfda8aSnia */
17250bbfda8aSnia
17260bbfda8aSniachar *yyget_text  (void)
17270bbfda8aSnia{
17280bbfda8aSnia        return yytext;
17290bbfda8aSnia}
17300bbfda8aSnia
17310bbfda8aSnia/** Set the current line number.
17320bbfda8aSnia * @param _line_number line number
17330bbfda8aSnia *
17340bbfda8aSnia */
17350bbfda8aSniavoid yyset_lineno (int  _line_number )
17360bbfda8aSnia{
17370bbfda8aSnia
17380bbfda8aSnia    yylineno = _line_number;
17390bbfda8aSnia}
17400bbfda8aSnia
17410bbfda8aSnia/** Set the input stream. This does not discard the current
17420bbfda8aSnia * input buffer.
17430bbfda8aSnia * @param _in_str A readable stream.
17440bbfda8aSnia *
17450bbfda8aSnia * @see yy_switch_to_buffer
17460bbfda8aSnia */
17470bbfda8aSniavoid yyset_in (FILE *  _in_str )
17480bbfda8aSnia{
17490bbfda8aSnia        yyin = _in_str ;
17500bbfda8aSnia}
17510bbfda8aSnia
17520bbfda8aSniavoid yyset_out (FILE *  _out_str )
17530bbfda8aSnia{
17540bbfda8aSnia        yyout = _out_str ;
17550bbfda8aSnia}
17560bbfda8aSnia
17570bbfda8aSniaint yyget_debug  (void)
17580bbfda8aSnia{
17590bbfda8aSnia        return yy_flex_debug;
17600bbfda8aSnia}
17610bbfda8aSnia
17620bbfda8aSniavoid yyset_debug (int  _bdebug )
17630bbfda8aSnia{
17640bbfda8aSnia        yy_flex_debug = _bdebug ;
17650bbfda8aSnia}
17660bbfda8aSnia
17670bbfda8aSniastatic int yy_init_globals (void)
17680bbfda8aSnia{
17690bbfda8aSnia        /* Initialization is the same as for the non-reentrant scanner.
17700bbfda8aSnia     * This function is called from yylex_destroy(), so don't allocate here.
17710bbfda8aSnia     */
17720bbfda8aSnia
17730bbfda8aSnia    (yy_buffer_stack) = NULL;
17740bbfda8aSnia    (yy_buffer_stack_top) = 0;
17750bbfda8aSnia    (yy_buffer_stack_max) = 0;
17760bbfda8aSnia    (yy_c_buf_p) = NULL;
17770bbfda8aSnia    (yy_init) = 0;
17780bbfda8aSnia    (yy_start) = 0;
17790bbfda8aSnia
17800bbfda8aSnia/* Defined in main.c */
17810bbfda8aSnia#ifdef YY_STDINIT
17820bbfda8aSnia    yyin = stdin;
17830bbfda8aSnia    yyout = stdout;
17840bbfda8aSnia#else
17850bbfda8aSnia    yyin = NULL;
17860bbfda8aSnia    yyout = NULL;
17870bbfda8aSnia#endif
17880bbfda8aSnia
17890bbfda8aSnia    /* For future reference: Set errno on error, since we are called by
17900bbfda8aSnia     * yylex_init()
17910bbfda8aSnia     */
17920bbfda8aSnia    return 0;
17930bbfda8aSnia}
17940bbfda8aSnia
17950bbfda8aSnia/* yylex_destroy is for both reentrant and non-reentrant scanners. */
17960bbfda8aSniaint yylex_destroy  (void)
17970bbfda8aSnia{
17980bbfda8aSnia
17990bbfda8aSnia    /* Pop the buffer stack, destroying each element. */
18000bbfda8aSnia	while(YY_CURRENT_BUFFER){
18010bbfda8aSnia		yy_delete_buffer( YY_CURRENT_BUFFER  );
18020bbfda8aSnia		YY_CURRENT_BUFFER_LVALUE = NULL;
18030bbfda8aSnia		yypop_buffer_state();
18040bbfda8aSnia	}
18050bbfda8aSnia
18060bbfda8aSnia	/* Destroy the stack itself. */
18070bbfda8aSnia	yyfree((yy_buffer_stack) );
18080bbfda8aSnia	(yy_buffer_stack) = NULL;
18090bbfda8aSnia
18100bbfda8aSnia    /* Reset the globals. This is important in a non-reentrant scanner so the next time
18110bbfda8aSnia     * yylex() is called, initialization will occur. */
18120bbfda8aSnia    yy_init_globals( );
18130bbfda8aSnia
18140bbfda8aSnia    return 0;
18150bbfda8aSnia}
18160bbfda8aSnia
18170bbfda8aSnia/*
18180bbfda8aSnia * Internal utility routines.
18190bbfda8aSnia */
18200bbfda8aSnia
18210bbfda8aSnia#ifndef yytext_ptr
18220bbfda8aSniastatic void yy_flex_strncpy (char* s1, const char * s2, int n )
18230bbfda8aSnia{
18240bbfda8aSnia
18250bbfda8aSnia	int i;
18260bbfda8aSnia	for ( i = 0; i < n; ++i )
18270bbfda8aSnia		s1[i] = s2[i];
18280bbfda8aSnia}
18290bbfda8aSnia#endif
18300bbfda8aSnia
18310bbfda8aSnia#ifdef YY_NEED_STRLEN
18320bbfda8aSniastatic int yy_flex_strlen (const char * s )
18330bbfda8aSnia{
18340bbfda8aSnia	int n;
18350bbfda8aSnia	for ( n = 0; s[n]; ++n )
18360bbfda8aSnia		;
18370bbfda8aSnia
18380bbfda8aSnia	return n;
18390bbfda8aSnia}
18400bbfda8aSnia#endif
18410bbfda8aSnia
18420bbfda8aSniavoid *yyalloc (yy_size_t  size )
18430bbfda8aSnia{
18440bbfda8aSnia			return malloc(size);
18450bbfda8aSnia}
18460bbfda8aSnia
18470bbfda8aSniavoid *yyrealloc  (void * ptr, yy_size_t  size )
18480bbfda8aSnia{
18490bbfda8aSnia
18500bbfda8aSnia	/* The cast to (char *) in the following accommodates both
18510bbfda8aSnia	 * implementations that use char* generic pointers, and those
18520bbfda8aSnia	 * that use void* generic pointers.  It works with the latter
18530bbfda8aSnia	 * because both ANSI C and C++ allow castless assignment from
18540bbfda8aSnia	 * any pointer type to void*, and deal with argument conversions
18550bbfda8aSnia	 * as though doing an assignment.
18560bbfda8aSnia	 */
18570bbfda8aSnia	return realloc(ptr, size);
18580bbfda8aSnia}
18590bbfda8aSnia
18600bbfda8aSniavoid yyfree (void * ptr )
18610bbfda8aSnia{
18620bbfda8aSnia			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
18630bbfda8aSnia}
18640bbfda8aSnia
18650bbfda8aSnia#define YYTABLES_NAME "yytables"
18660bbfda8aSnia
18670bbfda8aSnia#line 97 "lex.l"
18680bbfda8aSnia
18690bbfda8aSnia
18700bbfda8aSnia/*
18710bbfda8aSnia * In flex versions before 2.4.1 (30Nov93), yywrap was a macro, not a
18720bbfda8aSnia * function.  There's no way we really support versions that old, but
18730bbfda8aSnia * what the heck...
18740bbfda8aSnia *
18750bbfda8aSnia * This function should actually be unused due to the noyywrap %option
18760bbfda8aSnia * specified above, but is left around in case of weird edge cases.
18770bbfda8aSnia */
18780bbfda8aSnia#ifndef yywrap
18790bbfda8aSniaint yywrap(void) { return(1);}
18800bbfda8aSnia#endif
18810bbfda8aSnia
18820bbfda8aSnia/* AT&T lex uses the input/unput macros */
18830bbfda8aSnia#ifndef FLEX_SCANNER
18840bbfda8aSnia/*
18850bbfda8aSnia * I believe Solaris at least recently recently (and maybe currently)
18860bbfda8aSnia * ships with an AT&T lex, but also with flex beside it.  Plan
18870bbfda8aSnia * 9 might ship only A&T lex?
18880bbfda8aSnia *
18890bbfda8aSnia * However, our current build toolchain doesn't look for any lex other
18900bbfda8aSnia * than flex.  So #error out if we get here; adventurous users might take
18910bbfda8aSnia * this out, and it might work; let us know!
18920bbfda8aSnia */
18930bbfda8aSnia#error Not supported on non-flex; remove this line at your own risk
18940bbfda8aSnia#ifdef NON_FLEX_LEX
18950bbfda8aSnia#undef unput
18960bbfda8aSnia#undef input
18970bbfda8aSnia#undef output
18980bbfda8aSnia#undef feof
18990bbfda8aSnia#define unput(c)	twmUnput(c)
19000bbfda8aSnia#define input()		(*twmInputFunc)()
19010bbfda8aSnia#define output(c)	TwmOutput(c)
19020bbfda8aSnia#define feof()		(1)
19030bbfda8aSnia#endif /* NON_FLEX_LEX */
19040bbfda8aSnia#endif /* !FLEX_SCANNER */
19050bbfda8aSnia
19060bbfda8aSnia
1907