i3
|
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