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