|
|
1.1 ! root 1: /* A lexical scanner generated by flex */ ! 2: ! 3: /* scanner skeleton version: ! 4: * $Header: /usr/fsys/odin/a/vern/flex/RCS/flex.skel,v 2.13 90/05/26 17:24:13 vern Exp $ ! 5: */ ! 6: ! 7: #define FLEX_SCANNER ! 8: ! 9: #include <stdio.h> ! 10: ! 11: #ifdef __STDC__ ! 12: ! 13: #ifndef DONT_HAVE_STDLIB_H ! 14: #include <stdlib.h> ! 15: #else ! 16: void *malloc( unsigned ); ! 17: void free( void* ); ! 18: #endif ! 19: ! 20: #define YY_USE_PROTOS ! 21: #define YY_USE_CONST ! 22: #endif ! 23: ! 24: ! 25: /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ ! 26: #ifdef c_plusplus ! 27: #ifndef __cplusplus ! 28: #define __cplusplus ! 29: #endif ! 30: #endif ! 31: ! 32: ! 33: #ifdef __cplusplus ! 34: ! 35: #ifndef __STDC__ ! 36: #include <stdlib.h> ! 37: #endif ! 38: ! 39: #include <osfcn.h> ! 40: ! 41: /* use prototypes in function declarations */ ! 42: #define YY_USE_PROTOS ! 43: ! 44: /* the "const" storage-class-modifier is valid */ ! 45: #define YY_USE_CONST ! 46: ! 47: #endif ! 48: ! 49: ! 50: #ifdef __TURBOC__ ! 51: #define YY_USE_CONST ! 52: #endif ! 53: ! 54: ! 55: #ifndef YY_USE_CONST ! 56: #define const ! 57: #endif ! 58: ! 59: ! 60: #ifdef YY_USE_PROTOS ! 61: #define YY_PROTO(proto) proto ! 62: #else ! 63: #define YY_PROTO(proto) () ! 64: /* there's no standard place to get these definitions */ ! 65: char *malloc(); ! 66: int free(); ! 67: int read(); ! 68: #endif ! 69: ! 70: ! 71: /* amount of stuff to slurp up with each read */ ! 72: #ifndef YY_READ_BUF_SIZE ! 73: #define YY_READ_BUF_SIZE 8192 ! 74: #endif ! 75: ! 76: /* returned upon end-of-file */ ! 77: #define YY_END_TOK 0 ! 78: ! 79: /* copy whatever the last rule matched to the standard output */ ! 80: ! 81: /* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */ ! 82: /* this used to be an fputs(), but since the string might contain NUL's, ! 83: * we now use fwrite() ! 84: */ ! 85: #define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout ) ! 86: ! 87: /* gets input and stuffs it into "buf". number of characters read, or YY_NULL, ! 88: * is returned in "result". ! 89: */ ! 90: #define YY_INPUT(buf,result,max_size) \ ! 91: if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \ ! 92: YY_FATAL_ERROR( "read() in flex scanner failed" ); ! 93: #define YY_NULL 0 ! 94: ! 95: /* no semi-colon after return; correct usage is to write "yyterminate();" - ! 96: * we don't want an extra ';' after the "return" because that will cause ! 97: * some compilers to complain about unreachable statements. ! 98: */ ! 99: #define yyterminate() return ( YY_NULL ) ! 100: ! 101: /* report a fatal error */ ! 102: ! 103: /* The funky do-while is used to turn this macro definition into ! 104: * a single C statement (which needs a semi-colon terminator). ! 105: * This avoids problems with code like: ! 106: * ! 107: * if ( something_happens ) ! 108: * YY_FATAL_ERROR( "oops, the something happened" ); ! 109: * else ! 110: * everything_okay(); ! 111: * ! 112: * Prior to using the do-while the compiler would get upset at the ! 113: * "else" because it interpreted the "if" statement as being all ! 114: * done when it reached the ';' after the YY_FATAL_ERROR() call. ! 115: */ ! 116: ! 117: #define YY_FATAL_ERROR(msg) \ ! 118: do \ ! 119: { \ ! 120: (void) fputs( msg, stderr ); \ ! 121: (void) putc( '\n', stderr ); \ ! 122: exit( 1 ); \ ! 123: } \ ! 124: while ( 0 ) ! 125: ! 126: /* default yywrap function - always treat EOF as an EOF */ ! 127: #define yywrap() 1 ! 128: ! 129: /* enter a start condition. This macro really ought to take a parameter, ! 130: * but we do it the disgusting crufty way forced on us by the ()-less ! 131: * definition of BEGIN ! 132: */ ! 133: #define BEGIN yy_start = 1 + 2 * ! 134: ! 135: /* action number for EOF rule of a given start state */ ! 136: #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) ! 137: ! 138: /* special action meaning "start processing a new file" */ ! 139: #define YY_NEW_FILE \ ! 140: do \ ! 141: { \ ! 142: yy_init_buffer( yy_current_buffer, yyin ); \ ! 143: yy_load_buffer_state(); \ ! 144: } \ ! 145: while ( 0 ) ! 146: ! 147: /* default declaration of generated scanner - a define so the user can ! 148: * easily add parameters ! 149: */ ! 150: #define YY_DECL int yylex YY_PROTO(( void )) ! 151: ! 152: /* code executed at the end of each rule */ ! 153: #define YY_BREAK break; ! 154: ! 155: #define YY_END_OF_BUFFER_CHAR 0 ! 156: ! 157: #ifndef YY_BUF_SIZE ! 158: #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */ ! 159: #endif ! 160: ! 161: typedef struct yy_buffer_state *YY_BUFFER_STATE; ! 162: ! 163: #define YY_CHAR unsigned char ! 164: # line 1 "scan.l" ! 165: #define INITIAL 0 ! 166: /* scan.l - scanner for flex input */ ! 167: /* ! 168: * Copyright (c) 1989 The Regents of the University of California. ! 169: * All rights reserved. ! 170: * ! 171: * This code is derived from software contributed to Berkeley by ! 172: * Vern Paxson. ! 173: * ! 174: * The United States Government has rights in this work pursuant to ! 175: * contract no. DE-AC03-76SF00098 between the United States Department of ! 176: * Energy and the University of California. ! 177: * ! 178: * Redistribution and use in source and binary forms are permitted ! 179: * provided that the above copyright notice and this paragraph are ! 180: * duplicated in all such forms and that any documentation, ! 181: * advertising materials, and other materials related to such ! 182: * distribution and use acknowledge that the software was developed ! 183: * by the University of California, Berkeley. The name of the ! 184: * University may not be used to endorse or promote products derived ! 185: * from this software without specific prior written permission. ! 186: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 187: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 188: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 189: */ ! 190: # line 28 "scan.l" ! 191: #undef yywrap ! 192: ! 193: #include "flexdef.h" ! 194: #include "parse.h" ! 195: ! 196: #ifndef lint ! 197: static char copyright[] = ! 198: "@(#) Copyright (c) 1989 The Regents of the University of California.\n"; ! 199: static char CR_continuation[] = "@(#) All rights reserved.\n"; ! 200: ! 201: static char rcsid[] = ! 202: "@(#) $Header: /usr/fsys/odin/a/vern/flex/RCS/scan.l,v 2.8 90/05/26 16:53:23 vern Exp $ (LBL)"; ! 203: #endif ! 204: ! 205: #define ACTION_ECHO fprintf( temp_action_file, "%s", yytext ) ! 206: #define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" ); ! 207: ! 208: #undef YY_DECL ! 209: #define YY_DECL \ ! 210: int flexscan() ! 211: ! 212: #define RETURNCHAR \ ! 213: yylval = yytext[0]; \ ! 214: return ( CHAR ); ! 215: ! 216: #define RETURNNAME \ ! 217: (void) strcpy( nmstr, (char *) yytext ); \ ! 218: return ( NAME ); ! 219: ! 220: #define PUT_BACK_STRING(str, start) \ ! 221: for ( i = strlen( (char *) (str) ) - 1; i >= start; --i ) \ ! 222: unput((str)[i]) ! 223: ! 224: #define CHECK_REJECT(str) \ ! 225: if ( all_upper( str ) ) \ ! 226: reject = true; ! 227: ! 228: #define CHECK_YYMORE(str) \ ! 229: if ( all_lower( str ) ) \ ! 230: yymore_used = true; ! 231: #define SECT2 1 ! 232: #define SECT2PROLOG 2 ! 233: #define SECT3 3 ! 234: #define CODEBLOCK 4 ! 235: #define PICKUPDEF 5 ! 236: #define SC 6 ! 237: #define CARETISBOL 7 ! 238: #define NUM 8 ! 239: #define QUOTE 9 ! 240: #define FIRSTCCL 10 ! 241: #define CCL 11 ! 242: #define ACTION 12 ! 243: #define RECOVER 13 ! 244: #define BRACEERROR 14 ! 245: #define C_COMMENT 15 ! 246: #define ACTION_COMMENT 16 ! 247: #define ACTION_STRING 17 ! 248: #define PERCENT_BRACE_ACTION 18 ! 249: #define USED_LIST 19 ! 250: #define CODEBLOCK_2 20 ! 251: #define XLATION 21 ! 252: # line 85 "scan.l" ! 253: ! 254: /* done after the current pattern has been matched and before the ! 255: * corresponding action - sets up yytext ! 256: */ ! 257: #define YY_DO_BEFORE_ACTION \ ! 258: yytext = yy_bp; \ ! 259: yyleng = yy_cp - yy_bp; \ ! 260: yy_hold_char = *yy_cp; \ ! 261: *yy_cp = '\0'; \ ! 262: yy_c_buf_p = yy_cp; ! 263: ! 264: #define EOB_ACT_CONTINUE_SCAN 0 ! 265: #define EOB_ACT_END_OF_FILE 1 ! 266: #define EOB_ACT_LAST_MATCH 2 ! 267: ! 268: /* return all but the first 'n' matched characters back to the input stream */ ! 269: #define yyless(n) \ ! 270: do \ ! 271: { \ ! 272: /* undo effects of setting up yytext */ \ ! 273: *yy_cp = yy_hold_char; \ ! 274: yy_c_buf_p = yy_cp = yy_bp + n; \ ! 275: YY_DO_BEFORE_ACTION; /* set up yytext again */ \ ! 276: } \ ! 277: while ( 0 ) ! 278: ! 279: #define unput(c) yyunput( c, yytext ) ! 280: ! 281: ! 282: struct yy_buffer_state ! 283: { ! 284: FILE *yy_input_file; ! 285: ! 286: YY_CHAR *yy_ch_buf; /* input buffer */ ! 287: YY_CHAR *yy_buf_pos; /* current position in input buffer */ ! 288: ! 289: /* size of input buffer in bytes, not including room for EOB characters*/ ! 290: int yy_buf_size; ! 291: ! 292: /* number of characters read into yy_ch_buf, not including EOB characters */ ! 293: int yy_n_chars; ! 294: ! 295: int yy_eof_status; /* whether we've seen an EOF on this buffer */ ! 296: #define EOF_NOT_SEEN 0 ! 297: /* "pending" happens when the EOF has been seen but there's still ! 298: * some text process ! 299: */ ! 300: #define EOF_PENDING 1 ! 301: #define EOF_DONE 2 ! 302: }; ! 303: ! 304: static YY_BUFFER_STATE yy_current_buffer; ! 305: ! 306: /* we provide macros for accessing buffer states in case in the ! 307: * future we want to put the buffer states in a more general ! 308: * "scanner state" ! 309: */ ! 310: #define YY_CURRENT_BUFFER yy_current_buffer ! 311: ! 312: ! 313: /* yy_hold_char holds the character lost when yytext is formed */ ! 314: static YY_CHAR yy_hold_char; ! 315: ! 316: static int yy_n_chars; /* number of characters read into yy_ch_buf */ ! 317: ! 318: ! 319: ! 320: #ifndef YY_USER_ACTION ! 321: #define YY_USER_ACTION ! 322: #endif ! 323: ! 324: #ifndef YY_USER_INIT ! 325: #define YY_USER_INIT ! 326: #endif ! 327: ! 328: extern YY_CHAR *yytext; ! 329: extern int yyleng; ! 330: extern FILE *yyin, *yyout; ! 331: ! 332: YY_CHAR *yytext; ! 333: int yyleng; ! 334: ! 335: FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; ! 336: ! 337: #define YY_END_OF_BUFFER 121 ! 338: typedef int yy_state_type; ! 339: static const short int yy_accept[341] = ! 340: { 0, ! 341: 0, 0, 0, 0, 0, 0, 119, 119, 0, 0, ! 342: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 343: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 344: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 345: 0, 0, 0, 0, 121, 19, 7, 18, 19, 16, ! 346: 1, 17, 19, 19, 19, 15, 67, 59, 60, 53, ! 347: 67, 66, 51, 67, 67, 67, 50, 49, 67, 52, ! 348: 120, 47, 119, 119, 28, 29, 28, 28, 28, 28, ! 349: 31, 30, 32, 73, 120, 69, 70, 72, 74, 88, ! 350: 89, 86, 85, 87, 75, 77, 76, 75, 81, 80, ! 351: ! 352: 81, 81, 83, 83, 83, 84, 99, 104, 103, 105, ! 353: 105, 100, 100, 100, 97, 98, 120, 33, 91, 90, ! 354: 22, 24, 23, 107, 109, 108, 111, 113, 114, 115, ! 355: 95, 95, 96, 95, 95, 95, 95, 38, 35, 34, ! 356: 38, 38, 44, 42, 45, 44, 44, 41, 41, 41, ! 357: 40, 41, 7, 18, 0, 16, 1, 17, 0, 2, ! 358: 14, 8, 0, 12, 4, 0, 0, 5, 0, 3, ! 359: 15, 59, 60, 0, 0, 56, 0, 0, 0, 117, ! 360: 117, 117, 55, 54, 55, 50, 49, 63, 50, 0, ! 361: 47, 46, 119, 119, 28, 28, 28, 28, 28, 31, ! 362: ! 363: 30, 71, 72, 85, 118, 118, 118, 78, 79, 82, ! 364: 99, 0, 102, 0, 101, 100, 100, 100, 0, 33, ! 365: 22, 20, 107, 106, 111, 112, 95, 95, 95, 92, ! 366: 95, 95, 95, 38, 35, 38, 38, 42, 0, 43, ! 367: 43, 43, 42, 40, 0, 13, 14, 8, 8, 0, ! 368: 12, 4, 0, 0, 0, 5, 0, 6, 57, 0, ! 369: 58, 0, 64, 0, 0, 117, 117, 55, 55, 65, ! 370: 63, 28, 28, 28, 25, 0, 118, 118, 100, 100, ! 371: 0, 21, 92, 92, 95, 95, 38, 38, 0, 39, ! 372: 43, 43, 0, 11, 4, 0, 11, 0, 0, 5, ! 373: ! 374: 0, 0, 0, 117, 28, 28, 118, 100, 100, 95, ! 375: 95, 38, 38, 43, 0, 9, 0, 0, 0, 28, ! 376: 28, 100, 100, 95, 95, 38, 38, 0, 0, 26, ! 377: 27, 93, 94, 93, 94, 36, 37, 10, 62, 0 ! 378: } ; ! 379: ! 380: static const YY_CHAR yy_ec[256] = ! 381: { 0, ! 382: 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, ! 383: 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, ! 384: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 385: 1, 5, 1, 6, 7, 8, 9, 1, 10, 11, ! 386: 11, 12, 11, 13, 14, 11, 15, 16, 16, 16, ! 387: 16, 16, 16, 16, 16, 16, 16, 1, 1, 17, ! 388: 1, 18, 11, 1, 24, 25, 26, 27, 28, 29, ! 389: 23, 23, 23, 30, 31, 23, 32, 33, 34, 31, ! 390: 23, 35, 36, 37, 38, 23, 23, 39, 40, 23, ! 391: 19, 20, 21, 22, 23, 1, 24, 25, 26, 27, ! 392: ! 393: 28, 29, 23, 23, 23, 30, 31, 23, 32, 33, ! 394: 34, 31, 23, 35, 36, 37, 38, 23, 23, 39, ! 395: 40, 23, 41, 42, 43, 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: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 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: ! 404: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 405: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 406: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 407: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 408: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 409: 1, 1, 1, 1, 1 ! 410: } ; ! 411: ! 412: static const YY_CHAR yy_meta[44] = ! 413: { 0, ! 414: 1, 2, 3, 2, 2, 4, 1, 1, 1, 5, ! 415: 1, 6, 1, 7, 5, 8, 1, 1, 1, 9, ! 416: 10, 1, 11, 12, 12, 12, 12, 12, 12, 11, ! 417: 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, ! 418: 5, 1, 13 ! 419: } ; ! 420: ! 421: static const short int yy_base[404] = ! 422: { 0, ! 423: 0, 43, 85, 126, 1371, 1370, 1369, 1353, 168, 1346, ! 424: 104, 108, 211, 0, 1332, 1320, 120, 252, 95, 119, ! 425: 137, 144, 100, 141, 295, 0, 1327, 1323, 113, 336, ! 426: 254, 255, 257, 258, 253, 268, 379, 0, 338, 421, ! 427: 0, 0, 273, 460, 1325, 1442, 281, 1442, 1287, 0, ! 428: 287, 1442, 1279, 472, 1257, 0, 1442, 425, 1442, 1442, ! 429: 147, 1442, 1239, 1235, 78, 513, 433, 1442, 83, 1442, ! 430: 1248, 0, 1247, 1442, 0, 1442, 0, 1218, 1205, 1194, ! 431: 0, 342, 1442, 1442, 1442, 1442, 1202, 0, 1442, 1442, ! 432: 1442, 1442, 1201, 1442, 1442, 1442, 1442, 79, 1442, 1442, ! 433: ! 434: 103, 1198, 1442, 0, 248, 1442, 0, 1442, 1442, 252, ! 435: 1199, 0, 1173, 1158, 1442, 1442, 1185, 1442, 1442, 1442, ! 436: 0, 1442, 1170, 0, 1442, 1152, 0, 1442, 1442, 0, ! 437: 0, 346, 1442, 1123, 0, 1125, 1105, 0, 352, 1442, ! 438: 1116, 1103, 1442, 356, 1442, 1100, 329, 1442, 360, 1093, ! 439: 1101, 333, 441, 1442, 445, 0, 449, 1442, 1101, 1442, ! 440: 365, 453, 1094, 466, 0, 480, 330, 0, 1095, 1442, ! 441: 0, 555, 1442, 1044, 1077, 1442, 1051, 133, 456, 1442, ! 442: 1059, 0, 0, 1442, 584, 563, 1442, 0, 1442, 1071, ! 443: 0, 1442, 1063, 1442, 0, 0, 1010, 1007, 627, 0, ! 444: ! 445: 484, 1442, 0, 998, 1442, 992, 0, 1442, 1442, 1442, ! 446: 0, 421, 1442, 0, 1442, 0, 971, 964, 992, 1442, ! 447: 0, 962, 0, 1442, 0, 1442, 0, 488, 921, 670, ! 448: 0, 717, 714, 0, 497, 715, 712, 569, 573, 1442, ! 449: 727, 0, 577, 726, 581, 1442, 585, 0, 590, 738, ! 450: 597, 0, 712, 683, 691, 0, 670, 1442, 1442, 623, ! 451: 1442, 591, 1442, 458, 702, 590, 0, 0, 0, 1442, ! 452: 0, 576, 569, 0, 1442, 593, 575, 0, 560, 546, ! 453: 567, 1442, 0, 0, 541, 529, 534, 527, 730, 1442, ! 454: 500, 0, 509, 1442, 0, 734, 1442, 468, 467, 0, ! 455: ! 456: 462, 704, 724, 1442, 461, 438, 1442, 440, 425, 433, ! 457: 405, 413, 398, 1442, 404, 1442, 359, 259, 332, 338, ! 458: 346, 334, 331, 257, 253, 226, 137, 133, 81, 0, ! 459: 0, 0, 0, 0, 0, 0, 0, 1442, 1442, 1442, ! 460: 753, 766, 779, 792, 805, 818, 831, 844, 857, 870, ! 461: 883, 896, 909, 922, 935, 948, 955, 967, 980, 986, ! 462: 998, 1011, 1024, 1037, 1050, 1063, 1070, 1082, 1089, 1101, ! 463: 1114, 1127, 1140, 1150, 1157, 1169, 1182, 1195, 1208, 1221, ! 464: 1234, 1241, 1253, 1266, 1279, 1282, 1284, 1296, 1309, 1315, ! 465: 1327, 1339, 1345, 1357, 1363, 1375, 1382, 1388, 1393, 1405, ! 466: ! 467: 1411, 1423, 1429 ! 468: } ; ! 469: ! 470: static const short int yy_def[404] = ! 471: { 0, ! 472: 340, 340, 341, 341, 342, 342, 343, 343, 340, 9, ! 473: 344, 344, 340, 13, 345, 345, 346, 346, 347, 347, ! 474: 348, 348, 349, 349, 340, 25, 350, 350, 345, 345, ! 475: 351, 351, 352, 352, 353, 353, 340, 37, 354, 354, ! 476: 37, 37, 355, 356, 340, 340, 340, 340, 340, 357, ! 477: 340, 340, 358, 359, 340, 360, 340, 340, 340, 340, ! 478: 340, 340, 340, 361, 362, 340, 340, 340, 340, 340, ! 479: 363, 364, 365, 340, 366, 340, 367, 367, 367, 366, ! 480: 368, 340, 340, 340, 340, 340, 340, 369, 340, 340, ! 481: 340, 340, 340, 340, 340, 340, 340, 362, 340, 340, ! 482: ! 483: 370, 371, 340, 372, 362, 340, 373, 340, 340, 374, ! 484: 340, 375, 375, 375, 340, 340, 376, 340, 340, 340, ! 485: 377, 340, 340, 378, 340, 340, 379, 340, 340, 380, ! 486: 381, 381, 340, 381, 382, 382, 382, 383, 340, 340, ! 487: 383, 383, 340, 340, 340, 340, 384, 340, 340, 340, ! 488: 340, 384, 340, 340, 340, 357, 340, 340, 358, 340, ! 489: 340, 385, 340, 340, 386, 340, 340, 387, 388, 340, ! 490: 360, 340, 340, 340, 389, 340, 340, 361, 361, 340, ! 491: 340, 390, 391, 340, 391, 340, 340, 392, 340, 363, ! 492: 364, 340, 365, 340, 366, 367, 367, 367, 340, 368, ! 493: ! 494: 340, 340, 369, 340, 340, 340, 393, 340, 340, 340, ! 495: 373, 374, 340, 374, 340, 375, 375, 375, 376, 340, ! 496: 377, 394, 378, 340, 379, 340, 381, 381, 381, 340, ! 497: 382, 382, 382, 383, 340, 383, 383, 340, 340, 340, ! 498: 340, 395, 340, 340, 340, 340, 340, 385, 385, 396, ! 499: 340, 397, 396, 340, 340, 398, 388, 340, 340, 389, ! 500: 340, 340, 340, 361, 361, 340, 399, 391, 185, 340, ! 501: 392, 367, 367, 199, 340, 400, 340, 401, 375, 375, ! 502: 394, 340, 230, 402, 382, 382, 383, 383, 340, 340, ! 503: 340, 403, 396, 340, 397, 396, 340, 340, 340, 398, ! 504: ! 505: 340, 361, 265, 340, 367, 367, 340, 375, 375, 382, ! 506: 382, 383, 383, 340, 340, 340, 340, 361, 361, 367, ! 507: 367, 375, 375, 382, 382, 383, 383, 340, 340, 367, ! 508: 367, 375, 375, 382, 382, 383, 383, 340, 340, 0, ! 509: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 510: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 511: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 512: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 513: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 514: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 515: ! 516: 340, 340, 340 ! 517: } ; ! 518: ! 519: static const short int yy_nxt[1486] = ! 520: { 0, ! 521: 46, 47, 48, 47, 47, 46, 46, 46, 49, 46, ! 522: 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, ! 523: 46, 46, 50, 50, 50, 50, 50, 50, 50, 50, ! 524: 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, ! 525: 46, 46, 46, 46, 51, 52, 51, 51, 46, 53, ! 526: 46, 54, 46, 46, 46, 46, 46, 55, 46, 46, ! 527: 46, 46, 46, 46, 46, 56, 56, 56, 56, 56, ! 528: 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, ! 529: 56, 56, 56, 46, 46, 46, 58, 59, 58, 58, ! 530: 60, 188, 61, 181, 181, 62, 62, 96, 339, 62, ! 531: ! 532: 97, 63, 85, 64, 65, 82, 83, 82, 82, 82, ! 533: 83, 82, 82, 104, 98, 119, 182, 182, 206, 105, ! 534: 106, 96, 91, 189, 97, 66, 62, 67, 68, 67, ! 535: 67, 60, 92, 61, 69, 93, 62, 62, 98, 85, ! 536: 62, 207, 63, 85, 64, 65, 85, 70, 176, 176, ! 537: 100, 176, 179, 263, 104, 120, 101, 100, 102, 338, ! 538: 105, 106, 94, 101, 337, 102, 66, 62, 75, 75, ! 539: 76, 75, 75, 75, 75, 75, 75, 75, 75, 75, ! 540: 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, ! 541: 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, ! 542: ! 543: 77, 77, 78, 77, 77, 77, 77, 79, 75, 75, ! 544: 75, 84, 84, 85, 84, 84, 84, 84, 84, 84, ! 545: 84, 84, 84, 86, 84, 84, 84, 84, 87, 84, ! 546: 84, 84, 84, 88, 88, 88, 88, 88, 88, 88, ! 547: 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, ! 548: 88, 84, 84, 84, 91, 128, 122, 122, 129, 125, ! 549: 125, 213, 336, 181, 92, 123, 123, 93, 126, 126, ! 550: 128, 214, 130, 129, 144, 145, 144, 144, 179, 263, ! 551: 335, 146, 153, 154, 153, 153, 182, 130, 157, 158, ! 552: 157, 157, 147, 334, 94, 107, 107, 108, 107, 107, ! 553: ! 554: 109, 107, 107, 107, 110, 107, 107, 107, 107, 111, ! 555: 107, 107, 107, 107, 107, 107, 107, 112, 112, 112, ! 556: 112, 112, 112, 112, 112, 112, 112, 112, 112, 113, ! 557: 112, 112, 112, 112, 114, 115, 107, 116, 119, 139, ! 558: 140, 139, 139, 201, 241, 201, 201, 228, 241, 228, ! 559: 228, 179, 263, 235, 229, 235, 235, 238, 333, 238, ! 560: 238, 243, 254, 243, 243, 255, 247, 242, 247, 247, ! 561: 332, 242, 141, 331, 330, 244, 329, 142, 120, 131, ! 562: 132, 133, 132, 132, 131, 131, 131, 134, 131, 131, ! 563: 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, ! 564: ! 565: 131, 135, 135, 135, 135, 135, 135, 135, 135, 135, ! 566: 135, 135, 135, 136, 135, 135, 135, 135, 137, 131, ! 567: 131, 131, 139, 140, 139, 139, 172, 173, 172, 172, ! 568: 213, 328, 327, 174, 186, 187, 186, 186, 326, 325, ! 569: 214, 174, 153, 154, 153, 153, 245, 246, 245, 245, ! 570: 157, 158, 157, 157, 249, 141, 249, 249, 324, 323, ! 571: 142, 149, 145, 149, 149, 322, 175, 251, 150, 251, ! 572: 251, 264, 321, 302, 175, 151, 178, 179, 263, 152, ! 573: 162, 245, 246, 245, 253, 201, 320, 201, 201, 228, ! 574: 317, 228, 228, 316, 265, 163, 229, 164, 235, 163, ! 575: ! 576: 235, 235, 163, 315, 163, 163, 164, 165, 166, 167, ! 577: 168, 294, 169, 183, 183, 240, 183, 183, 183, 183, ! 578: 183, 183, 183, 183, 183, 183, 183, 183, 184, 183, ! 579: 183, 183, 183, 183, 183, 185, 185, 185, 185, 185, ! 580: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, ! 581: 185, 185, 185, 183, 183, 183, 172, 173, 172, 172, ! 582: 313, 312, 311, 174, 186, 187, 186, 186, 310, 282, ! 583: 238, 174, 238, 238, 289, 290, 289, 289, 243, 309, ! 584: 243, 243, 245, 246, 245, 245, 247, 308, 247, 247, ! 585: 205, 249, 244, 249, 249, 275, 175, 269, 251, 269, ! 586: ! 587: 251, 251, 306, 305, 175, 180, 269, 269, 269, 269, ! 588: 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, ! 589: 269, 269, 269, 269, 301, 261, 270, 274, 274, 275, ! 590: 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, ! 591: 274, 274, 274, 274, 274, 274, 274, 274, 274, 276, ! 592: 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, ! 593: 276, 276, 276, 276, 276, 276, 276, 274, 274, 274, ! 594: 283, 283, 258, 283, 283, 283, 283, 283, 283, 283, ! 595: 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, ! 596: 283, 283, 284, 284, 284, 284, 284, 284, 284, 284, ! 597: ! 598: 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, ! 599: 283, 283, 283, 296, 297, 296, 296, 303, 299, 318, ! 600: 298, 179, 263, 179, 263, 303, 303, 303, 303, 303, ! 601: 303, 289, 290, 289, 289, 296, 297, 296, 296, 319, ! 602: 294, 244, 291, 288, 287, 286, 285, 319, 319, 319, ! 603: 319, 319, 319, 57, 57, 57, 57, 57, 57, 57, ! 604: 57, 57, 57, 57, 57, 57, 71, 71, 71, 71, ! 605: 71, 71, 71, 71, 71, 71, 71, 71, 71, 73, ! 606: 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, ! 607: 73, 73, 81, 81, 81, 81, 81, 81, 81, 81, ! 608: ! 609: 81, 81, 81, 81, 81, 85, 85, 85, 85, 85, ! 610: 85, 85, 85, 85, 85, 85, 85, 85, 90, 90, ! 611: 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, ! 612: 90, 95, 95, 95, 95, 95, 95, 95, 95, 95, ! 613: 95, 95, 95, 95, 99, 99, 99, 99, 99, 99, ! 614: 99, 99, 99, 99, 99, 99, 99, 103, 103, 103, ! 615: 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, ! 616: 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, ! 617: 117, 117, 117, 121, 121, 121, 121, 121, 121, 121, ! 618: 121, 121, 121, 121, 121, 121, 124, 124, 124, 124, ! 619: ! 620: 124, 124, 124, 124, 124, 124, 124, 124, 124, 127, ! 621: 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, ! 622: 127, 127, 138, 138, 138, 138, 138, 138, 138, 138, ! 623: 138, 138, 138, 138, 138, 143, 143, 143, 143, 143, ! 624: 143, 143, 143, 143, 143, 143, 143, 143, 148, 148, ! 625: 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, ! 626: 148, 156, 156, 230, 282, 156, 156, 159, 159, 159, ! 627: 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, ! 628: 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, ! 629: 161, 161, 171, 171, 220, 280, 171, 171, 178, 178, ! 630: ! 631: 279, 178, 178, 178, 178, 178, 178, 277, 178, 178, ! 632: 178, 180, 180, 204, 180, 180, 180, 180, 180, 180, ! 633: 180, 180, 180, 180, 190, 190, 190, 190, 190, 190, ! 634: 190, 190, 190, 190, 190, 190, 190, 192, 273, 272, ! 635: 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, ! 636: 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, ! 637: 193, 193, 193, 195, 195, 194, 195, 195, 195, 195, ! 638: 195, 195, 195, 191, 266, 195, 196, 196, 262, 261, ! 639: 196, 196, 200, 200, 259, 200, 200, 200, 200, 200, ! 640: 200, 200, 200, 200, 200, 203, 203, 258, 250, 203, ! 641: ! 642: 203, 205, 205, 160, 205, 205, 205, 205, 205, 205, ! 643: 205, 205, 205, 205, 208, 208, 244, 208, 208, 208, ! 644: 208, 208, 208, 208, 208, 208, 208, 210, 210, 239, ! 645: 210, 210, 210, 210, 210, 210, 239, 210, 210, 210, ! 646: 211, 211, 237, 236, 233, 211, 211, 211, 211, 211, ! 647: 212, 212, 232, 212, 212, 212, 212, 212, 212, 212, ! 648: 212, 212, 212, 216, 216, 230, 224, 216, 216, 219, ! 649: 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, ! 650: 219, 219, 221, 221, 222, 221, 221, 220, 221, 221, ! 651: 221, 221, 221, 221, 221, 223, 223, 218, 223, 223, ! 652: ! 653: 217, 223, 223, 223, 223, 223, 223, 223, 225, 225, ! 654: 215, 209, 225, 225, 225, 225, 204, 225, 225, 225, ! 655: 225, 226, 226, 202, 226, 226, 226, 226, 226, 226, ! 656: 226, 226, 226, 226, 227, 227, 199, 227, 227, 227, ! 657: 227, 227, 227, 227, 198, 197, 227, 231, 231, 194, ! 658: 191, 231, 231, 234, 179, 177, 234, 234, 234, 234, ! 659: 234, 234, 234, 234, 234, 234, 240, 240, 170, 240, ! 660: 240, 240, 240, 240, 240, 240, 240, 240, 240, 248, ! 661: 248, 160, 248, 248, 248, 248, 248, 248, 248, 248, ! 662: 248, 248, 252, 252, 256, 256, 257, 257, 257, 257, ! 663: ! 664: 257, 257, 257, 257, 257, 257, 257, 257, 257, 260, ! 665: 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, ! 666: 260, 260, 267, 155, 340, 118, 267, 268, 268, 118, ! 667: 268, 268, 268, 268, 268, 268, 268, 268, 268, 271, ! 668: 271, 89, 271, 271, 271, 271, 271, 271, 271, 271, ! 669: 271, 271, 278, 89, 80, 74, 278, 281, 281, 281, ! 670: 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, ! 671: 292, 74, 72, 72, 292, 293, 293, 293, 293, 293, ! 672: 293, 293, 293, 293, 293, 293, 293, 293, 295, 295, ! 673: 340, 340, 295, 295, 300, 300, 340, 340, 300, 300, ! 674: ! 675: 304, 340, 340, 340, 304, 276, 276, 276, 276, 276, ! 676: 276, 276, 276, 276, 276, 276, 276, 276, 307, 340, ! 677: 340, 340, 307, 284, 284, 340, 284, 284, 284, 284, ! 678: 284, 284, 284, 284, 284, 284, 314, 340, 340, 340, ! 679: 314, 45, 340, 340, 340, 340, 340, 340, 340, 340, ! 680: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 681: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 682: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 683: 340, 340, 340, 340, 340 ! 684: } ; ! 685: ! 686: static const short int yy_chk[1486] = ! 687: { 0, ! 688: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 689: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 690: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 691: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 692: 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, ! 693: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 694: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 695: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 696: 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, ! 697: 3, 69, 3, 65, 98, 3, 3, 19, 329, 3, ! 698: ! 699: 19, 3, 23, 3, 3, 11, 11, 11, 11, 12, ! 700: 12, 12, 12, 23, 19, 29, 65, 98, 101, 23, ! 701: 23, 20, 17, 69, 20, 3, 3, 4, 4, 4, ! 702: 4, 4, 17, 4, 4, 17, 4, 4, 20, 21, ! 703: 4, 101, 4, 24, 4, 4, 22, 4, 61, 61, ! 704: 21, 61, 178, 178, 24, 29, 21, 22, 21, 328, ! 705: 24, 24, 17, 22, 327, 22, 4, 4, 9, 9, ! 706: 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, ! 707: 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, ! 708: 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, ! 709: ! 710: 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, ! 711: 9, 13, 13, 13, 13, 13, 13, 13, 13, 13, ! 712: 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, ! 713: 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, ! 714: 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, ! 715: 13, 13, 13, 13, 18, 35, 31, 32, 35, 33, ! 716: 34, 110, 326, 105, 18, 31, 32, 18, 33, 34, ! 717: 36, 110, 35, 36, 43, 43, 43, 43, 318, 318, ! 718: 325, 43, 47, 47, 47, 47, 105, 36, 51, 51, ! 719: 51, 51, 43, 324, 18, 25, 25, 25, 25, 25, ! 720: ! 721: 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, ! 722: 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, ! 723: 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, ! 724: 25, 25, 25, 25, 25, 25, 25, 25, 30, 39, ! 725: 39, 39, 39, 82, 147, 82, 82, 132, 152, 132, ! 726: 132, 319, 319, 139, 132, 139, 139, 144, 323, 144, ! 727: 144, 149, 167, 149, 149, 167, 161, 147, 161, 161, ! 728: 322, 152, 39, 321, 320, 149, 317, 39, 30, 37, ! 729: 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, ! 730: 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, ! 731: ! 732: 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, ! 733: 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, ! 734: 37, 37, 40, 40, 40, 40, 58, 58, 58, 58, ! 735: 212, 315, 313, 58, 67, 67, 67, 67, 312, 311, ! 736: 212, 67, 153, 153, 153, 153, 155, 155, 155, 155, ! 737: 157, 157, 157, 157, 162, 40, 162, 162, 310, 309, ! 738: 40, 44, 44, 44, 44, 308, 58, 164, 44, 164, ! 739: 164, 179, 306, 264, 67, 44, 179, 264, 264, 44, ! 740: 54, 166, 166, 166, 166, 201, 305, 201, 201, 228, ! 741: 301, 228, 228, 299, 179, 54, 228, 54, 235, 54, ! 742: ! 743: 235, 235, 54, 298, 54, 54, 54, 54, 54, 54, ! 744: 54, 293, 54, 66, 66, 291, 66, 66, 66, 66, ! 745: 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, ! 746: 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, ! 747: 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, ! 748: 66, 66, 66, 66, 66, 66, 172, 172, 172, 172, ! 749: 288, 287, 286, 172, 186, 186, 186, 186, 285, 281, ! 750: 238, 186, 238, 238, 239, 239, 239, 239, 243, 280, ! 751: 243, 243, 245, 245, 245, 245, 247, 279, 247, 247, ! 752: 277, 249, 243, 249, 249, 276, 172, 185, 251, 185, ! 753: ! 754: 251, 251, 273, 272, 186, 266, 185, 185, 185, 185, ! 755: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, ! 756: 185, 185, 185, 185, 262, 260, 185, 199, 199, 199, ! 757: 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, ! 758: 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, ! 759: 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, ! 760: 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, ! 761: 230, 230, 257, 230, 230, 230, 230, 230, 230, 230, ! 762: 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, ! 763: 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, ! 764: ! 765: 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, ! 766: 230, 230, 230, 253, 253, 253, 253, 265, 255, 302, ! 767: 254, 265, 265, 302, 302, 265, 265, 265, 265, 265, ! 768: 265, 289, 289, 289, 289, 296, 296, 296, 296, 303, ! 769: 250, 244, 241, 237, 236, 233, 232, 303, 303, 303, ! 770: 303, 303, 303, 341, 341, 341, 341, 341, 341, 341, ! 771: 341, 341, 341, 341, 341, 341, 342, 342, 342, 342, ! 772: 342, 342, 342, 342, 342, 342, 342, 342, 342, 343, ! 773: 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, ! 774: 343, 343, 344, 344, 344, 344, 344, 344, 344, 344, ! 775: ! 776: 344, 344, 344, 344, 344, 345, 345, 345, 345, 345, ! 777: 345, 345, 345, 345, 345, 345, 345, 345, 346, 346, ! 778: 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, ! 779: 346, 347, 347, 347, 347, 347, 347, 347, 347, 347, ! 780: 347, 347, 347, 347, 348, 348, 348, 348, 348, 348, ! 781: 348, 348, 348, 348, 348, 348, 348, 349, 349, 349, ! 782: 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, ! 783: 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, ! 784: 350, 350, 350, 351, 351, 351, 351, 351, 351, 351, ! 785: 351, 351, 351, 351, 351, 351, 352, 352, 352, 352, ! 786: ! 787: 352, 352, 352, 352, 352, 352, 352, 352, 352, 353, ! 788: 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, ! 789: 353, 353, 354, 354, 354, 354, 354, 354, 354, 354, ! 790: 354, 354, 354, 354, 354, 355, 355, 355, 355, 355, ! 791: 355, 355, 355, 355, 355, 355, 355, 355, 356, 356, ! 792: 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, ! 793: 356, 357, 357, 229, 222, 357, 357, 358, 358, 358, ! 794: 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, ! 795: 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, ! 796: 359, 359, 360, 360, 219, 218, 360, 360, 361, 361, ! 797: ! 798: 217, 361, 361, 361, 361, 361, 361, 206, 361, 361, ! 799: 361, 362, 362, 204, 362, 362, 362, 362, 362, 362, ! 800: 362, 362, 362, 362, 363, 363, 363, 363, 363, 363, ! 801: 363, 363, 363, 363, 363, 363, 363, 364, 198, 197, ! 802: 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, ! 803: 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, ! 804: 365, 365, 365, 366, 366, 193, 366, 366, 366, 366, ! 805: 366, 366, 366, 190, 181, 366, 367, 367, 177, 175, ! 806: 367, 367, 368, 368, 174, 368, 368, 368, 368, 368, ! 807: 368, 368, 368, 368, 368, 369, 369, 169, 163, 369, ! 808: ! 809: 369, 370, 370, 159, 370, 370, 370, 370, 370, 370, ! 810: 370, 370, 370, 370, 371, 371, 151, 371, 371, 371, ! 811: 371, 371, 371, 371, 371, 371, 371, 372, 372, 150, ! 812: 372, 372, 372, 372, 372, 372, 146, 372, 372, 372, ! 813: 373, 373, 142, 141, 137, 373, 373, 373, 373, 373, ! 814: 374, 374, 136, 374, 374, 374, 374, 374, 374, 374, ! 815: 374, 374, 374, 375, 375, 134, 126, 375, 375, 376, ! 816: 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, ! 817: 376, 376, 377, 377, 123, 377, 377, 117, 377, 377, ! 818: 377, 377, 377, 377, 377, 378, 378, 114, 378, 378, ! 819: ! 820: 113, 378, 378, 378, 378, 378, 378, 378, 379, 379, ! 821: 111, 102, 379, 379, 379, 379, 93, 379, 379, 379, ! 822: 379, 380, 380, 87, 380, 380, 380, 380, 380, 380, ! 823: 380, 380, 380, 380, 381, 381, 80, 381, 381, 381, ! 824: 381, 381, 381, 381, 79, 78, 381, 382, 382, 73, ! 825: 71, 382, 382, 383, 64, 63, 383, 383, 383, 383, ! 826: 383, 383, 383, 383, 383, 383, 384, 384, 55, 384, ! 827: 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, ! 828: 385, 53, 385, 385, 385, 385, 385, 385, 385, 385, ! 829: 385, 385, 386, 386, 387, 387, 388, 388, 388, 388, ! 830: ! 831: 388, 388, 388, 388, 388, 388, 388, 388, 388, 389, ! 832: 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, ! 833: 389, 389, 390, 49, 45, 28, 390, 391, 391, 27, ! 834: 391, 391, 391, 391, 391, 391, 391, 391, 391, 392, ! 835: 392, 16, 392, 392, 392, 392, 392, 392, 392, 392, ! 836: 392, 392, 393, 15, 10, 8, 393, 394, 394, 394, ! 837: 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, ! 838: 395, 7, 6, 5, 395, 396, 396, 396, 396, 396, ! 839: 396, 396, 396, 396, 396, 396, 396, 396, 397, 397, ! 840: 0, 0, 397, 397, 398, 398, 0, 0, 398, 398, ! 841: ! 842: 399, 0, 0, 0, 399, 400, 400, 400, 400, 400, ! 843: 400, 400, 400, 400, 400, 400, 400, 400, 401, 0, ! 844: 0, 0, 401, 402, 402, 0, 402, 402, 402, 402, ! 845: 402, 402, 402, 402, 402, 402, 403, 0, 0, 0, ! 846: 403, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 847: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 848: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 849: 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ! 850: 340, 340, 340, 340, 340 ! 851: } ; ! 852: ! 853: static yy_state_type yy_last_accepting_state; ! 854: static YY_CHAR *yy_last_accepting_cpos; ! 855: ! 856: /* the intent behind this definition is that it'll catch ! 857: * any uses of REJECT which flex missed ! 858: */ ! 859: #define REJECT reject_used_but_not_detected ! 860: #define yymore() yymore_used_but_not_detected ! 861: #define YY_MORE_ADJ 0 ! 862: ! 863: /* these variables are all declared out here so that section 3 code can ! 864: * manipulate them ! 865: */ ! 866: /* points to current character in buffer */ ! 867: static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0; ! 868: static int yy_init = 1; /* whether we need to initialize */ ! 869: static int yy_start = 0; /* start state number */ ! 870: ! 871: /* flag which is used to allow yywrap()'s to do buffer switches ! 872: * instead of setting up a fresh yyin. A bit of a hack ... ! 873: */ ! 874: static int yy_did_buffer_switch_on_eof; ! 875: ! 876: static yy_state_type yy_get_previous_state YY_PROTO(( void )); ! 877: static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); ! 878: static int yy_get_next_buffer YY_PROTO(( void )); ! 879: static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr )); ! 880: void yyrestart YY_PROTO(( FILE *input_file )); ! 881: void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); ! 882: void yy_load_buffer_state YY_PROTO(( void )); ! 883: YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); ! 884: void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); ! 885: void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); ! 886: ! 887: #define yy_new_buffer yy_create_buffer ! 888: ! 889: #ifdef __cplusplus ! 890: static int yyinput YY_PROTO(( void )); ! 891: #else ! 892: static int input YY_PROTO(( void )); ! 893: #endif ! 894: ! 895: YY_DECL ! 896: { ! 897: register yy_state_type yy_current_state; ! 898: register YY_CHAR *yy_cp, *yy_bp; ! 899: register int yy_act; ! 900: ! 901: ! 902: static int bracelevel, didadef; ! 903: int i, indented_code, checking_used, new_xlation; ! 904: int doing_codeblock = false; ! 905: Char nmdef[MAXLINE], myesc(); ! 906: ! 907: ! 908: if ( yy_init ) ! 909: { ! 910: YY_USER_INIT; ! 911: ! 912: if ( ! yy_start ) ! 913: yy_start = 1; /* first start state */ ! 914: ! 915: if ( ! yyin ) ! 916: yyin = stdin; ! 917: ! 918: if ( ! yyout ) ! 919: yyout = stdout; ! 920: ! 921: if ( yy_current_buffer ) ! 922: yy_init_buffer( yy_current_buffer, yyin ); ! 923: else ! 924: yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); ! 925: ! 926: yy_load_buffer_state(); ! 927: ! 928: yy_init = 0; ! 929: } ! 930: ! 931: while ( 1 ) /* loops until end-of-file is reached */ ! 932: { ! 933: yy_cp = yy_c_buf_p; ! 934: ! 935: /* support of yytext */ ! 936: *yy_cp = yy_hold_char; ! 937: ! 938: /* yy_bp points to the position in yy_ch_buf of the start of the ! 939: * current run. ! 940: */ ! 941: yy_bp = yy_cp; ! 942: ! 943: yy_current_state = yy_start; ! 944: if ( yy_bp[-1] == '\n' ) ! 945: ++yy_current_state; ! 946: yy_match: ! 947: do ! 948: { ! 949: register YY_CHAR yy_c = yy_ec[*yy_cp]; ! 950: if ( yy_accept[yy_current_state] ) ! 951: { ! 952: yy_last_accepting_state = yy_current_state; ! 953: yy_last_accepting_cpos = yy_cp; ! 954: } ! 955: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ! 956: { ! 957: yy_current_state = yy_def[yy_current_state]; ! 958: if ( yy_current_state >= 341 ) ! 959: yy_c = yy_meta[yy_c]; ! 960: } ! 961: yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ! 962: ++yy_cp; ! 963: } ! 964: while ( yy_current_state != 340 ); ! 965: yy_cp = yy_last_accepting_cpos; ! 966: yy_current_state = yy_last_accepting_state; ! 967: ! 968: yy_find_action: ! 969: yy_act = yy_accept[yy_current_state]; ! 970: ! 971: YY_DO_BEFORE_ACTION; ! 972: YY_USER_ACTION; ! 973: ! 974: do_action: /* this label is used only to access EOF actions */ ! 975: ! 976: ! 977: switch ( yy_act ) ! 978: { ! 979: case 0: /* must backtrack */ ! 980: /* undo the effects of YY_DO_BEFORE_ACTION */ ! 981: *yy_cp = yy_hold_char; ! 982: yy_cp = yy_last_accepting_cpos; ! 983: yy_current_state = yy_last_accepting_state; ! 984: goto yy_find_action; ! 985: ! 986: case 1: ! 987: # line 91 "scan.l" ! 988: indented_code = true; BEGIN(CODEBLOCK); ! 989: YY_BREAK ! 990: case 2: ! 991: # line 92 "scan.l" ! 992: ++linenum; /* treat as a comment */ ! 993: YY_BREAK ! 994: case 3: ! 995: # line 93 "scan.l" ! 996: ECHO; BEGIN(C_COMMENT); ! 997: YY_BREAK ! 998: case 4: ! 999: # line 94 "scan.l" ! 1000: return ( SCDECL ); ! 1001: YY_BREAK ! 1002: case 5: ! 1003: # line 95 "scan.l" ! 1004: return ( XSCDECL ); ! 1005: YY_BREAK ! 1006: case 6: ! 1007: # line 96 "scan.l" ! 1008: { ! 1009: ++linenum; ! 1010: line_directive_out( stdout ); ! 1011: indented_code = false; ! 1012: BEGIN(CODEBLOCK); ! 1013: } ! 1014: YY_BREAK ! 1015: case 7: ! 1016: # line 103 "scan.l" ! 1017: return ( WHITESPACE ); ! 1018: YY_BREAK ! 1019: case 8: ! 1020: # line 105 "scan.l" ! 1021: { ! 1022: sectnum = 2; ! 1023: line_directive_out( stdout ); ! 1024: BEGIN(SECT2PROLOG); ! 1025: return ( SECTEND ); ! 1026: } ! 1027: YY_BREAK ! 1028: case 9: ! 1029: # line 112 "scan.l" ! 1030: { ! 1031: pinpoint_message( "warning - %%used/%%unused have been deprecated" ); ! 1032: checking_used = REALLY_USED; BEGIN(USED_LIST); ! 1033: } ! 1034: YY_BREAK ! 1035: case 10: ! 1036: # line 116 "scan.l" ! 1037: { ! 1038: checking_used = REALLY_NOT_USED; BEGIN(USED_LIST); ! 1039: pinpoint_message( "warning - %%used/%%unused have been deprecated" ); ! 1040: checking_used = REALLY_NOT_USED; BEGIN(USED_LIST); ! 1041: } ! 1042: YY_BREAK ! 1043: case 11: ! 1044: # line 123 "scan.l" ! 1045: { ! 1046: #ifdef NOTDEF ! 1047: fprintf( stderr, ! 1048: "old-style lex command at line %d ignored:\n\t%s", ! 1049: linenum, yytext ); ! 1050: #endif ! 1051: ++linenum; ! 1052: } ! 1053: YY_BREAK ! 1054: case 12: ! 1055: # line 132 "scan.l" ! 1056: /* ignore old lex directive */ ! 1057: YY_BREAK ! 1058: case 13: ! 1059: # line 134 "scan.l" ! 1060: { ! 1061: ++linenum; ! 1062: xlation = ! 1063: (int *) malloc( sizeof( int ) * (unsigned) csize ); ! 1064: ! 1065: if ( ! xlation ) ! 1066: flexfatal( ! 1067: "dynamic memory failure building %t table" ); ! 1068: ! 1069: for ( i = 0; i < csize; ++i ) ! 1070: xlation[i] = 0; ! 1071: ! 1072: num_xlations = 0; ! 1073: ! 1074: BEGIN(XLATION); ! 1075: } ! 1076: YY_BREAK ! 1077: case 14: ! 1078: # line 151 "scan.l" ! 1079: synerr( "unrecognized '%' directive" ); ! 1080: YY_BREAK ! 1081: case 15: ! 1082: # line 153 "scan.l" ! 1083: { ! 1084: (void) strcpy( nmstr, (char *) yytext ); ! 1085: didadef = false; ! 1086: BEGIN(PICKUPDEF); ! 1087: } ! 1088: YY_BREAK ! 1089: case 16: ! 1090: # line 159 "scan.l" ! 1091: RETURNNAME; ! 1092: YY_BREAK ! 1093: case 17: ! 1094: # line 160 "scan.l" ! 1095: ++linenum; /* allows blank lines in section 1 */ ! 1096: YY_BREAK ! 1097: case 18: ! 1098: # line 161 "scan.l" ! 1099: ++linenum; return ( '\n' ); ! 1100: YY_BREAK ! 1101: case 19: ! 1102: # line 162 "scan.l" ! 1103: synerr( "illegal character" ); BEGIN(RECOVER); ! 1104: YY_BREAK ! 1105: case 20: ! 1106: # line 165 "scan.l" ! 1107: ECHO; BEGIN(INITIAL); ! 1108: YY_BREAK ! 1109: case 21: ! 1110: # line 166 "scan.l" ! 1111: ++linenum; ECHO; BEGIN(INITIAL); ! 1112: YY_BREAK ! 1113: case 22: ! 1114: # line 167 "scan.l" ! 1115: ECHO; ! 1116: YY_BREAK ! 1117: case 23: ! 1118: # line 168 "scan.l" ! 1119: ECHO; ! 1120: YY_BREAK ! 1121: case 24: ! 1122: # line 169 "scan.l" ! 1123: ++linenum; ECHO; ! 1124: YY_BREAK ! 1125: case 25: ! 1126: # line 172 "scan.l" ! 1127: ++linenum; BEGIN(INITIAL); ! 1128: YY_BREAK ! 1129: case 26: ! 1130: # line 173 "scan.l" ! 1131: ECHO; CHECK_REJECT(yytext); ! 1132: YY_BREAK ! 1133: case 27: ! 1134: # line 174 "scan.l" ! 1135: ECHO; CHECK_YYMORE(yytext); ! 1136: YY_BREAK ! 1137: case 28: ! 1138: # line 175 "scan.l" ! 1139: ECHO; ! 1140: YY_BREAK ! 1141: case 29: ! 1142: # line 176 "scan.l" ! 1143: { ! 1144: ++linenum; ! 1145: ECHO; ! 1146: if ( indented_code ) ! 1147: BEGIN(INITIAL); ! 1148: } ! 1149: YY_BREAK ! 1150: case 30: ! 1151: # line 184 "scan.l" ! 1152: /* separates name and definition */ ! 1153: YY_BREAK ! 1154: case 31: ! 1155: # line 186 "scan.l" ! 1156: { ! 1157: (void) strcpy( (char *) nmdef, (char *) yytext ); ! 1158: ! 1159: for ( i = strlen( (char *) nmdef ) - 1; ! 1160: i >= 0 && ! 1161: nmdef[i] == ' ' || nmdef[i] == '\t'; ! 1162: --i ) ! 1163: ; ! 1164: ! 1165: nmdef[i + 1] = '\0'; ! 1166: ! 1167: ndinstal( nmstr, nmdef ); ! 1168: didadef = true; ! 1169: } ! 1170: YY_BREAK ! 1171: case 32: ! 1172: # line 201 "scan.l" ! 1173: { ! 1174: if ( ! didadef ) ! 1175: synerr( "incomplete name definition" ); ! 1176: BEGIN(INITIAL); ! 1177: ++linenum; ! 1178: } ! 1179: YY_BREAK ! 1180: case 33: ! 1181: # line 208 "scan.l" ! 1182: ++linenum; BEGIN(INITIAL); RETURNNAME; ! 1183: YY_BREAK ! 1184: case 34: ! 1185: # line 211 "scan.l" ! 1186: ++linenum; BEGIN(INITIAL); ! 1187: YY_BREAK ! 1188: case 35: ! 1189: # line 212 "scan.l" ! 1190: ! 1191: YY_BREAK ! 1192: case 36: ! 1193: # line 213 "scan.l" ! 1194: { ! 1195: if ( all_upper( yytext ) ) ! 1196: reject_really_used = checking_used; ! 1197: else ! 1198: synerr( "unrecognized %used/%unused construct" ); ! 1199: } ! 1200: YY_BREAK ! 1201: case 37: ! 1202: # line 219 "scan.l" ! 1203: { ! 1204: if ( all_lower( yytext ) ) ! 1205: yymore_really_used = checking_used; ! 1206: else ! 1207: synerr( "unrecognized %used/%unused construct" ); ! 1208: } ! 1209: YY_BREAK ! 1210: case 38: ! 1211: # line 225 "scan.l" ! 1212: synerr( "unrecognized %used/%unused construct" ); ! 1213: YY_BREAK ! 1214: case 39: ! 1215: # line 228 "scan.l" ! 1216: ++linenum; BEGIN(INITIAL); ! 1217: YY_BREAK ! 1218: case 40: ! 1219: # line 229 "scan.l" ! 1220: ++num_xlations; new_xlation = true; ! 1221: YY_BREAK ! 1222: case 41: ! 1223: # line 230 "scan.l" ! 1224: synerr( "bad row in translation table" ); ! 1225: YY_BREAK ! 1226: case 42: ! 1227: # line 231 "scan.l" ! 1228: /* ignore whitespace */ ! 1229: YY_BREAK ! 1230: case 43: ! 1231: # line 233 "scan.l" ! 1232: { ! 1233: xlation[myesc( yytext )] = ! 1234: (new_xlation ? num_xlations : -num_xlations); ! 1235: new_xlation = false; ! 1236: } ! 1237: YY_BREAK ! 1238: case 44: ! 1239: # line 238 "scan.l" ! 1240: { ! 1241: xlation[yytext[0]] = ! 1242: (new_xlation ? num_xlations : -num_xlations); ! 1243: new_xlation = false; ! 1244: } ! 1245: YY_BREAK ! 1246: case 45: ! 1247: # line 244 "scan.l" ! 1248: ++linenum; ! 1249: YY_BREAK ! 1250: case 46: ! 1251: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ ! 1252: yy_c_buf_p = yy_cp -= 1; ! 1253: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 1254: # line 247 "scan.l" ! 1255: { ! 1256: ++linenum; ! 1257: ACTION_ECHO; ! 1258: MARK_END_OF_PROLOG; ! 1259: BEGIN(SECT2); ! 1260: } ! 1261: YY_BREAK ! 1262: case 47: ! 1263: # line 254 "scan.l" ! 1264: ++linenum; ACTION_ECHO; ! 1265: YY_BREAK ! 1266: case YY_STATE_EOF(SECT2PROLOG): ! 1267: # line 256 "scan.l" ! 1268: MARK_END_OF_PROLOG; yyterminate(); ! 1269: YY_BREAK ! 1270: case 49: ! 1271: # line 258 "scan.l" ! 1272: ++linenum; /* allow blank lines in section 2 */ ! 1273: YY_BREAK ! 1274: case 50: ! 1275: # line 260 "scan.l" ! 1276: { ! 1277: indented_code = (yytext[0] != '%'); ! 1278: doing_codeblock = true; ! 1279: bracelevel = 1; ! 1280: ! 1281: if ( indented_code ) ! 1282: ACTION_ECHO; ! 1283: ! 1284: BEGIN(CODEBLOCK_2); ! 1285: } ! 1286: YY_BREAK ! 1287: case 51: ! 1288: # line 271 "scan.l" ! 1289: BEGIN(SC); return ( '<' ); ! 1290: YY_BREAK ! 1291: case 52: ! 1292: # line 272 "scan.l" ! 1293: return ( '^' ); ! 1294: YY_BREAK ! 1295: case 53: ! 1296: # line 273 "scan.l" ! 1297: BEGIN(QUOTE); return ( '"' ); ! 1298: YY_BREAK ! 1299: case 54: ! 1300: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ ! 1301: yy_c_buf_p = yy_cp = yy_bp + 1; ! 1302: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 1303: # line 274 "scan.l" ! 1304: BEGIN(NUM); return ( '{' ); ! 1305: YY_BREAK ! 1306: case 55: ! 1307: # line 275 "scan.l" ! 1308: BEGIN(BRACEERROR); ! 1309: YY_BREAK ! 1310: case 56: ! 1311: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ ! 1312: yy_c_buf_p = yy_cp = yy_bp + 1; ! 1313: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 1314: # line 276 "scan.l" ! 1315: return ( '$' ); ! 1316: YY_BREAK ! 1317: case 57: ! 1318: # line 278 "scan.l" ! 1319: { ! 1320: bracelevel = 1; ! 1321: BEGIN(PERCENT_BRACE_ACTION); ! 1322: return ( '\n' ); ! 1323: } ! 1324: YY_BREAK ! 1325: case 58: ! 1326: # line 283 "scan.l" ! 1327: continued_action = true; ++linenum; return ( '\n' ); ! 1328: YY_BREAK ! 1329: case 59: ! 1330: # line 285 "scan.l" ! 1331: { ! 1332: /* this rule is separate from the one below because ! 1333: * otherwise we get variable trailing context, so ! 1334: * we can't build the scanner using -{f,F} ! 1335: */ ! 1336: bracelevel = 0; ! 1337: continued_action = false; ! 1338: BEGIN(ACTION); ! 1339: return ( '\n' ); ! 1340: } ! 1341: YY_BREAK ! 1342: case 60: ! 1343: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ ! 1344: yy_c_buf_p = yy_cp -= 1; ! 1345: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 1346: # line 296 "scan.l" ! 1347: { ! 1348: bracelevel = 0; ! 1349: continued_action = false; ! 1350: BEGIN(ACTION); ! 1351: return ( '\n' ); ! 1352: } ! 1353: YY_BREAK ! 1354: case 61: ! 1355: # line 303 "scan.l" ! 1356: ++linenum; return ( '\n' ); ! 1357: YY_BREAK ! 1358: case 62: ! 1359: # line 305 "scan.l" ! 1360: return ( EOF_OP ); ! 1361: YY_BREAK ! 1362: case 63: ! 1363: # line 307 "scan.l" ! 1364: { ! 1365: sectnum = 3; ! 1366: BEGIN(SECT3); ! 1367: return ( EOF ); /* to stop the parser */ ! 1368: } ! 1369: YY_BREAK ! 1370: case 64: ! 1371: # line 313 "scan.l" ! 1372: { ! 1373: int cclval; ! 1374: ! 1375: (void) strcpy( nmstr, (char *) yytext ); ! 1376: ! 1377: /* check to see if we've already encountered this ccl */ ! 1378: if ( (cclval = ccllookup( (Char *) nmstr )) ) ! 1379: { ! 1380: yylval = cclval; ! 1381: ++cclreuse; ! 1382: return ( PREVCCL ); ! 1383: } ! 1384: else ! 1385: { ! 1386: /* we fudge a bit. We know that this ccl will ! 1387: * soon be numbered as lastccl + 1 by cclinit ! 1388: */ ! 1389: cclinstal( (Char *) nmstr, lastccl + 1 ); ! 1390: ! 1391: /* push back everything but the leading bracket ! 1392: * so the ccl can be rescanned ! 1393: */ ! 1394: PUT_BACK_STRING((Char *) nmstr, 1); ! 1395: ! 1396: BEGIN(FIRSTCCL); ! 1397: return ( '[' ); ! 1398: } ! 1399: } ! 1400: YY_BREAK ! 1401: case 65: ! 1402: # line 342 "scan.l" ! 1403: { ! 1404: register Char *nmdefptr; ! 1405: Char *ndlookup(); ! 1406: ! 1407: (void) strcpy( nmstr, (char *) yytext ); ! 1408: nmstr[yyleng - 1] = '\0'; /* chop trailing brace */ ! 1409: ! 1410: /* lookup from "nmstr + 1" to chop leading brace */ ! 1411: if ( ! (nmdefptr = ndlookup( nmstr + 1 )) ) ! 1412: synerr( "undefined {name}" ); ! 1413: ! 1414: else ! 1415: { /* push back name surrounded by ()'s */ ! 1416: unput(')'); ! 1417: PUT_BACK_STRING(nmdefptr, 0); ! 1418: unput('('); ! 1419: } ! 1420: } ! 1421: YY_BREAK ! 1422: case 66: ! 1423: # line 361 "scan.l" ! 1424: return ( yytext[0] ); ! 1425: YY_BREAK ! 1426: case 67: ! 1427: # line 362 "scan.l" ! 1428: RETURNCHAR; ! 1429: YY_BREAK ! 1430: case 68: ! 1431: # line 363 "scan.l" ! 1432: ++linenum; return ( '\n' ); ! 1433: YY_BREAK ! 1434: case 69: ! 1435: # line 366 "scan.l" ! 1436: return ( ',' ); ! 1437: YY_BREAK ! 1438: case 70: ! 1439: # line 367 "scan.l" ! 1440: BEGIN(SECT2); return ( '>' ); ! 1441: YY_BREAK ! 1442: case 71: ! 1443: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ ! 1444: yy_c_buf_p = yy_cp = yy_bp + 1; ! 1445: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 1446: # line 368 "scan.l" ! 1447: BEGIN(CARETISBOL); return ( '>' ); ! 1448: YY_BREAK ! 1449: case 72: ! 1450: # line 369 "scan.l" ! 1451: RETURNNAME; ! 1452: YY_BREAK ! 1453: case 73: ! 1454: # line 370 "scan.l" ! 1455: synerr( "bad start condition name" ); ! 1456: YY_BREAK ! 1457: case 74: ! 1458: # line 372 "scan.l" ! 1459: BEGIN(SECT2); return ( '^' ); ! 1460: YY_BREAK ! 1461: case 75: ! 1462: # line 375 "scan.l" ! 1463: RETURNCHAR; ! 1464: YY_BREAK ! 1465: case 76: ! 1466: # line 376 "scan.l" ! 1467: BEGIN(SECT2); return ( '"' ); ! 1468: YY_BREAK ! 1469: case 77: ! 1470: # line 378 "scan.l" ! 1471: { ! 1472: synerr( "missing quote" ); ! 1473: BEGIN(SECT2); ! 1474: ++linenum; ! 1475: return ( '"' ); ! 1476: } ! 1477: YY_BREAK ! 1478: case 78: ! 1479: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ ! 1480: yy_c_buf_p = yy_cp = yy_bp + 1; ! 1481: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 1482: # line 386 "scan.l" ! 1483: BEGIN(CCL); return ( '^' ); ! 1484: YY_BREAK ! 1485: case 79: ! 1486: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ ! 1487: yy_c_buf_p = yy_cp = yy_bp + 1; ! 1488: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 1489: # line 387 "scan.l" ! 1490: return ( '^' ); ! 1491: YY_BREAK ! 1492: case 80: ! 1493: # line 388 "scan.l" ! 1494: BEGIN(CCL); yylval = '-'; return ( CHAR ); ! 1495: YY_BREAK ! 1496: case 81: ! 1497: # line 389 "scan.l" ! 1498: BEGIN(CCL); RETURNCHAR; ! 1499: YY_BREAK ! 1500: case 82: ! 1501: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ ! 1502: yy_c_buf_p = yy_cp = yy_bp + 1; ! 1503: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 1504: # line 391 "scan.l" ! 1505: return ( '-' ); ! 1506: YY_BREAK ! 1507: case 83: ! 1508: # line 392 "scan.l" ! 1509: RETURNCHAR; ! 1510: YY_BREAK ! 1511: case 84: ! 1512: # line 393 "scan.l" ! 1513: BEGIN(SECT2); return ( ']' ); ! 1514: YY_BREAK ! 1515: case 85: ! 1516: # line 396 "scan.l" ! 1517: { ! 1518: yylval = myctoi( yytext ); ! 1519: return ( NUMBER ); ! 1520: } ! 1521: YY_BREAK ! 1522: case 86: ! 1523: # line 401 "scan.l" ! 1524: return ( ',' ); ! 1525: YY_BREAK ! 1526: case 87: ! 1527: # line 402 "scan.l" ! 1528: BEGIN(SECT2); return ( '}' ); ! 1529: YY_BREAK ! 1530: case 88: ! 1531: # line 404 "scan.l" ! 1532: { ! 1533: synerr( "bad character inside {}'s" ); ! 1534: BEGIN(SECT2); ! 1535: return ( '}' ); ! 1536: } ! 1537: YY_BREAK ! 1538: case 89: ! 1539: # line 410 "scan.l" ! 1540: { ! 1541: synerr( "missing }" ); ! 1542: BEGIN(SECT2); ! 1543: ++linenum; ! 1544: return ( '}' ); ! 1545: } ! 1546: YY_BREAK ! 1547: case 90: ! 1548: # line 418 "scan.l" ! 1549: synerr( "bad name in {}'s" ); BEGIN(SECT2); ! 1550: YY_BREAK ! 1551: case 91: ! 1552: # line 419 "scan.l" ! 1553: synerr( "missing }" ); ++linenum; BEGIN(SECT2); ! 1554: YY_BREAK ! 1555: case 92: ! 1556: # line 422 "scan.l" ! 1557: bracelevel = 0; ! 1558: YY_BREAK ! 1559: case 93: ! 1560: # line 423 "scan.l" ! 1561: { ! 1562: ACTION_ECHO; ! 1563: CHECK_REJECT(yytext); ! 1564: } ! 1565: YY_BREAK ! 1566: case 94: ! 1567: # line 427 "scan.l" ! 1568: { ! 1569: ACTION_ECHO; ! 1570: CHECK_YYMORE(yytext); ! 1571: } ! 1572: YY_BREAK ! 1573: case 95: ! 1574: # line 431 "scan.l" ! 1575: ACTION_ECHO; ! 1576: YY_BREAK ! 1577: case 96: ! 1578: # line 432 "scan.l" ! 1579: { ! 1580: ++linenum; ! 1581: ACTION_ECHO; ! 1582: if ( bracelevel == 0 || ! 1583: (doing_codeblock && indented_code) ) ! 1584: { ! 1585: if ( ! doing_codeblock ) ! 1586: fputs( "\tYY_BREAK\n", temp_action_file ); ! 1587: ! 1588: doing_codeblock = false; ! 1589: BEGIN(SECT2); ! 1590: } ! 1591: } ! 1592: YY_BREAK ! 1593: /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ ! 1594: case 97: ! 1595: # line 448 "scan.l" ! 1596: ACTION_ECHO; ++bracelevel; ! 1597: YY_BREAK ! 1598: case 98: ! 1599: # line 449 "scan.l" ! 1600: ACTION_ECHO; --bracelevel; ! 1601: YY_BREAK ! 1602: case 99: ! 1603: # line 450 "scan.l" ! 1604: ACTION_ECHO; ! 1605: YY_BREAK ! 1606: case 100: ! 1607: # line 451 "scan.l" ! 1608: ACTION_ECHO; ! 1609: YY_BREAK ! 1610: case 101: ! 1611: # line 452 "scan.l" ! 1612: ACTION_ECHO; BEGIN(ACTION_COMMENT); ! 1613: YY_BREAK ! 1614: case 102: ! 1615: # line 453 "scan.l" ! 1616: ACTION_ECHO; /* character constant */ ! 1617: YY_BREAK ! 1618: case 103: ! 1619: # line 454 "scan.l" ! 1620: ACTION_ECHO; BEGIN(ACTION_STRING); ! 1621: YY_BREAK ! 1622: case 104: ! 1623: # line 455 "scan.l" ! 1624: { ! 1625: ++linenum; ! 1626: ACTION_ECHO; ! 1627: if ( bracelevel == 0 ) ! 1628: { ! 1629: fputs( "\tYY_BREAK\n", temp_action_file ); ! 1630: BEGIN(SECT2); ! 1631: } ! 1632: } ! 1633: YY_BREAK ! 1634: case 105: ! 1635: # line 464 "scan.l" ! 1636: ACTION_ECHO; ! 1637: YY_BREAK ! 1638: case 106: ! 1639: # line 466 "scan.l" ! 1640: ACTION_ECHO; BEGIN(ACTION); ! 1641: YY_BREAK ! 1642: case 107: ! 1643: # line 467 "scan.l" ! 1644: ACTION_ECHO; ! 1645: YY_BREAK ! 1646: case 108: ! 1647: # line 468 "scan.l" ! 1648: ACTION_ECHO; ! 1649: YY_BREAK ! 1650: case 109: ! 1651: # line 469 "scan.l" ! 1652: ++linenum; ACTION_ECHO; ! 1653: YY_BREAK ! 1654: case 110: ! 1655: # line 470 "scan.l" ! 1656: ACTION_ECHO; ! 1657: YY_BREAK ! 1658: case 111: ! 1659: # line 472 "scan.l" ! 1660: ACTION_ECHO; ! 1661: YY_BREAK ! 1662: case 112: ! 1663: # line 473 "scan.l" ! 1664: ACTION_ECHO; ! 1665: YY_BREAK ! 1666: case 113: ! 1667: # line 474 "scan.l" ! 1668: ++linenum; ACTION_ECHO; ! 1669: YY_BREAK ! 1670: case 114: ! 1671: # line 475 "scan.l" ! 1672: ACTION_ECHO; BEGIN(ACTION); ! 1673: YY_BREAK ! 1674: case 115: ! 1675: # line 476 "scan.l" ! 1676: ACTION_ECHO; ! 1677: YY_BREAK ! 1678: case YY_STATE_EOF(ACTION): ! 1679: case YY_STATE_EOF(ACTION_COMMENT): ! 1680: case YY_STATE_EOF(ACTION_STRING): ! 1681: # line 478 "scan.l" ! 1682: { ! 1683: synerr( "EOF encountered inside an action" ); ! 1684: yyterminate(); ! 1685: } ! 1686: YY_BREAK ! 1687: case 117: ! 1688: # line 484 "scan.l" ! 1689: { ! 1690: yylval = myesc( yytext ); ! 1691: return ( CHAR ); ! 1692: } ! 1693: YY_BREAK ! 1694: case 118: ! 1695: # line 489 "scan.l" ! 1696: { ! 1697: yylval = myesc( yytext ); ! 1698: BEGIN(CCL); ! 1699: return ( CHAR ); ! 1700: } ! 1701: YY_BREAK ! 1702: case 119: ! 1703: # line 496 "scan.l" ! 1704: ECHO; ! 1705: YY_BREAK ! 1706: case 120: ! 1707: # line 497 "scan.l" ! 1708: YY_FATAL_ERROR( "flex scanner jammed" ); ! 1709: YY_BREAK ! 1710: case YY_STATE_EOF(INITIAL): ! 1711: case YY_STATE_EOF(SECT2): ! 1712: case YY_STATE_EOF(SECT3): ! 1713: case YY_STATE_EOF(CODEBLOCK): ! 1714: case YY_STATE_EOF(PICKUPDEF): ! 1715: case YY_STATE_EOF(SC): ! 1716: case YY_STATE_EOF(CARETISBOL): ! 1717: case YY_STATE_EOF(NUM): ! 1718: case YY_STATE_EOF(QUOTE): ! 1719: case YY_STATE_EOF(FIRSTCCL): ! 1720: case YY_STATE_EOF(CCL): ! 1721: case YY_STATE_EOF(RECOVER): ! 1722: case YY_STATE_EOF(BRACEERROR): ! 1723: case YY_STATE_EOF(C_COMMENT): ! 1724: case YY_STATE_EOF(PERCENT_BRACE_ACTION): ! 1725: case YY_STATE_EOF(USED_LIST): ! 1726: case YY_STATE_EOF(CODEBLOCK_2): ! 1727: case YY_STATE_EOF(XLATION): ! 1728: yyterminate(); ! 1729: ! 1730: case YY_END_OF_BUFFER: ! 1731: { ! 1732: /* amount of text matched not including the EOB char */ ! 1733: int yy_amount_of_matched_text = yy_cp - yytext - 1; ! 1734: ! 1735: /* undo the effects of YY_DO_BEFORE_ACTION */ ! 1736: *yy_cp = yy_hold_char; ! 1737: ! 1738: /* note that here we test for yy_c_buf_p "<=" to the position ! 1739: * of the first EOB in the buffer, since yy_c_buf_p will ! 1740: * already have been incremented past the NUL character ! 1741: * (since all states make transitions on EOB to the end- ! 1742: * of-buffer state). Contrast this with the test in yyinput(). ! 1743: */ ! 1744: if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) ! 1745: /* this was really a NUL */ ! 1746: { ! 1747: yy_state_type yy_next_state; ! 1748: ! 1749: yy_c_buf_p = yytext + yy_amount_of_matched_text; ! 1750: ! 1751: yy_current_state = yy_get_previous_state(); ! 1752: ! 1753: /* okay, we're now positioned to make the ! 1754: * NUL transition. We couldn't have ! 1755: * yy_get_previous_state() go ahead and do it ! 1756: * for us because it doesn't know how to deal ! 1757: * with the possibility of jamming (and we ! 1758: * don't want to build jamming into it because ! 1759: * then it will run more slowly) ! 1760: */ ! 1761: ! 1762: yy_next_state = yy_try_NUL_trans( yy_current_state ); ! 1763: ! 1764: yy_bp = yytext + YY_MORE_ADJ; ! 1765: ! 1766: if ( yy_next_state ) ! 1767: { ! 1768: /* consume the NUL */ ! 1769: yy_cp = ++yy_c_buf_p; ! 1770: yy_current_state = yy_next_state; ! 1771: goto yy_match; ! 1772: } ! 1773: ! 1774: else ! 1775: { ! 1776: yy_cp = yy_last_accepting_cpos; ! 1777: yy_current_state = yy_last_accepting_state; ! 1778: goto yy_find_action; ! 1779: } ! 1780: } ! 1781: ! 1782: else switch ( yy_get_next_buffer() ) ! 1783: { ! 1784: case EOB_ACT_END_OF_FILE: ! 1785: { ! 1786: yy_did_buffer_switch_on_eof = 0; ! 1787: ! 1788: if ( yywrap() ) ! 1789: { ! 1790: /* note: because we've taken care in ! 1791: * yy_get_next_buffer() to have set up yytext, ! 1792: * we can now set up yy_c_buf_p so that if some ! 1793: * total hoser (like flex itself) wants ! 1794: * to call the scanner after we return the ! 1795: * YY_NULL, it'll still work - another YY_NULL ! 1796: * will get returned. ! 1797: */ ! 1798: yy_c_buf_p = yytext + YY_MORE_ADJ; ! 1799: ! 1800: yy_act = YY_STATE_EOF((yy_start - 1) / 2); ! 1801: goto do_action; ! 1802: } ! 1803: ! 1804: else ! 1805: { ! 1806: if ( ! yy_did_buffer_switch_on_eof ) ! 1807: YY_NEW_FILE; ! 1808: } ! 1809: } ! 1810: break; ! 1811: ! 1812: case EOB_ACT_CONTINUE_SCAN: ! 1813: yy_c_buf_p = yytext + yy_amount_of_matched_text; ! 1814: ! 1815: yy_current_state = yy_get_previous_state(); ! 1816: ! 1817: yy_cp = yy_c_buf_p; ! 1818: yy_bp = yytext + YY_MORE_ADJ; ! 1819: goto yy_match; ! 1820: ! 1821: case EOB_ACT_LAST_MATCH: ! 1822: yy_c_buf_p = ! 1823: &yy_current_buffer->yy_ch_buf[yy_n_chars]; ! 1824: ! 1825: yy_current_state = yy_get_previous_state(); ! 1826: ! 1827: yy_cp = yy_c_buf_p; ! 1828: yy_bp = yytext + YY_MORE_ADJ; ! 1829: goto yy_find_action; ! 1830: } ! 1831: break; ! 1832: } ! 1833: ! 1834: default: ! 1835: #ifdef FLEX_DEBUG ! 1836: printf( "action # %d\n", yy_act ); ! 1837: #endif ! 1838: YY_FATAL_ERROR( ! 1839: "fatal flex scanner internal error--no action found" ); ! 1840: } ! 1841: } ! 1842: } ! 1843: ! 1844: ! 1845: /* yy_get_next_buffer - try to read in a new buffer ! 1846: * ! 1847: * synopsis ! 1848: * int yy_get_next_buffer(); ! 1849: * ! 1850: * returns a code representing an action ! 1851: * EOB_ACT_LAST_MATCH - ! 1852: * EOB_ACT_CONTINUE_SCAN - continue scanning from current position ! 1853: * EOB_ACT_END_OF_FILE - end of file ! 1854: */ ! 1855: ! 1856: static int yy_get_next_buffer() ! 1857: ! 1858: { ! 1859: register YY_CHAR *dest = yy_current_buffer->yy_ch_buf; ! 1860: register YY_CHAR *source = yytext - 1; /* copy prev. char, too */ ! 1861: register int number_to_move, i; ! 1862: int ret_val; ! 1863: ! 1864: if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) ! 1865: YY_FATAL_ERROR( ! 1866: "fatal flex scanner internal error--end of buffer missed" ); ! 1867: ! 1868: /* try to read more data */ ! 1869: ! 1870: /* first move last chars to start of buffer */ ! 1871: number_to_move = yy_c_buf_p - yytext; ! 1872: ! 1873: for ( i = 0; i < number_to_move; ++i ) ! 1874: *(dest++) = *(source++); ! 1875: ! 1876: if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN ) ! 1877: /* don't do the read, it's not guaranteed to return an EOF, ! 1878: * just force an EOF ! 1879: */ ! 1880: yy_n_chars = 0; ! 1881: ! 1882: else ! 1883: { ! 1884: int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; ! 1885: ! 1886: if ( num_to_read > YY_READ_BUF_SIZE ) ! 1887: num_to_read = YY_READ_BUF_SIZE; ! 1888: ! 1889: else if ( num_to_read <= 0 ) ! 1890: YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); ! 1891: ! 1892: /* read in more data */ ! 1893: YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), ! 1894: yy_n_chars, num_to_read ); ! 1895: } ! 1896: ! 1897: if ( yy_n_chars == 0 ) ! 1898: { ! 1899: if ( number_to_move == 1 ) ! 1900: { ! 1901: ret_val = EOB_ACT_END_OF_FILE; ! 1902: yy_current_buffer->yy_eof_status = EOF_DONE; ! 1903: } ! 1904: ! 1905: else ! 1906: { ! 1907: ret_val = EOB_ACT_LAST_MATCH; ! 1908: yy_current_buffer->yy_eof_status = EOF_PENDING; ! 1909: } ! 1910: } ! 1911: ! 1912: else ! 1913: ret_val = EOB_ACT_CONTINUE_SCAN; ! 1914: ! 1915: yy_n_chars += number_to_move; ! 1916: yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; ! 1917: yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; ! 1918: ! 1919: /* yytext begins at the second character in yy_ch_buf; the first ! 1920: * character is the one which preceded it before reading in the latest ! 1921: * buffer; it needs to be kept around in case it's a newline, so ! 1922: * yy_get_previous_state() will have with '^' rules active ! 1923: */ ! 1924: ! 1925: yytext = &yy_current_buffer->yy_ch_buf[1]; ! 1926: ! 1927: return ( ret_val ); ! 1928: } ! 1929: ! 1930: ! 1931: /* yy_get_previous_state - get the state just before the EOB char was reached ! 1932: * ! 1933: * synopsis ! 1934: * yy_state_type yy_get_previous_state(); ! 1935: */ ! 1936: ! 1937: static yy_state_type yy_get_previous_state() ! 1938: ! 1939: { ! 1940: register yy_state_type yy_current_state; ! 1941: register YY_CHAR *yy_cp; ! 1942: ! 1943: register YY_CHAR *yy_bp = yytext; ! 1944: ! 1945: yy_current_state = yy_start; ! 1946: if ( yy_bp[-1] == '\n' ) ! 1947: ++yy_current_state; ! 1948: ! 1949: for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) ! 1950: { ! 1951: register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1); ! 1952: if ( yy_accept[yy_current_state] ) ! 1953: { ! 1954: yy_last_accepting_state = yy_current_state; ! 1955: yy_last_accepting_cpos = yy_cp; ! 1956: } ! 1957: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ! 1958: { ! 1959: yy_current_state = yy_def[yy_current_state]; ! 1960: if ( yy_current_state >= 341 ) ! 1961: yy_c = yy_meta[yy_c]; ! 1962: } ! 1963: yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ! 1964: } ! 1965: ! 1966: return ( yy_current_state ); ! 1967: } ! 1968: ! 1969: ! 1970: /* yy_try_NUL_trans - try to make a transition on the NUL character ! 1971: * ! 1972: * synopsis ! 1973: * next_state = yy_try_NUL_trans( current_state ); ! 1974: */ ! 1975: ! 1976: #ifdef YY_USE_PROTOS ! 1977: static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state ) ! 1978: #else ! 1979: static yy_state_type yy_try_NUL_trans( yy_current_state ) ! 1980: register yy_state_type yy_current_state; ! 1981: #endif ! 1982: ! 1983: { ! 1984: register int yy_is_jam; ! 1985: register YY_CHAR *yy_cp = yy_c_buf_p; ! 1986: ! 1987: register YY_CHAR yy_c = 1; ! 1988: if ( yy_accept[yy_current_state] ) ! 1989: { ! 1990: yy_last_accepting_state = yy_current_state; ! 1991: yy_last_accepting_cpos = yy_cp; ! 1992: } ! 1993: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ! 1994: { ! 1995: yy_current_state = yy_def[yy_current_state]; ! 1996: if ( yy_current_state >= 341 ) ! 1997: yy_c = yy_meta[yy_c]; ! 1998: } ! 1999: yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ! 2000: yy_is_jam = (yy_current_state == 340); ! 2001: ! 2002: return ( yy_is_jam ? 0 : yy_current_state ); ! 2003: } ! 2004: ! 2005: ! 2006: #ifdef YY_USE_PROTOS ! 2007: static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp ) ! 2008: #else ! 2009: static void yyunput( c, yy_bp ) ! 2010: YY_CHAR c; ! 2011: register YY_CHAR *yy_bp; ! 2012: #endif ! 2013: ! 2014: { ! 2015: register YY_CHAR *yy_cp = yy_c_buf_p; ! 2016: ! 2017: /* undo effects of setting up yytext */ ! 2018: *yy_cp = yy_hold_char; ! 2019: ! 2020: if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) ! 2021: { /* need to shift things up to make room */ ! 2022: register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */ ! 2023: register YY_CHAR *dest = ! 2024: &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2]; ! 2025: register YY_CHAR *source = ! 2026: &yy_current_buffer->yy_ch_buf[number_to_move]; ! 2027: ! 2028: while ( source > yy_current_buffer->yy_ch_buf ) ! 2029: *--dest = *--source; ! 2030: ! 2031: yy_cp += dest - source; ! 2032: yy_bp += dest - source; ! 2033: yy_n_chars = yy_current_buffer->yy_buf_size; ! 2034: ! 2035: if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) ! 2036: YY_FATAL_ERROR( "flex scanner push-back overflow" ); ! 2037: } ! 2038: ! 2039: if ( yy_cp > yy_bp && yy_cp[-1] == '\n' ) ! 2040: yy_cp[-2] = '\n'; ! 2041: ! 2042: *--yy_cp = c; ! 2043: ! 2044: /* note: the formal parameter *must* be called "yy_bp" for this ! 2045: * macro to now work correctly ! 2046: */ ! 2047: YY_DO_BEFORE_ACTION; /* set up yytext again */ ! 2048: } ! 2049: ! 2050: ! 2051: #ifdef __cplusplus ! 2052: static int yyinput() ! 2053: #else ! 2054: static int input() ! 2055: #endif ! 2056: ! 2057: { ! 2058: int c; ! 2059: YY_CHAR *yy_cp = yy_c_buf_p; ! 2060: ! 2061: *yy_cp = yy_hold_char; ! 2062: ! 2063: if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) ! 2064: { ! 2065: /* yy_c_buf_p now points to the character we want to return. ! 2066: * If this occurs *before* the EOB characters, then it's a ! 2067: * valid NUL; if not, then we've hit the end of the buffer. ! 2068: */ ! 2069: if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) ! 2070: /* this was really a NUL */ ! 2071: *yy_c_buf_p = '\0'; ! 2072: ! 2073: else ! 2074: { /* need more input */ ! 2075: yytext = yy_c_buf_p; ! 2076: ++yy_c_buf_p; ! 2077: ! 2078: switch ( yy_get_next_buffer() ) ! 2079: { ! 2080: case EOB_ACT_END_OF_FILE: ! 2081: { ! 2082: if ( yywrap() ) ! 2083: { ! 2084: yy_c_buf_p = yytext + YY_MORE_ADJ; ! 2085: return ( EOF ); ! 2086: } ! 2087: ! 2088: YY_NEW_FILE; ! 2089: ! 2090: #ifdef __cplusplus ! 2091: return ( yyinput() ); ! 2092: #else ! 2093: return ( input() ); ! 2094: #endif ! 2095: } ! 2096: break; ! 2097: ! 2098: case EOB_ACT_CONTINUE_SCAN: ! 2099: yy_c_buf_p = yytext + YY_MORE_ADJ; ! 2100: break; ! 2101: ! 2102: case EOB_ACT_LAST_MATCH: ! 2103: #ifdef __cplusplus ! 2104: YY_FATAL_ERROR( "unexpected last match in yyinput()" ); ! 2105: #else ! 2106: YY_FATAL_ERROR( "unexpected last match in input()" ); ! 2107: #endif ! 2108: } ! 2109: } ! 2110: } ! 2111: ! 2112: c = *yy_c_buf_p; ! 2113: yy_hold_char = *++yy_c_buf_p; ! 2114: ! 2115: return ( c ); ! 2116: } ! 2117: ! 2118: ! 2119: #ifdef YY_USE_PROTOS ! 2120: void yyrestart( FILE *input_file ) ! 2121: #else ! 2122: void yyrestart( input_file ) ! 2123: FILE *input_file; ! 2124: #endif ! 2125: ! 2126: { ! 2127: yy_init_buffer( yy_current_buffer, input_file ); ! 2128: yy_load_buffer_state(); ! 2129: } ! 2130: ! 2131: ! 2132: #ifdef YY_USE_PROTOS ! 2133: void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) ! 2134: #else ! 2135: void yy_switch_to_buffer( new_buffer ) ! 2136: YY_BUFFER_STATE new_buffer; ! 2137: #endif ! 2138: ! 2139: { ! 2140: if ( yy_current_buffer == new_buffer ) ! 2141: return; ! 2142: ! 2143: if ( yy_current_buffer ) ! 2144: { ! 2145: /* flush out information for old buffer */ ! 2146: *yy_c_buf_p = yy_hold_char; ! 2147: yy_current_buffer->yy_buf_pos = yy_c_buf_p; ! 2148: yy_current_buffer->yy_n_chars = yy_n_chars; ! 2149: } ! 2150: ! 2151: yy_current_buffer = new_buffer; ! 2152: yy_load_buffer_state(); ! 2153: ! 2154: /* we don't actually know whether we did this switch during ! 2155: * EOF (yywrap()) processing, but the only time this flag ! 2156: * is looked at is after yywrap() is called, so it's safe ! 2157: * to go ahead and always set it. ! 2158: */ ! 2159: yy_did_buffer_switch_on_eof = 1; ! 2160: } ! 2161: ! 2162: ! 2163: #ifdef YY_USE_PROTOS ! 2164: void yy_load_buffer_state( void ) ! 2165: #else ! 2166: void yy_load_buffer_state() ! 2167: #endif ! 2168: ! 2169: { ! 2170: yy_n_chars = yy_current_buffer->yy_n_chars; ! 2171: yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos; ! 2172: yyin = yy_current_buffer->yy_input_file; ! 2173: yy_hold_char = *yy_c_buf_p; ! 2174: } ! 2175: ! 2176: ! 2177: #ifdef YY_USE_PROTOS ! 2178: YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) ! 2179: #else ! 2180: YY_BUFFER_STATE yy_create_buffer( file, size ) ! 2181: FILE *file; ! 2182: int size; ! 2183: #endif ! 2184: ! 2185: { ! 2186: YY_BUFFER_STATE b; ! 2187: ! 2188: b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) ); ! 2189: ! 2190: if ( ! b ) ! 2191: YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); ! 2192: ! 2193: b->yy_buf_size = size; ! 2194: ! 2195: /* yy_ch_buf has to be 2 characters longer than the size given because ! 2196: * we need to put in 2 end-of-buffer characters. ! 2197: */ ! 2198: b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) ); ! 2199: ! 2200: if ( ! b->yy_ch_buf ) ! 2201: YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); ! 2202: ! 2203: yy_init_buffer( b, file ); ! 2204: ! 2205: return ( b ); ! 2206: } ! 2207: ! 2208: ! 2209: #ifdef YY_USE_PROTOS ! 2210: void yy_delete_buffer( YY_BUFFER_STATE b ) ! 2211: #else ! 2212: void yy_delete_buffer( b ) ! 2213: YY_BUFFER_STATE b; ! 2214: #endif ! 2215: ! 2216: { ! 2217: if ( b == yy_current_buffer ) ! 2218: yy_current_buffer = (YY_BUFFER_STATE) 0; ! 2219: ! 2220: free( (char *) b->yy_ch_buf ); ! 2221: free( (char *) b ); ! 2222: } ! 2223: ! 2224: ! 2225: #ifdef YY_USE_PROTOS ! 2226: void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) ! 2227: #else ! 2228: void yy_init_buffer( b, file ) ! 2229: YY_BUFFER_STATE b; ! 2230: FILE *file; ! 2231: #endif ! 2232: ! 2233: { ! 2234: b->yy_input_file = file; ! 2235: ! 2236: /* we put in the '\n' and start reading from [1] so that an ! 2237: * initial match-at-newline will be true. ! 2238: */ ! 2239: ! 2240: b->yy_ch_buf[0] = '\n'; ! 2241: b->yy_n_chars = 1; ! 2242: ! 2243: /* we always need two end-of-buffer characters. The first causes ! 2244: * a transition to the end-of-buffer state. The second causes ! 2245: * a jam in that state. ! 2246: */ ! 2247: b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; ! 2248: b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR; ! 2249: ! 2250: b->yy_buf_pos = &b->yy_ch_buf[1]; ! 2251: ! 2252: b->yy_eof_status = EOF_NOT_SEEN; ! 2253: } ! 2254: # line 497 "scan.l" ! 2255: ! 2256: ! 2257: ! 2258: int yywrap() ! 2259: ! 2260: { ! 2261: if ( --num_input_files > 0 ) ! 2262: { ! 2263: set_input_file( *++input_files ); ! 2264: return ( 0 ); ! 2265: } ! 2266: ! 2267: else ! 2268: return ( 1 ); ! 2269: } ! 2270: ! 2271: ! 2272: /* set_input_file - open the given file (if NULL, stdin) for scanning */ ! 2273: ! 2274: void set_input_file( file ) ! 2275: char *file; ! 2276: ! 2277: { ! 2278: if ( file ) ! 2279: { ! 2280: infilename = file; ! 2281: yyin = fopen( infilename, "r" ); ! 2282: ! 2283: if ( yyin == NULL ) ! 2284: lerrsf( "can't open %s", file ); ! 2285: } ! 2286: ! 2287: else ! 2288: { ! 2289: yyin = stdin; ! 2290: infilename = "<stdin>"; ! 2291: } ! 2292: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.