github.com/xzntrc/go-enry/v2@v2.0.0-20230215091818-766cc1d65498/internal/tokenizer/flex/lex.linguist_yy.c (about) 1 2 #line 3 "lex.linguist_yy.c" 3 4 #define YY_INT_ALIGNED short int 5 6 /* A lexical scanner generated by flex */ 7 8 #define FLEX_SCANNER 9 #define YY_FLEX_MAJOR_VERSION 2 10 #define YY_FLEX_MINOR_VERSION 5 11 #define YY_FLEX_SUBMINOR_VERSION 35 12 #if YY_FLEX_SUBMINOR_VERSION > 0 13 #define FLEX_BETA 14 #endif 15 16 /* First, we deal with platform-specific or compiler-specific issues. */ 17 18 /* begin standard C headers. */ 19 #include <stdio.h> 20 #include <string.h> 21 #include <errno.h> 22 #include <stdlib.h> 23 24 /* end standard C headers. */ 25 26 /* flex integer type definitions */ 27 28 #ifndef FLEXINT_H 29 #define FLEXINT_H 30 31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 32 33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 34 35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 36 * if you want the limit (max/min) macros for int types. 37 */ 38 #ifndef __STDC_LIMIT_MACROS 39 #define __STDC_LIMIT_MACROS 1 40 #endif 41 42 #include <inttypes.h> 43 typedef int8_t flex_int8_t; 44 typedef uint8_t flex_uint8_t; 45 typedef int16_t flex_int16_t; 46 typedef uint16_t flex_uint16_t; 47 typedef int32_t flex_int32_t; 48 typedef uint32_t flex_uint32_t; 49 typedef uint64_t flex_uint64_t; 50 #else 51 typedef signed char flex_int8_t; 52 typedef short int flex_int16_t; 53 typedef int flex_int32_t; 54 typedef unsigned char flex_uint8_t; 55 typedef unsigned short int flex_uint16_t; 56 typedef unsigned int flex_uint32_t; 57 #endif /* ! C99 */ 58 59 /* Limits of integral types. */ 60 #ifndef INT8_MIN 61 #define INT8_MIN (-128) 62 #endif 63 #ifndef INT16_MIN 64 #define INT16_MIN (-32767-1) 65 #endif 66 #ifndef INT32_MIN 67 #define INT32_MIN (-2147483647-1) 68 #endif 69 #ifndef INT8_MAX 70 #define INT8_MAX (127) 71 #endif 72 #ifndef INT16_MAX 73 #define INT16_MAX (32767) 74 #endif 75 #ifndef INT32_MAX 76 #define INT32_MAX (2147483647) 77 #endif 78 #ifndef UINT8_MAX 79 #define UINT8_MAX (255U) 80 #endif 81 #ifndef UINT16_MAX 82 #define UINT16_MAX (65535U) 83 #endif 84 #ifndef UINT32_MAX 85 #define UINT32_MAX (4294967295U) 86 #endif 87 88 #endif /* ! FLEXINT_H */ 89 90 #ifdef __cplusplus 91 92 /* The "const" storage-class-modifier is valid. */ 93 #define YY_USE_CONST 94 95 #else /* ! __cplusplus */ 96 97 /* C99 requires __STDC__ to be defined as 1. */ 98 #if defined (__STDC__) 99 100 #define YY_USE_CONST 101 102 #endif /* defined (__STDC__) */ 103 #endif /* ! __cplusplus */ 104 105 #ifdef YY_USE_CONST 106 #define yyconst const 107 #else 108 #define yyconst 109 #endif 110 111 /* Returned upon end-of-file. */ 112 #define YY_NULL 0 113 114 /* Promotes a possibly negative, possibly signed char to an unsigned 115 * integer for use as an array index. If the signed char is negative, 116 * we want to instead treat it as an 8-bit unsigned char, hence the 117 * double cast. 118 */ 119 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 120 121 /* An opaque pointer. */ 122 #ifndef YY_TYPEDEF_YY_SCANNER_T 123 #define YY_TYPEDEF_YY_SCANNER_T 124 typedef void* yyscan_t; 125 #endif 126 127 /* For convenience, these vars (plus the bison vars far below) 128 are macros in the reentrant scanner. */ 129 #define yyin yyg->yyin_r 130 #define yyout yyg->yyout_r 131 #define yyextra yyg->yyextra_r 132 #define yyleng yyg->yyleng_r 133 #define yytext yyg->yytext_r 134 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) 135 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) 136 #define yy_flex_debug yyg->yy_flex_debug_r 137 138 /* Enter a start condition. This macro really ought to take a parameter, 139 * but we do it the disgusting crufty way forced on us by the ()-less 140 * definition of BEGIN. 141 */ 142 #define BEGIN yyg->yy_start = 1 + 2 * 143 144 /* Translate the current start state into a value that can be later handed 145 * to BEGIN to return to the state. The YYSTATE alias is for lex 146 * compatibility. 147 */ 148 #define YY_START ((yyg->yy_start - 1) / 2) 149 #define YYSTATE YY_START 150 151 /* Action number for EOF rule of a given start state. */ 152 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 153 154 /* Special action meaning "start processing a new file". */ 155 #define YY_NEW_FILE linguist_yyrestart(yyin ,yyscanner ) 156 157 #define YY_END_OF_BUFFER_CHAR 0 158 159 /* Size of default input buffer. */ 160 #ifndef YY_BUF_SIZE 161 #define YY_BUF_SIZE 16384 162 #endif 163 164 /* The state buf must be large enough to hold one state per character in the main buffer. 165 */ 166 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 167 168 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 169 #define YY_TYPEDEF_YY_BUFFER_STATE 170 typedef struct yy_buffer_state *YY_BUFFER_STATE; 171 #endif 172 173 #ifndef YY_TYPEDEF_YY_SIZE_T 174 #define YY_TYPEDEF_YY_SIZE_T 175 typedef size_t yy_size_t; 176 #endif 177 178 #define EOB_ACT_CONTINUE_SCAN 0 179 #define EOB_ACT_END_OF_FILE 1 180 #define EOB_ACT_LAST_MATCH 2 181 182 #define YY_LESS_LINENO(n) 183 184 /* Return all but the first "n" matched characters back to the input stream. */ 185 #define yyless(n) \ 186 do \ 187 { \ 188 /* Undo effects of setting up yytext. */ \ 189 int yyless_macro_arg = (n); \ 190 YY_LESS_LINENO(yyless_macro_arg);\ 191 *yy_cp = yyg->yy_hold_char; \ 192 YY_RESTORE_YY_MORE_OFFSET \ 193 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 194 YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 195 } \ 196 while ( 0 ) 197 198 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) 199 200 #ifndef YY_STRUCT_YY_BUFFER_STATE 201 #define YY_STRUCT_YY_BUFFER_STATE 202 struct yy_buffer_state 203 { 204 FILE *yy_input_file; 205 206 char *yy_ch_buf; /* input buffer */ 207 char *yy_buf_pos; /* current position in input buffer */ 208 209 /* Size of input buffer in bytes, not including room for EOB 210 * characters. 211 */ 212 yy_size_t yy_buf_size; 213 214 /* Number of characters read into yy_ch_buf, not including EOB 215 * characters. 216 */ 217 yy_size_t yy_n_chars; 218 219 /* Whether we "own" the buffer - i.e., we know we created it, 220 * and can realloc() it to grow it, and should free() it to 221 * delete it. 222 */ 223 int yy_is_our_buffer; 224 225 /* Whether this is an "interactive" input source; if so, and 226 * if we're using stdio for input, then we want to use getc() 227 * instead of fread(), to make sure we stop fetching input after 228 * each newline. 229 */ 230 int yy_is_interactive; 231 232 /* Whether we're considered to be at the beginning of a line. 233 * If so, '^' rules will be active on the next match, otherwise 234 * not. 235 */ 236 int yy_at_bol; 237 238 int yy_bs_lineno; /**< The line count. */ 239 int yy_bs_column; /**< The column count. */ 240 241 /* Whether to try to fill the input buffer when we reach the 242 * end of it. 243 */ 244 int yy_fill_buffer; 245 246 int yy_buffer_status; 247 248 #define YY_BUFFER_NEW 0 249 #define YY_BUFFER_NORMAL 1 250 /* When an EOF's been seen but there's still some text to process 251 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 252 * shouldn't try reading from the input source any more. We might 253 * still have a bunch of tokens to match, though, because of 254 * possible backing-up. 255 * 256 * When we actually see the EOF, we change the status to "new" 257 * (via linguist_yyrestart()), so that the user can continue scanning by 258 * just pointing yyin at a new input file. 259 */ 260 #define YY_BUFFER_EOF_PENDING 2 261 262 }; 263 #endif /* !YY_STRUCT_YY_BUFFER_STATE */ 264 265 /* We provide macros for accessing buffer states in case in the 266 * future we want to put the buffer states in a more general 267 * "scanner state". 268 * 269 * Returns the top of the stack, or NULL. 270 */ 271 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ 272 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ 273 : NULL) 274 275 /* Same as previous macro, but useful when we know that the buffer stack is not 276 * NULL or when we need an lvalue. For internal use only. 277 */ 278 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] 279 280 void linguist_yyrestart (FILE *input_file ,yyscan_t yyscanner ); 281 void linguist_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); 282 YY_BUFFER_STATE linguist_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); 283 void linguist_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); 284 void linguist_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); 285 void linguist_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); 286 void linguist_yypop_buffer_state (yyscan_t yyscanner ); 287 288 static void linguist_yyensure_buffer_stack (yyscan_t yyscanner ); 289 static void linguist_yy_load_buffer_state (yyscan_t yyscanner ); 290 static void linguist_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); 291 292 #define YY_FLUSH_BUFFER linguist_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) 293 294 YY_BUFFER_STATE linguist_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); 295 YY_BUFFER_STATE linguist_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); 296 YY_BUFFER_STATE linguist_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); 297 298 void *linguist_yyalloc (yy_size_t ,yyscan_t yyscanner ); 299 void *linguist_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); 300 void linguist_yyfree (void * ,yyscan_t yyscanner ); 301 302 #define yy_new_buffer linguist_yy_create_buffer 303 304 #define yy_set_interactive(is_interactive) \ 305 { \ 306 if ( ! YY_CURRENT_BUFFER ){ \ 307 linguist_yyensure_buffer_stack (yyscanner); \ 308 YY_CURRENT_BUFFER_LVALUE = \ 309 linguist_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ 310 } \ 311 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 312 } 313 314 #define yy_set_bol(at_bol) \ 315 { \ 316 if ( ! YY_CURRENT_BUFFER ){\ 317 linguist_yyensure_buffer_stack (yyscanner); \ 318 YY_CURRENT_BUFFER_LVALUE = \ 319 linguist_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ 320 } \ 321 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 322 } 323 324 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 325 326 /* Begin user sect3 */ 327 328 typedef unsigned char YY_CHAR; 329 330 typedef int yy_state_type; 331 332 #define yytext_ptr yytext_r 333 334 static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); 335 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); 336 static int yy_get_next_buffer (yyscan_t yyscanner ); 337 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); 338 339 /* Done after the current pattern has been matched and before the 340 * corresponding action - sets up yytext. 341 */ 342 #define YY_DO_BEFORE_ACTION \ 343 yyg->yytext_ptr = yy_bp; \ 344 yyleng = (yy_size_t) (yy_cp - yy_bp); \ 345 yyg->yy_hold_char = *yy_cp; \ 346 *yy_cp = '\0'; \ 347 yyg->yy_c_buf_p = yy_cp; 348 349 #define YY_NUM_RULES 31 350 #define YY_END_OF_BUFFER 32 351 /* This struct is not used in this scanner, 352 but its presence is necessary. */ 353 struct yy_trans_info 354 { 355 flex_int32_t yy_verify; 356 flex_int32_t yy_nxt; 357 }; 358 static yyconst flex_int16_t yy_accept[114] = 359 { 0, 360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 361 0, 0, 0, 0, 0, 0, 32, 30, 17, 28, 362 29, 29, 18, 27, 27, 28, 28, 19, 19, 29, 363 27, 29, 30, 17, 28, 29, 29, 28, 26, 24, 364 25, 9, 9, 9, 9, 9, 9, 9, 16, 28, 365 29, 16, 6, 4, 19, 28, 19, 19, 28, 20, 366 29, 5, 29, 0, 0, 0, 0, 3, 0, 28, 367 24, 23, 10, 0, 12, 13, 0, 0, 7, 8, 368 19, 19, 19, 3, 0, 2, 0, 2, 2, 21, 369 22, 23, 11, 14, 15, 19, 19, 19, 19, 19, 370 371 19, 0, 2, 0, 2, 0, 0, 0, 0, 0, 372 1, 0, 0 373 } ; 374 375 static yyconst flex_int32_t yy_ec[256] = 376 { 0, 377 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 378 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 379 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 380 1, 4, 5, 6, 7, 1, 8, 9, 10, 11, 381 12, 13, 14, 1, 15, 16, 17, 18, 19, 19, 382 19, 19, 19, 19, 19, 19, 19, 1, 20, 21, 383 22, 23, 24, 25, 26, 26, 26, 26, 27, 28, 384 29, 29, 29, 29, 29, 30, 29, 29, 29, 29, 385 29, 29, 29, 29, 31, 29, 29, 29, 29, 29, 386 32, 1, 33, 1, 29, 1, 26, 26, 26, 26, 387 388 34, 28, 29, 29, 29, 29, 29, 30, 29, 35, 389 29, 29, 29, 29, 29, 29, 31, 36, 29, 37, 390 29, 29, 38, 39, 40, 1, 1, 1, 1, 1, 391 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 392 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 393 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 394 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 396 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 397 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 398 399 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 400 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 402 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 403 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 404 1, 1, 1, 1, 1 405 } ; 406 407 static yyconst flex_int32_t yy_meta[41] = 408 { 0, 409 1, 2, 3, 2, 4, 5, 6, 1, 1, 5, 410 1, 1, 6, 1, 4, 7, 8, 9, 9, 1, 411 4, 10, 1, 4, 6, 9, 9, 9, 9, 9, 412 9, 1, 1, 9, 9, 9, 9, 1, 1, 1 413 } ; 414 415 static yyconst flex_int16_t yy_base[125] = 416 { 0, 417 0, 39, 39, 59, 214, 213, 210, 209, 208, 207, 418 208, 207, 213, 212, 207, 206, 215, 358, 208, 0, 419 358, 204, 202, 197, 358, 0, 194, 90, 112, 185, 420 190, 165, 145, 38, 44, 199, 184, 38, 358, 174, 421 358, 358, 178, 179, 151, 176, 180, 174, 174, 0, 422 358, 168, 358, 0, 0, 38, 31, 140, 137, 140, 423 358, 358, 358, 0, 154, 139, 133, 0, 155, 141, 424 122, 54, 358, 118, 358, 358, 131, 113, 358, 358, 425 53, 84, 174, 0, 164, 96, 62, 100, 28, 358, 426 358, 74, 358, 358, 358, 157, 71, 0, 0, 77, 427 428 0, 88, 14, 94, 108, 96, 207, 131, 175, 134, 429 243, 165, 358, 280, 290, 295, 301, 302, 312, 321, 430 326, 328, 337, 347 431 } ; 432 433 static yyconst flex_int16_t yy_def[125] = 434 { 0, 435 113, 1, 114, 114, 115, 115, 115, 115, 115, 115, 436 115, 115, 115, 115, 115, 115, 113, 113, 113, 116, 437 113, 113, 113, 113, 113, 116, 116, 113, 116, 117, 438 113, 113, 113, 113, 116, 113, 113, 116, 113, 118, 439 113, 113, 113, 113, 113, 113, 113, 113, 113, 116, 440 113, 113, 113, 116, 29, 116, 116, 116, 116, 117, 441 113, 113, 113, 33, 113, 113, 113, 119, 120, 116, 442 118, 121, 113, 113, 113, 113, 113, 113, 113, 113, 443 113, 116, 29, 119, 120, 85, 122, 85, 88, 113, 444 113, 121, 113, 113, 113, 113, 113, 116, 83, 83, 445 446 83, 122, 88, 122, 88, 122, 123, 122, 123, 124, 447 123, 124, 0, 113, 113, 113, 113, 113, 113, 113, 448 113, 113, 113, 113 449 } ; 450 451 static yyconst flex_int16_t yy_nxt[399] = 452 { 0, 453 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 454 24, 25, 26, 21, 21, 20, 27, 28, 29, 25, 455 30, 18, 18, 18, 20, 20, 20, 20, 20, 20, 456 20, 25, 25, 20, 20, 20, 20, 31, 32, 25, 457 33, 68, 33, 49, 34, 35, 36, 68, 69, 105, 458 54, 81, 81, 37, 70, 38, 40, 40, 57, 90, 459 57, 41, 103, 91, 40, 40, 40, 40, 40, 40, 460 96, 96, 40, 40, 40, 40, 40, 40, 102, 113, 461 97, 41, 97, 113, 40, 40, 40, 40, 40, 40, 462 81, 81, 40, 40, 40, 40, 50, 113, 97, 113, 463 464 97, 113, 50, 113, 102, 55, 50, 55, 55, 107, 465 102, 107, 102, 98, 50, 50, 56, 57, 50, 57, 466 58, 104, 95, 56, 50, 50, 59, 55, 106, 55, 467 55, 108, 107, 88, 107, 107, 94, 107, 56, 57, 468 93, 57, 58, 72, 68, 56, 64, 102, 64, 65, 469 65, 65, 65, 65, 83, 83, 85, 68, 85, 66, 470 113, 67, 83, 83, 83, 85, 107, 85, 107, 82, 471 83, 86, 87, 87, 96, 96, 113, 80, 113, 79, 472 86, 87, 87, 78, 97, 77, 97, 76, 89, 99, 473 75, 99, 99, 74, 73, 72, 110, 89, 65, 99, 474 475 100, 101, 68, 63, 62, 61, 54, 100, 107, 53, 476 107, 52, 51, 49, 113, 48, 48, 47, 47, 46, 477 46, 45, 45, 44, 44, 43, 43, 113, 110, 113, 478 113, 113, 111, 111, 111, 111, 111, 111, 113, 113, 479 111, 111, 111, 111, 113, 113, 113, 113, 113, 113, 480 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 481 113, 113, 113, 113, 110, 113, 113, 113, 111, 111, 482 111, 111, 111, 111, 113, 113, 111, 111, 111, 111, 483 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 484 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 485 486 50, 50, 50, 50, 60, 113, 113, 60, 60, 60, 487 71, 71, 84, 84, 113, 84, 84, 84, 84, 84, 488 84, 84, 88, 113, 113, 113, 113, 113, 88, 88, 489 92, 113, 113, 113, 92, 87, 87, 109, 109, 109, 490 109, 109, 109, 109, 109, 109, 109, 112, 112, 112, 491 112, 112, 112, 112, 112, 112, 112, 17, 113, 113, 492 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 493 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 494 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 495 113, 113, 113, 113, 113, 113, 113, 113 496 497 } ; 498 499 static yyconst flex_int16_t yy_chk[399] = 500 { 0, 501 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 502 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 503 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 504 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 505 2, 34, 2, 34, 2, 2, 2, 35, 35, 103, 506 38, 56, 56, 2, 38, 2, 3, 3, 57, 72, 507 57, 3, 89, 72, 3, 3, 3, 3, 3, 3, 508 81, 81, 3, 3, 3, 3, 4, 4, 87, 92, 509 81, 4, 81, 92, 4, 4, 4, 4, 4, 4, 510 100, 100, 4, 4, 4, 4, 28, 86, 97, 86, 511 512 97, 88, 28, 88, 102, 28, 28, 28, 28, 105, 513 104, 105, 106, 82, 28, 28, 28, 28, 28, 28, 514 28, 102, 78, 28, 28, 28, 28, 29, 104, 29, 515 29, 106, 108, 88, 108, 110, 77, 110, 29, 29, 516 74, 29, 29, 71, 70, 29, 33, 108, 33, 67, 517 33, 33, 33, 66, 59, 59, 69, 65, 69, 33, 518 60, 33, 59, 59, 59, 85, 112, 85, 112, 58, 519 59, 69, 69, 69, 96, 96, 109, 52, 109, 49, 520 85, 85, 85, 48, 96, 47, 96, 46, 69, 83, 521 45, 83, 83, 44, 43, 40, 109, 85, 37, 83, 522 523 83, 83, 36, 32, 31, 30, 27, 83, 107, 24, 524 107, 23, 22, 19, 17, 16, 15, 14, 13, 12, 525 11, 10, 9, 8, 7, 6, 5, 0, 107, 0, 526 0, 0, 107, 107, 107, 107, 107, 107, 0, 0, 527 107, 107, 107, 107, 111, 0, 111, 0, 0, 0, 528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529 0, 0, 0, 0, 111, 0, 0, 0, 111, 111, 530 111, 111, 111, 111, 0, 0, 111, 111, 111, 111, 531 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 532 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 533 534 116, 116, 116, 116, 117, 0, 0, 117, 117, 117, 535 118, 118, 119, 119, 0, 119, 119, 119, 119, 119, 536 119, 119, 120, 0, 0, 0, 0, 0, 120, 120, 537 121, 0, 0, 0, 121, 122, 122, 123, 123, 123, 538 123, 123, 123, 123, 123, 123, 123, 124, 124, 124, 539 124, 124, 124, 124, 124, 124, 124, 113, 113, 113, 540 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 541 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 542 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 543 113, 113, 113, 113, 113, 113, 113, 113 544 545 } ; 546 547 /* The intent behind this definition is that it'll catch 548 * any uses of REJECT which flex missed. 549 */ 550 #define REJECT reject_used_but_not_detected 551 #define yymore() yymore_used_but_not_detected 552 #define YY_MORE_ADJ 0 553 #define YY_RESTORE_YY_MORE_OFFSET 554 #line 1 "tokenizer.l" 555 #line 2 "tokenizer.l" 556 557 #include "linguist.h" 558 559 #define feed_token(tok, typ) do { \ 560 yyextra->token = (tok); \ 561 yyextra->type = (typ); \ 562 } while (0) 563 564 #define eat_until_eol() do { \ 565 int c; \ 566 while ((c = input(yyscanner)) != '\n' && c != EOF && c); \ 567 if (c == EOF || !c) \ 568 return 0; \ 569 } while (0) 570 571 #define eat_until_unescaped(q) do { \ 572 int c; \ 573 while ((c = input(yyscanner)) != EOF && c) { \ 574 if (c == '\n') \ 575 break; \ 576 if (c == '\\') { \ 577 c = input(yyscanner); \ 578 if (c == EOF || !c) \ 579 return 0; \ 580 } else if (c == q) \ 581 break; \ 582 } \ 583 if (c == EOF || !c) \ 584 return 0; \ 585 } while (0) 586 587 588 #line 589 "lex.linguist_yy.c" 589 590 #define INITIAL 0 591 #define sgml 1 592 #define c_comment 2 593 #define xml_comment 3 594 #define haskell_comment 4 595 #define ocaml_comment 5 596 #define python_dcomment 6 597 #define python_scomment 7 598 599 #ifndef YY_NO_UNISTD_H 600 /* Special case for "unistd.h", since it is non-ANSI. We include it way 601 * down here because we want the user's section 1 to have been scanned first. 602 * The user has a chance to override it with an option. 603 */ 604 #include <unistd.h> 605 #endif 606 607 #define YY_EXTRA_TYPE struct tokenizer_extra * 608 609 /* Holds the entire state of the reentrant scanner. */ 610 struct yyguts_t 611 { 612 613 /* User-defined. Not touched by flex. */ 614 YY_EXTRA_TYPE yyextra_r; 615 616 /* The rest are the same as the globals declared in the non-reentrant scanner. */ 617 FILE *yyin_r, *yyout_r; 618 size_t yy_buffer_stack_top; /**< index of top of stack. */ 619 size_t yy_buffer_stack_max; /**< capacity of stack. */ 620 YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ 621 char yy_hold_char; 622 yy_size_t yy_n_chars; 623 yy_size_t yyleng_r; 624 char *yy_c_buf_p; 625 int yy_init; 626 int yy_start; 627 int yy_did_buffer_switch_on_eof; 628 int yy_start_stack_ptr; 629 int yy_start_stack_depth; 630 int *yy_start_stack; 631 yy_state_type yy_last_accepting_state; 632 char* yy_last_accepting_cpos; 633 634 int yylineno_r; 635 int yy_flex_debug_r; 636 637 char *yytext_r; 638 int yy_more_flag; 639 int yy_more_len; 640 641 }; /* end struct yyguts_t */ 642 643 static int yy_init_globals (yyscan_t yyscanner ); 644 645 int linguist_yylex_init (yyscan_t* scanner); 646 647 int linguist_yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); 648 649 /* Accessor methods to globals. 650 These are made visible to non-reentrant scanners for convenience. */ 651 652 int linguist_yylex_destroy (yyscan_t yyscanner ); 653 654 int linguist_yyget_debug (yyscan_t yyscanner ); 655 656 void linguist_yyset_debug (int debug_flag ,yyscan_t yyscanner ); 657 658 YY_EXTRA_TYPE linguist_yyget_extra (yyscan_t yyscanner ); 659 660 void linguist_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); 661 662 FILE *linguist_yyget_in (yyscan_t yyscanner ); 663 664 void linguist_yyset_in (FILE * in_str ,yyscan_t yyscanner ); 665 666 FILE *linguist_yyget_out (yyscan_t yyscanner ); 667 668 void linguist_yyset_out (FILE * out_str ,yyscan_t yyscanner ); 669 670 yy_size_t linguist_yyget_leng (yyscan_t yyscanner ); 671 672 char *linguist_yyget_text (yyscan_t yyscanner ); 673 674 int linguist_yyget_lineno (yyscan_t yyscanner ); 675 676 void linguist_yyset_lineno (int line_number ,yyscan_t yyscanner ); 677 678 /* Macros after this point can all be overridden by user definitions in 679 * section 1. 680 */ 681 682 #ifndef YY_SKIP_YYWRAP 683 #ifdef __cplusplus 684 extern "C" int linguist_yywrap (yyscan_t yyscanner ); 685 #else 686 extern int linguist_yywrap (yyscan_t yyscanner ); 687 #endif 688 #endif 689 690 #ifndef yytext_ptr 691 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); 692 #endif 693 694 #ifdef YY_NEED_STRLEN 695 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); 696 #endif 697 698 #ifndef YY_NO_INPUT 699 700 #ifdef __cplusplus 701 static int yyinput (yyscan_t yyscanner ); 702 #else 703 static int input (yyscan_t yyscanner ); 704 #endif 705 706 #endif 707 708 /* Amount of stuff to slurp up with each read. */ 709 #ifndef YY_READ_BUF_SIZE 710 #define YY_READ_BUF_SIZE 8192 711 #endif 712 713 /* Copy whatever the last rule matched to the standard output. */ 714 #ifndef ECHO 715 /* This used to be an fputs(), but since the string might contain NUL's, 716 * we now use fwrite(). 717 */ 718 #define ECHO fwrite( yytext, yyleng, 1, yyout ) 719 #endif 720 721 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 722 * is returned in "result". 723 */ 724 #ifndef YY_INPUT 725 #define YY_INPUT(buf,result,max_size) \ 726 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 727 { \ 728 int c = '*'; \ 729 yy_size_t n; \ 730 for ( n = 0; n < max_size && \ 731 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 732 buf[n] = (char) c; \ 733 if ( c == '\n' ) \ 734 buf[n++] = (char) c; \ 735 if ( c == EOF && ferror( yyin ) ) \ 736 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 737 result = n; \ 738 } \ 739 else \ 740 { \ 741 errno=0; \ 742 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ 743 { \ 744 if( errno != EINTR) \ 745 { \ 746 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 747 break; \ 748 } \ 749 errno=0; \ 750 clearerr(yyin); \ 751 } \ 752 }\ 753 \ 754 755 #endif 756 757 /* No semi-colon after return; correct usage is to write "yyterminate();" - 758 * we don't want an extra ';' after the "return" because that will cause 759 * some compilers to complain about unreachable statements. 760 */ 761 #ifndef yyterminate 762 #define yyterminate() return YY_NULL 763 #endif 764 765 /* Number of entries by which start-condition stack grows. */ 766 #ifndef YY_START_STACK_INCR 767 #define YY_START_STACK_INCR 25 768 #endif 769 770 /* Report a fatal error. */ 771 #ifndef YY_FATAL_ERROR 772 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) 773 #endif 774 775 /* end tables serialization structures and prototypes */ 776 777 /* Default declaration of generated scanner - a define so the user can 778 * easily add parameters. 779 */ 780 #ifndef YY_DECL 781 #define YY_DECL_IS_OURS 1 782 783 extern int linguist_yylex (yyscan_t yyscanner); 784 785 #define YY_DECL int linguist_yylex (yyscan_t yyscanner) 786 #endif /* !YY_DECL */ 787 788 /* Code executed at the beginning of each rule, after yytext and yyleng 789 * have been set up. 790 */ 791 #ifndef YY_USER_ACTION 792 #define YY_USER_ACTION 793 #endif 794 795 /* Code executed at the end of each rule. */ 796 #ifndef YY_BREAK 797 #define YY_BREAK break; 798 #endif 799 800 #define YY_RULE_SETUP \ 801 if ( yyleng > 0 ) \ 802 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ 803 (yytext[yyleng - 1] == '\n'); \ 804 YY_USER_ACTION 805 806 /** The main scanner function which does all the work. 807 */ 808 YY_DECL 809 { 810 register yy_state_type yy_current_state; 811 register char *yy_cp, *yy_bp; 812 register int yy_act; 813 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 814 815 #line 38 "tokenizer.l" 816 817 818 #line 819 "lex.linguist_yy.c" 819 820 if ( !yyg->yy_init ) 821 { 822 yyg->yy_init = 1; 823 824 #ifdef YY_USER_INIT 825 YY_USER_INIT; 826 #endif 827 828 if ( ! yyg->yy_start ) 829 yyg->yy_start = 1; /* first start state */ 830 831 if ( ! yyin ) 832 yyin = stdin; 833 834 if ( ! yyout ) 835 yyout = stdout; 836 837 if ( ! YY_CURRENT_BUFFER ) { 838 linguist_yyensure_buffer_stack (yyscanner); 839 YY_CURRENT_BUFFER_LVALUE = 840 linguist_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); 841 } 842 843 linguist_yy_load_buffer_state(yyscanner ); 844 } 845 846 while ( 1 ) /* loops until end-of-file is reached */ 847 { 848 yy_cp = yyg->yy_c_buf_p; 849 850 /* Support of yytext. */ 851 *yy_cp = yyg->yy_hold_char; 852 853 /* yy_bp points to the position in yy_ch_buf of the start of 854 * the current run. 855 */ 856 yy_bp = yy_cp; 857 858 yy_current_state = yyg->yy_start; 859 yy_current_state += YY_AT_BOL(); 860 yy_match: 861 do 862 { 863 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 864 if ( yy_accept[yy_current_state] ) 865 { 866 yyg->yy_last_accepting_state = yy_current_state; 867 yyg->yy_last_accepting_cpos = yy_cp; 868 } 869 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 870 { 871 yy_current_state = (int) yy_def[yy_current_state]; 872 if ( yy_current_state >= 114 ) 873 yy_c = yy_meta[(unsigned int) yy_c]; 874 } 875 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 876 ++yy_cp; 877 } 878 while ( yy_current_state != 113 ); 879 yy_cp = yyg->yy_last_accepting_cpos; 880 yy_current_state = yyg->yy_last_accepting_state; 881 882 yy_find_action: 883 yy_act = yy_accept[yy_current_state]; 884 885 YY_DO_BEFORE_ACTION; 886 887 do_action: /* This label is used only to access EOF actions. */ 888 889 switch ( yy_act ) 890 { /* beginning of action switch */ 891 case 0: /* must back up */ 892 /* undo the effects of YY_DO_BEFORE_ACTION */ 893 *yy_cp = yyg->yy_hold_char; 894 yy_cp = yyg->yy_last_accepting_cpos; 895 yy_current_state = yyg->yy_last_accepting_state; 896 goto yy_find_action; 897 898 case 1: 899 /* rule 1 can match eol */ 900 YY_RULE_SETUP 901 #line 40 "tokenizer.l" 902 { 903 const char *off = strrchr(yytext, ' '); 904 if (!off) 905 off = yytext; 906 else 907 ++off; 908 feed_token(strdup(off), SHEBANG_TOKEN); 909 eat_until_eol(); 910 return 1; 911 } 912 YY_BREAK 913 case 2: 914 YY_RULE_SETUP 915 #line 51 "tokenizer.l" 916 { 917 const char *off = strrchr(yytext, '/'); 918 if (!off) 919 off = yytext; 920 else 921 ++off; 922 if (strcmp(off, "env") == 0) { 923 eat_until_eol(); 924 } else { 925 feed_token(strdup(off), SHEBANG_TOKEN); 926 eat_until_eol(); 927 return 1; 928 } 929 } 930 YY_BREAK 931 case 3: 932 YY_RULE_SETUP 933 #line 66 "tokenizer.l" 934 { /* nothing */ } 935 YY_BREAK 936 case 4: 937 YY_RULE_SETUP 938 #line 68 "tokenizer.l" 939 { BEGIN(c_comment); } 940 YY_BREAK 941 /* See below for xml_comment start. */ 942 case 5: 943 YY_RULE_SETUP 944 #line 70 "tokenizer.l" 945 { BEGIN(haskell_comment); } 946 YY_BREAK 947 case 6: 948 YY_RULE_SETUP 949 #line 71 "tokenizer.l" 950 { BEGIN(ocaml_comment); } 951 YY_BREAK 952 case 7: 953 YY_RULE_SETUP 954 #line 72 "tokenizer.l" 955 { BEGIN(python_dcomment); } 956 YY_BREAK 957 case 8: 958 YY_RULE_SETUP 959 #line 73 "tokenizer.l" 960 { BEGIN(python_scomment); } 961 YY_BREAK 962 case 9: 963 /* rule 9 can match eol */ 964 YY_RULE_SETUP 965 #line 75 "tokenizer.l" 966 { /* nothing */ } 967 YY_BREAK 968 case 10: 969 YY_RULE_SETUP 970 #line 76 "tokenizer.l" 971 { BEGIN(INITIAL); } 972 YY_BREAK 973 case 11: 974 YY_RULE_SETUP 975 #line 77 "tokenizer.l" 976 { BEGIN(INITIAL); } 977 YY_BREAK 978 case 12: 979 YY_RULE_SETUP 980 #line 78 "tokenizer.l" 981 { BEGIN(INITIAL); } 982 YY_BREAK 983 case 13: 984 YY_RULE_SETUP 985 #line 79 "tokenizer.l" 986 { BEGIN(INITIAL); } 987 YY_BREAK 988 case 14: 989 YY_RULE_SETUP 990 #line 80 "tokenizer.l" 991 { BEGIN(INITIAL); } 992 YY_BREAK 993 case 15: 994 YY_RULE_SETUP 995 #line 81 "tokenizer.l" 996 { BEGIN(INITIAL); } 997 YY_BREAK 998 case 16: 999 YY_RULE_SETUP 1000 #line 83 "tokenizer.l" 1001 { /* nothing */ } 1002 YY_BREAK 1003 case 17: 1004 YY_RULE_SETUP 1005 #line 84 "tokenizer.l" 1006 { eat_until_unescaped('"'); } 1007 YY_BREAK 1008 case 18: 1009 YY_RULE_SETUP 1010 #line 85 "tokenizer.l" 1011 { eat_until_unescaped('\''); } 1012 YY_BREAK 1013 case 19: 1014 YY_RULE_SETUP 1015 #line 86 "tokenizer.l" 1016 { /* nothing */ } 1017 YY_BREAK 1018 case 20: 1019 YY_RULE_SETUP 1020 #line 87 "tokenizer.l" 1021 { 1022 if (strcmp(yytext, "<!--") == 0) { 1023 BEGIN(xml_comment); 1024 } else { 1025 feed_token(strdup(yytext), SGML_TOKEN); 1026 BEGIN(sgml); 1027 return 1; 1028 } 1029 } 1030 YY_BREAK 1031 case 21: 1032 YY_RULE_SETUP 1033 #line 96 "tokenizer.l" 1034 { feed_token(strndup(yytext, strlen(yytext) - 1), REGULAR_TOKEN); eat_until_unescaped('"'); return 1; } 1035 YY_BREAK 1036 case 22: 1037 YY_RULE_SETUP 1038 #line 97 "tokenizer.l" 1039 { feed_token(strndup(yytext, strlen(yytext) - 1), REGULAR_TOKEN); eat_until_unescaped('\''); return 1; } 1040 YY_BREAK 1041 case 23: 1042 YY_RULE_SETUP 1043 #line 98 "tokenizer.l" 1044 { feed_token(strdup(yytext), REGULAR_TOKEN); *(strchr(yyextra->token, '=') + 1) = 0; return 1; } 1045 YY_BREAK 1046 case 24: 1047 YY_RULE_SETUP 1048 #line 99 "tokenizer.l" 1049 { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; } 1050 YY_BREAK 1051 case 25: 1052 YY_RULE_SETUP 1053 #line 100 "tokenizer.l" 1054 { BEGIN(INITIAL); } 1055 YY_BREAK 1056 case 26: 1057 /* rule 26 can match eol */ 1058 YY_RULE_SETUP 1059 #line 101 "tokenizer.l" 1060 { /* nothing */ } 1061 YY_BREAK 1062 case 27: 1063 YY_RULE_SETUP 1064 #line 102 "tokenizer.l" 1065 { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; } 1066 YY_BREAK 1067 case 28: 1068 YY_RULE_SETUP 1069 #line 103 "tokenizer.l" 1070 { 1071 if (strncmp(yytext, "/*", 2) == 0) { 1072 if (strlen(yytext) >= 4 && strcmp(yytext + strlen(yytext) - 2, "*/") == 0) { 1073 /* nothing */ 1074 } else { 1075 BEGIN(c_comment); 1076 } 1077 } else { 1078 feed_token(strdup(yytext), REGULAR_TOKEN); 1079 return 1; 1080 } 1081 } 1082 YY_BREAK 1083 case 29: 1084 YY_RULE_SETUP 1085 #line 115 "tokenizer.l" 1086 { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; } 1087 YY_BREAK 1088 case 30: 1089 /* rule 30 can match eol */ 1090 YY_RULE_SETUP 1091 #line 116 "tokenizer.l" 1092 { /* nothing */ } 1093 YY_BREAK 1094 case 31: 1095 YY_RULE_SETUP 1096 #line 118 "tokenizer.l" 1097 YY_FATAL_ERROR( "flex scanner jammed" ); 1098 YY_BREAK 1099 #line 1100 "lex.linguist_yy.c" 1100 case YY_STATE_EOF(INITIAL): 1101 case YY_STATE_EOF(sgml): 1102 case YY_STATE_EOF(c_comment): 1103 case YY_STATE_EOF(xml_comment): 1104 case YY_STATE_EOF(haskell_comment): 1105 case YY_STATE_EOF(ocaml_comment): 1106 case YY_STATE_EOF(python_dcomment): 1107 case YY_STATE_EOF(python_scomment): 1108 yyterminate(); 1109 1110 case YY_END_OF_BUFFER: 1111 { 1112 /* Amount of text matched not including the EOB char. */ 1113 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; 1114 1115 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 1116 *yy_cp = yyg->yy_hold_char; 1117 YY_RESTORE_YY_MORE_OFFSET 1118 1119 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 1120 { 1121 /* We're scanning a new file or input source. It's 1122 * possible that this happened because the user 1123 * just pointed yyin at a new source and called 1124 * linguist_yylex(). If so, then we have to assure 1125 * consistency between YY_CURRENT_BUFFER and our 1126 * globals. Here is the right place to do so, because 1127 * this is the first action (other than possibly a 1128 * back-up) that will match for the new input source. 1129 */ 1130 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 1131 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; 1132 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 1133 } 1134 1135 /* Note that here we test for yy_c_buf_p "<=" to the position 1136 * of the first EOB in the buffer, since yy_c_buf_p will 1137 * already have been incremented past the NUL character 1138 * (since all states make transitions on EOB to the 1139 * end-of-buffer state). Contrast this with the test 1140 * in input(). 1141 */ 1142 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) 1143 { /* This was really a NUL. */ 1144 yy_state_type yy_next_state; 1145 1146 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; 1147 1148 yy_current_state = yy_get_previous_state( yyscanner ); 1149 1150 /* Okay, we're now positioned to make the NUL 1151 * transition. We couldn't have 1152 * yy_get_previous_state() go ahead and do it 1153 * for us because it doesn't know how to deal 1154 * with the possibility of jamming (and we don't 1155 * want to build jamming into it because then it 1156 * will run more slowly). 1157 */ 1158 1159 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); 1160 1161 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; 1162 1163 if ( yy_next_state ) 1164 { 1165 /* Consume the NUL. */ 1166 yy_cp = ++yyg->yy_c_buf_p; 1167 yy_current_state = yy_next_state; 1168 goto yy_match; 1169 } 1170 1171 else 1172 { 1173 yy_cp = yyg->yy_last_accepting_cpos; 1174 yy_current_state = yyg->yy_last_accepting_state; 1175 goto yy_find_action; 1176 } 1177 } 1178 1179 else switch ( yy_get_next_buffer( yyscanner ) ) 1180 { 1181 case EOB_ACT_END_OF_FILE: 1182 { 1183 yyg->yy_did_buffer_switch_on_eof = 0; 1184 1185 if ( linguist_yywrap(yyscanner ) ) 1186 { 1187 /* Note: because we've taken care in 1188 * yy_get_next_buffer() to have set up 1189 * yytext, we can now set up 1190 * yy_c_buf_p so that if some total 1191 * hoser (like flex itself) wants to 1192 * call the scanner after we return the 1193 * YY_NULL, it'll still work - another 1194 * YY_NULL will get returned. 1195 */ 1196 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; 1197 1198 yy_act = YY_STATE_EOF(YY_START); 1199 goto do_action; 1200 } 1201 1202 else 1203 { 1204 if ( ! yyg->yy_did_buffer_switch_on_eof ) 1205 YY_NEW_FILE; 1206 } 1207 break; 1208 } 1209 1210 case EOB_ACT_CONTINUE_SCAN: 1211 yyg->yy_c_buf_p = 1212 yyg->yytext_ptr + yy_amount_of_matched_text; 1213 1214 yy_current_state = yy_get_previous_state( yyscanner ); 1215 1216 yy_cp = yyg->yy_c_buf_p; 1217 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; 1218 goto yy_match; 1219 1220 case EOB_ACT_LAST_MATCH: 1221 yyg->yy_c_buf_p = 1222 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; 1223 1224 yy_current_state = yy_get_previous_state( yyscanner ); 1225 1226 yy_cp = yyg->yy_c_buf_p; 1227 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; 1228 goto yy_find_action; 1229 } 1230 break; 1231 } 1232 1233 default: 1234 YY_FATAL_ERROR( 1235 "fatal flex scanner internal error--no action found" ); 1236 } /* end of action switch */ 1237 } /* end of scanning one token */ 1238 } /* end of linguist_yylex */ 1239 1240 /* yy_get_next_buffer - try to read in a new buffer 1241 * 1242 * Returns a code representing an action: 1243 * EOB_ACT_LAST_MATCH - 1244 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 1245 * EOB_ACT_END_OF_FILE - end of file 1246 */ 1247 static int yy_get_next_buffer (yyscan_t yyscanner) 1248 { 1249 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1250 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 1251 register char *source = yyg->yytext_ptr; 1252 register int number_to_move, i; 1253 int ret_val; 1254 1255 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) 1256 YY_FATAL_ERROR( 1257 "fatal flex scanner internal error--end of buffer missed" ); 1258 1259 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 1260 { /* Don't try to fill the buffer, so this is an EOF. */ 1261 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) 1262 { 1263 /* We matched a single character, the EOB, so 1264 * treat this as a final EOF. 1265 */ 1266 return EOB_ACT_END_OF_FILE; 1267 } 1268 1269 else 1270 { 1271 /* We matched some text prior to the EOB, first 1272 * process it. 1273 */ 1274 return EOB_ACT_LAST_MATCH; 1275 } 1276 } 1277 1278 /* Try to read more data. */ 1279 1280 /* First move last chars to start of buffer. */ 1281 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; 1282 1283 for ( i = 0; i < number_to_move; ++i ) 1284 *(dest++) = *(source++); 1285 1286 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 1287 /* don't do the read, it's not guaranteed to return an EOF, 1288 * just force an EOF 1289 */ 1290 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; 1291 1292 else 1293 { 1294 yy_size_t num_to_read = 1295 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 1296 1297 while ( num_to_read <= 0 ) 1298 { /* Not enough room in the buffer - grow it. */ 1299 1300 /* just a shorter name for the current buffer */ 1301 YY_BUFFER_STATE b = YY_CURRENT_BUFFER; 1302 1303 int yy_c_buf_p_offset = 1304 (int) (yyg->yy_c_buf_p - b->yy_ch_buf); 1305 1306 if ( b->yy_is_our_buffer ) 1307 { 1308 yy_size_t new_size = b->yy_buf_size * 2; 1309 1310 if ( new_size <= 0 ) 1311 b->yy_buf_size += b->yy_buf_size / 8; 1312 else 1313 b->yy_buf_size *= 2; 1314 1315 b->yy_ch_buf = (char *) 1316 /* Include room in for 2 EOB chars. */ 1317 linguist_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner ); 1318 } 1319 else 1320 /* Can't grow it, we don't own it. */ 1321 b->yy_ch_buf = 0; 1322 1323 if ( ! b->yy_ch_buf ) 1324 YY_FATAL_ERROR( 1325 "fatal error - scanner input buffer overflow" ); 1326 1327 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; 1328 1329 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 1330 number_to_move - 1; 1331 1332 } 1333 1334 if ( num_to_read > YY_READ_BUF_SIZE ) 1335 num_to_read = YY_READ_BUF_SIZE; 1336 1337 /* Read in more data. */ 1338 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 1339 yyg->yy_n_chars, num_to_read ); 1340 1341 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; 1342 } 1343 1344 if ( yyg->yy_n_chars == 0 ) 1345 { 1346 if ( number_to_move == YY_MORE_ADJ ) 1347 { 1348 ret_val = EOB_ACT_END_OF_FILE; 1349 linguist_yyrestart(yyin ,yyscanner); 1350 } 1351 1352 else 1353 { 1354 ret_val = EOB_ACT_LAST_MATCH; 1355 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 1356 YY_BUFFER_EOF_PENDING; 1357 } 1358 } 1359 1360 else 1361 ret_val = EOB_ACT_CONTINUE_SCAN; 1362 1363 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 1364 /* Extend the array by 50%, plus the number we really need. */ 1365 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); 1366 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) linguist_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); 1367 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 1368 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 1369 } 1370 1371 yyg->yy_n_chars += number_to_move; 1372 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; 1373 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; 1374 1375 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 1376 1377 return ret_val; 1378 } 1379 1380 /* yy_get_previous_state - get the state just before the EOB char was reached */ 1381 1382 static yy_state_type yy_get_previous_state (yyscan_t yyscanner) 1383 { 1384 register yy_state_type yy_current_state; 1385 register char *yy_cp; 1386 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1387 1388 yy_current_state = yyg->yy_start; 1389 yy_current_state += YY_AT_BOL(); 1390 1391 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) 1392 { 1393 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 1394 if ( yy_accept[yy_current_state] ) 1395 { 1396 yyg->yy_last_accepting_state = yy_current_state; 1397 yyg->yy_last_accepting_cpos = yy_cp; 1398 } 1399 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1400 { 1401 yy_current_state = (int) yy_def[yy_current_state]; 1402 if ( yy_current_state >= 114 ) 1403 yy_c = yy_meta[(unsigned int) yy_c]; 1404 } 1405 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 1406 } 1407 1408 return yy_current_state; 1409 } 1410 1411 /* yy_try_NUL_trans - try to make a transition on the NUL character 1412 * 1413 * synopsis 1414 * next_state = yy_try_NUL_trans( current_state ); 1415 */ 1416 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) 1417 { 1418 register int yy_is_jam; 1419 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ 1420 register char *yy_cp = yyg->yy_c_buf_p; 1421 1422 register YY_CHAR yy_c = 1; 1423 if ( yy_accept[yy_current_state] ) 1424 { 1425 yyg->yy_last_accepting_state = yy_current_state; 1426 yyg->yy_last_accepting_cpos = yy_cp; 1427 } 1428 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1429 { 1430 yy_current_state = (int) yy_def[yy_current_state]; 1431 if ( yy_current_state >= 114 ) 1432 yy_c = yy_meta[(unsigned int) yy_c]; 1433 } 1434 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 1435 yy_is_jam = (yy_current_state == 113); 1436 1437 return yy_is_jam ? 0 : yy_current_state; 1438 } 1439 1440 #ifndef YY_NO_INPUT 1441 #ifdef __cplusplus 1442 static int yyinput (yyscan_t yyscanner) 1443 #else 1444 static int input (yyscan_t yyscanner) 1445 #endif 1446 1447 { 1448 int c; 1449 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1450 1451 *yyg->yy_c_buf_p = yyg->yy_hold_char; 1452 1453 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) 1454 { 1455 /* yy_c_buf_p now points to the character we want to return. 1456 * If this occurs *before* the EOB characters, then it's a 1457 * valid NUL; if not, then we've hit the end of the buffer. 1458 */ 1459 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) 1460 /* This was really a NUL. */ 1461 *yyg->yy_c_buf_p = '\0'; 1462 1463 else 1464 { /* need more input */ 1465 yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr; 1466 ++yyg->yy_c_buf_p; 1467 1468 switch ( yy_get_next_buffer( yyscanner ) ) 1469 { 1470 case EOB_ACT_LAST_MATCH: 1471 /* This happens because yy_g_n_b() 1472 * sees that we've accumulated a 1473 * token and flags that we need to 1474 * try matching the token before 1475 * proceeding. But for input(), 1476 * there's no matching to consider. 1477 * So convert the EOB_ACT_LAST_MATCH 1478 * to EOB_ACT_END_OF_FILE. 1479 */ 1480 1481 /* Reset buffer status. */ 1482 linguist_yyrestart(yyin ,yyscanner); 1483 1484 /*FALLTHROUGH*/ 1485 1486 case EOB_ACT_END_OF_FILE: 1487 { 1488 if ( linguist_yywrap(yyscanner ) ) 1489 return 0; 1490 1491 if ( ! yyg->yy_did_buffer_switch_on_eof ) 1492 YY_NEW_FILE; 1493 #ifdef __cplusplus 1494 return yyinput(yyscanner); 1495 #else 1496 return input(yyscanner); 1497 #endif 1498 } 1499 1500 case EOB_ACT_CONTINUE_SCAN: 1501 yyg->yy_c_buf_p = yyg->yytext_ptr + offset; 1502 break; 1503 } 1504 } 1505 } 1506 1507 c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ 1508 *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ 1509 yyg->yy_hold_char = *++yyg->yy_c_buf_p; 1510 1511 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); 1512 1513 return c; 1514 } 1515 #endif /* ifndef YY_NO_INPUT */ 1516 1517 /** Immediately switch to a different input stream. 1518 * @param input_file A readable stream. 1519 * @param yyscanner The scanner object. 1520 * @note This function does not reset the start condition to @c INITIAL . 1521 */ 1522 void linguist_yyrestart (FILE * input_file , yyscan_t yyscanner) 1523 { 1524 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1525 1526 if ( ! YY_CURRENT_BUFFER ){ 1527 linguist_yyensure_buffer_stack (yyscanner); 1528 YY_CURRENT_BUFFER_LVALUE = 1529 linguist_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); 1530 } 1531 1532 linguist_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); 1533 linguist_yy_load_buffer_state(yyscanner ); 1534 } 1535 1536 /** Switch to a different input buffer. 1537 * @param new_buffer The new input buffer. 1538 * @param yyscanner The scanner object. 1539 */ 1540 void linguist_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) 1541 { 1542 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1543 1544 /* TODO. We should be able to replace this entire function body 1545 * with 1546 * linguist_yypop_buffer_state(); 1547 * linguist_yypush_buffer_state(new_buffer); 1548 */ 1549 linguist_yyensure_buffer_stack (yyscanner); 1550 if ( YY_CURRENT_BUFFER == new_buffer ) 1551 return; 1552 1553 if ( YY_CURRENT_BUFFER ) 1554 { 1555 /* Flush out information for old buffer. */ 1556 *yyg->yy_c_buf_p = yyg->yy_hold_char; 1557 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; 1558 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; 1559 } 1560 1561 YY_CURRENT_BUFFER_LVALUE = new_buffer; 1562 linguist_yy_load_buffer_state(yyscanner ); 1563 1564 /* We don't actually know whether we did this switch during 1565 * EOF (linguist_yywrap()) processing, but the only time this flag 1566 * is looked at is after linguist_yywrap() is called, so it's safe 1567 * to go ahead and always set it. 1568 */ 1569 yyg->yy_did_buffer_switch_on_eof = 1; 1570 } 1571 1572 static void linguist_yy_load_buffer_state (yyscan_t yyscanner) 1573 { 1574 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1575 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 1576 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 1577 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 1578 yyg->yy_hold_char = *yyg->yy_c_buf_p; 1579 } 1580 1581 /** Allocate and initialize an input buffer state. 1582 * @param file A readable stream. 1583 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 1584 * @param yyscanner The scanner object. 1585 * @return the allocated buffer state. 1586 */ 1587 YY_BUFFER_STATE linguist_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) 1588 { 1589 YY_BUFFER_STATE b; 1590 1591 b = (YY_BUFFER_STATE) linguist_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); 1592 if ( ! b ) 1593 YY_FATAL_ERROR( "out of dynamic memory in linguist_yy_create_buffer()" ); 1594 1595 b->yy_buf_size = size; 1596 1597 /* yy_ch_buf has to be 2 characters longer than the size given because 1598 * we need to put in 2 end-of-buffer characters. 1599 */ 1600 b->yy_ch_buf = (char *) linguist_yyalloc(b->yy_buf_size + 2 ,yyscanner ); 1601 if ( ! b->yy_ch_buf ) 1602 YY_FATAL_ERROR( "out of dynamic memory in linguist_yy_create_buffer()" ); 1603 1604 b->yy_is_our_buffer = 1; 1605 1606 linguist_yy_init_buffer(b,file ,yyscanner); 1607 1608 return b; 1609 } 1610 1611 /** Destroy the buffer. 1612 * @param b a buffer created with linguist_yy_create_buffer() 1613 * @param yyscanner The scanner object. 1614 */ 1615 void linguist_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) 1616 { 1617 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1618 1619 if ( ! b ) 1620 return; 1621 1622 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 1623 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 1624 1625 if ( b->yy_is_our_buffer ) 1626 linguist_yyfree((void *) b->yy_ch_buf ,yyscanner ); 1627 1628 linguist_yyfree((void *) b ,yyscanner ); 1629 } 1630 1631 /* Initializes or reinitializes a buffer. 1632 * This function is sometimes called more than once on the same buffer, 1633 * such as during a linguist_yyrestart() or at EOF. 1634 */ 1635 static void linguist_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) 1636 1637 { 1638 int oerrno = errno; 1639 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1640 1641 linguist_yy_flush_buffer(b ,yyscanner); 1642 1643 b->yy_input_file = file; 1644 b->yy_fill_buffer = 1; 1645 1646 /* If b is the current buffer, then linguist_yy_init_buffer was _probably_ 1647 * called from linguist_yyrestart() or through yy_get_next_buffer. 1648 * In that case, we don't want to reset the lineno or column. 1649 */ 1650 if (b != YY_CURRENT_BUFFER){ 1651 b->yy_bs_lineno = 1; 1652 b->yy_bs_column = 0; 1653 } 1654 1655 b->yy_is_interactive = 0; 1656 1657 errno = oerrno; 1658 } 1659 1660 /** Discard all buffered characters. On the next scan, YY_INPUT will be called. 1661 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 1662 * @param yyscanner The scanner object. 1663 */ 1664 void linguist_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) 1665 { 1666 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1667 if ( ! b ) 1668 return; 1669 1670 b->yy_n_chars = 0; 1671 1672 /* We always need two end-of-buffer characters. The first causes 1673 * a transition to the end-of-buffer state. The second causes 1674 * a jam in that state. 1675 */ 1676 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 1677 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 1678 1679 b->yy_buf_pos = &b->yy_ch_buf[0]; 1680 1681 b->yy_at_bol = 1; 1682 b->yy_buffer_status = YY_BUFFER_NEW; 1683 1684 if ( b == YY_CURRENT_BUFFER ) 1685 linguist_yy_load_buffer_state(yyscanner ); 1686 } 1687 1688 /** Pushes the new state onto the stack. The new state becomes 1689 * the current state. This function will allocate the stack 1690 * if necessary. 1691 * @param new_buffer The new state. 1692 * @param yyscanner The scanner object. 1693 */ 1694 void linguist_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) 1695 { 1696 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1697 if (new_buffer == NULL) 1698 return; 1699 1700 linguist_yyensure_buffer_stack(yyscanner); 1701 1702 /* This block is copied from linguist_yy_switch_to_buffer. */ 1703 if ( YY_CURRENT_BUFFER ) 1704 { 1705 /* Flush out information for old buffer. */ 1706 *yyg->yy_c_buf_p = yyg->yy_hold_char; 1707 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; 1708 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; 1709 } 1710 1711 /* Only push if top exists. Otherwise, replace top. */ 1712 if (YY_CURRENT_BUFFER) 1713 yyg->yy_buffer_stack_top++; 1714 YY_CURRENT_BUFFER_LVALUE = new_buffer; 1715 1716 /* copied from linguist_yy_switch_to_buffer. */ 1717 linguist_yy_load_buffer_state(yyscanner ); 1718 yyg->yy_did_buffer_switch_on_eof = 1; 1719 } 1720 1721 /** Removes and deletes the top of the stack, if present. 1722 * The next element becomes the new top. 1723 * @param yyscanner The scanner object. 1724 */ 1725 void linguist_yypop_buffer_state (yyscan_t yyscanner) 1726 { 1727 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1728 if (!YY_CURRENT_BUFFER) 1729 return; 1730 1731 linguist_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner); 1732 YY_CURRENT_BUFFER_LVALUE = NULL; 1733 if (yyg->yy_buffer_stack_top > 0) 1734 --yyg->yy_buffer_stack_top; 1735 1736 if (YY_CURRENT_BUFFER) { 1737 linguist_yy_load_buffer_state(yyscanner ); 1738 yyg->yy_did_buffer_switch_on_eof = 1; 1739 } 1740 } 1741 1742 /* Allocates the stack if it does not exist. 1743 * Guarantees space for at least one push. 1744 */ 1745 static void linguist_yyensure_buffer_stack (yyscan_t yyscanner) 1746 { 1747 yy_size_t num_to_alloc; 1748 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1749 1750 if (!yyg->yy_buffer_stack) { 1751 1752 /* First allocation is just for 2 elements, since we don't know if this 1753 * scanner will even need a stack. We use 2 instead of 1 to avoid an 1754 * immediate realloc on the next call. 1755 */ 1756 num_to_alloc = 1; 1757 yyg->yy_buffer_stack = (struct yy_buffer_state**)linguist_yyalloc 1758 (num_to_alloc * sizeof(struct yy_buffer_state*) 1759 , yyscanner); 1760 if ( ! yyg->yy_buffer_stack ) 1761 YY_FATAL_ERROR( "out of dynamic memory in linguist_yyensure_buffer_stack()" ); 1762 1763 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 1764 1765 yyg->yy_buffer_stack_max = num_to_alloc; 1766 yyg->yy_buffer_stack_top = 0; 1767 return; 1768 } 1769 1770 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ 1771 1772 /* Increase the buffer to prepare for a possible push. */ 1773 int grow_size = 8 /* arbitrary grow size */; 1774 1775 num_to_alloc = yyg->yy_buffer_stack_max + grow_size; 1776 yyg->yy_buffer_stack = (struct yy_buffer_state**)linguist_yyrealloc 1777 (yyg->yy_buffer_stack, 1778 num_to_alloc * sizeof(struct yy_buffer_state*) 1779 , yyscanner); 1780 if ( ! yyg->yy_buffer_stack ) 1781 YY_FATAL_ERROR( "out of dynamic memory in linguist_yyensure_buffer_stack()" ); 1782 1783 /* zero only the new slots.*/ 1784 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); 1785 yyg->yy_buffer_stack_max = num_to_alloc; 1786 } 1787 } 1788 1789 /** Setup the input buffer state to scan directly from a user-specified character buffer. 1790 * @param base the character buffer 1791 * @param size the size in bytes of the character buffer 1792 * @param yyscanner The scanner object. 1793 * @return the newly allocated buffer state object. 1794 */ 1795 YY_BUFFER_STATE linguist_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) 1796 { 1797 YY_BUFFER_STATE b; 1798 1799 if ( size < 2 || 1800 base[size-2] != YY_END_OF_BUFFER_CHAR || 1801 base[size-1] != YY_END_OF_BUFFER_CHAR ) 1802 /* They forgot to leave room for the EOB's. */ 1803 return 0; 1804 1805 b = (YY_BUFFER_STATE) linguist_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner ); 1806 if ( ! b ) 1807 YY_FATAL_ERROR( "out of dynamic memory in linguist_yy_scan_buffer()" ); 1808 1809 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 1810 b->yy_buf_pos = b->yy_ch_buf = base; 1811 b->yy_is_our_buffer = 0; 1812 b->yy_input_file = 0; 1813 b->yy_n_chars = b->yy_buf_size; 1814 b->yy_is_interactive = 0; 1815 b->yy_at_bol = 1; 1816 b->yy_fill_buffer = 0; 1817 b->yy_buffer_status = YY_BUFFER_NEW; 1818 1819 linguist_yy_switch_to_buffer(b ,yyscanner ); 1820 1821 return b; 1822 } 1823 1824 /** Setup the input buffer state to scan a string. The next call to linguist_yylex() will 1825 * scan from a @e copy of @a str. 1826 * @param yystr a NUL-terminated string to scan 1827 * @param yyscanner The scanner object. 1828 * @return the newly allocated buffer state object. 1829 * @note If you want to scan bytes that may contain NUL values, then use 1830 * linguist_yy_scan_bytes() instead. 1831 */ 1832 YY_BUFFER_STATE linguist_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) 1833 { 1834 1835 return linguist_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner); 1836 } 1837 1838 /** Setup the input buffer state to scan the given bytes. The next call to linguist_yylex() will 1839 * scan from a @e copy of @a bytes. 1840 * @param bytes the byte buffer to scan 1841 * @param len the number of bytes in the buffer pointed to by @a bytes. 1842 * @param yyscanner The scanner object. 1843 * @return the newly allocated buffer state object. 1844 */ 1845 YY_BUFFER_STATE linguist_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner) 1846 { 1847 YY_BUFFER_STATE b; 1848 char *buf; 1849 yy_size_t n, i; 1850 1851 /* Get memory for full buffer, including space for trailing EOB's. */ 1852 n = _yybytes_len + 2; 1853 buf = (char *) linguist_yyalloc(n ,yyscanner ); 1854 if ( ! buf ) 1855 YY_FATAL_ERROR( "out of dynamic memory in linguist_yy_scan_bytes()" ); 1856 1857 for ( i = 0; i < _yybytes_len; ++i ) 1858 buf[i] = yybytes[i]; 1859 1860 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 1861 1862 b = linguist_yy_scan_buffer(buf,n ,yyscanner); 1863 if ( ! b ) 1864 YY_FATAL_ERROR( "bad buffer in linguist_yy_scan_bytes()" ); 1865 1866 /* It's okay to grow etc. this buffer, and we should throw it 1867 * away when we're done. 1868 */ 1869 b->yy_is_our_buffer = 1; 1870 1871 return b; 1872 } 1873 1874 #ifndef YY_EXIT_FAILURE 1875 #define YY_EXIT_FAILURE 2 1876 #endif 1877 1878 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) 1879 { 1880 (void) fprintf( stderr, "%s\n", msg ); 1881 exit( YY_EXIT_FAILURE ); 1882 } 1883 1884 /* Redefine yyless() so it works in section 3 code. */ 1885 1886 #undef yyless 1887 #define yyless(n) \ 1888 do \ 1889 { \ 1890 /* Undo effects of setting up yytext. */ \ 1891 int yyless_macro_arg = (n); \ 1892 YY_LESS_LINENO(yyless_macro_arg);\ 1893 yytext[yyleng] = yyg->yy_hold_char; \ 1894 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ 1895 yyg->yy_hold_char = *yyg->yy_c_buf_p; \ 1896 *yyg->yy_c_buf_p = '\0'; \ 1897 yyleng = yyless_macro_arg; \ 1898 } \ 1899 while ( 0 ) 1900 1901 /* Accessor methods (get/set functions) to struct members. */ 1902 1903 /** Get the user-defined data for this scanner. 1904 * @param yyscanner The scanner object. 1905 */ 1906 YY_EXTRA_TYPE linguist_yyget_extra (yyscan_t yyscanner) 1907 { 1908 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1909 return yyextra; 1910 } 1911 1912 /** Get the current line number. 1913 * @param yyscanner The scanner object. 1914 */ 1915 int linguist_yyget_lineno (yyscan_t yyscanner) 1916 { 1917 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1918 1919 if (! YY_CURRENT_BUFFER) 1920 return 0; 1921 1922 return yylineno; 1923 } 1924 1925 /** Get the current column number. 1926 * @param yyscanner The scanner object. 1927 */ 1928 int linguist_yyget_column (yyscan_t yyscanner) 1929 { 1930 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1931 1932 if (! YY_CURRENT_BUFFER) 1933 return 0; 1934 1935 return yycolumn; 1936 } 1937 1938 /** Get the input stream. 1939 * @param yyscanner The scanner object. 1940 */ 1941 FILE *linguist_yyget_in (yyscan_t yyscanner) 1942 { 1943 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1944 return yyin; 1945 } 1946 1947 /** Get the output stream. 1948 * @param yyscanner The scanner object. 1949 */ 1950 FILE *linguist_yyget_out (yyscan_t yyscanner) 1951 { 1952 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1953 return yyout; 1954 } 1955 1956 /** Get the length of the current token. 1957 * @param yyscanner The scanner object. 1958 */ 1959 yy_size_t linguist_yyget_leng (yyscan_t yyscanner) 1960 { 1961 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1962 return yyleng; 1963 } 1964 1965 /** Get the current token. 1966 * @param yyscanner The scanner object. 1967 */ 1968 1969 char *linguist_yyget_text (yyscan_t yyscanner) 1970 { 1971 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1972 return yytext; 1973 } 1974 1975 /** Set the user-defined data. This data is never touched by the scanner. 1976 * @param user_defined The data to be associated with this scanner. 1977 * @param yyscanner The scanner object. 1978 */ 1979 void linguist_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) 1980 { 1981 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1982 yyextra = user_defined ; 1983 } 1984 1985 /** Set the current line number. 1986 * @param line_number 1987 * @param yyscanner The scanner object. 1988 */ 1989 void linguist_yyset_lineno (int line_number , yyscan_t yyscanner) 1990 { 1991 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 1992 1993 /* lineno is only valid if an input buffer exists. */ 1994 if (! YY_CURRENT_BUFFER ) 1995 yy_fatal_error( "linguist_yyset_lineno called with no buffer" , yyscanner); 1996 1997 yylineno = line_number; 1998 } 1999 2000 /** Set the current column. 2001 * @param line_number 2002 * @param yyscanner The scanner object. 2003 */ 2004 void linguist_yyset_column (int column_no , yyscan_t yyscanner) 2005 { 2006 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2007 2008 /* column is only valid if an input buffer exists. */ 2009 if (! YY_CURRENT_BUFFER ) 2010 yy_fatal_error( "linguist_yyset_column called with no buffer" , yyscanner); 2011 2012 yycolumn = column_no; 2013 } 2014 2015 /** Set the input stream. This does not discard the current 2016 * input buffer. 2017 * @param in_str A readable stream. 2018 * @param yyscanner The scanner object. 2019 * @see linguist_yy_switch_to_buffer 2020 */ 2021 void linguist_yyset_in (FILE * in_str , yyscan_t yyscanner) 2022 { 2023 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2024 yyin = in_str ; 2025 } 2026 2027 void linguist_yyset_out (FILE * out_str , yyscan_t yyscanner) 2028 { 2029 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2030 yyout = out_str ; 2031 } 2032 2033 int linguist_yyget_debug (yyscan_t yyscanner) 2034 { 2035 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2036 return yy_flex_debug; 2037 } 2038 2039 void linguist_yyset_debug (int bdebug , yyscan_t yyscanner) 2040 { 2041 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2042 yy_flex_debug = bdebug ; 2043 } 2044 2045 /* Accessor methods for yylval and yylloc */ 2046 2047 /* User-visible API */ 2048 2049 /* linguist_yylex_init is special because it creates the scanner itself, so it is 2050 * the ONLY reentrant function that doesn't take the scanner as the last argument. 2051 * That's why we explicitly handle the declaration, instead of using our macros. 2052 */ 2053 2054 int linguist_yylex_init(yyscan_t* ptr_yy_globals) 2055 2056 { 2057 if (ptr_yy_globals == NULL){ 2058 errno = EINVAL; 2059 return 1; 2060 } 2061 2062 *ptr_yy_globals = (yyscan_t) linguist_yyalloc ( sizeof( struct yyguts_t ), NULL ); 2063 2064 if (*ptr_yy_globals == NULL){ 2065 errno = ENOMEM; 2066 return 1; 2067 } 2068 2069 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ 2070 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); 2071 2072 return yy_init_globals ( *ptr_yy_globals ); 2073 } 2074 2075 /* linguist_yylex_init_extra has the same functionality as linguist_yylex_init, but follows the 2076 * convention of taking the scanner as the last argument. Note however, that 2077 * this is a *pointer* to a scanner, as it will be allocated by this call (and 2078 * is the reason, too, why this function also must handle its own declaration). 2079 * The user defined value in the first argument will be available to linguist_yyalloc in 2080 * the yyextra field. 2081 */ 2082 2083 int linguist_yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals ) 2084 2085 { 2086 struct yyguts_t dummy_yyguts; 2087 2088 linguist_yyset_extra (yy_user_defined, &dummy_yyguts); 2089 2090 if (ptr_yy_globals == NULL){ 2091 errno = EINVAL; 2092 return 1; 2093 } 2094 2095 *ptr_yy_globals = (yyscan_t) linguist_yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); 2096 2097 if (*ptr_yy_globals == NULL){ 2098 errno = ENOMEM; 2099 return 1; 2100 } 2101 2102 /* By setting to 0xAA, we expose bugs in 2103 yy_init_globals. Leave at 0x00 for releases. */ 2104 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); 2105 2106 linguist_yyset_extra (yy_user_defined, *ptr_yy_globals); 2107 2108 return yy_init_globals ( *ptr_yy_globals ); 2109 } 2110 2111 static int yy_init_globals (yyscan_t yyscanner) 2112 { 2113 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2114 /* Initialization is the same as for the non-reentrant scanner. 2115 * This function is called from linguist_yylex_destroy(), so don't allocate here. 2116 */ 2117 2118 yyg->yy_buffer_stack = 0; 2119 yyg->yy_buffer_stack_top = 0; 2120 yyg->yy_buffer_stack_max = 0; 2121 yyg->yy_c_buf_p = (char *) 0; 2122 yyg->yy_init = 0; 2123 yyg->yy_start = 0; 2124 2125 yyg->yy_start_stack_ptr = 0; 2126 yyg->yy_start_stack_depth = 0; 2127 yyg->yy_start_stack = NULL; 2128 2129 /* Defined in main.c */ 2130 #ifdef YY_STDINIT 2131 yyin = stdin; 2132 yyout = stdout; 2133 #else 2134 yyin = (FILE *) 0; 2135 yyout = (FILE *) 0; 2136 #endif 2137 2138 /* For future reference: Set errno on error, since we are called by 2139 * linguist_yylex_init() 2140 */ 2141 return 0; 2142 } 2143 2144 /* linguist_yylex_destroy is for both reentrant and non-reentrant scanners. */ 2145 int linguist_yylex_destroy (yyscan_t yyscanner) 2146 { 2147 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2148 2149 /* Pop the buffer stack, destroying each element. */ 2150 while(YY_CURRENT_BUFFER){ 2151 linguist_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner ); 2152 YY_CURRENT_BUFFER_LVALUE = NULL; 2153 linguist_yypop_buffer_state(yyscanner); 2154 } 2155 2156 /* Destroy the stack itself. */ 2157 linguist_yyfree(yyg->yy_buffer_stack ,yyscanner); 2158 yyg->yy_buffer_stack = NULL; 2159 2160 /* Destroy the start condition stack. */ 2161 linguist_yyfree(yyg->yy_start_stack ,yyscanner ); 2162 yyg->yy_start_stack = NULL; 2163 2164 /* Reset the globals. This is important in a non-reentrant scanner so the next time 2165 * linguist_yylex() is called, initialization will occur. */ 2166 yy_init_globals( yyscanner); 2167 2168 /* Destroy the main struct (reentrant only). */ 2169 linguist_yyfree ( yyscanner , yyscanner ); 2170 yyscanner = NULL; 2171 return 0; 2172 } 2173 2174 /* 2175 * Internal utility routines. 2176 */ 2177 2178 #ifndef yytext_ptr 2179 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) 2180 { 2181 register int i; 2182 for ( i = 0; i < n; ++i ) 2183 s1[i] = s2[i]; 2184 } 2185 #endif 2186 2187 #ifdef YY_NEED_STRLEN 2188 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) 2189 { 2190 register int n; 2191 for ( n = 0; s[n]; ++n ) 2192 ; 2193 2194 return n; 2195 } 2196 #endif 2197 2198 void *linguist_yyalloc (yy_size_t size , yyscan_t yyscanner) 2199 { 2200 return (void *) malloc( size ); 2201 } 2202 2203 void *linguist_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) 2204 { 2205 /* The cast to (char *) in the following accommodates both 2206 * implementations that use char* generic pointers, and those 2207 * that use void* generic pointers. It works with the latter 2208 * because both ANSI C and C++ allow castless assignment from 2209 * any pointer type to void*, and deal with argument conversions 2210 * as though doing an assignment. 2211 */ 2212 return (void *) realloc( (char *) ptr, size ); 2213 } 2214 2215 void linguist_yyfree (void * ptr , yyscan_t yyscanner) 2216 { 2217 free( (char *) ptr ); /* see linguist_yyrealloc() for (char *) cast */ 2218 } 2219 2220 #define YYTABLES_NAME "yytables" 2221 2222 #line 118 "tokenizer.l" 2223 2224 2225 2226