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 74 00383 #define YY_END_OF_BUFFER 75 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[588] = 00392 { 0, 00393 10, 10, 10, 10, 9, 10, 9, 10, 10, 10, 00394 8193,16385, 75, 73, 74, 10, 73, 74, 74, 72, 00395 73, 74, 72, 73, 74, 73, 74, 73, 74, 73, 00396 74, 73, 74, 73, 74, 73, 74, 73, 74, 73, 00397 74, 73, 74, 73, 74, 73, 74, 73, 74, 73, 00398 74, 73, 74, 73, 74, 73, 74, 73, 74, 73, 00399 74, 73, 74, 73, 74, 73, 74, 73, 74, 7, 00400 73, 74, 7, 10, 73, 74, 7, 73, 74, 7, 00401 72, 73, 74, 7, 72, 73, 74, 7, 73, 74, 00402 7, 73, 74, 7, 73, 74, 7, 73, 74, 7, 00403 00404 73, 74, 7, 73, 74, 7, 73, 74, 7, 73, 00405 74, 7, 73, 74, 7, 73, 74, 7, 73, 74, 00406 7, 73, 74, 7, 73, 74, 7, 73, 74, 7, 00407 73, 74, 7, 73, 74, 7, 73, 74, 7, 73, 00408 74, 7, 73, 74, 7, 73, 74, 7, 73, 74, 00409 7, 73, 74, 9, 10, 73, 74, 8, 74, 8, 00410 73, 74, 73, 74, 12, 74, 12, 74, 8193, 74, 00411 16385, 8193, 74, 74, 10, 72, 68, 64, 54, 53, 00412 44, 7, 7, 10, 7, 7, 72, 7, 7, 7, 00413 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00414 00415 7, 7, 7, 7, 7, 7, 7, 68, 7, 7, 00416 7, 7, 7, 7, 7, 7, 64, 7, 7, 54, 00417 7, 7, 7, 7, 7, 53, 7, 7, 7, 7, 00418 7, 7, 7, 7, 7, 7, 44, 7, 7, 7, 00419 7, 9, 10, 8193,16385, 8193, 56, 55, 61, 5, 00420 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 00421 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00422 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00423 7, 7, 7, 56, 7, 7, 7, 7, 7, 55, 00424 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00425 00426 7, 7, 7, 7, 7, 7, 61, 6, 45, 13, 00427 14, 52, 17, 46, 58, 31, 39, 2, 29, 40, 00428 3, 60, 7, 7, 7, 7, 7, 7, 7, 7, 00429 7, 7, 7, 45, 7, 7, 13, 7, 14, 7, 00430 7, 7, 7, 7, 7, 52, 7, 7, 7, 17, 00431 7, 7, 46, 7, 58, 7, 31, 7, 39, 2, 00432 7, 7, 29, 7, 7, 40, 7, 7, 3, 7, 00433 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00434 7, 7, 60, 7, 7, 7, 49, 65, 63, 38, 00435 47, 41, 71, 7, 7, 7, 7, 7, 49, 7, 00436 00437 65, 7, 7, 7, 7, 7, 7, 7, 63, 7, 00438 7, 38, 7, 7, 7, 7, 7, 7, 7, 7, 00439 7, 7, 7, 7, 7, 47, 7, 7, 41, 7, 00440 7, 7, 7, 71, 7, 7, 7, 7, 30, 27, 00441 19, 69, 59, 21, 22, 28, 37, 48, 15, 50, 00442 51, 26, 32, 34, 18, 7, 30, 7, 7, 7, 00443 27, 7, 19, 7, 69, 7, 7, 7, 7, 59, 00444 7, 7, 7, 21, 7, 7, 7, 22, 7, 7, 00445 28, 7, 37, 7, 48, 7, 15, 7, 50, 7, 00446 7, 51, 7, 7, 7, 26, 7, 32, 7, 34, 00447 00448 7, 7, 18, 7, 23, 62, 16, 24, 7, 7, 00449 7, 7, 23, 7, 62, 7, 7, 7, 7, 7, 00450 7, 16, 7, 24, 7, 7, 7, 7, 70, 33, 00451 66, 25, 43, 7, 7, 7, 70, 7, 33, 7, 00452 7, 7, 66, 7, 7, 25, 7, 43, 7, 7, 00453 36, 7, 7, 7, 7, 7, 7, 7, 36, 20, 00454 42, 7, 7, 7, 20, 7, 42, 7, 7, 35, 00455 67, 7, 7, 7, 35, 7, 67, 7, 7, 57, 00456 7, 57, 7, 4, 4, 7, 11 00457 } ; 00458 00459 static yyconst flex_int16_t yy_accept[650] = 00460 { 0, 00461 1, 2, 3, 4, 5, 7, 9, 10, 11, 11, 00462 11, 11, 13, 14, 16, 19, 20, 23, 26, 28, 00463 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 00464 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 00465 70, 73, 77, 80, 84, 88, 91, 94, 97, 100, 00466 103, 106, 109, 112, 115, 118, 121, 124, 127, 130, 00467 133, 136, 139, 142, 145, 148, 151, 154, 158, 160, 00468 163, 165, 167, 169, 172, 174, 175, 176, 177, 177, 00469 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 00470 177, 177, 177, 177, 177, 177, 177, 177, 178, 178, 00471 00472 178, 178, 178, 178, 178, 178, 179, 179, 180, 180, 00473 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 00474 181, 181, 181, 182, 182, 182, 182, 182, 183, 185, 00475 186, 186, 188, 189, 190, 191, 192, 193, 194, 195, 00476 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 00477 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 00478 218, 219, 221, 222, 223, 224, 225, 227, 228, 229, 00479 230, 231, 232, 233, 234, 235, 236, 238, 239, 240, 00480 241, 242, 244, 244, 244, 246, 247, 247, 247, 247, 00481 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 00482 00483 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 00484 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 00485 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 00486 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 00487 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 00488 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 00489 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 00490 282, 283, 285, 286, 287, 288, 289, 291, 292, 293, 00491 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 00492 304, 305, 306, 308, 309, 309, 309, 309, 309, 309, 00493 00494 309, 309, 309, 309, 309, 309, 310, 310, 311, 312, 00495 312, 312, 312, 312, 312, 313, 313, 313, 314, 314, 00496 315, 316, 317, 318, 319, 320, 320, 321, 321, 321, 00497 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 00498 322, 322, 323, 323, 323, 323, 324, 325, 326, 327, 00499 328, 329, 330, 331, 332, 333, 335, 336, 338, 340, 00500 341, 342, 343, 344, 345, 347, 348, 349, 351, 352, 00501 354, 356, 358, 360, 362, 364, 365, 367, 368, 369, 00502 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 00503 381, 382, 384, 385, 386, 387, 387, 387, 387, 387, 00504 00505 387, 388, 389, 389, 389, 389, 389, 389, 389, 390, 00506 390, 391, 391, 391, 391, 391, 391, 391, 391, 391, 00507 391, 391, 391, 391, 392, 392, 393, 393, 393, 393, 00508 394, 394, 394, 394, 394, 395, 396, 397, 398, 400, 00509 402, 403, 404, 405, 406, 407, 408, 410, 411, 413, 00510 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 00511 424, 425, 427, 428, 430, 431, 432, 433, 435, 436, 00512 437, 438, 439, 439, 440, 440, 440, 441, 442, 443, 00513 443, 443, 443, 444, 444, 444, 445, 445, 445, 446, 00514 446, 447, 448, 449, 450, 451, 451, 452, 452, 452, 00515 00516 453, 454, 455, 455, 456, 456, 458, 459, 460, 462, 00517 464, 466, 467, 468, 469, 471, 472, 473, 475, 476, 00518 477, 479, 480, 482, 484, 486, 488, 490, 491, 493, 00519 494, 495, 497, 499, 501, 502, 504, 505, 505, 505, 00520 505, 505, 506, 507, 507, 507, 507, 507, 507, 508, 00521 509, 509, 509, 509, 509, 510, 511, 512, 514, 516, 00522 517, 518, 519, 520, 521, 523, 525, 526, 527, 528, 00523 529, 529, 529, 529, 530, 531, 531, 531, 532, 532, 00524 533, 534, 534, 534, 535, 536, 538, 540, 541, 542, 00525 544, 545, 547, 549, 550, 551, 551, 551, 551, 551, 00526 00527 551, 551, 551, 552, 553, 554, 555, 556, 557, 558, 00528 560, 560, 560, 560, 561, 562, 562, 562, 563, 564, 00529 566, 568, 569, 570, 570, 570, 570, 571, 572, 573, 00530 574, 576, 578, 578, 578, 578, 579, 580, 580, 581, 00531 581, 583, 584, 584, 585, 587, 587, 588, 588 00532 } ; 00533 00534 static yyconst flex_int32_t yy_ec[256] = 00535 { 0, 00536 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 00537 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 00538 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00539 1, 2, 1, 5, 1, 1, 1, 1, 1, 1, 00540 1, 1, 1, 1, 6, 1, 1, 7, 8, 7, 00541 7, 7, 7, 7, 7, 7, 7, 1, 9, 1, 00542 1, 1, 1, 1, 10, 11, 12, 13, 14, 15, 00543 16, 17, 18, 1, 19, 20, 21, 22, 23, 24, 00544 1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 00545 1, 1, 1, 1, 34, 1, 35, 36, 37, 38, 00546 00547 39, 40, 41, 42, 43, 1, 44, 45, 46, 47, 00548 48, 49, 1, 50, 51, 52, 53, 54, 55, 56, 00549 57, 58, 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, 1, 1, 1, 1, 1, 00552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00555 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00556 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00557 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, 1, 1, 1, 00562 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00563 1, 1, 1, 1, 1 00564 } ; 00565 00566 static yyconst flex_int32_t yy_meta[59] = 00567 { 0, 00568 1, 1, 2, 1, 3, 1, 1, 1, 2, 1, 00569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00571 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00573 1, 1, 1, 1, 1, 1, 1, 1 00574 } ; 00575 00576 static yyconst flex_int16_t yy_base[657] = 00577 { 0, 00578 0, 0, 58, 0, 115, 117, 1245, 1242, 119, 124, 00579 0, 125, 1246, 1286, 1243, 1286, 124, 126, 97, 113, 00580 118, 126, 120, 158, 127, 114, 132, 121, 145, 148, 00581 159, 163, 184, 171, 175, 212, 171, 186, 200, 187, 00582 0, 1242, 233, 149, 197, 204, 221, 234, 227, 227, 00583 257, 239, 238, 250, 247, 277, 258, 280, 271, 298, 00584 293, 310, 320, 249, 286, 308, 300, 1241, 1286, 1286, 00585 0, 1286, 1236, 314, 1286, 1238, 1237, 333, 317, 318, 00586 332, 321, 331, 340, 331, 342, 335, 334, 355, 358, 00587 346, 350, 365, 359, 357, 358, 359, 1286, 359, 367, 00588 00589 356, 377, 368, 382, 363, 399, 386, 1286, 376, 382, 00590 381, 400, 1286, 396, 399, 401, 407, 419, 419, 411, 00591 418, 407, 1286, 412, 420, 418, 418, 0, 1236, 461, 00592 440, 450, 432, 429, 449, 440, 453, 462, 451, 459, 00593 450, 447, 469, 467, 462, 460, 472, 467, 465, 466, 00594 466, 0, 466, 473, 462, 480, 475, 498, 472, 499, 00595 501, 0, 495, 501, 502, 516, 0, 511, 516, 508, 00596 514, 525, 527, 523, 523, 513, 0, 517, 522, 520, 00597 527, 397, 391, 539, 568, 1286, 312, 534, 559, 555, 00598 563, 557, 553, 566, 279, 571, 572, 561, 573, 573, 00599 00600 560, 562, 579, 563, 572, 582, 564, 577, 569, 577, 00601 577, 576, 592, 601, 609, 597, 612, 1286, 606, 607, 00602 606, 617, 1286, 603, 610, 616, 618, 619, 620, 627, 00603 630, 624, 624, 629, 632, 620, 637, 634, 1286, 0, 00604 1286, 630, 651, 654, 661, 656, 651, 665, 275, 670, 00605 671, 660, 672, 672, 658, 661, 678, 661, 671, 681, 00606 663, 676, 668, 676, 674, 673, 684, 697, 701, 696, 00607 710, 0, 705, 705, 705, 716, 0, 702, 709, 715, 00608 717, 717, 719, 726, 728, 723, 723, 728, 731, 719, 00609 734, 731, 0, 1286, 730, 747, 743, 270, 759, 761, 00610 00611 750, 755, 761, 752, 770, 1286, 763, 1286, 1286, 770, 00612 758, 761, 762, 779, 1286, 758, 782, 1286, 765, 1286, 00613 1286, 267, 1286, 1286, 1286, 784, 1286, 767, 774, 1286, 00614 787, 767, 793, 784, 793, 796, 805, 812, 805, 815, 00615 810, 1286, 813, 809, 807, 820, 813, 244, 823, 825, 00616 813, 819, 824, 815, 833, 0, 826, 0, 0, 833, 00617 823, 827, 835, 855, 0, 840, 864, 0, 848, 0, 00618 0, 237, 0, 0, 0, 867, 0, 851, 858, 0, 00619 871, 849, 873, 857, 863, 860, 869, 875, 869, 878, 00620 873, 0, 876, 872, 870, 246, 877, 887, 893, 886, 00621 00622 1286, 1286, 888, 910, 914, 906, 907, 915, 1286, 912, 00623 1286, 919, 912, 910, 912, 908, 910, 918, 912, 914, 00624 929, 929, 919, 1286, 926, 1286, 932, 934, 937, 1286, 00625 947, 953, 943, 950, 956, 964, 969, 955, 0, 0, 00626 954, 969, 973, 964, 965, 973, 0, 970, 0, 977, 00627 971, 969, 971, 967, 968, 976, 970, 973, 990, 997, 00628 990, 0, 1004, 0, 1012, 1011, 1011, 0, 1015, 1019, 00629 1002, 1009, 1008, 1286, 205, 1013, 1286, 1286, 1286, 1012, 00630 1011, 1025, 1286, 1019, 1017, 1286, 1021, 1032, 1286, 1022, 00631 1286, 1286, 1286, 1286, 1286, 1019, 1286, 1034, 1028, 1286, 00632 00633 1286, 1286, 1043, 198, 1051, 0, 195, 1043, 0, 0, 00634 0, 1048, 1047, 1062, 0, 1055, 1054, 0, 1058, 1069, 00635 0, 1059, 0, 0, 0, 0, 0, 1056, 0, 1071, 00636 1063, 0, 0, 0, 1077, 163, 1078, 1062, 1071, 1079, 00637 1074, 1286, 1286, 1078, 1081, 1069, 1083, 1084, 1286, 1286, 00638 1087, 1091, 1090, 1111, 1104, 1113, 1108, 0, 0, 1113, 00639 1116, 1104, 1118, 1117, 0, 0, 1118, 1115, 1112, 1126, 00640 1129, 1131, 156, 1286, 1286, 1128, 1133, 1286, 1128, 1286, 00641 1286, 1122, 1132, 1137, 119, 0, 0, 1136, 1143, 0, 00642 1145, 0, 0, 1142, 1159, 1149, 1144, 1162, 1157, 1160, 00643 00644 1161, 1162, 1286, 1151, 1169, 1163, 1167, 1168, 1169, 0, 00645 1164, 1169, 1170, 1286, 1286, 1180, 1181, 1173, 1174, 0, 00646 0, 1186, 1189, 1183, 1187, 1198, 1286, 1286, 1196, 1201, 00647 0, 0, 1203, 1202, 1203, 1204, 1205, 137, 1286, 1216, 00648 0, 1217, 1217, 1286, 0, 1224, 1286, 1286, 1262, 1265, 00649 1268, 1271, 1274, 1277, 1279, 1282 00650 } ; 00651 00652 static yyconst flex_int16_t yy_def[657] = 00653 { 0, 00654 648, 1, 648, 3, 1, 1, 1, 1, 649, 649, 00655 650, 651, 648, 648, 648, 648, 648, 648, 648, 648, 00656 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00657 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00658 652, 652, 653, 652, 652, 652, 652, 652, 652, 652, 00659 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00660 652, 652, 652, 652, 652, 652, 652, 648, 648, 648, 00661 654, 648, 648, 655, 648, 648, 648, 648, 648, 648, 00662 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00663 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00664 00665 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00666 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00667 648, 648, 648, 648, 648, 648, 648, 652, 652, 653, 00668 656, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00669 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00670 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00671 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00672 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00673 652, 648, 654, 648, 655, 648, 648, 648, 648, 648, 00674 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00675 00676 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00677 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00678 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00679 648, 648, 648, 648, 648, 648, 648, 648, 648, 652, 00680 648, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00681 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00682 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00683 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00684 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00685 652, 652, 652, 648, 648, 648, 648, 648, 648, 648, 00686 00687 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00688 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00689 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00690 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00691 648, 648, 648, 648, 648, 652, 652, 652, 652, 652, 00692 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00693 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00694 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00695 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00696 652, 652, 652, 652, 652, 648, 648, 648, 648, 648, 00697 00698 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00699 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00700 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00701 648, 648, 648, 648, 652, 652, 652, 652, 652, 652, 00702 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00703 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00704 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00705 652, 652, 648, 648, 648, 648, 648, 648, 648, 648, 00706 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00707 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00708 00709 648, 648, 648, 648, 648, 652, 652, 652, 652, 652, 00710 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00711 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00712 652, 652, 652, 652, 652, 652, 652, 648, 648, 648, 00713 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00714 648, 648, 648, 648, 652, 652, 652, 652, 652, 652, 00715 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 00716 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00717 648, 648, 648, 652, 652, 652, 652, 652, 652, 652, 00718 652, 652, 652, 652, 652, 648, 648, 648, 648, 648, 00719 00720 648, 648, 648, 652, 652, 652, 652, 652, 652, 652, 00721 648, 648, 648, 648, 648, 648, 648, 652, 652, 652, 00722 652, 652, 652, 648, 648, 648, 648, 648, 652, 652, 00723 652, 652, 648, 648, 648, 652, 652, 648, 648, 648, 00724 652, 652, 648, 648, 652, 648, 648, 0, 648, 648, 00725 648, 648, 648, 648, 648, 648 00726 } ; 00727 00728 static yyconst flex_int16_t yy_nxt[1345] = 00729 { 0, 00730 14, 15, 16, 14, 14, 14, 17, 18, 14, 19, 00731 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 00732 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 00733 14, 40, 14, 14, 19, 20, 21, 22, 23, 24, 00734 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 00735 35, 36, 37, 38, 39, 14, 40, 14, 41, 42, 00736 16, 41, 43, 41, 44, 45, 14, 46, 47, 48, 00737 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 00738 59, 60, 61, 62, 63, 64, 65, 66, 41, 67, 00739 41, 41, 46, 47, 48, 49, 50, 51, 52, 53, 00740 00741 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 00742 64, 65, 66, 41, 67, 41, 68, 69, 68, 69, 00743 80, 16, 81, 70, 73, 70, 16, 75, 76, 73, 00744 78, 78, 78, 78, 83, 82, 97, 84, 100, 86, 00745 85, 89, 643, 87, 98, 80, 95, 81, 88, 79, 00746 90, 96, 605, 99, 101, 132, 132, 103, 102, 83, 00747 82, 97, 84, 100, 86, 85, 89, 91, 87, 98, 00748 104, 95, 105, 88, 79, 90, 96, 92, 99, 101, 00749 93, 106, 103, 102, 114, 94, 107, 108, 115, 598, 00750 109, 116, 91, 110, 123, 104, 569, 105, 117, 124, 00751 00752 127, 118, 92, 132, 132, 93, 106, 111, 112, 114, 00753 94, 107, 108, 115, 113, 109, 116, 125, 110, 123, 00754 133, 119, 126, 117, 124, 127, 118, 134, 555, 120, 00755 135, 553, 111, 112, 121, 131, 122, 128, 539, 113, 00756 140, 131, 125, 136, 141, 133, 119, 126, 143, 142, 00757 137, 473, 134, 138, 120, 135, 139, 144, 149, 121, 00758 151, 122, 152, 150, 154, 140, 145, 157, 136, 141, 00759 455, 153, 177, 143, 142, 137, 146, 437, 138, 147, 00760 158, 139, 144, 149, 148, 151, 155, 152, 150, 154, 00761 156, 145, 157, 159, 161, 162, 153, 177, 163, 178, 00762 00763 417, 146, 160, 399, 147, 158, 168, 164, 353, 148, 00764 169, 155, 303, 181, 186, 156, 186, 187, 159, 161, 00765 162, 165, 166, 163, 178, 179, 170, 160, 167, 173, 00766 180, 168, 164, 171, 188, 169, 172, 174, 181, 78, 00767 78, 189, 175, 190, 176, 191, 165, 166, 192, 193, 00768 179, 170, 195, 167, 173, 180, 196, 194, 171, 188, 00769 197, 172, 174, 198, 199, 202, 189, 175, 190, 176, 00770 191, 200, 203, 192, 193, 201, 204, 195, 205, 206, 00771 207, 196, 194, 208, 209, 197, 210, 211, 198, 199, 00772 202, 212, 213, 216, 214, 294, 200, 203, 182, 220, 00773 00774 201, 204, 221, 205, 206, 207, 222, 223, 208, 209, 00775 215, 210, 211, 224, 227, 225, 212, 213, 216, 214, 00776 217, 226, 218, 219, 220, 228, 229, 221, 230, 231, 00777 232, 222, 223, 234, 235, 215, 236, 233, 224, 227, 00778 225, 237, 238, 239, 241, 217, 226, 218, 219, 242, 00779 228, 229, 243, 230, 231, 232, 132, 132, 234, 235, 00780 244, 236, 233, 131, 245, 240, 237, 238, 239, 131, 00781 246, 247, 249, 250, 242, 251, 252, 243, 253, 248, 00782 254, 256, 257, 258, 255, 244, 259, 260, 261, 245, 00783 262, 263, 264, 265, 266, 246, 247, 249, 250, 267, 00784 00785 251, 252, 270, 253, 248, 254, 256, 257, 258, 255, 00786 268, 259, 260, 261, 274, 262, 263, 264, 265, 266, 00787 271, 275, 272, 273, 267, 276, 269, 270, 277, 278, 00788 279, 281, 282, 283, 284, 268, 280, 285, 288, 274, 00789 289, 290, 286, 291, 292, 271, 275, 272, 273, 287, 00790 276, 269, 293, 277, 278, 279, 281, 282, 283, 284, 00791 295, 280, 285, 288, 296, 289, 290, 286, 291, 292, 00792 186, 187, 297, 298, 287, 299, 300, 293, 301, 302, 00793 304, 305, 306, 307, 308, 295, 309, 310, 311, 296, 00794 312, 313, 314, 315, 316, 317, 318, 297, 298, 319, 00795 00796 299, 300, 320, 301, 302, 304, 305, 306, 307, 308, 00797 321, 309, 310, 311, 322, 312, 313, 314, 315, 316, 00798 317, 318, 323, 324, 319, 325, 326, 320, 327, 328, 00799 329, 330, 331, 332, 334, 321, 335, 336, 337, 322, 00800 338, 339, 333, 340, 341, 342, 343, 323, 324, 344, 00801 325, 326, 345, 327, 328, 329, 330, 331, 332, 334, 00802 346, 335, 336, 337, 347, 338, 339, 333, 340, 341, 00803 342, 343, 348, 349, 344, 350, 351, 345, 352, 354, 00804 355, 356, 357, 358, 359, 346, 360, 361, 362, 347, 00805 363, 364, 365, 366, 367, 368, 369, 348, 349, 370, 00806 00807 350, 351, 371, 352, 354, 355, 356, 357, 358, 359, 00808 372, 360, 361, 362, 373, 363, 364, 365, 366, 367, 00809 368, 369, 374, 375, 370, 376, 377, 371, 378, 379, 00810 380, 381, 382, 384, 385, 372, 386, 387, 388, 373, 00811 389, 383, 390, 391, 392, 393, 394, 374, 375, 395, 00812 376, 377, 396, 378, 379, 380, 381, 382, 384, 385, 00813 397, 386, 387, 388, 398, 389, 383, 390, 391, 392, 00814 393, 394, 400, 401, 395, 402, 403, 396, 404, 406, 00815 407, 405, 408, 409, 410, 397, 411, 412, 413, 398, 00816 414, 415, 416, 418, 419, 420, 421, 400, 401, 422, 00817 00818 402, 403, 423, 404, 406, 407, 405, 408, 409, 410, 00819 424, 411, 412, 413, 425, 414, 415, 416, 418, 419, 00820 420, 421, 426, 427, 422, 428, 429, 423, 430, 431, 00821 432, 433, 434, 435, 436, 424, 438, 439, 440, 425, 00822 441, 442, 444, 445, 443, 446, 447, 426, 427, 448, 00823 428, 429, 449, 430, 431, 432, 433, 434, 435, 436, 00824 450, 438, 439, 440, 451, 441, 442, 444, 445, 443, 00825 446, 447, 452, 453, 448, 454, 456, 449, 457, 458, 00826 459, 460, 461, 462, 463, 450, 464, 465, 466, 451, 00827 467, 468, 469, 470, 471, 472, 474, 452, 453, 475, 00828 00829 454, 456, 476, 457, 458, 459, 460, 461, 462, 463, 00830 477, 464, 465, 466, 478, 467, 468, 469, 470, 471, 00831 472, 474, 479, 480, 475, 481, 482, 476, 483, 484, 00832 485, 486, 487, 488, 489, 477, 490, 491, 492, 478, 00833 493, 494, 495, 496, 497, 498, 500, 479, 480, 499, 00834 481, 482, 501, 483, 484, 485, 486, 487, 488, 489, 00835 502, 490, 491, 492, 503, 493, 494, 495, 496, 497, 00836 498, 500, 504, 505, 499, 506, 507, 501, 508, 509, 00837 510, 511, 512, 513, 514, 502, 515, 516, 517, 503, 00838 518, 519, 520, 521, 522, 523, 524, 504, 505, 525, 00839 00840 506, 507, 526, 508, 509, 510, 511, 512, 513, 514, 00841 527, 515, 516, 517, 528, 518, 519, 520, 521, 522, 00842 523, 524, 529, 532, 525, 530, 533, 526, 534, 531, 00843 535, 536, 537, 538, 540, 527, 541, 542, 543, 528, 00844 544, 545, 546, 547, 548, 549, 550, 529, 532, 551, 00845 530, 533, 552, 534, 531, 535, 536, 537, 538, 540, 00846 554, 541, 542, 543, 556, 544, 545, 546, 547, 548, 00847 549, 550, 557, 558, 551, 559, 560, 552, 561, 562, 00848 563, 564, 565, 566, 567, 554, 568, 570, 571, 556, 00849 572, 573, 574, 575, 576, 577, 578, 557, 558, 579, 00850 00851 559, 560, 580, 561, 562, 563, 564, 565, 566, 567, 00852 581, 568, 570, 571, 582, 572, 573, 574, 575, 576, 00853 577, 578, 583, 584, 579, 585, 586, 580, 587, 588, 00854 589, 590, 591, 592, 593, 581, 594, 595, 596, 582, 00855 597, 599, 600, 601, 602, 603, 604, 583, 584, 606, 00856 585, 586, 607, 587, 588, 589, 590, 591, 592, 593, 00857 608, 594, 595, 596, 609, 597, 599, 600, 601, 602, 00858 603, 604, 610, 611, 606, 612, 613, 607, 614, 615, 00859 616, 617, 618, 619, 620, 608, 621, 622, 623, 609, 00860 624, 625, 626, 627, 628, 629, 630, 610, 611, 631, 00861 00862 612, 613, 632, 614, 615, 616, 617, 618, 619, 620, 00863 633, 621, 622, 623, 634, 624, 625, 626, 627, 628, 00864 629, 630, 635, 636, 631, 637, 638, 632, 639, 640, 00865 641, 642, 644, 645, 646, 633, 647, 129, 77, 634, 00866 186, 184, 182, 129, 77, 648, 71, 635, 636, 71, 00867 637, 638, 648, 639, 640, 641, 642, 644, 645, 646, 00868 648, 647, 72, 72, 72, 16, 16, 16, 74, 74, 00869 74, 128, 648, 128, 130, 130, 130, 183, 183, 185, 00870 185, 185, 131, 131, 131, 13, 648, 648, 648, 648, 00871 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00872 00873 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00874 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00875 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00876 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 00877 648, 648, 648, 648 00878 } ; 00879 00880 static yyconst flex_int16_t yy_chk[1345] = 00881 { 0, 00882 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00883 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00884 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00885 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00886 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00887 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 00888 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 00889 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 00890 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 00891 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 00892 00893 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 00894 3, 3, 3, 3, 3, 3, 5, 5, 6, 6, 00895 19, 9, 20, 5, 9, 6, 10, 12, 12, 10, 00896 17, 17, 18, 18, 21, 20, 26, 21, 28, 22, 00897 21, 23, 638, 22, 27, 19, 25, 20, 22, 18, 00898 23, 25, 585, 27, 29, 44, 44, 30, 29, 21, 00899 20, 26, 21, 28, 22, 21, 23, 24, 22, 27, 00900 30, 25, 31, 22, 18, 23, 25, 24, 27, 29, 00901 24, 31, 30, 29, 34, 24, 32, 32, 34, 573, 00902 32, 35, 24, 33, 37, 30, 536, 31, 35, 38, 00903 00904 40, 35, 24, 45, 45, 24, 31, 33, 33, 34, 00905 24, 32, 32, 34, 33, 32, 35, 39, 33, 37, 00906 45, 36, 39, 35, 38, 40, 35, 46, 507, 36, 00907 47, 504, 33, 33, 36, 43, 36, 43, 475, 33, 00908 49, 43, 39, 47, 49, 45, 36, 39, 50, 49, 00909 48, 396, 46, 48, 36, 47, 48, 50, 52, 36, 00910 53, 36, 54, 52, 55, 49, 51, 57, 47, 49, 00911 372, 54, 64, 50, 49, 48, 51, 348, 48, 51, 00912 57, 48, 50, 52, 51, 53, 56, 54, 52, 55, 00913 56, 51, 57, 58, 59, 59, 54, 64, 59, 65, 00914 00915 322, 51, 58, 298, 51, 57, 61, 60, 249, 51, 00916 61, 56, 195, 67, 187, 56, 74, 74, 58, 59, 00917 59, 60, 60, 59, 65, 66, 62, 58, 60, 63, 00918 66, 61, 60, 62, 79, 61, 62, 63, 67, 78, 00919 78, 80, 63, 81, 63, 82, 60, 60, 83, 84, 00920 66, 62, 85, 60, 63, 66, 86, 84, 62, 79, 00921 87, 62, 63, 88, 89, 91, 80, 63, 81, 63, 00922 82, 90, 92, 83, 84, 90, 93, 85, 94, 95, 00923 96, 86, 84, 97, 99, 87, 100, 101, 88, 89, 00924 91, 102, 103, 105, 104, 183, 90, 92, 182, 107, 00925 00926 90, 93, 109, 94, 95, 96, 110, 111, 97, 99, 00927 104, 100, 101, 112, 115, 114, 102, 103, 105, 104, 00928 106, 114, 106, 106, 107, 116, 117, 109, 118, 119, 00929 120, 110, 111, 121, 122, 104, 124, 120, 112, 115, 00930 114, 125, 126, 127, 131, 106, 114, 106, 106, 133, 00931 116, 117, 134, 118, 119, 120, 132, 132, 121, 122, 00932 135, 124, 120, 130, 136, 130, 125, 126, 127, 130, 00933 137, 138, 139, 140, 133, 141, 142, 134, 143, 138, 00934 144, 145, 146, 147, 144, 135, 148, 149, 150, 136, 00935 151, 153, 154, 155, 156, 137, 138, 139, 140, 157, 00936 00937 141, 142, 159, 143, 138, 144, 145, 146, 147, 144, 00938 158, 148, 149, 150, 161, 151, 153, 154, 155, 156, 00939 160, 163, 160, 160, 157, 164, 158, 159, 165, 166, 00940 168, 169, 170, 171, 172, 158, 168, 173, 175, 161, 00941 176, 178, 174, 179, 180, 160, 163, 160, 160, 174, 00942 164, 158, 181, 165, 166, 168, 169, 170, 171, 172, 00943 184, 168, 173, 175, 188, 176, 178, 174, 179, 180, 00944 185, 185, 189, 190, 174, 191, 192, 181, 193, 194, 00945 196, 197, 198, 199, 200, 184, 201, 202, 203, 188, 00946 204, 205, 206, 207, 208, 209, 210, 189, 190, 211, 00947 00948 191, 192, 212, 193, 194, 196, 197, 198, 199, 200, 00949 213, 201, 202, 203, 214, 204, 205, 206, 207, 208, 00950 209, 210, 215, 216, 211, 217, 219, 212, 220, 221, 00951 222, 224, 225, 226, 227, 213, 228, 229, 230, 214, 00952 231, 232, 226, 233, 234, 235, 236, 215, 216, 237, 00953 217, 219, 238, 220, 221, 222, 224, 225, 226, 227, 00954 242, 228, 229, 230, 243, 231, 232, 226, 233, 234, 00955 235, 236, 244, 245, 237, 246, 247, 238, 248, 250, 00956 251, 252, 253, 254, 255, 242, 256, 257, 258, 243, 00957 259, 260, 261, 262, 263, 264, 265, 244, 245, 266, 00958 00959 246, 247, 267, 248, 250, 251, 252, 253, 254, 255, 00960 268, 256, 257, 258, 269, 259, 260, 261, 262, 263, 00961 264, 265, 270, 271, 266, 273, 274, 267, 275, 276, 00962 278, 279, 280, 281, 282, 268, 283, 284, 285, 269, 00963 286, 280, 287, 288, 289, 290, 291, 270, 271, 292, 00964 273, 274, 295, 275, 276, 278, 279, 280, 281, 282, 00965 296, 283, 284, 285, 297, 286, 280, 287, 288, 289, 00966 290, 291, 299, 300, 292, 301, 302, 295, 303, 304, 00967 305, 303, 307, 310, 311, 296, 312, 313, 314, 297, 00968 316, 317, 319, 326, 328, 329, 331, 299, 300, 332, 00969 00970 301, 302, 333, 303, 304, 305, 303, 307, 310, 311, 00971 334, 312, 313, 314, 335, 316, 317, 319, 326, 328, 00972 329, 331, 336, 337, 332, 338, 339, 333, 340, 341, 00973 343, 344, 345, 346, 347, 334, 349, 350, 351, 335, 00974 352, 353, 354, 355, 353, 357, 360, 336, 337, 361, 00975 338, 339, 362, 340, 341, 343, 344, 345, 346, 347, 00976 363, 349, 350, 351, 364, 352, 353, 354, 355, 353, 00977 357, 360, 366, 367, 361, 369, 376, 362, 378, 379, 00978 381, 382, 383, 384, 385, 363, 386, 387, 388, 364, 00979 389, 390, 391, 393, 394, 395, 397, 366, 367, 398, 00980 00981 369, 376, 399, 378, 379, 381, 382, 383, 384, 385, 00982 400, 386, 387, 388, 403, 389, 390, 391, 393, 394, 00983 395, 397, 404, 405, 398, 406, 407, 399, 408, 410, 00984 412, 413, 414, 415, 416, 400, 417, 418, 419, 403, 00985 420, 421, 422, 423, 425, 427, 428, 404, 405, 427, 00986 406, 407, 429, 408, 410, 412, 413, 414, 415, 416, 00987 431, 417, 418, 419, 432, 420, 421, 422, 423, 425, 00988 427, 428, 433, 434, 427, 435, 436, 429, 437, 438, 00989 441, 442, 443, 444, 445, 431, 446, 448, 450, 432, 00990 451, 452, 453, 454, 455, 456, 457, 433, 434, 458, 00991 00992 435, 436, 459, 437, 438, 441, 442, 443, 444, 445, 00993 460, 446, 448, 450, 461, 451, 452, 453, 454, 455, 00994 456, 457, 463, 466, 458, 465, 467, 459, 469, 465, 00995 470, 471, 472, 473, 476, 460, 480, 481, 482, 461, 00996 484, 485, 487, 488, 490, 496, 498, 463, 466, 499, 00997 465, 467, 503, 469, 465, 470, 471, 472, 473, 476, 00998 505, 480, 481, 482, 508, 484, 485, 487, 488, 490, 00999 496, 498, 512, 513, 499, 514, 516, 503, 517, 519, 01000 520, 522, 528, 530, 531, 505, 535, 537, 538, 508, 01001 539, 540, 541, 544, 545, 546, 547, 512, 513, 548, 01002 01003 514, 516, 551, 517, 519, 520, 522, 528, 530, 531, 01004 552, 535, 537, 538, 553, 539, 540, 541, 544, 545, 01005 546, 547, 554, 555, 548, 556, 557, 551, 560, 561, 01006 562, 563, 564, 567, 568, 552, 569, 570, 571, 553, 01007 572, 576, 577, 579, 582, 583, 584, 554, 555, 588, 01008 556, 557, 589, 560, 561, 562, 563, 564, 567, 568, 01009 591, 569, 570, 571, 594, 572, 576, 577, 579, 582, 01010 583, 584, 595, 596, 588, 597, 598, 589, 599, 600, 01011 601, 602, 604, 605, 606, 591, 607, 608, 609, 594, 01012 611, 612, 613, 616, 617, 618, 619, 595, 596, 622, 01013 01014 597, 598, 623, 599, 600, 601, 602, 604, 605, 606, 01015 624, 607, 608, 609, 625, 611, 612, 613, 616, 617, 01016 618, 619, 626, 629, 622, 630, 633, 623, 634, 635, 01017 636, 637, 640, 642, 643, 624, 646, 129, 77, 625, 01018 76, 73, 68, 42, 15, 13, 8, 626, 629, 7, 01019 630, 633, 0, 634, 635, 636, 637, 640, 642, 643, 01020 0, 646, 649, 649, 649, 650, 650, 650, 651, 651, 01021 651, 652, 0, 652, 653, 653, 653, 654, 654, 655, 01022 655, 655, 656, 656, 656, 648, 648, 648, 648, 648, 01023 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 01024 01025 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 01026 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 01027 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 01028 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 01029 648, 648, 648, 648 01030 } ; 01031 01032 extern int cmdyy_flex_debug; 01033 int cmdyy_flex_debug = 0; 01034 01035 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; 01036 static char *yy_full_match; 01037 static int yy_lp; 01038 static int yy_looking_for_trail_begin = 0; 01039 static int yy_full_lp; 01040 static int *yy_full_state; 01041 #define YY_TRAILING_MASK 0x2000 01042 #define YY_TRAILING_HEAD_MASK 0x4000 01043 #define REJECT \ 01044 { \ 01045 *yy_cp = (yy_hold_char); /* undo effects of setting up cmdyytext */ \ 01046 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \ 01047 (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \ 01048 (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \ 01049 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \ 01050 ++(yy_lp); \ 01051 goto find_rule; \ 01052 } 01053 01054 #define yymore() yymore_used_but_not_detected 01055 #define YY_MORE_ADJ 0 01056 #define YY_RESTORE_YY_MORE_OFFSET 01057 char *cmdyytext; 01058 #line 1 "src/cmdparse.l" 01059 /* 01060 * vim:ts=4:sw=4:expandtab 01061 * 01062 * i3 - an improved dynamic tiling window manager 01063 * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE) 01064 * 01065 * cmdparse.l: the lexer for commands you send to i3 (or bind on keys) 01066 * 01067 */ 01068 #define YY_NO_INPUT 1 01069 #line 16 "src/cmdparse.l" 01070 #include <stdio.h> 01071 #include <string.h> 01072 #include "cmdparse.tab.h" 01073 01074 #include "config.h" 01075 #include "util.h" 01076 #include "libi3.h" 01077 01078 int cmdyycolumn = 1; 01079 01080 #define YY_DECL int cmdyylex (struct context *context) 01081 01082 #define YY_USER_ACTION { \ 01083 context->first_column = cmdyycolumn; \ 01084 context->last_column = cmdyycolumn+cmdyyleng-1; \ 01085 cmdyycolumn += cmdyyleng; \ 01086 } 01087 01088 /* macro to first eat whitespace, then expect a string */ 01089 #define WS_STRING do { \ 01090 yy_push_state(WANT_STRING); \ 01091 yy_push_state(EAT_WHITESPACE); \ 01092 } while (0) 01093 01094 /* handle everything up to \n as a string */ 01095 01096 /* eat a whitespace, then go to the next state on the stack */ 01097 01098 /* handle a quoted string or everything up to the next whitespace */ 01099 01100 01101 01102 #line 1103 "src/cmdparse.yy.c" 01103 01104 #define INITIAL 0 01105 #define WANT_STRING 1 01106 #define EAT_WHITESPACE 2 01107 #define WANT_QSTRING 3 01108 #define EXEC 4 01109 #define BUFFER_LINE 5 01110 01111 #ifndef YY_NO_UNISTD_H 01112 /* Special case for "unistd.h", since it is non-ANSI. We include it way 01113 * down here because we want the user's section 1 to have been scanned first. 01114 * The user has a chance to override it with an option. 01115 */ 01116 #include <unistd.h> 01117 #endif 01118 01119 #ifndef YY_EXTRA_TYPE 01120 #define YY_EXTRA_TYPE void * 01121 #endif 01122 01123 static int yy_init_globals (void ); 01124 01125 /* Accessor methods to globals. 01126 These are made visible to non-reentrant scanners for convenience. */ 01127 01128 int cmdyylex_destroy (void ); 01129 01130 int cmdyyget_debug (void ); 01131 01132 void cmdyyset_debug (int debug_flag ); 01133 01134 YY_EXTRA_TYPE cmdyyget_extra (void ); 01135 01136 void cmdyyset_extra (YY_EXTRA_TYPE user_defined ); 01137 01138 FILE *cmdyyget_in (void ); 01139 01140 void cmdyyset_in (FILE * in_str ); 01141 01142 FILE *cmdyyget_out (void ); 01143 01144 void cmdyyset_out (FILE * out_str ); 01145 01146 int cmdyyget_leng (void ); 01147 01148 char *cmdyyget_text (void ); 01149 01150 int cmdyyget_lineno (void ); 01151 01152 void cmdyyset_lineno (int line_number ); 01153 01154 /* Macros after this point can all be overridden by user definitions in 01155 * section 1. 01156 */ 01157 01158 #ifndef YY_SKIP_YYWRAP 01159 #ifdef __cplusplus 01160 extern "C" int cmdyywrap (void ); 01161 #else 01162 extern int cmdyywrap (void ); 01163 #endif 01164 #endif 01165 01166 #ifndef yytext_ptr 01167 static void yy_flex_strncpy (char *,yyconst char *,int ); 01168 #endif 01169 01170 #ifdef YY_NEED_STRLEN 01171 static int yy_flex_strlen (yyconst char * ); 01172 #endif 01173 01174 #ifndef YY_NO_INPUT 01175 01176 #ifdef __cplusplus 01177 static int yyinput (void ); 01178 #else 01179 static int input (void ); 01180 #endif 01181 01182 #endif 01183 01184 static int yy_start_stack_ptr = 0; 01185 static int yy_start_stack_depth = 0; 01186 static int *yy_start_stack = NULL; 01187 01188 static void yy_push_state (int new_state ); 01189 01190 static void yy_pop_state (void ); 01191 01192 /* Amount of stuff to slurp up with each read. */ 01193 #ifndef YY_READ_BUF_SIZE 01194 #define YY_READ_BUF_SIZE 8192 01195 #endif 01196 01197 /* Copy whatever the last rule matched to the standard output. */ 01198 #ifndef ECHO 01199 /* This used to be an fputs(), but since the string might contain NUL's, 01200 * we now use fwrite(). 01201 */ 01202 #define ECHO do { if (fwrite( cmdyytext, cmdyyleng, 1, cmdyyout )) {} } while (0) 01203 #endif 01204 01205 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 01206 * is returned in "result". 01207 */ 01208 #ifndef YY_INPUT 01209 #define YY_INPUT(buf,result,max_size) \ 01210 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 01211 { \ 01212 int c = '*'; \ 01213 unsigned n; \ 01214 for ( n = 0; n < max_size && \ 01215 (c = getc( cmdyyin )) != EOF && c != '\n'; ++n ) \ 01216 buf[n] = (char) c; \ 01217 if ( c == '\n' ) \ 01218 buf[n++] = (char) c; \ 01219 if ( c == EOF && ferror( cmdyyin ) ) \ 01220 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 01221 result = n; \ 01222 } \ 01223 else \ 01224 { \ 01225 errno=0; \ 01226 while ( (result = fread(buf, 1, max_size, cmdyyin))==0 && ferror(cmdyyin)) \ 01227 { \ 01228 if( errno != EINTR) \ 01229 { \ 01230 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 01231 break; \ 01232 } \ 01233 errno=0; \ 01234 clearerr(cmdyyin); \ 01235 } \ 01236 }\ 01237 \ 01238 01239 #endif 01240 01241 /* No semi-colon after return; correct usage is to write "yyterminate();" - 01242 * we don't want an extra ';' after the "return" because that will cause 01243 * some compilers to complain about unreachable statements. 01244 */ 01245 #ifndef yyterminate 01246 #define yyterminate() return YY_NULL 01247 #endif 01248 01249 /* Number of entries by which start-condition stack grows. */ 01250 #ifndef YY_START_STACK_INCR 01251 #define YY_START_STACK_INCR 25 01252 #endif 01253 01254 /* Report a fatal error. */ 01255 #ifndef YY_FATAL_ERROR 01256 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 01257 #endif 01258 01259 /* end tables serialization structures and prototypes */ 01260 01261 /* Default declaration of generated scanner - a define so the user can 01262 * easily add parameters. 01263 */ 01264 #ifndef YY_DECL 01265 #define YY_DECL_IS_OURS 1 01266 01267 extern int cmdyylex (void); 01268 01269 #define YY_DECL int cmdyylex (void) 01270 #endif /* !YY_DECL */ 01271 01272 /* Code executed at the beginning of each rule, after cmdyytext and cmdyyleng 01273 * have been set up. 01274 */ 01275 #ifndef YY_USER_ACTION 01276 #define YY_USER_ACTION 01277 #endif 01278 01279 /* Code executed at the end of each rule. */ 01280 #ifndef YY_BREAK 01281 #define YY_BREAK break; 01282 #endif 01283 01284 #define YY_RULE_SETUP \ 01285 if ( cmdyyleng > 0 ) \ 01286 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ 01287 (cmdyytext[cmdyyleng - 1] == '\n'); \ 01288 YY_USER_ACTION 01289 01292 YY_DECL 01293 { 01294 register yy_state_type yy_current_state; 01295 register char *yy_cp, *yy_bp; 01296 register int yy_act; 01297 01298 #line 55 "src/cmdparse.l" 01299 01300 01301 { 01302 /* This is called when a new line is lexed. We only want the 01303 * first line to match to go into state BUFFER_LINE */ 01304 if (context->line_number == 0) { 01305 context->line_number = 1; 01306 BEGIN(INITIAL); 01307 yy_push_state(BUFFER_LINE); 01308 } 01309 } 01310 01311 #line 1312 "src/cmdparse.yy.c" 01312 01313 if ( !(yy_init) ) 01314 { 01315 (yy_init) = 1; 01316 01317 #ifdef YY_USER_INIT 01318 YY_USER_INIT; 01319 #endif 01320 01321 /* Create the reject buffer large enough to save one state per allowed character. */ 01322 if ( ! (yy_state_buf) ) 01323 (yy_state_buf) = (yy_state_type *)cmdyyalloc(YY_STATE_BUF_SIZE ); 01324 if ( ! (yy_state_buf) ) 01325 YY_FATAL_ERROR( "out of dynamic memory in cmdyylex()" ); 01326 01327 if ( ! (yy_start) ) 01328 (yy_start) = 1; /* first start state */ 01329 01330 if ( ! cmdyyin ) 01331 cmdyyin = stdin; 01332 01333 if ( ! cmdyyout ) 01334 cmdyyout = stdout; 01335 01336 if ( ! YY_CURRENT_BUFFER ) { 01337 cmdyyensure_buffer_stack (); 01338 YY_CURRENT_BUFFER_LVALUE = 01339 cmdyy_create_buffer(cmdyyin,YY_BUF_SIZE ); 01340 } 01341 01342 cmdyy_load_buffer_state( ); 01343 } 01344 01345 while ( 1 ) /* loops until end-of-file is reached */ 01346 { 01347 yy_cp = (yy_c_buf_p); 01348 01349 /* Support of cmdyytext. */ 01350 *yy_cp = (yy_hold_char); 01351 01352 /* yy_bp points to the position in yy_ch_buf of the start of 01353 * the current run. 01354 */ 01355 yy_bp = yy_cp; 01356 01357 yy_current_state = (yy_start); 01358 yy_current_state += YY_AT_BOL(); 01359 01360 (yy_state_ptr) = (yy_state_buf); 01361 *(yy_state_ptr)++ = yy_current_state; 01362 01363 yy_match: 01364 do 01365 { 01366 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 01367 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 01368 { 01369 yy_current_state = (int) yy_def[yy_current_state]; 01370 if ( yy_current_state >= 649 ) 01371 yy_c = yy_meta[(unsigned int) yy_c]; 01372 } 01373 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 01374 *(yy_state_ptr)++ = yy_current_state; 01375 ++yy_cp; 01376 } 01377 while ( yy_base[yy_current_state] != 1286 ); 01378 01379 yy_find_action: 01380 yy_current_state = *--(yy_state_ptr); 01381 (yy_lp) = yy_accept[yy_current_state]; 01382 find_rule: /* we branch to this label when backing up */ 01383 for ( ; ; ) /* until we find what rule we matched */ 01384 { 01385 if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] ) 01386 { 01387 yy_act = yy_acclist[(yy_lp)]; 01388 if ( yy_act & YY_TRAILING_HEAD_MASK || 01389 (yy_looking_for_trail_begin) ) 01390 { 01391 if ( yy_act == (yy_looking_for_trail_begin) ) 01392 { 01393 (yy_looking_for_trail_begin) = 0; 01394 yy_act &= ~YY_TRAILING_HEAD_MASK; 01395 break; 01396 } 01397 } 01398 else if ( yy_act & YY_TRAILING_MASK ) 01399 { 01400 (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK; 01401 (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK; 01402 } 01403 else 01404 { 01405 (yy_full_match) = yy_cp; 01406 (yy_full_state) = (yy_state_ptr); 01407 (yy_full_lp) = (yy_lp); 01408 break; 01409 } 01410 ++(yy_lp); 01411 goto find_rule; 01412 } 01413 --yy_cp; 01414 yy_current_state = *--(yy_state_ptr); 01415 (yy_lp) = yy_accept[yy_current_state]; 01416 } 01417 01418 YY_DO_BEFORE_ACTION; 01419 01420 do_action: /* This label is used only to access EOF actions. */ 01421 01422 switch ( yy_act ) 01423 { /* beginning of action switch */ 01424 case 1: 01425 /* rule 1 can match eol */ 01426 YY_RULE_SETUP 01427 #line 67 "src/cmdparse.l" 01428 { 01429 /* save whole line */ 01430 context->line_copy = sstrdup(cmdyytext); 01431 01432 yyless(0); 01433 yy_pop_state(); 01434 yy_set_bol(true); 01435 cmdyycolumn = 1; 01436 } 01437 YY_BREAK 01438 /* the next/prev/back_and_forth tokens are here to recognize them *before* 01439 * handling strings ('workspace' command) */ 01440 case 2: 01441 YY_RULE_SETUP 01442 #line 79 "src/cmdparse.l" 01443 { BEGIN(INITIAL); return TOK_NEXT; } 01444 YY_BREAK 01445 case 3: 01446 YY_RULE_SETUP 01447 #line 80 "src/cmdparse.l" 01448 { BEGIN(INITIAL); return TOK_PREV; } 01449 YY_BREAK 01450 case 4: 01451 YY_RULE_SETUP 01452 #line 81 "src/cmdparse.l" 01453 { BEGIN(INITIAL); return TOK_BACK_AND_FORTH; } 01454 YY_BREAK 01455 case 5: 01456 /* rule 5 can match eol */ 01457 YY_RULE_SETUP 01458 #line 83 "src/cmdparse.l" 01459 { 01460 BEGIN(INITIAL); 01461 /* strip quotes */ 01462 char *copy = sstrdup(cmdyytext+1); 01463 copy[strlen(copy)-1] = '\0'; 01464 cmdyylval.string = copy; 01465 return STR; 01466 } 01467 YY_BREAK 01468 case 6: 01469 /* rule 6 can match eol */ 01470 YY_RULE_SETUP 01471 #line 91 "src/cmdparse.l" 01472 { 01473 BEGIN(INITIAL); 01474 /* strip quotes */ 01475 char *copy = sstrdup(cmdyytext+1); 01476 copy[strlen(copy)-1] = '\0'; 01477 cmdyylval.string = copy; 01478 return STR; 01479 } 01480 YY_BREAK 01481 case 7: 01482 YY_RULE_SETUP 01483 #line 100 "src/cmdparse.l" 01484 { BEGIN(INITIAL); cmdyylval.string = sstrdup(cmdyytext); return STR; } 01485 YY_BREAK 01486 case 8: 01487 /* rule 8 can match eol */ 01488 YY_RULE_SETUP 01489 #line 102 "src/cmdparse.l" 01490 { BEGIN(INITIAL); return ';'; } 01491 YY_BREAK 01492 case 9: 01493 YY_RULE_SETUP 01494 #line 103 "src/cmdparse.l" 01495 { yy_pop_state(); } 01496 YY_BREAK 01497 case 10: 01498 YY_RULE_SETUP 01499 #line 105 "src/cmdparse.l" 01500 { /* ignore whitespace */ ; } 01501 YY_BREAK 01502 case 11: 01503 YY_RULE_SETUP 01504 #line 106 "src/cmdparse.l" 01505 { printf("no startup id\n"); yy_pop_state(); return TOK_NO_STARTUP_ID; } 01506 YY_BREAK 01507 case 12: 01508 YY_RULE_SETUP 01509 #line 107 "src/cmdparse.l" 01510 { printf("anything else: *%s*\n", cmdyytext); yyless(0); yy_pop_state(); yy_pop_state(); } 01511 YY_BREAK 01512 case 13: 01513 YY_RULE_SETUP 01514 #line 108 "src/cmdparse.l" 01515 { WS_STRING; yy_push_state(EXEC); yy_push_state(EAT_WHITESPACE); return TOK_EXEC; } 01516 YY_BREAK 01517 case 14: 01518 YY_RULE_SETUP 01519 #line 109 "src/cmdparse.l" 01520 { return TOK_EXIT; } 01521 YY_BREAK 01522 case 15: 01523 YY_RULE_SETUP 01524 #line 110 "src/cmdparse.l" 01525 { return TOK_RELOAD; } 01526 YY_BREAK 01527 case 16: 01528 YY_RULE_SETUP 01529 #line 111 "src/cmdparse.l" 01530 { return TOK_RESTART; } 01531 YY_BREAK 01532 case 17: 01533 YY_RULE_SETUP 01534 #line 112 "src/cmdparse.l" 01535 { return TOK_KILL; } 01536 YY_BREAK 01537 case 18: 01538 YY_RULE_SETUP 01539 #line 113 "src/cmdparse.l" 01540 { return TOK_WINDOW; } 01541 YY_BREAK 01542 case 19: 01543 YY_RULE_SETUP 01544 #line 114 "src/cmdparse.l" 01545 { return TOK_CLIENT; } 01546 YY_BREAK 01547 case 20: 01548 YY_RULE_SETUP 01549 #line 115 "src/cmdparse.l" 01550 { return TOK_FULLSCREEN; } 01551 YY_BREAK 01552 case 21: 01553 YY_RULE_SETUP 01554 #line 116 "src/cmdparse.l" 01555 { return TOK_GLOBAL; } 01556 YY_BREAK 01557 case 22: 01558 YY_RULE_SETUP 01559 #line 117 "src/cmdparse.l" 01560 { return TOK_LAYOUT; } 01561 YY_BREAK 01562 case 23: 01563 YY_RULE_SETUP 01564 #line 118 "src/cmdparse.l" 01565 { return TOK_DEFAULT; } 01566 YY_BREAK 01567 case 24: 01568 YY_RULE_SETUP 01569 #line 119 "src/cmdparse.l" 01570 { return TOK_STACKED; } 01571 YY_BREAK 01572 case 25: 01573 YY_RULE_SETUP 01574 #line 120 "src/cmdparse.l" 01575 { return TOK_STACKED; } 01576 YY_BREAK 01577 case 26: 01578 YY_RULE_SETUP 01579 #line 121 "src/cmdparse.l" 01580 { return TOK_TABBED; } 01581 YY_BREAK 01582 case 27: 01583 YY_RULE_SETUP 01584 #line 122 "src/cmdparse.l" 01585 { return TOK_BORDER; } 01586 YY_BREAK 01587 case 28: 01588 YY_RULE_SETUP 01589 #line 123 "src/cmdparse.l" 01590 { return TOK_NORMAL; } 01591 YY_BREAK 01592 case 29: 01593 YY_RULE_SETUP 01594 #line 124 "src/cmdparse.l" 01595 { return TOK_NONE; } 01596 YY_BREAK 01597 case 30: 01598 YY_RULE_SETUP 01599 #line 125 "src/cmdparse.l" 01600 { return TOK_1PIXEL; } 01601 YY_BREAK 01602 case 31: 01603 YY_RULE_SETUP 01604 #line 126 "src/cmdparse.l" 01605 { BEGIN(WANT_QSTRING); return TOK_MODE; } 01606 YY_BREAK 01607 case 32: 01608 YY_RULE_SETUP 01609 #line 127 "src/cmdparse.l" 01610 { return TOK_TILING; } 01611 YY_BREAK 01612 case 33: 01613 YY_RULE_SETUP 01614 #line 128 "src/cmdparse.l" 01615 { return TOK_FLOATING; } 01616 YY_BREAK 01617 case 34: 01618 YY_RULE_SETUP 01619 #line 129 "src/cmdparse.l" 01620 { return TOK_TOGGLE; } 01621 YY_BREAK 01622 case 35: 01623 YY_RULE_SETUP 01624 #line 130 "src/cmdparse.l" 01625 { return TOK_MODE_TOGGLE; } 01626 YY_BREAK 01627 case 36: 01628 YY_RULE_SETUP 01629 #line 131 "src/cmdparse.l" 01630 { WS_STRING; return TOK_WORKSPACE; } 01631 YY_BREAK 01632 case 37: 01633 YY_RULE_SETUP 01634 #line 132 "src/cmdparse.l" 01635 { WS_STRING; return TOK_OUTPUT; } 01636 YY_BREAK 01637 case 38: 01638 YY_RULE_SETUP 01639 #line 133 "src/cmdparse.l" 01640 { return TOK_FOCUS; } 01641 YY_BREAK 01642 case 39: 01643 YY_RULE_SETUP 01644 #line 134 "src/cmdparse.l" 01645 { return TOK_MOVE; } 01646 YY_BREAK 01647 case 40: 01648 YY_RULE_SETUP 01649 #line 135 "src/cmdparse.l" 01650 { return TOK_OPEN; } 01651 YY_BREAK 01652 case 41: 01653 YY_RULE_SETUP 01654 #line 136 "src/cmdparse.l" 01655 { return TOK_SPLIT; } 01656 YY_BREAK 01657 case 42: 01658 YY_RULE_SETUP 01659 #line 137 "src/cmdparse.l" 01660 { return TOK_HORIZONTAL; } 01661 YY_BREAK 01662 case 43: 01663 YY_RULE_SETUP 01664 #line 138 "src/cmdparse.l" 01665 { return TOK_VERTICAL; } 01666 YY_BREAK 01667 case 44: 01668 YY_RULE_SETUP 01669 #line 139 "src/cmdparse.l" 01670 { return TOK_UP; } 01671 YY_BREAK 01672 case 45: 01673 YY_RULE_SETUP 01674 #line 140 "src/cmdparse.l" 01675 { return TOK_DOWN; } 01676 YY_BREAK 01677 case 46: 01678 YY_RULE_SETUP 01679 #line 141 "src/cmdparse.l" 01680 { return TOK_LEFT; } 01681 YY_BREAK 01682 case 47: 01683 YY_RULE_SETUP 01684 #line 142 "src/cmdparse.l" 01685 { return TOK_RIGHT; } 01686 YY_BREAK 01687 case 48: 01688 YY_RULE_SETUP 01689 #line 143 "src/cmdparse.l" 01690 { return TOK_PARENT; } 01691 YY_BREAK 01692 case 49: 01693 YY_RULE_SETUP 01694 #line 144 "src/cmdparse.l" 01695 { return TOK_CHILD; } 01696 YY_BREAK 01697 case 50: 01698 YY_RULE_SETUP 01699 #line 145 "src/cmdparse.l" 01700 { return TOK_RESIZE; } 01701 YY_BREAK 01702 case 51: 01703 YY_RULE_SETUP 01704 #line 146 "src/cmdparse.l" 01705 { return TOK_SHRINK; } 01706 YY_BREAK 01707 case 52: 01708 YY_RULE_SETUP 01709 #line 147 "src/cmdparse.l" 01710 { return TOK_GROW; } 01711 YY_BREAK 01712 case 53: 01713 YY_RULE_SETUP 01714 #line 148 "src/cmdparse.l" 01715 { return TOK_PX; } 01716 YY_BREAK 01717 case 54: 01718 YY_RULE_SETUP 01719 #line 149 "src/cmdparse.l" 01720 { return TOK_OR; } 01721 YY_BREAK 01722 case 55: 01723 YY_RULE_SETUP 01724 #line 150 "src/cmdparse.l" 01725 { return TOK_PPT; } 01726 YY_BREAK 01727 case 56: 01728 YY_RULE_SETUP 01729 #line 151 "src/cmdparse.l" 01730 { WS_STRING; return TOK_NOP; } 01731 YY_BREAK 01732 case 57: 01733 YY_RULE_SETUP 01734 #line 152 "src/cmdparse.l" 01735 { WS_STRING; return TOK_APPEND_LAYOUT; } 01736 YY_BREAK 01737 case 58: 01738 YY_RULE_SETUP 01739 #line 153 "src/cmdparse.l" 01740 { WS_STRING; return TOK_MARK; } 01741 YY_BREAK 01742 case 59: 01743 YY_RULE_SETUP 01744 #line 155 "src/cmdparse.l" 01745 { return TOK_ENABLE; } 01746 YY_BREAK 01747 case 60: 01748 YY_RULE_SETUP 01749 #line 156 "src/cmdparse.l" 01750 { return TOK_ENABLE; } 01751 YY_BREAK 01752 case 61: 01753 YY_RULE_SETUP 01754 #line 157 "src/cmdparse.l" 01755 { return TOK_ENABLE; } 01756 YY_BREAK 01757 case 62: 01758 YY_RULE_SETUP 01759 #line 158 "src/cmdparse.l" 01760 { return TOK_DISABLE; } 01761 YY_BREAK 01762 case 63: 01763 YY_RULE_SETUP 01764 #line 159 "src/cmdparse.l" 01765 { return TOK_DISABLE; } 01766 YY_BREAK 01767 case 64: 01768 YY_RULE_SETUP 01769 #line 160 "src/cmdparse.l" 01770 { return TOK_DISABLE; } 01771 YY_BREAK 01772 case 65: 01773 YY_RULE_SETUP 01774 #line 162 "src/cmdparse.l" 01775 { BEGIN(WANT_QSTRING); return TOK_CLASS; } 01776 YY_BREAK 01777 case 66: 01778 YY_RULE_SETUP 01779 #line 163 "src/cmdparse.l" 01780 { BEGIN(WANT_QSTRING); return TOK_INSTANCE; } 01781 YY_BREAK 01782 case 67: 01783 YY_RULE_SETUP 01784 #line 164 "src/cmdparse.l" 01785 { BEGIN(WANT_QSTRING); return TOK_WINDOW_ROLE; } 01786 YY_BREAK 01787 case 68: 01788 YY_RULE_SETUP 01789 #line 165 "src/cmdparse.l" 01790 { BEGIN(WANT_QSTRING); return TOK_ID; } 01791 YY_BREAK 01792 case 69: 01793 YY_RULE_SETUP 01794 #line 166 "src/cmdparse.l" 01795 { BEGIN(WANT_QSTRING); return TOK_CON_ID; } 01796 YY_BREAK 01797 case 70: 01798 YY_RULE_SETUP 01799 #line 167 "src/cmdparse.l" 01800 { BEGIN(WANT_QSTRING); return TOK_MARK; } 01801 YY_BREAK 01802 case 71: 01803 YY_RULE_SETUP 01804 #line 168 "src/cmdparse.l" 01805 { BEGIN(WANT_QSTRING); return TOK_TITLE; } 01806 YY_BREAK 01807 case 72: 01808 YY_RULE_SETUP 01809 #line 170 "src/cmdparse.l" 01810 { cmdyylval.number = atoi(cmdyytext); return NUMBER; } 01811 YY_BREAK 01812 case 73: 01813 YY_RULE_SETUP 01814 #line 172 "src/cmdparse.l" 01815 { return (int)cmdyytext[0]; } 01816 YY_BREAK 01817 case YY_STATE_EOF(INITIAL): 01818 case YY_STATE_EOF(WANT_STRING): 01819 case YY_STATE_EOF(EAT_WHITESPACE): 01820 case YY_STATE_EOF(WANT_QSTRING): 01821 case YY_STATE_EOF(EXEC): 01822 case YY_STATE_EOF(BUFFER_LINE): 01823 #line 174 "src/cmdparse.l" 01824 { 01825 while (yy_start_stack_ptr > 0) 01826 yy_pop_state(); 01827 yyterminate(); 01828 } 01829 YY_BREAK 01830 case 74: 01831 YY_RULE_SETUP 01832 #line 180 "src/cmdparse.l" 01833 ECHO; 01834 YY_BREAK 01835 #line 1836 "src/cmdparse.yy.c" 01836 01837 case YY_END_OF_BUFFER: 01838 { 01839 /* Amount of text matched not including the EOB char. */ 01840 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 01841 01842 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 01843 *yy_cp = (yy_hold_char); 01844 YY_RESTORE_YY_MORE_OFFSET 01845 01846 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 01847 { 01848 /* We're scanning a new file or input source. It's 01849 * possible that this happened because the user 01850 * just pointed cmdyyin at a new source and called 01851 * cmdyylex(). If so, then we have to assure 01852 * consistency between YY_CURRENT_BUFFER and our 01853 * globals. Here is the right place to do so, because 01854 * this is the first action (other than possibly a 01855 * back-up) that will match for the new input source. 01856 */ 01857 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 01858 YY_CURRENT_BUFFER_LVALUE->yy_input_file = cmdyyin; 01859 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 01860 } 01861 01862 /* Note that here we test for yy_c_buf_p "<=" to the position 01863 * of the first EOB in the buffer, since yy_c_buf_p will 01864 * already have been incremented past the NUL character 01865 * (since all states make transitions on EOB to the 01866 * end-of-buffer state). Contrast this with the test 01867 * in input(). 01868 */ 01869 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 01870 { /* This was really a NUL. */ 01871 yy_state_type yy_next_state; 01872 01873 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 01874 01875 yy_current_state = yy_get_previous_state( ); 01876 01877 /* Okay, we're now positioned to make the NUL 01878 * transition. We couldn't have 01879 * yy_get_previous_state() go ahead and do it 01880 * for us because it doesn't know how to deal 01881 * with the possibility of jamming (and we don't 01882 * want to build jamming into it because then it 01883 * will run more slowly). 01884 */ 01885 01886 yy_next_state = yy_try_NUL_trans( yy_current_state ); 01887 01888 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 01889 01890 if ( yy_next_state ) 01891 { 01892 /* Consume the NUL. */ 01893 yy_cp = ++(yy_c_buf_p); 01894 yy_current_state = yy_next_state; 01895 goto yy_match; 01896 } 01897 01898 else 01899 { 01900 yy_cp = (yy_c_buf_p); 01901 goto yy_find_action; 01902 } 01903 } 01904 01905 else switch ( yy_get_next_buffer( ) ) 01906 { 01907 case EOB_ACT_END_OF_FILE: 01908 { 01909 (yy_did_buffer_switch_on_eof) = 0; 01910 01911 if ( cmdyywrap( ) ) 01912 { 01913 /* Note: because we've taken care in 01914 * yy_get_next_buffer() to have set up 01915 * cmdyytext, we can now set up 01916 * yy_c_buf_p so that if some total 01917 * hoser (like flex itself) wants to 01918 * call the scanner after we return the 01919 * YY_NULL, it'll still work - another 01920 * YY_NULL will get returned. 01921 */ 01922 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 01923 01924 yy_act = YY_STATE_EOF(YY_START); 01925 goto do_action; 01926 } 01927 01928 else 01929 { 01930 if ( ! (yy_did_buffer_switch_on_eof) ) 01931 YY_NEW_FILE; 01932 } 01933 break; 01934 } 01935 01936 case EOB_ACT_CONTINUE_SCAN: 01937 (yy_c_buf_p) = 01938 (yytext_ptr) + yy_amount_of_matched_text; 01939 01940 yy_current_state = yy_get_previous_state( ); 01941 01942 yy_cp = (yy_c_buf_p); 01943 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 01944 goto yy_match; 01945 01946 case EOB_ACT_LAST_MATCH: 01947 (yy_c_buf_p) = 01948 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 01949 01950 yy_current_state = yy_get_previous_state( ); 01951 01952 yy_cp = (yy_c_buf_p); 01953 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 01954 goto yy_find_action; 01955 } 01956 break; 01957 } 01958 01959 default: 01960 YY_FATAL_ERROR( 01961 "fatal flex scanner internal error--no action found" ); 01962 } /* end of action switch */ 01963 } /* end of scanning one token */ 01964 } /* end of cmdyylex */ 01965 01966 /* yy_get_next_buffer - try to read in a new buffer 01967 * 01968 * Returns a code representing an action: 01969 * EOB_ACT_LAST_MATCH - 01970 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 01971 * EOB_ACT_END_OF_FILE - end of file 01972 */ 01973 static int yy_get_next_buffer (void) 01974 { 01975 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 01976 register char *source = (yytext_ptr); 01977 register int number_to_move, i; 01978 int ret_val; 01979 01980 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 01981 YY_FATAL_ERROR( 01982 "fatal flex scanner internal error--end of buffer missed" ); 01983 01984 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 01985 { /* Don't try to fill the buffer, so this is an EOF. */ 01986 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 01987 { 01988 /* We matched a single character, the EOB, so 01989 * treat this as a final EOF. 01990 */ 01991 return EOB_ACT_END_OF_FILE; 01992 } 01993 01994 else 01995 { 01996 /* We matched some text prior to the EOB, first 01997 * process it. 01998 */ 01999 return EOB_ACT_LAST_MATCH; 02000 } 02001 } 02002 02003 /* Try to read more data. */ 02004 02005 /* First move last chars to start of buffer. */ 02006 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; 02007 02008 for ( i = 0; i < number_to_move; ++i ) 02009 *(dest++) = *(source++); 02010 02011 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 02012 /* don't do the read, it's not guaranteed to return an EOF, 02013 * just force an EOF 02014 */ 02015 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 02016 02017 else 02018 { 02019 int num_to_read = 02020 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 02021 02022 while ( num_to_read <= 0 ) 02023 { /* Not enough room in the buffer - grow it. */ 02024 02025 YY_FATAL_ERROR( 02026 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 02027 02028 } 02029 02030 if ( num_to_read > YY_READ_BUF_SIZE ) 02031 num_to_read = YY_READ_BUF_SIZE; 02032 02033 /* Read in more data. */ 02034 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 02035 (yy_n_chars), (size_t) num_to_read ); 02036 02037 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 02038 } 02039 02040 if ( (yy_n_chars) == 0 ) 02041 { 02042 if ( number_to_move == YY_MORE_ADJ ) 02043 { 02044 ret_val = EOB_ACT_END_OF_FILE; 02045 cmdyyrestart(cmdyyin ); 02046 } 02047 02048 else 02049 { 02050 ret_val = EOB_ACT_LAST_MATCH; 02051 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 02052 YY_BUFFER_EOF_PENDING; 02053 } 02054 } 02055 02056 else 02057 ret_val = EOB_ACT_CONTINUE_SCAN; 02058 02059 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 02060 /* Extend the array by 50%, plus the number we really need. */ 02061 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); 02062 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cmdyyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); 02063 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 02064 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 02065 } 02066 02067 (yy_n_chars) += number_to_move; 02068 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 02069 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 02070 02071 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 02072 02073 return ret_val; 02074 } 02075 02076 /* yy_get_previous_state - get the state just before the EOB char was reached */ 02077 02078 static yy_state_type yy_get_previous_state (void) 02079 { 02080 register yy_state_type yy_current_state; 02081 register char *yy_cp; 02082 02083 yy_current_state = (yy_start); 02084 yy_current_state += YY_AT_BOL(); 02085 02086 (yy_state_ptr) = (yy_state_buf); 02087 *(yy_state_ptr)++ = yy_current_state; 02088 02089 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 02090 { 02091 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 02092 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 02093 { 02094 yy_current_state = (int) yy_def[yy_current_state]; 02095 if ( yy_current_state >= 649 ) 02096 yy_c = yy_meta[(unsigned int) yy_c]; 02097 } 02098 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 02099 *(yy_state_ptr)++ = yy_current_state; 02100 } 02101 02102 return yy_current_state; 02103 } 02104 02105 /* yy_try_NUL_trans - try to make a transition on the NUL character 02106 * 02107 * synopsis 02108 * next_state = yy_try_NUL_trans( current_state ); 02109 */ 02110 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 02111 { 02112 register int yy_is_jam; 02113 02114 register YY_CHAR yy_c = 1; 02115 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 02116 { 02117 yy_current_state = (int) yy_def[yy_current_state]; 02118 if ( yy_current_state >= 649 ) 02119 yy_c = yy_meta[(unsigned int) yy_c]; 02120 } 02121 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 02122 yy_is_jam = (yy_current_state == 648); 02123 if ( ! yy_is_jam ) 02124 *(yy_state_ptr)++ = yy_current_state; 02125 02126 return yy_is_jam ? 0 : yy_current_state; 02127 } 02128 02129 #ifndef YY_NO_INPUT 02130 #ifdef __cplusplus 02131 static int yyinput (void) 02132 #else 02133 static int input (void) 02134 #endif 02135 02136 { 02137 int c; 02138 02139 *(yy_c_buf_p) = (yy_hold_char); 02140 02141 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 02142 { 02143 /* yy_c_buf_p now points to the character we want to return. 02144 * If this occurs *before* the EOB characters, then it's a 02145 * valid NUL; if not, then we've hit the end of the buffer. 02146 */ 02147 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 02148 /* This was really a NUL. */ 02149 *(yy_c_buf_p) = '\0'; 02150 02151 else 02152 { /* need more input */ 02153 int offset = (yy_c_buf_p) - (yytext_ptr); 02154 ++(yy_c_buf_p); 02155 02156 switch ( yy_get_next_buffer( ) ) 02157 { 02158 case EOB_ACT_LAST_MATCH: 02159 /* This happens because yy_g_n_b() 02160 * sees that we've accumulated a 02161 * token and flags that we need to 02162 * try matching the token before 02163 * proceeding. But for input(), 02164 * there's no matching to consider. 02165 * So convert the EOB_ACT_LAST_MATCH 02166 * to EOB_ACT_END_OF_FILE. 02167 */ 02168 02169 /* Reset buffer status. */ 02170 cmdyyrestart(cmdyyin ); 02171 02172 /*FALLTHROUGH*/ 02173 02174 case EOB_ACT_END_OF_FILE: 02175 { 02176 if ( cmdyywrap( ) ) 02177 return EOF; 02178 02179 if ( ! (yy_did_buffer_switch_on_eof) ) 02180 YY_NEW_FILE; 02181 #ifdef __cplusplus 02182 return yyinput(); 02183 #else 02184 return input(); 02185 #endif 02186 } 02187 02188 case EOB_ACT_CONTINUE_SCAN: 02189 (yy_c_buf_p) = (yytext_ptr) + offset; 02190 break; 02191 } 02192 } 02193 } 02194 02195 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 02196 *(yy_c_buf_p) = '\0'; /* preserve cmdyytext */ 02197 (yy_hold_char) = *++(yy_c_buf_p); 02198 02199 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); 02200 02201 return c; 02202 } 02203 #endif /* ifndef YY_NO_INPUT */ 02204 02210 void cmdyyrestart (FILE * input_file ) 02211 { 02212 02213 if ( ! YY_CURRENT_BUFFER ){ 02214 cmdyyensure_buffer_stack (); 02215 YY_CURRENT_BUFFER_LVALUE = 02216 cmdyy_create_buffer(cmdyyin,YY_BUF_SIZE ); 02217 } 02218 02219 cmdyy_init_buffer(YY_CURRENT_BUFFER,input_file ); 02220 cmdyy_load_buffer_state( ); 02221 } 02222 02227 void cmdyy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 02228 { 02229 02230 /* TODO. We should be able to replace this entire function body 02231 * with 02232 * cmdyypop_buffer_state(); 02233 * cmdyypush_buffer_state(new_buffer); 02234 */ 02235 cmdyyensure_buffer_stack (); 02236 if ( YY_CURRENT_BUFFER == new_buffer ) 02237 return; 02238 02239 if ( YY_CURRENT_BUFFER ) 02240 { 02241 /* Flush out information for old buffer. */ 02242 *(yy_c_buf_p) = (yy_hold_char); 02243 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 02244 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 02245 } 02246 02247 YY_CURRENT_BUFFER_LVALUE = new_buffer; 02248 cmdyy_load_buffer_state( ); 02249 02250 /* We don't actually know whether we did this switch during 02251 * EOF (cmdyywrap()) processing, but the only time this flag 02252 * is looked at is after cmdyywrap() is called, so it's safe 02253 * to go ahead and always set it. 02254 */ 02255 (yy_did_buffer_switch_on_eof) = 1; 02256 } 02257 02258 static void cmdyy_load_buffer_state (void) 02259 { 02260 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 02261 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 02262 cmdyyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 02263 (yy_hold_char) = *(yy_c_buf_p); 02264 } 02265 02272 YY_BUFFER_STATE cmdyy_create_buffer (FILE * file, int size ) 02273 { 02274 YY_BUFFER_STATE b; 02275 02276 b = (YY_BUFFER_STATE) cmdyyalloc(sizeof( struct yy_buffer_state ) ); 02277 if ( ! b ) 02278 YY_FATAL_ERROR( "out of dynamic memory in cmdyy_create_buffer()" ); 02279 02280 b->yy_buf_size = size; 02281 02282 /* yy_ch_buf has to be 2 characters longer than the size given because 02283 * we need to put in 2 end-of-buffer characters. 02284 */ 02285 b->yy_ch_buf = (char *) cmdyyalloc(b->yy_buf_size + 2 ); 02286 if ( ! b->yy_ch_buf ) 02287 YY_FATAL_ERROR( "out of dynamic memory in cmdyy_create_buffer()" ); 02288 02289 b->yy_is_our_buffer = 1; 02290 02291 cmdyy_init_buffer(b,file ); 02292 02293 return b; 02294 } 02295 02300 void cmdyy_delete_buffer (YY_BUFFER_STATE b ) 02301 { 02302 02303 if ( ! b ) 02304 return; 02305 02306 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 02307 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 02308 02309 if ( b->yy_is_our_buffer ) 02310 cmdyyfree((void *) b->yy_ch_buf ); 02311 02312 cmdyyfree((void *) b ); 02313 } 02314 02315 #ifndef __cplusplus 02316 extern int isatty (int ); 02317 #endif /* __cplusplus */ 02318 02319 /* Initializes or reinitializes a buffer. 02320 * This function is sometimes called more than once on the same buffer, 02321 * such as during a cmdyyrestart() or at EOF. 02322 */ 02323 static void cmdyy_init_buffer (YY_BUFFER_STATE b, FILE * file ) 02324 02325 { 02326 int oerrno = errno; 02327 02328 cmdyy_flush_buffer(b ); 02329 02330 b->yy_input_file = file; 02331 b->yy_fill_buffer = 1; 02332 02333 /* If b is the current buffer, then cmdyy_init_buffer was _probably_ 02334 * called from cmdyyrestart() or through yy_get_next_buffer. 02335 * In that case, we don't want to reset the lineno or column. 02336 */ 02337 if (b != YY_CURRENT_BUFFER){ 02338 b->yy_bs_lineno = 1; 02339 b->yy_bs_column = 0; 02340 } 02341 02342 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 02343 02344 errno = oerrno; 02345 } 02346 02351 void cmdyy_flush_buffer (YY_BUFFER_STATE b ) 02352 { 02353 if ( ! b ) 02354 return; 02355 02356 b->yy_n_chars = 0; 02357 02358 /* We always need two end-of-buffer characters. The first causes 02359 * a transition to the end-of-buffer state. The second causes 02360 * a jam in that state. 02361 */ 02362 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 02363 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 02364 02365 b->yy_buf_pos = &b->yy_ch_buf[0]; 02366 02367 b->yy_at_bol = 1; 02368 b->yy_buffer_status = YY_BUFFER_NEW; 02369 02370 if ( b == YY_CURRENT_BUFFER ) 02371 cmdyy_load_buffer_state( ); 02372 } 02373 02380 void cmdyypush_buffer_state (YY_BUFFER_STATE new_buffer ) 02381 { 02382 if (new_buffer == NULL) 02383 return; 02384 02385 cmdyyensure_buffer_stack(); 02386 02387 /* This block is copied from cmdyy_switch_to_buffer. */ 02388 if ( YY_CURRENT_BUFFER ) 02389 { 02390 /* Flush out information for old buffer. */ 02391 *(yy_c_buf_p) = (yy_hold_char); 02392 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 02393 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 02394 } 02395 02396 /* Only push if top exists. Otherwise, replace top. */ 02397 if (YY_CURRENT_BUFFER) 02398 (yy_buffer_stack_top)++; 02399 YY_CURRENT_BUFFER_LVALUE = new_buffer; 02400 02401 /* copied from cmdyy_switch_to_buffer. */ 02402 cmdyy_load_buffer_state( ); 02403 (yy_did_buffer_switch_on_eof) = 1; 02404 } 02405 02410 void cmdyypop_buffer_state (void) 02411 { 02412 if (!YY_CURRENT_BUFFER) 02413 return; 02414 02415 cmdyy_delete_buffer(YY_CURRENT_BUFFER ); 02416 YY_CURRENT_BUFFER_LVALUE = NULL; 02417 if ((yy_buffer_stack_top) > 0) 02418 --(yy_buffer_stack_top); 02419 02420 if (YY_CURRENT_BUFFER) { 02421 cmdyy_load_buffer_state( ); 02422 (yy_did_buffer_switch_on_eof) = 1; 02423 } 02424 } 02425 02426 /* Allocates the stack if it does not exist. 02427 * Guarantees space for at least one push. 02428 */ 02429 static void cmdyyensure_buffer_stack (void) 02430 { 02431 int num_to_alloc; 02432 02433 if (!(yy_buffer_stack)) { 02434 02435 /* First allocation is just for 2 elements, since we don't know if this 02436 * scanner will even need a stack. We use 2 instead of 1 to avoid an 02437 * immediate realloc on the next call. 02438 */ 02439 num_to_alloc = 1; 02440 (yy_buffer_stack) = (struct yy_buffer_state**)cmdyyalloc 02441 (num_to_alloc * sizeof(struct yy_buffer_state*) 02442 ); 02443 if ( ! (yy_buffer_stack) ) 02444 YY_FATAL_ERROR( "out of dynamic memory in cmdyyensure_buffer_stack()" ); 02445 02446 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 02447 02448 (yy_buffer_stack_max) = num_to_alloc; 02449 (yy_buffer_stack_top) = 0; 02450 return; 02451 } 02452 02453 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 02454 02455 /* Increase the buffer to prepare for a possible push. */ 02456 int grow_size = 8 /* arbitrary grow size */; 02457 02458 num_to_alloc = (yy_buffer_stack_max) + grow_size; 02459 (yy_buffer_stack) = (struct yy_buffer_state**)cmdyyrealloc 02460 ((yy_buffer_stack), 02461 num_to_alloc * sizeof(struct yy_buffer_state*) 02462 ); 02463 if ( ! (yy_buffer_stack) ) 02464 YY_FATAL_ERROR( "out of dynamic memory in cmdyyensure_buffer_stack()" ); 02465 02466 /* zero only the new slots.*/ 02467 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 02468 (yy_buffer_stack_max) = num_to_alloc; 02469 } 02470 } 02471 02478 YY_BUFFER_STATE cmdyy_scan_buffer (char * base, yy_size_t size ) 02479 { 02480 YY_BUFFER_STATE b; 02481 02482 if ( size < 2 || 02483 base[size-2] != YY_END_OF_BUFFER_CHAR || 02484 base[size-1] != YY_END_OF_BUFFER_CHAR ) 02485 /* They forgot to leave room for the EOB's. */ 02486 return 0; 02487 02488 b = (YY_BUFFER_STATE) cmdyyalloc(sizeof( struct yy_buffer_state ) ); 02489 if ( ! b ) 02490 YY_FATAL_ERROR( "out of dynamic memory in cmdyy_scan_buffer()" ); 02491 02492 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 02493 b->yy_buf_pos = b->yy_ch_buf = base; 02494 b->yy_is_our_buffer = 0; 02495 b->yy_input_file = 0; 02496 b->yy_n_chars = b->yy_buf_size; 02497 b->yy_is_interactive = 0; 02498 b->yy_at_bol = 1; 02499 b->yy_fill_buffer = 0; 02500 b->yy_buffer_status = YY_BUFFER_NEW; 02501 02502 cmdyy_switch_to_buffer(b ); 02503 02504 return b; 02505 } 02506 02515 YY_BUFFER_STATE cmdyy_scan_string (yyconst char * yystr ) 02516 { 02517 02518 return cmdyy_scan_bytes(yystr,strlen(yystr) ); 02519 } 02520 02528 YY_BUFFER_STATE cmdyy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) 02529 { 02530 YY_BUFFER_STATE b; 02531 char *buf; 02532 yy_size_t n; 02533 int i; 02534 02535 /* Get memory for full buffer, including space for trailing EOB's. */ 02536 n = _yybytes_len + 2; 02537 buf = (char *) cmdyyalloc(n ); 02538 if ( ! buf ) 02539 YY_FATAL_ERROR( "out of dynamic memory in cmdyy_scan_bytes()" ); 02540 02541 for ( i = 0; i < _yybytes_len; ++i ) 02542 buf[i] = yybytes[i]; 02543 02544 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 02545 02546 b = cmdyy_scan_buffer(buf,n ); 02547 if ( ! b ) 02548 YY_FATAL_ERROR( "bad buffer in cmdyy_scan_bytes()" ); 02549 02550 /* It's okay to grow etc. this buffer, and we should throw it 02551 * away when we're done. 02552 */ 02553 b->yy_is_our_buffer = 1; 02554 02555 return b; 02556 } 02557 02558 static void yy_push_state (int new_state ) 02559 { 02560 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) 02561 { 02562 yy_size_t new_size; 02563 02564 (yy_start_stack_depth) += YY_START_STACK_INCR; 02565 new_size = (yy_start_stack_depth) * sizeof( int ); 02566 02567 if ( ! (yy_start_stack) ) 02568 (yy_start_stack) = (int *) cmdyyalloc(new_size ); 02569 02570 else 02571 (yy_start_stack) = (int *) cmdyyrealloc((void *) (yy_start_stack),new_size ); 02572 02573 if ( ! (yy_start_stack) ) 02574 YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); 02575 } 02576 02577 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; 02578 02579 BEGIN(new_state); 02580 } 02581 02582 static void yy_pop_state (void) 02583 { 02584 if ( --(yy_start_stack_ptr) < 0 ) 02585 YY_FATAL_ERROR( "start-condition stack underflow" ); 02586 02587 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); 02588 } 02589 02590 #ifndef YY_EXIT_FAILURE 02591 #define YY_EXIT_FAILURE 2 02592 #endif 02593 02594 static void yy_fatal_error (yyconst char* msg ) 02595 { 02596 (void) fprintf( stderr, "%s\n", msg ); 02597 exit( YY_EXIT_FAILURE ); 02598 } 02599 02600 /* Redefine yyless() so it works in section 3 code. */ 02601 02602 #undef yyless 02603 #define yyless(n) \ 02604 do \ 02605 { \ 02606 /* Undo effects of setting up cmdyytext. */ \ 02607 int yyless_macro_arg = (n); \ 02608 YY_LESS_LINENO(yyless_macro_arg);\ 02609 cmdyytext[cmdyyleng] = (yy_hold_char); \ 02610 (yy_c_buf_p) = cmdyytext + yyless_macro_arg; \ 02611 (yy_hold_char) = *(yy_c_buf_p); \ 02612 *(yy_c_buf_p) = '\0'; \ 02613 cmdyyleng = yyless_macro_arg; \ 02614 } \ 02615 while ( 0 ) 02616 02617 /* Accessor methods (get/set functions) to struct members. */ 02618 02622 int cmdyyget_lineno (void) 02623 { 02624 02625 return cmdyylineno; 02626 } 02627 02631 FILE *cmdyyget_in (void) 02632 { 02633 return cmdyyin; 02634 } 02635 02639 FILE *cmdyyget_out (void) 02640 { 02641 return cmdyyout; 02642 } 02643 02647 int cmdyyget_leng (void) 02648 { 02649 return cmdyyleng; 02650 } 02651 02656 char *cmdyyget_text (void) 02657 { 02658 return cmdyytext; 02659 } 02660 02665 void cmdyyset_lineno (int line_number ) 02666 { 02667 02668 cmdyylineno = line_number; 02669 } 02670 02677 void cmdyyset_in (FILE * in_str ) 02678 { 02679 cmdyyin = in_str ; 02680 } 02681 02682 void cmdyyset_out (FILE * out_str ) 02683 { 02684 cmdyyout = out_str ; 02685 } 02686 02687 int cmdyyget_debug (void) 02688 { 02689 return cmdyy_flex_debug; 02690 } 02691 02692 void cmdyyset_debug (int bdebug ) 02693 { 02694 cmdyy_flex_debug = bdebug ; 02695 } 02696 02697 static int yy_init_globals (void) 02698 { 02699 /* Initialization is the same as for the non-reentrant scanner. 02700 * This function is called from cmdyylex_destroy(), so don't allocate here. 02701 */ 02702 02703 (yy_buffer_stack) = 0; 02704 (yy_buffer_stack_top) = 0; 02705 (yy_buffer_stack_max) = 0; 02706 (yy_c_buf_p) = (char *) 0; 02707 (yy_init) = 0; 02708 (yy_start) = 0; 02709 02710 (yy_start_stack_ptr) = 0; 02711 (yy_start_stack_depth) = 0; 02712 (yy_start_stack) = NULL; 02713 02714 (yy_state_buf) = 0; 02715 (yy_state_ptr) = 0; 02716 (yy_full_match) = 0; 02717 (yy_lp) = 0; 02718 02719 /* Defined in main.c */ 02720 #ifdef YY_STDINIT 02721 cmdyyin = stdin; 02722 cmdyyout = stdout; 02723 #else 02724 cmdyyin = (FILE *) 0; 02725 cmdyyout = (FILE *) 0; 02726 #endif 02727 02728 /* For future reference: Set errno on error, since we are called by 02729 * cmdyylex_init() 02730 */ 02731 return 0; 02732 } 02733 02734 /* cmdyylex_destroy is for both reentrant and non-reentrant scanners. */ 02735 int cmdyylex_destroy (void) 02736 { 02737 02738 /* Pop the buffer stack, destroying each element. */ 02739 while(YY_CURRENT_BUFFER){ 02740 cmdyy_delete_buffer(YY_CURRENT_BUFFER ); 02741 YY_CURRENT_BUFFER_LVALUE = NULL; 02742 cmdyypop_buffer_state(); 02743 } 02744 02745 /* Destroy the stack itself. */ 02746 cmdyyfree((yy_buffer_stack) ); 02747 (yy_buffer_stack) = NULL; 02748 02749 /* Destroy the start condition stack. */ 02750 cmdyyfree((yy_start_stack) ); 02751 (yy_start_stack) = NULL; 02752 02753 cmdyyfree ( (yy_state_buf) ); 02754 (yy_state_buf) = NULL; 02755 02756 /* Reset the globals. This is important in a non-reentrant scanner so the next time 02757 * cmdyylex() is called, initialization will occur. */ 02758 yy_init_globals( ); 02759 02760 return 0; 02761 } 02762 02763 /* 02764 * Internal utility routines. 02765 */ 02766 02767 #ifndef yytext_ptr 02768 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) 02769 { 02770 register int i; 02771 for ( i = 0; i < n; ++i ) 02772 s1[i] = s2[i]; 02773 } 02774 #endif 02775 02776 #ifdef YY_NEED_STRLEN 02777 static int yy_flex_strlen (yyconst char * s ) 02778 { 02779 register int n; 02780 for ( n = 0; s[n]; ++n ) 02781 ; 02782 02783 return n; 02784 } 02785 #endif 02786 02787 void *cmdyyalloc (yy_size_t size ) 02788 { 02789 return (void *) malloc( size ); 02790 } 02791 02792 void *cmdyyrealloc (void * ptr, yy_size_t size ) 02793 { 02794 /* The cast to (char *) in the following accommodates both 02795 * implementations that use char* generic pointers, and those 02796 * that use void* generic pointers. It works with the latter 02797 * because both ANSI C and C++ allow castless assignment from 02798 * any pointer type to void*, and deal with argument conversions 02799 * as though doing an assignment. 02800 */ 02801 return (void *) realloc( (char *) ptr, size ); 02802 } 02803 02804 void cmdyyfree (void * ptr ) 02805 { 02806 free( (char *) ptr ); /* see cmdyyrealloc() for (char *) cast */ 02807 } 02808 02809 #define YYTABLES_NAME "yytables" 02810 02811 #line 180 "src/cmdparse.l" 02812 02813 02814