i3
src/cmdparse.yy.c
Go to the documentation of this file.
00001 #line 2 "src/cmdparse.yy.c"
00002 
00003 #line 4 "src/cmdparse.yy.c"
00004 
00005 #define  YY_INT_ALIGNED short int
00006 
00007 /* A lexical scanner generated by flex */
00008 
00009 #define yy_create_buffer cmdyy_create_buffer
00010 #define yy_delete_buffer cmdyy_delete_buffer
00011 #define yy_flex_debug cmdyy_flex_debug
00012 #define yy_init_buffer cmdyy_init_buffer
00013 #define yy_flush_buffer cmdyy_flush_buffer
00014 #define yy_load_buffer_state cmdyy_load_buffer_state
00015 #define yy_switch_to_buffer cmdyy_switch_to_buffer
00016 #define yyin cmdyyin
00017 #define yyleng cmdyyleng
00018 #define yylex cmdyylex
00019 #define yylineno cmdyylineno
00020 #define yyout cmdyyout
00021 #define yyrestart cmdyyrestart
00022 #define yytext cmdyytext
00023 #define yywrap cmdyywrap
00024 #define yyalloc cmdyyalloc
00025 #define yyrealloc cmdyyrealloc
00026 #define yyfree cmdyyfree
00027 
00028 #define FLEX_SCANNER
00029 #define YY_FLEX_MAJOR_VERSION 2
00030 #define YY_FLEX_MINOR_VERSION 5
00031 #define YY_FLEX_SUBMINOR_VERSION 35
00032 #if YY_FLEX_SUBMINOR_VERSION > 0
00033 #define FLEX_BETA
00034 #endif
00035 
00036 /* First, we deal with  platform-specific or compiler-specific issues. */
00037 
00038 /* begin standard C headers. */
00039 #include <stdio.h>
00040 #include <string.h>
00041 #include <errno.h>
00042 #include <stdlib.h>
00043 
00044 /* end standard C headers. */
00045 
00046 /* flex integer type definitions */
00047 
00048 #ifndef FLEXINT_H
00049 #define FLEXINT_H
00050 
00051 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00052 
00053 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
00054 
00055 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00056  * if you want the limit (max/min) macros for int types. 
00057  */
00058 #ifndef __STDC_LIMIT_MACROS
00059 #define __STDC_LIMIT_MACROS 1
00060 #endif
00061 
00062 #include <inttypes.h>
00063 typedef int8_t flex_int8_t;
00064 typedef uint8_t flex_uint8_t;
00065 typedef int16_t flex_int16_t;
00066 typedef uint16_t flex_uint16_t;
00067 typedef int32_t flex_int32_t;
00068 typedef uint32_t flex_uint32_t;
00069 #else
00070 typedef signed char flex_int8_t;
00071 typedef short int flex_int16_t;
00072 typedef int flex_int32_t;
00073 typedef unsigned char flex_uint8_t; 
00074 typedef unsigned short int flex_uint16_t;
00075 typedef unsigned int flex_uint32_t;
00076 #endif /* ! C99 */
00077 
00078 /* Limits of integral types. */
00079 #ifndef INT8_MIN
00080 #define INT8_MIN               (-128)
00081 #endif
00082 #ifndef INT16_MIN
00083 #define INT16_MIN              (-32767-1)
00084 #endif
00085 #ifndef INT32_MIN
00086 #define INT32_MIN              (-2147483647-1)
00087 #endif
00088 #ifndef INT8_MAX
00089 #define INT8_MAX               (127)
00090 #endif
00091 #ifndef INT16_MAX
00092 #define INT16_MAX              (32767)
00093 #endif
00094 #ifndef INT32_MAX
00095 #define INT32_MAX              (2147483647)
00096 #endif
00097 #ifndef UINT8_MAX
00098 #define UINT8_MAX              (255U)
00099 #endif
00100 #ifndef UINT16_MAX
00101 #define UINT16_MAX             (65535U)
00102 #endif
00103 #ifndef UINT32_MAX
00104 #define UINT32_MAX             (4294967295U)
00105 #endif
00106 
00107 #endif /* ! FLEXINT_H */
00108 
00109 #ifdef __cplusplus
00110 
00111 /* The "const" storage-class-modifier is valid. */
00112 #define YY_USE_CONST
00113 
00114 #else   /* ! __cplusplus */
00115 
00116 /* C99 requires __STDC__ to be defined as 1. */
00117 #if defined (__STDC__)
00118 
00119 #define YY_USE_CONST
00120 
00121 #endif  /* defined (__STDC__) */
00122 #endif  /* ! __cplusplus */
00123 
00124 #ifdef YY_USE_CONST
00125 #define yyconst const
00126 #else
00127 #define yyconst
00128 #endif
00129 
00130 /* Returned upon end-of-file. */
00131 #define YY_NULL 0
00132 
00133 /* Promotes a possibly negative, possibly signed char to an unsigned
00134  * integer for use as an array index.  If the signed char is negative,
00135  * we want to instead treat it as an 8-bit unsigned char, hence the
00136  * double cast.
00137  */
00138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00139 
00140 /* Enter a start condition.  This macro really ought to take a parameter,
00141  * but we do it the disgusting crufty way forced on us by the ()-less
00142  * definition of BEGIN.
00143  */
00144 #define BEGIN (yy_start) = 1 + 2 *
00145 
00146 /* Translate the current start state into a value that can be later handed
00147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00148  * compatibility.
00149  */
00150 #define YY_START (((yy_start) - 1) / 2)
00151 #define YYSTATE YY_START
00152 
00153 /* Action number for EOF rule of a given start state. */
00154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00155 
00156 /* Special action meaning "start processing a new file". */
00157 #define YY_NEW_FILE cmdyyrestart(cmdyyin  )
00158 
00159 #define YY_END_OF_BUFFER_CHAR 0
00160 
00161 /* Size of default input buffer. */
00162 #ifndef YY_BUF_SIZE
00163 #define YY_BUF_SIZE 16384
00164 #endif
00165 
00166 /* The state buf must be large enough to hold one state per character in the main buffer.
00167  */
00168 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00169 
00170 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00171 #define YY_TYPEDEF_YY_BUFFER_STATE
00172 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00173 #endif
00174 
00175 extern int cmdyyleng;
00176 
00177 extern FILE *cmdyyin, *cmdyyout;
00178 
00179 #define EOB_ACT_CONTINUE_SCAN 0
00180 #define EOB_ACT_END_OF_FILE 1
00181 #define EOB_ACT_LAST_MATCH 2
00182 
00183     #define YY_LESS_LINENO(n)
00184     
00185 /* Return all but the first "n" matched characters back to the input stream. */
00186 #define yyless(n) \
00187         do \
00188                 { \
00189                 /* Undo effects of setting up cmdyytext. */ \
00190         int yyless_macro_arg = (n); \
00191         YY_LESS_LINENO(yyless_macro_arg);\
00192                 *yy_cp = (yy_hold_char); \
00193                 YY_RESTORE_YY_MORE_OFFSET \
00194                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00195                 YY_DO_BEFORE_ACTION; /* set up cmdyytext again */ \
00196                 } \
00197         while ( 0 )
00198 
00199 #define unput(c) yyunput( c, (yytext_ptr)  )
00200 
00201 #ifndef YY_TYPEDEF_YY_SIZE_T
00202 #define YY_TYPEDEF_YY_SIZE_T
00203 typedef size_t yy_size_t;
00204 #endif
00205 
00206 #ifndef YY_STRUCT_YY_BUFFER_STATE
00207 #define YY_STRUCT_YY_BUFFER_STATE
00208 struct yy_buffer_state
00209         {
00210         FILE *yy_input_file;
00211 
00212         char *yy_ch_buf;                /* input buffer */
00213         char *yy_buf_pos;               /* current position in input buffer */
00214 
00215         /* Size of input buffer in bytes, not including room for EOB
00216          * characters.
00217          */
00218         yy_size_t yy_buf_size;
00219 
00220         /* Number of characters read into yy_ch_buf, not including EOB
00221          * characters.
00222          */
00223         int yy_n_chars;
00224 
00225         /* Whether we "own" the buffer - i.e., we know we created it,
00226          * and can realloc() it to grow it, and should free() it to
00227          * delete it.
00228          */
00229         int yy_is_our_buffer;
00230 
00231         /* Whether this is an "interactive" input source; if so, and
00232          * if we're using stdio for input, then we want to use getc()
00233          * instead of fread(), to make sure we stop fetching input after
00234          * each newline.
00235          */
00236         int yy_is_interactive;
00237 
00238         /* Whether we're considered to be at the beginning of a line.
00239          * If so, '^' rules will be active on the next match, otherwise
00240          * not.
00241          */
00242         int yy_at_bol;
00243 
00244     int yy_bs_lineno; 
00245     int yy_bs_column; 
00247         /* Whether to try to fill the input buffer when we reach the
00248          * end of it.
00249          */
00250         int yy_fill_buffer;
00251 
00252         int yy_buffer_status;
00253 
00254 #define YY_BUFFER_NEW 0
00255 #define YY_BUFFER_NORMAL 1
00256         /* When an EOF's been seen but there's still some text to process
00257          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00258          * shouldn't try reading from the input source any more.  We might
00259          * still have a bunch of tokens to match, though, because of
00260          * possible backing-up.
00261          *
00262          * When we actually see the EOF, we change the status to "new"
00263          * (via cmdyyrestart()), so that the user can continue scanning by
00264          * just pointing cmdyyin at a new input file.
00265          */
00266 #define YY_BUFFER_EOF_PENDING 2
00267 
00268         };
00269 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00270 
00271 /* Stack of input buffers. */
00272 static size_t yy_buffer_stack_top = 0; 
00273 static size_t yy_buffer_stack_max = 0; 
00274 static YY_BUFFER_STATE * yy_buffer_stack = 0; 
00276 /* We provide macros for accessing buffer states in case in the
00277  * future we want to put the buffer states in a more general
00278  * "scanner state".
00279  *
00280  * Returns the top of the stack, or NULL.
00281  */
00282 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00283                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00284                           : NULL)
00285 
00286 /* Same as previous macro, but useful when we know that the buffer stack is not
00287  * NULL or when we need an lvalue. For internal use only.
00288  */
00289 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00290 
00291 /* yy_hold_char holds the character lost when cmdyytext is formed. */
00292 static char yy_hold_char;
00293 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
00294 int cmdyyleng;
00295 
00296 /* Points to current character in buffer. */
00297 static char *yy_c_buf_p = (char *) 0;
00298 static int yy_init = 0;         /* whether we need to initialize */
00299 static int yy_start = 0;        /* start state number */
00300 
00301 /* Flag which is used to allow cmdyywrap()'s to do buffer switches
00302  * instead of setting up a fresh cmdyyin.  A bit of a hack ...
00303  */
00304 static int yy_did_buffer_switch_on_eof;
00305 
00306 void cmdyyrestart (FILE *input_file  );
00307 void cmdyy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00308 YY_BUFFER_STATE cmdyy_create_buffer (FILE *file,int size  );
00309 void cmdyy_delete_buffer (YY_BUFFER_STATE b  );
00310 void cmdyy_flush_buffer (YY_BUFFER_STATE b  );
00311 void cmdyypush_buffer_state (YY_BUFFER_STATE new_buffer  );
00312 void cmdyypop_buffer_state (void );
00313 
00314 static void cmdyyensure_buffer_stack (void );
00315 static void cmdyy_load_buffer_state (void );
00316 static void cmdyy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00317 
00318 #define YY_FLUSH_BUFFER cmdyy_flush_buffer(YY_CURRENT_BUFFER )
00319 
00320 YY_BUFFER_STATE cmdyy_scan_buffer (char *base,yy_size_t size  );
00321 YY_BUFFER_STATE cmdyy_scan_string (yyconst char *yy_str  );
00322 YY_BUFFER_STATE cmdyy_scan_bytes (yyconst char *bytes,int len  );
00323 
00324 void *cmdyyalloc (yy_size_t  );
00325 void *cmdyyrealloc (void *,yy_size_t  );
00326 void cmdyyfree (void *  );
00327 
00328 #define yy_new_buffer cmdyy_create_buffer
00329 
00330 #define yy_set_interactive(is_interactive) \
00331         { \
00332         if ( ! YY_CURRENT_BUFFER ){ \
00333         cmdyyensure_buffer_stack (); \
00334                 YY_CURRENT_BUFFER_LVALUE =    \
00335             cmdyy_create_buffer(cmdyyin,YY_BUF_SIZE ); \
00336         } \
00337         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00338         }
00339 
00340 #define yy_set_bol(at_bol) \
00341         { \
00342         if ( ! YY_CURRENT_BUFFER ){\
00343         cmdyyensure_buffer_stack (); \
00344                 YY_CURRENT_BUFFER_LVALUE =    \
00345             cmdyy_create_buffer(cmdyyin,YY_BUF_SIZE ); \
00346         } \
00347         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00348         }
00349 
00350 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00351 
00352 /* Begin user sect3 */
00353 
00354 typedef unsigned char YY_CHAR;
00355 
00356 FILE *cmdyyin = (FILE *) 0, *cmdyyout = (FILE *) 0;
00357 
00358 typedef int yy_state_type;
00359 
00360 extern int cmdyylineno;
00361 
00362 int cmdyylineno = 1;
00363 
00364 extern char *cmdyytext;
00365 #define yytext_ptr cmdyytext
00366 
00367 static yy_state_type yy_get_previous_state (void );
00368 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
00369 static int yy_get_next_buffer (void );
00370 static void yy_fatal_error (yyconst char msg[]  );
00371 
00372 /* Done after the current pattern has been matched and before the
00373  * corresponding action - sets up cmdyytext.
00374  */
00375 #define YY_DO_BEFORE_ACTION \
00376         (yytext_ptr) = yy_bp; \
00377         cmdyyleng = (size_t) (yy_cp - yy_bp); \
00378         (yy_hold_char) = *yy_cp; \
00379         *yy_cp = '\0'; \
00380         (yy_c_buf_p) = yy_cp;
00381 
00382 #define YY_NUM_RULES 68
00383 #define YY_END_OF_BUFFER 69
00384 /* This struct is not used in this scanner,
00385    but its presence is necessary. */
00386 struct yy_trans_info
00387         {
00388         flex_int32_t yy_verify;
00389         flex_int32_t yy_nxt;
00390         };
00391 static yyconst flex_int16_t yy_acclist[545] =
00392     {   0,
00393         9,    9,    9,    9,    8,    9,    8,    9,    9,    9,
00394      8193,16385,   69,   67,   68,    9,   67,   68,   68,   66,
00395        67,   68,   66,   67,   68,   67,   68,   67,   68,   67,
00396        68,   67,   68,   67,   68,   67,   68,   67,   68,   67,
00397        68,   67,   68,   67,   68,   67,   68,   67,   68,   67,
00398        68,   67,   68,   67,   68,   67,   68,   67,   68,   67,
00399        68,   67,   68,   67,   68,   67,   68,   67,   68,    6,
00400        67,   68,    6,    9,   67,   68,    6,   67,   68,    6,
00401        66,   67,   68,    6,   66,   67,   68,    6,   67,   68,
00402         6,   67,   68,    6,   67,   68,    6,   67,   68,    6,
00403 
00404        67,   68,    6,   67,   68,    6,   67,   68,    6,   67,
00405        68,    6,   67,   68,    6,   67,   68,    6,   67,   68,
00406         6,   67,   68,    6,   67,   68,    6,   67,   68,    6,
00407        67,   68,    6,   67,   68,    6,   67,   68,    6,   67,
00408        68,    6,   67,   68,    6,   67,   68,    6,   67,   68,
00409         6,   67,   68,    8,    9,   67,   68,    7,   68,    7,
00410        67,   68,   67,   68, 8193,   68,16385, 8193,   68,   68,
00411         9,   66,   62,   60,   50,   49,   40,    6,    6,    9,
00412         6,    6,   66,    6,    6,    6,    6,    6,    6,    6,
00413         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
00414 
00415         6,    6,   62,    6,    6,    6,    6,    6,    6,    6,
00416        60,    6,    6,   50,    6,    6,    6,    6,   49,    6,
00417         6,    6,    6,    6,    6,    6,    6,    6,    6,   40,
00418         6,    6,    6,    6,    8,    9, 8193,16385, 8193,   52,
00419        51,   57,    4,    6,    4,    6,    6,    6,    6,    6,
00420         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
00421         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
00422         6,    6,    6,    6,   52,    6,    6,    6,    6,   51,
00423         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
00424         6,    6,    6,    6,    6,    6,   57,    5,   41,   10,
00425 
00426        11,   48,   14,   42,   54,   28,   35,    2,   26,   36,
00427         3,   56,    6,    6,    6,    6,    6,    6,    6,    6,
00428         6,    6,   41,    6,    6,   10,    6,   11,    6,    6,
00429         6,    6,    6,    6,   48,    6,    6,   14,    6,    6,
00430        42,    6,   54,    6,   28,    6,   35,    2,    6,    6,
00431        26,    6,    6,   36,    6,    3,    6,    6,    6,    6,
00432         6,    6,    6,    6,    6,    6,    6,    6,    6,   56,
00433         6,    6,    6,   45,   61,   59,   34,   43,   37,   65,
00434         6,    6,    6,    6,   45,    6,   61,    6,    6,    6,
00435         6,    6,    6,    6,   59,    6,    6,   34,    6,    6,
00436 
00437         6,    6,    6,    6,    6,    6,    6,    6,    6,   43,
00438         6,    6,   37,    6,    6,    6,    6,   65,    6,    6,
00439         6,    6,   27,   24,   16,   63,   55,   18,   19,   25,
00440        44,   12,   46,   47,   23,   29,   31,   15,    6,   27,
00441         6,    6,   24,    6,   16,    6,   63,    6,    6,    6,
00442         6,   55,    6,    6,    6,   18,    6,    6,   19,    6,
00443         6,   25,    6,   44,    6,   12,    6,   46,    6,    6,
00444        47,    6,    6,    6,   23,    6,   29,    6,   31,    6,
00445         6,   15,    6,   20,   58,   13,   21,    6,    6,    6,
00446        20,    6,   58,    6,    6,    6,    6,    6,   13,    6,
00447 
00448        21,    6,    6,    6,   64,   30,   22,   39,    6,    6,
00449        64,    6,   30,    6,    6,    6,    6,   22,    6,   39,
00450         6,   33,    6,    6,    6,    6,    6,   33,   17,   38,
00451         6,    6,   17,    6,   38,    6,   32,    6,    6,   32,
00452         6,   53,    6,   53
00453     } ;
00454 
00455 static yyconst flex_int16_t yy_accept[572] =
00456     {   0,
00457         1,    2,    3,    4,    5,    7,    9,   10,   11,   11,
00458        13,   14,   16,   19,   20,   23,   26,   28,   30,   32,
00459        34,   36,   38,   40,   42,   44,   46,   48,   50,   52,
00460        54,   56,   58,   60,   62,   64,   66,   68,   70,   73,
00461        77,   80,   84,   88,   91,   94,   97,  100,  103,  106,
00462       109,  112,  115,  118,  121,  124,  127,  130,  133,  136,
00463       139,  142,  145,  148,  151,  154,  158,  160,  163,  165,
00464       168,  170,  171,  172,  173,  173,  173,  173,  173,  173,
00465       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
00466       173,  173,  173,  174,  174,  174,  174,  174,  174,  174,
00467 
00468       175,  175,  176,  176,  176,  176,  177,  177,  177,  177,
00469       177,  177,  177,  177,  177,  177,  178,  178,  178,  178,
00470       178,  179,  181,  182,  182,  184,  185,  186,  187,  188,
00471       189,  190,  191,  192,  193,  194,  195,  196,  197,  198,
00472       199,  200,  201,  202,  204,  205,  206,  207,  208,  209,
00473       210,  212,  213,  215,  216,  217,  218,  220,  221,  222,
00474       223,  224,  225,  226,  227,  228,  229,  231,  232,  233,
00475       234,  235,  237,  237,  239,  240,  240,  240,  240,  240,
00476       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
00477       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
00478 
00479       240,  240,  240,  240,  240,  241,  241,  241,  241,  242,
00480       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
00481       242,  242,  242,  242,  242,  243,  245,  246,  247,  248,
00482       249,  250,  251,  252,  253,  254,  255,  256,  257,  258,
00483       259,  260,  261,  262,  263,  264,  265,  266,  267,  268,
00484       269,  270,  271,  272,  273,  274,  276,  277,  278,  279,
00485       281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
00486       291,  292,  293,  294,  295,  296,  298,  299,  299,  299,
00487       299,  299,  299,  299,  299,  299,  299,  300,  300,  301,
00488       302,  302,  302,  302,  302,  302,  303,  303,  304,  304,
00489 
00490       305,  306,  307,  308,  309,  310,  310,  311,  311,  312,
00491       312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
00492       312,  313,  313,  313,  313,  314,  315,  316,  317,  318,
00493       319,  320,  321,  322,  324,  325,  327,  329,  330,  331,
00494       332,  333,  334,  336,  337,  339,  340,  342,  344,  346,
00495       348,  350,  352,  353,  355,  356,  358,  359,  360,  361,
00496       362,  363,  364,  365,  366,  367,  368,  369,  371,  372,
00497       373,  374,  374,  374,  374,  375,  376,  376,  376,  376,
00498       376,  376,  376,  377,  377,  378,  378,  378,  378,  378,
00499       378,  378,  378,  378,  378,  378,  379,  379,  380,  380,
00500 
00501       380,  380,  381,  381,  381,  381,  381,  382,  383,  384,
00502       386,  388,  389,  390,  391,  392,  393,  394,  396,  397,
00503       399,  400,  401,  402,  403,  404,  405,  406,  407,  408,
00504       409,  411,  412,  414,  415,  416,  417,  419,  420,  421,
00505       422,  423,  424,  424,  425,  426,  427,  427,  427,  427,
00506       428,  428,  428,  429,  429,  430,  430,  431,  432,  433,
00507       434,  434,  435,  435,  435,  436,  437,  438,  438,  439,
00508       439,  441,  442,  444,  446,  448,  449,  450,  451,  453,
00509       454,  455,  457,  458,  460,  461,  463,  465,  467,  469,
00510       470,  472,  473,  474,  476,  478,  480,  481,  483,  484,
00511 
00512       484,  484,  485,  486,  486,  486,  486,  486,  487,  488,
00513       488,  488,  488,  489,  490,  492,  494,  495,  496,  497,
00514       498,  500,  502,  503,  504,  505,  505,  506,  507,  507,
00515       507,  507,  508,  509,  509,  510,  512,  514,  515,  516,
00516       517,  519,  521,  522,  522,  522,  522,  522,  523,  524,
00517       525,  526,  527,  529,  529,  530,  531,  531,  532,  534,
00518       536,  537,  537,  538,  539,  541,  541,  542,  543,  545,
00519       545
00520     } ;
00521 
00522 static yyconst flex_int32_t yy_ec[256] =
00523     {   0,
00524         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00525         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
00526         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00527         1,    2,    1,    5,    1,    1,    1,    1,    1,    1,
00528         1,    1,    1,    1,    1,    1,    1,    6,    7,    6,
00529         6,    6,    6,    6,    6,    6,    6,    1,    8,    1,
00530         1,    1,    1,    1,    9,   10,   11,   12,   13,   14,
00531        15,   16,   17,    1,   18,   19,   20,   21,   22,   23,
00532         1,   24,   25,   26,   27,   28,   29,   30,   31,   32,
00533         1,    1,    1,    1,   33,    1,   34,   35,   36,   37,
00534 
00535        38,   39,   40,   41,   42,    1,   43,   44,   45,   46,
00536        47,   48,    1,   49,   50,   51,   52,   53,   54,   55,
00537        56,   57,    1,    1,    1,    1,    1,    1,    1,    1,
00538         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00539         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00540         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00541         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00542         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00543         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00544         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00545 
00546         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00547         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00548         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00549         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00550         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00551         1,    1,    1,    1,    1
00552     } ;
00553 
00554 static yyconst flex_int32_t yy_meta[58] =
00555     {   0,
00556         1,    1,    2,    1,    3,    1,    1,    2,    1,    1,
00557         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00558         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00559         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00560         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00561         1,    1,    1,    1,    1,    1,    1
00562     } ;
00563 
00564 static yyconst flex_int16_t yy_base[578] =
00565     {   0,
00566         0,    0,   57,    0,  113,  115, 1101, 1100,    0,  116,
00567      1104, 1147, 1101, 1147,  118,  120,   99,  106,  113,  117,
00568       110,  139,  118,  116,  132,  128,  137,  163,  165,  128,
00569       165,  167,  178,  199,  158,  169,  200,  177,    0, 1100,
00570       222,  186,  228,  188,  196,  233,  215,  210,  241,  220,
00571       223,  242,  241,  258,  250,  260,  263,  280,  277,  279,
00572       299,  243,  268,  296,  286,  416, 1147, 1147,    0,  297,
00573      1147,  275,  259,  319,  292,  294,  298,  314,  323,  315,
00574       323,  314,  315,  336,  336,  331,  329,  341,  335,  333,
00575       336,  335, 1147,  341,  332,  352,  343,  359,  338,  374,
00576 
00577       368, 1147,  358,  360,  376, 1147,  375,  375,  375,  382,
00578       393,  393,  390,  389,  378, 1147,  384,  389,  389,  392,
00579         0,  236,  440,  219,  366,  404,  408,  408,  419,  430,
00580       416,  426,  419,  420,  441,  438,  433,  431,  443,  439,
00581       437,  438,  439,    0,  447,  436,  454,  446,  459,  443,
00582       476,  468,    0,  458,  460,  476,    0,  483,  475,  470,
00583       482,  494,  494,  490,  490,  483,    0,  489,  496,  494,
00584       495,  200,  195,  528, 1147,  195,  491,  510,  524,  518,
00585       514,  527,  163,  535,  538,  528,  540,  540,  526,  528,
00586       545,  528,  537,  547,  529,  542,  541,  541,  540,  549,
00587 
00588       555,  557,  545,  560, 1147,  566,  566,  576, 1147,  562,
00589       572,  580,  583,  583,  584,  591,  593,  587,  586,  592,
00590       595,  583,  598,  595, 1147,    0, 1147,  586,  604,  606,
00591       601,  596,  610,  146,  627,  628,  618,  630,  633,  621,
00592       624,  641,  624,  633,  643,  625,  638,  637,  635,  632,
00593       641,  647,  650,  640,  654,    0,  648,  649,  658,    0,
00594       645,  664,  673,  671,  672,  677,  686,  690,  684,  683,
00595       688,  691,  679,  694,  689,    0, 1147,  695,  688,  697,
00596       701,  691,  696,  701,  693,  713, 1147,  717, 1147, 1147,
00597       724,  713,  715,  719,  738, 1147,  717, 1147,  723, 1147,
00598 
00599      1147,  116, 1147, 1147, 1147,  742, 1147,  731, 1147,  744,
00600       722,  746,  730,  736,  732,  741,  747,  742,  753,  748,
00601      1147,  751,  748,  746,  760,  765,  774,  777,  765,  773,
00602       780,  772,  791,    0,  783,    0,    0,  790,  778,  780,
00603       781,  798,    0,  776,    0,  782,    0,    0,  108,    0,
00604         0,    0,  801,    0,  792,    0,  807,  785,  809,  794,
00605       800,  797,  818,  824,  818,  827,  825,    0,  830,  827,
00606       825,  832,  840,  829, 1147, 1147,  828,  843,  847,  838,
00607       839,  846, 1147,  843, 1147,  852,  847,  845,  842,  844,
00608       852,  847,  874,  874,  865, 1147,  872, 1147,  884,  882,
00609 
00610       884, 1147,  887,  891,  874,  881,  886,  894,  883,    0,
00611         0,  882,  897,  901,  894,  897,  904,    0,  901,    0,
00612       909,  902,  901,  910,  911,  920,  914,  932,  934,  925,
00613         0,  932,    0,  938,  940,  938,    0,  941,  945,  928,
00614       935, 1147,  103, 1147, 1147, 1147,  935,  934,  950, 1147,
00615       945,  943, 1147,  947, 1147,  948, 1147, 1147, 1147, 1147,
00616       945, 1147,  961,  965, 1147, 1147, 1147,  978, 1147,  980,
00617         0,  100,    0,    0,    0,  966,  968,  984,    0,  978,
00618       976,    0,  980,    0,  980,    0,    0,    0,    0,  977,
00619         0,  992,  984,    0,    0,    0,  997,    0,  998,  989,
00620 
00621       991, 1147, 1147,  995, 1000,  990, 1002, 1147, 1147, 1003,
00622      1001, 1010, 1004, 1018,    0,    0, 1022, 1026, 1014, 1029,
00623         0,    0, 1032, 1030, 1039, 1042, 1147, 1147, 1039, 1044,
00624      1039, 1147, 1147, 1042, 1047,    0,    0, 1044, 1049, 1044,
00625         0,    0, 1047, 1032, 1045, 1048, 1049, 1147, 1039, 1050,
00626      1054, 1067,    0, 1065, 1147, 1147, 1076, 1068,    0,    0,
00627      1081, 1070, 1147, 1072,    0, 1074, 1075, 1147,    0, 1147,
00628      1126, 1129, 1132, 1135, 1138, 1140, 1143
00629     } ;
00630 
00631 static yyconst flex_int16_t yy_def[578] =
00632     {   0,
00633       570,    1,  570,    3,    1,    1,    1,    1,  571,  572,
00634       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00635       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00636       570,  570,  570,  570,  570,  570,  570,  570,  573,  573,
00637       574,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00638       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00639       573,  573,  573,  573,  573,  570,  570,  570,  575,  576,
00640       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00641       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00642       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00643 
00644       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00645       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00646       573,  573,  574,  577,  573,  573,  573,  573,  573,  573,
00647       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00648       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00649       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00650       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00651       573,  570,  575,  576,  570,  570,  570,  570,  570,  570,
00652       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00653       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00654 
00655       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00656       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00657       570,  570,  570,  570,  570,  573,  570,  573,  573,  573,
00658       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00659       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00660       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00661       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00662       573,  573,  573,  573,  573,  573,  570,  570,  570,  570,
00663       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00664       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00665 
00666       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00667       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00668       570,  570,  570,  570,  573,  573,  573,  573,  573,  573,
00669       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00670       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00671       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00672       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00673       573,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00674       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00675       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00676 
00677       570,  570,  570,  570,  570,  570,  573,  573,  573,  573,
00678       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00679       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00680       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00681       573,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00682       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00683       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00684       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00685       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
00686       573,  573,  573,  573,  573,  573,  573,  573,  573,  570,
00687 
00688       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00689       570,  570,  573,  573,  573,  573,  573,  573,  573,  573,
00690       573,  573,  573,  573,  573,  570,  570,  570,  570,  570,
00691       570,  570,  570,  570,  573,  573,  573,  573,  573,  573,
00692       573,  573,  573,  570,  570,  570,  570,  570,  573,  573,
00693       573,  573,  573,  570,  570,  570,  570,  573,  573,  573,
00694       573,  570,  570,  573,  573,  570,  573,  570,  573,    0,
00695       570,  570,  570,  570,  570,  570,  570
00696     } ;
00697 
00698 static yyconst flex_int16_t yy_nxt[1205] =
00699     {   0,
00700        12,   13,   14,   12,   12,   15,   16,   12,   17,   18,
00701        19,   20,   21,   22,   23,   24,   25,   26,   27,   28,
00702        29,   30,   31,   32,   33,   34,   35,   36,   37,   12,
00703        38,   12,   12,   17,   18,   19,   20,   21,   22,   23,
00704        24,   25,   26,   27,   28,   29,   30,   31,   32,   33,
00705        34,   35,   36,   37,   12,   38,   12,   39,   40,   14,
00706        39,   41,   42,   43,   12,   44,   45,   46,   47,   48,
00707        49,   50,   51,   52,   53,   54,   55,   56,   57,   58,
00708        59,   60,   61,   62,   63,   64,   39,   65,   39,   39,
00709        44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
00710 
00711        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
00712        64,   39,   65,   39,   66,   67,   66,   67,   71,   72,
00713        68,   76,   68,   74,   74,   74,   74,   77,   78,   81,
00714        84,   79,  513,   82,   80,  500,   90,   92,   83,   85,
00715       425,   91,   75,   93,   94,   95,   76,   86,  390,   96,
00716       101,  102,   77,   78,   81,   84,   79,   87,   82,   80,
00717        88,   90,   92,   83,   85,   89,   91,   75,   93,   94,
00718        95,   97,   86,  103,   96,  101,  102,   99,  331,  107,
00719       116,  117,   87,  108,   98,   88,  100,  104,  105,  120,
00720        89,  125,  125,  109,  106,  284,   97,  175,  103,  277,
00721 
00722       110,  172,   99,  111,  107,  116,  117,  112,  108,   98,
00723       127,  100,  104,  105,  120,  113,  118,  128,  109,  106,
00724       114,  119,  115,  227,  124,  110,  121,  132,  111,  124,
00725       135,  133,  112,  125,  125,  127,  134,  122,  141,  136,
00726       113,  118,  128,  142,  143,  114,  119,  115,  129,  137,
00727       126,  130,  132,  144,  131,  135,  133,  145,  148,  138,
00728        73,  134,  139,  141,  136,  167,  146,  140,  142,  143,
00729       147,  149,  150,  129,  137,  126,  130,  175,  144,  131,
00730       168,  151,  145,  148,  138,  152,  153,  139,  154,  158,
00731       167,  146,  140,  159,  160,  147,  149,  150,  171,  175,
00732 
00733       176,  161,  155,  156,  162,  168,  151,  163,  177,  157,
00734       152,  153,  169,  154,  158,  164,  178,  170,  159,  160,
00735       165,  179,  166,  171,   74,   74,  161,  155,  156,  162,
00736       180,  181,  163,  177,  157,  183,  184,  169,  185,  182,
00737       164,  178,  170,  186,  187,  165,  179,  166,  188,  190,
00738       191,  192,  189,  193,  194,  180,  181,  195,  196,  197,
00739       183,  184,  198,  185,  182,  199,  200,  203,  186,  187,
00740       201,  125,  125,  188,  190,  191,  192,  189,  193,  194,
00741       207,  208,  195,  196,  197,  209,  202,  198,  210,  213,
00742       199,  200,  203,  211,  204,  201,  205,  206,  214,  212,
00743 
00744       215,  216,  217,  220,  221,  207,  208,  222,  218,  223,
00745       209,  202,  224,  210,  213,  219,  225,  172,  211,  204,
00746       228,  205,  206,  214,  212,  215,  216,  217,  220,  221,
00747       229,  230,  222,  218,  223,  231,  234,  224,  232,  235,
00748       219,  225,  124,  236,  226,  228,  233,  124,  237,  238,
00749       239,  241,  242,  243,  240,  229,  230,  244,  245,  246,
00750       231,  234,  247,  232,  235,  248,  249,  250,  236,  251,
00751       252,  233,  254,  237,  238,  239,  241,  242,  243,  240,
00752       258,  259,  244,  245,  246,  260,  253,  247,  261,  264,
00753       248,  249,  250,  265,  251,  252,  255,  254,  256,  257,
00754 
00755       266,  262,  267,  268,  271,  258,  259,  263,  269,  272,
00756       260,  253,  273,  261,  264,  270,  274,  275,  265,  276,
00757       278,  255,  279,  256,  257,  266,  262,  267,  268,  271,
00758       175,  176,  263,  269,  272,  280,  281,  273,  282,  283,
00759       270,  274,  275,  285,  276,  278,  286,  279,  287,  288,
00760       289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
00761       280,  281,  299,  282,  283,  300,  301,  302,  285,  303,
00762       304,  286,  305,  287,  288,  289,  290,  291,  292,  293,
00763       294,  295,  296,  297,  298,  306,  307,  299,  308,  309,
00764       300,  301,  302,  310,  303,  304,  311,  305,  313,  314,
00765 
00766       315,  316,  317,  318,  319,  312,  320,  321,  322,  323,
00767       306,  307,  324,  308,  309,  325,  326,  327,  310,  328,
00768       329,  311,  330,  313,  314,  315,  316,  317,  318,  319,
00769       312,  320,  321,  322,  323,  332,  333,  324,  334,  335,
00770       325,  326,  327,  336,  328,  329,  337,  330,  338,  339,
00771       340,  341,  342,  343,  344,  345,  346,  347,  348,  349,
00772       332,  333,  350,  334,  335,  351,  352,  353,  336,  354,
00773       355,  337,  356,  338,  339,  340,  341,  342,  343,  344,
00774       345,  346,  347,  348,  349,  357,  360,  350,  361,  358,
00775       351,  352,  353,  362,  354,  355,  363,  356,  359,  364,
00776 
00777       365,  366,  367,  368,  369,  370,  371,  372,  373,  374,
00778       357,  360,  375,  361,  358,  376,  377,  378,  362,  380,
00779       379,  363,  381,  359,  364,  365,  366,  367,  368,  369,
00780       370,  371,  372,  373,  374,  382,  383,  375,  384,  385,
00781       376,  377,  378,  386,  380,  379,  387,  381,  388,  389,
00782       391,  392,  393,  394,  395,  396,  397,  398,  399,  400,
00783       382,  383,  401,  384,  385,  402,  403,  404,  386,  405,
00784       406,  387,  407,  388,  389,  391,  392,  393,  394,  395,
00785       396,  397,  398,  399,  400,  408,  409,  401,  410,  411,
00786       402,  403,  404,  412,  405,  406,  413,  407,  415,  414,
00787 
00788       416,  417,  418,  419,  420,  421,  422,  423,  424,  426,
00789       408,  409,  427,  410,  411,  428,  429,  430,  412,  431,
00790       432,  413,  433,  415,  414,  416,  417,  418,  419,  420,
00791       421,  422,  423,  424,  426,  434,  435,  427,  436,  437,
00792       428,  429,  430,  438,  431,  432,  439,  433,  440,  441,
00793       442,  443,  444,  445,  446,  447,  448,  449,  450,  451,
00794       434,  435,  452,  436,  437,  453,  454,  455,  438,  456,
00795       457,  439,  458,  440,  441,  442,  443,  444,  445,  446,
00796       447,  448,  449,  450,  451,  459,  460,  452,  461,  462,
00797       453,  454,  455,  465,  456,  457,  463,  458,  466,  467,
00798 
00799       464,  468,  469,  470,  471,  472,  473,  474,  475,  476,
00800       459,  460,  477,  461,  462,  478,  479,  480,  465,  481,
00801       482,  463,  483,  466,  467,  464,  468,  469,  470,  471,
00802       472,  473,  474,  475,  476,  484,  485,  477,  486,  487,
00803       478,  479,  480,  488,  481,  482,  489,  483,  490,  491,
00804       492,  494,  495,  496,  493,  497,  498,  499,  501,  502,
00805       484,  485,  503,  486,  487,  504,  505,  506,  488,  507,
00806       508,  489,  509,  490,  491,  492,  494,  495,  496,  493,
00807       497,  498,  499,  501,  502,  510,  511,  503,  512,  514,
00808       504,  505,  506,  515,  507,  508,  516,  509,  517,  518,
00809 
00810       519,  520,  521,  522,  523,  524,  525,  526,  527,  528,
00811       510,  511,  529,  512,  514,  530,  531,  532,  515,  533,
00812       534,  516,  535,  517,  518,  519,  520,  521,  522,  523,
00813       524,  525,  526,  527,  528,  536,  537,  529,  538,  539,
00814       530,  531,  532,  540,  533,  534,  541,  535,  542,  543,
00815       544,  545,  546,  547,  548,  549,  550,  551,  552,  553,
00816       536,  537,  554,  538,  539,  555,  556,  557,  540,  558,
00817       559,  541,  560,  542,  543,  544,  545,  546,  547,  548,
00818       549,  550,  551,  552,  553,  561,  562,  554,  563,  564,
00819       555,  556,  557,  565,  558,  559,  566,  560,  567,  568,
00820 
00821       569,  122,   73,  570,   69,   69,  570,  570,  570,  570,
00822       561,  562,  570,  563,  564,  570,  570,  570,  565,  570,
00823       570,  566,  570,  567,  568,  569,   14,   14,   14,   70,
00824        70,   70,  121,  570,  121,  123,  123,  123,  173,  173,
00825       174,  174,  174,  124,  124,  124,   11,  570,  570,  570,
00826       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00827       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00828       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00829       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00830       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00831 
00832       570,  570,  570,  570
00833     } ;
00834 
00835 static yyconst flex_int16_t yy_chk[1205] =
00836     {   0,
00837         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00838         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00839         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00840         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00841         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00842         1,    1,    1,    1,    1,    1,    1,    3,    3,    3,
00843         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00844         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00845         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00846         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00847 
00848         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00849         3,    3,    3,    3,    5,    5,    6,    6,   10,   10,
00850         5,   17,    6,   15,   15,   16,   16,   18,   19,   20,
00851        21,   19,  472,   20,   19,  443,   23,   24,   20,   21,
00852       349,   23,   16,   25,   26,   27,   17,   22,  302,   27,
00853        30,   30,   18,   19,   20,   21,   19,   22,   20,   19,
00854        22,   23,   24,   20,   21,   22,   23,   16,   25,   26,
00855        27,   28,   22,   31,   27,   30,   30,   29,  234,   32,
00856        35,   36,   22,   32,   28,   22,   29,   31,   31,   38,
00857        22,   42,   42,   33,   31,  183,   28,  176,   31,  173,
00858 
00859        33,  172,   29,   33,   32,   35,   36,   34,   32,   28,
00860        44,   29,   31,   31,   38,   34,   37,   45,   33,   31,
00861        34,   37,   34,  124,   41,   33,   41,   47,   33,   41,
00862        48,   47,   34,   43,   43,   44,   47,  122,   50,   48,
00863        34,   37,   45,   50,   51,   34,   37,   34,   46,   49,
00864        43,   46,   47,   52,   46,   48,   47,   53,   55,   49,
00865        73,   47,   49,   50,   48,   62,   54,   49,   50,   51,
00866        54,   55,   56,   46,   49,   43,   46,   72,   52,   46,
00867        63,   56,   53,   55,   49,   57,   57,   49,   58,   59,
00868        62,   54,   49,   59,   60,   54,   55,   56,   65,   70,
00869 
00870        70,   60,   58,   58,   60,   63,   56,   61,   75,   58,
00871        57,   57,   64,   58,   59,   61,   76,   64,   59,   60,
00872        61,   77,   61,   65,   74,   74,   60,   58,   58,   60,
00873        78,   79,   61,   75,   58,   80,   81,   64,   82,   79,
00874        61,   76,   64,   83,   84,   61,   77,   61,   85,   86,
00875        87,   88,   85,   89,   90,   78,   79,   91,   92,   94,
00876        80,   81,   95,   82,   79,   96,   97,   99,   83,   84,
00877        98,  125,  125,   85,   86,   87,   88,   85,   89,   90,
00878       101,  103,   91,   92,   94,  104,   98,   95,  105,  108,
00879        96,   97,   99,  107,  100,   98,  100,  100,  109,  107,
00880 
00881       110,  111,  112,  114,  115,  101,  103,  117,  113,  118,
00882       104,   98,  119,  105,  108,  113,  120,   66,  107,  100,
00883       126,  100,  100,  109,  107,  110,  111,  112,  114,  115,
00884       127,  128,  117,  113,  118,  129,  131,  119,  130,  132,
00885       113,  120,  123,  133,  123,  126,  130,  123,  134,  135,
00886       136,  137,  138,  139,  136,  127,  128,  140,  141,  142,
00887       129,  131,  143,  130,  132,  145,  146,  147,  133,  148,
00888       149,  130,  150,  134,  135,  136,  137,  138,  139,  136,
00889       152,  154,  140,  141,  142,  155,  149,  143,  156,  159,
00890       145,  146,  147,  160,  148,  149,  151,  150,  151,  151,
00891 
00892       161,  158,  162,  163,  165,  152,  154,  158,  164,  166,
00893       155,  149,  168,  156,  159,  164,  169,  170,  160,  171,
00894       177,  151,  178,  151,  151,  161,  158,  162,  163,  165,
00895       174,  174,  158,  164,  166,  179,  180,  168,  181,  182,
00896       164,  169,  170,  184,  171,  177,  185,  178,  186,  187,
00897       188,  189,  190,  191,  192,  193,  194,  195,  196,  197,
00898       179,  180,  198,  181,  182,  199,  200,  201,  184,  202,
00899       203,  185,  204,  186,  187,  188,  189,  190,  191,  192,
00900       193,  194,  195,  196,  197,  206,  207,  198,  208,  210,
00901       199,  200,  201,  211,  202,  203,  212,  204,  213,  214,
00902 
00903       215,  216,  217,  218,  219,  212,  220,  221,  222,  223,
00904       206,  207,  224,  208,  210,  228,  229,  230,  211,  231,
00905       232,  212,  233,  213,  214,  215,  216,  217,  218,  219,
00906       212,  220,  221,  222,  223,  235,  236,  224,  237,  238,
00907       228,  229,  230,  239,  231,  232,  240,  233,  241,  242,
00908       243,  244,  245,  246,  247,  248,  249,  250,  251,  252,
00909       235,  236,  253,  237,  238,  254,  255,  257,  239,  258,
00910       259,  240,  261,  241,  242,  243,  244,  245,  246,  247,
00911       248,  249,  250,  251,  252,  262,  264,  253,  265,  263,
00912       254,  255,  257,  266,  258,  259,  267,  261,  263,  268,
00913 
00914       269,  270,  271,  272,  273,  274,  275,  278,  279,  280,
00915       262,  264,  281,  265,  263,  282,  283,  284,  266,  285,
00916       284,  267,  286,  263,  268,  269,  270,  271,  272,  273,
00917       274,  275,  278,  279,  280,  288,  291,  281,  292,  293,
00918       282,  283,  284,  294,  285,  284,  295,  286,  297,  299,
00919       306,  308,  310,  311,  312,  313,  314,  315,  316,  317,
00920       288,  291,  318,  292,  293,  319,  320,  322,  294,  323,
00921       324,  295,  325,  297,  299,  306,  308,  310,  311,  312,
00922       313,  314,  315,  316,  317,  326,  327,  318,  328,  329,
00923       319,  320,  322,  330,  323,  324,  331,  325,  332,  331,
00924 
00925       333,  335,  338,  339,  340,  341,  342,  344,  346,  353,
00926       326,  327,  355,  328,  329,  357,  358,  359,  330,  360,
00927       361,  331,  362,  332,  331,  333,  335,  338,  339,  340,
00928       341,  342,  344,  346,  353,  363,  364,  355,  365,  366,
00929       357,  358,  359,  367,  360,  361,  369,  362,  370,  371,
00930       372,  373,  374,  377,  378,  379,  380,  381,  382,  384,
00931       363,  364,  386,  365,  366,  387,  388,  389,  367,  390,
00932       391,  369,  392,  370,  371,  372,  373,  374,  377,  378,
00933       379,  380,  381,  382,  384,  393,  394,  386,  395,  397,
00934       387,  388,  389,  400,  390,  391,  399,  392,  401,  403,
00935 
00936       399,  404,  405,  406,  407,  408,  409,  412,  413,  414,
00937       393,  394,  415,  395,  397,  416,  417,  419,  400,  421,
00938       422,  399,  423,  401,  403,  399,  404,  405,  406,  407,
00939       408,  409,  412,  413,  414,  424,  425,  415,  426,  427,
00940       416,  417,  419,  428,  421,  422,  429,  423,  430,  432,
00941       434,  435,  436,  438,  434,  439,  440,  441,  447,  448,
00942       424,  425,  449,  426,  427,  451,  452,  454,  428,  456,
00943       461,  429,  463,  430,  432,  434,  435,  436,  438,  434,
00944       439,  440,  441,  447,  448,  464,  468,  449,  470,  476,
00945       451,  452,  454,  477,  456,  461,  478,  463,  480,  481,
00946 
00947       483,  485,  490,  492,  493,  497,  499,  500,  501,  504,
00948       464,  468,  505,  470,  476,  506,  507,  510,  477,  511,
00949       512,  478,  513,  480,  481,  483,  485,  490,  492,  493,
00950       497,  499,  500,  501,  504,  514,  517,  505,  518,  519,
00951       506,  507,  510,  520,  511,  512,  523,  513,  524,  525,
00952       526,  529,  530,  531,  534,  535,  538,  539,  540,  543,
00953       514,  517,  544,  518,  519,  545,  546,  547,  520,  549,
00954       550,  523,  551,  524,  525,  526,  529,  530,  531,  534,
00955       535,  538,  539,  540,  543,  552,  554,  544,  557,  558,
00956       545,  546,  547,  561,  549,  550,  562,  551,  564,  566,
00957 
00958       567,   40,   13,   11,    8,    7,    0,    0,    0,    0,
00959       552,  554,    0,  557,  558,    0,    0,    0,  561,    0,
00960         0,  562,    0,  564,  566,  567,  571,  571,  571,  572,
00961       572,  572,  573,    0,  573,  574,  574,  574,  575,  575,
00962       576,  576,  576,  577,  577,  577,  570,  570,  570,  570,
00963       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00964       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00965       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00966       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00967       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
00968 
00969       570,  570,  570,  570
00970     } ;
00971 
00972 extern int cmdyy_flex_debug;
00973 int cmdyy_flex_debug = 0;
00974 
00975 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
00976 static char *yy_full_match;
00977 static int yy_lp;
00978 static int yy_looking_for_trail_begin = 0;
00979 static int yy_full_lp;
00980 static int *yy_full_state;
00981 #define YY_TRAILING_MASK 0x2000
00982 #define YY_TRAILING_HEAD_MASK 0x4000
00983 #define REJECT \
00984 { \
00985 *yy_cp = (yy_hold_char); /* undo effects of setting up cmdyytext */ \
00986 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
00987 (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \
00988 (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \
00989 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
00990 ++(yy_lp); \
00991 goto find_rule; \
00992 }
00993 
00994 #define yymore() yymore_used_but_not_detected
00995 #define YY_MORE_ADJ 0
00996 #define YY_RESTORE_YY_MORE_OFFSET
00997 char *cmdyytext;
00998 #line 1 "src/cmdparse.l"
00999 /*
01000  * vim:ts=4:sw=4:expandtab
01001  *
01002  * i3 - an improved dynamic tiling window manager
01003  * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
01004  *
01005  * cmdparse.l: the lexer for commands you send to i3 (or bind on keys)
01006  *
01007  */
01008 #define YY_NO_INPUT 1
01009 #line 16 "src/cmdparse.l"
01010 #include <stdio.h>
01011 #include <string.h>
01012 #include "cmdparse.tab.h"
01013 
01014 #include "config.h"
01015 #include "util.h"
01016 
01017 int cmdyycolumn = 1;
01018 
01019 #define YY_DECL int cmdyylex (struct context *context)
01020 
01021 #define YY_USER_ACTION { \
01022     context->first_column = cmdyycolumn; \
01023     context->last_column = cmdyycolumn+cmdyyleng-1; \
01024     cmdyycolumn += cmdyyleng; \
01025 }
01026 
01027 /* macro to first eat whitespace, then expect a string */
01028 #define WS_STRING do { \
01029     yy_push_state(WANT_STRING); \
01030     yy_push_state(EAT_WHITESPACE); \
01031 } while (0)
01032 
01033 /* handle everything up to \n as a string */
01034 
01035 /* eat a whitespace, then go to the next state on the stack */
01036 
01037 /* handle a quoted string or everything up to the next whitespace */
01038 
01039 
01040 #line 1041 "src/cmdparse.yy.c"
01041 
01042 #define INITIAL 0
01043 #define WANT_STRING 1
01044 #define EAT_WHITESPACE 2
01045 #define WANT_QSTRING 3
01046 #define BUFFER_LINE 4
01047 
01048 #ifndef YY_NO_UNISTD_H
01049 /* Special case for "unistd.h", since it is non-ANSI. We include it way
01050  * down here because we want the user's section 1 to have been scanned first.
01051  * The user has a chance to override it with an option.
01052  */
01053 #include <unistd.h>
01054 #endif
01055 
01056 #ifndef YY_EXTRA_TYPE
01057 #define YY_EXTRA_TYPE void *
01058 #endif
01059 
01060 static int yy_init_globals (void );
01061 
01062 /* Accessor methods to globals.
01063    These are made visible to non-reentrant scanners for convenience. */
01064 
01065 int cmdyylex_destroy (void );
01066 
01067 int cmdyyget_debug (void );
01068 
01069 void cmdyyset_debug (int debug_flag  );
01070 
01071 YY_EXTRA_TYPE cmdyyget_extra (void );
01072 
01073 void cmdyyset_extra (YY_EXTRA_TYPE user_defined  );
01074 
01075 FILE *cmdyyget_in (void );
01076 
01077 void cmdyyset_in  (FILE * in_str  );
01078 
01079 FILE *cmdyyget_out (void );
01080 
01081 void cmdyyset_out  (FILE * out_str  );
01082 
01083 int cmdyyget_leng (void );
01084 
01085 char *cmdyyget_text (void );
01086 
01087 int cmdyyget_lineno (void );
01088 
01089 void cmdyyset_lineno (int line_number  );
01090 
01091 /* Macros after this point can all be overridden by user definitions in
01092  * section 1.
01093  */
01094 
01095 #ifndef YY_SKIP_YYWRAP
01096 #ifdef __cplusplus
01097 extern "C" int cmdyywrap (void );
01098 #else
01099 extern int cmdyywrap (void );
01100 #endif
01101 #endif
01102 
01103 #ifndef yytext_ptr
01104 static void yy_flex_strncpy (char *,yyconst char *,int );
01105 #endif
01106 
01107 #ifdef YY_NEED_STRLEN
01108 static int yy_flex_strlen (yyconst char * );
01109 #endif
01110 
01111 #ifndef YY_NO_INPUT
01112 
01113 #ifdef __cplusplus
01114 static int yyinput (void );
01115 #else
01116 static int input (void );
01117 #endif
01118 
01119 #endif
01120 
01121         static int yy_start_stack_ptr = 0;
01122         static int yy_start_stack_depth = 0;
01123         static int *yy_start_stack = NULL;
01124     
01125     static void yy_push_state (int new_state );
01126     
01127     static void yy_pop_state (void );
01128     
01129 /* Amount of stuff to slurp up with each read. */
01130 #ifndef YY_READ_BUF_SIZE
01131 #define YY_READ_BUF_SIZE 8192
01132 #endif
01133 
01134 /* Copy whatever the last rule matched to the standard output. */
01135 #ifndef ECHO
01136 /* This used to be an fputs(), but since the string might contain NUL's,
01137  * we now use fwrite().
01138  */
01139 #define ECHO do { if (fwrite( cmdyytext, cmdyyleng, 1, cmdyyout )) {} } while (0)
01140 #endif
01141 
01142 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01143  * is returned in "result".
01144  */
01145 #ifndef YY_INPUT
01146 #define YY_INPUT(buf,result,max_size) \
01147         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01148                 { \
01149                 int c = '*'; \
01150                 unsigned n; \
01151                 for ( n = 0; n < max_size && \
01152                              (c = getc( cmdyyin )) != EOF && c != '\n'; ++n ) \
01153                         buf[n] = (char) c; \
01154                 if ( c == '\n' ) \
01155                         buf[n++] = (char) c; \
01156                 if ( c == EOF && ferror( cmdyyin ) ) \
01157                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01158                 result = n; \
01159                 } \
01160         else \
01161                 { \
01162                 errno=0; \
01163                 while ( (result = fread(buf, 1, max_size, cmdyyin))==0 && ferror(cmdyyin)) \
01164                         { \
01165                         if( errno != EINTR) \
01166                                 { \
01167                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01168                                 break; \
01169                                 } \
01170                         errno=0; \
01171                         clearerr(cmdyyin); \
01172                         } \
01173                 }\
01174 \
01175 
01176 #endif
01177 
01178 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01179  * we don't want an extra ';' after the "return" because that will cause
01180  * some compilers to complain about unreachable statements.
01181  */
01182 #ifndef yyterminate
01183 #define yyterminate() return YY_NULL
01184 #endif
01185 
01186 /* Number of entries by which start-condition stack grows. */
01187 #ifndef YY_START_STACK_INCR
01188 #define YY_START_STACK_INCR 25
01189 #endif
01190 
01191 /* Report a fatal error. */
01192 #ifndef YY_FATAL_ERROR
01193 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
01194 #endif
01195 
01196 /* end tables serialization structures and prototypes */
01197 
01198 /* Default declaration of generated scanner - a define so the user can
01199  * easily add parameters.
01200  */
01201 #ifndef YY_DECL
01202 #define YY_DECL_IS_OURS 1
01203 
01204 extern int cmdyylex (void);
01205 
01206 #define YY_DECL int cmdyylex (void)
01207 #endif /* !YY_DECL */
01208 
01209 /* Code executed at the beginning of each rule, after cmdyytext and cmdyyleng
01210  * have been set up.
01211  */
01212 #ifndef YY_USER_ACTION
01213 #define YY_USER_ACTION
01214 #endif
01215 
01216 /* Code executed at the end of each rule. */
01217 #ifndef YY_BREAK
01218 #define YY_BREAK break;
01219 #endif
01220 
01221 #define YY_RULE_SETUP \
01222         if ( cmdyyleng > 0 ) \
01223                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
01224                                 (cmdyytext[cmdyyleng - 1] == '\n'); \
01225         YY_USER_ACTION
01226 
01229 YY_DECL
01230 {
01231         register yy_state_type yy_current_state;
01232         register char *yy_cp, *yy_bp;
01233         register int yy_act;
01234     
01235 #line 52 "src/cmdparse.l"
01236 
01237 
01238     {
01239         /* This is called when a new line is lexed. We only want the
01240          * first line to match to go into state BUFFER_LINE */
01241         if (context->line_number == 0) {
01242             context->line_number = 1;
01243             BEGIN(INITIAL);
01244             yy_push_state(BUFFER_LINE);
01245         }
01246     }
01247 
01248 #line 1249 "src/cmdparse.yy.c"
01249 
01250         if ( !(yy_init) )
01251                 {
01252                 (yy_init) = 1;
01253 
01254 #ifdef YY_USER_INIT
01255                 YY_USER_INIT;
01256 #endif
01257 
01258         /* Create the reject buffer large enough to save one state per allowed character. */
01259         if ( ! (yy_state_buf) )
01260             (yy_state_buf) = (yy_state_type *)cmdyyalloc(YY_STATE_BUF_SIZE  );
01261             if ( ! (yy_state_buf) )
01262                 YY_FATAL_ERROR( "out of dynamic memory in cmdyylex()" );
01263 
01264                 if ( ! (yy_start) )
01265                         (yy_start) = 1; /* first start state */
01266 
01267                 if ( ! cmdyyin )
01268                         cmdyyin = stdin;
01269 
01270                 if ( ! cmdyyout )
01271                         cmdyyout = stdout;
01272 
01273                 if ( ! YY_CURRENT_BUFFER ) {
01274                         cmdyyensure_buffer_stack ();
01275                         YY_CURRENT_BUFFER_LVALUE =
01276                                 cmdyy_create_buffer(cmdyyin,YY_BUF_SIZE );
01277                 }
01278 
01279                 cmdyy_load_buffer_state( );
01280                 }
01281 
01282         while ( 1 )             /* loops until end-of-file is reached */
01283                 {
01284                 yy_cp = (yy_c_buf_p);
01285 
01286                 /* Support of cmdyytext. */
01287                 *yy_cp = (yy_hold_char);
01288 
01289                 /* yy_bp points to the position in yy_ch_buf of the start of
01290                  * the current run.
01291                  */
01292                 yy_bp = yy_cp;
01293 
01294                 yy_current_state = (yy_start);
01295                 yy_current_state += YY_AT_BOL();
01296 
01297                 (yy_state_ptr) = (yy_state_buf);
01298                 *(yy_state_ptr)++ = yy_current_state;
01299 
01300 yy_match:
01301                 do
01302                         {
01303                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01304                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01305                                 {
01306                                 yy_current_state = (int) yy_def[yy_current_state];
01307                                 if ( yy_current_state >= 571 )
01308                                         yy_c = yy_meta[(unsigned int) yy_c];
01309                                 }
01310                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01311                         *(yy_state_ptr)++ = yy_current_state;
01312                         ++yy_cp;
01313                         }
01314                 while ( yy_base[yy_current_state] != 1147 );
01315 
01316 yy_find_action:
01317                 yy_current_state = *--(yy_state_ptr);
01318                 (yy_lp) = yy_accept[yy_current_state];
01319 find_rule: /* we branch to this label when backing up */
01320                 for ( ; ; ) /* until we find what rule we matched */
01321                         {
01322                         if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
01323                                 {
01324                                 yy_act = yy_acclist[(yy_lp)];
01325                                 if ( yy_act & YY_TRAILING_HEAD_MASK ||
01326                                      (yy_looking_for_trail_begin) )
01327                                         {
01328                                         if ( yy_act == (yy_looking_for_trail_begin) )
01329                                                 {
01330                                                 (yy_looking_for_trail_begin) = 0;
01331                                                 yy_act &= ~YY_TRAILING_HEAD_MASK;
01332                                                 break;
01333                                                 }
01334                                         }
01335                                 else if ( yy_act & YY_TRAILING_MASK )
01336                                         {
01337                                         (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;
01338                                         (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;
01339                                         }
01340                                 else
01341                                         {
01342                                         (yy_full_match) = yy_cp;
01343                                         (yy_full_state) = (yy_state_ptr);
01344                                         (yy_full_lp) = (yy_lp);
01345                                         break;
01346                                         }
01347                                 ++(yy_lp);
01348                                 goto find_rule;
01349                                 }
01350                         --yy_cp;
01351                         yy_current_state = *--(yy_state_ptr);
01352                         (yy_lp) = yy_accept[yy_current_state];
01353                         }
01354 
01355                 YY_DO_BEFORE_ACTION;
01356 
01357 do_action:      /* This label is used only to access EOF actions. */
01358 
01359                 switch ( yy_act )
01360         { /* beginning of action switch */
01361 case 1:
01362 /* rule 1 can match eol */
01363 YY_RULE_SETUP
01364 #line 64 "src/cmdparse.l"
01365 {
01366     /* save whole line */
01367     context->line_copy = sstrdup(cmdyytext);
01368 
01369     yyless(0);
01370     yy_pop_state();
01371     yy_set_bol(true);
01372     cmdyycolumn = 1;
01373 }
01374         YY_BREAK
01375 /* the next/prev tokens are here to recognize them *before* handling
01376      * strings ('workspace' command) */
01377 case 2:
01378 YY_RULE_SETUP
01379 #line 76 "src/cmdparse.l"
01380 { return TOK_NEXT; }
01381         YY_BREAK
01382 case 3:
01383 YY_RULE_SETUP
01384 #line 77 "src/cmdparse.l"
01385 { return TOK_PREV; }
01386         YY_BREAK
01387 case 4:
01388 /* rule 4 can match eol */
01389 YY_RULE_SETUP
01390 #line 79 "src/cmdparse.l"
01391 {
01392                                   BEGIN(INITIAL);
01393                                   /* strip quotes */
01394                                   char *copy = sstrdup(cmdyytext+1);
01395                                   copy[strlen(copy)-1] = '\0';
01396                                   cmdyylval.string = copy;
01397                                   return STR;
01398                                 }
01399         YY_BREAK
01400 case 5:
01401 /* rule 5 can match eol */
01402 YY_RULE_SETUP
01403 #line 87 "src/cmdparse.l"
01404 {
01405                                   BEGIN(INITIAL);
01406                                   /* strip quotes */
01407                                   char *copy = sstrdup(cmdyytext+1);
01408                                   copy[strlen(copy)-1] = '\0';
01409                                   cmdyylval.string = copy;
01410                                   return STR;
01411                                 }
01412         YY_BREAK
01413 case 6:
01414 YY_RULE_SETUP
01415 #line 96 "src/cmdparse.l"
01416 { BEGIN(INITIAL); cmdyylval.string = sstrdup(cmdyytext); return STR; }
01417         YY_BREAK
01418 case 7:
01419 /* rule 7 can match eol */
01420 YY_RULE_SETUP
01421 #line 98 "src/cmdparse.l"
01422 { BEGIN(INITIAL); return ';'; }
01423         YY_BREAK
01424 case 8:
01425 YY_RULE_SETUP
01426 #line 99 "src/cmdparse.l"
01427 { yy_pop_state(); }
01428         YY_BREAK
01429 case 9:
01430 YY_RULE_SETUP
01431 #line 101 "src/cmdparse.l"
01432 { /* ignore whitespace */ ; }
01433         YY_BREAK
01434 case 10:
01435 YY_RULE_SETUP
01436 #line 102 "src/cmdparse.l"
01437 { WS_STRING; return TOK_EXEC; }
01438         YY_BREAK
01439 case 11:
01440 YY_RULE_SETUP
01441 #line 103 "src/cmdparse.l"
01442 { return TOK_EXIT; }
01443         YY_BREAK
01444 case 12:
01445 YY_RULE_SETUP
01446 #line 104 "src/cmdparse.l"
01447 { return TOK_RELOAD; }
01448         YY_BREAK
01449 case 13:
01450 YY_RULE_SETUP
01451 #line 105 "src/cmdparse.l"
01452 { return TOK_RESTART; }
01453         YY_BREAK
01454 case 14:
01455 YY_RULE_SETUP
01456 #line 106 "src/cmdparse.l"
01457 { return TOK_KILL; }
01458         YY_BREAK
01459 case 15:
01460 YY_RULE_SETUP
01461 #line 107 "src/cmdparse.l"
01462 { return TOK_WINDOW; }
01463         YY_BREAK
01464 case 16:
01465 YY_RULE_SETUP
01466 #line 108 "src/cmdparse.l"
01467 { return TOK_CLIENT; }
01468         YY_BREAK
01469 case 17:
01470 YY_RULE_SETUP
01471 #line 109 "src/cmdparse.l"
01472 { return TOK_FULLSCREEN; }
01473         YY_BREAK
01474 case 18:
01475 YY_RULE_SETUP
01476 #line 110 "src/cmdparse.l"
01477 { return TOK_GLOBAL; }
01478         YY_BREAK
01479 case 19:
01480 YY_RULE_SETUP
01481 #line 111 "src/cmdparse.l"
01482 { return TOK_LAYOUT; }
01483         YY_BREAK
01484 case 20:
01485 YY_RULE_SETUP
01486 #line 112 "src/cmdparse.l"
01487 { return TOK_DEFAULT; }
01488         YY_BREAK
01489 case 21:
01490 YY_RULE_SETUP
01491 #line 113 "src/cmdparse.l"
01492 { return TOK_STACKED; }
01493         YY_BREAK
01494 case 22:
01495 YY_RULE_SETUP
01496 #line 114 "src/cmdparse.l"
01497 { return TOK_STACKED; }
01498         YY_BREAK
01499 case 23:
01500 YY_RULE_SETUP
01501 #line 115 "src/cmdparse.l"
01502 { return TOK_TABBED; }
01503         YY_BREAK
01504 case 24:
01505 YY_RULE_SETUP
01506 #line 116 "src/cmdparse.l"
01507 { return TOK_BORDER; }
01508         YY_BREAK
01509 case 25:
01510 YY_RULE_SETUP
01511 #line 117 "src/cmdparse.l"
01512 { return TOK_NORMAL; }
01513         YY_BREAK
01514 case 26:
01515 YY_RULE_SETUP
01516 #line 118 "src/cmdparse.l"
01517 { return TOK_NONE; }
01518         YY_BREAK
01519 case 27:
01520 YY_RULE_SETUP
01521 #line 119 "src/cmdparse.l"
01522 { return TOK_1PIXEL; }
01523         YY_BREAK
01524 case 28:
01525 YY_RULE_SETUP
01526 #line 120 "src/cmdparse.l"
01527 { BEGIN(WANT_QSTRING); return TOK_MODE; }
01528         YY_BREAK
01529 case 29:
01530 YY_RULE_SETUP
01531 #line 121 "src/cmdparse.l"
01532 { return TOK_TILING; }
01533         YY_BREAK
01534 case 30:
01535 YY_RULE_SETUP
01536 #line 122 "src/cmdparse.l"
01537 { return TOK_FLOATING; }
01538         YY_BREAK
01539 case 31:
01540 YY_RULE_SETUP
01541 #line 123 "src/cmdparse.l"
01542 { return TOK_TOGGLE; }
01543         YY_BREAK
01544 case 32:
01545 YY_RULE_SETUP
01546 #line 124 "src/cmdparse.l"
01547 { return TOK_MODE_TOGGLE; }
01548         YY_BREAK
01549 case 33:
01550 YY_RULE_SETUP
01551 #line 125 "src/cmdparse.l"
01552 { WS_STRING; return TOK_WORKSPACE; }
01553         YY_BREAK
01554 case 34:
01555 YY_RULE_SETUP
01556 #line 126 "src/cmdparse.l"
01557 { return TOK_FOCUS; }
01558         YY_BREAK
01559 case 35:
01560 YY_RULE_SETUP
01561 #line 127 "src/cmdparse.l"
01562 { return TOK_MOVE; }
01563         YY_BREAK
01564 case 36:
01565 YY_RULE_SETUP
01566 #line 128 "src/cmdparse.l"
01567 { return TOK_OPEN; }
01568         YY_BREAK
01569 case 37:
01570 YY_RULE_SETUP
01571 #line 129 "src/cmdparse.l"
01572 { return TOK_SPLIT; }
01573         YY_BREAK
01574 case 38:
01575 YY_RULE_SETUP
01576 #line 130 "src/cmdparse.l"
01577 { return TOK_HORIZONTAL; }
01578         YY_BREAK
01579 case 39:
01580 YY_RULE_SETUP
01581 #line 131 "src/cmdparse.l"
01582 { return TOK_VERTICAL; }
01583         YY_BREAK
01584 case 40:
01585 YY_RULE_SETUP
01586 #line 132 "src/cmdparse.l"
01587 { return TOK_UP; }
01588         YY_BREAK
01589 case 41:
01590 YY_RULE_SETUP
01591 #line 133 "src/cmdparse.l"
01592 { return TOK_DOWN; }
01593         YY_BREAK
01594 case 42:
01595 YY_RULE_SETUP
01596 #line 134 "src/cmdparse.l"
01597 { return TOK_LEFT; }
01598         YY_BREAK
01599 case 43:
01600 YY_RULE_SETUP
01601 #line 135 "src/cmdparse.l"
01602 { return TOK_RIGHT; }
01603         YY_BREAK
01604 case 44:
01605 YY_RULE_SETUP
01606 #line 136 "src/cmdparse.l"
01607 { return TOK_PARENT; }
01608         YY_BREAK
01609 case 45:
01610 YY_RULE_SETUP
01611 #line 137 "src/cmdparse.l"
01612 { return TOK_CHILD; }
01613         YY_BREAK
01614 case 46:
01615 YY_RULE_SETUP
01616 #line 138 "src/cmdparse.l"
01617 { return TOK_RESIZE; }
01618         YY_BREAK
01619 case 47:
01620 YY_RULE_SETUP
01621 #line 139 "src/cmdparse.l"
01622 { return TOK_SHRINK; }
01623         YY_BREAK
01624 case 48:
01625 YY_RULE_SETUP
01626 #line 140 "src/cmdparse.l"
01627 { return TOK_GROW; }
01628         YY_BREAK
01629 case 49:
01630 YY_RULE_SETUP
01631 #line 141 "src/cmdparse.l"
01632 { return TOK_PX; }
01633         YY_BREAK
01634 case 50:
01635 YY_RULE_SETUP
01636 #line 142 "src/cmdparse.l"
01637 { return TOK_OR; }
01638         YY_BREAK
01639 case 51:
01640 YY_RULE_SETUP
01641 #line 143 "src/cmdparse.l"
01642 { return TOK_PPT; }
01643         YY_BREAK
01644 case 52:
01645 YY_RULE_SETUP
01646 #line 144 "src/cmdparse.l"
01647 { WS_STRING; return TOK_NOP; }
01648         YY_BREAK
01649 case 53:
01650 YY_RULE_SETUP
01651 #line 145 "src/cmdparse.l"
01652 { WS_STRING; return TOK_APPEND_LAYOUT; }
01653         YY_BREAK
01654 case 54:
01655 YY_RULE_SETUP
01656 #line 146 "src/cmdparse.l"
01657 { WS_STRING; return TOK_MARK; }
01658         YY_BREAK
01659 case 55:
01660 YY_RULE_SETUP
01661 #line 148 "src/cmdparse.l"
01662 { return TOK_ENABLE; }
01663         YY_BREAK
01664 case 56:
01665 YY_RULE_SETUP
01666 #line 149 "src/cmdparse.l"
01667 { return TOK_ENABLE; }
01668         YY_BREAK
01669 case 57:
01670 YY_RULE_SETUP
01671 #line 150 "src/cmdparse.l"
01672 { return TOK_ENABLE; }
01673         YY_BREAK
01674 case 58:
01675 YY_RULE_SETUP
01676 #line 151 "src/cmdparse.l"
01677 { return TOK_DISABLE; }
01678         YY_BREAK
01679 case 59:
01680 YY_RULE_SETUP
01681 #line 152 "src/cmdparse.l"
01682 { return TOK_DISABLE; }
01683         YY_BREAK
01684 case 60:
01685 YY_RULE_SETUP
01686 #line 153 "src/cmdparse.l"
01687 { return TOK_DISABLE; }
01688         YY_BREAK
01689 case 61:
01690 YY_RULE_SETUP
01691 #line 155 "src/cmdparse.l"
01692 { BEGIN(WANT_QSTRING); return TOK_CLASS; }
01693         YY_BREAK
01694 case 62:
01695 YY_RULE_SETUP
01696 #line 156 "src/cmdparse.l"
01697 { BEGIN(WANT_QSTRING); return TOK_ID; }
01698         YY_BREAK
01699 case 63:
01700 YY_RULE_SETUP
01701 #line 157 "src/cmdparse.l"
01702 { BEGIN(WANT_QSTRING); return TOK_CON_ID; }
01703         YY_BREAK
01704 case 64:
01705 YY_RULE_SETUP
01706 #line 158 "src/cmdparse.l"
01707 { BEGIN(WANT_QSTRING); return TOK_MARK; }
01708         YY_BREAK
01709 case 65:
01710 YY_RULE_SETUP
01711 #line 159 "src/cmdparse.l"
01712 { BEGIN(WANT_QSTRING); return TOK_TITLE; }
01713         YY_BREAK
01714 case 66:
01715 YY_RULE_SETUP
01716 #line 161 "src/cmdparse.l"
01717 { cmdyylval.number = atoi(cmdyytext); return NUMBER; }
01718         YY_BREAK
01719 case 67:
01720 YY_RULE_SETUP
01721 #line 163 "src/cmdparse.l"
01722 { return (int)cmdyytext[0]; }
01723         YY_BREAK
01724 case YY_STATE_EOF(INITIAL):
01725 case YY_STATE_EOF(WANT_STRING):
01726 case YY_STATE_EOF(EAT_WHITESPACE):
01727 case YY_STATE_EOF(WANT_QSTRING):
01728 case YY_STATE_EOF(BUFFER_LINE):
01729 #line 165 "src/cmdparse.l"
01730 {
01731     while (yy_start_stack_ptr > 0)
01732         yy_pop_state();
01733     yyterminate();
01734 }
01735         YY_BREAK
01736 case 68:
01737 YY_RULE_SETUP
01738 #line 171 "src/cmdparse.l"
01739 ECHO;
01740         YY_BREAK
01741 #line 1742 "src/cmdparse.yy.c"
01742 
01743         case YY_END_OF_BUFFER:
01744                 {
01745                 /* Amount of text matched not including the EOB char. */
01746                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
01747 
01748                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
01749                 *yy_cp = (yy_hold_char);
01750                 YY_RESTORE_YY_MORE_OFFSET
01751 
01752                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01753                         {
01754                         /* We're scanning a new file or input source.  It's
01755                          * possible that this happened because the user
01756                          * just pointed cmdyyin at a new source and called
01757                          * cmdyylex().  If so, then we have to assure
01758                          * consistency between YY_CURRENT_BUFFER and our
01759                          * globals.  Here is the right place to do so, because
01760                          * this is the first action (other than possibly a
01761                          * back-up) that will match for the new input source.
01762                          */
01763                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01764                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = cmdyyin;
01765                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01766                         }
01767 
01768                 /* Note that here we test for yy_c_buf_p "<=" to the position
01769                  * of the first EOB in the buffer, since yy_c_buf_p will
01770                  * already have been incremented past the NUL character
01771                  * (since all states make transitions on EOB to the
01772                  * end-of-buffer state).  Contrast this with the test
01773                  * in input().
01774                  */
01775                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01776                         { /* This was really a NUL. */
01777                         yy_state_type yy_next_state;
01778 
01779                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
01780 
01781                         yy_current_state = yy_get_previous_state(  );
01782 
01783                         /* Okay, we're now positioned to make the NUL
01784                          * transition.  We couldn't have
01785                          * yy_get_previous_state() go ahead and do it
01786                          * for us because it doesn't know how to deal
01787                          * with the possibility of jamming (and we don't
01788                          * want to build jamming into it because then it
01789                          * will run more slowly).
01790                          */
01791 
01792                         yy_next_state = yy_try_NUL_trans( yy_current_state );
01793 
01794                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01795 
01796                         if ( yy_next_state )
01797                                 {
01798                                 /* Consume the NUL. */
01799                                 yy_cp = ++(yy_c_buf_p);
01800                                 yy_current_state = yy_next_state;
01801                                 goto yy_match;
01802                                 }
01803 
01804                         else
01805                                 {
01806                                 yy_cp = (yy_c_buf_p);
01807                                 goto yy_find_action;
01808                                 }
01809                         }
01810 
01811                 else switch ( yy_get_next_buffer(  ) )
01812                         {
01813                         case EOB_ACT_END_OF_FILE:
01814                                 {
01815                                 (yy_did_buffer_switch_on_eof) = 0;
01816 
01817                                 if ( cmdyywrap( ) )
01818                                         {
01819                                         /* Note: because we've taken care in
01820                                          * yy_get_next_buffer() to have set up
01821                                          * cmdyytext, we can now set up
01822                                          * yy_c_buf_p so that if some total
01823                                          * hoser (like flex itself) wants to
01824                                          * call the scanner after we return the
01825                                          * YY_NULL, it'll still work - another
01826                                          * YY_NULL will get returned.
01827                                          */
01828                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
01829 
01830                                         yy_act = YY_STATE_EOF(YY_START);
01831                                         goto do_action;
01832                                         }
01833 
01834                                 else
01835                                         {
01836                                         if ( ! (yy_did_buffer_switch_on_eof) )
01837                                                 YY_NEW_FILE;
01838                                         }
01839                                 break;
01840                                 }
01841 
01842                         case EOB_ACT_CONTINUE_SCAN:
01843                                 (yy_c_buf_p) =
01844                                         (yytext_ptr) + yy_amount_of_matched_text;
01845 
01846                                 yy_current_state = yy_get_previous_state(  );
01847 
01848                                 yy_cp = (yy_c_buf_p);
01849                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01850                                 goto yy_match;
01851 
01852                         case EOB_ACT_LAST_MATCH:
01853                                 (yy_c_buf_p) =
01854                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
01855 
01856                                 yy_current_state = yy_get_previous_state(  );
01857 
01858                                 yy_cp = (yy_c_buf_p);
01859                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01860                                 goto yy_find_action;
01861                         }
01862                 break;
01863                 }
01864 
01865         default:
01866                 YY_FATAL_ERROR(
01867                         "fatal flex scanner internal error--no action found" );
01868         } /* end of action switch */
01869                 } /* end of scanning one token */
01870 } /* end of cmdyylex */
01871 
01872 /* yy_get_next_buffer - try to read in a new buffer
01873  *
01874  * Returns a code representing an action:
01875  *      EOB_ACT_LAST_MATCH -
01876  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01877  *      EOB_ACT_END_OF_FILE - end of file
01878  */
01879 static int yy_get_next_buffer (void)
01880 {
01881         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01882         register char *source = (yytext_ptr);
01883         register int number_to_move, i;
01884         int ret_val;
01885 
01886         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
01887                 YY_FATAL_ERROR(
01888                 "fatal flex scanner internal error--end of buffer missed" );
01889 
01890         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01891                 { /* Don't try to fill the buffer, so this is an EOF. */
01892                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
01893                         {
01894                         /* We matched a single character, the EOB, so
01895                          * treat this as a final EOF.
01896                          */
01897                         return EOB_ACT_END_OF_FILE;
01898                         }
01899 
01900                 else
01901                         {
01902                         /* We matched some text prior to the EOB, first
01903                          * process it.
01904                          */
01905                         return EOB_ACT_LAST_MATCH;
01906                         }
01907                 }
01908 
01909         /* Try to read more data. */
01910 
01911         /* First move last chars to start of buffer. */
01912         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
01913 
01914         for ( i = 0; i < number_to_move; ++i )
01915                 *(dest++) = *(source++);
01916 
01917         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01918                 /* don't do the read, it's not guaranteed to return an EOF,
01919                  * just force an EOF
01920                  */
01921                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
01922 
01923         else
01924                 {
01925                         int num_to_read =
01926                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
01927 
01928                 while ( num_to_read <= 0 )
01929                         { /* Not enough room in the buffer - grow it. */
01930 
01931                         YY_FATAL_ERROR(
01932 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
01933 
01934                         }
01935 
01936                 if ( num_to_read > YY_READ_BUF_SIZE )
01937                         num_to_read = YY_READ_BUF_SIZE;
01938 
01939                 /* Read in more data. */
01940                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
01941                         (yy_n_chars), (size_t) num_to_read );
01942 
01943                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01944                 }
01945 
01946         if ( (yy_n_chars) == 0 )
01947                 {
01948                 if ( number_to_move == YY_MORE_ADJ )
01949                         {
01950                         ret_val = EOB_ACT_END_OF_FILE;
01951                         cmdyyrestart(cmdyyin  );
01952                         }
01953 
01954                 else
01955                         {
01956                         ret_val = EOB_ACT_LAST_MATCH;
01957                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
01958                                 YY_BUFFER_EOF_PENDING;
01959                         }
01960                 }
01961 
01962         else
01963                 ret_val = EOB_ACT_CONTINUE_SCAN;
01964 
01965         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
01966                 /* Extend the array by 50%, plus the number we really need. */
01967                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
01968                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cmdyyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
01969                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
01970                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
01971         }
01972 
01973         (yy_n_chars) += number_to_move;
01974         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
01975         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
01976 
01977         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
01978 
01979         return ret_val;
01980 }
01981 
01982 /* yy_get_previous_state - get the state just before the EOB char was reached */
01983 
01984     static yy_state_type yy_get_previous_state (void)
01985 {
01986         register yy_state_type yy_current_state;
01987         register char *yy_cp;
01988     
01989         yy_current_state = (yy_start);
01990         yy_current_state += YY_AT_BOL();
01991 
01992         (yy_state_ptr) = (yy_state_buf);
01993         *(yy_state_ptr)++ = yy_current_state;
01994 
01995         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
01996                 {
01997                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01998                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01999                         {
02000                         yy_current_state = (int) yy_def[yy_current_state];
02001                         if ( yy_current_state >= 571 )
02002                                 yy_c = yy_meta[(unsigned int) yy_c];
02003                         }
02004                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02005                 *(yy_state_ptr)++ = yy_current_state;
02006                 }
02007 
02008         return yy_current_state;
02009 }
02010 
02011 /* yy_try_NUL_trans - try to make a transition on the NUL character
02012  *
02013  * synopsis
02014  *      next_state = yy_try_NUL_trans( current_state );
02015  */
02016     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
02017 {
02018         register int yy_is_jam;
02019     
02020         register YY_CHAR yy_c = 1;
02021         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02022                 {
02023                 yy_current_state = (int) yy_def[yy_current_state];
02024                 if ( yy_current_state >= 571 )
02025                         yy_c = yy_meta[(unsigned int) yy_c];
02026                 }
02027         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02028         yy_is_jam = (yy_current_state == 570);
02029         if ( ! yy_is_jam )
02030                 *(yy_state_ptr)++ = yy_current_state;
02031 
02032         return yy_is_jam ? 0 : yy_current_state;
02033 }
02034 
02035 #ifndef YY_NO_INPUT
02036 #ifdef __cplusplus
02037     static int yyinput (void)
02038 #else
02039     static int input  (void)
02040 #endif
02041 
02042 {
02043         int c;
02044     
02045         *(yy_c_buf_p) = (yy_hold_char);
02046 
02047         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02048                 {
02049                 /* yy_c_buf_p now points to the character we want to return.
02050                  * If this occurs *before* the EOB characters, then it's a
02051                  * valid NUL; if not, then we've hit the end of the buffer.
02052                  */
02053                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02054                         /* This was really a NUL. */
02055                         *(yy_c_buf_p) = '\0';
02056 
02057                 else
02058                         { /* need more input */
02059                         int offset = (yy_c_buf_p) - (yytext_ptr);
02060                         ++(yy_c_buf_p);
02061 
02062                         switch ( yy_get_next_buffer(  ) )
02063                                 {
02064                                 case EOB_ACT_LAST_MATCH:
02065                                         /* This happens because yy_g_n_b()
02066                                          * sees that we've accumulated a
02067                                          * token and flags that we need to
02068                                          * try matching the token before
02069                                          * proceeding.  But for input(),
02070                                          * there's no matching to consider.
02071                                          * So convert the EOB_ACT_LAST_MATCH
02072                                          * to EOB_ACT_END_OF_FILE.
02073                                          */
02074 
02075                                         /* Reset buffer status. */
02076                                         cmdyyrestart(cmdyyin );
02077 
02078                                         /*FALLTHROUGH*/
02079 
02080                                 case EOB_ACT_END_OF_FILE:
02081                                         {
02082                                         if ( cmdyywrap( ) )
02083                                                 return EOF;
02084 
02085                                         if ( ! (yy_did_buffer_switch_on_eof) )
02086                                                 YY_NEW_FILE;
02087 #ifdef __cplusplus
02088                                         return yyinput();
02089 #else
02090                                         return input();
02091 #endif
02092                                         }
02093 
02094                                 case EOB_ACT_CONTINUE_SCAN:
02095                                         (yy_c_buf_p) = (yytext_ptr) + offset;
02096                                         break;
02097                                 }
02098                         }
02099                 }
02100 
02101         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
02102         *(yy_c_buf_p) = '\0';   /* preserve cmdyytext */
02103         (yy_hold_char) = *++(yy_c_buf_p);
02104 
02105         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
02106 
02107         return c;
02108 }
02109 #endif  /* ifndef YY_NO_INPUT */
02110 
02116     void cmdyyrestart  (FILE * input_file )
02117 {
02118     
02119         if ( ! YY_CURRENT_BUFFER ){
02120         cmdyyensure_buffer_stack ();
02121                 YY_CURRENT_BUFFER_LVALUE =
02122             cmdyy_create_buffer(cmdyyin,YY_BUF_SIZE );
02123         }
02124 
02125         cmdyy_init_buffer(YY_CURRENT_BUFFER,input_file );
02126         cmdyy_load_buffer_state( );
02127 }
02128 
02133     void cmdyy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
02134 {
02135     
02136         /* TODO. We should be able to replace this entire function body
02137          * with
02138          *              cmdyypop_buffer_state();
02139          *              cmdyypush_buffer_state(new_buffer);
02140      */
02141         cmdyyensure_buffer_stack ();
02142         if ( YY_CURRENT_BUFFER == new_buffer )
02143                 return;
02144 
02145         if ( YY_CURRENT_BUFFER )
02146                 {
02147                 /* Flush out information for old buffer. */
02148                 *(yy_c_buf_p) = (yy_hold_char);
02149                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02150                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02151                 }
02152 
02153         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02154         cmdyy_load_buffer_state( );
02155 
02156         /* We don't actually know whether we did this switch during
02157          * EOF (cmdyywrap()) processing, but the only time this flag
02158          * is looked at is after cmdyywrap() is called, so it's safe
02159          * to go ahead and always set it.
02160          */
02161         (yy_did_buffer_switch_on_eof) = 1;
02162 }
02163 
02164 static void cmdyy_load_buffer_state  (void)
02165 {
02166         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02167         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02168         cmdyyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02169         (yy_hold_char) = *(yy_c_buf_p);
02170 }
02171 
02178     YY_BUFFER_STATE cmdyy_create_buffer  (FILE * file, int  size )
02179 {
02180         YY_BUFFER_STATE b;
02181     
02182         b = (YY_BUFFER_STATE) cmdyyalloc(sizeof( struct yy_buffer_state )  );
02183         if ( ! b )
02184                 YY_FATAL_ERROR( "out of dynamic memory in cmdyy_create_buffer()" );
02185 
02186         b->yy_buf_size = size;
02187 
02188         /* yy_ch_buf has to be 2 characters longer than the size given because
02189          * we need to put in 2 end-of-buffer characters.
02190          */
02191         b->yy_ch_buf = (char *) cmdyyalloc(b->yy_buf_size + 2  );
02192         if ( ! b->yy_ch_buf )
02193                 YY_FATAL_ERROR( "out of dynamic memory in cmdyy_create_buffer()" );
02194 
02195         b->yy_is_our_buffer = 1;
02196 
02197         cmdyy_init_buffer(b,file );
02198 
02199         return b;
02200 }
02201 
02206     void cmdyy_delete_buffer (YY_BUFFER_STATE  b )
02207 {
02208     
02209         if ( ! b )
02210                 return;
02211 
02212         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02213                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02214 
02215         if ( b->yy_is_our_buffer )
02216                 cmdyyfree((void *) b->yy_ch_buf  );
02217 
02218         cmdyyfree((void *) b  );
02219 }
02220 
02221 #ifndef __cplusplus
02222 extern int isatty (int );
02223 #endif /* __cplusplus */
02224     
02225 /* Initializes or reinitializes a buffer.
02226  * This function is sometimes called more than once on the same buffer,
02227  * such as during a cmdyyrestart() or at EOF.
02228  */
02229     static void cmdyy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
02230 
02231 {
02232         int oerrno = errno;
02233     
02234         cmdyy_flush_buffer(b );
02235 
02236         b->yy_input_file = file;
02237         b->yy_fill_buffer = 1;
02238 
02239     /* If b is the current buffer, then cmdyy_init_buffer was _probably_
02240      * called from cmdyyrestart() or through yy_get_next_buffer.
02241      * In that case, we don't want to reset the lineno or column.
02242      */
02243     if (b != YY_CURRENT_BUFFER){
02244         b->yy_bs_lineno = 1;
02245         b->yy_bs_column = 0;
02246     }
02247 
02248         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02249     
02250         errno = oerrno;
02251 }
02252 
02257     void cmdyy_flush_buffer (YY_BUFFER_STATE  b )
02258 {
02259         if ( ! b )
02260                 return;
02261 
02262         b->yy_n_chars = 0;
02263 
02264         /* We always need two end-of-buffer characters.  The first causes
02265          * a transition to the end-of-buffer state.  The second causes
02266          * a jam in that state.
02267          */
02268         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02269         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02270 
02271         b->yy_buf_pos = &b->yy_ch_buf[0];
02272 
02273         b->yy_at_bol = 1;
02274         b->yy_buffer_status = YY_BUFFER_NEW;
02275 
02276         if ( b == YY_CURRENT_BUFFER )
02277                 cmdyy_load_buffer_state( );
02278 }
02279 
02286 void cmdyypush_buffer_state (YY_BUFFER_STATE new_buffer )
02287 {
02288         if (new_buffer == NULL)
02289                 return;
02290 
02291         cmdyyensure_buffer_stack();
02292 
02293         /* This block is copied from cmdyy_switch_to_buffer. */
02294         if ( YY_CURRENT_BUFFER )
02295                 {
02296                 /* Flush out information for old buffer. */
02297                 *(yy_c_buf_p) = (yy_hold_char);
02298                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02299                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02300                 }
02301 
02302         /* Only push if top exists. Otherwise, replace top. */
02303         if (YY_CURRENT_BUFFER)
02304                 (yy_buffer_stack_top)++;
02305         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02306 
02307         /* copied from cmdyy_switch_to_buffer. */
02308         cmdyy_load_buffer_state( );
02309         (yy_did_buffer_switch_on_eof) = 1;
02310 }
02311 
02316 void cmdyypop_buffer_state (void)
02317 {
02318         if (!YY_CURRENT_BUFFER)
02319                 return;
02320 
02321         cmdyy_delete_buffer(YY_CURRENT_BUFFER );
02322         YY_CURRENT_BUFFER_LVALUE = NULL;
02323         if ((yy_buffer_stack_top) > 0)
02324                 --(yy_buffer_stack_top);
02325 
02326         if (YY_CURRENT_BUFFER) {
02327                 cmdyy_load_buffer_state( );
02328                 (yy_did_buffer_switch_on_eof) = 1;
02329         }
02330 }
02331 
02332 /* Allocates the stack if it does not exist.
02333  *  Guarantees space for at least one push.
02334  */
02335 static void cmdyyensure_buffer_stack (void)
02336 {
02337         int num_to_alloc;
02338     
02339         if (!(yy_buffer_stack)) {
02340 
02341                 /* First allocation is just for 2 elements, since we don't know if this
02342                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
02343                  * immediate realloc on the next call.
02344          */
02345                 num_to_alloc = 1;
02346                 (yy_buffer_stack) = (struct yy_buffer_state**)cmdyyalloc
02347                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02348                                                                 );
02349                 if ( ! (yy_buffer_stack) )
02350                         YY_FATAL_ERROR( "out of dynamic memory in cmdyyensure_buffer_stack()" );
02351                                                                   
02352                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02353                                 
02354                 (yy_buffer_stack_max) = num_to_alloc;
02355                 (yy_buffer_stack_top) = 0;
02356                 return;
02357         }
02358 
02359         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
02360 
02361                 /* Increase the buffer to prepare for a possible push. */
02362                 int grow_size = 8 /* arbitrary grow size */;
02363 
02364                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
02365                 (yy_buffer_stack) = (struct yy_buffer_state**)cmdyyrealloc
02366                                                                 ((yy_buffer_stack),
02367                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02368                                                                 );
02369                 if ( ! (yy_buffer_stack) )
02370                         YY_FATAL_ERROR( "out of dynamic memory in cmdyyensure_buffer_stack()" );
02371 
02372                 /* zero only the new slots.*/
02373                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
02374                 (yy_buffer_stack_max) = num_to_alloc;
02375         }
02376 }
02377 
02384 YY_BUFFER_STATE cmdyy_scan_buffer  (char * base, yy_size_t  size )
02385 {
02386         YY_BUFFER_STATE b;
02387     
02388         if ( size < 2 ||
02389              base[size-2] != YY_END_OF_BUFFER_CHAR ||
02390              base[size-1] != YY_END_OF_BUFFER_CHAR )
02391                 /* They forgot to leave room for the EOB's. */
02392                 return 0;
02393 
02394         b = (YY_BUFFER_STATE) cmdyyalloc(sizeof( struct yy_buffer_state )  );
02395         if ( ! b )
02396                 YY_FATAL_ERROR( "out of dynamic memory in cmdyy_scan_buffer()" );
02397 
02398         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
02399         b->yy_buf_pos = b->yy_ch_buf = base;
02400         b->yy_is_our_buffer = 0;
02401         b->yy_input_file = 0;
02402         b->yy_n_chars = b->yy_buf_size;
02403         b->yy_is_interactive = 0;
02404         b->yy_at_bol = 1;
02405         b->yy_fill_buffer = 0;
02406         b->yy_buffer_status = YY_BUFFER_NEW;
02407 
02408         cmdyy_switch_to_buffer(b  );
02409 
02410         return b;
02411 }
02412 
02421 YY_BUFFER_STATE cmdyy_scan_string (yyconst char * yystr )
02422 {
02423     
02424         return cmdyy_scan_bytes(yystr,strlen(yystr) );
02425 }
02426 
02434 YY_BUFFER_STATE cmdyy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
02435 {
02436         YY_BUFFER_STATE b;
02437         char *buf;
02438         yy_size_t n;
02439         int i;
02440     
02441         /* Get memory for full buffer, including space for trailing EOB's. */
02442         n = _yybytes_len + 2;
02443         buf = (char *) cmdyyalloc(n  );
02444         if ( ! buf )
02445                 YY_FATAL_ERROR( "out of dynamic memory in cmdyy_scan_bytes()" );
02446 
02447         for ( i = 0; i < _yybytes_len; ++i )
02448                 buf[i] = yybytes[i];
02449 
02450         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
02451 
02452         b = cmdyy_scan_buffer(buf,n );
02453         if ( ! b )
02454                 YY_FATAL_ERROR( "bad buffer in cmdyy_scan_bytes()" );
02455 
02456         /* It's okay to grow etc. this buffer, and we should throw it
02457          * away when we're done.
02458          */
02459         b->yy_is_our_buffer = 1;
02460 
02461         return b;
02462 }
02463 
02464     static void yy_push_state (int  new_state )
02465 {
02466         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
02467                 {
02468                 yy_size_t new_size;
02469 
02470                 (yy_start_stack_depth) += YY_START_STACK_INCR;
02471                 new_size = (yy_start_stack_depth) * sizeof( int );
02472 
02473                 if ( ! (yy_start_stack) )
02474                         (yy_start_stack) = (int *) cmdyyalloc(new_size  );
02475 
02476                 else
02477                         (yy_start_stack) = (int *) cmdyyrealloc((void *) (yy_start_stack),new_size  );
02478 
02479                 if ( ! (yy_start_stack) )
02480                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
02481                 }
02482 
02483         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
02484 
02485         BEGIN(new_state);
02486 }
02487 
02488     static void yy_pop_state  (void)
02489 {
02490         if ( --(yy_start_stack_ptr) < 0 )
02491                 YY_FATAL_ERROR( "start-condition stack underflow" );
02492 
02493         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
02494 }
02495 
02496 #ifndef YY_EXIT_FAILURE
02497 #define YY_EXIT_FAILURE 2
02498 #endif
02499 
02500 static void yy_fatal_error (yyconst char* msg )
02501 {
02502         (void) fprintf( stderr, "%s\n", msg );
02503         exit( YY_EXIT_FAILURE );
02504 }
02505 
02506 /* Redefine yyless() so it works in section 3 code. */
02507 
02508 #undef yyless
02509 #define yyless(n) \
02510         do \
02511                 { \
02512                 /* Undo effects of setting up cmdyytext. */ \
02513         int yyless_macro_arg = (n); \
02514         YY_LESS_LINENO(yyless_macro_arg);\
02515                 cmdyytext[cmdyyleng] = (yy_hold_char); \
02516                 (yy_c_buf_p) = cmdyytext + yyless_macro_arg; \
02517                 (yy_hold_char) = *(yy_c_buf_p); \
02518                 *(yy_c_buf_p) = '\0'; \
02519                 cmdyyleng = yyless_macro_arg; \
02520                 } \
02521         while ( 0 )
02522 
02523 /* Accessor  methods (get/set functions) to struct members. */
02524 
02528 int cmdyyget_lineno  (void)
02529 {
02530         
02531     return cmdyylineno;
02532 }
02533 
02537 FILE *cmdyyget_in  (void)
02538 {
02539         return cmdyyin;
02540 }
02541 
02545 FILE *cmdyyget_out  (void)
02546 {
02547         return cmdyyout;
02548 }
02549 
02553 int cmdyyget_leng  (void)
02554 {
02555         return cmdyyleng;
02556 }
02557 
02562 char *cmdyyget_text  (void)
02563 {
02564         return cmdyytext;
02565 }
02566 
02571 void cmdyyset_lineno (int  line_number )
02572 {
02573     
02574     cmdyylineno = line_number;
02575 }
02576 
02583 void cmdyyset_in (FILE *  in_str )
02584 {
02585         cmdyyin = in_str ;
02586 }
02587 
02588 void cmdyyset_out (FILE *  out_str )
02589 {
02590         cmdyyout = out_str ;
02591 }
02592 
02593 int cmdyyget_debug  (void)
02594 {
02595         return cmdyy_flex_debug;
02596 }
02597 
02598 void cmdyyset_debug (int  bdebug )
02599 {
02600         cmdyy_flex_debug = bdebug ;
02601 }
02602 
02603 static int yy_init_globals (void)
02604 {
02605         /* Initialization is the same as for the non-reentrant scanner.
02606      * This function is called from cmdyylex_destroy(), so don't allocate here.
02607      */
02608 
02609     (yy_buffer_stack) = 0;
02610     (yy_buffer_stack_top) = 0;
02611     (yy_buffer_stack_max) = 0;
02612     (yy_c_buf_p) = (char *) 0;
02613     (yy_init) = 0;
02614     (yy_start) = 0;
02615 
02616     (yy_start_stack_ptr) = 0;
02617     (yy_start_stack_depth) = 0;
02618     (yy_start_stack) =  NULL;
02619 
02620     (yy_state_buf) = 0;
02621     (yy_state_ptr) = 0;
02622     (yy_full_match) = 0;
02623     (yy_lp) = 0;
02624 
02625 /* Defined in main.c */
02626 #ifdef YY_STDINIT
02627     cmdyyin = stdin;
02628     cmdyyout = stdout;
02629 #else
02630     cmdyyin = (FILE *) 0;
02631     cmdyyout = (FILE *) 0;
02632 #endif
02633 
02634     /* For future reference: Set errno on error, since we are called by
02635      * cmdyylex_init()
02636      */
02637     return 0;
02638 }
02639 
02640 /* cmdyylex_destroy is for both reentrant and non-reentrant scanners. */
02641 int cmdyylex_destroy  (void)
02642 {
02643     
02644     /* Pop the buffer stack, destroying each element. */
02645         while(YY_CURRENT_BUFFER){
02646                 cmdyy_delete_buffer(YY_CURRENT_BUFFER  );
02647                 YY_CURRENT_BUFFER_LVALUE = NULL;
02648                 cmdyypop_buffer_state();
02649         }
02650 
02651         /* Destroy the stack itself. */
02652         cmdyyfree((yy_buffer_stack) );
02653         (yy_buffer_stack) = NULL;
02654 
02655     /* Destroy the start condition stack. */
02656         cmdyyfree((yy_start_stack)  );
02657         (yy_start_stack) = NULL;
02658 
02659     cmdyyfree ( (yy_state_buf) );
02660     (yy_state_buf)  = NULL;
02661 
02662     /* Reset the globals. This is important in a non-reentrant scanner so the next time
02663      * cmdyylex() is called, initialization will occur. */
02664     yy_init_globals( );
02665 
02666     return 0;
02667 }
02668 
02669 /*
02670  * Internal utility routines.
02671  */
02672 
02673 #ifndef yytext_ptr
02674 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
02675 {
02676         register int i;
02677         for ( i = 0; i < n; ++i )
02678                 s1[i] = s2[i];
02679 }
02680 #endif
02681 
02682 #ifdef YY_NEED_STRLEN
02683 static int yy_flex_strlen (yyconst char * s )
02684 {
02685         register int n;
02686         for ( n = 0; s[n]; ++n )
02687                 ;
02688 
02689         return n;
02690 }
02691 #endif
02692 
02693 void *cmdyyalloc (yy_size_t  size )
02694 {
02695         return (void *) malloc( size );
02696 }
02697 
02698 void *cmdyyrealloc  (void * ptr, yy_size_t  size )
02699 {
02700         /* The cast to (char *) in the following accommodates both
02701          * implementations that use char* generic pointers, and those
02702          * that use void* generic pointers.  It works with the latter
02703          * because both ANSI C and C++ allow castless assignment from
02704          * any pointer type to void*, and deal with argument conversions
02705          * as though doing an assignment.
02706          */
02707         return (void *) realloc( (char *) ptr, size );
02708 }
02709 
02710 void cmdyyfree (void * ptr )
02711 {
02712         free( (char *) ptr );   /* see cmdyyrealloc() for (char *) cast */
02713 }
02714 
02715 #define YYTABLES_NAME "yytables"
02716 
02717 #line 171 "src/cmdparse.l"
02718 
02719 
02720